데이터모델링과데이터모델의개념 개체 관계모델...

66
데이터 모델링과 데이터 모델의 개념 개체-관계 모델 논리적 데이터 모델 03-01

Transcript of 데이터모델링과데이터모델의개념 개체 관계모델...

Page 1: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

• 데이터 모델링과 데이터 모델의 개념• 개체-관계 모델• 논리적 데이터 모델

03-01

Page 2: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

2

► 데이터 모델링과 데이터 모델의 개념을 이해한다.► 개념적 데이터 모델인 개체 - 관계 모델을 이용해 모델링을 하는 방법을 익힌다.► 개체 - 관계 모델을 개체 - 관계 다이어그램으로 작성하는 방법을 익힌다.► 논리적 데이터 모델의 종류와 특징을 이해한다.

학습목표

Page 3: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

3

01 데이터 모델링과 데이터 모델의 개념

Page 4: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

4

01 데이터 모델링과 데이터 모델의 개념

데이터 모델링(data modeling)현실세계에존재하는데이터를컴퓨터세계의데이터베이스로옮기는

변환과정

데이터베이스설계의핵심과정

추상화(abstraction)

Page 5: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

5

01 데이터 모델링과 데이터 모델의 개념

2단계 데이터 모델링

개념적데이터모델링(conceptual modeling)• 현실세계의중요데이터를추출하여개념세계로옮기는작업

논리적데이터모델링(logical modeling)• 개념세계의데이터를데이터베이스에저장하는구조로표현하는작업

Page 6: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

6

01 데이터 모델링과 데이터 모델의 개념

데이터 모델(data model)데이터모델링의결과물을표현하는도구

개념적데이터모델

• 사람의머리로이해할수있도록현실세계를개념적인형태로모델링하여

데이터베이스의개념적구조로표현하는도구

• 예) 개체-관계모델

논리적데이터모델

• 개념적구조를논리적형태로모델링하여

데이터베이스의논리적구조로표현하는도구

• 예) 관계데이터모델

현실 세계

개념적 구조

논리적 구조

Page 7: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

7

01 데이터 모델링과 데이터 모델의 개념

Page 8: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

8

02 개체-관계 모델

개체-관계 모델(E-R model; Entity-Relationship model)피터첸(Peter Chen)이제안한개념적데이터모델

개체와개체간의관계를이용해현실세계를개념적구조로표현

핵심요소 : 개체, 속성, 관계

개체-관계 다이어그램(E-R diagram)

E-R 다이어그램

개체 - 관계모델을이용해현실세계를

개념적으로모델링한결과물을그림으로표현한것

Page 9: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

9

02 개체-관계 모델

개체(entity)현실세계에서조직을운영하는데꼭필요한

사람이나사물과같이구별되는모든것

저장할가치가있는중요데이터를가지고있는

사람이나사물, 개념, 사건등

다른개체와구별되는이름을가지고있고,

각개체만의고유한특성이나상태, 즉 속성을하나이상가지고있음

• 예) 서점에필요한개체 : 고객, 책

• 예) 학교에필요한개체 : 학과, 과목

파일구조의레코드(record)와대응됨

Page 10: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

10

02 개체-관계 모델

개체

E-R 다이어그램에서사각형으로표현하고사각형안에이름을표기

Page 11: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

11

02 개체-관계 모델

속성(attribute)개체나관계가가지고있는고유의특성

의미있는데이터의가장작은논리적단위

파일구조의필드(field)와대응됨

E-R 다이어그램에서타원으로표현하고타원안에이름을표기

Page 12: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

12

02 개체-관계 모델

개체 타입(entity type)개체를고유의이름과속성들로정의한것

파일구조의레코드타입(record type)에대응됨

개체 인스턴스(entity instance)

개체를구성하고있는속성이실제값을가짐으로써실체화된개체

개체어커런스(entity occurrence)라고도함

파일구조의레코드인스턴스(record instance)에대응됨

개체 집합(entity set)

특정개체타입에대한개체인스턴스들을모아놓은것

Page 13: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

13

02 개체-관계 모델

Page 14: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

14

02 개체-관계 모델

속성의 분류

Page 15: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

