CafeM0ca

[DB] DB 모델링 이론 기본 본문

DB/이론

[DB] DB 모델링 이론 기본

M0ca 2020. 10. 19. 13:46
반응형

아래 내용은 불친절한 SQL 프로그래밍(정희락 저)의 내용을 개인 공부를 위해 정리한 것임.

데이터 모델

데이터 모델은 상세화 수준에 따라 3가지로 구분 됌

  • 개념 데이터 모델

    • 요구사항을 분석하여 개념 데이터 모델 설계

  • 논리 데이터 모델

    • DB 모델에 따라 개념 데이터 모델을 논리 데이터 모델로 설계

  • 물리 데이터 모델

    • DBMS에 따라 논리 데이터 모델을 물리 데이터 모델로 전환

E-R모델(Entity-Relationship)

국내 대부분의 데이터 모델이 E-R 모델로 설게됨

개념집합(관계형 모델에서 표현)개별(관계형 모델에서 표현)

어떤 것 entity(relation) instance(tuple)
어떤 것의 관계 relationship paring
어떤 것의 특징 attribute attribute value
  • entity

    • 여러 인스터스를 가질 수 있다.

    • 개체로 인식할 수 있는 데이터 집합

    • 반드시 기본 식별자(primary identifier)를 가져야 함

      • 하나의 속성으로 구성된 식별자를 단일 식별자

      • 2개 이상의 속성으로 구성된 식별자를 복합 식별자라고 한다.

        • 전화번호와 같이 2개 이상의 속성으로 구성된 속성을 복합 속성이라고 함

    • instance : 여러 속성을 가질 수 있다.

      • attribute : 하나의 속성값을 가질 수 있다.

        • attribute value

  • 도메인

    • 속성값의 범위를 나타냄

      • 성별 속성에 대한 도메인 예시

      성별 varchar(1) NOT NULL CONSTRAINT t1_c1 CHECK (성별 IN ('M", 'F"))

정규형(Normal Form, NF)

1정규형

원자성과 관련 있다.

  • 다중 값

아래 릴레이션의 관련부서목록은 다중 값을 가진다. 1,2 값을 넣으면 1, 2번 부서가 관련되어 있다는 속성값을 저장할 수 있다. 따라서 1정규형 위배

상품코드

상품명
관련부서목록
  • 반복그룹

아래 릴레이션은 반복 그룹을 가진다. 관련부서번호1 속성과 관련부서번호2 속성은 단일 값을 저장할 수 있지만 하나의 튜플에 유사한 속성이 반복되기 때문에 1정규형을 위배한 것으로 생각할 수 있다.

상품코드

상품명
관련부서번호1
관련부서번호2

위 1정규형을 위배한 릴레이션을 아래와 같이 2개의 릴레이션으로 정규화할 수 있다.

2정규형

부분 종속과 관련이 있다. 일반 속성이 식별자의 일부 속성에만 종속되는 것이다.

아래 릴레이션의 주문수량 속성은 주문번호 속성과 상품코드 속성에 종속됌.

상품명 속성은 상품코드 속성에만 종속됌.

2정규형 위배

따라서 위 릴레이션은 데이터 이상(anomaly) 현상이 발생함.

주문이 발생하지 않으면 상품을 입력할 수 없고(입력 이상)

상품명이 변경되면 동일한 상품코드의 튜플을 보두 수정해야 하며(수정 이상)

상품이 삭제되면 주문도 함께 삭제된다(삭제 이상)

 

2정규형을 위배한 릴레이션은 아래와 같이 2개의 릴레이션으로 정규화할 수 있다.

상품관련된 릴레이션과 주문 관련된 릴레이션으로 분리

제3정규형

이행 종속(transitive dependency)과 관련 있으며 일반 속성이 다른 일반 속성에 종속되는 것이다.

아래 릴레이션은 소속부서명 속성은 일반 속성인 소속부서번호 속성에 종속된다.

데이터 이상 현상이 발생할 수 있다.

3정규형 위배

아래와 같이 2개의 릴레이션으로 정규화 할 수 있다.

물리 데이터 모델

논리 데이터 모델 물리 데이터 모델
엔터티 테이블
속성
도메인 데이터 타입, NOT NULL 제약 조건, CHECK 제약 조건 등
기본 식별자 PK 제약 조건
외래 식별자 FK 제약 조건

 

반응형

'DB > 이론' 카테고리의 다른 글

[DB] erwin 데이터 모델링  (0) 2020.10.29
Comments