관계형 데이터베이스 모델은 데이터를 행과 열로 구성된 릴레이션(Relation)으로 표현하고, 키와 무결성 제약조건을 이용하여 데이터의 정확성과 관계를 유지하는 방식입니다. 오늘날 가장 널리 사용되는 데이터베이스 모델이며, SQL 기반 DBMS의 기본 구조를 이해하려면 릴레이션·튜플·속성·도메인·키·무결성의 의미를 정확히 구분해야 합니다.
이 장에서는 릴레이션의 구조와 특성, 차수와 카디널리티, 도메인의 의미를 먼저 살펴봅니다. 이어서 슈퍼키·후보키·기본키·대체키·외래키를 비교하고, 개체 무결성·참조 무결성·도메인 무결성이 관계형 데이터베이스에서 어떤 역할을 하는지 정리합니다.
이 장의 핵심 내용
- 릴레이션은 행과 열로 구성된 2차원 테이블 형태의 논리적 데이터 구조입니다.
- 튜플은 릴레이션의 한 행이며, 속성은 릴레이션의 한 열입니다.
- 카디널리티는 튜플의 수, 차수는 속성의 수를 의미합니다.
- 도메인은 하나의 속성이 가질 수 있는 원자값들의 집합입니다.
- 릴레이션의 튜플과 속성은 이론적으로 순서가 없으며, 중복 튜플은 허용하지 않습니다.
- 슈퍼키는 튜플을 유일하게 식별할 수 있는 모든 속성 집합입니다.
- 후보키는 유일성과 최소성을 모두 만족하는 최소 슈퍼키입니다.
- 기본키는 후보키 중 대표로 선택한 키이며, 중복값과 NULL 값을 허용하지 않습니다.
- 대체키는 기본키로 선택되지 않은 나머지 후보키입니다.
- 외래키는 다른 릴레이션 또는 같은 릴레이션의 기본키·고유키를 참조하여 데이터 사이의 관계를 표현합니다.
- 개체 무결성은 기본키의 유일성과 NOT NULL을 보장합니다.
- 참조 무결성은 외래키 값이 참조 대상 키와 일치하거나 허용된 경우 NULL이어야 함을 요구합니다.
- 도메인 무결성은 속성값이 지정된 데이터 형식·범위·규칙을 만족하도록 제한합니다.
관계형 데이터베이스 모델은 어떤 구조일까?
관계형 데이터베이스 모델은 데이터를 릴레이션이라는 표 형태로 표현합니다. 하나의 릴레이션은 여러 속성과 튜플로 구성되며, 각 속성은 일정한 도메인을 가집니다. 실제 DBMS에서는 릴레이션을 테이블, 튜플을 행 또는 레코드, 속성을 열 또는 필드라고 부르는 경우가 많습니다.
| 관계형 모델 용어 | 일반적인 DBMS 용어 | 설명 |
|---|---|---|
| 릴레이션 Relation | 테이블 | 관련된 데이터를 행과 열로 구성한 논리적 구조 |
| 튜플 Tuple | 행·레코드 | 하나의 개체나 사건을 나타내는 속성값의 집합 |
| 속성 Attribute | 열·필드 | 릴레이션을 구성하는 데이터 항목의 이름과 의미 |
| 도메인 Domain | 허용값 집합·데이터 범위 | 한 속성이 가질 수 있는 원자값들의 집합 |
| 릴레이션 스키마 | 테이블 정의 | 릴레이션 이름과 속성 이름·도메인 등 구조에 대한 정의 |
| 릴레이션 인스턴스 | 현재 저장된 행 집합 | 특정 시점에 릴레이션에 실제로 들어 있는 튜플들의 집합 |

