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