데이터베이스 (Databases) ER 모델을 사용한 데이터 모델링 문양세 강원대학교 IT대학 컴퓨터과학전공.

Slides:



Advertisements
Similar presentations
제 3 장 개체 - 관계 (ER) 모델을 사용한 데이타 모델링 Fundamentals of Database Systems R. A. Elmasri and S. B. Navathe Copyright© 2002 황규영 홍의경 음두헌 박영철 김진호 조완섭.
Advertisements

1 3 장. 개체 - 관계 (ER) 모델을 사용한 데이타 모델링 3.1 데이타베이스 설계를 위한 고수준의 개념적 데이타 모델의 사용 3.2 예 3.3 ER 모델의 개념 3.4 개체 - 관계 ( ER ) 다이어그램에 대한 표기법 3.5 스키마 구조물들에 대한 적절한 이름.
제 4 장 관계 데이타 모델과 관계 데이타베이스 제약조건
ER Schema (추가)
2장. 데이터 모델.
Chapter 06 데이터 모델링.
개체-관계 (Entity-Relationship)모델
Entity Relationship Diagram
제 4 장 관계 학기 소프트웨어설계.
연결리스트(linked list).
8장 서브 쿼리.
제 3 장 엔티티-관계(ER) 모델을 사용한 데이타 모델링
MySQL 및 Workbench 설치 데이터 베이스.
데이터베이스 및 설계 금오공과대학교 컴퓨터공학부 이 이섭.
2장. E/R 데이터 모델 엔티티-관계성 (Entity-Relationship) 모델의 요소 설계 원칙
                              데이터베이스 설계 및 실습 #9 - 논리적 모델링 한국외국어대학교 DaPS 연구실                              
6 장. ER-관계 사상에 의한 관계 데이터베이스 설계
Chapter 06 데이터 모델링.
데이터베이스 설계와 ER 모델 설계, ER 모델링.
오브젝트 조합 회로 IT CookBook, VHDL을 이용한 디지털 회로 입문.
ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소의 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS 시제품은.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
5장. 데이터베이스 설계와 ER 모델 데이터베이스 설계 개념적 데이터베이스 설계와 물리적 데이터베이스 설계로 구분
5장. 관계대수와 관계 해석 관계 대수 릴레이션들을 다루는 연산들의 집합 검색 요구(질의)를 기술하는 데에 사용
08. 데이터 모델링.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
23장. 구조체와 사용자 정의 자료형 2.
제 3 장 관계 데이타 모델과 관계 데이타베이스 제약조건
제 7 장 엔터티-관계를 사용한 개념적 데이타 모델링
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
자바 5.0 프로그래밍.
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
ER-관계 사상에 의한 관계 데이터베이스 설계
데이터베이스 설계도구 ERwin 사용법(Erwin 4.1.4)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
1. 데이터 모델 개념 (1) 정보 모델링과 데이터 모델링 1) 정보 모델링 (information modeling) ① 현실 세계에 존재하는 개체를 인간이 이해할 수 있는 정보 구조 (현실 세계에 대한 인식을 추상적 개념으로 표현)로 표현하는 과정 ② 정보 모델링을.
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
2장. 변수와 타입.
Chapter 03. 관계 데이터베이스 설계.
04. DBMS 개요 명지대학교 ICT 융합대학 김정호.
컴포넌트 다이어그램 컴포넌트 정의 컴포넌트 다이어그램의 UML 표기법 컴포넌트와 클래스 컴포넌트 다이어그램의 간단한 예
Fucntion 요약.
문성우 SQL 실습 Part Ⅰ 문성우.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
제 8 장 ER-관계 사상에 의한 관계 데이타베이스 설계
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
학습내용 프로토콜 계층화 OSI 모델의 용어 및 기능 개체 서비스 접근점 (N) 프로토콜과 (N) 서비스 서비스 프리미티브
4장. 데이터 모델링 데이터 모델링과 데이터 모델의 개념 개체-관계 모델 논리적 데이터 모델.
ER-관계 사상에 의한 관계데이터베이스 설계 충북대학교 구조시스템공학과 시스템공학연구실
ER-관계 사상에 의한 관계 데이터베이스 설계
.Net FrameWork for Web2.0 한석수
이산수학(Discrete Mathematics)  술어와 한정기호 (Predicates and Quantifiers)
제 4 장 Record.
07. DB 설계 명지대학교 ICT 융합대학 김정호.
ER-관계 사상에 의한 관계 데이터베이스 설계
 6장. SQL 쿼리.
                              데이터베이스 설계 및 실습 #6 - SQL 실습 한국외국어대학교 DaPS 연구실                              
