+ All Categories
Home > Documents > Mapping Objects ↔ Relational DB

Mapping Objects ↔ Relational DB

Date post: 21-Jan-2016
Category:
Upload: emera
View: 36 times
Download: 0 times
Share this document with a friend
Description:
Mapping Objects ↔ Relational DB. 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. - PowerPoint PPT Presentation
Popular Tags:
21
Mapping Objects Relational DB
Transcript
Page 1: Mapping  Objects  ↔ Relational DB

Mapping Objects ↔Relational DB

Page 2: Mapping  Objects  ↔ Relational DB

The Problem with DatabasesDatabases 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

Page 3: Mapping  Objects  ↔ Relational DB

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.

Page 4: Mapping  Objects  ↔ Relational DB

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

Page 5: Mapping  Objects  ↔ Relational DB

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

Page 6: Mapping  Objects  ↔ Relational DB

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.

Page 7: Mapping  Objects  ↔ Relational DB

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

(exceptions exists)

Page 8: Mapping  Objects  ↔ Relational DB

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

Page 9: Mapping  Objects  ↔ Relational DB
Page 10: Mapping  Objects  ↔ Relational DB

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 professorDisadvantages : the person is both a student and a professor

Page 11: Mapping  Objects  ↔ Relational DB

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)

Page 12: Mapping  Objects  ↔ Relational DB

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)

Page 13: Mapping  Objects  ↔ Relational DB

Comparison

Page 14: Mapping  Objects  ↔ Relational DB

Mapping associations , aggregation, and composition Relationship between objects must also be mapped.

These relationship may be : Inheritance Association Aggregation composition

Page 15: Mapping  Objects  ↔ Relational DB

Do you remember !!!

Page 16: Mapping  Objects  ↔ Relational DB

Impelementing relationships

Page 17: Mapping  Objects  ↔ Relational DB

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 ?

Page 18: Mapping  Objects  ↔ Relational DB

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

Page 19: Mapping  Objects  ↔ Relational DB

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

Page 20: Mapping  Objects  ↔ Relational DB

Mapping Many-To-Many Associations

City

cityName

AirportairportCodeairportName

* *Serves

cityNameHoustonAlbanyMunich

Hamburg

City Table

airportCodeIAHHOUALBMUCHAM

Airport Table

airportNameIntercontinental

HobbyAlbany CountyMunich Airport

Hamburg Airport

Primary Key

cityNameHoustonHoustonAlbanyMunich

Hamburg

Serves Table

airportCodeIAHHOUALBMUCHAM

In this case we need a separate table for the association

Separate table for“Serves” association

Page 21: Mapping  Objects  ↔ Relational DB

Thanks for your attention Questions ?


Recommended