• 검색 결과가 없습니다.

2. 데이터 모델에 의한 정보 표현

N/A
N/A
Protected

Academic year: 2022

Share "2. 데이터 모델에 의한 정보 표현"

Copied!
43
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

데이타베이스 시스템 연구실 Database Systems Lab.

2. 데이터 모델에 의한 정보 표현

(2)

이 장의 주요 내용

요구 사항의 발견과 명세

ER 모델을 위한 주요 개념들

개체 (Entities)

애트리뷰트 (Attributes) 관계성(Relationships)

ER 다이어그램을 이용한 BigHit Video 대여 사업에 관한 데이터 모

델링

(3)

데이타베이스 설계의 단계

실세계

(

)

(E-R

)

( )

(

DBMS

)

(

DBMS

)

(4)

요구사항의 발견과 명세

정보 시스템 개발의 1단계 발견(discovery)

사용자의 요구사항들을 결정하는 과정

응용에 대한 요구사항 발견 과정

프로그램이 필요한 조직의 구성원과 면담 문서를 모으고 컴퓨터 시스템을 분석

문서 예) BigHit Video에서 고객 등록 신청서, 대여 영수증, 직원 근무 일지, 가게 운영 시간표, 비디오 구매 주문 등

최종 시스템에 포함되어야 할 객체와 동작을 기술

사용자들이 사용하는 어휘 결정하여 데이터 모델에 이러한 전문 용어를 적용

사용자와 개발자 사이의 의사 소통을 쉽게 해줌

(5)

개념적 데이터 모델

데이터 모델

정보들의 구조를 기술하기 위해 사용되는 도구 데이타베이스의 정보 내용을 명세화

개념적 데이타 모델

많은 사람들이 데이터를 인식하는 방식에 대한 개념을 제공 데이타베이스의 초기 명세서로 사용

예) 개체-관계 모델(entity-relationship model)

개념적 스키마 (Conceptual schema)

개념적 데이터 모델을 이용하여 모델링 한 정보의 구조와 의미 사용자와 정보 시스템 설계자들 사이의 의사 소통 수단을 제공

사용자 : 어떤 정보가 시스템에 저장될지 이해할 수 있음

개발자 : 실제 시스템을 구축하는데 어떤 작업이 필요한지를 이해할 수 있음

(6)

개체-관계 모델링

E-R model : Entity-Relationship model

데이터를 개체, 애트리뷰트, 관계성으로 기술하는 고수준의 개념적 데이터 모델

응용 시스템의 데이터 요구사항 명세

데이터의 특성 명세에 초점

데이타베이스 스키마를 표현하는 ER 다이어그램을 가짐

(7)

ER 모델의 개념들 : 개체

개체 (Entity)

단독으로 존재하며 다른 것과 구분되는 객체 실제 세계에서의 어떠한 사물을 지칭

예1) 실제로 존재하는 객체 : 사람, 자동차, 집…

예 2) 개념적으로 존재하는 객체 : 회사, 직업, 대학의 강좌..

개체 클래스 (Entity Class)

유사한 개체들의 구조에 대한 정의

같은 애트리뷰트들을 가진 개체들의 집합 개체 타입(Entity type)이라고도 함

(8)

개체 클래스의 예

BigHit Video의 개체 클래스에 대한 이름과 설명

개체 클래스 설 명

Customer 비디오 가게 고객

Videotape 대여해 줄 비디오 테이프

Employee 하나 이상의 가게에서 일하는 직원 PayStatement 직원에게 지불한 임금에 대한 기록 TimeCard 가게에서 직원이 일한 시간 기록 Store BigHit 비디오의 체인점

Rental 고객이 특정 기간과 가격에 따라 비디오 테이프를 대여 PurchaseOrder 비디오테이프의 구매 요청

Supplier BigHit 비디오에 비디오테이프를 공급하는 곳

(9)

ER 모델의 개념들 : 애트리뷰트

