Computer Science/Database, SQL

[HUFS/데이터베이스] #13 데이터 모델링과 E-R 모델

성중 2021. 11. 3. 16:27

데이터 모델링

데이터 모델링현실의 대상을 컴퓨터상의 데이터로 매핑(mapping)하는 것이다

 

현실의 값이나 사실이 개념적 구조(E-R 모델)를 거쳐 논리적 구조로 변환(데이터 모델링)된다

개념적 데이터 모델링은 값을 E-R모델로 모델링 하는 것이며,

관계 데이터 모델 릴레이션을 최종적으로 물리적 구조로 변환한다

 

최종적으로 현실의 개체와 저장 데이터베이스는 일치하게 된다

데이터 모델이란?

D(데이터 모델) = <S, O, C>

S(구조): 릴레이션 및 데이터의 정적 성질

O(연산): 카티션프로덕트, 합집합 등 데이터의 동적 성질이자 조작 기법

C(제약 조건): 관계 데이터 모델의 논리적 제약들

* 최근에는 객체 지향 데이터 모델 및 객체-관계 데이터 모델도 사용한다

 

개체는 다른 것과 구별되는 객체로 개체 타입(entity type)을 통해 표현된다

~ 개체 인스턴스들의 집합인 개체 집합으로 개체의 이름과 애트리뷰트들로 정의된다

 

1. 단순 애트리뷰트: 더 이상 작은 구성 원소로 분해할 수 없는 애트리뷰트(원자값)

2. 복합 애트리뷰트: 단순 애트리뷰트로 분해할 수 있는 애트리뷰트

 

복합 애트리뷰트와 단순 애트리뷰트 관계

3. 단일 값 애트리뷰트: 특정 개체에 대해 하나의 값을 가지는 애트리뷰트

4. 다중 값 애트리뷰트: 한 개체에 대해 여러 값을 가지는 애트리뷰트

ex) ‘학생’ 개체 타입에 ‘취미’ 애트리뷰트

5. 유도 애트리뷰트: 애트리뷰트의 값이 다른 애트리뷰트나 개체가 가진 값으로부터 유도됨

6. 저장 애트리뷰트: 유도 애트리뷰트를 생성하는데 사용되는 애트리뷰트

ex) 성적: 저장 애트리뷰트 / 평균 성적: 유도 애트리뷰트

7. 널(null) 애트리뷰트: null값을 가질 수 있거나 가진 애트리뷰트

* null: 값이 없는 것이 아니라 알 수 없거나 누락된 경우

 

개체들 사이에는 관계 타입(relationship type)이 있는데,

이는 개체들 사이의 대응(correspondence) 및 사상(mapping)을 의미한다

 

개체는 사각형, 관계 타입은 마름모로 표현 / 요즘은 UML로 테이블처럼 표현함
원소 사상 수(mapping cardinality)에 따른 관계 타입의 유형
전체 참여와 부분 참여
어떤 개체가 다른 개체의 존재에 종속되는 경우 ‘주 개체 – 종속 개체 괸계’

E-R 모델

개체-관계 모델(E-R 모델)현실 세계의 정보를 추상화한 대표적인 개념적 데이터 모델로,

개체 인스턴스의 집합인 개체 집합(타입)과 관계 인스턴스의 집합인 관계 집합(타입)으로 구성

 

E-R 모델의 그래픽 표현
E-R 다이어그램의 예시

E-R 다이어그램은 다 대 다(m:n) 관계 표현이 가능한데

두 개 이상의 개체 타입이 하나의 관계에 관련된 다원 관계,

두 개체 타입 사이에 둘 이상의 관계가 존재 가능한 다중 관계도 표현이 가능하다

* 인스턴스들을 유일하게 식별하는 키(key)는 밑줄을 그어서 표현한다

 

자기 자신의 애트리뷰트 만으로는 키를 명세할 수 없는 개체 타입을 약한 개체 타입이라고 하며,

이 경우 강한 개체 타입과 연관시켜 부분 키(partial key)를 통해 구분 = 식별 관계 타입

 

E-R 다이어그램의 상세한 표기법
이처럼 E-R 모델을 만들었다면 이를 데이터 모델로 변환해 저장 데이터베이스로 보내야 한다

데이터 모델은 네트워크/계층/관계/객체지향/객체-관계 데이터 모델 등이 있다!

* 현재는 대부분 관계 데이터 모델을 사용한다

 

관계 데이터 모델 (이후 정규화를 거친다)
네트워크 데이터 모델
계층형 데이터 모델