Presentation is loading. Please wait.

Presentation is loading. Please wait.

Fall 2009ACS-3913 R McFadyen1 Persistent Objects Persistent objects are objects that continue to exist after the application program terminates Persistence.

Similar presentations


Presentation on theme: "Fall 2009ACS-3913 R McFadyen1 Persistent Objects Persistent objects are objects that continue to exist after the application program terminates Persistence."— Presentation transcript:

1 Fall 2009ACS-3913 R McFadyen1 Persistent Objects Persistent objects are objects that continue to exist after the application program terminates Persistence is provided by a DBMS ACID properties … D: durable or persistent Two main categories OODBMS RDBMS Chapter 38: Intro, 1- 2, 4 - 9, 16 -19

2 Fall 2009ACS-3913 R McFadyen2 OODBMS An ODBMS is a DBMS which stores objects Depending on how an ODBMS implementation chooses to persist objects, there are two types of ODBMS: non-native and native

3 Fall 2009ACS-3913 R McFadyen3 OODBMS Non-native ODBMS In a non-native object database, there are two separate object models, one of the application and the other of the database itself. ODMG-compliant ODBMSs are examples of non-native ODBMSs since they require a separate data schema to be defined, regardless of the existence of the application object model. In order to query or persist objects from and to non- native object databases, a mapping between these two distinct models is required.

4 Fall 2009ACS-3913 R McFadyen4 OODBMS Native ODBMS In native object databases, objects are stored exactly as they are, without the need to map them into a different object model supported by the databases and vice versa. In the world of native object databases, there is just one single object model: the application object model databases are not easily portable across applications, languages, platforms

5 Fall 2009ACS-3913 R McFadyen5 OODBMS Native ODBMS e.g. db4o www.db4o.com Consider the model for the Persistence example on the web site section student *

6 Fall 2009ACS-3913 R McFadyen6 OODBMS import …Makes the db4o classes available to us. ObjectContainer db = Db4o.openFile(“…”); If the database does not exist, db4o creates it. The database is then opened for use. db.commit();This statement ends the current transaction. It indicates the end of a unit of work that must be committed in its entirety to the database. db.close();This statement closes the database for us and makes it available to another application. db.store(section);This one statement is all that is necessary to have the section object saved to the database.

7 Fall 2009ACS-3913 R McFadyen7 OODBMS Consider code in folder Persistence example on web site: SectionDriver, Section, and Student comprise a 1903 example using arrays of objects CreateStudentDatabase: creates a database of sections where a section contains student objects ListDatabase: lists section objects and student objects in database ClearDatabase: removes all sections and students from the database

8 Fall 2009ACS-3913 R McFadyen8 RDBMS Because RDBMSs are used so heavily in practice, objects must be stored and retrieved from an RDBMS The mismatch between the object representation of data and the relational representation leads to difficulties. A mapping between the two models is required to be implemented. Relations have Primary Keys, Foreign keys Data types Complex objects vs tuples Inheritance Collections of objects Larman examines how a framework for an O-R mapping service should be constructed

9 Fall 2009ACS-3913 R McFadyen9 Architectural layers Relational Database NextgenPOS User Interface Application Technical Services O/R Mapping Service

10 Fall 2009ACS-3913 R McFadyen10 Patterns Representing Objects as Tables 38.6 Object Identifier 38.8 Façade 38.9 Representing Object Associations as Tables 38.19 one-to-one one-to-many many-to-many many-to-many with an Association Class Aggregation and Composition Superclass/Subclass

11 Fall 2009ACS-3913 R McFadyen11 Persistent Objects in an RDBMS To use an RDBMS for NextGenPOS, we require an object to relational mapping service persistence service is a subsystem within the Technical Services Layer mismatch between record-oriented and object-oriented representations of data recommendation : buy, not build Hibernate, Toplink, Glassfish provides functions such as store, retrieve, modify, commit, rollback

12 Fall 2009ACS-3913 R McFadyen12 Key Ideas Mapping There are two schemas: object and relational. A mapping is required that translates from one to the other. Object Identity Records and objects have a unique identifier Materialization/Dematerialization need to be able to translate the non-object representation to an object representation, and vice versa Lazy Materialization Some objects are not materialized all-at-once; part of the object may be done first, and other parts later on

13 Fall 2009ACS-3913 R McFadyen13 Each class becomes a table Representing Objects as Tables pattern define a table for each persistent object class Some mappings are straight forward ClassAn objectThe table Many of these patterns mentioned come from a paper “Crossing Chasms: A Pattern Language for Object-RDBMS” published in 1996 in Pattern Languages of Program Design

