Koalitsiya 2023. 4. 19. 14:42

논리적 모델링(Logical Modeling)

  • 개념적 설계 단계에서 추출된 객체와 속성들의 관계를 설계하는 단계
  • 개념적 모델링 단계에서 ERD를 설계했다면, 이 단계에선 목표에 맞는 스키마를 설계하게 된다.
  • 관계형 데이터베이스라면 테이블, 즉 릴레이션을 설계하는 단계이다.

 

논리적 모델링의 종류

  • 계층형 데이터 모델
  • 객체 지향형 데이터 모델
  • 관계 데이터 모델
  • 네트워크 데이터 모델

 

관계형 데이터 모델링(Relational Data Modeling)

 

Relation

  • Table(Relation): 행과 열의 2차원 구조를 가진 데이터 저장 객체(Object)
  • Column(Field, Attribute): 테이블에서 세로 방향으로 이루어진 개별 속성
  • Row(Record, Tuple): 테이블에서 가로 방향으로 이루어진 연결된 데이터

 

Relation의 특성

  • 튜플의 유일성: 하나의 릴레이션에는 동일한 튜플이 존재할 수 없다.
  • 튜플의 무순서: 하나의 릴레이션에서 튜플 사이의 순서는 무의미하다.
  • 속성의 무순서: 하나의 릴레이션에서 속성 사이의 순서는 무의미하다.
  • 속성의 원자성: 속성 값으로 원자 값만 사용할 수 있다.

 

제약(Constraints)

  • 도메인 제약(Domain Constraints)
    • 속성(Attribute)에 대한 제약
    • 속성 값은 원자성(Atomicity)를 가지며, 도메인에서 정의된 값이어야 한다.
    • Composite Attribute와 Multivalued Attribute는 허용되지 않는다.
    • Not Null이 아닐 경우 Null 값은 허용된다.
    • 도메인: 속성 하나가 가질 수 있는 모든 값의 집합, 즉 값의 범위
    • 원자성: 더이상 분해할 수 없는 하나의 값
    • Null 값: 특정 속성에 값이 없음을 나타내며, 튜플의 속성 값을 모르거나 적합한 값이 없는 경우에 사용
  • 키 제약(Key Constraints)
    • 릴레이션(Relation)에 대한 제약
    • 릴레이션의 모든 튜플(Tuples)은 서로 식별이 가능해야한다.
    • 슈퍼키(Super Key): 유일성을 만족하는 속성 또는 속성들의 집합, 키 값이 같은 튜플은 존재할 수 없다.
    • 후보키(Candidate Key): 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
      • 최소성: 필수적인 최소한의 속성들로만 키를 구성하는 특성
    • 기본키(Primary Key): 여러 개의 후보키 중에서 기본적으로 사용할 키
  • 개체 무결성 제약(Entity Integrity Constraints)
    • 기본키(Primary Key)에 대한 제약
    • 기본키는 Unique & Not Null 이어야 한다.
    • 기본키 선택 시 고려 사항
      • Null 값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적합하다.
      • 값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적합하다.
      • 자릿수가 적은 정수나 단순한 문자열인 속성으로 구성된 후보키를 기본키로 선택한다.
  • 참조 무결성 제약(Referential Integrity Constraints)
    • 외래키(FK: Foreign Key)에 대한 제약
    • 외래키
      • 어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키(= 속성), 즉 다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합
      • 릴레이션 1이 릴레이션 2를 참조하는 경우, 릴레이션 2의 기본키는 릴레이션 1의 외래키로 사용된다.
      • 외래키는 자기 자신이 속한 릴레이션을 참조할 수도 있다.
      • 릴레이션 간의 관계를 표현하는 역할을 한다.

 

 

ER - to Relational Model 변환 단계

  • step 1 : Mapping of Strong Entity Types
    • 각 강성 개체에 대응되는 릴레이션을 생성
      • 강성 개체의 단일 속성을 모두 릴레이션의 속성으로 포함
      • 복합키의 경우 각 하위 컴포넌트만 포함
      • 다중 속성은 추후 고려
    • 강성 개체의 키 속성 중 하나를 선택하여 릴레이션의 기본키로 설정
      • 복합키의 경우, 이에 속한 속성들의 조합이 릴레이션의 기본키가 된다.
  • step 2 : Mapping of Weak Entity Types
    • 각 약성 개체에 대응되는 릴레이션을 생성하고, 약성개체의 단일 속성을 모두 릴레이션의 필드로 포함
    • 약성 개체의 식별 개체에 대해, 식별 개체의 기본키를 릴레이션의 외래키로 포함
    • 릴레이션의 기본키는 식별 개체의 기본키와 약성 개체의 부분키의 조합으로 구성
  • step 3 : Mapping of Binary 1:N Relationship Types
    • 1:N Relationship RS에 대해 이 관계에 참여하는 두 개체를 각각 1-side와 N-side라 할 때
      • 1-side의 기본키를 N-side의 외래키로 포함
      • RS에 속한 모든 단일 속성을 N-side의 릴레이션에 포함
  • step 4 : Mapping of Binary 1:1 Relationship Types
    • 1:1 Relationship RS에 대해 이 관계에 참여하는 두 개체를 각각 S, T라 할 때
      • 대안 1) T → S
        • T의 기본키를 S의 외래키로 포함
        • RS에 속한 모든 단일 속성을 S에 포함
      • 대안 2) S → T
        • S의 기본키를 T의 외래키로 포함
        • RS에 속한 모든 단일 속성을 T에 포함
  • step 5 : Mapping of Binary M:N Relationship Types
    • M:N Relationship RS에 대해 이 관계에 참여하는 두 개체를 각각 S, T라 할 때
    • RS에 대응되는 새로운 릴레이션 생성
    • RS에 속한 모든 단일 속성을 릴레이션에 포함
    • S와 T의 기본키를 R의 외래키로 포함
      • R의 기본키는 S에서 온 외래키와 T에서 온 외래키의 조합으로 구성
  • step 6 : Mapping of N-ary Relationship Types
    • N-ary Ralationship RS에 대해, 새로운 릴레이션을 생성 (N > 2일 시)
    • RS의 모든 단일 속성을 릴레이션의 속성으로 포함
    • RS에 참여하는 모든 Entity의 기본키를 R의 외래키로 포함
    • R의 기본키는 모든 외래키의 조합으로 구성하나
      • 단, 대응수가 1인 관계로부터 가져온 외래키는 기본키의 조합에서 제외
  • step 7 : Mapping of Multivalued Attributes 
    • Entity에 속한 다중 값 속성 MA에 대해 릴레이션 생성
    • MA의 속성을 릴레이션에 포함(→ attribute A)
    • Entity의 기본키를 릴레이션의 외래키로 포함
    • 릴레이션의 기본키는 E의 기본키와 A의 조합으로 구성