| 데이터 모델링의 개념 |
데이터 베이스 설계 예제 |
|
|
1. 데이터 모델링의 개념
생명주기
데이터 베이스의 생성과 운영에 관련된 특징

- 요구사항 수집 및 분석
사용자들의 요구사항을 듣고 분석하여 데이터 베이스 구축의 범위를 정하는 단계
- 설계
분석된 요구사항을 기초로 주요 개념과 업무 프로세스 등을 식별하고(개념적 설계), 사용하는 DBMS의 종류에 맞게 변환(논리적 설계)한 후, 데이터베이스 스키마를 도출(물리적 설계)함
- 구현
설계단계에서 생성한 스키마를 실제 DBMS에 적용하여 테이블 및 관련 객체(뷰,인덱스 등)를 만듦
- 운영
구현된 데이터베이스를 기반으로 소프트웨어를 구축하여 서비스를 제공함.
- 감시 및 개선
데이터베이스 운영에 따른 시스템의 문제를 관찰하고 데이터베이스 자체의 문제점을 파악하여 개선함.
데이터 모델링 과정

1. 요구사항 수집 및 분석
- 실제 문서를 수집하고 분석함
- 담당자와의 인터뷰나 설문조사를 통해 요구사항을 직접 수렴함
- 비슷한 업무를 처리하는 기존의 데이터베이스를 분석함
- 각 업무와 연관된 모든 부분을 살펴봄
2. 개념적 모델링(conceptual modeling)
- 요구사항을 수집하고 분석한 결과를 토대로 업무의 핵심적인 개념을 구분하고 전체적인 뼈대를 만드는 과정
- 개체(entity)를 추출하고 각 개체들 간의 관계를 정의하여 ER 다이어그램(ERD)을 만드는 과정까지를 말함

3. 논리적 모델링(logical modeling)
- 개념적 모델링에서 만든 ER 다이어그램을 사용하려는 DBMS에 맞게 사상(매핑,mapping)하여 실제 데이터베이스로 구현하기 위한 모델을 만드는 과정
- 논리적 모델링 과정
- 개념적 모델링에서 추출하지 않았던 상세 속성들을 모두 추출
- 정규화 수행
- 데이터 표준화 수행

4. 물리적 모델링(physical modeling)
- 작성된 논리적 모델을 실제 컴퓨터의 저장 장치에 저장하기 위한 물리적 구조를 정의,구현
- DBMS의 특성에 맞게 저장 구조를 정의해야 데이터베이스가 최적의 성능을 낼 수 있음
+고려해야할 사항
- 응답시간을 최소화해야 한다.
- 얼마나 많은 트랜잭션을 동시에 발생시킬 수 있는지 검토해야한다.
- 데이터가 저장될 공간을 효율적으로 배치해야 한다.

2. ER 모델
- ER(Entity Relationship)모델 : 세상의 사물을 개체(entity)와 개체 간의 관계(relationship)로 표현함
- ER 다이어그램 : 개체와 개체 간의 관계를 표준화된 그림으로 나타냄
개체
- 독립적인 의미를 지니고 있는 유무형의 사람,사물
- 개체의 특성을 나타내는 속성(attribute)에 의해 식별
- 비슷한 속성의 개체 타입을 구성하며, 개체 집합으로 묶임

- 개체 타입의 유형

- 강한 개체 : 다른 개체의 도움 없이 독자적으로 존재할 수 있는 개체
- 약한 개체 : 독자적으로는 존재할 수 없고 반드시 상위 개체 타입을 가짐
- 상위 개체 타입이 결정되지 않으면 개별 개체를 식별할 수 없는 종속된 개체 타입
- 약한 개체 타입은 독립적인 키로는 존재할 수 없지만 상위 개체 타입의 키와 결합하여 약한 개체 타입의 개별 개체를 고유하게 식별하는 속성을 식별자 혹은 부분키라고 함


- 속성
- 개체가 가진 성질 (예 - 개체타입:도서 , 속성:도서이름,출판사,도서단가)
- 타원으로 표현, 개체와 실선으로 연결됨
- 속성이 개체를 유일하게 식별할 수 있는 키일 경우 속성 이름에 밑줄을 그음


