제 1 장. 데이터 모델링의 이해
모델링은 추상화, 단순화, 명확화의 특징이 존재한다.
데이터 모델링의 중요성 및 유의점
데이터 모델링의 3단계
- 개념적 데이터 모델링:
추상화 수준이 높다. 포괄적인 수준의 모델링
- 논리적 데이터 모델링:
통합 관점
- 물리적 데이터 모델링:
물리적인 성격을 고려하여 설계한다.
데이터베이스 3단계 구조
- 외부 스키마: 사용자 관점
(논리적 데이터)
- 개념 스키마: 통합 관점
(물리적 데이터)
- 내부 스키마: 물리적 관점
- 외부스키마와 개념스키마 사이에 논리적 데이터 독립성 필요
- 개념스키마와 내부스키마 사이에 물리적 데이터 독립성 필요
데이터 모델링의 세 가지 요소
- 어떤 것 (Thing)
- 성격 (Attributes)
- 관계 (Relationships)
데이터 모델링의 작업순서
- 엔터티를 그린다.
- 엔터티를 적절하게 배치한다.
- 엔터티간 관계를 설정한다.
- 관계명을 기술한다.
- 관계의 참여도를 기술한다.
- 관계의 필수 여부를 기술한다.
엔터티
엔터티 개념
- 엔터티는 사람, 장소, 물건, 개념 등의 명사에 해당한다.
- 엔터티는 업무상관리가 필요한 관심사에 해당한다.
- 엔터티는 저장이 되기 위한 어떤 것이다.
엔터티 특징
-
업무에서 필요하고 관리하고자 하는 정보여야 한다.
-
유일한 식별자에 의해 식별이 가능해야 한다.
-
반드시 속성이 있어야 한다.
-
인스턴스의 집합이어야 한다. (따라서 하나의 엔터티는 두 개 이상의 인스턴스로 구성된다.)
-
다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.
-
현업업무에서 사용하는 용어를 이용한다.
-
가능하면 약어를 사용하지 않는다.
-
유일하게 이름이 부여되어야 한다.
-
단수 명사를 사용해야 한다.
속성 (속성 개념)
- 업무에서 필요로 한다.
- 의미상 더이상 분리되지 않는다.
- 엔터티를 설명, 그리고 인스턴스의 구성요소이다.
엔터티 - 인스턴스 - 속성 - 속성값
-한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다.
-한 개의 엔터티는 두 개 이상의 속성을 갖는다.
-한 개의 속성은 한 새의 속성 값을 갖는다.
속성 분류
특성에 따른 분류
- 기본속성 : 업무분석을 통해 바로 정의한 속성
- 설계속성 : 원래 업무상 존재하지는 않지만 설계를 하면서 도출해내는 속성
ex) 코드성 속성이 설계 속성의 대표적인 예시.
- 파생속성 : 다른 속성으로부터 계산이나 변형이 되어 생성되는 속성
ex) 계산된 속성이 파생속성의 대표적인 예시이다.
엔터티 구성방식에 따른 분류
- PK속성
- FK속성
- 일반속성
- 도메인
- 각 속성이 가질 수 있는 값의 범위를 속성의 도메인이라고 한다.
- 각 속성은 오직 도메인 내에 있는 값만 가질 수 있다.
- 속성의 명명
- 해당 업무에서 사용하는 이름을 부여.
- 서술식 속성명을 사용하지 않는다.
- 약어 사용을 가급적으로 자제.
관계
관계의 분류
- 존재의 의한 관계
ex) 부서와 사원 간의 관계
- 행위의 의한 관계
ex) 고객과 주문의 의한 관계
관계의 표기법
- 관계명
- 관계차수
- 관계선택사양
- 관계의 명명은 애매한 동사를 피한다.
- 관계의 명명은 현재형으로 표현한다.
관계 정의 시 고려 사항
- 두 개의 엔터티 사이에 관심있는 연관 규칙이 존재하는가?
- 업무 기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
- 업무 기술서, 장표에 관계연결을 가능하게 하는 동사가 있는가?
식별자
식별자의 특징
"유일성, 최소성, 불변성, 존재성"
- 주식별자에 의해 엔터티 내에 모든 인스턴스들이 유일하게 구분되어야 한다.
- 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
- 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다.
- 주식별자가 지정이 되면 반드시 값이 들어와야 한다.
식별자 도출 기준
- 해당 업무에서 자주 이용되는 속성을 주식별자로 지정한다.
- 명칭, 내역 등과같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 않는다.
- 주식별자가 복합으로 구성되는 경우, 너무 많은 속성이 포함되지 않도록 한다.
식별자 관계와 비식별자 관계
- 식별자 관계
- 부모의 주식별자가 자식 엔터티의 주식별자로 상속된는 경우
- 비식별자 관계
- 부모 엔터티로 부터 속성을 받았지만 자식 엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우.
식별자 관계만으로만 지속적으로 연결된다면 개발의 복잡성과 오류가능성을 유발시킬 수 있다.
참고 :
https://brunch.co.kr/@4ec2ea79b44a440/156