Presentation is loading. Please wait.

Presentation is loading. Please wait.

Mapping Objects ↔Relational DB. The Problem with Databases Databases store data in rows in tables, which are not like objects. We can simulate object.

Similar presentations


Presentation on theme: "Mapping Objects ↔Relational DB. The Problem with Databases Databases store data in rows in tables, which are not like objects. We can simulate object."— Presentation transcript:

1 Mapping Objects ↔Relational DB

2 The Problem with Databases Databases store data in rows in tables, which are not like objects. We can simulate object associations and collections using relations between rows in tables. Preserving uniqueness of objects and some object properties using persistence is difficult. Some conceptual differences exist, referred to as the Object-Relational Paradigm Mismatch

3 Mapping an object model to a relational DB UML object models can be mapped to relational databases:  Some degradation occurs because all UML constructs must be mapped to a single relational database construct - the table.

4 Mapping an object model to a relational DB UML mappings  Each class is mapped to a table  Each class attribute is mapped onto a column in the table  An instance of a class represents a row in the table  A many-to-many association is mapped into its own table  A one-to-many association is implemented as buried foreign key Methods are not mapped

5 How to map ? Mapping attributes ↔ columns Impelmenting inheritance in a relational database Mapping classes ↔ tables Mapping associations, aggregation, and composition Implementing relationships in relational database

6 attributes ↔ columns ? Class attribute ↔ Zero or a number of columns in DB Zero : Not all attributes are persistent grantTotal ( no need for storage in DB) Many columns : Object having objects as attributtes Customer object having an instance of ” address”. Address will map to many columns ( number, street, floor..etc) Several attributes ↔ single column US zip code with 3 numeric attributes will be stored as a single column.

7 classes ↔ tables ? Classes maps to tables (often not directly) No one-to-one mapping of classes to tables (exceptions exists)

8 Implementing Inheritance ? Three fundamental solutions for mapping inheritance into a relational database Using one data entity for an entire class hierarchy Using one data entity per concrete class Using one data entity per class

9

10 Using one data entity for an entire class hierarchy Map the entire class hierarchy into one data entity, where the attributes of all the classes in the hierarchy are stored ObjectType column is added to indicate whether the row represents a student, a professor Disadvantages : the person is both a student and a professor

11 Using one data entity per concrete class Each data entity includes both the attributes and the inherited attributes of the class that itv represents Advantages : Easy to perform Disavantages : A lot of work when you modify a class (ex : adding height and weight to Person) If change in role, copy data into appropriate table and assign new OID Difficult to support multiple roles ( where to store the name of someone who is both a student and a professor)

12 Using one data entity per class One table per class Advantages : Conform best to object-oriented concepts Easy to modify superclasses and add new subclasses Disadvantages Many tables in DB Longer to read and write data (you access many tables)

13 Comparison

14 Mapping associations, aggregation, and composition Relationship between objects must also be mapped. These relationship may be : Inheritance Association Aggregation composition

15 Do you remember !!!

16 Impelementing relationships

17 Implementing one-to-one relationship Relationship are maintained through the use of foreign keys. One-to-one relationship : include the key of one table in the other table.  Position and Employee data entities  Include the attribute ”positionOID”, the key of Position data entity,in the ”Employee” data entity. Why ?

18 Implementing many–to-one relationship Many-to-one relationship : Put the foreign key in the ”many”side of the relation  Task and Employee data entities

19 Implementing many –to-many relationship Many-to-one relationship : Introduce an associative table, a new data entity Many to many between Benefit and Employee data entities Name of the associative entity is a combination of the names of the tables that is it associates

20 Mapping Many-To-Many Associations City cityName Airport airportCode airportName * * Serves cityName Houston Albany Munich Hamburg City Table airportCode IAH HOU ALB MUC HAM Airport Table airportName Intercontinental Hobby Albany County Munich Airport Hamburg Airport Primary Key cityName Houston Albany Munich Hamburg Serves Table airportCode IAH HOU ALB MUC HAM In this case we need a separate table for the association Separate table for “Serves” association

21 Thanks for your attention Questions ?


Download ppt "Mapping Objects ↔Relational DB. The Problem with Databases Databases store data in rows in tables, which are not like objects. We can simulate object."

Similar presentations


Ads by Google