Database Systems - Chapter 4: Relational Model - Trương Quỳnh Chi
            Relational Data Model
4
 Basic Concepts: relational data model, relation schema,
domain, tuple, cardinality & degree, database schema,
etc.
 Relational Integrity Constraints
 key, primary key & foreign key
 entity integrity constraint
 referential integrity
 Update Operations on Relations
        
        4
 Basic Concepts: relational data model, relation schema,
domain, tuple, cardinality & degree, database schema,
etc.
 Relational Integrity Constraints
 key, primary key & foreign key
 entity integrity constraint
 referential integrity
 Update Operations on Relations
Bạn đang xem 20 trang mẫu của tài liệu "Database Systems - Chapter 4: Relational Model - Trương Quỳnh Chi", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
        
        File đính kèm:
 database_systems_chapter_4_relational_model_truong_quynh_chi.pdf database_systems_chapter_4_relational_model_truong_quynh_chi.pdf
Nội dung text: Database Systems - Chapter 4: Relational Model - Trương Quỳnh Chi
- Contents 1 Relational Data Model 2 Main Phases of Database Design 3 ER-/EER-to-Relational Mapping 2
- Relational Data Model  Basic Concepts: relational data model, relation schema, domain, tuple, cardinality & degree, database schema, etc.  Relational Integrity Constraints  key, primary key & foreign key  entity integrity constraint  referential integrity  Update Operations on Relations 4
- Basic Concepts  Relational data model: represents a database in the form of relations - 2-dimensional table with rows and columns of data. A database may contain one or more such tables. A relation schema is used to describe a relation  Relation schema: R(A1, A2, , An) is made up of a relation name R and a list of attributes A1, A2, . . ., An. Each attribute Ai is the name of a role played by some domain D in the relation schema R. R is called the name of this relation 6
- Basic Concepts  Tuple: row/record in table  Cardinality: number of tuples in a table  Database schema S = {R1, R2, , Rm} 8
- Basic Concepts Relational data model Database schema Relation schema Relation Tuple Attribute 10
- Basic Concepts 12
- Relational Integrity Constraints  Constraints are conditions that must hold on all valid relation instances. There are three main types of constraints:  Key constraints  Entity integrity constraints  Referential integrity constraints  But 14
- Relational Integrity Constraints - Key Constraints  Superkey of R: A set of attributes SK of R such that no two tuples in any valid relation instance r(R) will have the same value for SK. That is, for any distinct tuples t1 and t2 in r(R), t1[SK] t2[SK]  Key of R: A "minimal" superkey; that is, a superkey K such that removal of any attribute from K results in a set of attributes that is not a superkey 16
- Relational Integrity Constraints - Key Constraints  The CAR relation, with two candidate keys: License_Number and Engine_Serial_Number 18
- Relational Integrity Constraints - Referential Integrity  A constraint involving two relations (the previous constraints involve a single relation)  Used to specify a relationship among tuples in two relations: the referencing relation and the referenced relation  Tuples in the referencing relation R1 have attributes FK (called foreign key attributes) that reference the primary key attributes PK of the referenced relation R2. A tuple t1 in R1 is said to reference a tuple t2 in R2 if t1[FK] = t2[PK]  A referential integrity constraint can be displayed in a relational database schema as a directed arc from R1.FK to R2 20
- Relational Integrity Constraints - Referential Integrity  The value in the foreign key column (or columns) FK of the referencing relation R1 can be either:  (1) a value of an existing primary key value of the corresponding primary key PK in the referenced relation R2, or  (2) a NULL  In case (2), the FK in R1 should not be a part of its own primary key 22
- Relational Integrity Constraints - Other Types of Constraints  Semantic Integrity Constraints:  based on application semantics and cannot be expressed by the model per se  E.g., “the max. no. of hours per employee for all projects he or she works on is 56 hrs per week”  A constraint specification language may have to be used to express these  SQL-99 allows triggers and ASSERTIONS to allow for some of these  State/static constraints (so far)  Transition/dynamic constraints: e.g., “the salary of an employee can only increase” 24
- Update Operations on Relations  Insertion: to insert a new tuple t into a relation R. When inserting a new tuple, it should make sure that the database constraints are not violated:  The value of an attribute should be of the correct data type (i.e. from the appropriate domain).  The value of a prime attribute (i.e. the key attribute) must not be null  The key value(s) must not be the same as that of an existing tuple in the same relation  The value of a foreign key (if any) must refer to an existing tuple in the corresponding relation  Options if the constraints are violated: Homework !! 26
- Update Operations on Relations  In case of integrity violation, several actions can be taken:  Cancel the operation that causes the violation (REJECT option)  Perform the operation but inform the user of the violation  Trigger additional updates so the violation is corrected (CASCADE option, SET NULL option)  Execute a user-specified error-correction routine  Again, homework !! 28
- Main Phases of Database Design  Three main phases  Conceptual database design  Logical database design  Physical database design 30
- Overview of Database Miniworld Design Process REQUIREMENTS - COLLECTION & ANALYSIS • Create a database Data requirements ent schema in CONCEPTUAL DESIGN implementation data independ Conceptual schema model of a commercial – DBMS DBMS LOGICAL DESIGN • Data model mapping (DATA MODEL MAPPING) is often automated or Database schema semi-automated within specific – the database design PHYSICAL DESIGN tool. DBMS Internal schema 32 Database Design
- Entity-Relationship Diagram (ERD) for COMPANY Database 34
- Contents 1 Relational Data Model 2 Main Phases of Database Design 3 ER-/EER-to-Relational Mapping 36
- ER-to-Relational Mapping  Step 1: Mapping of Regular (strong) Entity Types  Entity > Relation  Attribute of entity > Attribute of relation  Primary key of entity > Primary key of relation  Example: We create the relations EMPLOYEE, DEPARTMENT, and PROJECT in the relational schema corresponding to the regular entities in the ER diagram. SSN, DNUMBER, and PNUMBER are the primary keys for the relations EMPLOYEE, DEPARTMENT, and PROJECT as shown 38
- Step 1: Mapping of Regular (strong) Entity Types 40
- Owner’s PK PK Weak Entity Type Partial key 42
- ER-to-Relational Mapping  ER-  Step 1: Mapping of Regular Entity Types  Step 2: Mapping of Weak Entity Types  Step 3: Mapping of Binary 1:1 Relationship Types  Step 4: Mapping of Binary 1:N Relationship Types  Step 5: Mapping of Binary M:N Relationship Types  Step 6: Mapping of Multivalued attributes  Step 7: Mapping of N-ary Relationship Types  Transformation of binary relationships - depends on functionality of relationship and membership class of participating entity types 44
- ER-to-Relational Mapping DEPARTMENT OFFER MODULE 1 N  Assume every module must be offered by a department, then the entity type MODULE is a mandatory member of the relationship OFFER. The relation for MODULE is: MODULE(MDL-NUMBER, TITLE, TERM, , DNAME) 46
- Step 3-4: Mapping of Relationship Types (Mandatory) 48
- ER-to-Relational Mapping N 1 BORROWER ON_LOAN BOOK  One possible representation of the relationship: BORROWER(BNUMBER, NAME, ADDRESS, ) BOOK(ISBN, TITLE, , BNUMBER)  A better alternative: BORROWER(BNUMBER, NAME, ADDRESS, ) BOOK(ISBN, TITLE, ) ON_LOAN(ISBN, BNUMBER)
- Step 3-4: Mapping of Relationship Types (Optional) 52
- ER-to-Relational Mapping  Transformation of recursive/involuted relationships  Relationship among different instances of the same entity  The name(s) of the prime attribute(s) needs to be changed to reflect the role each entity plays in the relationship 1 PERSON MARRY M 1 PART COMPRISE N N EMPLOYEE SUPERVISE 1 56
- ER-to-Relational Mapping  Example 2: 1:M involuted relationship  If the relationship is mandatory or almost mandatory: EMPLOYEE(ID, ENAME, , SUPERVISOR_ID)  If the relationship is optional: EMPLOYEE(ID, ENAME, ) SUPERVISE(ID, START_DATE, , SUPERVISOR_ID)  Example 3: N:M involuted relationship PART(PNUMBER, DESCRIPTION, ) COMPRISE( MAJOR-PNUMBER, MINOR-PNUMBER, QUANTITY) 58
- ER-to-Relational Mapping  Step 6: Mapping of Multivalued attributes  For each multivalued attribute A, create a new relation R. This relation R will include an attribute corresponding to A, plus the primary key attribute K-as a foreign key in R- of the relation that represents the entity type or relationship type that has A as an attribute  The primary key of R is the combination of A and K. If the multivalued attribute is composite, we include its simple components Example: The relation DEPT_LOCATIONS is created. The attribute DLOCATION represents the multivalued attribute LOCATIONS of DEPARTMENT, while DNUMBER-as foreign key-represents the primary key of the DEPARTMENT relation. The primary key of R is the combination of {DNUMBER, DLOCATION} 60
- Result of mapping the COMPANY ER schema into a relational schema 62
- ER-to-Relational Mapping Ternary relationship types: The SUPPLY relationship N N N Note: if the cardinality constraint on any of the entity types E participating in the relationship is 1, the PK should not include the FK attributes that reference the relation E’ corresponding to E 64
- ER- & EER-to-Relational Mapping  ER-  Step 1: Mapping of Regular Entity Types  Step 2: Mapping of Weak Entity Types  Step 3: Mapping of Binary 1:1 Relationship Types  Step 4: Mapping of Binary 1:N Relationship Types  Step 5: Mapping of Binary M:N Relationship Types  Step 6: Mapping of Multivalued attributes  Step 7: Mapping of N-ary Relationship Types  EER-  Step 8: Options for Mapping Specialization or Generalization.  Step 9: Mapping of Union Types (Categories) 66
- EER-to-Relational Mapping  Option 8A: Multiple relations-Superclass and subclasses Create a relation L for C with attributes Attrs(L) = {k,a1, an} and PK(L) = k. Create a relation Li for each subclass Si, 1 < i < m, with the attributesAttrs(Li) = {k} U {attributes of Si} and PK(Li)=k. This option works for any specialization (total or partial, disjoint or over-lapping).  Option 8B: Multiple relations-Subclass relations only Create a relation Li for each subclass Si, 1 < i < m, with the attributes Attr(Li) = {attributes of Si} U {k,a1 ,an} and PK(Li) = k. This option only works for a specialization whose subclasses are total (every entity in the superclass must belong to (at least) one of the subclasses). 68
- Example: Option 8B Tonnage 70
- Example: Option 8C EngType 72
- EER-to-Relational Mapping  Mapping of Shared Subclasses (Multiple Inheritance)  A shared subclass, such as STUDENT_ASSISTANT, is a subclass of several classes, indicating multiple inheritance. These classes must all have the same key attribute; otherwise, the shared subclass would be modeled as a category.  We can apply any of the options discussed in Step 8 to a shared subclass, subject to the restriction discussed in Step 8 of the mapping algorithm. Below both 8C and 8D are used for the shared class STUDENT_ASSISTANT. 74
- Example: Mapping of Shared Subclasses 76
- Example: Mapping of Union Types 78
- Exercise 2 82
- 84 Exercise 4

