1. 관계 데이터 모델의 핵심 개념
릴레이션(Relation)
- 정의: 행(row)과 열(column)로 구성된 테이블
- 수학적 의미: 카티션 프로덕트의 부분집합
- 예시: 도서(도서번호, 도서이름, 출판사, 가격)
릴레이션 스키마 (Schema)
- 정의: 릴레이션의 데이터 구조 (= 테이블의 설계도)
- 구성 요소:
- 속성(Attribute): 열(column)
- 도메인(Domain): 속성이 가질 수 있는 값의 집합
- 차수(Degree): 속성의 개수
- 표기법:
릴레이션이름(속성1, 속성2, 속성3, ...)
- 예시:
도서(도서번호: integer, 도서이름: char(40), 출판사: char(40), 가격: integer)
릴레이션 인스턴스 (Instance)
- 정의: 스키마에 실제로 저장된 데이터의 집합
- 구성 요소:
- 투플(Tuple): 행(row)
- 카디널리티(Cardinality): 투플의 수
릴레이션 용어 정리
| 릴레이션 용어 | 같은 의미 | 파일 시스템 용어 |
|---|
| 릴레이션(Relation) | 테이블(Table) | 파일(File) |
| 스키마(Schema) | 내포(Intension) | 헤더(Header) |
| 인스턴스(Instance) | 외연(Extension) | 데이터(Data) |
| 투플(Tuple) | 행(Row) | 레코드(Record) |
| 속성(Attribute) | 열(Column) | 필드(Field) |
릴레이션의 특징 (중요!)
- 속성은 단일 값을 가짐
- 속성은 서로 다른 이름을 가짐
- 한 속성의 값은 모두 같은 도메인 값
- 속성의 순서는 상관없음
- 중복된 투플은 허용 안 됨
- 투플의 순서는 상관없음
2. 키(Key)
키의 종류와 관계
슈퍼키 (투플을 식별할 수 있는 속성의 집합)
├─ 후보키 (최소성을 만족하는 슈퍼키)
│ ├─ 기본키 (후보키 중 선정된 대표 키)
│ └─ 대체키 (선정되지 않은 후보키)
└─ 외래키 (다른 릴레이션의 기본키를 참조)
1) 슈퍼키 (Super Key)
- 투플을 유일하게 식별할 수 있는 속성 또는 속성의 집합
2) 후보키 (Candidate Key)
- 투플을 유일하게 식별할 수 있는 속성의 최소 집합
- 최소성 + 유일성
3) 기본키 (Primary Key, PK)
- 여러 후보키 중 대표로 선정한 키
- 표기법: 속성에 밑줄
- 선정 기준:
- NULL 값 불가
- 고유한 값
- 값의 변동이 적을 것
- 최대한 적은 수의 속성
4) 외래키 (Foreign Key, FK)
- 다른 릴레이션의 기본키를 참조하는 속성
- 릴레이션 간의 관계를 표현
- 특징:
- NULL 값과 중복값 허용
- 참조하는(FK)와 참조되는(PK)의 도메인은 같아야 함
- 자기 자신의 기본키를 참조 가능
3. 무결성 제약조건
1) 도메인 무결성 제약조건
2) 개체 무결성 제약조건 (기본키 제약)
- 기본키는 NULL 값을 가질 수 없음
- 릴레이션 내에 오직 하나의 값만 존재해야 함
3) 참조 무결성 제약조건 (외래키 제약)
- 외래키 값은 참조되는 릴레이션의 기본키 값이어야 함
- 부모 릴레이션 삭제 시 옵션:
RESTRICTED: 삭제 거부
CASCADE: 관련 투플 함께 삭제
DEFAULT: 기본값으로 변경
NULL: NULL로 설정
4. 관계대수 (Relational Algebra)
기본 연산자 (5개)
1) 셀렉션 (Selection) σ
- 목적: 조건에 맞는 투플(행) 선택
- 예시:
σ가격<=8000(도서)
2) 프로젝션 (Projection) π
- 목적: 원하는 속성(열) 선택
- 예시:
π이름,주소,핸드폰(고객)
3) 합집합 (Union) ∪
4) 차집합 (Difference) −
5) 카티션 프로덕트 (Cartesian Product) ×
- 정의: 두 릴레이션의 모든 가능한 조합
- 결과: |R| × |S| 개의 투플 생성
- 예시:
- 고객(3개 투플) × 주문(4개 투플) = 12개 투플
- 모든 속성이 합쳐짐
- 중요: 조인 연산의 기초
유도 연산자
1) 조인 (Join) ⋈
- 정의: 공통 속성을 기준으로 두 릴레이션을 결합
- 공식:
R⋈S = σc(R × S) (카티션 프로덕트 + 셀렉션)
조인의 종류:
1. 세타조인 (θ): 비교 연산자 사용 (=, ≠, ≤, ≥, <, >)
2. 동등조인: = 연산자 사용
3. 자연조인: 동등조인 + 중복 속성 제거
4. 외부조인:
- 왼쪽 외부조인 ⟕
- 오른쪽 외부조인 ⟖
- 완전 외부조인 ⟗
2) 디비전 (Division) ÷
- 정의: 속성값의 집합으로 연산
- 공식:
R ÷ S = πA(R) − πA((πA(R) × S) − R)
- 의미: "모든 S의 값을 가진 R의 A 값"