데이터베이스를 사용하려면 꼭 알아야 하는 Key(키)에 대한 내용 정리입니다.
해당 내용은 RDBMS를 기준으로 작성되었습니다.
키는
테이블 내에서 데이터를 구별하고 식별할 수 있는 역할을 하는 속성
이다.
유일성은
데이터베이스에서 키가 각 행(레코드)를 고유하게 식별할 수 있도록 보장하는 속성
이다.
테이블 내에서 유일
해야 하며, 중복되지 않도록
해야 한다. 최소성은
키를 구성하는 컬럼(속성)들이 불필요한 요소를 포함하지 않도록 해야 한다는 속성
이다.
후보키의 중요한 속성
으로, 후보키는 가능한 적은 수의 컬럼으로 데이터를 고유하게 식별할 수 있어야 한다. -> 키의 크기를 최소화해야 한다.기본키는
테이블에서 각 행을 고유하게 식별하는 데 사용되는 키
이다.
유일성
과 최소성
, Not-NULL
을 보장한다.메인으로 선정되는 키
이다.반드시 필요한 키
이다.CREATE TABLE Student (
id INT PRIMARY KEY, -- 기본키
name VARCHAR(100),
email VARCHAR(100),
age INT
);
후보키는 테이블에서
각 행을 고유하게 식별할 수 있는 여러 키 후보
이다.
유일성
과 최소성
을 보장한다.CREATE TABLE Student (
id INT PRIMARY KEY, -- 기본키
name VARCHAR(100),
email VARCHAR(100), -- 후보키(대체키)
age INT
);
대체키는
기본키로 선택되지 않은 후보키
이다.
유일성
과 최소성
을 보장한다.외래키는
다른 테이블의 기본키를 참조하여 두 테이블 간의 관계를 설정하는 키
이다.
최소성
을 보장한다.CREATE TABLE Subject (
id INT PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE Student (
id INT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100),
age INT
);
CREATE Student_Subject (
student_id INT,
subject_id INT,
FOREIGN KEY (student_id) REFERENCES Student(id), -- 외래키
FOREIGN KEY (subject_id) REFERENCES Subject(id), -- 외래키
PRIMARY KEY (student_id, subject_id)
);
복합키는
두 개 이상의 컬럼을 결합한 키
이다.
유일성
을 보장한다.CREATE TABLE OrderDetails (
order_id INT,
product_id INT,
quanrity INT,
PRIMARY KEY (order_id, product_id) -- 복합키
);
수퍼키는 테이블에서
한 개 이상의 컬럼을 포함하고, 그 조합이 각 행을 고유하게 식별할 수 있게 해주는 키
이다.
유일성
을 보장한다.CREATE TABLE Student (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT,
UNIQUE (id, name) -- 수퍼키
);
Q 1)
기본키(Primary Key)와 복합 키(Composite Key)를 설명해보세요.
A 1)
기본키는 테이블에서 각 행을 고유하게 식별하는데 사용되는 키이며, 유일성과 최소성을 보장합니다.
테이블에는 기본키를 반드시 하나만 가지고 있어야 하며, NULL이거나 수정 및 업데이트가 불가능합니다.
복합키는 두 개 이상의 컬럼을 결합한 키이며, 유일성을 보장합니다.
단일 컬럼으로 유일성을 보장할 수 없는 경우, 두 개 이상의 컬럼을 결합하여 사용합니다.