공부/데이터베이스 개론

5. 관계 데이터 모델과 제약

dev.jelee 2024. 12. 9. 23:43

이미 정리된 내용을 직접 작성하여 옮기면서 공부하기 위해 글 작성함.


5. 관계 데이터 모델과 제약

5.1 관계 데이터 모델의 기본 용어와 구성

관계 데이터 모델(Relational Data Model)

  • 데이터를 테이블(릴레이션, Relation) 형식으로 표현하는 데이터 모델.
  • 데이터를 행(Row)과 열(Column)로 구성된 2차원 구조로 관리.

기본용어

  • 릴레이션(Relation): 데이터가 저장된 테이블.
  • 튜플(Tuple): 릴레이션의 한 행, 하나의 레코드.
  • 속성(Attribute): 릴레이션의 한 열, 데이터의 속성(필드).
  • 도메인(Domain): 속성이 가질 수 있는 값들의 집합.
  • 차수(Degree): 릴레이션에 포함된 속성의 개수.
  • 카디널리티(Cardinality): 릴레이션에 포함된 튜플의 개수.
  • 스키마(Schema): 릴레이션의 구조를 정의하는 것(속성 이름, 데이터 타입, 제약 조건 등).

릴레이션의 구조 예시

  • 학생(학번, 이름, 학과, 입학년도)

5.2 릴레이션의 특성과 키의 종류

릴레이션의 특정

  • 행(Row)의 유일성: 한 릴레이션의 모든 튜플은 유일.
  • 속성의 순서 무관: 속성의 순서는 의미가 없음.
  • 값의 원자성: 속성 값은 더 이상 분해되지 않는 원자 값(Atomic Value).
  • 중복 튜플 없음: 릴레이션에는 동일한 튜플이 존재하지 않음.

키(Key)의 종류

  • 슈퍼키(Super Key): 튜플을 고유하게 식별할 수 있는 속성 또는 속성의 집합.
  • 후보키(Candidate Key): 최소 슈퍼키로, 중복되지 않는 식별자.
  • 기본키(Primary Key): 후보키 중 선택된 주요 키로, NULL 값을 가질 수 없음.
  • 대체키(Alternate Key): 기본키로 선택되지 않은 후보키.
  • 외래키(Foreign Key): 다른 릴레이션의 기본키를 참조하는 속성.

키 예시

학생 테이블

기본키: 학번

후보키: 학번, (이름, 학과)

 

5.3 개체 무결성과 참조 무결성 제약조건

개체 무결성(Entity Integrity)

  • 정의: 릴레이션의 키본키는 고유해야 하며, NULL 값을 가질 수 없음.
  • 목적: 각 튜플이 고유하게 식별될 수 있도록 보장.

참조 무결성(Referential Integrity)

  • 정의: 외래키는 참조하는 릴레이션의 기본키 값이어야 하거나, NULL일 수 있음.
  • 목적: 릴레이션 간의 일관성을 유지.

참조 무결성 위반 해결 방법

  • ON DELETE CASCADE: 참조하는 기본키가 삭제되면 외래키도 함께 삭제.
  • ON DELETE SET NULL: 참조하는 기본키가 삭제되면 외래키 값을 NULL로 설정.

요약

  • 관계 데이터 모델은 데이터를 릴레이션(테이블)로 표현하며, 튜플과 속성으로 구성된다.
  • 키는 튜플을 고유하게 식별하며, 기본키와 외래키는 무결성을 보장한다.
  • 개체 무결성과 참조 무결성은 데이터베이스의 정확성과 일관성을 유지하는 필수 제약조건이다.

내 생각 정리

관계 데이터 모델의 기본 용어 잘 알아두기

  • 릴레이션: 데이터가 저장된 테이블.
  • 튜플: 릴레이션의 한 행, 하나의 레코드. (흔히 레코드라고 부른다고 함)
  • 속성: 릴레이션의 한 열, 데이터의 속성(필드)
  • 도메인: 속성이 가질 수 있는 값들의 집합.
  • 차수: 릴레이션에 포함된 속성의 개수.
  • 카디널리티: 릴레이션에 포함된 튜플의 개수
  • 스키마: 릴레이션의 구조를 정의하는 것(속성 이름, 데이터 타입, 제약 조건 등)

 

슈퍼키, 후보키, 기본키, 대체키, 외래키에 대해서 잘 알아두기.

  • 슈퍼키: 튜플을 고유하게 식별할 수 있는 속성 또는 속성의 집합.
  • 후보키: 최소 슈퍼키로, 중복되지 않는 식별자.
  • 기본키: 후보키 중 선택된 주요 키로, NULL 값을 가질 수 없음.
  • 대체키: 기본키로 선택되지 않은 후보키.
  • 외래키: 다른 릴레이션의 기본키를 참조하는 속성.

 

생각 정리:

  • 슈퍼키는 튜플(레코드)을 고유하게 식별할 수 있는 거. 즉, row 개념.
  • 후보키는 기본키가 될 수 있는 고유한 식별자가 여러개 있다고 치면 전부다 후보키다. 그 중에서 기본키를 1개 택하면 나머지는 후보키가 된다.
  • 기본키는 식별할 수 있는 고유한 값. 고유한 키다.
  • 대체키는 기본키로 선택되지 않은 것을 후보키라고 한다.
  • 외래키는 다른 릴레이션(테이블)의 기본키를 참조하는 속성(column)을 말한다.