각 개체 클래스는 특성을 나타내는 애트리뷰트를 가짐 애트리뷰트 (Attribute)

개체를 기술하는 속성

예) EMPLOYEE는 Name, SSN, Address, Sex, BirthDate 애트리뷰트들을 가짐

각 개체들은 그 구조를 정의한 개체 클래스의 애트리뷰트에 대한 값을 가짐

예) 한 개의 EMPLOYEE 개체는 Name=‘John Smith’, SSN=‘123456789’, Address=‘731, Fondren, Houston, TX’, Sex=‘M’, BirthDate=’09-JAN-55’

애트리뷰트 값 집합 (Attribute Domain)

각 개체에서 해당 애트리뷰트가 가질 수 있는 값들의 집합 기본적인 데이터 형을 이용해 명시

예) integer, string, boolean, float, enumerated type..

(10)

ER 모델의 개념들 : 애트리뷰트의 유형–1/2

단순 (simple) vs. 복합(composite)

단순 애트리뷰트

더 이상 나눌 수 없는 애트리뷰트

원자 애트리뷰트라고도 함

예) EMPLOYEE의 SSN 또는 Sex

복합 애트리뷰트

독립적인 의미를 가지는 애트리뷰트들의 집합으로 구성 address

street city state zipcode

street_number street_name apartment_number

(11)

ER 모델의 개념들 : 애트리뷰트의 유형–2/2

단일 값 (single-valued) vs. 다중 값 (multi-valued)

단일 값 애트리뷰트

대부분의 애트리뷰트는 특정한 개체에 대해 단일 값을 가짐

예) 사람의 Age

다중 값 애트리뷰트

한 개체에서 애트리뷰트가 여러 값을 가짐

예) Customer의 otherUsers 애트리뷰트, 학생의 College_degree

저장된 (stored) vs. 유도된 (derived) 애트리뷰트

유도된 애트리뷰트

다른 애트리뷰트나 개체가 가지고 있는 값으로부터 유도된 또는 계산되어 나온 애트리뷰트 값을 가짐

예) Person 개체의 Birthday 애트리뷰트로부터 유도된 age 애트리뷰트

예) Customer의 numberRentals 애트리뷰트 : 대여된 비디오의 숫자를 세는 것으로부 터 유도됨

(12)

애트리뷰트 예

BigHit Video의 애트리뷰트에 대한 이름과 설명

단일값 (single- valued)

다중값

(multi-valued)

복합

(composite) 애트리뷰트

애트리뷰트 타입 값의 도메인 설명

title string 제한없음 비디오테이프의 제목

lastName string 30 문자 사람의 성 firstName string 30 문자 사람의 이름

rating string 5 문자 영화의 평가 등급

ssn string 10 자리 숫자 사회 보장 번호

accountId number 4 바이트 정수 고객 번호 number

Rentals

number 4 바이트 정수 한 고객이 대여 횟수 otherUsers Set 30 문자로 된 문자열

집합

이 계정을 같이 사용하는 사람들의 이름

dateAcquired Date 월, 일, 년 비디오 테이프를 구한 날짜 address Compoiste 30 문자로 된 두 개

문자열,

2 문자로 된 하나의 문자열, 9 자리 숫자로 된 하나의 문자열

거리, 도시, 주, zip 코드로 구성된 주소

(13)

애트리뷰트에 대한 제약 조건

키 (Key) Not Null

애트리뷰트가 null값을 가지면 안된다는 제약 조건

Derived

선언된 애트리뷰트는 직접 저장된 것이 아니라, 다른 어떤 정보로부터

유도된 또는 계산되어 나온 값이라는 의미

(14)

키 애트리뷰트

한 클래스의 각 개체들은 그 키에 대하여 유일한 값을 가져야 함

예) Employees의 ssn, Department의 name

대부분의 개체 클래스들은 그 클래스의 키를 구성하는 애트리뷰트 를 하나 이상 가지고 있음

