기본키 (Primary Key)

기본키는 데이터베이스 테이블에서 각 레코드를 고유하게 식별하는 하나 이상의 컬럼이다.

기본키는 중복된 값을 허용하지 않으며, NULL 값을 가질 수 없다.

 

  1. 유일성: 기본키는 테이블의 각 레코드를 고유하게 식별한다. 즉, 기본키 값은 테이블 내에서 유일해야 한다.
  2. NULL 값 불허: 기본키 컬럼에는 NULL 값을 저장할 수 없다. 모든 레코드는 기본키 값을 가지고 있어야 합다.
  3. 일관성: 기본키는 항상 유일하고, 변하지 않아야 한다.
  • 학생 테이블에서 학생ID를 기본키로 설정할 수 있다.
  • 이 경우, 학생ID는 테이블 내에서 유일하며, 각 학생을 고유하게 식별한다.
CREATE TABLE Students (
    StudentID INT PRIMARY KEY,
    Name VARCHAR(100),
    Age INT
);

 

외래키 (Foreign Key)

외래키는 하나의 테이블에서 다른 테이블의 기본키를 참조하는 컬럼이다.

외래키는 테이블 간의 관계를 정의하고, 데이터 무결성을 유지하는 데 사용된다.

  1. 참조 무결성: 외래키는 참조하는 기본키 값이 존재하는지 확인하여 데이터의 무결성을 유지한다.
  2. 중복 허용: 외래키 값은 중복될 수 있다. 즉, 여러 레코드가 동일한 외래키 값을 가질 수 있다.
  3. 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

+ Recent posts