튜플과 속성은 어떻게 구분할까?
튜플은 릴레이션에서 하나의 행을 의미하며, 한 학생·한 상품·한 주문처럼 하나의 개체 또는 사건에 대한 속성값을 묶어 표현합니다. 속성은 릴레이션의 한 열을 의미하며, 학번·이름·학과·학년처럼 데이터가 어떤 의미를 가지는지 나타냅니다.
| 구분 | 튜플 | 속성 |
|---|---|---|
| 표의 위치 | 행 | 열 |
| 표현 대상 | 하나의 개체나 사건 | 개체나 사건의 한 가지 특성 |
| 일반 용어 | 레코드·행 | 필드·열 |
| 예시 | 한 학생의 학번·이름·학과·학년 전체 | 학번, 이름, 학과, 학년 각각 |
| 개수 용어 | 카디널리티 | 차수 |
카디널리티와 차수는 무엇일까?
| 용어 | 의미 | 계산 기준 |
|---|---|---|
| 카디널리티 Cardinality | 릴레이션에 들어 있는 튜플의 수 | 행의 개수 |
| 차수 Degree | 릴레이션을 구성하는 속성의 수 | 열의 개수 |
예시: 학번·이름·학과·학년의 4개 속성과 학생 7명의 튜플을 가진 릴레이션이라면 차수는 4, 카디널리티는 7입니다. 후보키의 개수는 차수나 카디널리티를 계산할 때 포함하지 않습니다.
도메인은 무엇을 의미할까?
도메인은 하나의 속성이 가질 수 있는 원자값들의 집합입니다. 데이터 형식뿐 아니라 허용 범위·표현 형식·업무 규칙까지 포함하여 속성값을 제한할 수 있습니다. 같은 도메인을 사용하는 속성은 서로 비교하거나 관계를 설정하기 쉬워집니다.
| 속성 | 가능한 도메인 예 | 허용되지 않는 값 예 |
|---|---|---|
| 학년 | 정수 1·2·3·4 | 0, 5, ‘삼학년’ |
| 성별 코드 | M·F 또는 조직에서 정의한 코드 집합 | 정의하지 않은 임의 문자 |
| 수강학점 | 0 이상 일정 상한 이하의 정수 | 음수·문자열 |
| 입학일 | 유효한 날짜 형식 | 존재하지 않는 날짜 |
주의: 도메인은 단순히 데이터 형식만 의미하지 않습니다. 정수형이라도 1부터 4까지만 허용하는 것처럼 범위와 업무 규칙까지 포함할 수 있습니다.
릴레이션은 어떤 특성을 가질까?
| 특성 | 설명 |
|---|---|
| 튜플의 유일성 | 하나의 릴레이션에는 완전히 동일한 튜플이 중복되어 존재하지 않습니다. |
| 튜플의 무순서성 | 릴레이션에서 튜플의 물리적·표시 순서는 논리적 의미를 가지지 않습니다. |
| 속성의 무순서성 | 속성은 이름으로 구분하므로 열의 배치 순서는 릴레이션의 의미를 바꾸지 않습니다. |
| 속성의 원자성 | 하나의 속성값은 더 이상 나눌 필요가 없는 하나의 원자값으로 표현합니다. |
| 속성 이름의 유일성 | 한 릴레이션 안에서 각 속성은 서로 구분되는 이름을 가져야 합니다. |
| 동일 속성의 도메인 일관성 | 한 속성의 모든 값은 같은 도메인에 속해야 합니다. |
실제 DBMS와의 구분: 관계형 이론에서는 튜플과 속성의 순서가 의미를 가지지 않습니다. 실제 SQL 조회 결과는 표시 순서가 나타날 수 있지만, 원하는 순서를 보장하려면 ORDER BY를 명시해야 합니다.
키는 왜 필요할까?
키(Key)는 릴레이션에서 튜플을 유일하게 식별하거나 다른 릴레이션과 관계를 연결하기 위해 사용하는 속성 또는 속성 집합입니다. 같은 릴레이션에서도 유일하게 식별할 수 있는 속성 조합은 여러 개 존재할 수 있으며, 최소성 충족 여부와 대표키 선택 여부에 따라 슈퍼키·후보키·기본키·대체키로 구분합니다.
| 키 종류 | 유일성 | 최소성 | 주요 의미 |
|---|---|---|---|
| 슈퍼키 | 만족 | 필수 아님 | 튜플을 유일하게 식별할 수 있는 모든 속성 집합 |
| 후보키 | 만족 | 만족 | 불필요한 속성을 제거한 최소 슈퍼키 |
| 기본키 | 만족 | 만족 | 후보키 중 대표로 선택한 키 |
| 대체키 | 만족 | 만족 | 기본키로 선택되지 않은 나머지 후보키 |
| 외래키 | 릴레이션 자체에서는 중복 가능 | 해당 없음 | 다른 릴레이션 또는 같은 릴레이션의 기본키·고유키를 참조 |