관계
- 개체 사이의 연관성을 나타내는 개념
- 관계 타입
- 개체 타입 간의 연결 가능한 관계를 정의한 것
- 관계 집합은 관계로 연결된 집합을 의미함

- 차수에 따른 관계 타입의 유형 : 관계 집합에 찹가하는 개체 타입의 수를 관계 타입의 차수(degree)라고 함

- 관계 대응수(cardinality) : 두 개체 타입의 관계에 실제로 참여하는 개별 개체 수




- 관계 대응수의 최솟값과 최댓값
관계 대응수의 N,M은 관계에 참여하는 최댓값을 의미한다. 최솟값을 표시할 수 없는 단점을 보완하기 위해 ERD에서는 대응수 외에 (최솟값,최댓값)으로 표기함

- ISA관계
상위 개체 타입의 특성에 따라 하위 개체 타임이 결정되는 형태

- 참여 제약 조건
개체 집합 내 모든 개체가 관계에 참여하는지 유무에 따라 전체 참여,부분 참여로 구분, 전체 참여는 최솟갑이 1이상, 부분 참여는 최솟값이 0 이상

- 역할
개체 타입 간의 관계를 표현할 때 각 개체들은 고유한 역할을 담당함

- 순환적 관계(recursive relationship)
하나의 개체 타입이 자기 자신과 순환적으로 관계를 가지는 형태

IE 표기법
- Information Engineering 표기법으로 ER다이어그램을 더 축약하여 쉽게 표현하며 Erwin등의 소프트웨어에서 사용함
- 강한관계,비식별자 관계는 점선으로 표기함
- 약한관계,식별자 관계는 실선으로 표기함

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

개체 타입의 사상
1단계 강한 개체 타입
강한(정규) 개체 타입 E의 경우 대응하는 릴레이션 R을 생성함
2단계 약한 개체 타입
약한 개체 타입에서 생성된 릴레이션은 자신의 키와 함께 강한 개체 타입의 키를 외래키로 사상하여 자신의 기본키를 구성함

관계 타입의 사상

3단계 이진 1:1 관계 타입
이진 1:1 관계 타입의 경우 [방법1]~[방법4]까지 모든 유형으로 사상 가능, 개체의 정보 유형에 따라 판단
4단계 이진 1:N 관계 타입
N의 위치에 따라 [방법1]또는[방법2]의 유형으로 사상됨
5단계 이진 M:N 관계 타입
이진 M:N 관계 타입은 [방법4]의 유형으로 사상됨
6단계 N진 관계 타입
ER 모델의 차수가 3 이상인 다진 관계 타입의 경우 [방법4]의 유형으로 사상
다중값 속성의 사상
7단계 다중값 속성
속성의 개수를 알 수 없는 경우 [방법1]을, 속성의 개수가 제한적으로 정해지는 경우 [방법2]를 사용함
4. 물리적 설계
단계

물리적 설계 시 고려 사항
- 응답 시간의 최소화
- 저장 공간의 효율화
- 트랜잭션 처리도(처리 능력)
데이터베이스 설계를 위한 인덱스 활용
자료검색 방법
- FTS(Full Table Scan) 방법 - 테이블을 처음부터 끝까지 검색하는 방법

- 인덱스 스캔(Index Scan) 방법- 인덱스를 통해 부분검색을 하여 인덱스에 저장된 테이블의 ROWID를 가지고 테이블을 검색한 후 정보를가져오는 검색 방법

데이터베이스 설계를 위한 역정규화
- 역정규화(Denormalization)- 시스템 성능을 고려해서 기존 설계를 재구성 하는 것
- 칼럼 역정규화(데이터의중복)- 테이블 간의 조인을 줄이고자 데이터의 중복을 허용하는 방법

- 테이블 분리-테이블 하나를 여러 테이블로 분리하는 방법
- 테이블 통합-정규화로 나눠진 테이블을 다시 통합하는 작업