1 / 35

5 . 개체 - 관계형 모델 (Entity-Relationship Model)

5 . 개체 - 관계형 모델 (Entity-Relationship Model). 서울시립대학교 전자전기컴퓨터공학부 김한준. Introduction. 1979 년 P.Chen 에 의해 제안 “ The Entity-Relationship Model: Toward a Unified View of Data”, ACM TODS , Jan.1976 . “real world” ( 실세계 ) 의 묘사에 유용하게 쓰임 user, 시스템분석 , DBA 등의 의사소통에 중요한 도구로 이용되고 있음 구현 모델이 아님

mardi
Download Presentation

5 . 개체 - 관계형 모델 (Entity-Relationship Model)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 5. 개체-관계형 모델 (Entity-Relationship Model) 서울시립대학교 전자전기컴퓨터공학부 김한준

  2. Introduction • 1979년 P.Chen에 의해 제안 • “The Entity-Relationship Model: Toward a Unified View of Data”, ACM TODS, Jan.1976. • “real world” (실세계)의 묘사에 유용하게 쓰임 • user, 시스템분석, DBA등의 의사소통에 중요한 도구로 이용되고 있음 • 구현 모델이 아님 • ER 모델을 기반으로 하는 DBMS는 없음

  3. Entity Relationship Schema 예

  4. Basic Concepts • Entity와 Entity set • Entity: 실세계에 관념적으로 또는 물리적으로 존재하는 것. • Entity set: 같은 속성을 갖는 entity들의 모임(집합) 고객 대출 구좌 • Entity instance • Entity set중의 어느 특정한 entity

  5. Entity-Relationship Model (개체관계형 모델) • 정의 • 모든 것을 Entity (개체)와 그들 간의 relationship (관계)으로만 표현 • Entity: 실세계에 실제로 또는 개념적으로 존재하는 것을 의미하며, 그것의 특성을 설명하는 속성(attribute)들을 가짐 • Relationship: Entity들이 상호 연결된 관계 크기 재질 Wheel ‘Wheel’ 개체와 ‘Frame’개체와의 관계(Relationship)을 ‘connect’로 표현 connect 재질 Frame 크기

  6. Basic Concepts • Attributes(속성) • An entity is represented by a set of attributes • Descriptive properties possessed by each member of an entity set • Value set (domain) : set of permitted values for an attribute; 같은 종류의 값들의 집합 • Formally • Entity Set에서 Value Set으로의 mapping • Simple vs. Composite attributes • Simple : values cannot be divided into subparts • Composite : composed of multiple parts (ex. name = (lastnm, firstnm))

  7. Basic Concepts • Single-valued vsmultivalued : • Single-valued : each attribute has a single value for an entity • Multivalued : an attribute may have more than one value for a single attribute (ex. children = {john, tom}) • Null attributes • null value : a special value meaning “missing” or “unknown” • Derived attributes • value can be derived from the values of other related attributes or entities (ex. duration, count, sum, . . . )

  8. Basic Concepts • Relationship • Relationship: entity들의 상호연관관계 • Relationship set: R = { [e1, ..., en] | e1∈E1, …, en∈En} Ei: entity set, [e1,...,en] : relationship 소유 = { [a,b],[b,i],[b,j] } 보증 = { [c,h] }

  9. Basic Concepts • Role : relationship에서 entity의 기능 • 「 소유 」에서 「 고객 」은 “소유자”의 기능, 「 대출구좌 」 는 “피소유자”의 기능 • m-ary relationship • 어느 supplier가 어떤 part를 무슨 project에 제공 • Relationship도 attribute를 가질 수 있다.

  10. Entity-Relationship Model (개체관계형 모델) • Entity (개체)란? • 하나의 Entity는 다른 개체와 구별되는 존재하는 대상을 의미 • 예) 특정의 사람, 특정의 기업, 특정의 사건 등 • Entity Set • 공통 속성을 가지는 동일한 타입의 entity 집합 • 예) set of all persons, companies, trees, holidays • 결국, 하나의 데이터베이스는 여러 타입의 entity 집합과 entity 집합 간의 relationship으로 표현 • Attributes • Entity set 내부의모든 원소 (entity)들이 공통으로 가지는 attribute를 가짐 • 예) 사람 = (‘주민등록번호’, ‘이름’, ‘주소’, ‘전화번호’) • 예) customer = (customer-id, customer-name, customer-street, customer-city) • 예) loan = (loan-number, amount) • Attribute types • Simple and Composite attributes. • Single-valued and Multi-valued attributes • 예) multi-valued attribute: phone-numbers • Derived attributes: 다른 attribute로부터 계산 • 예) 나이 : 생년월일 attribute로부터 계산

  11. ER Schema에 사용되는 기호 Entity Set에 존재하는 모든 entity가 Relationship R에 연관되는 경우를 의미 대응관계를 표현하는 방법 3가지 있음. Generalization 관계에서 상위 entity set의 모든 entity가 하위 entity에 모든 참가하면 “Total”, 참가 중복이 없으면 “Disjoint”

  12. Design Issues (1) Entity vs. Attribute • an employee’s telephone • as an attribute : simple • as an entity : independent • Decision should be based on • whether the telephone must be treated as an independent entity • the number of telephones an employee can have • whether telephones are shared between employees

  13. Design Issues (2) Entity vs Relationship "customer having an account at a branch" • account as relationship : simple but limited (cannot participate in other relationships) • account as entity : account can act as separate entity (3) Binary vs n-ary relationships • all n-ary relationships can be represented by binary relationships by adding additional entities and corresponding relationships • however, this is not always desirable => decision should be based on how the model best represents the real world situation

  14. Mapping Constraints • Relationship cardinality 1 : 1 1 : m m : 1 m : n • relationship cardinality can affect the placement of relationship attributes. • Existence dependency • 한 entity의 존재여부가 다른 특정 entity의 존재여부에 종속적임 (ex. bus - seat, loan - payment)

  15. Entity-Relationship Model (개체관계형 모델) • Mapping Cardinalities (대응관계) • Relationship set를 통해서 연관된 두 개 (또는 두 개 이상) entity들이 Express the number of entities to which another entity can be associated via a relationship set. • 세가지 타입이 존재 • 1-to-1 • 1-to-N (Many) • N (Many)-to-M (Many) Many-to-Many 관계 Many-to-1 관계 1-to-Many 관계 1-to-1 관계

  16. Keys • superkey • entity set에서 하나의 entity를 유일하게 지정할 수 있는 attribute또는 attribute set. • 주민 등록 번호 {고객} • {학과, 이름, 학번} (학생) • candidate key • superkey for which no proper subset is a superkey • 주민등록번호 • 학번 • primary key : candidate key중 주된 key로 사용되도록 선택된 것(designer가 선택)

  17. Relationship • Relationship sets How can we describe relationships? • Relationship R relates E1, ..., Ek • PK(E1) U ... U PK(Ek) is the set of attributes needed to describe an individual relationship • Primary key of a relationship E1 R E2 • if many-to-many: PK(R) = PK(E1) U PK(E2) • if one-to-many: PK(R) = PK(E2) • if relationship has its own attributes PK(R) depends on semantics of R

  18. Entity-Relationship Model (개체관계형 모델) • Entity Set의 예 • Relationship Set • R elationship set은두 개 이상의 entity간의 mathematical relation • {(e1, e2, … en) | e1  E1, e2  E2, …, en  En} • 여기서, (e1, e2, …, en) 은 하나의 relationship 원소이며, 여러 entity간의 연관 관계를 의미 • Attribute를 가질 수 있음 customer-id customer- customer- customer- loan- amountname street city number (Hayes, L15)  depositor Depositor라는 relationship은 ‘access-date’이라는 attribute를가짐 1-to-Many 관계

  19. E-R Diagram • entity sets • relationship sets • attributes • links • Multi-valued attributes • derived attributes • total participation • weak entity sets • generalization/specialization • aggregation

  20. Weak Entity Sets • An entity set that does not have sufficient attributes to form a primary key B# - Bus Seat - S# Time Type <=> strong entity • A weak entity set is dependent on a strong entity set • Primary key of a weak entity set = primary key of its dominant entity set + its descriminator (B# + S#)

  21. Extended E-R Features • Specialization (전문화) • The process of designating subgroupings within an entity set • (ex. account - savings-account, checking account) • a subentity will share common attributes • a subentity will have its own specific attributes • Generalization(일반화) • 서로 다른 entity들을 하나의 보편화된 entity로 취급. • (반대: specialization) - depends on where you start

  22. Extended E-R Features • Inheritance (상속) • The attributes and relationships of the higher-level entity sets are inherited by (applies to) the lower-level entity sets • Types of generalization (super-sub entities) • Disjoint vs. Overlapping : whether an entity can belong to more than two sub entity set • Total vs. Partial : whether every higher level entity belong to a lower level entity set • Aggregation(통합) • 여러 개의 부분(entity와 relationship)으로 이루어진 전체를 하나의 entity로 추상화 (반대: Decomposition)

  23. Entity-Relationship Model (개체관계형 모델) 점선밑줄은 Weak Entity Set의 discriminator (구별자)를 표시함 Weak Entity Set를 표시함 Relationship Set에 존재하는 attribute Derived attribute를 표시함 Multi-valued attribute를 표시함 밑줄표시는 Key를 표시함 ‘employee’ Entity Set의 entity들이 ‘works-for’ 관계를 맺을 때role (역할)을 명시적으로 표시함

  24. Entity-Relationship Model (개체관계형 모델) • Weak Entity Set • 이 Entity Set의 존재가 이와 relationship을 가지고 있는 Entity Set의 존재에 의해 결정되는 것으로서, primary key를 가지지 않음. • Relationship은 total participation, 1-to-Many relationship을 가짐 • Primary key를 가지지 않지만, 연관되는 entity가 결정되면 알 수 있는 entity를 알 수 있도록 해주는 attribute (또는 attribute 집합)을 discriminator (또는 partial key)라고함. • 예) 고유강좌 – 개설강좌 Discriminator를 표시함 Payment 관계형 테이블은 primary key로서 (loan_number, payment_number)를가져야 함 Total participation을 의미함. 즉 ‘Payment’ Entity set에 존재하는 모든 entity들이 ‘loan’ Entity Set과 관계를 맺음 Weak Entity Set를 표시함

  25. Entity-Relationship Model (개체관계형 모델) • Specialization (또는 Generalization) • 특정 entity set의 개념보다 세부화된 entity set를 정의할 수 있음 • Attribute 계승: 상위 entity set의 모든 attribute들은 하위 entity set의 attribute로 계승됨 Specialization Generalization • 유형 • Disjoint vs. Overlapping • 상위 entity set에 존재하는 entity들이 하위 entity set에 중복 안되는지, 또는 되는지를 구별함 • Total vs. Partial participation • 상위 entity set에 존재하는 entity들이 하위 entity set에 모두 존재하는지, 또는 안 되는 것이 존재하는지를 구별

  26. Entity-Relationship Model (개체관계형 모델) • Keys: 하나의 entity를 식별할 수 있는 attribute (또는 attribute 집합)를 의미 • 종류 • Superkey (수퍼키) • entity set에서 하나의 entity를 유일하게 지정할 수 있는 attribute또는 attribute set • 예) 고객 entity set의 ‘주민등록번호’, 학생 entity set의 {학과, 이름, 학번} • Candidate key (후보키) • 부분집합을 가지는 않는 superkey를의미 • 예) 고객 entity set의 ‘주민등록번호’, 학생 entity set의 {학번} • Primary key (주키) • candidate key중 주된 key로 사용되도록 선택된 것(designer가 선택) • Composite key • attribute가 복합되어 이루어진 키 • 예) • Foreign Key (외래키) • 필드값이pointer의 역할 • 예) foreign key “교수번호”가 pointer  교수테이블에 “102”가 반드시 존재해야  No dangling reference ! 교수 학생 지도

  27. Design of an ER DB Schema • Decisions to be made • attribute or entity • entity set or relationship set • ternary relationship or binary relationship • strong or weak entity set • generalization and specialization • aggregation

  28. Design of an ER DB Schema • Design phases • Requirement specification • identify data needs of user • Conceptual design • translate into a conceptual schema • Logical design • map onto the implementation data model of the DBMS • Physical design • specify physical features of the database (issues pertaining to performance rather than information contents; index, sequential order, etc.)

  29. 데이터베이스 설계 절차 산출물 • 요구사항분석보고서 • 구현 목적에 따라 구체적인 요구사항 작성 • 기능적 측면, 사용시나리오 포함 • Entity Relationship (ER) Schema • 요구사항을 토대로 entity 및 Entity간의 • 관계를 정의 • Relational Schema • ER schema를 바탕으로 변환규칙에 따라 • Relation schema의 작성 • 정규화 (normalization)을 통한 데이터 중복성 • 최소화 • Physical Schema • Indexing, Tuning, Transaction 설계 • Application System • SQL언어와 이를 담는 Host language를 이용하여 코딩 • Host language: C, Java, Perl, PHP, JSP, ASP 등

  30. Conceptual Design (개념적 설계) • 목표 • 데이터베이스의 구조, 의미,관계성, 그리고 제약조건을 기술 => Entity Relationship (ER) 스키마의 작성 • ER Schema (Diagram)의 구성 • Entity : 현실세계의 객체 → “사각형”으로 표시 • Relationship : 둘 이상 entity간의 관계 → “마름모”로 표시 • Attribute: entity, relationship의 성질 → “작은 원”으로 표시 • ER Schema의 예 학사DB를 위한 ER스키마 Banking DB를 위한 ER 스키마

  31. ER 다이어그램을관계형 테이블로 변환 (1/5) • Entity 변환 • 각 entity는 relation(관계형 table)로 변환 • entity의 attribute와 primary key는 관계형 table의 attribute와 primary key가 됨 • Relationship 변환: 1대1 관계 • 하나의 relation으로 압축 • 두 entity가 같은 primary를 가지는 경우 • 관계성을 흡수한 두 개의 relation 생성 • 두 entity가 서로 다른 primary key를 가지는 경우 고객번호 고객번호 이름 탁송주소 요구 고객 물품탁송 1 1 주민등록번호 회사원 이름 고객물품(고객번호, 고객이름, 탁송주소) 봉급 회사원(주민등록번호, 이름, 봉급)

  32. ER 다이어그램을관계형 테이블로 변환 (2/5) • Relationship 변환: 1대1 관계 • 하나의 relation으로 압축 • 두 entity가 같은 primary를 가지는 경우 • 관계성을 흡수한 두 개의 relation 생성 • 두 entity가 서로 다른 primary key를 가지는 경우 • Relationship 변환: 1대N 관계 • (1)쪽의 entity의 primary key인 E1의 primary key가 (N)쪽 entity인 E2의 한 attribute (또는 attribute의 셀)으로 첨가되고, 그attribute가 foreign key가 됨 여주민등록번호 남주민등록번호 도시명 인구 이름 이름 도명 결혼 남자 여자 1 1 N 1 소속 도 도시 도지사 인구 도시(도시명, 인구, 도명) 도(도명, 도지사, 인구) 남자(남주민등록번호, 이름, 여주민등록번호) 여자(여주민등록번호, 이름)

  33. 학번 이름 총평점 ER 다이어그램을관계형 테이블로 변환 (3/5) 학생 학생(학번, 이름, 총평점) 과목(과목번호, 과목명) 등록(학번, 과목번호, 학점) • Relationship의 변환: N-ary관계성 • N대M 관계성에서와 같은 변환 방법 • Relationship 에 참여한 N개 entity의 모든 key를 상속받아 새로운 relation의 primary key로 사용 • Relationship 변환: N대M 관계 • 별도의 relation을 생성하며, 한 entity의 primary key와 상대편 entity의 primary key로 구성되는 복합 key를 형성 M 제품코드 제품명 설명 등록 학점 제품 부품코드 설명 공급 부품 N 공급량 과목번호 공급자 코드 공급자명 주소 전화번호 공급자 과목 과목명 제품(제품코드, 제품명, 설명) 부품(부품코드, 설명) 공급자(공급자코드, 공급자명, 주소, 전화번호) 공급(제품코드, 부품코드, 공급자코드, 공급량)

  34. ER 다이어그램을관계형 테이블로 변환 (4/5) • Relationship 변환: 순환관계성 • 두 attribute를 포함하는 새로운 relation을 생성 • Composite Attribute의 변환 • 복합 구조를 구성하는 최하위 attribute를상위개념의 attribute와 이름을 결합예) • 주소 => (주소.도, 주소.구, 주소.동) • Multi-valued Attribute의 변환 • Entity E의 multi-valued attribute M을별도의 E-M 관계형 테이블로 구성 이름 생년월일 구 도 동 주소 회사원 회사원 supervise be_supervised N 1 관리 사원번호 전화번호 회사원-전화번호 (사원번호, 전화번호) 회사원 회사원(이름, 생년월일, 관리자이름)

  35. ER 다이어그램을관계형 테이블로 변환 (5/5) • Generalization의 변환 (방법1) • 상위수준의 entity에 대한 relational table을 생성 • 하위수준의 각 entity에 대한 relational table을 생성하고, 그것의 상위수준 entity의 primary key를 취함 • Relational Schema • Person (주민번호, 성명, 주소) • Customer (주민번호, 신용등급) • Employee (주민번호, 연봉) • Generalization의 변환 (방법2) • 상위수준의 entity에 대한 relational table을 생성 또는 생성 안함 • ‘partial participation’의 경우 상위수준 entity set의 어떤 entity들은 하위 entity set에 속하지 않으므로, 반드시 상위수준의 entity set에 대한 관계형 테이블을 생성함 • 하위수준의 각 entity에 대한 relational table을 생성하고, 그것의 상위수준 entity의 모든 attribute를 취함 • Relational Schema • Person (주민번호, 성명, 주소) • Customer (주민번호, 성명, 주소, 신용등급) • Employee (주민번호, 성명, 주소, 연봉) 주민번호 성명 Person 주소 단점: Customer 또는 employee 개체를 접근하기 위해서 두 개의 테이블을 참조해야 함 주민번호 단점: 상위수준의 attribute를 그대로 계승하기 때문에 데이터중복이 발생 성명 ISA Person 주소 Customer Employee 연봉 신용등급 ISA Customer Employee 연봉 신용등급

More Related