Title: Object Persistence Design Chapter 13
1Object Persistence Design Chapter 13
- Alan Dennis, Barbara Wixom, and David Tegarden
- John Wiley Sons, Inc.
- Slides by Fred Niederman
- Edited by Solomon Negash
2Key Definitions
- Object persistence involves the selection of a
storage format and optimization for performance. - Four basic formats used for object persistence
are files, OO databases, object-relational, and
relational databases.
3OBJECT PERSISTENCE FORMATS
4Files
- Sequential Access
- Data stored in order based on a particular
attribute - Typically efficient for reports using all or most
of the files data - Random Access
- Data stored in unordered fashion
- Typically efficient for finding individual records
5Other files
- Master files
- Transaction files
- Audit
- History
- Look-up
6Customer Order File
Figure 13-1 Goes Here
7Relational Databases
- Primary key
- Foreign key
- Referential integrity
- Structured Query Language (SQL)
- Tables
- Joining tables
- Objects must be converted so they can be stored
in a table
8Object-Relational Databases
- Relational databases extended to handle the
storage of objects - Use of user-defined data types
- Extended SQL
- Inheritance tends to be language dependent
9Relational Database Example
Figure 13-3 Goes Here
10Object-Oriented Databases
- Two approaches
- Adding persistence extensions to OO languages
- Separate database management systems
- Extents
- Object ID assigned
- Some inheritance
- Repeating groups or multivalued attributes
- Mainly support multimedia applications
- Sharp learning curve
11Selecting an Object Persistence Format
12Your Turn
- A major university graduates about 10,000
students a year and the development office wants
to build a web-based system to solicit and track
donations. - What are the pros and cons of each data storage
format for this sort of application?
13MAPPING PROBLEM DOMAIN OBJECTS TO OBJECT
PERSISTENCE FORMATS
14Initial Points to Consider
- Adding primary and foreign keys
- Unless they add too much overhead
- Data management functionality only in classes at
data management layer - May add overhead, but aids in portability and
reuse
15Appointment System Problem Domain and Data
Management Layers
16Factoring Out Multiple Inheritance Effect
17Mapping Problem Domain Objects to ORDBMS Schema
-- Rules
18Mapping Problem Domain Objects to ORDBMS Schema
-- Example
19Maintain a Clean Problem Domain Layer
- Modifying the problem domain layer can create
problems between the system architecture and
human computer interface layer - The development and production costs of OODBMS
may offset the production cost of having the data
management layer implemented in ORDBMS
20Mapping Problem Domain Objects to RDBMS Schema --
Rules
21OPTIMIZING RDBMS-BASED OBJECT STORAGE
22Dimensions of Data Storage Optimization
- Storage efficiency (minimizing storage space)
- Speed of access (minimizing time to retrieve
desired information)
23Optimizing Storage Efficiency
- Reduce redundant data
- Limit null values
- Multiple possible interpretations can lead to
mistakes - A well-formed logical data model does not contain
redundancy or many null values
24The Steps of Normalization
25First Normal Form (1NF)
26Second Normal Form (2NF)
27Third Normal Form (3NF)
28Optimizing Access Speed
- Denormalization
- Clustering
- Intra-file
- Inter-file
- Indexing
29Payment Type Index
30Guidelines for Creating Indexes
- Use indexes sparingly for transaction systems
- Use many indexes to increase response times in
decision support systems - For each table
- Create a unique index based on the primary key
- Create an index based on the foreign key
- Create an index for fields used frequently for
grouping, sorting, or criteria
31Estimating Data Storage Size
Field Average Size (Characters) Order number
8 Date 7 Cust ID 4 Last name 13 First
name 9 State 2 Amount 4 Tax rate
2 Record Size 49 Overhead (30) 14.7 Total
Record Size 63.7
Initial Table Size 50,000 Initial Table Volume
3,185,000 Growth/Month 1,000 Table volume
_at_ 3 years 5,478,200
32Summary
- There are four basic types of object persistence
formats files (sequential and random access),
object-oriented databases, object-relational
databases, and relational databases. - Tradeoffs between the formats make it necessary
to consider which to apply in each environment - Once the format has been selected, data storage
needs to be optimized for efficiency and speed of
access.