Oracle(오라클)

데이터 모델링

나른한 노치 2020. 7. 27. 16:18

01.데이터 모델링의 개념

[1] 데이터베이스 생명주기

요구사항 수집 및 분석 -> 설계 -> 구현 -> 운영 -> 감시 및 개선

 

1) 요구사항 수집 및 분석 

: 사용자들의 요구사항을 듣고 분석하여 데이터베이스 구축의 범위를 정하는 단계

// 사용자의 범위(고객, 운영자, 경영자 등)와 서비스 수준을 정하는 것.

2) 설계

: 분석된 요구사항을 기초로 주요 개념과 업무 프로세스 등을 식별하고(개념적 설계), 사용하는 DBMS의 종류에 맞게 변환(논리적 설계)한 후, 데이터베이스 스키마를 도출(물리적 설계)

3) 구현

: 설계 단계에서 생성한 스키마를 실제 DBMS에 적용하여 테이블 및 관련 객체(뷰, 인덱스 등)를 만든다. 또한 관련 소프트웨어에 설계한 데이터베이스를 적용하여 서비스를 제공할 수 있도록 완성한다.

4) 운영

: 구현된 데이터베이스를 기반으로 소프트웨어를 구축하여 서비스를 제공한다.

5) 감시 및 개선

데이터베이스 운영에 따른 시스템의 문제를 관찰하고 데이터베이스 자체의 문제점을 파악하여 개선한다. 이 단계에서는 데이터베이스가 지속적으로 운영될 수 있도록 변경 및 유지보수를 한다.

 

[2] 데이터 모델링 과정

 

요구사항 수집 및 분석

- 실제 문서를 수집하고 분석한다.

- 담당자와의 인터뷰나 설문조사를 통해 요구사항을 직접 수렴한다.

- 비슷한 업무를 처리하는 기존의 데이터베이스를 분석한다.

- 각 업무와 연관된 모든 부문을 살펴본다.

 

개념적 모델링

: 요구사항을 수집하고 분석한 결과를 토대로 업무의 핵심적인 개념을 구분하고 전체적인 뼈대를 만드는 과정.

개체 추출, 개체 간의 관계 정의, ERD 제작.

 

논리적 모델링

: 개념적 모델링에서 만든 ER 다이어그램을 사용하고자 하는 DBMS에 맞게 사상(매핑, mapping)하여 실제 데이터베이스로 구현하기 위한 모델을 만드는 과정.

1) 개념적 모델링에서 추출하지 않았던 상세 속성들을 모두 추출한다.

2) 정규화를 수행한다.

3) 데이터의 표준화를 수행한다.

 

물리적 모델링

: 작성된 논리적 모델을 실제 컴퓨터의 저장 장치에 저장하기 위한 물리적 구조를 정의하고 구현하는 과정.

1) 응답시간을 최소화

2) 얼마나 많은 트랜잭션을 동시에 발생시킬 수 있는지 검토해야 한다.

3) 데이터가 저장될 공간을 효율적으로 배치해야 한다.

 

02. ER 모델

: 데이터 모델링 과정 중 개념적 모델링에 사용하는 모델로, 1976년 피터 첸(Peter Chen)이 제안하였다. 

ER모델은 세상의 사물을 개체(entity)와 개체 간의 관계(relationship)로 표현한다.

 

ER 모델의 기본

- 독립적인 의미를 지님

- 속성에 의해 식별

- 개체간의 관계를 가짐.

 

[1] 개체와 개체 타입

개체의 특징

- 유일한 식별자에 의해 식별이 가능

- 꾸준한 관리를 필요로 하는 정보

- 두 개 이상 영속적으로 존재

- 업무 프로세스에 이용

- 반드시 자신의 특징을 나타내는 속성을 포함

- 다른 개체와 최소 한 개 이상의 관계를 맺고 있음.

 

[2] 속성

- 단순 속성(simple attribute) : 분해가 불가능한 속성  (ex. 이름)

- 복합 속성(composite attribute) : 독립적인 의미를 가진 속성으로 분해 가능(ex. 주소 -> 시 / 동)

- 단일값 속성(single-valued attribute) : 하나의 값만을 가지는 속성(ex. 이름)

- 다중값 속성(multi-valued attribute) : 여러 개의 값을 가지는 속성(ex. 학위)

- 저장 속성(stored attribute) : 다른 속성의 영향 없이 단독으로 저장되는 속성. 

- 유도 속성(derived attribute) : 다른 저장 속성으로부터 유도된(계산되어진) 속성. (ex. 나이 = 현재년도 - 태어난 년도)

 

[3] 관계와 관계 타입

관계(relationship) : 개체 사이의 연관성을 나타내는 개념.

ex. '고객' 개체 타입과 '도서'개체 타입은 '구입한다'라는 개념응로 연결.

이러한 개체 간의 연관성을 관계라고 한다.

관계 타입(relationship type) : 개체 타입과 개체 타입 간의 연결 가능한 관계를 정의한 것.

관계 집합(relationship set) : 관계로 연결된 집합을 의미.

 

차수에 따른 관계 유형.

1) 1진 관계 : 한 개의 개체가 자기 자신과 관계를 맺음

ex. 학생 - <멘토링>