Pointers summary.
6 객체.
데이터베이스 설계 데이터의 분석 개체 관계.
BoardGame 보드게임 따라가기.
8장. 데이터베이스 설계 데이터베이스 설계 단계 요구 사항 분석 개념적 설계 논리적 설계 물리적 설계와 구현.
엔티티-관계(ER) 모델을 사용한 데이터 모델링
Presentation transcript:

데이터베이스 (Databases) ER 모델을 사용한 데이터 모델링 문양세 강원대학교 IT대학 컴퓨터과학전공

강의 내용 개념적 모델링과 예제 데이터베이스(COMPANY) ER 모델의 개념 ER 다이어그램 (ERD) – 표기법 엔티티와 애트리뷰트 엔티티 타입, 값 집합, 키 애트리뷰트 관계와 관계 타입 약한 엔티티 타입 역할과 관계 타입에서의 애트리뷰트 ER 다이어그램 (ERD) – 표기법

서론 데이터베이스 응용 엔티티-관계 모델링 (ER Modeling) 다른 모델링 기법 데이터베이스 + 필요한 기능을 구현한 프로그램 엔티티-관계 모델링 (ER Modeling) 고수준 데이터 모델: 인간의 이해를 돕기 위한 모델 개념설계 도구로서 데이터베이스 구조와 제약조건 정의 다른 모델링 기법 UML 방법론의 클래스 다이어그램을 이용한 모델링 데이터베이스 구조와 제약조건 + 연산 정의

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

예제 COMPANY 데이터베이스 (1/2) COMPANY 데이터베이스의 작은 세계 ER 모델을 사용한 데이터 모델링 COMPANY 데이터베이스의 작은 세계 1. 회사는 여러 부서들로 구성된다. 각 부서마다 고유한 이름, 고유한 번호, 부서를 관리하는 특정 사원이 있다. 사원이 부서를 관리하기 시작한 날짜도 유지한다. 한 부서는 여러 위치에 있을 수 있다. 2. 한 부서는 여러 프로젝트들을 관리한다. 각 프로젝트는 고유한 이름, 고유한 번호, 한 개의 위치를 가진다.

예제 COMPANY 데이터베이스 (2/2) COMPANY 데이터베이스의 작은 세계 (계속) ER 모델을 사용한 데이터 모델링 COMPANY 데이터베이스의 작은 세계 (계속) 3. 각 사원에 대해서 이름, 사회보장번호, 주소, 급여, 성별, 생년월일을 저장한다. 한 사원은 한 부서에 속하지만, 여러 프로젝트들에 관여할 수 있다. 한 사원이 관여하는 프로젝트들은 그 사원이 소속된 부서가 관리하는 프로젝트가 아니어도 무방하다. 반드시 한 부서의 각 사원이 각 프로젝트를 위해 일하는 주당 근무 시간을 기록한다. 또한 각 사원의 직속 상사도 유지한다. 4. 보험 목적을 위해서 각 사원의 부양가족들을 기록한다. 각 부양 가족에 대해서 이름, 성별, 생년월일, 사원과의 관계를 기록한다.

개념적 설계의 결과 – 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

개념적 설계의 결과 – ERD (2/2) ER 모델을 사용한 데이터 모델링 [그림 7.2]