슈퍼키는 어떤 키일까?
슈퍼키(Super Key)는 하나 이상의 속성으로 구성되며 릴레이션의 모든 튜플을 유일하게 식별할 수 있는 속성 집합입니다. 유일성은 만족하지만 불필요한 속성을 포함할 수 있으므로 최소성은 반드시 만족하지 않습니다.
학생 릴레이션에서 학번과 주민번호가 각각 모든 학생을 유일하게 식별할 수 있다고 가정하면 다음과 같은 속성 집합은 모두 슈퍼키가 될 수 있습니다.
- {학번}
- {주민번호}
- {학번, 이름}
- {주민번호, 이름}
- {학번, 주민번호}
- {학번, 주민번호, 이름, 나이}
후보키는 슈퍼키와 어떻게 다를까?
후보키(Candidate Key)는 유일성과 최소성을 모두 만족하는 키입니다. 즉, 모든 튜플을 유일하게 식별할 수 있어야 하며, 후보키를 구성하는 속성 중 어느 하나라도 제거하면 유일하게 식별할 수 없어야 합니다.
| 조건 | 설명 | 판단 기준 |
|---|---|---|
| 유일성 | 키값으로 모든 튜플을 서로 다르게 식별할 수 있음 | 서로 다른 튜플이 같은 키값을 가지지 않음 |
| 최소성 | 유일성을 유지하는 데 꼭 필요한 속성만 포함 | 속성 하나를 제거하면 더 이상 유일하게 식별하지 못함 |
후보키인 경우
{학번}만으로 모든 학생을 유일하게 식별할 수 있다면 학번은 유일성과 최소성을 모두 만족합니다.
후보키가 아닌 경우
{학번, 이름}은 유일하지만 학번만으로도 식별할 수 있으므로 불필요한 이름을 포함하여 최소성을 만족하지 않습니다.
기본키와 대체키는 어떻게 선택할까?
기본키(Primary Key)는 후보키 중 릴레이션을 대표하도록 선택한 키입니다. 기본키는 각 튜플을 유일하게 식별해야 하므로 중복값을 허용하지 않으며, 식별값이 없는 상태를 허용할 수 없으므로 NULL 값도 가질 수 없습니다. 한 릴레이션에는 기본키를 하나만 지정하지만, 기본키가 여러 속성으로 구성된 복합키일 수는 있습니다.
대체키(Alternate Key)는 후보키가 둘 이상일 때 기본키로 선택되지 않은 나머지 후보키입니다. 예를 들어 학번과 주민번호가 각각 후보키이고 학번을 기본키로 선택하면 주민번호는 대체키가 됩니다.
| 구분 | 기본키 | 대체키 |
|---|---|---|
| 출발점 | 후보키 중 하나 | 후보키 중 기본키로 선택되지 않은 키 |
| 개수 | 릴레이션당 하나 | 0개 이상 |
| 중복값 | 허용하지 않음 | 후보키이므로 허용하지 않음 |
| NULL | 허용하지 않음 | 후보키이므로 원칙적으로 허용하지 않음 |
| 예시 | 학번 | 주민번호 |
구현 참고: 관계형 이론에서 후보키는 모든 튜플을 식별할 수 있는 값을 가져야 합니다. 다만 SQL DBMS에서 대체키를 UNIQUE 제약으로 구현할 때 NULL 허용 방식은 제품에 따라 달라질 수 있습니다.
기본키 선택 기준: 값이 자주 바뀌지 않고, 짧고 단순하며, 항상 존재하고, 개인정보나 업무 규칙 변화에 지나치게 의존하지 않는 후보키가 적합합니다.
외래키는 어떤 관계를 표현할까?
외래키(Foreign Key)는 한 릴레이션의 속성 또는 속성 집합이 다른 릴레이션이나 같은 릴레이션의 기본키 또는 고유키를 참조하도록 지정한 키입니다. 외래키를 이용하면 학생과 수강, 고객과 주문처럼 데이터 사이의 관계를 연결하고 참조 무결성을 유지할 수 있습니다.
| 릴레이션 | 주요 속성 | 키 역할 |
|---|---|---|
| 학생 | 학번, 이름, 학과 | 학번은 기본키 |
| 수강 | 수강번호, 학번, 과목번호, 성적 | 수강번호는 기본키, 학번은 학생 릴레이션을 참조하는 외래키 |
외래키 주의: 외래키는 현재 릴레이션의 튜플을 유일하게 식별하기 위한 키가 아니므로 중복값을 가질 수 있습니다. 또한 업무 규칙과 제약 설정에 따라 NULL을 허용할 수도 있습니다.
무결성 제약조건은 왜 필요할까?
무결성(Integrity)은 데이터가 정확하고 일관된 상태를 유지하는 성질입니다. 관계형 데이터베이스에서는 잘못된 값의 입력, 중복 식별자, 존재하지 않는 대상을 참조하는 외래키 등을 방지하기 위해 개체 무결성·참조 무결성·도메인 무결성 등의 제약조건을 사용합니다.
| 무결성 종류 | 핵심 규칙 | 위반 예 |
|---|---|---|
| 개체 무결성 | 기본키는 중복값과 NULL 값을 가질 수 없음 | 두 학생이 같은 학번 사용, 학번이 NULL |
| 참조 무결성 | 외래키는 참조 대상의 기본키·고유키 값과 일치하거나 허용된 경우 NULL이어야 함 | 존재하지 않는 학번을 수강 테이블에 입력 |
| 도메인 무결성 | 속성값은 정의된 데이터 형식·범위·규칙을 만족해야 함 | 학년에 5 입력, 날짜 열에 임의 문자열 입력 |
| 사용자 정의 무결성 | 조직의 업무 규칙에 따라 추가 제약조건을 만족해야 함 | 수강 가능 학점을 초과한 신청 |
개체 무결성은 무엇을 보장할까?
개체 무결성(Entity Integrity)은 각 튜플이 기본키를 통해 반드시 유일하게 식별되어야 한다는 규칙입니다. 기본키값이 중복되거나 NULL이면 어떤 튜플을 가리키는지 확정할 수 없으므로 허용하지 않습니다.
참조 무결성은 무엇을 보장할까?
참조 무결성(Referential Integrity)은 외래키가 참조하는 대상이 실제로 존재하도록 보장합니다. 외래키 값은 참조 대상 릴레이션의 기본키 또는 고유키 값 중 하나와 일치해야 하며, 관계가 선택 사항이고 제약조건이 허용한다면 NULL일 수 있습니다.
삭제·변경 주의: 참조 중인 기본키를 변경하거나 삭제할 때는 제한·연쇄 갱신·연쇄 삭제·NULL 설정 등의 참조 동작을 설계해야 합니다. 무조건 함께 변경하거나 삭제되는 것은 아닙니다.
도메인 무결성은 무엇을 보장할까?
도메인 무결성(Domain Integrity)은 각 속성값이 해당 속성에 지정된 도메인 안에 있도록 보장합니다. 데이터 형식, 길이, 허용 범위, 기본값, NOT NULL, CHECK 등의 제약조건을 이용하여 구현할 수 있습니다.
시험에서 자주 혼동되는 개념
튜플과 속성
튜플은 행이며 하나의 개체를 나타내고, 속성은 열이며 개체의 한 가지 특성을 나타냅니다.
카디널리티와 차수
카디널리티는 튜플의 수, 차수는 속성의 수입니다. 후보키의 개수는 둘의 계산에 포함하지 않습니다.
슈퍼키와 후보키
슈퍼키는 유일성만 만족하고, 후보키는 유일성과 최소성을 모두 만족합니다.
후보키와 기본키
후보키는 여러 개일 수 있지만, 기본키는 후보키 중 대표로 선택한 하나입니다.
기본키와 대체키
기본키는 후보키 중 선택된 키이고, 대체키는 기본키로 선택되지 않은 나머지 후보키입니다.
기본키와 외래키
기본키는 현재 릴레이션의 튜플을 식별하고, 외래키는 다른 릴레이션의 키를 참조하여 관계를 표현합니다.
개체 무결성과 참조 무결성
개체 무결성은 기본키의 유일성과 존재를 보장하고, 참조 무결성은 외래키가 실제 참조 대상을 가리키도록 보장합니다.
참조 무결성과 도메인 무결성
참조 무결성은 릴레이션 사이의 관계를 통제하고, 도메인 무결성은 한 속성이 가질 수 있는 값의 형식과 범위를 통제합니다.
이번 장 핵심 요약
- 관계형 데이터베이스 모델은 데이터를 행과 열로 구성된 릴레이션으로 표현합니다.
- 튜플은 릴레이션의 행이며, 속성은 릴레이션의 열입니다.
- 카디널리티는 튜플의 수이고 차수는 속성의 수입니다.
- 도메인은 한 속성이 가질 수 있는 원자값들의 집합입니다.
- 릴레이션은 중복 튜플을 허용하지 않고, 튜플과 속성의 순서는 논리적 의미를 가지지 않습니다.
- 하나의 속성값은 원자값이어야 하며 같은 속성의 값은 같은 도메인에 속해야 합니다.
- 슈퍼키는 튜플을 유일하게 식별할 수 있는 모든 속성 집합입니다.
- 후보키는 유일성과 최소성을 모두 만족하는 최소 슈퍼키입니다.
- 기본키는 후보키 중 대표로 선택한 하나의 키입니다.
- 대체키는 기본키로 선택되지 않은 나머지 후보키입니다.
- 기본키는 중복값과 NULL 값을 가질 수 없습니다.
- 외래키는 다른 릴레이션 또는 같은 릴레이션의 기본키·고유키를 참조합니다.
- 외래키는 중복값을 가질 수 있으며 제약 설정에 따라 NULL을 허용할 수 있습니다.
- 개체 무결성은 기본키를 통해 각 튜플의 유일한 식별을 보장합니다.
- 참조 무결성은 외래키가 존재하는 참조 대상과 연결되도록 보장합니다.
- 도메인 무결성은 속성값이 정해진 형식·범위·규칙을 만족하도록 제한합니다.
복습 문제
관계형 모델에서 하나의 행을 의미하는 용어는?
튜플(Tuple)입니다.
관계형 모델에서 하나의 열을 의미하는 용어는?
속성(Attribute)입니다.
릴레이션에 들어 있는 튜플의 수를 무엇이라고 할까?
카디널리티(Cardinality)입니다.
릴레이션을 구성하는 속성의 수를 무엇이라고 할까?
차수(Degree)입니다.
한 속성이 가질 수 있는 원자값들의 집합은?
도메인(Domain)입니다.
모든 튜플을 유일하게 식별하지만 최소성은 반드시 만족하지 않는 키는?
슈퍼키입니다.
유일성과 최소성을 모두 만족하는 키는?
후보키입니다.
후보키 중 릴레이션의 대표로 선택한 키는?
기본키입니다.
기본키로 선택되지 않은 나머지 후보키는?
대체키입니다.
다른 릴레이션의 기본키나 고유키를 참조하는 키는?
외래키입니다.
기본키가 중복값이나 NULL 값을 가질 수 없도록 하는 무결성은?
개체 무결성입니다.
외래키가 실제 존재하는 참조 대상의 키와 연결되도록 하는 무결성은?
참조 무결성입니다.
속성값이 지정된 형식과 범위를 만족하도록 하는 무결성은?
도메인 무결성입니다.
학생 릴레이션의 학번을 수강 릴레이션에서 참조할 때 수강 릴레이션의 학번은 어떤 키일까?
외래키입니다.
참고자료
- 학습 범위 — 사무자동화산업기사 제1과목 사무자동화 시스템, 관계형 데이터베이스 모델
- Q-Net — 사무자동화산업기사 종목별 상세정보 및 출제기준
- IBM — 슈퍼키·후보키·기본키·외래키 개념
- IBM — 기본키와 후보키
- IBM — 후보키·외래키와 관계형 데이터베이스 정규화
- PostgreSQL Documentation — 기본키·외래키·고유성·NOT NULL 제약조건
- Oracle Database Concepts — 데이터 무결성과 참조 무결성
- IBM Db2 — 관계형 데이터베이스의 키
이 글은 사무자동화산업기사 시험 범위에 포함된 관계형 데이터베이스 모델, 릴레이션의 구조와 특성, 키의 종류, 데이터 무결성 개념을 이해하고 복습할 수 있도록 재구성한 정리입니다. 관계형 이론의 용어와 실제 DBMS의 SQL 제약조건 구현은 제품과 표준에 따라 세부 동작이 달라질 수 있습니다. 실제 데이터베이스 설계에서는 사용하는 DBMS의 최신 공식 문서와 업무 규칙을 함께 확인해야 합니다.