코딩하는 해달이

[데이터 베이스 설계] 4주차 본문

학교 공부/데이터 베이스 설계

[데이터 베이스 설계] 4주차

코딩하는 해달 2023. 3. 23. 16:35

Logical Data Modeling

Relational Data Model

Relational Model Constaints

도메인 제약(Domain Constaints)

  • 속성에 대한 제약
  • 속성 값은 원자성을 가지며, 도메인에서 정의된 값이어야 함
  • 복합속성과 다중속성은 허용되지 않음
  • Null 값은 허용됨
  • 도메인 : 속성 하나가 가질 수 있는 모든 값의 집합, 즉 값의 범위
  • 원자성 : 더는 분해할 수 없는 하나의 값
  • 널 값 : 특정 속성에 해당되는 값이 없음을 나타냄, 튜플의 속성 값을 모르거나 적합한 값이 없을 경우 사용

키 제약(Key Constaints)

  • 테이블에 대한 제약
  • 관계의 모든 튜플은 서로 식별이 가능해야 함
  • 수퍼키 : 유일의 특성을 만족하는 속성 또는 속성들의 집합, 키 값이 같은 튜플은 존재할 수 없다.
  • 후보키 : 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
  • 기본키 : 여러 개의 후보키 중에서 기본적으로 사용할 키
  • 최소성 : 꼭 필요한 최소한의 속성들로만 키를 구성하는 특성

개체 무결성 제약(Entity Integrity Constraints)

  • 기본키에 대한 제약
  • 기본키는 독자적인 특성이 있어야 하며, Null 값이 아니어야 함
  • UNIQUE & NOT NULL 제약 조건이라고도 함
  • 기본키 선택시 고려사항
    • 널값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적함
    • 값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적함
    • 단순한 후보키를 기본키로 선택
      • 자릿수가 적은 정수나 단순한 문자열인 속성으로 구성
      • 속성의 개수가 적은 후보키

참조 무결성 제약(Referential Integrity Constraints)

  • 외래키에 대한 제약
  • 외래키 (FK : Foreign Key)
    • 어떤 테이블에 소속된 속성 또는 속성 집합이 다른 테이블의 기본키가 되는 키(=속성), 즉 다른 테이블의 기본키를 그대로 참조하는 속성의 집합
    • 테이블 R1이 테이블 R2를 참조하는 경우, R2의 기본키는 R1에서 외래키로 사용됨
    • FK는 자기 자신이 속한 관계를 참조할 수도 있음
    • 테이블간의 관계를 표현하는 역할
  • 외래키는 참조할 수 없는 값을 가질 수 없다.
  • 테이블 R1이 테이블 R2를 참조하는 경우 R1의 FK는
    • Null이거나
    • Null이 아닐 경우 R2에 실제로 존재하는 값으로 구성되어야 함

관계의 특성

  • 튜플의 유일성 : 하나의 릴레이션에는 동일한 튜플이 존재할 수 없다
  • 튜플의 무순서 : 하나의 릴레이션에서 튜플 사이의 순서는 무의미하다.
  • 속성의 무순서 : 하나의 릴레이션에서 속성 사이의 순서는 무의미하다.
  • 속성의 원자성 : 속성 값으로 원자 값만 사용 할 수 있다. = 속성 값을 나눳을때 의미가 없어야 함 (가장 큰 특성) - 도메인 제약과 관련이 있다.

ER - to - RelationalModel 변환 규칙

            1. Mapping of Strong Entitiy Types
              • 각 strong entitiy E에 대항되는 테이블 R을 생성함
                • E의 단일/단순/저장 속성을 모두 R의 속성으로 포함시킴
                • 복합속성의 경우 각 하위 컴포넌트만 포함시킴
                • 다중 속성은 추후 고려
              • E의 키 속성 중 하나를 선택하여 R의 기본키로 정함
                • 복합 키의 경우, 이에 속한 속성들의 조합이 R의 기본키가 
            2. Mapping of Weak Entitiy Types
              • 각 weak entitiy W에 대응되는 테이블 R을 생성하고, W의 단일/단순/저장 속성을 모두 R의 필드로 포함시킴
              • W의 식별 개체 E에 대해서, E의 기본키를 R의 외래키로 포함시킴
              • R의 기본키는 E의 기본키와 W의 부분키(= 약한 개체의 기본키)의 조합으로 구성
            3. Mapping of Binary 1:N Relationship Types
              • 각 Binary 1: N Relationship RS에 대해, 이 Relationship에 참여하는 두 entitiy를 각각 S(N-side)와 T(1-side)라고 하면...
                • T의 기본키를 S의 외래키로 포함
                • RS에 속한 모든 simple attribute를 S에 포함시킴
            4. Mapping of Binary 1:1 Relationship Types
              • 각 Binary 1:1 Relationship에 참여하는 두 entitiy를 각각 S와 T라고 한다면...
              • 대안 1 - T→S 방향
                • T의 기본키를 S의 외래키로 포함
                • RS에 속한 모든 단순 속성을 S에 포함시킴
              • 반대방향
                • 위와 동일
            5. Mapping of Binary M:N Relationship Types
              • Binary M:N Relationship RS에 대해, Relationship에 참여하는 두 entity를 각각 ST라고 하면
              • RS에 대응되는 새로운 릴레이션 R을 생성함
              • RS에 속한 모든 simple attributesR에 포함시킴
              • ST기본키를 R외래키로 포함
                • R기본키는 S에서 온 외래키와 T에서 온 외래키의 조합으로 구성
            6. Mapping of N-ary Relationship Types
              • N-ary Relationship RS에 대해, 새로운 릴레이션 R을 생성함
                • (N > 2 인 경우에 해당됨)
              • RS의 모든 simple attributesR의 속성으로 포함시킴
              • RS에 참여하는 모든 두샤쇼의 기본키를 R외래키로 포함시킴
              • R기본키는 모든 외래키의 조합으로 구성됨
                • 대응수가 1인 관계로부터 가져온 외래키는 기본키의 조합에서 빠짐
            7. Mapping of Multivalued Attributes
              • Entity E에 속한 multivalued attributed MA에 대해 릴레이션 R 생성
              • E기본키 KR외래키로 포함시킴
              • R기본키는 KA의 조합으로 구성됨
              • MA의 속성을 R에 포함시킴 (→ attribute A)

Anomaly

Anomaly : DB설계를 잘못하여 불필요한 데이터 중복이 발생하여 테이블에 대한 데이터의 삽입, 삭제, 객잇ㄴ 연산을 수행할 때 부작용이 발생할 수 있다.

 

Nomalization

정규화 : 테이블을 관련있는 속성들로만 구성하기 위해 테이블을 분해하는 과정

함수적 풍속성 (FD - Functional Dependency)

  • 어느 시점에서든 테이블 내의 모든 튜플에서 하나의 x값에 대한 y값이 항상하나면 "x가y를 함수적으로 결정한다" 또는 "y가 x에 함수적으로 종속되어 있다"
  • 함수 종속 관계 : x→y
반응형
Comments