15

02 개체-관계 모델

단일 값 속성과 다중 값 속성

단일값속성(single-valued attribute)

• 값을하나만가질수있는속성

• 예) 고객개체의이름, 적립금속성

다중값속성(multi-valued attribute)

• 값을여러개가질수있는속성

• 예) 고객개체의연락처속성

• 예) 책개체의저자속성

• E-R 다이어그램에서이중타원으로표현

Page 16: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

16

02 개체-관계 모델

단일 값 속성과 다중 값 속성

Page 17: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

17

02 개체-관계 모델

단순 속성과 복합 속성

단순속성(simple attribute)

• 의미를더는분해할수없는속성

• 예) 고객개체의적립금속성

• 예) 책개체의이름, ISBN, 가격속성

복합속성(composite attribute)

• 의미를분해할수있는속성

• 예) 고객개체의주소속성

‒ 도, 시, 동, 우편번호등으로의미를세분화할수있음

• 예) 고객개체의생년월일속성

‒ 연, 월, 일로의미를세분화할수있음

Page 18: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

18

02 개체-관계 모델

단순 속성과 복합 속성

Page 19: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

19

02 개체-관계 모델

유도 속성(derived attribute)기존의다른속성의값에서유도되어결정되는속성

값이별도로저장되지않음

• 예) 책개체의가격과할인율속성으로계산되는판매가격속성

• 예) 고객개체의출생연도속성으로계산되는나이속성

E-R 다이어그램에서점선타원으로표현

Page 20: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

20

02 개체-관계 모델

널 속성(null attribute)널값이허용되는속성

널(null) 값

아직결정되지않거나모르는값또는존재하지않는값

공백이나 0과는의미가다름

• 예) 등급속성이널값등급이아직결정되지않았음을의미

Page 21: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

21

02 개체-관계 모델

키 속성(key attribute)각개체인스턴스를식별하는데사용되는속성

모든개체인스턴스의키속성값이다름

둘이상의속성들로구성되기도함

• 예) 고객개체의고객아이디속성

E-R 다이어그램에서밑줄로표현

Page 22: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

• 데이터 모델링과 데이터 모델의 개념• 개체-관계 모델• 논리적 데이터 모델

03-02

Page 23: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

23

02 개체-관계 모델

관계(relationship)개체와개체가맺고있는의미있는연관성

개체집합들사이의대응관계, 즉매핑(mapping)을의미

예) 고객개체와책개체간의구매관계

• “고객은책을구매한다”

E-R 다이어그램에서마름모로표현

Page 24: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

24

02 개체-관계 모델

관계의 유형 : 관계에 참여하는 개체 타입의 수 기준

이항관계 : 개체타입두개가맺는관계

삼항관계 : 개체타입세개가맺는관계

순환관계 : 개체타입하나가자기자신과맺는관계

Page 25: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

25

02 개체-관계 모델

관계의 유형 : 매핑 카디널리티 기준

일대일(1:1) 관계

일대다(1:n)관계

다대다(n:m) 관계

매핑 카디널리티(mapping cardinality)

관계를맺는두개체집합에서, 각개체인스턴스가연관성을맺고있는

상대개체집합의인스턴스개수

Page 26: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

26

02 개체-관계 모델

일대일(1:1) 관계

개체 A의각개체인스턴스가개체 B의개체인스턴스 하나와관계를

맺을수있고, 개체 B의각개체인스턴스도개체 A의개체인스턴스

하나와관계를맺을수있음

Page 27: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

27

02 개체-관계 모델

일대다(1:n) 관계

개체 A의각개체인스턴스가개체 B의개체인스턴스 여러 개와관계를

맺을수있지만, 개체 B의각개체인스턴스는개체 A의개체인스턴스

하나와관계를맺을수있음

Page 28: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

28

02 개체-관계 모델

다대다(n:m) 관계

개체 A의각개체인스턴스가개체 B의개체인스턴스 여러 개와관계를

맺을수있고, 개체 B의각개체인스턴스도개체 A의개체인스턴스

여러 개와관계를맺을수있음

Page 29: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

29

02 개체-관계 모델

관계의 참여 특성

필수적참여(전체참여)

