기본키 (Primary Key)
기본키는 데이터베이스 테이블에서 각 레코드를 고유하게 식별하는 하나 이상의 컬럼이다.
기본키는 중복된 값을 허용하지 않으며, NULL 값을 가질 수 없다.
- 유일성: 기본키는 테이블의 각 레코드를 고유하게 식별한다. 즉, 기본키 값은 테이블 내에서 유일해야 한다.
- NULL 값 불허: 기본키 컬럼에는 NULL 값을 저장할 수 없다. 모든 레코드는 기본키 값을 가지고 있어야 합다.
- 일관성: 기본키는 항상 유일하고, 변하지 않아야 한다.
- 학생 테이블에서 학생ID를 기본키로 설정할 수 있다.
- 이 경우, 학생ID는 테이블 내에서 유일하며, 각 학생을 고유하게 식별한다.
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name VARCHAR(100),
Age INT
);
외래키 (Foreign Key)
외래키는 하나의 테이블에서 다른 테이블의 기본키를 참조하는 컬럼이다.
외래키는 테이블 간의 관계를 정의하고, 데이터 무결성을 유지하는 데 사용된다.
- 참조 무결성: 외래키는 참조하는 기본키 값이 존재하는지 확인하여 데이터의 무결성을 유지한다.
- 중복 허용: 외래키 값은 중복될 수 있다. 즉, 여러 레코드가 동일한 외래키 값을 가질 수 있다.
- NULL 값 허용: 외래키 컬럼은 NULL 값을 가질 수 있다. 참조 관계가 선택적일 수 있다.
- 수업 테이블에서 교사ID를 외래키로 설정할 수 있으며, 교사 테이블의 교사ID를 참조한다.
- 이 경우 수업 테이블의 교사ID는 교사 테이블의 교사ID 값 중 하나여야 한다.
CREATE TABLE Teachers (
TeacherID INT PRIMARY KEY,
Name VARCHAR(100)
);
CREATE TABLE Classes (
ClassID INT PRIMARY KEY,
ClassName VARCHAR(100),
TeacherID INT,
FOREIGN KEY (TeacherID) REFERENCES Teachers(TeacherID)
);
학생 테이블과 수업 테이블이 있을 때, 학생 테이블은 각 학생의 고유한 정보를 담고 있고, 수업 테이블은 각 수업에 대한 정보를 담고 있다. 만약 각 학생이 여러 수업에 등록할 수 있다면, 학생ID를 수업 테이블의 외래키로 설정하여 두 테이블 간의 관계를 정의할 수 있다.
'CS > DATABASE' 카테고리의 다른 글
| RDBMS Consumer (0) | 2024.08.14 |
|---|---|
| Apache Kafka (0) | 2024.08.14 |
| h2 데이터베이스 사용법 (0) | 2024.08.01 |
| INNER JOIN & OUTER JOIN (0) | 2024.07.09 |
| CRUD (create, read, update, delete) (0) | 2024.06.26 |