[SQL] SQLD 1장 - 데이터 모델링의 이해
업데이트:
속성이란?
데이터모델링 관점에서 속성이란 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위로 정의할 수 있다.
업무상 관리가 가능한 최소의 의미 단위, 엔터티에서 한 분야를 담당한다.
속성의 분류
기본속성
업무분석을 통해 바로 정의한 속성.
가장 일반적이고 많은 속성을 차지한다.
설계속성
업무상 존재하지 않지만 설계를 하면서 도출해내는 속성
업무를 규칙화하기 위해 속성을 새로 만들거나 변형하여 정의한다.
파생속성
다른 속성으로부터 계산이나 변형이 되어 생성되는 속성
가급적 파생속성을 적게 정의하는 것이 좋다.
관계 표기법
데이터 모델링
존재적 관계와 행위에 의한 관례를 구분하는 표기법이 없다.
UML
연간관계와 의존관계에 대해 실선과 점선이라는 다른 표기법을 가지고 표현하게 되어 있다.
두 개의 엔터티 사이에서 관계를 도출할 때 체크할 사항
- 두 개의 엔터티 사이에 관심있는 연관 규칙이 존재하는가
- 두 개의 엔터티 사이에 정보의 조합이 발생되는가
- 업무 기술서, 장표에 관계 연결에 대한 규칙이 서술되어 있는가
- 업무 기술서, 장표에 관계 연결을 가능하게 하는 동사가 있는가
엔터티 내에 주식별자를 도출하는 기준
- 해당 업무에서 자주 이용되는 속성을 주식별자로 지정한다.
- 명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 않는다.
- 복합으로 주식별자로 구성할 경우 너무 많은 속성이 포함되지 않도록 한다.
- 자주 수정되는 속성이 주식별자가 되면 자식 엔터티에 대한 연쇄 수정이 필요하여 시스템 상에 부하의 원인이 될 수 있기 때문에 주식별자로서 적합하지 않다.
비식별자관계를 선택하는 기준
- 관계의 강약을 분석하여 상호간에 연관성이 약할 경우 비식별자관계를 고려한다.
- 자식테이블에서 독립적인 Primary Key의 구조를 가지기 우너할 때 비식별자관계를 고려한다.
- 모든 관계가 식별자 관계로 연결되면 SQL Where절에서 비교하는 항목이 증가되어 조인에 참여하는 테이블에 따라 SQL문장이 길어져 SQL문의 복잡성이 증가되는 것을 방지하기 위해 비식별자관계를 고려한다.
공유하기
Twitter Google+ LinkedIn
댓글남기기