예) Customer의 키 : {lastName, firstName, address}로 구성

각 개체를 유일하게 식별하는데 사용

(15)

애트리뷰트가 Null일 경우의 의미

각 개체는 애트리뷰트에 대한 값을 가지지만, 그 값은 Null이 될 수 도 있음

Null값은 비어 있는 필드로 표현 Null 일 경우의 의미

적용되지 않음(not applicable) : 이 개체에는 애트리뷰트를 적용할 수 없으므 로 값을 가져서는 안된다

예) 결혼하지 않은 사람의 배우자 애트리뷰트

기록되지 않음(missing) : 애트리뷰트 값이 존재하지만 지정되지 않았다

예) 어떤 사람의 몸무게 애트리뷰트

알 수 없음(unknown) : 애트리뷰트 값이 없거나 혹은 적용할 수 없다

예) 전화번호 : 전화가 없거나 전화번호를 기록하지 않음

(16)

개체 클래스, 애트리뷰트, 제약조건의 예

클래스 애트리뷰트 제약조건이나 추가 설명

Customer accountId key

lastName not null firstName

address otherUsers

numberRentals derived Videotape videotapeId key

title not null

genre PayStatement datePaid

hoursWorked amountPaid

(17)

Customer 클래스의 개체

개체는 개체 클래스의 인스턴스이며, 각 개체는 애트리뷰트 값으로

구분

(18)

Videotape 클래스의 개체

(19)

ER 모델의 개념들 : 관계성 – 1/2

각 개체는 다른 개체들과 관계성(relationship)를 가짐

예) 고객은 비디오를대여한다

.

관계성 타입 (relationship type)

개체 타입과 개체 타입간에 성립할 수 있는 관계를 총체적으로 정의한 것

예) A customer may rent a video tape

관계성 인스턴스

특정 개체가 다른 특정 개체와 실제적으로 관계를 가지는 것을 표현

예) Jane Block rents Annie Hall

(20)

ER 모델의 개념들 : 관계성 – 2/2

각 객체는 관계성에서 특정한 역할 (role) 을 수행

역할의 이름은 관계성 내의 특정 개체의 기능 표현

예) 관계성이 “결혼”이면, 한 사람의 역할은 “남편”, 다른 한 사람의 역할은 “아 내”

관계성은 종종 그들 자신만의 애트리뷰트를 가짐

예1) 결혼 관계성 타입은 weddingDate 애트리뷰트를 가짐

예2) Rents관계성 타입은 dateDue, dateRented, cost 애트리뷰트를 가짐

(21)

관계성에서 제약 조건

관계 타입은 대응되는 관계 집합에 참여하고 있는 개체들의 가능한 조합을 제한하는 제약 조건을 가짐

2진 관계성 제약 조건의 종류

카디널리티 비율 (cardinality ratio) 제약 조건 참여 (participation) 제약조건

카디널리티 비율과 참여 제약 조건들을 묶어 구조적 제약 조건 (structural constraint)라고 함 : (min, max)

2진 관계성 타입

두 개체 클래스를 연결

(22)

카디널리티 비율 제약 조건

한 개체가 얼마나 많은 다른 개체와 관련될 수 있는지, 그리고 역으로 관 련될 수 있는지에 대한 제약

관계성의 개수를 규정 관계성의 각 역할에 적용

카디널리티 비율 제약 조건의 타입들

일대일 (one-to-one)

각 역할에서 하나의 개체는 기껏해야 하나의 관계성을 가짐

최대 한 개의 관계된 객체를 가짐

일대다 (one-to-many)

하나의 역할을 담당하는 한 개체는 여러 관계성을 가지지만, 상편 역할을 담당 하는 개체는 기껏해야 한 개의 관계성을 가짐

다대일 (many-to-one)

일대다와 같지만 반대의 경우

다대다 (many-to-Many)

각 역할에서 하나의 개체는 여러 관계성을 가짐

(23)

카디널리티 비율 예제

