본문 바로가기

관계형데이터모델링(김기창)

1.8 모델링 목표


--------------------------------------------------------------------------

[관계형 데이터 모델링 - 김기창 저] 요약/정리

1.8 모델링 목표 (책 p.24~27)

--------------------------------------------------------------------------


1. 데이터의 무결성을 높이는 것이 모델링의 최우선 목표

(데이터 무결성 : 데이터에 결점이 없는 상태를 의미)


데이터 무결성을 위한 작업

관계 속성은 상위(부모) 엔터티의 주 식별자에 존재하는 값만 가질 것.

데이터 성격에 위반되는 정체성이 없는 값은 데이터 무결성 훼손 (즉, 데이터 성격에 맞는 값이어야 한다.)

업무적으로 모순되는 데이터도 무결성 훼손(즉, 업무의 성격에 맞는 데이터이어야 한다.)


엔터티에 중복 데이터가 없도록 하는 것이 중요

중복의 두가지 의미

가. 데이터 값의 중복 : 데이터 값이 여기저기에 중복 

     (cf : 중복 속성, 중복 엔터티, 추출 속성 등이 중복 데이터 값을 관리하는  방법) 

나. 같은(유사한) 속성이 여기저기 사용 : 속성 값이 달라 데이터 값은 중복되지 않지만, 모델 구조 차원에서 속성이 반복 사용됨 -> 엔터티를 통해 서브타입으로 관리하는 것이 바람직

ex : 고객이름 속성이 개인고객, 법인고객, 외국인 고객 등의 엔터티에 사용되면 모델 구조적으로 속성이 중복된 것임.

고객이라는 엔터티 하나로 통합해 고객 이름 속성은 하나만 사용

고객 데이터는 통합되고, 서브 타입으로 개인, 법인, 외국인을 구분

데이터 값의 중복과 모델 구조의 중복을 제거하는 것이 모델링의 목표

--> 하지만, 이렇게 중복 제거를 하면 성능 문제가 발생할 수 있음.


2. 유연한 모델을 만드는 것 또한 모델링의 주요 목표

정규화와 일반화를 할수록 확장하기 좋은 유연한 모델

유사하지 않은 데이터를 무리하게 통합하면 유연성이 저하된다.


2.1 존재할 가능성이 희박하거나 향후 몇십 년 후에 발생할 요건을 대비할 필요는 없다

2.2 유사한 데이터를 통합한 모델이 확장성이 좋은 모델이다

2.3 어플리케이션에 종속되지 않아야 유연한 모델이다 = 어플리케이션에 독립적인 모델

뷰(View)를 잘 사용하면 어플리케이션과 모델을 더 독립적으로 관리할 수 있다

 

3. ERD로 잘 표현된 모델을 구축하는 것이 모델링의 목표중 하나

즉, 가독성이 좋은 모델이 이해하기 쉽고 커뮤니케이션에 도움을 준다

엔터티 정의나 속성 정의도 단순 명료해야 한다