Post on 21-Jan-2016
9-1© Prentice Hall, 2007
Topic 9:Topic 9:Physical Database DesignPhysical Database Design
Object-Oriented Systems Analysis and Design
Joey F. George, Dinesh Batra,
Joseph S. Valacich, Jeffrey A. Hoffer
Topic 9 9-2© Prentice Hall, 2007
Chapter ObjectivesChapter Objectives
After studying this chapter you should be able to:– Design database fields.– Evaluate denormalization situations.– Design file organization structures.– Design object-relational features.
Topic 9 9-3© Prentice Hall, 2007
Topic 9 9-4© Prentice Hall, 2007
What Is Physical Database What Is Physical Database Design?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
Topic 9 9-5© Prentice Hall, 2007
Sometimes, the analyst and the designer are the same person,
Deliverables
Topic 9 9-6© Prentice Hall, 2007
Topic 9 9-7© Prentice Hall, 2007
What Is SQL?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
Topic 9 9-8© Prentice Hall, 2007
Common SQL CommandsCommon 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
Topic 9 9-9© Prentice Hall, 2007
Example CREATE TABLE Example CREATE TABLE StatementStatement
Here, a table called DEPT is created, with one numeric and two text fields.
The numeric field is the primary key.
Topic 9 9-10© Prentice Hall, 2007
Example INSERT StatementExample 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”
Topic 9 9-11© Prentice Hall, 2007
SELECTSELECTThe SELECT, and FROM clauses are required.
All others are optional.
WHERE is used very commonly.
Topic 9 9-12© Prentice Hall, 2007
Topic 9 9-13© Prentice Hall, 2007
SELECT Statement: Example 1SELECT Statement: Example 1
Select * from DEPT;
Result: all fields of all rows in the DEPT table
Topic 9 9-14© Prentice Hall, 2007
SELECT Statement: Example 2SELECT Statement: Example 2
Select * from EMP where ENAME = ‘SMITH’;
Result: all fields for employee “Smith”
Topic 9 9-15© Prentice Hall, 2007
SELECT Statement: Example 3SELECT 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
Topic 9 9-16© Prentice Hall, 2007
What Is a Join Query?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
Topic 9 9-17© Prentice Hall, 2007
SELECT Statement: Example 4SELECT 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
Topic 9 9-18© Prentice Hall, 2007
SELECT Statement: Example 4SELECT Statement: Example 4(cont.)(cont.)
Join queries almost always involve matching the primary key of the dominant table with the foreign key of the dependent table.
Topic 9 9-19© Prentice Hall, 2007
What Is an Aggregation Query?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
Topic 9 9-20© Prentice Hall, 2007
SELECT Statement: Example 5SELECT 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
Topic 9 9-21© Prentice Hall, 2007
SELECT Statement: Example 5SELECT Statement: Example 5(cont.)(cont.)
Note that clerks and salesmen are not included, because the average salaries for these jobs are below $3000.
Topic 9 9-22© Prentice Hall, 2007
Example Data ManipulationExample 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
Topic 9 9-23© Prentice Hall, 2007
Designing FieldsDesigning FieldsField – 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
Topic 9 9-24© Prentice Hall, 2007
Data type –A coding scheme recognized by system software for representing organizational data
Topic 9 9-25© Prentice Hall, 2007
Considerations for Choosing Considerations for Choosing Data TypesData Types
Balance these four objectives:
1. Minimize storage space
2. Represent all possible values of the field
3. Improve data integrity for the field
4. Support all data manipulations desired for the field
Topic 9 9-26© Prentice Hall, 2007
Mapping a composite attribute onto multiple fields with various data types
Topic 9 9-27© Prentice Hall, 2007
Creating and Using Composite Creating and Using Composite Attribute TypesAttribute Types
Topic 9 9-28© Prentice Hall, 2007
Data Integrity ControlsData 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
Topic 9 9-29© Prentice Hall, 2007
Referential integrity is important for ensuring that data relationships are accurate and consistent
Topic 9 9-30© Prentice Hall, 2007
What Is Denormalization?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
Topic 9 9-31© Prentice Hall, 2007
This will result in null values in several rows’ application data.
Topic 9 9-32© Prentice Hall, 2007
Topic 9 9-33© Prentice Hall, 2007
This will result in duplications of item descriptions in several rows of the CanSupplyDR table.
Topic 9 9-34© Prentice Hall, 2007
Duplicate regionManager data
Topic 9 9-35© Prentice Hall, 2007
What Is a File Organization?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
Topic 9 9-36© Prentice Hall, 2007
Topic 9 9-37© Prentice Hall, 2007
Secondary Storage ConceptsSecondary Storage Concepts
Block – a unit of data retrieval from secondary storage
Extent – a set of contiguous blocksScan – a complete read of a file block by
blockBlocking factor – the number of row objects
that fit in one block
Topic 9 9-38© Prentice Hall, 2007
Determining Table Scan TimeDetermining 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
Topic 9 9-39© Prentice Hall, 2007
What Is a Heap?What Is a Heap?
A file with no organization
Requires full table scan for data retrieval
Only use this for small, cacheable tables
Topic 9 9-40© Prentice Hall, 2007
What Is Hashing?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
Topic 9 9-41© Prentice Hall, 2007
What Is an Indexed File What Is an Indexed File Organization?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
Topic 9 9-42© Prentice Hall, 2007
Random Access Processing Using B+ Tree IndexesRandom 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.
Topic 9 9-43© Prentice Hall, 2007
Issues to Consider When Issues to Consider When Selecting a File OrganizationSelecting a File Organization
File sizeFrequency of data retrievalsFrequency of updatesFactors related to primary and foreign keysFactors related to non-key attributes
Topic 9 9-44© Prentice Hall, 2007
Which Fields should be Indexed?Which Fields should be Indexed?
Topic 9 9-45© Prentice Hall, 2007
Design of Object Relational Design of Object Relational FeaturesFeatures
Object-relatonal databases support:– Generalization and inheritance– Aggregation– Mulivalued attributes– Object identifiers– Relationships by reference (pointers)
Topic 9 9-46© Prentice Hall, 2007
Generalization in Oracle 9i/10gGeneralization in Oracle 9i/10g
Topic 9 9-47© Prentice Hall, 2007
Aggregation in Oracle 9i/10gAggregation in Oracle 9i/10g
Topic 9 9-48© Prentice Hall, 2007
Multivalued Attributes in Oracle 9i/10gMultivalued Attributes in Oracle 9i/10g
Topic 9 9-49© Prentice Hall, 2007
Object Identifiers in Oracle 9i/10gObject Identifiers in Oracle 9i/10g
Topic 9 9-50© Prentice Hall, 2007
RecapRecap
After studying this chapter we learned to:– Design database fields.– Evaluate denormalization situations.– Design file organization structures.– Design object-relational features.