DB 모델링

[DB 모델링] 관계형 데이터 모델 이론

beginner-in-coding 2025. 2. 12. 18:14

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
  • 무결성 제약 조건
    1. 실체무결성: 릴레이션의 기본키를 구성하는 어트리뷰트는 NOT NULL && UNIQUE
    2. 영역무결성: 릴레이션 내의 어트리뷰트는 정의된 도메인에 속한 값
    3. 참조무결성: 자식 릴레이션의 외래키는 참조하는 부모 릴레이션의 기본키 값 이외의 값을 가질 수 없음, 일관성 유지

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

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