관계 데이터 모델(Relational Data Model) 이란
데이터를 2차원 테이블(릴레이션) 형태로 표현하고,
데이터 간의 관계를 키(Key) 와 제약조건으로 관리하는 모델이다.
| 용어 | 의미 |
|---|---|
| 릴레이션 | 테이블 |
| 투플(tuple) | 행(row) |
| 속성(attribute) | 열(column) |
| 도메인(domain) | 속성이 가질 수 있는 값의 범위 |
데이터 구조 정의
도서(도서번호, 도서이름, 출판사, 가격)
👉 CREATE TABLE에 해당
실제 저장된 데이터
- 테이블에 들어 있는 행들의 집합
- 시간이 지나면 계속 변경됨
👉 INSERT / UPDATE / DELETE 대상
릴레이션은 다음 규칙을 반드시 만족해야 한다.
속성 값은 원자값(Atomic)
→ 배열, JSON 혼합 ❌ (관계 모델 기준)
속성 이름은 서로 달라야 함
한 속성의 값은 같은 도메인
속성의 순서는 의미 없음
중복된 투플 허용 안 함
투플의 순서는 의미 없음
📌 이 규칙이 깨지면 → 관계형 모델 위반
릴레이션과 릴레이션 사이의 연결
- PK(기본키)
- FK(외래키)를 통해 표현
예:
customers(customer_id PK)
orders(customer_id FK)
👉 JOIN의 이론적 근거
후보키 중 대표로 선택된 키
특징
예) id BIGINT AUTO_INCREMENT다른 릴레이션의 기본키를 참조하는 키
- 데이터 무결성 보장
- 관계 표현의 핵심
- JOIN 성능과 직결 → 인덱스 필수
price INT CHECK (price > 0)
ON DELETE RESTRICT
ON UPDATE CASCADE
📌 실무 사고의 90%가 여기서 발생
| 관계 모델 개념 | SQL |
|---|---|
| 릴레이션 | 테이블 |
| 투플 | 행 |
| 속성 | 컬럼 |
| 관계 | JOIN |
| 제약조건 | PK, FK, CHECK |
👉 SQL은 관계 모델의 구현 언어
관계형 DB 질의의 이론적 기초
📌 옵티마이저는 내부적으로 관계대수 기반으로 실행 계획 생성