강의 내용 개념적 모델링과 예제 데이터베이스(COMPANY) ER 모델의 개념 ER 다이어그램 (ERD) – 표기법 엔티티와 애트리뷰트 엔티티 타입, 값 집합, 키 애트리뷰트 관계와 관계 타입 약한 엔티티 타입 역할과 관계 타입에서의 애트리뷰트 ER 다이어그램 (ERD) – 표기법

개체 타입, 개체 집합, 애트리뷰트, 키 ER 모델은 데이터를 엔티티(개체), 관계, 애트리뷰트(속성)로 모델링함 엔티티-관계 모델링 엔티티: 실세계에서 독립적으로 존재하는 실체 애트리뷰트: 엔티티를 기술하는 속성 두 개 엔티티(직원 e1과 회사 c1)와 애트리뷰트 및 값 [그림 7.3] Name = John Smith Address = 2311 Kirby, Houston, Texas 77001 Age = 55 HomePhone = 713-749-2630 e1 Name = Sunco Oil Headquarters = Houston President = John Smith c1

엔티티 & 애트리뷰트 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

애트리뷰트 유형 (1/2) 복합(composite) 애트리뷰트(애트리뷰트 집합): 더 작은 요소로 나뉨 ER 모델을 사용한 데이터 모델링 복합(composite) 애트리뷰트(애트리뷰트 집합): 더 작은 요소로 나뉨 단순(simple) 애트리뷰트(원자 애트리뷰트) 복합 애트리뷰트의 계층구조 [그림 7.4] 단일 값(single value) 애트리뷰트: 애트리뷰트 하나는 하나의 값을 가짐 다치(multi-valued) 애트리뷰트: 애트리뷰트 하나가 여러 값을 가질 수 있음  한 사람은 여러 개 학위를 가질 수 있음 Address StreetAddress City State Zip Number Street ApartmentNumber

애트리뷰트 유형 (2/2) ER 모델을 사용한 데이터 모델링 저장된(stored) 애트리뷰트: DB에 실제로 저장된 애트리뷰트 (예: DOB  Date of Birth) 유도된(derived) 애트리뷰트: 실제 저장되어 있지 않으나, 다른 애트리뷰트나 사실(fact)에 의해 그 값이 유도될 수 있는 애트리뷰트 (예: Age  오늘 날짜와 DOB에 의해 나이가 유도될 수 있음)

특수한 애트리뷰트 복합 애트리뷰트 다치 애트리뷰트 유도 애트리뷰트 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

널(NULL) 값 ER 모델을 사용한 데이터 모델링 두 가지 의미로 사용됨 ‘적용할 수 없음’이라는 의미  Apartment_number는 단독 주택에 적용되지 않음  College_degree는 대학 미 졸업자에게는 적용되지 않음 ‘알려지지 않음’의 의미  John Smith(는 핸드폰이 있으나) 핸드폰 번호는 알지 못함

복잡한(complex) 애트리뷰트 괄호를 사용하여 중첩된 형태의 애트리뷰트를 구성 예제: AddressPhone ER 모델을 사용한 데이터 모델링 괄호를 사용하여 중첩된 형태의 애트리뷰트를 구성 예제: AddressPhone {AddressPhone( {Phone(AreaCode, PhoneNumber)}, Address( StreetAddress(Number, Street, ApartmentNumber), City, State, Zip ) ) }

엔티티 타입(개체 타입) 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) : 개체 집합 (외연) 애트리뷰트 값

((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}) :

키 애트리뷰트와 값 집합[도메인] 키 애트리뷰트 (key attribute) 값 집합(도메인) ER 모델을 사용한 데이터 모델링 키 애트리뷰트 (key attribute) 각 엔티티마다 서로 다른 값을 가지는 애트리뷰트 그림 7.6에서 COMPANY 엔티티 타입에서 키 애트리뷰트는 Name 일반적으로, PERSON 엔티티 타입의 키 애트리뷰트는 SocialSecurityNumber 복합 키: 두 개 이상의 애트리뷰트들이 모여서 하나의 키 애트리뷰트 역할을 하는 키 값 집합(도메인) 각 엔티티에서 애트리뷰트가 가질 수 있는 값들의 집합 EMPLOYEE의 Age 애트리뷰트의 값 집합은? (16부터 70 사이의 정수 집합)

