10/12

오늘은 어제에이어서 null체크 그리고 unique 기본값인 default 각 테이블 의 컬럼타입과 제약사항을 확인 할 수 있는 

DESC 유효범위 체크를 하는 CHECK, SQL테이블의 정규화 하는 과정과 그 과정에 서 PRIMARYKEY가 필요한것 
PRIMARYKEY 외래키 를 이용하여 연결 방법 , 몇개가 연결 되어있는지에 따른 방법 JOIN을 사용 하여 2개 이상의 
테이블을 조합 하여 원하는 값을 조회 할 수 있는것을 배웠다. 

 

DESC(DESCRIBE) 제약사항 확인 명령어

조회해보면 UNI 와 PRI 가 있는데 UNI는 UNIQUE / PRI는 NOT NULL과 UNIQUE를 같이 사용할때 KEY 에 보인다.

 

CHECK (유효범위 체크) 명령어

체크 명령어를 사용 하면 지정한 범위 안의 데이터 값만 들어갈 수 있고 체크한 범위를 확인 하고 싶으면 
SHOW 명령어를 사용하여 TABLE 을 확인하면 볼 수 있다.

 

PRIMARY KEY (주키, 기본키, PK) 

정규화를 시키려면 값이 중복되지 않은 유일한 값이고 테이블에 종속되어 변할 위험도 없으면서 수정될 일이 없는 것을 
주키 또는 PRIMARY KEY라고 한다 이것을 생성해야 정규화를 시킬수 있다. 

PRIMARY KEY 생성법은 다음과 같다.

PRIMARY KEY를 갖는 테이블을 생성하고 값을 넣은후 조회해보면

잘 들어 가있는것을 볼 수 있다 그리고 ID 컬럼이 PRIMARY KEY 화 된것도 볼 수 있다
그런데 PRIMERY KEY 는 우리가 일일히 생성 해줄 필요가 없기 때문에 

뒤에 AUTO_INCREMENT 를 써서 자동으로 1개 씩 늘어날 수 있도록 해주자.

조회해보면 

우리가 ID의 번호를 넣지 않았어도 자동으로 잘 들어간 것을 볼 수 있다.

※ PRIMARY KEY 는 꼭 하나만 올 필요 없이 여러개 와도 괜찮다 하지만 가능하면 한 테이블당 
PRIMARY KEY는 하나씩만 사용하도록 하자 

 

NOMALIZATION (정규화) 

정규화의 조건으로는 3가지의 NF 를 만족해야 한다.

  • 첫번째 정규화 (FIRST NORMAL FORM) 1NF
    • 원자적 데이터를 가진 테이블, PK(주키) 컬럼이 있어야 한다
  • 두번째 정규화 (SECOND NORMAL FORM) 2NF
    • 1NF를 출족하고, 부분적 함수 의존이 없어야 한다.
    • 부분적 함수 의존 (partial funtional dependency)
      • 키가 아닌 컬럼의 값이 키 컬럼 일부에 종속되지 않아야 한다.
      • 키의 일부가 변경되면 키가 아닌 컬럼이 변경되어야 하며 부분적 함수 의존이 생긴다.
  • 세번째 정규화 (THIRD NORMAL FORM) 3NF
    • 2NF 까지 충족하고, 이행적 종속이 없어야 한다.
    • 이행적 종속 (transitive dependency)
      • 키가 아닌 컬럼이 키가 아닌 다른 컬럼에 의존
      • 키가 아닌 컬럼이 변경되면 다른 키가 아닌 컬림이 변경 되어야 할 때

person 과 school 2개의 테이블을 생성 하는데 person 에서 들어갈 학교의 이름과 학교의 주소가 종속관계에 있어
내보내어 따로 테이블 을 생성 하였고 person에 제약사항(REFERENCES)를 만들어 school의 외래키를 받아왔다.

각 테이블에 알맞게 데이터를 넣으면 (※ 이때 제약사항을 건 테이블 부터 생성 해야 한다.)

person 테이블이 school의 id 를 잘 받아 오는것을 볼 수 있다.

다이어 그램을 보면 

이런식으로 연결되어 있다.

 

CARDINALITY (중복도)  관계도??

테이블 연결된 관계에서는 3가지가 있다.

  • 1 : N
    • 제일 많이쓰는 쓰는 상태
  •  1 : 1
    • 민감한 정보를 따로 관리 하고 싶을때 사용 한다.
  • N : M
    • 다대 다 형태로 바로 연결은 불가능 하고 [ 1 : N + 1 : M ] 이런식으로 하나의 테이블 을 중간에 넣어 
      다대 다를 연결해준다.

이런식으로 말이다.

 

JOIN (합치기)

두개의 테이블 을 결합하는것

JOIN DMS ,(컴마)와 같은 식으로 사용 된다.

JOIN한 테이블 들을 조회 하면 ROW의 갯수가 각각의 테이블 ROW 수를 곱한수 만큼 나온다.

 

JOIN을 활용한 예 

오늘은 여기까지 배웠다.

+ Recent posts