Chapter 11: Physical Database Design Object-Oriented Systems Analysis and Design

advertisement
Chapter 11:
Physical Database Design
Object-Oriented Systems Analysis and
Design
Joey F. George, Dinesh Batra,
Joseph S. Valacich, Jeffrey A. Hoffer
© Prentice Hall, 2007
11-1
Chapter Objectives

After studying this chapter you should
be able to:
– Design database fields.
– Evaluate denormalization situations.
– Design file organization structures.
– Design object-relational features.
Chapter 11
© Prentice Hall, 2007
11-2
Chapter 11
© Prentice Hall, 2007
11-3
What Is Physical Database
Design?

The part of a database design that deals with
efficiency considerations for access of data

Processing speed, storage space, and data
manipulation are key issues in physical
database design
Chapter 11
© Prentice Hall, 2007
11-4
Sometimes, the analyst and the
designer are the same person,
Deliverables
Chapter 11
© Prentice Hall, 2007
11-5
Chapter 11
© Prentice Hall, 2007
11-6
What Is SQL?

Structured Query Language

Often pronounced “sequel”

The standard language for creating and using
relational databases

ANSI Standards
– SQL-92 – most commonly available
– SQL-99 – included object-relational features
Chapter 11
© Prentice Hall, 2007
11-7
Common SQL Commands

CREATE TABLE – used to define table structures and
link tables together

SELECT – used to retrieve data using specified formats
and selection criteria

INSERT – used to add new rows to a table

UPDATE – used to modify data in existing table rows

DELETE – used to remove rows from tables
Chapter 11
© Prentice Hall, 2007
11-8
Example CREATE TABLE
Statement
Here, a table called DEPT is created, with
one numeric and two text fields.
The numeric field is the primary key.
Chapter 11
© Prentice Hall, 2007
11-9
Example INSERT Statement

This statement inserts a new row into the DEPT
table
DEPTNO’s value is 50
 DNAME’s value is “DESIGN”
 LOC’s value is “MIAMI”

Chapter 11
© Prentice Hall, 2007
11-10
SELECT
The SELECT, and FROM clauses are required.
All others are optional.
WHERE is used very commonly.
Chapter 11
© Prentice Hall, 2007
11-11
Chapter 11
© Prentice Hall, 2007
11-12
SELECT Statement: Example 1

Select * from DEPT;

Result: all fields of all rows in the DEPT table
Chapter 11
© Prentice Hall, 2007
11-13
SELECT Statement: Example 2

Select * from EMP where ENAME =
‘SMITH’;

Result: all fields for employee “Smith”
Chapter 11
© Prentice Hall, 2007
11-14
SELECT Statement: Example 3

Select EMPNO, ENAME From EMP where JOB
= ‘SALESMAN’ order by ENAME;

Result: employee number, name and job for only
salesmen from the EMP table, sorted by name
Chapter 11
© Prentice Hall, 2007
11-15
What Is a Join Query?

A query in which the WHERE clause
includes a match of primary key and foreign
key values between tables that share a
relationship
Chapter 11
© Prentice Hall, 2007
11-16
SELECT Statement: Example 4

Select EMPNO, ENAME, DNAME from EMP, DEPT
where EMP.DEPT_NO = DEPT.DEPT_NO and
DEPT.LOC = ‘CHICAGO’;