키 애트리뷰트 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

COMPANY DB에 대한 초기 개념적 설계 (1/2) ER 모델을 사용한 데이터 모델링 1. 엔티티 타입 DEPARTMENT는 Name, Number, Location, Manager, ManagerStartDate 애트리뷰트를 가진다. Location은 다치 애트리뷰트이다. Name과 Number는 각 부서마다 고유하기 때문에 각각 키 애트리뷰트로 지정할 수 있다. 2. 엔티티 타입 PROJECT는 Name, Number, Locations, ControllingDepartment 애트리뷰트들을 가진다. Name과 Number가 각각 키 애트리뷰트이다.

COMPANY DB에 대한 초기 개념적 설계 (2/2) ER 모델을 사용한 데이터 모델링 3. 엔티티 타입 EMPLOYEE는 Name, SSN, Sex, Address, Salary, BirthDate, Department, Supervisor 애트리뷰트들을 가진다. SSN이 키 애트리뷰트이고, Name은 복합 애트리뷰트 이다. 4. 엔티티 타입 DEPARTMENT는 Employee, DependentName, Sex, BirthDate, Relationship(사원과의 관계) 애트리뷰트들을가진다.

COMPANY DB의 엔티티 타입들의 초기 설계 (1/2) ER 모델을 사용한 데이터 모델링 DEPARTMENT Name, Number, {Locations}, Manager, ManagerStartDate PROJECT Name, Number, Location, ControllingDepartment

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

강의 내용 개념적 모델링과 예제 데이터베이스(COMPANY) ER 모델의 개념 ER 다이어그램 (ERD) – 표기법 엔티티와 애트리뷰트 엔티티 타입, 값 집합, 키 애트리뷰트 관계와 관계 타입 약한 엔티티 타입 역할과 관계 타입에서의 애트리뷰트 ER 다이어그램 (ERD) – 표기법

관계, 관계 타입, 역할, 구조적 제약조건 관계 타입과 관계 인터페이스 관계 타입의 차수(degree) 애트리뷰트로서의 관계 ER 모델을 사용한 데이터 모델링 관계 타입과 관계 인터페이스 관계 타입의 차수(degree) 애트리뷰트로서의 관계 역할과 순환적(recursive) 관계 관계 타입에서 제약조건 관계 타입의 애트리뷰트 MANAGES DEPENDENTS_OF SUPERVISION

관계 타입과 관계 인스턴스 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 .

