-
데이터 모델링의 개념Database 2022. 4. 18. 15:24
1. 정보 모델링
개념적 모델(ER 다이어그램)
이 단계에서는 핵심 개체(core entity)를 뽑고 개체들 간의 관계를 설정한다.
개체 당 기본키(PK)와 외래키(FK)정도만 설정한다.
일반속성은 이 단계에서는 고려하지 않는다.
2. 데이터 모델링
논리적 모델(관계 데이터 모델)
릴레이션명(속성1, 속성2, 속성3)
- 비즈니스에 필요한 속성만 뽑는다.
- 릴레이션 목록을 작성하는 것 (그래프로 된 다이어그램이 아니다.)
3. DB로 구현
완성된 데이터베이스가 현실세계의 개념과 일치해야 한다.
데이터베이스 생명주기
1. 요구사항 수집 및 분석
- 사용자들의 요구사항을 듣고 분석하여 데이터베이스 구축의 범위를 정하는 단계
- 너무 많은 범위를 정하지 않도록 주의한다.
2. 설계
- 1을 기초로 주요 개념과 업무 프로세스 등을 식별(DPR)한다.(개념적 설계)
- 사용하는 DBMS의 종류(관계형, 계층형, 네트워크형 등)에 맞게 변환한다.(논리적 설계)
- 데이터베이스 스키마를 도출한다.(물리적 설계)
2.1 개념적 모델링
핵심 개체를 도출하고, 개체들 간 관계를 뽑아내야 한다.
각 개체의 기본키(PK)를 뽑아낸다.
어떤 개체의 기본키를 외래키로 참조할건지도 정한다.
개체와 관계를 토대로 ERD(Entity Relationship Diagram)를 만든다.
ER모델 (ERD, Entity Relationship Diagram)
PeterChen Notation(피터첸 표기법)으로 작성 후 물리적 모델링 과정에서 IE표기법으로 옮긴다.
개체 타입은 직사각형으로 나타낸다.
- 강한 개체(strong entity) : 다른 개체의 도움 없이 독자적으로 존재할 수 있는 개체 (실선 직사각형)
- 약한 개체(weak entity) : 독자적으로는 존재할 수 없고 반드시 상위 개체 타입을 가지는 개체 (이중 실선 직사각형)
속성은 타원으로 나타낸다.
개체 타입을 나타내는 직사각형과 실선으로 연결된다.
속성이 기본키일 경우, 속성 이름에 밑줄을 그어 표현한다.
기호 설명 속성 일반적인 속성 키(key) 속성 속성이 기본키일 경우. 이름에 밑줄을 그음 약한 개체의 식별자 약한 개체는 키를 갖지 못하고 식별자(discriminator)를 가진다. 식별자 아래 점선을 그어 표시 다중값 속성 여러개의 값을 갖는 속성(ex. 취미). 이중 타원으로 표현 유도 속성 유도가 가능한 속성(ex. 나이 - 출생년도로 유도가 가능함). 점선 타원으로 표현 복합 속성 여러 속성으로 구성된 속성(시, 동, 번지). 큰 타원 아래 작은 타원으로 연결 관계와 관계 타입
- 관계(relationship) : 개체 사이의 연관성을 나타내는 개념
- 관계 타입(relationship type) : 개체 타입 간 연결가능한 관계.
- 관계 집합(relationship set) : 관계로 연결된 집합
관계는 동사로 뽑고, 명사형태로 적는다. (ex. 주문하는 관계 -> 주문)
차수에 따른 유형
- 1진 관계 : 관계 타입에 참여하고 있는 차수가 하나일 때
- 2진 관계 : 관계 타입에 참여하고 있는 차수가 두 개일 때
- 3진 관계 : 관계 타입에 참여하고 있는 차수가 세 개일 때
관계 대응 수(cardinality)
두 개체 타입의 관계에 실제로 참여하는 개별 개체 수
(*튜플의 갯수를 뜻하는 cardinality와 무관)
- 일대일 관계 : 하나의 개체가 하나의 개체에 대응 (ex. 사원-컴퓨터의 사용관계)
- 일대다 관계 : 하나의 개체가 여러 개체에 대응 (ex. 학과-학생의 소속관계)
- 다대일 관계 : 여러 개체가 하나의 개체에 대응
- 다대다 관계 : 여러 개체가 여러 개체에 대응 (ex. 학생-강좌의 수강관계)
카디널리티는 내 쪽이 아닌, 상대쪽에 나타낸다. (관례)
관계 대응 수의 최솟값과 최댓값
관계에 참여하는 개체의 최솟값을 표시하지 않는다는 단점을 보완하기 위해,
대응 수 외에 관계실선 위에 (최솟값, 최댓값)으로 표기한다. (필요시)
최소, 최댓값으로 표현할 땐 상대쪽에 나타내는 것이 아니라, 자기 쪽에 나타낸다!!
ISA 관계
ISA = is a
개체 간 상하관계를 나타낸다.
(ex. 학생 개체가 있고 휴학생, 재학생, 졸업생 등의 개체가 있다면 학생 개체 - ISA - 휴학생 , 재학생, 졸업생
형태로 표현할 수 있다. (학생 is a 휴학생, 재학생, 졸업생))
논리적 모델링 단계에서 ISA관계는 풀어서 쓴다.
참여 제약 조건
- 전체 참여 : 필수적으로 한개는 참여해야 하는 관계 (필수 참여)
- 부분 참여 : 참여 할 수도 있고 안 할 수도 있는 관계 (선택 참여)
역할
개체 타입 간 관계를 표현할 때 동사형으로 고유한 역할을 표현함. (ex. 지도한다 - 지도받는다.)
역할도 min/max값과 마찬가지로 자기 쪽에 나타낸다!!
순환적 관계
하나의 개체 타입이 자기 자신과 순환적으로 관계를 가지는 형태(일진 관계)
다대다 관계로 나온다.
약한 개체 타입과 식별자
약한 개체 타입은 독립적인 키로 존재할 수 없지만, 상위 개체 타입의 키와 결합하여 약한 개체 타입의
개별 개체를 고유하게 식별하는 속성을 식별자(discriminator)혹은 부분키(partial key)라고 한다.
상위 개체 타입의 기본키와 식별자가 합쳐진 복합키 형태로 약한 개체 타입의 기본키가 결정된다.
2.2 논리적 모델링
ER 모델을 관계 데이터 모델로 사상시키는 작업을 한다.
- 개체 타입의 사상
- 관계 타입의 사상
- 다중값 속성의 사상
ER 모델과 관계 데이터 모델의 사상 알고리즘
단계 사상할 대상 구분 1단계 개체 타입 강한 개체 타입 2단계 약한 개체 타입 3단계 관계 타입 이진 1:1 관계 타입 4단계 이진 1:N 관계 타입 5단계 이진 N:M 관계 타입 6단계 N진 관계 타입 7단계 속성 다중값 속성 개체 타입의 사상
1단계 강한 개체 타입
정규 개체 타입 E의 경우, 대응하는 릴레이션 R을 생성한다.
(ex. 사원(사번, 이름))
2단계 약한 개체 타입
약한 개체 타입도 릴레이션 R을 생성하고, 자신의 키(식별자)와 강한 개체 타입의 키를 외래키로 사상하여
자신의 기본키를 구성한다.
(ex. 가족(사번(FK), 이름, 출생일)
관계 타입의 사상
예시) 다음과 같은 이진 관계타입이 있을 때 표현하는 방법 4가지
E1(KA1, A2) --- <R> --- E2(KA2, A4)
방법1
오른쪽 개체 타입 E2를 기준으로 관계 R을 표현한다.
E1(KA1, A2)
E2(KA2, A4, KA1(FK))
방법2
왼쪽 개체 타입 E1을 기준으로 관계 R을 표현한다.
E1(KA1, A2, KA2(FK))
E2(KA2, A4)
방법3
단일 릴레이션 ER로 모두 통일하여 관계 R을 표현한다.
ER(KA1, A2, KA2, A4)
방법4
개체 타입 E1, E2와 관계 타입 R을 모두 독립된 릴레이션으로 표현한다.
E1(KA1, A2)
R(KA1, KA2)
E2(KA2, A4)
이진 1:1 관계 타입 -> 방법1, 방법2 (외래키가 NULL을 덜 포함하는 쪽으로 결정)
이진 1:N 관계 타입 -> 방법1
이진 M:N 관계 타입 -> 방법4
N진 관계 타입 -> 방법 4
다중값 속성의 사상
다중값 속성의 개수에 따른 사상방법
예시)
개체 R의 속성으로 KA, B, C(다중값 속성)이 있을 때,
방법 1
C의 값의 수를 알 수 없는 경우
R(KA, B)
RC(KA(FK), C)
방법 2
C의 값의 수가 세 개 이하일 경우
R(KA, B, C1, C2, C3)
- 속성을 아예 펼쳐서 나열
2.3 물리적 모델링
'Database' 카테고리의 다른 글
IE 표기법(Information Engineering) (0) 2022.04.22 정규화란 무엇인가? (0) 2022.04.20 데이터의 무결성 제약조건 (0) 2022.04.18 데이터베이스 시스템 (0) 2022.04.14 Oracle DBCA 구성 (0) 2022.04.14