이쁘게 그림도 넣고 설명하고 싶지만 지금은 공부만 하는걸로도 시간이 부족하다.. 일단 설명만,,
super key : unique하게 식별할 수 있는 컬럼을 포함하고 있는 모든 컬럼셋
candidate key(후보키) : unique한 컬럼만 가지고 있는 컬럼셋.
super key는 unique하지 않은 컬럼을 포함하고 있지만, candidate key는 여기서 딱 unique한 컬럼만 가지고 있는 minimal한 super key 이다.
super key ⊃ candidate key
primary key(기본키) : candidate key에서 선택한 key
unique key : primary key로 선택하지 않은 나머지 candidate key
primary key + unique key = candidate key
prime attribute : candidate key 에 포함되는 컬럼
non-prime attribute : candidate key 에 포함되지 않는 컬럼
FD(functional dependency) : 어떤 컬럼이 특정 컬럼에 의해 값이 결정 되는 것.
1NF : 컬럼의 value는 여러개의 값을 가지면 안된다
2NF : non-prime attribute는 모든 candidate key에 대해 fully FD 해야한다. 여러 컬럼으로 이루어진 candidate key에 속하는 하나의 prime attribute에 의해 non-prime attribute가 개별적으로 FD하면 안된다.
3NF : non-prime attribute끼리 FD하면 안된다.
BCNF : FD(X -> Y)에서 X는 super key여야 한다.
참고
https://www.youtube.com/watch?v=gjcbqZjlXjM&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe&index=3
https://www.youtube.com/watch?v=fw8hvolebLw&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe&index=23
https://www.youtube.com/watch?v=EdkjkifH-m8&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe&index=23&pp=iAQB
https://www.youtube.com/watch?v=5QhkZkrqFL4&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe&index=24&pp=iAQB
'DB' 카테고리의 다른 글
[DB] 인덱스에서 B tree 를 쓰는 이유 (0) | 2024.03.20 |
---|---|
[DB] 인덱스, unique index, multicolumn index, hash index (0) | 2024.03.19 |
[DB] ACID, 동시성 제어, serializabiliy, recoverabiliy, lock, MVCC, isolation 레벨 (0) | 2024.03.18 |
[DB] 스키마가 뭔데? (0) | 2024.02.14 |
[postgreSQL] row_number(), rank(), dense_rank(), partition by (0) | 2024.01.17 |
댓글