Object-Relational Modeling
E N D
Presentation Transcript
What Is a Relational Data Model? • Based on the concept of relations (tables of data) • Relationships established by matching primary and foreign keys • Relational DBMSs (RDBMS) are the most commonly used in industry today. • Many DBMS vendors have begun adding object-oriented features, creating an object-relational model.
What Is a Relation? • A named, two-dimensional table with the following properties (Not all tables are relations): • Entry at each row and column has a single value. • Entries in columns are from the same set of values (domain range) and correspond to an attribute • Each row is unique (i.e. has a nonempty primary key) and corresponds to a record that contains data values for a class. • Column order does not matter. • Row order does not matter. This is called First Normal Form (1NF)
Example relation: Note uniqueness of rows guaranteed by Emp_ID. Primary keys are underlined
What Is Normalization? • The process of converting complex data structures into well-structured relations • Well-structured relation – a relation that contains a minimum amount of redundancies and allows rows to be inserted, modified, and deleted without introducing errors or inconsistencies
Consequences of Relations that Are Not Well Structured • Insertion anomaly – adding new rows forces user to create duplicate data • Update anomaly – changes in one row force changes in other rows because of duplication • Deletion anomaly – deleting rows may cause a loss of data that would be needed for other future rows Data integrity requires well-structured relations.
The Normal Forms • 1st NF – all relations are in 1NF (basic) • 2nd NF – relations with no partial-key functional dependencies • 3rd NF – relations with no transitive functional dependencies Main goal is to achieve 3NF for all relations.
What Is a Functional Dependency? • The functional dependency of attribute B on attribute A is represented by an arrow A B, and implies that every valid value of attribute A uniquely determines the value of attribute B. • Determinant – the attribute on the left side of the arrow • All primary keys are determinants
Second Normal Form (2NF) • In 1NF and no partial key functional dependencies • If the primary key is a composite key (composed of more than one attribute) it is possible for an attribute to be functionally dependent on only part of the key • Avoid partial dependencies for 2NF
This table has a composite key (Emp_ID and Course) Functional dependencies: (A) Emp_ID Name, Dept, Salary (B) (A) Emp_ID, Course Date_Completed (B) Name, Dept, and Salary all have partial key dependencies, causing duplication of data.
Problem: If you had to edit Margaret Simpson’s department or salary, you would have to edit 2 records in this table.
Solution: Break the relation into two separate relations. 1:N relationship linked by Emp_ID No partial key dependencies Well structured
Third Normal Form (3NF) • In 2NF and no transitive functional dependencies • Given three attributes in a relation A, B, C, if A B and B C, this forms a transitive functional dependency • Avoid transitive dependencies for 3NF
Here, (A) Customer_ID (B) Salesperson, and (B) Salesperson (C) Region, cause a transitive dependency
Problem: If you had to edit Region for Salesperson Hicks you would have to edit every customer record in table.
Solution: Break the relation into two separate relations. 1:N relationship linked by SalesPerson No transitive dependencies Well structured
Primary and Foreign Keys • Primary key – one or more attributes that together form a unique identifier for rows in the relation • Foreign key – an attribute that appears as a non-primary key attribute or as part of a primary key in one relation and as a primary key attribute in another relation • Relationship – rows in one relation are matched with related rows in another relation through foreign keys
Primary Key in SALES1 table is Customer_ID Foreign Key is Salesperson because it is linked to the SPERSON table by the Primary Key Salesperson
Referential Integrity • A rule that states that any foreign key value (on the relation of the many side) MUST match a primary key value in the relation of the one side • No foreign key can contain a value that is not present in a primary key in the other relation
The value of Salesperson in each row of table SALES1 is limited to only the current values of Salesperson in the SPERSON table.
Object-Relational Data Model An ORDM is a relational data model with object-oriented extensions • Generalization (& Specialization) • Multivalued attributes (i.e. phone_number) • Aggregation (nested tables and clusters) • Object identifiers (not popularly used) • Pointers (alternative to linking – but requires new syntax for writing queries, not popular) • Behaviors (incorporate methods in a relation) • Richer set of data types (geographic points, documents, large objects)
Translating Conceptual Data Model to Object-Relational Model • Translate classes • Each class becomes an object relation • Identifier of class becomes primary key of object relation • Other attributes become nonprimary attributes of relation • Translate relationships • Represented using a foreign key. • Normalize object relations • Eliminate redundancy (follow 2nd & 3rd Normal form) • Merge object relations • Redundant object relations describing the same class must be merged and renormalized
Relational approach, forces atomic attributes Comparison of techniques for translating multivalued attributes Object-relational approach, with multivalued attribute
When constructing 1:N relationships, the foreign key is added as an attribute to the relation on the N side.
Associative Class Associative class and M:N relationship Many to Many Relationship Uses primary keys of 3 classes (Ternary)
Points for Figure 8.11 • Associative class is translated into a relation whose primary key is a composite of the primary keys of the other two classes. • M:N relationship between Work and Skill is implemented as an extra relation UseSkills, whose primary key is composed of the primary keys of Work and Skill.
Unary Relationship Recursive 1:N relationship is represented by a foreign key managerID, which matches with the empId primary key of the same relation.
Unary Relationship Recursive M:N relationship is represented by a separate relation Prerequisite, whose primary key is composed of two primary key values from the Course relation.
Problems in Merging Object Relations • Synonyms • Two or more attributes have different names but same meaning • For example: Employee1(EmpID, name) Employee2(EmpNo, name) Both keys mean the same but are named differently. • The analyst should select one of the two primary key names or use a third name but get agreement from affected departments
Problems in Merging Object Relations • Homonyms • A single attribute name has more than one meaning. • For example: Account1(AccountNo, amount) Account2(AccountNo, amount) AccountNo stands for Checking Account No in Account1 and Savings Account No in Account2. • The analyst should select a new attribute name and get agreement from affected departments.