개념적 세계에서는 ER 모델을 표현하여 엔티티를 표현했습니다.
논리적 세계에서는 관계 모델을 이용해 relation(릴레이션)을 표현합니다.
릴레이션은 테이블의 형태를 띄며, 튜플(행, 레코드)의 집합입니다.
정리하자면 다음과 같습니다.
- 테이블 : 릴레이션
- 행 : 튜플
- 열 : 애트리뷰트 (속성)

릴레이션에 관련된 용어들인데, 일부는 ER 모델링 용어와 공유합니다.
- 도메인 : 원자 값의 범위
- 릴레이션 스키마 : 릴레이션과 애트리뷰트의 집합
- 릴레이션 차수 : 릴레이션 애트리뷰트 개수
- 릴레이션 튜플
- 릴레이션 상태
릴레이션 튜플 순서는 의미가 없습니다.
릴레이션이 모두 만족해야 하는 제약조건이 존재합니다.
제약조건의 구성은 다음과 같습니다.
- 도메인 제약조건
- 키 제약조건
- 엔티티 무결성 제약조건
- 참조 무결성 제약조건
하나씩 살펴보면 이렇습니다.
1. 도메인 제약조건
- 한 애트리뷰트의 값은 그 애트리뷰트에 있는 하나의 원자 값이다. (복합 애트리뷰트가 아니다)
- 한 애트리뷰트 값은 반드시 해당 애트리뷰트 도메인에 속하는 원자 값이어야 한다.
2. 키 제약조건
- 모든 튜플에 대해서 키 애트리뷰트의 값은 서로 달라야 한다.
- 키가 무엇인지 정의하기 위해서는 슈퍼키의 정의가 필요합니다.
- 튜플을 구별하기 위해 설계자는 키 후보 중에서 하나를 임의로 골라 식별자로 사용하는데, 이를 기본키라고 합니다.
- 기본 키로 지정되지 않은 키는 보조키(유일키, 선택키)라고 합니다.
- 정리하자면 다음과 같습니다.
- 슈퍼키 : 모든 튜플 중에서 서로 다른 값을 가지는 애트리뷰트들의 집합
- 키(=후보키) : 슈퍼키 중에서 없어도 되는 애트리뷰트가 없는 슈퍼키
- 기본 키 : 식별자로 사용하기 위해 설계자가 임의로 정한 키
- 보조키, 유일키, 선택키 : 기본 키로 지정되지 않은 키
3. 엔티티 무결성 제약조건
- 기본키의 값은 NULL이 될 수 없습니다.
- 기본키가 NULL을 가지게 되면 튜플을 구별할 수 있는 수단이 존재하지 않기 때문입니다.
4. 참조 무결성 제약조건
- 튜플이 다른 튜플을 참조할 때, 참조되는 튜플이 반드시 존재해야 합니다.
릴레이션을 조작하다 보면 제약조건이 위반되는 경우가 있습니다.
이럴 때는 제약조건에 맞을 수 있도록 적절한 조치를 취하는 액션을 지정해야 합니다.
릴레이션의 기본 갱신 연산은 삽입, 삭제, 수정입니다. 연산 후 제약조건을 위반하지 않는 게 가장 좋지만, 위반하였을 경우 다음과 같은 처리 방안을 강구해야 합니다.
1. 삽입 연산
- 도메인에 맞지 않는 값 삽입 (도메인 제약조건 위반)
- 동일한 기본 키 삽입 (키 제약조건 위반)
- 기본 키 값을 NULL로 삽입 (엔티티 무결성 제약조건 위반)
- 외래 키의 값이 참조되는 릴레이션의 키 값으로 존재하지 않음 (참조 무결성 제약조건 위반)
- 제약 조건 위반 시 액션
- 해당 값 삽입 거부
- 위반 사실을 사용자에게 통보
2. 삭제 연산
- 튜플을 삭제하는 경우, 다른 테이블에서 참조하고 있는지 검사한 뒤 그렇지 않은 경우만 삭제 (참조 무결성 제약조건 때문)
- 제약 조건 위반 시 액션
- 삭제를 거부하거나
- 삭제되는 튜플을 참조하는 튜플들까지 모두 삭제하거나 (연쇄 삭제)
- 삭제되는 튜플을 참조하는 튜플에서 외래키 값을 NULL로 변경하거나 다른 튜플을 참조하도록 변경
3. 수정 연산
- ‘삭제 후 삽입’ 연산으로 간주될 수 있기 때문에 위 두가지 문제점이 모두 나타날 수 있습니다.
'Database' 카테고리의 다른 글
[Database] SQL(2) | DML – SELECT(1) (0) | 2025.04.29 |
---|---|
[Database] SQL(1) | DDL (0) | 2025.04.29 |
[Database] E-R 개념적 데이터 모델링 (0) | 2025.04.29 |
[Database] 데이터베이스 시스템 (0) | 2023.04.18 |
[Database] 데이터베이스 개요 (1) | 2023.04.17 |
댓글