101 123 145 90987 99787 Videotape (videotapeId) Rents

101 102 103 104 Customer (accountId)

101 123 145 90987 99787

Videotape (videotapeId) Previous lyRented

101 102 103 104

Cus tom er (accountId)

그림 2-2 일대다 관계성 타입 Rents를 통해 관 련된 개체들

그림 2-3 다대다 관계성 타입

PreviouslyRented를 통해 관련된 개체들

(24)

참여 제약 조건

한 개체의 존재가 관계성 타입을 통해 연관되어 있는 다른 개체에 의존하 는지의 여부를 명시

최소 카디널리티 제약 조건이라고도 함

참여 제약 조건의 유형

전체 참여 (total participation)

하나 또는 그 이상

예) 모든 Video는 반드시 LocatedIn에 의해서 한 Store와 연관되어야 함

부분 참여 (partial participation)

선택적 참여

예) Employee의 부분 집합은 managers를 통해 Store와 연관되어야 함

(25)

더 높은 차수의 관계성

회사는 다중 관계 또는 고차원 관계를 가질 수 있음 관계성 타입의 차수(degree)

관계성 타입의 한 인스턴스에 의해 연결된 개체 클래스의 개수 예) 삼원(ternary) 관계성

한 비디오 가게가 어떤 공급자를 통해 비디오테이프를 구입

상점

(storedId) 비디오

(videoId)

3 4 12 13

548 604

1145 3087 3723 PurchasedFrom

(26)

ER 다이어그램

ER 모델을 그래프 방식으로 표현한 것

개체 클래스 : 직사각형 ( ) 애트리뷰트 : 타원 ( )

관계성 : 다이아몬드와 선 ( , )

어떤 특정 인스턴스를 기술하지 않음 주요 예제

BigHit Video 대여 사업에 관한 데이터 모델링

ER 모델의 에러 발견과 수정을 통한 데이터 모델링 절차를 다룸

(27)

ER 다이어그램으로 표현한 예 – 1/2

Customer와 Videotape 클래스, Rents 관계성 타입

1

lastName firstName accountId

numberRentals balance

otherUsers

관계성 타입

개체 클래스 애트리

뷰트

키 애트 리뷰트

유도 애

트리뷰트 복합 애트

리뷰트 다중값 애

트리뷰트

카디널리 티 제약조

Customer

address

zipcode

state city

street

M Videotape Rents

dateRente d

cost dateDue

videotapeId title genre

date Acquired

length

rating

(28)

ER 다이어그램으로 표현한 예 – 2/2

데이터 사전(Data dictionary)

클래스와 타입들의 설명, 애트리뷰트들에 대한 제약 조건 명세

표 2.1, 표 2.2, 표 2.3 (TP 8page, TP12page, TP 16page)

ER 다이어그램에서 표현하지 않고 텍스트 형태로 저장

카디널리티 기호의 위치

기호의 의미를 잘 이해하기 위해 다이어그램을 읽어가며 문장을 생성

예) 일대다 관계성 타입의 경우

왼쪽 → 오른쪽

한 고객이 여러 개의 비디오테이프를 대여할 수 있다

오른쪽 → 왼쪽

한 비디오테이프는 한 고객에 의해서 대여될 수 있다

(29)

비디오 대여 모델링 예 :대여를 관계 타입으로

비디오 대여를 표현하는 방법

1. 대여를 관계 타입으로 모델링 2. 대여를 개체 클래스로 모델링

대여를 관계 타입으로 모델링

고객과 비디오의 관계는 고객이 비디오를 대여할 때 생성됨 비디오가 반납될 때, 이 관계는 제거됨

Customer Rents Video

dateDue

dateRented

cost

1 M

(30)

비디오 대여 모델링 예 :대여를 개체 클래스로 1/2

대여를 개체 클래스로 모델링

Has 관계 타입

관계 타입의 의미가 명확할 때 사용

본 모델링의 문제점