• 모든개체인스턴스가관계에반드시참여해야하는것을의미

• 예) 고객개체가책개체와의구매관계에필수적으로참여

‒ 모든고객은책을반드시구매해야함

• E-R 다이어그램에서이중선으로표현

선택적참여(부분참여)

• 개체인스턴스중일부만관계에참여해도되는것을의미

• 예) 책개체가고객개체와의구매관계에선택적으로참여

‒ 고객이구매하지않은책이존재할수있음

Page 30: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

30

02 개체-관계 모델

관계의 참여 특성

Page 31: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

31

02 개체-관계 모델

관계의 종속성

약한개체(weak entity)

• 다른개체의존재여부에의존적인개체

오너개체(owner entity)

• 다른개체의존재여부를결정하는개체

오너개체와약한개체는일반적으로일대다의관계를가지고,

약한개체는오너개체와의관계에필수적으로참여하는특징이있음

약한개체는오너개체의키를포함하여키를구성하는특징이있음

E-R 다이어그램에서약한개체는이중사각형으로표현하고

약한개체가오너개체와맺는관계는이중마름모로표현

Page 32: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

32

02 개체-관계 모델

관계의 종속성

예) 직원개체와부양가족개체사이의부양관계

• 직원개체는오너개체, 부양가족개체는약한개체

Page 33: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

33

02 개체-관계 모델

개체-관계 다이어그램

사각형 : 개체를표현

마름모 : 관계를표현

타원 : 속성을표현

링크(연결선) : 각요소를연결

레이블 : 일대일, 일대다, 다대다관계를표기

Page 34: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

34

02 개체-관계 모델

Page 35: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

35

03 논리적 데이터 모델

논리적 데이터 모델의 개념과 특성

E-R 다이어그램으로표현된개념적구조를데이터베이스에저장할

형태로표현한논리적구조

• 데이터베이스의논리적구조 = 데이터베이스스키마(schema)

사용자가생각하는데이터베이스의모습또는구조

관계데이터모델, 계층데이터모델, 네트워크데이터모델등이있음

Page 36: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

36

03 논리적 데이터 모델

관계 데이터 모델

일반적으로많이사용되는논리적데이터모델

데이터베이스의논리적구조가 2차원테이블형태임

user
텍스트박스
"계층 데이터 모델"과 "네트워크 데이터 모델"은 자주 쓰이지는 않지만,가끔 오래된 회사에서는 여전히 이러한 데이터 모델을 쓰기도 하니가볍게 살펴보고 지나갑시다.
Page 37: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

37

03 논리적 데이터 모델

계층 데이터 모델(hierarchical data model)데이터베이스의논리적구조가트리(tree) 형태임

루트역할을하는개체가존재하고사이클이존재하지않음

개체간에상하관계가성립

• 부모개체 / 자식개체

• 부모와자식개체는일대다(1:n) 관계만허용됨

두개체사이에하나의관계만정의할수있음

다대다(n:m) 관계를직접표현할수없음

개념적구조를모델링하기어려워구조가복잡해질수있음

데이터의삽입·삭제·수정·검색이쉽지않음

Page 38: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

38

03 논리적 데이터 모델

계층 데이터 모델의 예

주문고객 판매상품

Page 39: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

39

03 논리적 데이터 모델

네트워크 데이터 모델(network data model)데이터베이스의논리적구조가네트워크, 즉그래프형태임

개체간에는일대다(1:n) 관계만허용됨

• 오너(owner) / 멤버(member)

두개체사이에여러관계를정의할수있어이름으로구별함

다대다(n:m) 관계를직접표현할수없음

구조가복잡하고데이터의삽입·삭제·수정·검색이쉽지않음

Page 40: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

40

03 논리적 데이터 모델

네트워크 데이터 모델의 예

주문

담당

관리 소속

판매

Page 41: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

• 관계 데이터 모델의 개념• 관계 데이터 모델의 제약

03-03

Page 42: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

2

► 관계 데이터 모델의 기본 용어를 익힌다.► 릴레이션을 구성하는 요소와 특성을 이해한다.► 릴레이션에서 키의 역할과 종류를 알아본다.► 무결성 제약의 의미와 필요성을 이해한다.

