관계형 데이터베이스¶
1. 관계형 모델 개념¶
데이터를 테이블(릴레이션) 형태로 표현합니다.
| 용어 | 설명 |
|---|---|
| 릴레이션(Relation) | 테이블 |
| 튜플(Tuple) | 행(Row) |
| 속성(Attribute) | 열(Column) |
| 도메인(Domain) | 속성이 가질 수 있는 값의 범위 |
| 기본키(PK) | 튜플을 유일하게 식별하는 속성 |
| 외래키(FK) | 다른 테이블의 기본키를 참조하는 속성 |
키의 종류¶
| 키 | 설명 |
|---|---|
| 슈퍼키 | 유일성을 만족하는 속성 집합 |
| 후보키 | 슈퍼키 중 최소성을 만족하는 것 |
| 기본키(PK) | 후보키 중 선택된 키, NULL 불가 |
| 대체키 | 기본키로 선택되지 않은 후보키 |
| 외래키(FK) | 참조 무결성을 위한 키 |
2. 정규화 (Normalization)¶
데이터 중복을 제거하고 이상(Anomaly) 현상을 방지합니다.
이상 현상¶
| 종류 | 설명 |
|---|---|
| 삽입 이상 | 불필요한 데이터를 함께 삽입해야 함 |
| 삭제 이상 | 튜플 삭제 시 다른 데이터도 함께 손실 |
| 갱신 이상 | 중복 데이터 중 일부만 수정되어 불일치 발생 |
정규형 단계¶
1NF (제1정규형)¶
모든 속성값이 원자값(단일값) 이어야 합니다.
2NF (제2정규형)¶
1NF 만족 + 부분 함수 종속 제거 (기본키의 일부에 종속된 속성 분리)
3NF (제3정규형)¶
2NF 만족 + 이행 함수 종속 제거 (A→B, B→C 이면 A→C 관계 제거)
BCNF (보이스-코드 정규형)¶
3NF 만족 + 모든 결정자가 후보키 이어야 합니다.
3NF를 만족해도 이상 현상이 발생할 수 있는 경우를 처리
3. ER 다이어그램¶
개체(Entity)-관계(Relationship) 를 도식화합니다.
표기 요소¶
| 기호 | 의미 |
|---|---|
| 직사각형 | 개체(Entity) |
| 타원 | 속성(Attribute) |
| 마름모 | 관계(Relationship) |
| 이중 타원 | 다중값 속성 |
| 밑줄 타원 | 기본키 속성 |
카디널리티¶
| 관계 | 설명 | 예시 |
|---|---|---|
| 1:1 | 하나에 하나 대응 | 사원 : 사원증 |
| 1:N | 하나에 여러 개 대응 | 부서 : 사원 |
| M:N | 여러 개에 여러 개 대응 | 학생 : 과목 |
M:N 관계는 관계형 DB에서 중간 테이블(연결 테이블) 로 구현
시험 포인트¶
- 정규화 단계: 1NF(원자값) → 2NF(부분종속 제거) → 3NF(이행종속 제거) → BCNF
- 기본키: NULL 불가, 유일성 보장
- 외래키: 참조 무결성 — 참조하는 테이블에 존재하는 값만 입력 가능
- 이상 현상 3가지: 삽입/삭제/갱신 이상
- M:N 관계: 반드시 중간 테이블로 분해