Download presentation
Presentation is loading. Please wait.
Published byἸωνᾶς Κοτζιάς Modified 5년 전
1
데이터베이스 (Databases) ER 모델을 사용한 데이터 모델링 문양세 강원대학교 IT대학 컴퓨터과학전공
2
강의 내용 개념적 모델링과 예제 데이터베이스(COMPANY) ER 모델의 개념 ER 다이어그램 (ERD) – 표기법
엔티티와 애트리뷰트 엔티티 타입, 값 집합, 키 애트리뷰트 관계와 관계 타입 약한 엔티티 타입 역할과 관계 타입에서의 애트리뷰트 ER 다이어그램 (ERD) – 표기법
3
서론 데이터베이스 응용 엔티티-관계 모델링 (ER Modeling) 다른 모델링 기법
데이터베이스 + 필요한 기능을 구현한 프로그램 엔티티-관계 모델링 (ER Modeling) 고수준 데이터 모델: 인간의 이해를 돕기 위한 모델 개념설계 도구로서 데이터베이스 구조와 제약조건 정의 다른 모델링 기법 UML 방법론의 클래스 다이어그램을 이용한 모델링 데이터베이스 구조와 제약조건 + 연산 정의
4
DB 설계를 위한 개념적 데이터 모델 사용 데이터베이스 설계의 단계들 [그림 7.1] ER 모델을 사용한 데이터 모델링
작은 세계 요구사항들의 수정과 분석 기능적 요구사항들 데이타베이스 요구사항들 DFD, 순서도, 시나리오, 순서 다이어그램 FUNCTIONAL ANALYSIS 개념적 설계 ERD 사용 High-level Transaction Specification 개념 스키마 (고수준 데이터 모델로 표현됨) DBMS-independent 논리적 설계 (DATA MODEL MAPPING) 상용 DBMS 사용 DBMS-specific 논리적(개념적)스키마 (특정 DBMS의 구현(표현) 데이터 모델로 표현됨) APPLICATION PROGRAM DESIGN 물리적 설계 내부저장구조 인덱스 접근경로 화일조직 TRANSACTION IMPLEMENTATION 내부스키마 (For the same DBMS) Application Programs
5
예제 COMPANY 데이터베이스 (1/2) COMPANY 데이터베이스의 작은 세계
ER 모델을 사용한 데이터 모델링 COMPANY 데이터베이스의 작은 세계 1. 회사는 여러 부서들로 구성된다. 각 부서마다 고유한 이름, 고유한 번호, 부서를 관리하는 특정 사원이 있다. 사원이 부서를 관리하기 시작한 날짜도 유지한다. 한 부서는 여러 위치에 있을 수 있다. 2. 한 부서는 여러 프로젝트들을 관리한다. 각 프로젝트는 고유한 이름, 고유한 번호, 한 개의 위치를 가진다.
6
예제 COMPANY 데이터베이스 (2/2) COMPANY 데이터베이스의 작은 세계 (계속)
ER 모델을 사용한 데이터 모델링 COMPANY 데이터베이스의 작은 세계 (계속) 3. 각 사원에 대해서 이름, 사회보장번호, 주소, 급여, 성별, 생년월일을 저장한다. 한 사원은 한 부서에 속하지만, 여러 프로젝트들에 관여할 수 있다. 한 사원이 관여하는 프로젝트들은 그 사원이 소속된 부서가 관리하는 프로젝트가 아니어도 무방하다. 반드시 한 부서의 각 사원이 각 프로젝트를 위해 일하는 주당 근무 시간을 기록한다. 또한 각 사원의 직속 상사도 유지한다. 4. 보험 목적을 위해서 각 사원의 부양가족들을 기록한다. 각 부양 가족에 대해서 이름, 성별, 생년월일, 사원과의 관계를 기록한다.
7
개념적 설계의 결과 – ERD (1/2) ER 모델을 사용한 데이터 모델링 Fname Minit Lname Number N 1
Address WORKS_FOR Name Locations Sex Salary NumberOfEmployees DEPATMENT StartDate Ssn EMPLOYEE 1 1 1 MANAGES CONTROLS Bdate Hours N supervisee supervisor M N WORKS_ON PROJECT 1 SUPERVISION N 1 Name DEPENDENTS_OF Location N Number DEPENDENT Name Sex BirthDate Relationship
8
개념적 설계의 결과 – ERD (2/2) ER 모델을 사용한 데이터 모델링 [그림 7.2]
9
강의 내용 개념적 모델링과 예제 데이터베이스(COMPANY) ER 모델의 개념 ER 다이어그램 (ERD) – 표기법
엔티티와 애트리뷰트 엔티티 타입, 값 집합, 키 애트리뷰트 관계와 관계 타입 약한 엔티티 타입 역할과 관계 타입에서의 애트리뷰트 ER 다이어그램 (ERD) – 표기법
10
개체 타입, 개체 집합, 애트리뷰트, 키 ER 모델은 데이터를 엔티티(개체), 관계, 애트리뷰트(속성)로 모델링함
엔티티-관계 모델링 엔티티: 실세계에서 독립적으로 존재하는 실체 애트리뷰트: 엔티티를 기술하는 속성 두 개 엔티티(직원 e1과 회사 c1)와 애트리뷰트 및 값 [그림 7.3] Name = John Smith Address = 2311 Kirby, Houston, Texas 77001 Age = 55 HomePhone = e1 Name = Sunco Oil Headquarters = Houston President = John Smith c1
11
엔티티 & 애트리뷰트 ER 모델을 사용한 데이터 모델링 Fname Minit Lname Number N 1 Name
Address WORKS_FOR Name Locations Sex Salary NumberOfEmployees DEPATMENT StartDate Ssn EMPLOYEE 1 1 1 MANAGES CONTROLS Bdate Hours N supervisee supervisor M N WORKS_ON PROJECT 1 SUPERVISION N 1 Name DEPENDENTS_OF Location N Number DEPENDENT Name Sex BirthDate Relationship
12
애트리뷰트 유형 (1/2) 복합(composite) 애트리뷰트(애트리뷰트 집합): 더 작은 요소로 나뉨
ER 모델을 사용한 데이터 모델링 복합(composite) 애트리뷰트(애트리뷰트 집합): 더 작은 요소로 나뉨 단순(simple) 애트리뷰트(원자 애트리뷰트) 복합 애트리뷰트의 계층구조 [그림 7.4] 단일 값(single value) 애트리뷰트: 애트리뷰트 하나는 하나의 값을 가짐 다치(multi-valued) 애트리뷰트: 애트리뷰트 하나가 여러 값을 가질 수 있음 한 사람은 여러 개 학위를 가질 수 있음 Address StreetAddress City State Zip Number Street ApartmentNumber
13
애트리뷰트 유형 (2/2) ER 모델을 사용한 데이터 모델링 저장된(stored) 애트리뷰트: DB에 실제로 저장된 애트리뷰트 (예: DOB Date of Birth) 유도된(derived) 애트리뷰트: 실제 저장되어 있지 않으나, 다른 애트리뷰트나 사실(fact)에 의해 그 값이 유도될 수 있는 애트리뷰트 (예: Age 오늘 날짜와 DOB에 의해 나이가 유도될 수 있음)
14
특수한 애트리뷰트 복합 애트리뷰트 다치 애트리뷰트 유도 애트리뷰트 ER 모델을 사용한 데이터 모델링 Fname Minit
Lname Number 다치 애트리뷰트 N 1 Name Address WORKS_FOR Name Locations Sex Salary NumberOfEmployees StartDate DEPATMENT Ssn 유도 애트리뷰트 EMPLOYEE 1 1 1 MANAGES CONTROLS Bdate Hours N supervisee supervisor M N WORKS_ON PROJECT 1 SUPERVISION N 1 Name DEPENDENTS_OF Location N Number DEPENDENT Name Sex BirthDate Relationship
15
널(NULL) 값 ER 모델을 사용한 데이터 모델링 두 가지 의미로 사용됨 ‘적용할 수 없음’이라는 의미 Apartment_number는 단독 주택에 적용되지 않음 College_degree는 대학 미 졸업자에게는 적용되지 않음 ‘알려지지 않음’의 의미 John Smith(는 핸드폰이 있으나) 핸드폰 번호는 알지 못함
16
복잡한(complex) 애트리뷰트 괄호를 사용하여 중첩된 형태의 애트리뷰트를 구성 예제: AddressPhone
ER 모델을 사용한 데이터 모델링 괄호를 사용하여 중첩된 형태의 애트리뷰트를 구성 예제: AddressPhone {AddressPhone( {Phone(AreaCode, PhoneNumber)}, Address( StreetAddress(Number, Street, ApartmentNumber), City, State, Zip ) ) }
17
엔티티 타입(개체 타입) ER 모델을 사용한 데이터 모델링 엔티티 타입: 같은 애트리뷰트를 갖는 엔티티들의 집합 (각 엔티티는 각 애트리뷰트에 대해 자신만의 값을 가짐) EMPLOYEE와 COMPANY 엔티티 타입과 이에 속하는 개체들 [그림 7.6] 엔티티 타입의 이름: 애트리뷰트 이름 EMPLOYEE COMPANY Name, Age, Salary Name, Headquarters, President c1 (Sunco Oil, Houston, John Smith) c2 (Fast Computer, Dallas, Bob King) : e1 (John Smith, 55, 80k) e2 (Fred Brown, 40, 30K) e3 (Judy Clark, 25, 20K) : 개체 집합 (외연) 애트리뷰트 값
18
((ABC 123, NEW YORK), WP9872, Nissan Sentra, 2-door, 1992, {blue})
CAR 엔티티(개체) 타입 ER 모델을 사용한 데이터 모델링 Registration과 VehicleID의 두 개의 키 애트리뷰트를 가짐 [그림 7.7] CAR Registration(RegistrationNumber, State), VehicleID, Make, Model, Year, {Color} car1 ((ABC 123, TEXAS), TK629, Ford Mustang, convertible, 1989, {red,black}) car2 ((ABC 123, NEW YORK), WP9872, Nissan Sentra, 2-door, 1992, {blue}) car3 ((VSY 720, TEXAS), TD729, Chrysler LeBaron, 4-door, 1993, {white, blue}) :
19
키 애트리뷰트와 값 집합[도메인] 키 애트리뷰트 (key attribute) 값 집합(도메인)
ER 모델을 사용한 데이터 모델링 키 애트리뷰트 (key attribute) 각 엔티티마다 서로 다른 값을 가지는 애트리뷰트 그림 7.6에서 COMPANY 엔티티 타입에서 키 애트리뷰트는 Name 일반적으로, PERSON 엔티티 타입의 키 애트리뷰트는 SocialSecurityNumber 복합 키: 두 개 이상의 애트리뷰트들이 모여서 하나의 키 애트리뷰트 역할을 하는 키 값 집합(도메인) 각 엔티티에서 애트리뷰트가 가질 수 있는 값들의 집합 EMPLOYEE의 Age 애트리뷰트의 값 집합은? (16부터 70 사이의 정수 집합)
20
키 애트리뷰트 ER 모델을 사용한 데이터 모델링 Fname Minit Lname Number N 1 Name Address
WORKS_FOR Name Locations Sex Salary NumberOfEmployees DEPATMENT StartDate Ssn EMPLOYEE 1 1 1 MANAGES CONTROLS Bdate Hours N supervisee supervisor M N WORKS_ON PROJECT 1 SUPERVISION N 1 Name DEPENDENTS_OF Location N Number DEPENDENT Name Sex BirthDate Relationship
21
COMPANY DB에 대한 초기 개념적 설계 (1/2)
ER 모델을 사용한 데이터 모델링 1. 엔티티 타입 DEPARTMENT는 Name, Number, Location, Manager, ManagerStartDate 애트리뷰트를 가진다. Location은 다치 애트리뷰트이다. Name과 Number는 각 부서마다 고유하기 때문에 각각 키 애트리뷰트로 지정할 수 있다. 2. 엔티티 타입 PROJECT는 Name, Number, Locations, ControllingDepartment 애트리뷰트들을 가진다. Name과 Number가 각각 키 애트리뷰트이다.
22
COMPANY DB에 대한 초기 개념적 설계 (2/2)
ER 모델을 사용한 데이터 모델링 3. 엔티티 타입 EMPLOYEE는 Name, SSN, Sex, Address, Salary, BirthDate, Department, Supervisor 애트리뷰트들을 가진다. SSN이 키 애트리뷰트이고, Name은 복합 애트리뷰트 이다. 4. 엔티티 타입 DEPARTMENT는 Employee, DependentName, Sex, BirthDate, Relationship(사원과의 관계) 애트리뷰트들을가진다.
23
COMPANY DB의 엔티티 타입들의 초기 설계 (1/2)
ER 모델을 사용한 데이터 모델링 DEPARTMENT Name, Number, {Locations}, Manager, ManagerStartDate PROJECT Name, Number, Location, ControllingDepartment
24
COMPANY DB의 엔티티 타입들의 초기 설계 (2/2)
ER 모델을 사용한 데이터 모델링 EMPLOYEE Name(FName, MInit, LName), SSN, Sex, Address, Salary, BirthDate, Department, Supervisor, {WorksOn (Project, Hours)} DEPENDENT Employee, DependentName, Sex, BirthDate, Relationship
25
강의 내용 개념적 모델링과 예제 데이터베이스(COMPANY) ER 모델의 개념 ER 다이어그램 (ERD) – 표기법
엔티티와 애트리뷰트 엔티티 타입, 값 집합, 키 애트리뷰트 관계와 관계 타입 약한 엔티티 타입 역할과 관계 타입에서의 애트리뷰트 ER 다이어그램 (ERD) – 표기법
26
관계, 관계 타입, 역할, 구조적 제약조건 관계 타입과 관계 인터페이스 관계 타입의 차수(degree) 애트리뷰트로서의 관계
ER 모델을 사용한 데이터 모델링 관계 타입과 관계 인터페이스 관계 타입의 차수(degree) 애트리뷰트로서의 관계 역할과 순환적(recursive) 관계 관계 타입에서 제약조건 관계 타입의 애트리뷰트 MANAGES DEPENDENTS_OF SUPERVISION
27
관계 타입과 관계 인스턴스 ER 모델을 사용한 데이터 모델링 관계 타입(관계 집합) R은 엔티티 간의 연관들의 집합임: [그림 7.9]에서 WORKS_FOR가 이에 해당함 (아래 그림) [그림 7.9] 관계 WORKS_FOR에서 관계 인스턴스: 7 개(r1 ~ r7) WORKS_FOR EMPLOYEE r1 r2 r3 r4 r5 r6 r7 : DEPARTMENT e1 e2 e3 e4 e5 e6 e7 . d1 d2 d3 .
28
관계 타입의 차수(degree) 차수: 관계에 참여하고 있는 엔티티 타입의 수
ER 모델을 사용한 데이터 모델링 차수: 관계에 참여하고 있는 엔티티 타입의 수 이진(binary) 차수: [그림 7.9]의 WORKS_FOR 관계 3진(ternary) 차수: [그림 7.10] 3진 관계 SUPPLY (아래 그림) SUPPLIER SUPPLY PROJECT s1 s2 . r1 r2 r3 r4 r5 r6 r7 : j1 j2 j3 . PART p1 p2 p3 .
29
애트리뷰트로서의 관계 ER 모델을 사용한 데이터 모델링 관계는 참여 엔티티 타입의 애트리뷰트로 볼 수도 있음 즉, 관계가 엔티티의 애트리뷰트로 표현(구현)될 수 있음을 의미 예: EMPLOYEE와 DEPARTMENT 사이의 WORKS_FOR는 엔티티 타입 EMPLOYEE에 Department 애트리뷰트로 표현되거나, 엔티티 타입 DEPARTMENT의 Employees 애트리뷰트로 표현될 수 있음 EMPLOYEE Name(FName, MInit, LName), SSN, Sex, Address, Salary, BirthDate, Department, Supervisor, {WorksOn (Project, Hours)}
30
역할 이름과 순환적(recursive) 관계 (1/2)
ER 모델을 사용한 데이터 모델링 역할 이름(role name): 관계 타입에 참여하는 각 에티티 타입은 관계 내에서 특정한 역할을 담당함 예: 관계 WORKS_FOR에서 EMPLOYEE는 사원/근로자 역할이고, DEPARTMENT는 부서/고용주의 역할임 일반적으로 관계에 참여하는 엔티티 타입이 다르면, 그 이름 자체가 역할로서 사용되기 때문에, 역할 이름을 특별히 명시하지 않음 EMPLOYEE WORKS_FOR DEPARTMENT supervisee supervisor SUPERVISION
31
역할 이름과 순환적(recursive) 관계 (2/2)
ER 모델을 사용한 데이터 모델링 한 엔티티 타입이 관계에 두 번 이상 참여하면, 역할을 구분하기 위해, 역할 이름을 부여하거나, 대응하는 번호 등을 부여함 [그림 7.2]의 SUPERVISION 관계에서, supervisor와 supervisee가 역할 이름임 같은 예로서, [그림 7.11] Employee에서의 순환적 관계 SUPERVISION은 상사(1)와 부하(2)의 두 역할로 구분할 수 있음 EMPLOYEE SUPERVISION 2 e1 e2 e3 e4 e5 e6 E7 ... 1 r1 r2 r3 r4 r5 r6 ... 2 1 2 1 2 1 1 1 2 2
32
관계 타입에서 제약 조건 (1/3) ER 모델을 사용한 데이터 모델링 카디날리티(cardinality) 비율: 엔티티가 참여할 수 있는 최대 관계 인스턴스의 수를 명시 이진 관계 타입에 대한 카디날리티 비율은 1:1, 1:N, M:N 1:1 카디날리티 비율의 예 (MANAGES) DEPARTMENT MANAGES e1 e2 e3 e4 e5 e6 e7 . r1 r2 r3 : EMPLOYEE d1 d2 d3 :
33
관계 타입에서 제약 조건 (2/3) M:N 카디날리티 비율의 예(WORKS_ON) [그림 7.13] WORKS_ON
ER 모델을 사용한 데이터 모델링 M:N 카디날리티 비율의 예(WORKS_ON) [그림 7.13] e1 e2 e3 e4 . r1 r2 r3 r4 r5 r6 R7 p1 p2 p3 p4 EMPLOYEE WORKS_ON PROJECT
34
관계 타입에서 제약 조건 (3/3) ER 모델을 사용한 데이터 모델링 참여 제약조건(participation constraint): 한 엔티티의 존재가 관계 타입을 통해 연관되어 있는 다른 엔티티에 의존하는지의 여부 부분참여(partial participation)와 전체참여(total participation) 예: MANAGES 관계에서, (모든 사원이 manager로 참여하는 것은 아니므로) EMPLOYEE는 부분참여이고, (모든 부서는 (한 명의) manager가 있으므로) DEPARTMENT는 전체참여임 전체참여를 존재종속성(existence dependency)라고도 부름
35
관계 타입의 애트리뷰트 (1/2) 관계 타입도 (엔티티 타입 처럼) 애트리뷰트들을 가질 수 있음
ER 모델을 사용한 데이터 모델링 관계 타입도 (엔티티 타입 처럼) 애트리뷰트들을 가질 수 있음 관계 타입이 애트리뷰트를 가지는 예: WORKS_ON 관계 타입에 Hours 애트리뷰트를 포함시킬 수 있음 MANAGES 관계 타입에 StartDate를 포함시킬 수 있음 (언제 관리자가 되었나) 1:1 관계 타입의 애트리뷰트: 양쪽 엔티티 타입으로 이동 가능 EMPLOYEE DEPARTMENT MANAGES StartDate 1
36
관계 타입의 애트리뷰트 (2/2) 1:N 관계 타입의 애트리뷰트: N쪽 엔티티 타입으로 이동 가능
ER 모델을 사용한 데이터 모델링 1:N 관계 타입의 애트리뷰트: N쪽 엔티티 타입으로 이동 가능 M:N 관계 타입의 애트리뷰트: 엔티티 타입으로 이동 불가 해당 애트리뷰트는 반드시 관계 타입에 표현되어야 함 EMPLOYEE DEPARTMENT WORKSFOR StartDate N 1
37
약한 엔티티 타입 (Weak Entity Type) (1/2)
ER 모델을 사용한 데이터 모델링 약한 엔티티 타입: 자신의 키 애트리뷰트가 없는 엔티티 타입 예: DEPENDENT 엔티티 타입 약한 엔티티 타입과 구분하기 위해, 키를 가지는 정규(regular) 엔티티 타입을 강한 엔티티 타입이라 부르기도 함 약한 엔티티 타입은 애트리뷰트 중 하나가 다른 엔티티 타입에 연계됨으로서 식별될 수 있음 식별(identifying) 엔티티 타입 식별(소유) 엔티티 타입과 식별 관계 EMPLOYEE와 DEPENDENT에서 EMPLOYEE가 식별 엔티티 타입이며, 두 엔티티 타입 사이의 관계를 식별 관계라고 부름
38
약한 엔티티 타입 (Weak Entity Type) (2/2)
ER 모델을 사용한 데이터 모델링 부분 키(partial key) 동일한 소유 엔티티와 연관된 약한 엔티티 집합 내의 서브 집합(예를 들어, 소유 엔티티 employee e1의 dependents set) 내에서, 서로를 구분할 수 있는 애트리뷰트들의 집합 (예를 들어, Dependent.name) [가정: 부양 가족 내에 같은 이름은 없음] ERD에서 약한 엔티티 타입과 이의 식별 관계는 이중선으로, 부분키는 점선 밑줄로 표현함 (그림 7.2 참조) 약한 엔티티는 소유 엔티티 타입의 복합 애트리뷰트로 표현할 수도 있음 예를 들어, EMPLOYEE에 대해, Name, Birth_date, Sex, Relationship의 애트리뷰트로 구성되는 복합 다치 애트리뷰트Dependents를 명시할 수 있음 (다음 슬라이드 참조) 그러나, 다음 경우에는 별도 엔티티 타입으로 표현하는 것이 바람직함 엔티티가 많은 애트리뷰트들을 가지고, 식별 관계 타입 외에 다른 관계 타입들에 독립적으로 참여하는 경우
39
약한 엔티티 타입의 표현 약한 엔티티 타입으로 표현 복합 다치 애트리뷰트로 표현 ER 모델을 사용한 데이터 모델링
EMPLOYEE EMPLOYEE 1 Dependents HAS Name Sex BirthDate Relationship N DEPENDENTS Name Sex BirthDate Relationship
40
강의 내용 개념적 모델링과 예제 데이터베이스(COMPANY) ER 모델의 개념 ER 다이어그램 (ERD) – 표기법
엔티티와 애트리뷰트 엔티티 타입, 값 집합, 키 애트리뷰트 관계와 관계 타입 약한 엔티티 타입 역할과 관계 타입에서의 애트리뷰트 ER 다이어그램 (ERD) – 표기법
41
COMPANY DB에 대한 ER 설계의 개선 ER 모델을 사용한 데이터 모델링 그림 7.8(초기 설계)에서 관계를 나타내는 애트리뷰트들을 관계 타입으로 변환하여 발전시킴 (결과는 다음 페이지[그림 7.2]) 생성되는 관계 타입들 MANAGES: EMPLOYEE와 DEPARTMENT 사이의 1:1 관계 타입 WORKS_FOR: DEPARTMENT와 EMPLOYEE 사이의 1:N 관계 타입 CONTROLS: DEPARTMENT와 PROJECT 사이의 1:N 관계 타입 SUPERVISION: EMPLOYEE(상사역할)와 EMPLOYEE(사원역할) 사이의 1:N 관계 타입 WORKS_ON: EMPLOYEE와 PROJECT 사이의 M:N 관계 타입 DEPENDENTS_OF: EMPLOYEE와 DEPENDENT 사이의 1:N 관계 타입
42
개념적 설계의 결과 ER 모델을 사용한 데이터 모델링 Fname Minit Lname Name Address Sex
Salary Ssn Bdate EMPLOYEE WORKS_FOR StartDate NumberOfEmployees MANAGES SUPERVISION Number Locations DEPATMENT CONTROLS PROJECT Location Hours WORKS_ON DEPENDENTS_OF DEPENDENT BirthDate Relationship supervisor 1 N supervisee M
43
ERD에서 명명 규칙과 설계 시 유의 사항 명명 규칙 설계 시 유의 사항
스키마에 사용된 각 구조물에 대해 가능한 한 그 의미를 전달할 수 있는 이름 선택 복수보다 단수 이름 선택 일반적으로 자연어로 기술된 요구 사항에서 명사는 엔티티 타입 이름, 동사는 관계 타입 이름으로 해석하는 것이 도움이 됨 설계 시 유의 사항 ER 다이어그램은 왼쪽에서 오른쪽, 위에서 아래로 읽기 쉽게 작성함 스키마 설계는 반복해서 개선하는 작업이 필요함 한번에 완성하기는 쉽지 않음
44
개념적 설계의 결과 ER 모델을 사용한 데이터 모델링 Fname Minit Lname Number N 1 Name
Address WORKS_FOR Name Locations Sex Salary NumberOfEmployees StartDate DEPATMENT Ssn 1 EMPLOYEE 1 1 MANAGES CONTROLS Bdate Hours supervisee N supervisor M N WORKS_ON PROJECT 1 SUPERVISION N 1 Name DEPENDENTS_OF Location N Number DEPENDENT Name Sex BirthDate Relationship
45
ER 다이어그램 표기법 요약 [그림 7.14] Symbol Meaning ... 복합 애트리뷰트 엔티티 타입 약한 엔티티 타입
관계 타입 식별 관계 타입 애트리뷰트 키 애트리뷰트 다치 애트리뷰트 ... E1 R E2 (최대값, 최소값) E 복합 애트리뷰트 유도된 애트리뷰트 E2가 R에 전체참여 E1이 R에 부분참여 R에서 E1:E2의 카디날리티 비율이 1:N R에서 E의 참여에 대한 구조적 제약조건 E가 R의 관계를 몇 개나 가지는가? 1 N
46
구조적 제약 조건 관계(relationship)에 대한 구조적 제약 조건 관계에 대한 의미를 표현하는 방법을 일컬음
ER 모델을 사용한 데이터 모델링 관계(relationship)에 대한 구조적 제약 조건 관계에 대한 의미를 표현하는 방법을 일컬음 (2진 관계에서의) 카디날리티 비율 1:1, 1:N, or M:N 연결된 선에 적절한 숫자를 나타냄으로써 표기함 (각 참여 엔티티에 대한) 참여 제약조건 전체 (또는 존재 종속성) 또는 부분 참여 전체 참여의 경우 연결된 선을 이중선으로 표기함.
47
구조적 제약 조건을 위한 다른 표기법 (최소값, 최대값)을 사용한 표기법 예: 다음 페이지 참조
ER 모델을 사용한 데이터 모델링 (최소값, 최대값)을 사용한 표기법 관계 타입 R에서 엔티티 타입 E의 각 참여를 명시 E 내의 각 엔티티 e가 적어도 최소값 만큼 그리고 최대 최대값 만큼 R 내의 관계 인스턴스들과 참여함을 나타냄 디폴트(제약조건 무): 최소값=0, 최대값=n 반드시, 최소값최대값, 최소값0, 최대값 1 예: 다음 페이지 참조 부서는 정확히 한 명의 부서장을 가지며 사원은 최대 한 개의 부서를 관리할 수 있다. MANAGES의 EMPLOYEE의 참여에 (0,1)로 표기 MANAGES의 DEPARTMENT의 참여에 (1,1)로 표기 사원은 정확히 한 부서에서 일 할 수 있으며 부서는 몇 명의 사원이라도 둘 수 있다. WORKS_FOR의 EMPLOYEE의 참여에 (1,1)로 표기 WORKS_FOR의 DEPARTMENT의 참여에 (0,n)로 표기
48
Employee Manages Department Works-for (최소값, 최대값) 표기법 관계 제약 조건 (0,1)
ER 모델을 사용한 데이터 모델링 Employee Department Manages (1,1) (0,1) Works-for (0,N)
49
(최소값,최대값)를 사용한 COMPANY ERD
50
UML 클래스 다이어그램 ER 모델을 사용한 데이터 모델링 엔티티 타입 클래스 엔티티(개체) 오브젝트(객체)
이름 속성 애트리뷰트 연산: ERD와의 차이점 엔티티 타입 클래스 엔티티(개체) 오브젝트(객체) 관계 연관(Association), 순환적 관계 재귀연관 애트리뷰트: 도메인(애트리뷰트 값집합) 연관 참여수에 상관없음 최소..최대 재귀연관 역할이름 연관의 애트리뷰트 집단화(Aggregation) 판별자 자격연관 자격집단화
51
요약 엔티티-관계(ER) 모델을 사용한 모델링 개념 스키마 레벨에서 ER 모델 개념 ER 다이어그램
엔티티 (개체)와 관계의 정의 스키마 레벨에서 ER 모델 개념 ER 다이어그램
Similar presentations