학습목표

Page 43: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

3

01 관계 데이터 모델의 개념

관계 데이터 모델의 기본 개념

개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델

하나의 개체에 대한 데이터를 하나의 릴레이션에 저장

Page 44: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

4

01 관계 데이터 모델의 개념

관계 데이터 모델의 기본 용어

릴레이션(relation)

• 하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것

• 파일 관리 시스템 관점에서 파일(file)에 대응

속성(attribute)

• 릴레이션의 열, 애트리뷰트

• 파일 관리 시스템 관점에서 필드(field)에 대응

투플(tuple)

• 릴레이션의 행

• 파일 관리 시스템 관점에서 레코드(record)에 대응

user
텍스트박스
"개체-관계 (데이터) 모델"의 여러 개념들이"관계 데이터 모델"로 넘어오면서 재정의된 것임.예를 들어, "개체-관계 모델"의 개체(Entity)"는"관계 데이터 모델"에서는 "릴레이션(Relation)이 됨.
Page 45: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

5

01 관계 데이터 모델의 개념

관계 데이터 모델의 기본 용어

도메인(domain)

• 하나의 속성이 가질 수 있는 모든 값의 집합

• 속성 값을 입력 및 수정할 때 적합성의 판단 기준이 됨

• 일반적으로 속성의 특성을 고려한 데이터 타입으로 정의

널(null)

• 속성 값을 아직 모르거나 해당되는 값이 없음을 표현

차수(degree)

• 하나의 릴레이션에서 속성의 전체 개수

카디널리티(cardicality)

• 하나의 릴레이션에서 투플의 전체 개수

Page 46: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

6

01 관계 데이터 모델의 개념

관계 데이터 모델의 기본 용어

<고객 릴레이션의 차수는 6, 카디널리티는 4>

Page 47: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

7

01 관계 데이터 모델의 개념

릴레이션의 구성

릴레이션 스키마(relation schema)

• 릴레이션의 논리적 구조

• 릴레이션의 이름과 릴레이션에 포함된 모든 속성 이름으로 정의

‒ 예) 고객(고객아이디, 고객이름, 나이, 등급, 직업, 적립금)

• 릴레이션 내포(relation intension)라고도 함

• 정적인 특징이 있음(한번 만들어지면 거의 변경이 없음)

릴레이션 인스턴스(relation instance)

• 어느 한 시점에 릴레이션에 존재하는 투플들의 집합

• 릴레이션 외연(relation extension)이라고도 함

• 동적인 특징이 있음

Page 48: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

8

01 관계 데이터 모델의 개념

릴레이션의 구성

Page 49: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

9

01 관계 데이터 모델의 개념

데이터베이스의 구성

데이터베이스 스키마(database schema)• 데이터베이스의 전체 구조

• 데이터베이스를 구성하는 릴레이션 스키마의 모음

데이터베이스 인스턴스(database instance)• 데이터베이스를 구성하는 릴레이션 인스턴스의 모음

Page 50: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

10

01 관계 데이터 모델의 개념

릴레이션의 특성

• 투플의 유일성

‒ 하나의 릴레이션에는 동일한 투플이 존재할 수 없다.

• 투플의 무순서

‒ 하나의 릴레이션에서 투플 사이의 순서는 무의미하다.

• 속성의 무순서

‒ 하나의 릴레이션에서 속성 사이의 순서는 무의미하다.

• 속성의 원자성

‒ 속성 값으로 원자 값만 사용할 수 있다.

user
텍스트박스
"단순 속성(더 이상 분해할 수 없는 속성)"만 허용됨."복합 속성(예, 주소: 시, 도, 군)"의 경우 단순 속성 여러 개를 활용하여 구현 가능.
Page 51: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

11

01 관계 데이터 모델의 개념

릴레이션의 특성

Page 52: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

12

01 관계 데이터 모델의 개념

키(key)릴레이션에서 투플들을 유일하게 구별하는 속성 또는 속성들의 집합

Page 53: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

13

01 관계 데이터 모델의 개념

키의 특성

유일성(uniqueness)