2) 2진 관계 : 두 개의 개체가 관계를 맺음

ex. 학생 - <소속> - 학과

3) 3진 관계 : 세 개의 개체가 관계를 맺음

 

관계 대응 수에 따른 관계 타입의 유형.

1) 일대일(1:1) 관계 (ex. 사원 1 - <사용> - 1 컴퓨터 )

2) 일대다(1:N) 관계 (ex. 학과 1 - <소속> - N 학생 )

3) 다대다(N:M) 관계 (ex. 학생 N - <수강> - M 강좌 )

4) 관계 대응 수의 최솟값과 최대값

1:1 => (0.. 1), (0.. 1)

1:N => (0.. *), (0.. 1)

N:M => (0..*), (0.. *)

 

ISA관계

: 일부 개체 집합들이 맺고 있는 관계 중에는 상하 관계를 보이는 관계가 있다.

상위 개체 타입의 특성에 따라 하위 개체 타입이 결정되는 형태로 ISA(is-a) 관계라고 한다.

 

역할

: 관계에서 역할이 명확하지 않을 때, 반드시 표시하는 것이 좋다.

 

순환적 관계(recursive relationship)

: 하나의 개체 타입이 동일한 개체 타입(자기 자신)과 순환적인 관계를 가지는 형태.

 

[4] 약한 개체 타입과 식별자

독립적으로  식별할 수 있는 개체를 가지고 있는 개체 타입을 개체 혹은 강한 개체(strong entity) 타입이라고 한다.

 

강한 개체 타입은 개체를 식별할 수 있는 기본키를 가진다.

약한 개체 타입은 자신의 기본키만으로 식별이 어려우므로 상위의 강한 개체 타입의 기본키를 상속받아 사용.

 

[5] IE 표기법

...

 

03. ER 모델을 관계 데이터 모델로 사상

ER 모델은 데이터베이스 생명주기의 개념적 모델링에서 사용하는 모델로, ER 다이어그램을 통해 완성된다.

완성된 ER모델은 실제 데이터베이스로 구축하기 위해 논리적 모델링 단계를 거치는데, 이 단계에서 사상이 이루어진다.

ER모델 - > 관계 데이터 모델.

 

단계 사상할 대상 구분
1단계 개체 타입 강한 개체 타입
2단계 약한 개체 타입
3단계 관계 타입 이진 1:1 관계 타입
4단계 이진 1:N 관계 타입
5단계 이진 N:N 관계 타입
6단계 N진 관계 타입
7단계 속성 다중값 속성

 

[1] 개체 타입의 사상

1 단계 : 강한(정규) 개체 타입

: 정규 개체 타입 E의 경우 대응하는 릴레이션 R을 생성한다. 각 개체 타입의 일반 속성은 각각 새로 생성하는 릴레이션의 속성으로 표시하고, 기본키와 외래키는 PK나 FK 등으로 표시.

 

2 단계 : 약한 개체 타입

: 약한 개체 타입에서 생성된 릴레이션은 자신의 키와 강한 개체 타입의 키를 외래키로 사상하여 자신의 기본키를 구성한다.

 

[2] 관계 타입의 사상

1) 오른쪽 개체 타입을 기준으로 관계 R을 표현.

2) 왼쪽 개체 타입을 기준으로 관계 R을 표현.

3) 단일 릴레이션 ER로 모두 통합하여 관계 R을 표현.

4) 개체 타입 E1, E2와 관계 타입 R을 모두 독립된 릴레이션으로 표현.

 

3단계 : 이진 1:1 관계 타입

1~4까지 모든 유형 사상 가능.

 

4단계 : 이진 1:N 관계 타입

1,2의 유형으로 사상.

 

5단계 : 이진 N:M 관계 타입

4유형으로 사상.

양쪽 모두 다수의 대응 수이므로 새로운 릴레이션을 반드시 생성하고, 새로운 릴레시연은 교차 테이블이라고 한다.

 

6단계 : N진 관계 타입

ER 모델의 차수가 3이상인 다진 관계 타입의 경우 4유형으로 사상. 

생성되는 릴레이션 R의 키는 각 개체 타입의 기본키를 모은 복합키를 사용한다.

 

[3] 다중값 속성의 사상

1) 다중값의 수를 알 수 없는 경우

: 개체 타입은 다중 값 속성을 제외하고 모두 R로 사상하고, 다중값 속성은 개체 타입의 키와 함게 새로운 릴레이션 RC를 생성한다. 이때, RC는 기존의 키와 함게 자신의 값이 모두 키로 지정되어야 한다.

 

2) 다중값의 수가 세 개 이하일 경우.

다중값 속성의 개수가 적고 제한 가능한 경우, 속성을 릴레이션에 같이 포함한다.

 

7단계 : 다중값 속성

속성의 개수를 알수없는 경우 1

속성의 개수가 제한적으로 정해지는 경우 2

 

'Oracle(오라클)' 카테고리의 다른 글

004 - SQL 기초  (0) 2020.07.15
003 - 관계 데이터 모델  (0) 2020.07.14
002 - 요구분석과 시스템 설계 그리고 모델링  (0) 2020.07.07
001 - Database란?  (0) 2020.07.07