UML Specification for Data Modeling

Download Report

Transcript UML Specification for Data Modeling

Chapter 7 Database Design
 UML Specification for Data Modeling
 The Relational Data Model and Object Model
 Persistence Frameworks
 Database Design
Object Oriented Analysis and Design
1
UML Specification for
Data Modeling
Object Oriented Analysis and Design
2
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
Object Oriented Analysis and Design
3
UML Notation for Data Modeling
Object Oriented Analysis and Design
4
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
Course Offering table
Number
CourseOffering
678
- number : String
Course_ID
456789
Foreign Key
0..*
0..*
1
Object Oriented Analysis and Design
Name
Primary Key
Description Number
Math 101
Algebra
Course table
Course
- name
- description
- number
5
456789
Modeling Aggregation in the Data Model
 Aggregation is also modeled using foreign
key relationships
 Using composition implements a cascading
delete constraint
Student table
Student.
Student_ID
- studentID : int
123456
11
Primary Key
0..*
Schedule table
Schedule
- semester : Semester
Student_ID
123456
Object Oriented Analysis and Design
6
Foreign Key
Semester
Spring 2001
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)
Object Oriented Analysis and Design
7
Modeling Inheritance in the Data Model - Example
Object Oriented Analysis and Design
8
Modeling Inheritance in the Data Model - Example
Object Oriented Analysis and Design
9
Modeling Inheritance in the Data Model - Example
Object Oriented Analysis and Design
10
Modeling Inheritance in the Data Model - Example
Object Oriented Analysis and Design
11
Modeling Inheritance in the Data Model - Example
Object Oriented Analysis and Design
12
The Relational Data Model and
Object Model
Object Oriented Analysis and Design
13
7.2 The Relational Data Model and Object Model
 The Relational Data Model
 The Object Model
Object Oriented Analysis and Design
14
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.
Object Oriented Analysis and Design
15
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).
Object Oriented Analysis and Design
16
The Persistence Frameworks
Object Oriented Analysis and Design
17
7.3 Persistence Frameworks
 The Purpose of a Persistence Framework
 Hibernate
Object Oriented Analysis and Design
18
The Purpose of a Persistence Framework
Object Oriented Analysis and Design
19
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
Object Oriented Analysis and Design
20
Hibernate
 Hibernate basically sits between the DB and
your code
 Can map persistent objects to tables
Object Oriented Analysis and Design
21
Database Design
Object Oriented Analysis and Design
22
7.4 Database Design
 Purpose
 Overview
 Steps
 Map persistent design classes to tables
 Distribute class behavior to the database
Object Oriented Analysis and Design
23
Purpose
To ensure that persistent data is stored consistently
and efficiently.
To define behavior that must be implemented in the
database.
Object Oriented Analysis and Design
24
Database Design Overview
Supplementary
Specifications
Use-Case Realization
Database
Design
Data Model
Design
Guidelines
Design Classes
Object Oriented Analysis and Design
25
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
Object Oriented Analysis and Design
26
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
Attributes from object type
Student
- name : String
- address : String
- studentID : Long
Name
Thomas Stuart 123456
Object Instance
Object Oriented Analysis and Design
Student_ID
27
Mapping Persistent Classes to Tables - Example
Object Oriented Analysis and Design
28
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
Object Oriented Analysis and Design
29
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
Object Oriented Analysis and Design
30
Example: Map Class Behavior to Stored Procedures
Class
Candidate Operations
• getTuition
Student.
• addSchedule
+ getTuition()
+ addSchedule()
+ getSchedule()
+ deleteSchedule()
+ hasPrerequisites()
# passed()
<<class>> + getNextAvailID()
+ getStudentID()
+ getName()
+ getAddress()
• getSchedule
• deleteSchedule
• getStudentID
• getName
• getAddress
Object Oriented Analysis and Design
31
Example: Map Class Behavior to Stored Procedures
Object Oriented Analysis and Design
32