14 Fall 2009ACS-3913 R McFadyen14 > stereotype We can indicate tables in UML using the stereotype: > Note you can use UML for designing relational databases

15 Fall 2009ACS-3913 R McFadyen15 OIDs We can use the OID to prevent from instantiating the same object twice and to help find an instance Objects have an OID that is used as the PK in a relational table. Each object is uniquely mapped to a row in the table Object Identifier Pattern assign an OID to each record and object i.e. We augment the attributes with a new attribute that we refer to as the OID

16 Fall 2009ACS-3913 R McFadyen16 Façade Persistence subsystem will have a Façade that provides access to its services façade Requesting a ProductSpecification with a specific OID The façade is implemented using Singleton

17 Fall 2009ACS-3913 R McFadyen17 Representing Relationships in Tables Representing Object Associations as Tables pattern one-to-one place an OID FK in one or both tables representing the objects in the association or, create an associative table that records the OIDs of each object in the association or, could merge the two classes into one table Consider StoreRegister houses 11

18 Fall 2009ACS-3913 R McFadyen18 Representing Relationships in Tables Representing Object Associations as Tables pattern one-to-many create an associative table that records the OIDs of each object in relationship or, could use a Foreign Key on the Many side Consider ProductCatalogProductSpecification contains 11..*

19 Fall 2009ACS-3913 R McFadyen19 Representing Relationships in Tables Representing Object Associations as Tables pattern many-to-many create an associative table that records the OIDs of each object in relationship CompanyPerson employs **

20 Fall 2009ACS-3913 R McFadyen20 Representing Relationships in Tables Representing Object Associations as Tables pattern many-to-many AND with an Association Class create an associative table that records the OIDs of each object in relationship and attributes of the association class CompanyPerson employs ** Employment

21 Fall 2009ACS-3913 R McFadyen21 Representing Relationships in Tables Representing Object Associations as Tables pattern many-to-many AND with an Association Class create an associative table that records the OIDs of each object in relationship... Person marries * * Marriage

22 Fall 2009ACS-3913 R McFadyen22 Representing Relationships in Tables Representing Object Associations as Tables pattern Aggregation and Composition SaleSalesLineItem contains 1..* ProgrammeCourse contains 1..* * Treat as 1-to-many and many-to-many associations (Aside: Note that relational integrity rules/triggers may need to be defined.)

23 Fall 2009ACS-3913 R McFadyen23 Representing Relationships in Tables Representing Object Associations as Tables pattern Superclass/Subclass Payment CreditPaymentCashPaymentChequePayment 3 basic choices: all classes represented as separate tables, only the ‘leaf’ classes, or one table for all Others are possible (see ACS-3902)

24 Fall 2009ACS-3913 R McFadyen24 OR Mapping - Example When we map this structure to a Relational Database, we are creating an object- to-relational mapping. We need to define the relational database schema and specify which class(es) map to which relation(s), and whether the associations are mapped to relations or to foreign keys. When specifying a relations include all attributes, the PK, FKs and what the FK references. Suppose we have the following class model: Program name type description Course name credit description * * Offering slot room contains * offer

25 Fall 2009ACS-3913 R McFadyen25 Example - recall patterns for O-R mappings O-R Mapping The Representing Objects as Tables pattern says that each class will be represented in the RDb by a separate table (relation). The Object Identifier pattern tells us that each table representing a class will have the OID as the PK. The Representing Object Associations as Tables pattern gives us several options: use an association table to represent the association (for 1-1 and 1-m) we can choose to use a Foreign Key for a 1-1 we can choose to merge the two classes into one table etc

26 Fall 2009ACS-3913 R McFadyen26 Example - mapping ClassMaps to Relation Program Course AssociationMaps to Relation/FKey containsTable: Contains offerFK in Offering (refers to Course) Offering O-R Mapping, for the given class model we could decide: Course Program

27 Fall 2009ACS-3913 R McFadyen27 Example - mapping Relational Schema Program Course Offering nametypedescription slotroom namecreditdescription Contains pOID oOID cOID pOID cOID Illustrates the structure of the relations Attributes PKs - underlined. FKs - indicated via dashed lines. cOID

28 Fall 2009ACS-3913 R McFadyen28 Example - mapping Table structure with some sample records Program Course nametypedescription C Programming3This course introduces … pOID 256 3-yearR123 4-yearR...334 Java Programming3...333 Systems Analysis3...456 namecreditdescriptioncOID A 3-year programme of studies in Business Computing


Download ppt "Fall 2009ACS-3913 R McFadyen1 Persistent Objects Persistent objects are objects that continue to exist after the application program terminates Persistence."

Similar presentations


Ads by Google