Chapter 06 데이터 모델링
데이터 모델링의 개념
데이터베이스 생명주기
- 데터베이스는 최초 사용자의 요구에 의해 구축되어 사용되다가 필요에 따라 개선 또는 다시 구축되어 사용된다.
- 데이터베이스의 생성과 운영에 관련된 특징을 데이터베이스 생명주기라고 한다.
- 요구사항 수집 및 분석
사용자들의 요구사하을 듣고 분석하여 데이터베이스 구축의 범위를 정하는 단계 - 설계
분석된 요구사항을 기초로 주요 개념과 업무 프로세스 등을 식별하고(개념적 설계), 사용하는 DBMS의 종류에 맞게 변환(논리적 설계)한 후, 데이터베이스 스키마를 도출(물리적 설계)를 한다. - 구현
설계 단계에서 생성한 스키마를 실제 DBMS에 적용하여 테이블 및 관련 객체(뷰, 인덱스 등)를 만든다. - 운영
구현된 데이터베이스를 기반으로 소프트웨어를 구축하여 서비스를 제공한다. - 감시 및 개선
데이터베이스 운영에 따른 시스템의 문제를 관찰하고 데이터베이스 자체의 문제점을 파악하여 개선한다.
데이터 모델링 과정
요구사항 수집 및 분석
- 실제 문서를 수집하고 분석한다.
- 담당자와의 인터뷰나 설문조사를 통해 요구사항을 직접 수형한다.
- 비슷한 업무를 처리하는 기존의 데이터베이스를 분석한다.
- 각 업무와 연관된 모든 부분을 살펴본다.
개념적 모델링
- 요구사항을 수집하고 분석한 결과를 토대로 업무의 핵심적인 개념을 구분하고 전체적인 뼈대를 만드는 과정
- 개체(entity)를 추출하고 각 객체들 간의 관계를 정의하여 ER다이어그램(ERD, Entity Relationship Diagram)을 만드는 과정까지를 말한다.
논리적 모델링
- 논리적 모델링은 개념적 모델링에서 만든 ER 다이어그램을 사용하려는 DBMS에 맞게 사상(매핑, mapping)하여 실제 데이터베이스로 구현하기 위한 모델을 만드는 과정이다.
- 논리적 모델링 과정
- 개념적 모델링에서 추출하지 안핬던 상세 속성들을 모두 추출한다.
- 정규화를 수행한다.
- 데이터 표준화를 수행한다.
물리적 모델링
- 작성된 논리적 모델을 실제 컴퓨터의 저장 장치에 저장하기 위한 물리적 구조를 정의하고 구현하는 과정
- DBMS의 특성에 맞게 저장 구조를 정의해야 데이터베이스가 최적의 성능을 낼 수 있다.
- 물리적 모델링 시 트랜잭션, 저장 공간 설계 측면에서 고려할 사항
- 응답시간을 최소화해야 한다.
- 트랜잭션이 시작되어 종료될 때까지 걸리는 시간을 응답시간이라고 한다.
- 얼마나 많은 트랜잭션을 동시에 발생시킬 수 있는지 검토해야 한다.
- 데이터가 저장될 공간을 효율적으로 배치해야 한다.
- 저장될 데이터의 특성을 파악하여 저장 방법을 결정한다.
- 데이터의 사용 형태에 따라 검색을 위한 인덱스를 설계하여 최적의 성능을 낼 수 있도록 한다.
트랜잭션 : DBMS가 데이터를 다루는 논리적인 작업의 단위로, 자료의 입력에서부터 처리가 완료될 때까지 일련의 단계를 말한다.
ER 모델
ER(Entity Relationship) 모델
- 세상의 사물을 개체와 개체 간의 관계로 표현한다.
개체
- 독립적인 의미를 지니고 있는 유무형의 사람 또는 사물이다.
- 개체의 특성을 나타내는 속성(attribute)에 의해 식별된다. 개체끼리 서로 관계를 가진다.
ER 다이어그램
- ER 모델은 개체와 개체 간의 관계를 표준화된 그림으로 나타낸다.
개체와 개체 타입
개체(entity)란?
- 사람, 사물, 장소, 개념, 사건과 같이 유무형의 정보를 가지고 있는 독립적인 실체이다.
- 데이터베이스에서 주로 다루는 개체는 낱개로 구성된 것, 낱개가 각각 데이터 값을 가지는 것이다.
- 비슷한 속성의 개체 타입(entity type) 을 구성하며, 개체 집합(entity set) 으로 묶인다.
- 개체는 요구사항 수집 및 분석 단계에서 만들어진 요구사항 명세서를 통해 도출된다.
- 일반적으로 개체는 수집된 요구사랑 중 명사인 경우가 많다.
- 개체는 반드시 데이터베이스화 되어야 한다.
개체의 특징
- 유일한 식별자에 의해 식별이 가능하다.
- 꾸준한 관리를 필요로 하는 정보이다.
- 두 개 이상 영속적으로 존재한다.
- 업무 프로세스에 이용된다.
- 반드시 자신의 특징을 나타내는 속성을 포함한다.
- 다른 개체와 최소 한 개 이상의 관계를 맺고 있다.
개체 타입의 ER 다이어그램 표현 - 개체 타입의 유형
- 강한 개체: 다른 개체의 도움 없이 독자적으로 존재할 수 있는 개체
- 약한 개체: 독자적으로는 존재할 수 없고 반드시 상위 개체 타입을 가진다.
속성
- 속성(attribute): 개체가 가진 성질
속성의 ER 다이어그램 표현
속성은 기본적으로 타원으로 표현하며 개체 타입을 나타내는 직사각형과 실선으로 연결된다.
속성의 이름은 타원의 중앙에 표기한다.
속성이 개체를 유일하게 식별할 수 있는 키일 경우 속성 이름에 밑줄을 긋는다.
속성의 유형
관계와 관계 타입
관계: 개체 사이의 연관성을 나타내는 개념.
관계 타입: 개체 타입과 개체 타입 간의 연결 가능한 관계를 정의한 것이며, 관계 집합은 관계로 연결된 집합을 의미한다. (마름모가 관계 타입을 뜻한다.)
관계 타입의 ER 다이어그램 표현
차수에 따른 유형
- 관계 집합에 참가하는 개체 타입의 수를 관계 타입의 차수라고 한다.
관계 대응 수에 따른 유형
- 관계 대응수(cardinality): 두 개체 타입의 관계에 실제로 참여하는 개별 개체 수
- 일대일 관계 (1:1)
좌측 개체 타입에 포함된 개체가 우측 개체 타입에 포함된 개체와 일대일로 대응하는 관계
- 일대다(1:N), 다대일(N:1) 관계
실제 일상생활에서 가장 많이 볼 수 있는 관계로, 한쪽 개체 타입의 개체 하나가 다른쪽 개체 타입의 여러 개체와 관계를 맺는다.
- 다대다(N:M) 관계
각 개체 타입의 개체들이 서로 임의의 개수의 개체들과 서로 복합적인 관계를 맺고 있는 관계를 말함.
관계 대응수의 최솟값과 최댓값
- 관계 대응수 1:1, 1:N, M:N에서 1, N, M은 각 개체가 관계에 참여하는 최댓값을 의미한다.
- 관계에 참여하는 개체의 최솟값을 표시하지 않는다는 단점을 보완하기 위해 다이어그램에서는 대응수 외에 최솟값과 최댓값을 관계실선 위에 (최솟값, 최댓값)으로 표기한다.
- max 값을
*
로 표시하면 임의의 수만큼 참여할 수 있다는 뜻이다.
ISA 관계
- 상위 개체 타입의 특성에 따라 하위 개체 타입이 결정되는 형태
- 상위 개체 타입을 슈퍼 클래스, 하위 개체 타입을 서브 클래스라고 한다.
참여 제약 조건
- 개체 집합 내 모든 개체가 관계에 참여하는지 유무에 따라 전체 참여와 부분 참여로 구분할 수 있다.
- 전체 참여: 모든 개체가 관계에 참여
- 부분 참여: 일부만 참여
역할
- 개체 타입 간의 관계를 표현할 때 각 개체들은 고유한 역할을 담당한다.
- 관계에서 역할이 명확하지 않을 경우에 반드시 표기
순환적 관계
- 하나의 개체 타입이 동일한 개체 타입(자기 자신)과 순환적으로 가지는 형태
약한 개체 타입과 식별자
- 약한 개체 타입: 상위 개체 타입이 결정되지 않으면 개별 개체를 식별할 수 없는 종속된 개체 타입
- 약한 개체 타입은 독립적인 키로는 존재할 수 없지만 상위 개체 타입의 키와 결합하여 약한 개체 타입의 개별 개체를 고유하게 식별하는 속성을 식별자(discriminator) 혹은 부분키(partial key)라고 한다.
IE (Informaion Engineering) 표기법
- ER 다이어그램을 더 축약하여 쉽게 표현하면 Erwin 등 소프트웨어에서 사용한다.
- IE 표기법에서 개체 타입과 속성은 직사각형으로 표현한다.
- IE 표기법에서 관계는 실선 혹은 점선으로 표기한다.
ER 모델을 관계 데이터 모델로 사상
- ER 모델은 데이터베이스 생명주기의 개념적 모델링에서 사용하는 모델로, ER 다이어그램을 통해 완성된다.
- 완성된 ER 모델은 실제 데이터베이스로 구축하기 위해 논리적 모델링 단계를 거치는데, 이 단게에서 mapping이 이루어진다.
ER 모델과 관계 데이터 모델의 사상(mapping) 알고리즘
개체 타입의 사상
[1단계] 강한(정규) 개체 타입
- 정규 개체 타입 E의 경우 대응하는 릴레이션 R을 생성한다.
- 각 개체 타입의 일반 속성은 각각 새로 생성하는 릴레이션의 속성으로 표시하고, 기본키와 외래키는 PK나 FK 등으로 표시한다.
[2단계] 약한 개체 타입
- 약한 개체 타입에서 생성된 릴레이션은 자신의 키와 함께 강한 개체 타입의 키를 외래키로 사상하여 자신의 기본키를 구성한다.
- 이때, 유도된 속성이나 복합 속성 등은 속성의 성격에 맞게 판단하여 mapping한다.
이진 관계 타입
관계 타입의 사상
- 관계 타입은 각 관계 타입이 맺고 있는 차수와 관계 대응 수에 따라 mapping 방식을 구분할 수 있다.
[3단계] 이진 1:1 관계 타입
- 이진 1:1 관계 타입의 경우 [방법1] ~ [방법4] 까지 모든 유형으로 사상이 가능하다.
- 개체가 가진 정보 유형에 따라 판단을 하면 된다.
- [방법1] 또는 [방법2] 중 외래키(FK)에 NULL 값이 덜 발생하는 방법을 사용하면 된다.
[4단계] 이진 1:N 관계 타입
- 이진 1:N 관계 타입의 경우 N의 위치에 따라 [방법1] 또는 [방법2]의 유형으로 사상된다.
- 1:N 관계에서는 N에 외래키를 가지면 된다.
[5단계] 이진 M:N 관계 타입
- 이진 M:N 관계 타입은 [방법4]의 유형으로 사상된다.
- 양쪽 모두 다수의 대응 수를 가지므로 새로운 릴레이션을 반드시 생성해야 한다.
- 새로운 릴레이션은 교차 테이블이라고 한다.
[6단계] N진 관계 타입
- ER 모델의 차수가 3 이상인 다진 관계 타입의 경우 [방법4]의 유형으로 사상된다.
다중값 속성의 사상
- 속성의 사상(mapping) 시 단일 값으로 표현된 속성은 특별한 문제 없이 관계 데이터 모델로 직접 mapping 할 수 있다.
- 하지만, 다중값 속성의 경우 직접 mapping할 수 없다.
- 다중값 속성: 하나의 속성에 여러 값을 가질 수 잇는 속성을 말한다.
[7단계] 다중값 속성
- 속성의 개수를 알 수 없는 경우 [방법1]을, 속성의 개수가 제한적으로 정해지는 경우 [방법2]를 사용한다.
Reference
'Develop > Database' 카테고리의 다른 글
DB | 트랜잭션, 동시성 제어, 회복 (1) | 2023.08.28 |
---|---|
DB | 정규화 (0) | 2023.08.28 |
DB | 데이터베이스 프로그래밍 (1) | 2023.08.27 |
DB | SQL 고급 (2) | 2023.08.27 |
DB | SQL 기초 (0) | 2023.08.25 |