대여 개체가 가진 속성값만을 기반으로 대여 개체를 구별하지 못함

예) 고객은 동시에 두 개의 비디오를 대여할 수 있음(같은 대여 일자, 같은 비용, 같은 반납 일자)

해결 방법 : 각각이 관계되어 있는 비디오에 따라서 두 대여를 구별

Customer Has Rental

dateDue

dateRented

cost

1 Has Video

M 1 1

(31)

비디오 대여 모델링 예 : 대여를 개체 클래스로 2/2

약한 개체 클래스

자신의 키 애트리뷰트가 없는 개체 클래스

예) Rental 약한 개체 클래스

도형에서 이중선으로 되어 있음

식별 관계 타입

관계 타입 Has를 이중선으로 표현

대여는 비디오와의 관계에 의해 식별됨을 의미 항상 대-1임

Rental 개체의 키 : VideoId

Customer Has Rental

dateDue cost

1 Has Video

M 1 1

약한 개체 클래스

식별 관계 클래스 소유자 개체 클래스

(32)

관계성 타입에서 역할

역할은 두 개체 클래스가 하나 이상의 관계 타입과 연결되거나, 하 나의 관계 타입이 개체 클래스 자신과 연결된 상황에서 중요

한 사람은 1명 또는 2명의 부모의 자식일 수 있다.

한 사람은 0명 또는 그 이상의 자식의 부모일 수 있다.

한 사람은 남편의 처일 수 있다.

한 사람은 처의 남편일 수 있다.

그림 2-6 IsMarriedTo 와 IsChildOf 관계성 타입

Person

Is Child

Of M

1…2

parent child

ssn

Is Married

To

1

1 wife

husband

IsParentOf

대체 관계성 타입 이름 역할 이름

최소/최대 카디널리티 제약

(33)

ER 다이어그램에서 사용되는 기호

(34)

BigHit Video에 위한 ER 모델

M Videotape

Customer 1 1 1

Rental

1 1

Located In

Store 1

M

Employee

M M

M

1 1

M 1

1

M

M M

1 Suppli er

M 1

1

M PurchaseOrder Has

Or der s id

worker

manag er has

Has Has

TimeCard

PayStatement

Has

dateR ented

Has

Has Has

PreviousRental

Manag es WorksIn

(35)

대여의 과거 정보를 기록하기 – 1/2

BigHit이 사업에 관한 과거 정보를 기록하기를 원할 경우

가장 자주 대여되는 비디오는 무엇인가?

특정 고객이 대여하는 비디오 타입의 경향이 어떤 것인가?

⇒ 개체 클래스 PreviousRental : 과거의 고객과 비디오의 대여 사실을 기록

Customer Has PreviousRental

dateReturned

dateRented

cost

M Has Videotape

M 1 1

구별자(부분 키)

(36)

대여의 과거 정보를 기록하기 – 2/2

PreviousRental 약한 개체 클래스

관련된 비디오는 PreviousRental을 유일하게 식별하지 못함 구별자 (discriminator) 또는 부분 키

이전 대여를 식별하는 키에 다른 속성을 추가

점선 밑줄로 표현

PreviousRental 개체의 키 : {videoId, dateRented}

발생할 수 있는 문제점들

비디오는 같은 날 두 번 대여될 수 없음

해결 방법 : dateRented를 dataTimeRented로 변경

ER 도형에서는 비디오테이프가 반납된 후, Rental이 PreviousRental로 변환 을 표현할 수 없음

(37)

직원 역할과 카디널리티

TP 34 page에서

직원이 관리자나 종업원이 될 수 있음

직원은 하나 이상의 상점에서 종업원으로 일할 수 있음 직원은 오직 하나의 상점의 관리자만 될 수 있음

발생할 수 있는 문제점

사업상 한 사람이 하나 이상의 상점을 관리할 경우

상점 관리자가 해고되어 일정기간 동안 관리자가 없을 경우

Employee

WorksIn

Manages

