Download presentation
Presentation is loading. Please wait.
Published byByron Mitchell Modified over 8 years ago
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
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 ?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.