Result: all employees’ number and name (from the EMP
table, and their associated department names, obtained by
joining the tables based on DEPT_NO.

Only employees housed in department located in Chicago
will be included
Chapter 11
© Prentice Hall, 2007
11-17
SELECT Statement: Example 4
(cont.)
Join queries almost always involve matching the
primary key of the dominant table with the foreign key
of the dependent table.
Chapter 11
© Prentice Hall, 2007
11-18
What Is an Aggregation Query?

A query results in summary information about a
group of records, such as sums, counts, or
averages

These involve aggregate functions in the SELECT
clause (SUM, AVG, COUNT)

Aggregations can be filtered using the HAVING
clause and/or grouped using the GROUP BY
clause
Chapter 11
© Prentice Hall, 2007
11-19
SELECT Statement: Example 5

Select JOB, Avg(SALARY) from EMP Group by
JOB Having Avg(SALARY) >= 3000;

The job name and average salary for each job of
employees in the EMP table.

Only jobs with average salaries exceeding $3000
will be included
Chapter 11
© Prentice Hall, 2007
11-20
SELECT Statement: Example 5
(cont.)
Note that clerks and salesmen are not included,
because the average salaries for these jobs are
below $3000.
Chapter 11
© Prentice Hall, 2007
11-21
Example Data Manipulation

Update EMP set SAL = 3000 where
EMPNO = 7698;
– Modifies the existing employee’s (7698) salary

Delete from EMP where EMPNO = 7844
– Removes employee 7844 from the EMP table
Chapter 11
© Prentice Hall, 2007
11-22
1. Designing Fields

Field – the smallest unit of named application
data recognized by system software such as a
DBMS

Fields map roughly onto attributes in
conceptual data models

Field design involves consideration of identity,
data types, sizes, and constraints
Chapter 11
© Prentice Hall, 2007
11-23
Data type –
A coding scheme recognized by system
software for representing organizational data
Chapter 11
© Prentice Hall, 2007
11-24
Considerations for Choosing
Data Types

Balance these four objectives:
1.
Minimize storage space
Represent all possible values of the field
Improve data integrity for the field
Support all data manipulations desired for
the field
2.
3.
4.
Chapter 11
© Prentice Hall, 2007
11-25
Mapping a composite attribute onto multiple fields
with various data types
Chapter 11
© Prentice Hall, 2007
11-26
Creating and Using Composite
Attribute Types
Chapter 11
© Prentice Hall, 2007
11-27
Data Integrity Controls





Default Values – used if no explicit value is
entered
Format Controls – restricts data entry values in
specific character positions
Range Controls – forces values to be among an
acceptable set of values
Referential Integrity – forces foreign keys to align
with primary keys
Null Value Controls – determines whether fields
can be empty of value
Chapter 11
© Prentice Hall, 2007
11-28
Referential
integrity is
important for
ensuring that
data
relationships
are accurate
and consistent
Chapter 11
© Prentice Hall, 2007
11-29
2. What Is Denormalization?

The process of combining normalized
relations into physical tables based on
affinity of use of rows and fields, and on
retrieval and update frequencies on the
tables

Results in better speed of access, but
reduces data integrity and increases data
redundancy
Chapter 11
© Prentice Hall, 2007
11-30
This will result in null values in several rows’ application data.
Chapter 11
© Prentice Hall, 2007
11-31
Chapter 11
© Prentice Hall, 2007
11-32
This will result in duplications of item descriptions in several
rows of the CanSupplyDR table.
Chapter 11
© Prentice Hall, 2007
11-33
Duplicate regionManager data
Chapter 11
© Prentice Hall, 2007
11-34
3. What Is a File Organization?

A technique for physically arranging the
row objects of a file

Main purpose of file organization is to
optimize speed of data access and
modification
Chapter 11
© Prentice Hall, 2007
11-35
Chapter 11
© Prentice Hall, 2007
11-36
Secondary Storage Concepts
Block – a unit of data retrieval from
secondary storage
 Extent – a set of contiguous blocks
 Scan – a complete read of a file block by
block
 Blocking factor – the number of row objects
that fit in one block

Chapter 11
© Prentice Hall, 2007
11-37
Determining Table Scan Time

Block read time is determined by seek,
rotation and transfer.

Average table scan time equals #rows in
table divided by blocking factor multiplied
by block read time
Chapter 11
© Prentice Hall, 2007
11-38
What Is a Heap?

A file with no organization

Requires full table scan for data retrieval

Only use this for small, cacheable tables
Chapter 11
© Prentice Hall, 2007
11-39
What Is Hashing?

A technique that uses an algorithm to
convert a key value to a row address

Useful for random access, but not for
sequential access
Chapter 11
© Prentice Hall, 2007
11-40
What Is an Indexed File
Organization?

A storage structure involving indexes, which are
key values and pointers to row addresses

Indexed file organizations are structured to enable
fast random and sequential access

Index files are fast for queries, but require
additional overhead for inserts, deletes, and
updates
Chapter 11
© Prentice Hall, 2007
11-41
Random Access Processing Using B+ Tree Indexes
Indexes are usually implemented as B+ trees
These are balanced trees, which preserve a sequential ascending
order of items as they are added.
Chapter 11
© Prentice Hall, 2007
11-42
Issues to Consider When
Selecting a File Organization

File size
 Frequency of data retrievals
 Frequency of updates
 Factors related to primary and foreign keys
 Factors related to non-key attributes
Chapter 11
© Prentice Hall, 2007
11-43
Which Fields should be Indexed?
Chapter 11
© Prentice Hall, 2007
11-44
4. Design of Object Relational
Features

Object-relatonal databases support:
– Generalization and inheritance
– Aggregation
– Mulivalued attributes
– Object identifiers
– Relationships by reference (pointers)
Chapter 11
© Prentice Hall, 2007
11-45
Generalization in Oracle 9i/10g
Chapter 11
© Prentice Hall, 2007
11-46
Aggregation in Oracle 9i/10g
Chapter 11
© Prentice Hall, 2007
11-47
Multivalued Attributes in Oracle 9i/10g
Chapter 11
© Prentice Hall, 2007
11-48
Object Identifiers in Oracle 9i/10g
Chapter 11
© Prentice Hall, 2007
11-49
Download