데이터 모델링
2-1. 데이터 모델
-
데이터 모델
데이터 모델은 현실 세계를 데이터베이스로 구축할 수 있도록 추상화한 것.
-
상세화 수준에 따라 개념 데이터 모델, 논리 데이터 모델, 물리 데이터 모델로 구분됨.
요구 사항을 분석하여 개념 데이터 모델을 설꼐하고 데이터베이스 모델에 따라 개념 데이터 모델을 논리 데이터 모델로 상세화 한 후 DBMS에 따라 논리데이터 모델을 물리 데이터 모델로 전환함.
2-2. E-R 모델
-
E-R 모델은 엔터티와 관계로 데이터를 표현함.
-
엔터티 타입은 인스턴스화된 엔터티의 집합.
엔터티는 속성으로 구성됨.
관계는 엔터티 간의 연관이고 페어링의 집합임. 페어링은 인스턴스 간의 연관임.
| 집합 | 개별 |
|---|
| 엔터티 타입 | 엔터티, 인스턴스 |
| 관계 | 페어링 |
| 속성 | 속성값 |
-
실무에서는 엔터티 타입을 엔터티, 엔터티를 인스턴스라고 부름.
-
엔터티는 다수의 인스턴스, 인스턴스는 다수의 속성을 가질 수 있음. 속성은 하나의 속성 값만 가져야 함.
-
E-R 모델의 산출물을 ERD라고 함.
2-2-1. 엔터티
- 엔터티 : 개체로 인식할 수 있는 데이터의 집합
2-2-2-1. 기본 식별자
- 엔터티에서 인스턴스를 고유하게 식별할 수 있는 속성으로, 엔터티는 반드시 기본 식별자를 가져야 함.
기본 식별자는 위쪽 사각형에 기술함.
하나의 속성으로 구성된 식별자를 단일 식별자, 2개 이상의 속성으로 구성된 식별자를 복합 식별자라고 함.
2-2-2. 속성
- 속성 : 엔터티에서 관리되는 데이터의 최소 단위임.
- 업무적으로 분리되지 않아야 하며, 하나의 속성 값만 가져야 함.
- 식별자가 아닌 속성은 아래쪽 사각형에 기술함.
2-2-2-1. 도메인
- 도메인 : 속성값의 범위를 나타내며, 물리 모델에서 데이터 타입과 제약 조건으로 변화함.
2-2-3. 관계
-
관계 : 엔터티 간의 업무적 연관
-
하나의 엔터티는 하나 이상의 엔터티와 관계를 가질 수 있고, 관계를 가진 엔터티와 또 다른 관계를 맺을 수도 있음.
-
자식 엔터니는 부모 엔터티의 기본 식별자를 상속 받으며 이 때 부모 엔터티로부터 상속 받은 식별자를 외래 식별자라고 부름
-
관계는 페어링의 집합이기도 함.
2-2-3-1. 카디널리티
- 카디널리티 : 하나의 부모 인스턴스가 몇 개의 자식 인스턴스와 페어링될 수 있는지를 나타냄.
1:1, 1:M, M:M 관계가 존재함. 이 중, M:M 관계는 엔터티(연관 엔터티)를 추가하여 관계를 해소해줘야 함.
2-2-3-2. 옵셔널리티
- 옵셔널리티 : 부모 인스턴스와 자식 인스턴스의 페어링 여부를 나타냄.
- 페어링되어야 하는 경우 필수 관계, 페어링되지 않아도 되면 선택 관계를 가짐.
- 상호 필수 관계 : fully mandatory 관계
- 선택 관계 : optional 관계
- 상호 선택 관계 : fully optional 관계
2-2-3-3. 관계 유형
- 관계 유형은 식별 관계, 비식별 관계로 구분됨
- 부모 엔터티의 기본 식별자가 자식 엔터티의 기본 식별자 속성으로 상속되면 식별 관계, 일반 속성으로 상속되면 비식별 관계임.
- 식별 관계는 관계를 실선으로 표시하며, 부모 엔터티와 자식 엔터티가 밀접한 관계를 가짐
- 비식별 관계는 관계를 점선으로 표시하며, 부모 엔터티와 자식 엔터티가 느슨한 관계를 가짐.
- 기본 식별자가 길어지면 저장 공간도 늘어나고 SQL도 길어짐. 비식별 관계의 경우 저장 공간을 최소화할 수는 있으나 관계가 단절될 수도 있음.
[추가] 이력 엔터티 / 내역 엔터티
-
이력 엔터티
데이터의 변경 이력을 관리.
점 이력은 특정 시점의 속성, 선분 이력은 시작과 끝이 담겨있는 데이터의 속성을 의미.
-
내역 엔터티
발생 정보를 관리하는 엔터티. 이력 엔터티가 변경사항에 치중되어 있다면 내역 엔터티는 발생한 사실에 초점을 맞춘다.
2-3. 정규형
- 정규형
데이터 이상 현상을 제거하기 위한 관계형 모델의 설계 지침.
2-3-1. 정규화
-
1정규형
속성의 원자성과 관련이 있으며, 다중 값을 가짐. 다중 값을 가진 속성을 다가 속성이라고 부르기도 함.
반복 그룹과 반복 그룹을 가진 반복 속성도 1정규형을 위배함.
-
2정규형
부분 종속과 관련이 잇으며 부분 종속은 일반 속성이 식별자의 일부 속성에만 종속되는 것임.
-
데이터 이상 현상
입력 이상, 수정 이상, 삭제 이상
-
3정규형
이행 종속과 관련 있음. 이행 종속은 일반 속성이 다른 일반 속성에 종속되는 것임.
2-3-2. 반정규화
- 반정규화 : 성능 개선을 위해 의도적으로 데이터를 중복시키는 것. 정규형을 위배한 릴레이션은 데이터 무결성을 보장하기 어렵기 때문에 제한적으로 사용하는 편이 바람직함.
2-4. 물리 데이터 모델
논리 데이터 모델은 DBMS에 따른 물리 데이터 모델로 전환함.
엔터티는 테이블, 속성은 열로 전환됨.