Store

M M

1 1

worker

manager

(38)

직원 역할과 카디널리티 : 해결 방안

상점 관리자가 없거나, 직원이 하나 이상의 상점을 관리 할 수 있도록 Manages 관계 타입의 카디널리티를 변경

Employee

WorksIn

Manages

Store

M M

1 M

worker

manager

(39)

구매 주문

PurchaseOrder

비디오 공급자로부터 비디오를 주문하는 것을 나타냄 개체 클래스 PurchaseOrder 설계 방법들

구매 주문서는 단일 공급자와 적어도 하나의 비디오테이프를 가질 것을 요구 함

방법 1 : 약한 클래스로 정의

다른 개체들과 관계되지 않으면 존재할 수 없다

키 : date, supplierId, item들의 조합으로 구성

방법 2 : 강한 개체 클래스로 정의

인공적인 키인 id를 생성

더 간단한 방법임

Supplier Has PurchaseOrder Orders Videotape

id

1 M 1

<PurchaseOrder를 강한 개체로 정의할 때>

(40)

구매주문의 문제점 – 1/2

전형적인 구매 주문서의 내용

구매될 품목에 대한 목록

품목에 대한 식별 번호(카탈로그 번호)

수량

문제점

예) 비디오테이프 “Lady and the Tramp”를 25개 주문을 위해 이전 그림의 다 이어그램을 사용할 경우, 25개의 개체가 생성되는 것을 요구

하나의 비디오테이프에 대해 25개를 주문한 것이라기보다는 25개 비디오 품목 들에 대한 주문이 됨.

이전 ER 다이어그램의 Videotape 개체 클래스의 의미가 혼동되어 발생

(41)

구매주문의 문제점 해결 방법– 2/2

Movie 클래스 추가 : 한 종류의 비디오 작품을 표현 Videotape : 영화의 사본을 의미

PurchaseOrderDetail : 단일 영화의 몇 개 수량의 구매를 표현

movieId

Supplier

PurchaseOrder 1 quantity

M date

Id

title Movie

Orders M

1 Buys

From

PurchaseOrder Detail Has

M

1

unitCost lineNumber

Videotape Is

Copy Of

date Acquired

1 M

genre

videoId

(42)

직원, 근무시간 카드, 지불 명세서 -1/2

PayStatement 약한 개체 클래스

많은 직원들이 같은 날에 급료를 받기 때문에, 관련된 직원에 의해 식별 되지만, 그 직원에 대해 유일하지 않음

키 : {직원의 ssn, datePaid}

Employee TimeCard

endTime

Has Has Store

startTime

Has PayStatement

amount datePaid

1 M M 1

1

M

식별자

식별자

date

(43)

직원, 근무시간 카드, 지불 명세서 - 2/2

TimeCard 약한 개체 클래스

한 명의 직원이 한 상점에서 일한 날짜와 시작 시간, 끝나는 시간을 기록 키 : {직원의 ssn, date, startTime}

한 직원이 같은 날에 서로 다른 상점에서 일할 수 있기 때문

참조

관련 문서

정보통신기술과 리엔지니어링의 관계 행정조직 업무프로세스 개선의 목적.  정보통신 기술은 리엔지니어링의

대우: 이등변삼각형이

한국농촌경 제연구원의 생육조사 자료 및 국립농업과학원 소기후 모형에 의해 추정된 농가별 기상 데이터를 각 각 생육 지표와 기상 정보 자료로서 분석에 이용하였으며,

그러나, 이 변화는 역설적으로 시간을 통해 보존되는 통일성을 전제하는 것이다... 다발이론에 대한 반론1: 변화 속

상기 parameters가 정보 전달 및 저자와 독자의 관계 형성에 기여하는 방식을 분석. TT

최종으로

상속에 의한 클래스 인스턴스의

 지역 인터넷 서비스 제공자(Regional Internet Service Provider).  지역 ISP 또는 하나 이상의 NSP에