데이터 모델
- 데이터를 어떻게 표현하고 다룰지에 대한 설계 방식이다.
- 데이터 구조와 연산, 제약 조건의 3가지 요소로 구성된다.
| 데이터 구조 | 데이터를 어떤 형태로 저장하는지를 표현하는 추상적 표현으로, 개념상의 저장 구조 |
| 연산 (operation) | 개념적인 데이터 구조 안의 데이터를 어떤 방식으로 처리하는지를 표현함 (데이터를 조작하는 방법 표현) |
| 제약 조건 (constraint) | 데이터 구조 안에 데이터를 저장할 때의 구조적 제약 사항과 연산을 적용할 때의 행위적 제약 사항을 표현 |
관계형 데이터 모델
- 데이터를 테이블(표)의 형태로 저장하고, 테이블 간의 관계를 설정할 수 있게 만든 모델
- 쉽게 말해, 엑셀처럼 행과 열로 된 표로 데이터를 다루는데 이 표들이 서로 연결될 수 있도록 설계된 것이다.
| 데이터 구조 (relation) | 데이터를 저장하는 기본 단위는 릴레이션(=테이블)이다. | 어떤 데이터를 어떻게 저장할지 형태 지정 |
| 연산 (관계 대수) | 테이블에 저장된 데이터를 검색, 조합, 수정하는 바법 | |
| 제약 조건 | 잘못된 데이터가 들어가지 않도록 하는 규칙 | ID는 중복 불가, 나이는 음수 불가 등 |
릴레이션의 구성 요소

속성과 튜플
- 속성(attribute) : 테이블의 열, 데이터를 표현하는 가장 작은 논리적 단위
- 튜플(tuple) : 테이블의 행, 현실 세계의 개체를 표현함. 각 속성 값의 조합
- 도메인(domain) : 각 속성이 가질 수 있는 값들의 범위 (어떤 값들이 들어올 수 있는지 정해놓은 집합)
| 나이 속성의 도메인 | 1 - 150 사이의 정수 |
| 성별 속성의 도메인 | '남', '여' |
| 학년 속성의 도메인 | {1, 2, 3, 4} |
속성마다 허용되는 값의 종류가 정해져있으며, 도메인이 맞지 않으면 데이터 오류가 발생한다.
카디널리티와 차수
각 릴레이션은 카디널리티와 차수를 통해 그 구성이 정의된다.
- 카디널리티(cardinality) : 릴레이션 안의 전체 튜플의 개수로, 입력/수정/삭제를 통해 계속 변화하는 동적 특성을 지님.
- 차수(degree) : 릴레이션을 구성하는 전체 속성의 개수를 말하며, 각 튜플이 가지는 속성 값의 개수는 릴레이션의 차수와 같다는 정적 특성을 지님.
릴레이션 인스턴스
- 어느 한 특정 시점에 릴레이션에 존재하는 튜플들의 집합
- 보통 테이블의 첫 번째 행인 header를 제외한 나머지 모든 행들의 집합으로 표현한다.
- 시간에 따라 변하는 동적인 특성을 가진다.
관계 연산
관계형 데잍어 모델에서 릴레이션을 조작하기 위한 연산으로, 관계 대수와 관계 해석이라는 두 가지 방식이 있다.
관계 대수
- 사용자가 필요로 하는 데이터를 획득하는 절차
- 연산들의 적용 순서를 말한다.
- 실행 순서를 순차적으로 명세하는 절차적 표현 방법으로, 관계 연산의 기본 토대를 제공한다.
관계 해석
- 사용자가 필요한 데이터가 무엇인지, 연산들의 최종 결과만을 명세한다.
- 선언적 표현 방법이며, 비절차적 표현 방법이다.
둘 다 기능이나 표현력은 동등하며 SQL 언어의 작성 방법이나 내부 처리 방식의 이론적 기반을 제공한다.
무결성 제약 조건
데이터의 정확성과 일관성을 유지하기 위한 규칙과 조건을 의미한다.
기본키(PK)
각 행을 유일하게 구분해주는 컬럼(속성)이다.
- 예를 들어, 학생에 관한 데이터에서 '학번'은 모든 학생을 구별할 수 있는 고유한 번호이므로 기본키로 설정할 수 있다.
외래키(FK)
다른 테이블의 기본키를 참조하는 컬럼으로, 두 테이블을 연결해주는 다리 역할을 한다.
- 반드시 참조하는 기본키 값이 존재해야 한다.
- 예를 들어, 고객 테이블과 주문 테이블이 있을 때, 주문 테이블의 고객 ID는 고객 테이블의 고객 ID를 참조한다. 이것을 외래키라고 한다.

무결성 제약 조건 4가지
| 도메인 무결성 | 속성(칼럼)이 정해진 형식의 갑산 가질 수 있도록 제한하는 것 |
| 개체 무결성 | 기본키(PK)는 절대 중복되거나 비워지면 안 된다는 것 |
| 참조 무결성 | 외래키(FK)가 가리키는 값은 반드시 존재하는 값이어야 한다. |
| 사용자 정의 무결성 | 개발자가 직접 만든 비즈니스 규칙이다. |
'Database' 카테고리의 다른 글
| [Database] 빅데이터의 탐색 (2) 열 지향 스토리지 (3) | 2025.07.22 |
|---|---|
| [Database] 빅데이터의 탐색 (1) 크로스 집계 (0) | 2025.07.22 |
| [Database] 빅데이터 기초 지식 (2) 데이터 웨어하우스와 데이터 마트 (0) | 2025.07.22 |
| [Database] 빅데이터 기초 지식 (1) 데이터 처리 흐름 (3) | 2025.07.21 |
| [Database] 데이터베이스의 개념 (0) | 2025.07.21 |