* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download w03_1_INF280_Relational_Model
Open Database Connectivity wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Concurrency control wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Clusterpoint wikipedia , lookup
ContactPoint wikipedia , lookup
Relational algebra wikipedia , lookup
Relational Model DEFINITION AND PROPERTIES CONSTRAINTS AND SCHEMAS UPDATE ER | EER RELATIONAL D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 1 Relational Model: Definition and Properties Relational Model represents database as a collection of relations. • A relation may be considered as a table of values, where each row represents a collection of related values, forming an instance, a fact, corresponding with an entity in an entity-set. • Table-name and columns-names are used to interpret the meaning of values in each row and define relational schema. • Each value in a column is drawn by from the same value-set (data-type). D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 2 Relational Model: Definition and Properties In original definition of Relational Model: Tables are called Rows – Column-names – Data-type – D. Christozov / G.Tuparov relations; tuples; attributes; domain. INF 280 Database Systems: Relational Model 3 Relational Model: Definition and Properties • Domain is a set of allowable values for one or more attributes • Degree is a number of attributes in a relation. • Cardinality is a number of tuples in a relation. Alternative terminology Formal terms Alternative 1 Relation Table Tuple Row Attribute Column D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model Alternative 2 File Record Field 4 Properties of Relations • Relation name is distinct from all other relations. • Each cell of relation contains exactly one atomic (single) value. • Each attribute has a distinct name within relation. • Values of an attribute (column) are all from the same domain. • Order of attributes has no significance. • Each tuple is distinct; there are no duplicate tuples. • Order of tuples has no significance, theoretically. To ensure efficiency, tuples in a table are ordered according to primary key. D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 5 Relational Constraints (1) Key constraints (uniqueness constraint): • Superkey (Key) – – Formally - a set of attributes of a relation R is called Superkey (SK), if no any two distinct tuples t1 and t2 in a state r of R have the same value for attributes belonging to SK: t1[SK] <> t2[SK] – Informally - an attribute or a set of attributes that uniquely identifies a tuple within a relation. D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 6 Relational Constraints (2) • Key (candidate key) is a minimal Superkey — a Superkey from which we cannot remove an attribute and still, the remaining set of attributes, is Superkey (the uniqueness constraint holds). • Primary Key - candidate key selected to identify tuples Selection of PK affects performance! uniquely within relation. • Alternate Keys - candidate keys that are not selected to be the primary key. • Foreign Key - An attribute or set of attributes within one relation that matches candidate key of some Defining foreign keys ensures (possibly the same) relation. database integrity! D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 7 Relational integrity (1) • Null – Represents a value for an attribute that is currently unknown or is not applicable for this tuple. – Deals with incomplete or exceptional data. – Null represents the absence of a value and is not the same as zero or spaces, which are values. D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 8 Relational integrity (2) 2 principal rules for the relational model: • Entity Integrity – In a base relation, no attribute of a primary key can be null. • Referential Integrity – If foreign key exists in a relation, either the foreign key value must match a candidate key value of some tuple in its home relation or foreign key value must be wholly null. D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 9 Relational integrity (3) • Enterprise Constraints – Additional rules specified by users or database administrators. – Eg., the maximum number of staff in a branch. D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 10 Company Database: Relational Schema EMPLOYEE Fname Minit Lname SSN Bdate Address Sex Salary SupSSN DNO WORKS_ON ESSN DEPARTMENT Dname Dnumber MGRSSN PNO Hours MGRSDate PROJECT Pname LOCATION D_num Pnumber Plocation DNum D_location DEPENDENT ESSN D. Christozov / G.Tuparov D_name INF 280 Database Systems: Relational Model Sex Bdate Relationship 11 Company Database: Relational State EMPLOYEE Fname Minit Lname SSN Bdate Address Sex Salary SupSSN DNO John B Smith 123456789 1965-01-09 …TX… M 30000 3334455555 5 Franklin T Wong 333445555 1956-12-08 …TX… M 40000 888665555 5 Alicia J Zelaya 999887777 1968-01-19 …TX… F 25000 987654321 4 Jennifer S Wallace 987654321 1941-06-02 …TX… F 43000 888665555 4 Ramesh K Narayan 666884444 1962-09-15 …TX… M 38000 333445555 5 Joyce A English 453453453 1972-07-31 …TX… F 25000 333445555 5 Ahmad V Jabbar 987987987 1969-03-29 …TX… M 25000 987654321 4 James E Borg 888665555 1937-11-10 …TX… M 55000 Null 1 DEPARTMENT Dname Dnumber MGRSSN MGRSDate Research 5 333445555 1988-05-22 Administration 4 987654321 1995-01-01 Headquarter 1 888665555 1981-06-19 D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 12 Transition Constraints: Insert The Insert Operation can violate any of the four types of constraints discussed: • Domain constraints can be violated if an attribute is given value that does not appear in the corresponding domain. • Key constraints can be violated if a key value in the new tuple t already exists in another tuple in the relation r(R). • Entity integrity can be violated if the primary key of the new tuple t is null. • Referential integrity can be violated if the value of any foreign key in t refers to a tuple that does not exist in the referenced relation. D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 13 Transition Constraints: Insert – Examples (1) <‘Cecilia’, ‘F’, ‘Kolonsky’, null, ‘1960-04-05’, ‘6357 Windy Lane, Katy, TX’, F, 28000, null, 4> This insertion violates the entity integrity constraint (null for the primary key SSN) Rejected! <‘Alicia’, ‘J’, ‘Zelaya’, ‘999887777’, ‘1960-04-05’, ‘6357 Windy Lane, Katy, TX’, F, 28000, ‘987654321’, 4> This insertion violates the key constraint because another tuple with the same SSN value already exists in the EMPLOYEE relation Rejected! D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 14 Transition Constraints: Insert – Examples (2) <‘Cecilia’, ‘F’, ‘Kolonsky’, ‘677678989’, ‘1960-0405’, ‘6357 Windy Lane, Katy, TX’, F, 28000, ‘987654321’, 7> This insertion violates the referential integrity constraint specified on DNO because no DEPARTMENT tuple exists with DNUMBER = 7 Rejected or cascade request for insertion a new tuple into Department! <‘Cecilia’, ‘F’, ‘Kolonsky’, ‘677678989’, ‘1960-0405’, ‘6357 Windy Lane, Katy, TX’, F, 28000, null, 4> This insertion satisfies all constraints Accepted! D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 15 Transition Constraints: Delete • The Delete Operation can violate only referential integrity: If the tuple being deleted is referenced via a foreign key from other tuples in the database. • To specify which tuples to delete, a conditions defined on relation’s attributes have to be specified Example: Delete the tuple from WORKS_ON where ESSN = ‘999887777’ and PNO = 10 Accepted! D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 16 Transition Constraints: Delete - Examples Delete the EMPLOYEE tuple where SSN = ‘999887777’ Rejected! This deletion is not acceptable, because FK in WORKS_ON refers to this tuple. Executing deletion will result in violation of referential integrity. Delete the EMPLOYEE tuple where SSN = ‘333445555’ Rejected! This deletion will result in referential integrity violations. The tuple involved is referenced by FK from the EMPLOYEE, DEPARTMENT, WORKS_ON, and DEPENDENT relations. D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 17 Transition Constraints: Update The Update Operation • The Update operation is used to change the values of one or more attributes in a tuple (or tuples) of some relation R. It is necessary to specify a condition on the attributes of the relation to select the tuple (or tuples) to be modified. • Examples Update the SALARY of the EMPLOYEE tuple where SSN = ‘999887777’ to 28000 Acceptable! (Why?) D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 18 Transition Constraints: Update - Examples Update the DNO of the EMPLOYEE tuple with SSN = ‘999887777’ to 1 Acceptable! (Why?) Update the DNO of the EMPLOYEE tuple with SSN = ‘999887777’ to 7 Unacceptable, because it violates referential integrity. Update the SSN of the EMPLOYEE tuple with SSN = ‘999887777’ to ‘987654321’ Unacceptable, because it violates primary key and referential integrity constraints. D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 19 Q&A Attention ! Next class Quiz 1 Basic concepts, ER and EER D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 20 ER-to-Relational Mapping Algorithms • • • • • • • • 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 Step 8: Options for Mapping Specialization or Generalization • Step 9: Mapping of Union Types (Categories) D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 21 Step 1: Mapping of Regular Entity Types For each regular (strong) entity type E in the ER schema, create a relation R that includes all the simple attributes of E. Include only the atomic component attributes of a composite attribute. Choose one of the key attributes of E as primary key for R. If the chosen key of E is composite, the set of simple attributes that form it will together form the primary key of R. Fn Min Ln Nam Sex SSN Addr Sal EMPLOYEE BD EMPLOYEE Fname Minit D. Christozov / G.Tuparov Lname SSN Bdate Address INF 280 Database Systems: Relational Model Sex Salary 22 Step 2: Mapping of Weak Entity Types For each weak entity type W in the ER schema with owner entity type E, create a relation R, and include all simple attributes of W as attributes of R. In addition, include as foreign key attributes of R the primary key attribute(s) of the relation(s) E. The primary key of R is the combination of the primary key(s) of the owner(s) and the partial key of the weak entity type W, if any. Fn Min Ln Nam Sex SSN Addr Sal EMPLOYEE DEPENDENT BD Name Sex BDate Relation DEPENDENT ESSN D_name D. Christozov / G.Tuparov Sex Bdate Relationship INF 280 Database Systems: Relational Model 23 Step 3: Mapping of Binary 1:1 Relationship Types For each binary 1:1 relationship type R in the ER schema, identify the relations S and T that correspond to the entity types participating in R. Choose one of the relations—S, and include as foreign key in S the primary key of T. It is better to choose an entity type with total participation in R in the role of S. Include all the simple attributes (or simple components of composite attributes) of the 1:1 relationship type R as attributes of S. Fn Min Ln Nam Sex SSN Number Addr Location Name 1 EMPLOYEE BD Sal 1 Manage S DEPARTMENT T Start_Date NumEmp DEPARTMENT Dname D. Christozov / G.Tuparov Dnumber MGRSSN INF 280 Database Systems: Relational Model MGRSDate 24 Step 4: Mapping of Binary 1:N Relationship Types For each regular binary 1:N relationship type R, identify the relation S that represents the participating entity type at the N-side of the relationship type. Include as foreign key in S the primary key of the relation T that represents the other entity type participating in R; this is because each entity instance on the N-side is related to at most one entity instance on the 1-side of the relationship type. Include any attributes of the relationship type as attributes of S. Fn Min Ln Nam Sex SSN Number Addr Sal N EMPLOYEE 1 Works_for BD Location Name T DEPARTMENT S NumEmp EMPLOYEE Fname Minit D. Christozov / G.Tuparov Lname SSN Bdate Address INF 280 Database Systems: Relational Model Sex Salary DNO 25 Step 5: Mapping of Binary M:N Relationship Types For each binary M:N relationship type R, create a new relation S to represent R. Include as foreign key attributes in S the primary keys of the relations that represent the participating entity types; their combination will form the primary key of S. Also include any simple attributes of the M:N relationship type as attributes of S. Fn Min Ln Nam Sex SSN Name Addr PROJECT Sal M N EMPLOYEE Works_on BD Location hours Number PROJECT Pname Pnumber Plocation WORKS_ON DNum ESSN PNO Hours EMPLOYEE Fname Minit D. Christozov / G.Tuparov Lname SSN Bdate Address INF 280 Database Systems: Relational Model Sex Salary DNO 26 Step 6: Mapping of Multivalued Attributes For each multivalued attribute A of entity E, create a new relation R. This relation R will include an attribute(s) corresponding to A, plus the primary key K of E as a foreign key in R referencing the relation created for E. The primary key of R is the combination of A and K. If the multivalued attribute is composite, we include its atomic components. Number LOCATION Location Name D_num D_location DEPARTMENT NumEmp DEPARTMENT Dname Dnumber D. Christozov / G.Tuparov MGRSSN MGRSDate INF 280 Database Systems: Relational Model 27 Step 7: Mapping of N-ary Relationship Types For each n-ary relationship type R, where n > 2, create a new relation S to represent R. Include as foreign key attributes in S the primary keys of the relations that represent the participating entity types. Also include any simple attributes of the n-ary relationship type as attributes of S. The primary key of S is usually a combination of all the foreign keys that reference the relations representing the participating entity types. INF 280 Database Systems: D. Christozov / G.Tuparov Relational Model 28 Correspondence between ER and Relational Models ER MODEL Entity type RELATIONAL MODEL Entity relation 1:1 or 1:N relationship type M:N relationship type n-ary relationship type Foreign key (or relationship relation) Relationship relation and two foreign keys Relationship relation and n foreign keys Simple attribute Composite attribute Multivalued attribute Value set Attribute Set of simple component attributes Relation and foreign key Domain Key attribute Primary (or secondary) key D. Christozov / G.Tuparov INF 280 Database Systems: SQL Relational - Single Table Model queries 29 Step 8: Mapping Specialization or Generalization Convert each specialization with m subclasses {S1, S2, . . ., Sm} and (generalized) superclass C, where the attributes of C are {k, a1, . . ., an} and k is the (primary) key, into relation schemas using one of the four following options: D. Christozov / G.Tuparov INF 280 Database Systems: SQL Relational - Single Table Model queries 30 Step 8: Option A Multiple relations—superclass and subclasses Create a relation L for C Create a relation Li for each subclass Si, with the attributes D. Christozov / G.Tuparov INF 280 Database Systems: SQL Relational - Single Table Model queries 31 Step 8: Option 8B Multiple relations—subclass relations only Create a relation Li for each subclass Si, with the attributes D. Christozov / G.Tuparov INF 280 Database Systems: SQL Relational - Single Table Model queries 32 Step 8: Option 8C Single relation with one type attribute Create a single relation L, such that D. Christozov / G.Tuparov INF 280 Database Systems: SQL Relational - Single Table Model queries This option is for a specialization whose subclasses are disjoint, and t is defining attribute, that indicates the subclass to which each tuple belongs. This option has the potential for generating a large number of null values. 33 Step 8: Option 8D Single relation with multiple type attributes Create a single relation schema L such that This option is for a specialization whose subclasses are overlapping (but may also work for a disjoint) specialization, and each ti, 1 i m, is a Boolean attribute indicating whether a tuple belongs to subclass Si. D. Christozov / G.Tuparov INF 280 Database Systems: SQL Relational - Single Table Model queries 34 Step 9: Mapping of Union Types (Categories) Mapping Shared Subclasses (Multiple Inheritance): Any of options 8A – 8D may apply. STEP 9: For mapping of UNION Types (Categories), a new surrogate key attribute is specified, because the primary keys of the super-classes are different and may not use any of them to identify all entities in the category. The surrogate key is introduce in any of the super-classes relations as a foreign key to specify the correspondence. bank company PERSON person OWNER SSN … OwnerID … OwnerID OwnerID u BANK owner D. Christozov / G.Tuparov BName COMPANY … OwnerID INF 280 Database Systems: SQL Relational - Single Table Model queries CName 35 Example from Lecture 2: Map ER R Quack Consulting is a computer consulting firm. It keeps the list of its clients (id, name, phone). Each of them may have many different projects (id, description, start_date, due_to, team_leader). A project may consists of several tasks (project_id, task_id, consultant, description, start, due_to). Only one consultant is ever assigned to a given task. The time a consultant works for a project is recorded in time table. In order to choose the appropriate consultant for a client information about consultants and his/her specialty (including the billing_rate) is maintain as well as some comments about his/her qualities important for Quack Consulting. D. Christozov / G.Tuparov INF 280 Database Systems: SQL Relational - Single Table Model queries 36 Example from Lecture 2: Map ER R Fancy Fruits is a specialty grocery store supplying a variety of boxed fruits to its customers. The entities are customers, orders, stock, and vendors. The stock keeps track to current inventory (quantities on-hand of the items and current price). The vendors lists the wholesalers who supply Fancy Fruits with items, it includes the cost of item for Fancy Fruit and geographical region, where the wholesaler is located (Hint: Consider that one vendor could supply a number of items and one item could be supplied by a number of vendors different regions and costs). The customer also store information about the region of the customer as well as customer_name INF and 280phone. Database Orders Systems: defined the quantities of given item 37 D. Christozov / G.Tuparov SQL Relational - Single Table Model queries ordered by a customer Example from Lecture 2: Map ER R D_Price D_code Id Quantity Name Price Codes M N Products order s M On_hand Date D_code N M Date Purchase N Name address Quantity Customers Retailers d Dealers C_Id D. Christozov / G.Tuparov INF 280 Database Systems: SQL Relational - Single Table Model queries 38 Example from Lecture 2: Map ER R R_Id I_Id Recipes Ingredients Description Name 1 M N Activities Cook On_hand Supplies N Price Name Goods Name M Suppliers Price D. Christozov / G.Tuparov Quantity Address INF 280 Database Systems: SQL Relational - Single Table Model queries 39 Example from Lecture 2: Map ER R Name Address BANK BRANCH Address 1 N BRANCHES Name BANK OFFICE 1 Code GRANTS 1 N OPENS Acct No N 1 ACCOUNT ISSUES Type N Loan No Type Amount DEBIT CARD LOAN Rate Acct No M Start Date A-C Comfort Ins M Address L-C N N CUSTOMER Clinum Period Name SSN Telephone Employer Entity-Relationship Database D. Christozov / Diagram G.Tuparov Home Mobile INF 280 Database Systems: SQL Relational - Single Table Model queries Business 40 Q&A Attention ! Next class Quiz 2: ER R D. Christozov / G.Tuparov INF 280 Database Systems: Relational Model 41