본문 바로가기

Back-end/DB

[데이터베이스] key, 1:1 관계, 1:N 관계, N:M 관계의 개념

728x90
반응형

 

 

 

- 슈퍼키 : 특정 튜플을 고유하게 식별할 수 있는 것.

 

유일성은 있지만 최소성은 없음

 

ex) 고객 아이디 = 슈퍼키가 될 수 있음. (각 아이디가 같은 고객은 없기 때문이다)

나이, 등급, 직업 = 슈퍼키가 될 수 없음 X. (나이, 등급, 직업이 같은 고객은 충분히 존재할 수 있기 때문이다)

(고객아이디, 나이, 등급, 직업) = 슈퍼키가 될 수 있음. (고객 아이디로 각 튜플을 구분할 수 있기 때문이다)

 

즉 슈퍼키는 유일성은 만족하지만 최소성은 만족하지 않는다.

 

 

 

 

 

- 후보키 : 기본키가 될 수 있는 컬럼들

 

 

 

 

- 기본키 : 후보키들 중 선택받은 키로 데이터를 명확하게 구분하고 찾기 위한 것.

 

***기본키 조건***

  1. 테이블에 저장된 행을 식별할 수 있는 유일한 값이어야 한다.
  2. 값의 중복이 없어야 한다.
  3. NULL 값을 가질 수 없다.

 

 

 

 

- 대체키 : 보조키라고도 하는데 후보키 중 하나를 기본키로 정한다면 나머지 컬럼들은 대체키(보조키)가 되는 것.

 

 

 

 

 

- 외래키 : 어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키.

 

 

-> 위 테이블에서 중복되는 것은 전공과 전화번호이다. 이러한 정보가 100만개 있고, 그 중 누가 전과를 하거나 전화번호를 바꾼다면 100만 개의 데이터를 일일이 다 수정을 해야하는 상황이 발생한다.

 

 

 

→ 이 때! 이렇게 공통되는 요소들을 분리해서 "학과 코드" 라는 것으로 묶어버릴 수 있다.

이렇게 되면 서로 다른 2개의 테이블에 같은 컬럼이 존재하게 된다. 또, 변경이 될 경우에도 학과코드가 있는 테이블에 들어가 수정만 해주면 된다.

기본키 조건 중에 "테이블에 저장된 행을 식별할 수 있는 유일한 값이어야 한다" 라는 조건을 충족하지 못하므로 2개의 테이블에 존재하는 학과코드는 기본키가 될 수 없다는 사실~~~!!!

 

 

"외래키는 데이터 무결성 때문에 존재"

 

 

 

 

 

 

 

 

 

1:1 관계, 1:N 관계, N:M 관계

 

- 1:1 관계

: 왼쪽 개체와 오른쪽 개체가 반드시 '하나'로만 매핑되어야 한다.

ex1) 국가 - 대통령

ex2) 남편 - 부인

남편 또는 부인을 한 명 이상 둘 수 없음!!!

 

 

- 1:N 관계 (일대다 관계)

: 한 쪽 개체가 관계를 맺은 개체 쪽의 여러 개체를 가질 수 있는 것을 의미한다.

ex) 부모 - 자식

부모는 여러 명의 자식을 가질 수 있음!!!

 

 

- N:M 관계 (다대다 관계)

: 관계를 가진 양쪽 개체 모두에서 1:N 관계를 가지는 것을 말한다. 즉, 서로가 서로를 1:N 관계로 보고 있는 것이다.

ex) 학원 - 학생

한 학원에는 여러 명의 학생이 수강할 수 있지만 반대로 학생도 여러 개의 학원을 수강할 수 있음!!!

728x90
반응형