Download presentation
Presentation is loading. Please wait.
Published byPaul Arnold Modified over 9 years ago
1
Object Oriented Analysis and Design 1 Chapter 7 Database Design UML Specification for Data Modeling The Relational Data Model and Object Model Persistence Frameworks Database Design
2
Object Oriented Analysis and Design 2 UML Specification for Data Modeling
3
Object Oriented Analysis and Design 3 7.1 UML Specification for Data Modeling UML Notation for Data Modeling Modeling Associations in the Data Model Modeling Aggregation in the Data Model Modeling Inheritance in the Data Model
4
Object Oriented Analysis and Design 4 UML Notation for Data Modeling
5
Object Oriented Analysis and Design 5 Modeling Associations in the Data Model Associations between two persistent objects are realized as foreign keys to the associated objects. A foreign key is a column in one table which contains the primary key value of associated object NumberCourse_ID 678456789 NameDescriptionNumber Math 101Algebra456789 Course Offering table Course table Course - name - description - number CourseOffering - number : String 0..* 1 Primary Key Foreign Key
6
Object Oriented Analysis and Design 6 Modeling Aggregation in the Data Model Aggregation is also modeled using foreign key relationships Using composition implements a cascading delete constraint Student. - studentID : int Schedule - semester : Semester 0..* 1 1 Student_IDSemester 123456Spring 2001 Schedule table Student_ID 123456 Foreign Key Primary Key Student table
7
Object Oriented Analysis and Design 7 Modeling Inheritance in the Data Model A data model does not support modeling inheritance in a direct way Two options Use separate tables (normalized data) Duplicate all inherited associations and attributes (de-normalized data)
8
Object Oriented Analysis and Design 8 Modeling Inheritance in the Data Model - Example
9
Object Oriented Analysis and Design 9 Modeling Inheritance in the Data Model - Example
10
Object Oriented Analysis and Design 10 Modeling Inheritance in the Data Model - Example
11
Object Oriented Analysis and Design 11 Modeling Inheritance in the Data Model - Example
12
Object Oriented Analysis and Design 12 Modeling Inheritance in the Data Model - Example
13
Object Oriented Analysis and Design 13 The Relational Data Model and Object Model
14
Object Oriented Analysis and Design 14 7.2 The Relational Data Model and Object Model The Relational Data Model The Object Model
15
Object Oriented Analysis and Design 15 The Relational Data Model The relational model is composed of entities and relations. An entity may be a physical table or a logical projection of several tables also known as a view.
16
Object Oriented Analysis and Design 16 The Object Model An object model contains classes. Classes define the structure and behavior of a set of objects, sometimes called objects instances. The structure is represented as attributes (data values) and associations (relationships between classes).
17
Object Oriented Analysis and Design 17 The Persistence Frameworks
18
Object Oriented Analysis and Design 18 7.3 Persistence Frameworks The Purpose of a Persistence Framework Hibernate
19
Object Oriented Analysis and Design 19 The Purpose of a Persistence Framework
20
Object Oriented Analysis and Design 20 Hibernate Object / Relational mapping (ORM) and persistence / query framework i.e. It does even more stuff for you! Some features of Hibernate HibernateDaoSupport – superclass, easy HibernateTemplate access Database independence - sits between the database and your java code, easy database switch without changing any code Object / Relational Mapping (ORM) - Allows a developer to treat a database like a collection of Java objects Object oriented query language (HQL) - *Portable* query language, supports polymorphic queries etc. You can also still issue native SQL, and also queries by “Criteria” (specified using “parse tree” of Java objects) Hibernate Mapping - Uses HBM XML files to map value objects (POJOs) to database tables Transparent persistence - Allows easy saves/delete/retrieve for simple value objects Very high performance “in general” due to intelligent (2-level) caching, although in a few cases hand-written SQL might beat it
21
Object Oriented Analysis and Design 21 Hibernate Hibernate basically sits between the DB and your code Can map persistent objects to tables
22
Object Oriented Analysis and Design 22 Database Design
23
Object Oriented Analysis and Design 23 7.4 Database Design Purpose Overview Steps Map persistent design classes to tables Distribute class behavior to the database
24
Object Oriented Analysis and Design 24 Purpose To ensure that persistent data is stored consistently and efficiently. To define behavior that must be implemented in the database.
25
Object Oriented Analysis and Design 25 Database Design Overview Supplementary Specifications Database Design Use-Case Realization Design Classes Design Guidelines Data Model
26
Object Oriented Analysis and Design 26 Steps Map Persistent Design Classes to the Data Model Optimize the Data Model for Performance Optimize Data Access Define Storage Characteristics Define Reference Tables Define Data and Referential Integrity Enforcement Rules Distribute Class Behavior to the Database Review the Results
27
Object Oriented Analysis and Design 27 Mapping Persistent Classes to Tables In a relational database Every row is regarded as an object A column in a table is equivalent to a persistent attribute of a class NameStudent_ID Thomas Stuart123456 Object Instance Attributes from object type
28
Object Oriented Analysis and Design 28 Mapping Persistent Classes to Tables - Example
29
Object Oriented Analysis and Design 29 Map Class Behavior to Stored Procedures Determine if any operations can be implemented as a stored procedure Candidate operations Deal with persistent data Any operations where a query is involved in a computation Need to access the database to validate data
30
Object Oriented Analysis and Design 30 What Are Stored Procedures? A stored procedure is executable code which runs under the RDBMS Two types of stored procedures Procedures: Executed explicitly by an application Triggers: Invoked implicitly when some database event occurs
31
Object Oriented Analysis and Design 31 Example: Map Class Behavior to Stored Procedures ClassCandidate Operations getTuition addSchedule getSchedule deleteSchedule getStudentID getName getAddress
32
Object Oriented Analysis and Design 32 Example: Map Class Behavior to Stored Procedures
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.