관계 타입의 차수(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 .

애트리뷰트로서의 관계 ER 모델을 사용한 데이터 모델링 관계는 참여 엔티티 타입의 애트리뷰트로 볼 수도 있음  즉, 관계가 엔티티의 애트리뷰트로 표현(구현)될 수 있음을 의미 예: EMPLOYEE와 DEPARTMENT 사이의 WORKS_FOR는 엔티티 타입 EMPLOYEE에 Department 애트리뷰트로 표현되거나, 엔티티 타입 DEPARTMENT의 Employees 애트리뷰트로 표현될 수 있음 EMPLOYEE Name(FName, MInit, LName), SSN, Sex, Address, Salary, BirthDate, Department, Supervisor, {WorksOn (Project, Hours)}

역할 이름과 순환적(recursive) 관계 (1/2) ER 모델을 사용한 데이터 모델링 역할 이름(role name): 관계 타입에 참여하는 각 에티티 타입은 관계 내에서 특정한 역할을 담당함 예: 관계 WORKS_FOR에서 EMPLOYEE는 사원/근로자 역할이고, DEPARTMENT는 부서/고용주의 역할임 일반적으로 관계에 참여하는 엔티티 타입이 다르면, 그 이름 자체가 역할로서 사용되기 때문에, 역할 이름을 특별히 명시하지 않음 EMPLOYEE WORKS_FOR DEPARTMENT supervisee supervisor SUPERVISION

역할 이름과 순환적(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

관계 타입에서 제약 조건 (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 :

관계 타입에서 제약 조건 (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

관계 타입에서 제약 조건 (3/3) ER 모델을 사용한 데이터 모델링 참여 제약조건(participation constraint): 한 엔티티의 존재가 관계 타입을 통해 연관되어 있는 다른 엔티티에 의존하는지의 여부 부분참여(partial participation)와 전체참여(total participation) 예: MANAGES 관계에서, (모든 사원이 manager로 참여하는 것은 아니므로) EMPLOYEE는 부분참여이고, (모든 부서는 (한 명의) manager가 있으므로) DEPARTMENT는 전체참여임 전체참여를 존재종속성(existence dependency)라고도 부름

관계 타입의 애트리뷰트 (1/2) 관계 타입도 (엔티티 타입 처럼) 애트리뷰트들을 가질 수 있음 ER 모델을 사용한 데이터 모델링 관계 타입도 (엔티티 타입 처럼) 애트리뷰트들을 가질 수 있음 관계 타입이 애트리뷰트를 가지는 예: WORKS_ON 관계 타입에 Hours 애트리뷰트를 포함시킬 수 있음 MANAGES 관계 타입에 StartDate를 포함시킬 수 있음 (언제 관리자가 되었나) 1:1 관계 타입의 애트리뷰트: 양쪽 엔티티 타입으로 이동 가능 EMPLOYEE DEPARTMENT MANAGES StartDate 1

관계 타입의 애트리뷰트 (2/2) 1:N 관계 타입의 애트리뷰트: N쪽 엔티티 타입으로 이동 가능 ER 모델을 사용한 데이터 모델링 1:N 관계 타입의 애트리뷰트: N쪽 엔티티 타입으로 이동 가능 M:N 관계 타입의 애트리뷰트: 엔티티 타입으로 이동 불가  해당 애트리뷰트는 반드시 관계 타입에 표현되어야 함 EMPLOYEE DEPARTMENT WORKSFOR StartDate N 1

약한 엔티티 타입 (Weak Entity Type) (1/2) ER 모델을 사용한 데이터 모델링 약한 엔티티 타입: 자신의 키 애트리뷰트가 없는 엔티티 타입 예: DEPENDENT 엔티티 타입 약한 엔티티 타입과 구분하기 위해, 키를 가지는 정규(regular) 엔티티 타입을 강한 엔티티 타입이라 부르기도 함 약한 엔티티 타입은 애트리뷰트 중 하나가 다른 엔티티 타입에 연계됨으로서 식별될 수 있음  식별(identifying) 엔티티 타입 식별(소유) 엔티티 타입과 식별 관계 EMPLOYEE와 DEPENDENT에서 EMPLOYEE가 식별 엔티티 타입이며, 두 엔티티 타입 사이의 관계를 식별 관계라고 부름

약한 엔티티 타입 (Weak Entity Type) (2/2) ER 모델을 사용한 데이터 모델링 부분 키(partial key) 동일한 소유 엔티티와 연관된 약한 엔티티 집합 내의 서브 집합(예를 들어, 소유 엔티티 employee e1의 dependents set) 내에서, 서로를 구분할 수 있는 애트리뷰트들의 집합 (예를 들어, Dependent.name) [가정: 부양 가족 내에 같은 이름은 없음] ERD에서 약한 엔티티 타입과 이의 식별 관계는 이중선으로, 부분키는 점선 밑줄로 표현함 (그림 7.2 참조) 약한 엔티티는 소유 엔티티 타입의 복합 애트리뷰트로 표현할 수도 있음 예를 들어, EMPLOYEE에 대해, Name, Birth_date, Sex, Relationship의 애트리뷰트로 구성되는 복합 다치 애트리뷰트Dependents를 명시할 수 있음 (다음 슬라이드 참조) 그러나, 다음 경우에는 별도 엔티티 타입으로 표현하는 것이 바람직함 엔티티가 많은 애트리뷰트들을 가지고, 식별 관계 타입 외에 다른 관계 타입들에 독립적으로 참여하는 경우

약한 엔티티 타입의 표현 약한 엔티티 타입으로 표현 복합 다치 애트리뷰트로 표현 ER 모델을 사용한 데이터 모델링 EMPLOYEE EMPLOYEE 1 Dependents HAS Name Sex BirthDate Relationship N DEPENDENTS Name Sex BirthDate Relationship

강의 내용 개념적 모델링과 예제 데이터베이스(COMPANY) ER 모델의 개념 ER 다이어그램 (ERD) – 표기법 엔티티와 애트리뷰트 엔티티 타입, 값 집합, 키 애트리뷰트 관계와 관계 타입 약한 엔티티 타입 역할과 관계 타입에서의 애트리뷰트 ER 다이어그램 (ERD) – 표기법

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 관계 타입

개념적 설계의 결과 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

ERD에서 명명 규칙과 설계 시 유의 사항 명명 규칙 설계 시 유의 사항 스키마에 사용된 각 구조물에 대해 가능한 한 그 의미를 전달할 수 있는 이름 선택 복수보다 단수 이름 선택 일반적으로 자연어로 기술된 요구 사항에서 명사는 엔티티 타입 이름, 동사는 관계 타입 이름으로 해석하는 것이 도움이 됨 설계 시 유의 사항 ER 다이어그램은 왼쪽에서 오른쪽, 위에서 아래로 읽기 쉽게 작성함 스키마 설계는 반복해서 개선하는 작업이 필요함  한번에 완성하기는 쉽지 않음

개념적 설계의 결과 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

ER 다이어그램 표기법 요약 [그림 7.14] Symbol Meaning ... 복합 애트리뷰트 엔티티 타입 약한 엔티티 타입 관계 타입 식별 관계 타입 애트리뷰트 키 애트리뷰트 다치 애트리뷰트 ... E1 R E2 (최대값, 최소값) E 복합 애트리뷰트 유도된 애트리뷰트 E2가 R에 전체참여 E1이 R에 부분참여 R에서 E1:E2의 카디날리티 비율이 1:N R에서 E의 참여에 대한 구조적 제약조건 E가 R의 관계를 몇 개나 가지는가? 1 N

구조적 제약 조건 관계(relationship)에 대한 구조적 제약 조건  관계에 대한 의미를 표현하는 방법을 일컬음 ER 모델을 사용한 데이터 모델링 관계(relationship)에 대한 구조적 제약 조건  관계에 대한 의미를 표현하는 방법을 일컬음 (2진 관계에서의) 카디날리티 비율 1:1, 1:N, or M:N 연결된 선에 적절한 숫자를 나타냄으로써 표기함 (각 참여 엔티티에 대한) 참여 제약조건 전체 (또는 존재 종속성) 또는 부분 참여 전체 참여의 경우 연결된 선을 이중선으로 표기함.

구조적 제약 조건을 위한 다른 표기법 (최소값, 최대값)을 사용한 표기법 예:  다음 페이지 참조 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)로 표기

Employee Manages Department Works-for (최소값, 최대값) 표기법 관계 제약 조건 (0,1) ER 모델을 사용한 데이터 모델링 Employee Department Manages (1,1) (0,1) Works-for (0,N)

(최소값,최대값)를 사용한 COMPANY ERD

UML 클래스 다이어그램 ER 모델을 사용한 데이터 모델링 엔티티 타입  클래스 엔티티(개체)  오브젝트(객체) 이름 속성 애트리뷰트 연산: ERD와의 차이점 엔티티 타입  클래스 엔티티(개체)  오브젝트(객체) 관계  연관(Association), 순환적 관계  재귀연관 애트리뷰트: 도메인(애트리뷰트 값집합) 연관 참여수에 상관없음 최소..최대 재귀연관 역할이름 연관의 애트리뷰트 집단화(Aggregation) 판별자 자격연관 자격집단화

요약 엔티티-관계(ER) 모델을 사용한 모델링 개념 스키마 레벨에서 ER 모델 개념 ER 다이어그램 엔티티 (개체)와 관계의 정의 스키마 레벨에서 ER 모델 개념 ER 다이어그램