01. 관계형 데이터 모델 (Relational DataBase Model, RDBM)
- 관계형 데이터 모델: 데이터를 2차원 테이블 형식으로 정의/표현
- 용어
- 릴레이션 (Relation): 테이블 형태
- 릴레이션 스키마 (헤더): 릴레이션명(테이블명) + 어트리뷰트(속성), 구조를 의미
- 튜플 (Tuples): 인스턴스의 각 행
- 중복된 튜플을 허용하지 않음
- 순서와 무관
- 원자값으로 구성
- 어트리뷰트 (Attribute): 릴레이션의 열, 속성
- 순서와 무관
- 명칭은 서로 유일
- 값은 동일 가능
- 인스턴스 (Instance): 릴레이션에서 스키마(헤더)를 제외한 본문, 튜플의 모음
- 단위
- 스키마의 단위: 카디널리티 (Cardinarity)
- 튜플의 단위: 디그리 (Degree)
02. 관계형 모델의 키
- 슈퍼 키 (Super Key): 튜플을 고유하게 식별할 수 있는 속성 집합
- 유일성 만족
- 키가 될 수 있는 모든 키 조합들이 포함
- 후보 키 (Cardidate Key): 튜플을 식별할 수 있는 최소한의 조합을 가진 집합
- 유일성, 최소성 만족
- 기본 키 (Primary Key): 후보 키 중 선택된 하나의 키
- 유일성, 최소성, 불변성, 존재성 만족
- 대체 키 (Alternate Key): 후보 키 - 기본 키
- 후보 키 중 기본 키로 선택되지 않은 나머지 조합들의 집합
- 외래 키 (Foreign Key): 다른 릴레이션의 기본 키를 참조
- NULL 가능
- 중복된 튜플 가능
03. 제약 조건
- 키 제약 조건: 키는 튜플을 유일하게 식별 가능, 다른 튜플의 키 값과 중복된 값은 존재 X
- 무결성 제약 조건
- 실체무결성: 릴레이션의 기본키를 구성하는 어트리뷰트는 NOT NULL && UNIQUE
- 영역무결성: 릴레이션 내의 어트리뷰트는 정의된 도메인에 속한 값
- 참조무결성: 자식 릴레이션의 외래키는 참조하는 부모 릴레이션의 기본키 값 이외의 값을 가질 수 없음, 일관성 유지
04. 함수종속 (Functional Dependency)
- 결정자 (Determinant): 속성 값을 결정하는 값
- 종속자 (Dependent): 결정된 결과 값
- 함수 종속성: 테이블의 특정 컬럼 A의 값을 알고 있다면, 다른 컬럼 B를 알 수 있는 것을 말함
- 종류
- 완전 함수종속 (Full Funtional Dependency): 릴레이션 R에서 속성 또는 속성들의 집합 X에 대해 Y가 함수적으로 종속되지만, X의 부분 집합에 대해서는 함수적으로 종속하지 않은 경우
- X(완전체) → Y
- 부분 함수종속 (Partial Functional Dependency): 일부 속성만으로도 종속 관계가 결정이 되는 경우
- X(부분 집합) → Y
- 이행적 함수 종속 (Transitive Functional Dependency)
- X → Y와 Y → Z가 성립이 되면, X → Z
- 완전 함수종속 (Full Funtional Dependency): 릴레이션 R에서 속성 또는 속성들의 집합 X에 대해 Y가 함수적으로 종속되지만, X의 부분 집합에 대해서는 함수적으로 종속하지 않은 경우
05. 정규화 (Normalization)
- 의미: 더 작은 테이블로 나누는 것
- 장점
- 데이터의 중복을 줄여서 입력/출력/삭제 이상(Anomaly) 현상을 최소화하는 것
- 상호 종속성이 강한 요소를 분리하여 독립된 개념(엔티티)로 정의 → 높은 응집력, 낮은 결합도
- 해당 개념에 대한 재활용성 증가
- 저장 공간 최소화
- 데이터 입력/출력/삭제에 대한 작업을 최소화하여 수행속도 향상
- 정규형을 만족하지 못하는 모델: 개념이 명확하지 않거나 다수의 개념을 하나의 엔티티에 포함된 것
- 반정규화 (De-normalization): 정규화 후 빈번한 조인을 통해 성능이 저하될 경우, 중복을 감수하더라도 정규화 전으로 돌리는 과정
- 정규화 과정
- 제 1 정규화 (1st NF): 각각의 속성에 대한 도메인은 원자값 && 인스턴스는 단일 값
- 제 2 정규화 (2st NF): 제 1 정규형 만족 + 후보 키에 속하지 않은 속성들은 후보키 전체에 종속
- 제 3 정규화 (3st NF): 제 2 정규형 만족 + 키가 아닌 속성들 간에는 서로 종속적인 관계(이행 함수)가 없어야 함
- BCNF (보이스-코드 정규형, Boyce-Codd Normal Form): 제 3 정규형 만족 + 결정자가 후보키가 아닌 경우 제거
- 제 4 정규화 (4st NF): BCNF 만족 + 하나의 키가 여러 개의 독립적인 속성을 결정하는 경우(다중 종속성 제거)
- 제 5 정규화 (5st NF): 제 4 정규화 + 3개 이상의 테이블 간 종속성을 해결하기 위해 사용 (조인 종속성 제거)
'DB 모델링' 카테고리의 다른 글
[DB 모델링] 데이터 모델링 이론 (0) | 2025.02.12 |
---|