• 하나의 릴레이션에서 모든 투플은 서로 다른 키 값을 가져야 함

최소성(minimality)

• 꼭 필요한 최소한의 속성들로만 키를 구성

user
텍스트박스
어떤 속성이 "키"이기 위해서는 반드시 유일성 조건을 만족해야 한다.단, 키 중에서도 "유일성"만 만족하는 키가 있는가 하면, "최소성"만 만족하는 키도 있고, 둘 다 만족하는 키도 있다.
Page 54: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

14

01 관계 데이터 모델의 개념

키의 종류

슈퍼키(super key)

• 유일성을 만족하는 속성 또는 속성들의 집합

‒ 예) 고객 릴레이션의 슈퍼키 : 고객아이디, (고객아이디, 고객이름), (고객이름, 주소) 등

후보키(candidate key)

• 유일성과 최소성을 만족하는 속성 또는 속성들의 집합

‒ 예) 고객 릴레이션의 후보키 : 고객아이디, (고객이름, 주소) 등

기본키(primary key)

• 후보키 중에서 기본적으로 사용하기 위해 선택한 키

‒ 예) 고객 릴레이션의 기본키 : 고객아이디

Page 55: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

15

01 관계 데이터 모델의 개념

키의 종류

대체키(alternate key)

• 기본키로 선택되지 못한 후보키

• 예) 고객 릴레이션의 대체키 : (고객이름, 주소)

기본키

Page 56: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

16

01 관계 데이터 모델의 개념

키의 종류

Page 57: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

17

01 관계 데이터 모델의 개념

키의 종류

외래키(foreign key)

• 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합

• 릴레이션들 간의 관계를 표현

‒ 참조하는 릴레이션 : 외래키를 가진 릴레이션

‒ 참조되는 릴레이션 : 외래키가 참조하는 기본키를 가진 릴레이션

Page 58: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

18

01 관계 데이터 모델의 개념

외래키 속성과 그것이 참조하는 기본키 속성의

이름은 달라도 되지만 도메인은 같아야 한다.

Page 59: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

19

01 관계 데이터 모델의 개념

하나의 릴레이션에는 외래키가 여러 개 존재할 수도 있고

외래키를 기본키로 사용할 수도 있다.

Page 60: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

20

01 관계 데이터 모델의 개념

같은 릴레이션의 기본키를 참조하는 외래키도 정의할 수 있다.

그리고 외래키 속성은 널 값을 가질 수도 있다.

Page 61: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

21

01 관계 데이터 모델의 개념

키의 특성과 종류

특성• 유일성 : 한 릴레이션에서 모든 투플은 서로 다른 키 값을 가져야 함

• 최소성 : 꼭 필요한 최소한의 속성들로만 키를 구성

종류

• 수퍼키 : 유일성을 만족하는 속성 또는 속성들의 집합

• 후보키 : 유일성과 최소성을 만족하는 속성 또는 속성들의 집합

• 기본키 : 후보키 중에서 기본적으로 사용하기 위해 선택한 키

• 대체키 : 기본키로 선택되지 못한 후보키

• 외래키 : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합

Page 62: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

22

02 관계 데이터 모델의 제약

무결성 제약조건(integrity constraint)데이터의 무결성을 보장하고 일관된 상태로 유지하기 위한 규칙

무결성 : 데이터를 결함이 없는 상태, 즉 정확하고 유효하게 유지하는 것

Page 63: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

23

02 관계 데이터 모델의 제약

개체 무결성 제약조건(entity integrity constraint)기본키를 구성하는 모든 속성은 널 값을 가질 수 없는 규칙

Page 64: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

24

02 관계 데이터 모델의 제약

참조 무결성 제약조건(referential integrity constraint)외래키는 참조할 수 없는 값을 가질 수 없는 규칙

Page 65: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

25

02 관계 데이터 모델의 제약

외래키 속성이 널 값을 가진다고 해서

참조 무결성 제약조건을 위반한 것은 아니다.

Page 66: 데이터모델링과데이터모델의개념 개체 관계모델 논리적데이터모델mi.cau.ac.kr/teaching/lecture_db_design/W03F.pdf · 01 데이터모델링과데이터모델의개념

Thank You