[DB] 데이터베이스와 기본키의 핵심 개념

Hyunjun Kim·2025년 7월 22일
0

DBA

목록 보기
1/3

데이터베이스는 데이터를 체계적으로 저장하고 관리하기 위한 구조화된 시스템이다. 기본키는 데이터베이스의 핵심 구성 요소인 릴레이션에서 중요한 역할을 한다. 기본키와 관련된 주요 개념들을 학습해보자

릴레이션(Relation)

릴레이션은 데이터베이스에서 데이터를 저장하는 기본 단위로, 흔히 테이블이라고 불린다. 각 릴레이션은 속성(열, column)과 튜플(행, row)로 구성된다. 릴레이션은 튜플의 집합이며, 튜플은 속성의 집합이다. 따라서 릴레이션에서 튜플은 특정한 순서를 가지지 않으며, 임의의 순서로 나열될 수 있다. 모든 속성 값은 원자 값(atomic value)을 가지며, 각 속성은 릴레이션 내에서 유일한 이름을 가진다.

튜플(Tuple)

튜플은 릴레이션의 각 행(row)으로, 하나의 데이터 레코드를 나타낸다. 튜플은 릴레이션의 속성 값들로 구성되며, 고유해야 한다. 기본키는 각 튜플을 고유하게 식별하는 역할을 한다. 예를 들어, 학생 테이블에서 "학번"이 기본키라면, 각 튜플(학생)은 고유한 학번으로 구별된다.

고유성(Uniqueness)

기본키는 릴레이션 내에서 각 튜플을 유일하게 식별할 수 있어야 한다. 중복된 값을 가질 수 없다. 예를 들어, 학생 테이블에서 "학번"이 기본키인 경우, 두 학생이 동일한 학번을 가질 수 없다.

  • 관련 개념:
    • 후보키(Candidate Key): 튜플을 고유하게 식별할 수 있는 속성 또는 속성 집합이다. 기본키는 후보키 중 하나로 선택된다. 예: 학생 테이블에서 "학번"과 "주민등록번호"가 모두 고유성을 만족하면 둘 다 후보키가 될 수 있다.
    • 대체키(Alternate Key): 후보키 중 기본키로 선택되지 않은 키이다. 예: "학번"이 기본키로 선택되었다면, "주민등록번호"는 대체키가 된다.

널 값 불허(Not Null)

기본키는 널(NULL) 값을 가질 수 없다. 모든 튜플은 기본키 값을 반드시 가져야 한다. 널 값은 "값이 없음"을 의미하므로, 튜플을 식별할 수 없게 만든다. 예를 들어, 학생 테이블에서 "학번"이 기본키라면, 학번이 없는 학생 레코드는 허용되지 않는다.

속성(Attribute)

속성은 릴레이션의 열(column)으로, 데이터의 특정 특성을 나타낸다. 기본키는 하나 이상의 속성으로 구성될 수 있다. 단일 속성(예: 학번) 또는 복합 속성(예: 이름+생년월일)으로 정의될 수 있다.

  • 관련 개념:
    • 단순 속성(Simple Attribute): 더 이상 분해될 수 없는 속성이다. 예: 나이, 학번.
    • 복합 속성(Composite Attribute): 여러 하위 속성으로 구성된 속성이다. 예: 주소 = 시+구+동.
    • 복합키(Composite Key): 두 개 이상의 속성을 조합하여 기본키로 사용하는 경우이다. 예: 수강 테이블에서 "학생ID"와 "강의ID"를 함께 기본키로 설정하여 특정 학생의 특정 강의 수강 기록을 식별한다.

데이터 무결성(Integrity)

기본키는 데이터베이스의 데이터 무결성을 보장하는 데 핵심적인 역할을 한다.

개체 무결성(Entity Integrity)

기본키는 릴레이션의 각 튜플을 고유하게 식별해야 하며, 널 값을 가질 수 없다. 이는 모든 튜플이 고유하고 식별 가능해야 함을 보장한다. 예를 들어, 학생 테이블에서 "학번"이 기본키라면, 학번이 중복되거나 널 값이 있으면 개체 무결성이 위반된다.

참조 무결성(Referential Integrity)

외래키(Foreign Key)가 참조하는 기본키 값은 반드시 존재해야 한다. 외래키는 한 릴레이션의 속성이 다른 릴레이션의 기본키를 참조하는 키이다. 예를 들어, 수강 테이블의 "학생ID"가 학생 테이블의 "학번"(기본키)을 참조한다. 참조 무결성 제약은 외래키 값이 참조 대상 릴레이션의 기본키 값이거나 널이어야 함을 의미한다. 예: 수강 테이블에 "학생ID"가 1001인 레코드가 있다면, 학생 테이블에 학번 1001이 존재해야 한다.

키(Key)의 종류

기본키와 관련된 다양한 키 개념들이 데이터베이스 설계에서 사용된다.

슈퍼키(Super Key)

슈퍼키는 튜플을 고유하게 식별할 수 있는 속성 또는 속성 집합이다. 기본키는 슈퍼키의 부분집합이며, 최소성을 만족해야 한다. 예를 들어, 학생 테이블에서 {학번}, {학번, 이름}, {학번, 이름, 주소}는 모두 슈퍼키지만, {학번}만 최소성을 만족하므로 기본키로 적합하다.

후보키(Candidate Key)

후보키는 슈퍼키 중 최소성을 만족하는 키이다. 불필요한 속성이 없는 경우를 의미한다. 예를 들어, {학번}, {주민등록번호}가 후보키라면, 하나를 기본키로 선택한다.

기본키(Primary Key)

기본키는 후보키 중 하나를 선택하여 릴레이션의 튜플을 고유하게 식별하는 데 사용된다. 고유성, 널 값 불허, 최소성을 만족한다. 예를 들어, 학생 테이블에서 "학번"이 기본키로 선택된다.

대체키(Alternate Key)

대체키는 후보키 중 기본키로 선택되지 않은 키이다. 예를 들어, "주민등록번호"가 후보키였지만 기본키로 선택되지 않았다면 대체키가 된다.

외래키(Foreign Key)

외래키는 다른 릴레이션의 기본키를 참조하는 속성이다. 릴레이션 간 관계를 설정하고 참조 무결성을 유지한다. 예를 들어, 수강 테이블의 "학생ID"가 학생 테이블의 "학번"을 참조한다.

요약

기본키는 릴레이션에서 튜플을 고유하게 식별하는 핵심 요소로, 고유성, 널 값 불허, 최소성을 만족한다. 관련 개념으로는 후보키, 슈퍼키, 대체키, 외래키, 데이터 무결성(개체 무결성, 참조 무결성)이 있다. 릴레이션은 튜플의 집합이며, 속성은 원자 값을 가져야 한다. 이러한 개념들은 데이터베이스의 효율적 관리와 데이터 무결성 유지에 필수적이다.

profile
Data Analytics Engineer 가 되

0개의 댓글