9장: 데이터 모델링

현실 세계와 데이터 베이스

현실의 개체와 설계된 데이터베이스는 일치성이 있어야 한다.

[개념적 구조와 논리적 구조]는 개념 세계라고 한다.
[논리적 구조와 데이터베이스]는 컴퓨터 세계라고 한다.


데이터 모델

데이터를 기술하는 개념들의 집합

데이터 모델에 표시할 요소

1. 구조
: 논리적으로 표현된 개체 타입들 간의 관계 (ER 모델 등으로 보여줌)

2. 연산
: 데이터베이스에 저장된 데이터들을 조작하는 기본 도구 (변경,삽입,삭제)

3. 제약조건
: 데이터베이스에 저장될 수 있는 데이터의 제약조건 (기본키 제약 조건, 외래키 제약 조건 등)


개체 타입: 이름과 속성들로 구성된 것
Ex) 학생 – 이름:홍길동, 학번:12345678, …

속성은 크게 단순 속성과 복합 속성으로 구분됨

이름과 학번은 단순 속성임

몇 개의 기본적인 단순 속성들로 분해할 수 있는 속성


유도 속성: 다른 속성의 값으로부터 게산된 속성

Ex) 주민등록번호로부터 얻어진 나이, 성적으로부터 계산된 평균 성적 등


널 속성: 어떤 개체가 특정 속성에 대한 값을 갖고 있지 않을 때 사용

Not applicable: 찾을 수 없는 경우  

ex) 미혼인 사람의 배우자 이름

Unknown – missing: 값이 존재하지만 누락된 경우

ex) 학생 개체의 이름이 널인 겨우

Unknown – not known: 값이 존재하는지 모르는 경우

ex) 취미가 있는지 조차도 모르는 경우


관계 타입

전체 참여: A-B 관계에서 개체 집합 B의 모든 개체가 A-B관계에 참여
Ex) 학과 – 교수 , 모든 교수가 학과에 소속되니 (학과-교수)관계에 참여함

부분 참여: A-B 관계에서 개체 집합 B의 일부 객체만 A-B관계에 참여
ex) 과목 – 학생, 휴학생은 과목을 수강하지 않으니 (과목-학생)관계에 참여하지 않음


관계의 차수: 관계가 있는 개체 타입들의 개수

1진 관계: 사원마다 감독자라는 관계가 있다. (A사원의 감독자는 B, B사원의 감독자는 C, ….)
2진 관계: 사원과 부서는 일이라는 관계가 있다.


카디날리티 비율: 두 개의 개체 관계에서 참여자의 수

1:1 관계
Ex) 부부 사이의 배우자 관계

1:M 관계
Ex) 각 학생은 한 명의 지도교수가 정해지고, 각 지도교수는 여러 명의 학생들을 지도

M:N 관계
Ex) 각 학생은 여러 과목을 수강하고, 각 과목은 여러 명의 수강학생들이 있음


ER 다이어그램

: 사각형-개체 타입, 마름모-관계 타입, 타원-속성, 링크-작대기

기본키는 밑줄로 표현한다.

<카디널리티 비율>

ER모델에서 여러 관계가 있을 때는 아래와 같이 표현한다.

사원과 부서는 ‘일’이라는 관계도 있고 ‘운영’이라는 관계도 있다.


하나의 개체가 다른 역할을 하는 경우

사원은 감독자 역할을 하기도 하고 감독을 당하는 역할을 할 수도 있다.


관계 타입도 속성을 가질 수 있다.

사원과 부서는 일이라는 관계가 있다.
‘일’은 언제부터 시작했는지 나타내는 ‘since’속성을 가질 수 있다.


n-ary relationship

관계에 참여하는 개체의 수가 n개일 수 있다. (n>=1)


제약조건

<키 제약조건>
ex) 부서의 부서장은 한 명이어야만 한다.

<참여 제약조건>
ex) 모든 부서에는 부서장이 있어야만 한다.

sql에서는 non-null로 명령어를 주면 된다.


Weak Entities

ex) 한 명의 사원에 대해서 부양가족이 여러 명이 있다. 이 때 부양가족은 한 사원에 의존하며 Weak Entity가 된다.

own owner에 대해 many weak entities가 존재할 수 있음

pname(부양가족 중 딸의 이름)은 기본키가 될 수 없다. 다른 사원의 딸 이름과 동일 할 수 있기 때문. 이런 경우 pname은 부분키(partial key)라고 하고 (ssn,pname)이 기본키가 된다.


ISA Hierarchies

A ISA B라는 것은 A의 속성은 B도 받는다는 의미가 된다.
ex) 남자와 여자는 모두 사람이라는 속성을 가진다.


설계 종류

Specialization- 위에서 아래로 데이터베이스를 설계함 (상위 개념 -> 하위 개념)
Genealizaiton- 아래에서 위로 데이터베이스를 설계함 (하위 개념 -> 상위 개념)


ER 다이어그램 표기법

Leave a Reply

Your email address will not be published. Required fields are marked *