DB의 KEY
Books Table (Extended):
+--------+----------------+-----------+-------------+
| BookID | Title | AuthorID | Publication |
+--------+----------------+-----------+-------------+
| 1 | "Great Gatsby" | 100 | 1925 |
| 2 | "1984" | 101 | 1949 |
| 3 | "Moby Dick" | 102 | 1851 |
+--------+----------------+-----------+-------------+
여기서는 BookID와 BookID + Title은 모두 슈퍼 키.
BookID + Title 을 묶어 하나의 속성으로 만들 수도 있다. 어떤 속성끼리 묶던 그중에서 중복만 되지 않고 구별만 가능하면 되기 때문!
Title 만으로는 중복 가능성이 있어서 슈퍼키가 될 수 없음.
Authors Table (Extended):
+----------+---------------+-----------------------+-----------+
| AuthorID | Name | Email | SSN(사회보장번호)|
+----------+---------------+-----------------------+-----------+
| 100 | F. Scott | f.scott@example.com | 555-01-01 |
| 101 | George Orwell | george.o@example.com | 555-02-02 |
| 102 | Herman Melvil | (NULL) | 555-03-03 |
+----------+---------------+-----------------------+-----------+
테이블에는 여러 후보 키가 있을 수 있으며 각 후보 키는 기본 키 역할을 할 수 있습니다.
그러나 이러한 후보 키 중 하나만 기본 키로 선택됩니다.
모든 후보 키는 기본 키 역할을 할 수 있지만! 실용적인 이유(예: 미니멀리즘 또는 명확성)에 따라 단일 기본 키를 선택해야 합니다.
기본 키로 선택되지 않은 다른 후보 키(탈락한 놈들🥲) => 고유 키로 지정가능!
Books Table:
+--------+----------------+-----------+
| BookID | Title | AuthorID |
+--------+----------------+-----------+
| 1 | "Great Gatsby" | 100 |
| 2 | "1984" | 101 |
| 3 | "Moby Dick" | 102 |
+--------+----------------+-----------+
-기본 키는 테이블의 각 행을 고유하게 식별하는 테이블의 열(또는 열 집합)입니다.
Authors Table:
+----------+---------------+-----------------------+
| AuthorID | Name | Email |
+----------+---------------+-----------------------+
| 100 | F. Scott | f.scott@example.com |
| 101 | George Orwell | george.o@example.com |
| 102 | Herman Melvil | (NULL) |
+----------+---------------+-----------------------+
기본 키는 'AuthorID', 'Email' 열은 고유 키
작성자가 잠재적으로 파일에 이메일 주소를 갖고 있지 않더라도 테이블의 두 작성자가 동일한 이메일 주소를 가질 수 없습니다(고유키로 지정하면 두 명의 직원이 동일한 이메일 주소를 가지지 않도록 할 수 있다.)
예시)2. 각 책에는 ISBN 번호가 있는데, 이는 각 제목마다 고유하지만 책의 각 사본에는 고유하지 않습니다. => 기본키로 지정하기 애매..
또 ISBN이 없는 책도 있음 => 고유키는 null 값 허용해서 괜춘!
기본 키와 달리 고유 키는 NULL 값을 허용할 수 있습니다(그러나 데이터베이스 시스템에서 Null이 고유한 것으로 간주되지 않는 경우 하나의 NULL 값만 허용됩니다).
테이블에는 기본 키 외에도 여러 개의 고유 키가 있을 수 있습니다.
Books Table:
+--------+----------------+-----------+
| BookID | Title | AuthorID |
+--------+----------------+-----------+
| 1 | "Great Gatsby" | 100 |
| 2 | "1984" | 101 |
| 3 | "Moby Dick" | 102 |
+--------+----------------+-----------+
카디널리티와 인덱싱.
인덱스가 될 수 있는 우선순위
Primary Key(기본키) VS Unique Key(고유 키)
기본 키와 고유 키 모두 고유성을 적용하기 위해 사용!
기본 키는 테이블 내 레코드의 기본 식별자 역할
고유 키는 기본 키가 아닌 특정 열의 고유성을 보장합니다.
Quiz?
답변: X O