키
- 슈퍼키 : 특정 튜플을 고유하게 식별할 수 있는 것.
ex) 고객 아이디 = 슈퍼키가 될 수 있음. (각 아이디가 같은 고객은 없기 때문이다)
나이, 등급, 직업 = 슈퍼키가 될 수 없음 X. (나이, 등급, 직업이 같은 고객은 충분히 존재할 수 있기 때문이다)
(고객아이디, 나이, 등급, 직업) = 슈퍼키가 될 수 있음. (고객 아이디로 각 튜플을 구분할 수 있기 때문이다)
즉 슈퍼키는 유일성은 만족하지만 최소성은 만족하지 않는다.
- 후보키 : 기본키가 될 수 있는 컬럼들
- 기본키 : 후보키들 중 선택받은 키로 데이터를 명확하게 구분하고 찾기 위한 것.
***기본키 조건***
- 테이블에 저장된 행을 식별할 수 있는 유일한 값이어야 한다.
- 값의 중복이 없어야 한다.
- 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) 학원 - 학생
'Back-end > DB' 카테고리의 다른 글
[MySQL] 건물 DB 데이터를 활용하여 ERD 설계 및 데이터베이스 구축해보기 (0) | 2022.04.25 |
---|---|
[MySQL] 리눅스 한글 깨짐 문제 해결 (0) | 2022.04.23 |
[MySQL] 쿼리문 작성시 대소문자를 구분하지 않도록 설정하는 방법 (0) | 2022.04.20 |
[Database] Maria DB 소개 및 설치하는 방법 (0) | 2022.04.17 |
Quick DBD 사용 후기 (0) | 2021.10.09 |