Chapter 7: Relational Database Design

Download Report

Transcript Chapter 7: Relational Database Design

Appendix C: Advanced Relational Database Design
Database System Concepts, 5th Ed.
C.1
©Silberschatz, Korth and Sudarshan
Database System Concepts






Chapter 1: Introduction
Part 1: Relational databases

Chapter 2: Relational Model

Chapter 3: SQL

Chapter 4: Advanced SQL

Chapter 5: Other Relational Languages
Part 2: Database Design

Chapter 6: Database Design and the E-R Model

Chapter 7: Relational Database Design

Chapter 8: Application Design and Development
Part 3: Object-based databases and XML

Chapter 9: Object-Based Databases

Chapter 10: XML
Part 4: Data storage and querying

Chapter 11: Storage and File Structure

Chapter 12: Indexing and Hashing

Chapter 13: Query Processing

Chapter 14: Query Optimization
Part 5: Transaction management

Chapter 15: Transactions

Chapter 16: Concurrency control

Chapter 17: Recovery System
Database System Concepts, 5th Ed.





Part 6: Data Mining and Information Retrieval

Chapter 18: Data Analysis and Mining

Chapter 19: Information Retreival
Part 7: Database system architecture

Chapter 20: Database-System Architecture

Chapter 21: Parallel Databases

Chapter 22: Distributed Databases
Part 8: Other topics

Chapter 23: Advanced Application Development

Chapter 24: Advanced Data Types and New Applications

Chapter 25: Advanced Transaction Processing
Part 9: Case studies

Chapter 26: PostgreSQL

Chapter 27: Oracle

Chapter 28: IBM DB2

Chapter 29: Microsoft SQL Server
Online Appendices

Appendix A: Network Model

Appendix B: Hierarchical Model

Appendix C: Advanced Relational Database Model
C.2
©Silberschatz, Korth and Sudarshan
Online Appendices
(available only in http://www.db-book.com)
 Appendix A: Network Model
 Appendix B: Hierarchical Model
 Although most new database applications use either the relational model or the
object-relational model, the network and hierarchical data models are still in
use in some legacy applications.
 Appendix C: Advanced Relational Database Model

describes advanced relational-database design, including the theory of
multivalued dependencies, join dependencies, and the project-join and
domain-key normal forms.
Database System Concepts, 5th Ed.
C.3
©Silberschatz, Korth and Sudarshan
Table of Contents
 Reasoning with MVDs
 Higher normal forms

Join dependencies and PJNF

DKNF
 Summary
Database System Concepts, 5th Ed.
C.4
©Silberschatz, Korth and Sudarshan
Theory of Multivalued Dependencies
 Let D denote a set of functional and multivalued dependencies. The
closure D+ of D is the set of all functional and multivalued
dependencies logically implied by D.
 Sound and complete inference rules for functional and multivalued
dependencies:
1. Reflexivity rule. If  is a set of attributes and   , then   holds.
2. Augmentation rule. If    holds and  is a set of attributes, then 
  holds.
3. Transitivity rule. If    holds and    holds, then   holds.
Database System Concepts, 5th Ed.
C.5
©Silberschatz, Korth and Sudarshan
Theory of Multivalued Dependencies (Cont.)
4. Complementation rule. If 
holds.
 holds, then 
5. Multivalued augmentation rule. If 
 , then  
  holds.
6. Multivalued transitivity rule. If 
then 
 –  holds.
7. Replication rule. If 
 holds and   R and 
 holds and 
 holds, then 
R––
 holds,
.
8. Coalescence rule. If 
 holds and    and there is a 
such that   R and    =  and 
, then 
 holds.
Database System Concepts, 5th Ed.
C.6
©Silberschatz, Korth and Sudarshan
Simplification of the Computation of D+
 We can simplify the computation of the closure of D by using the following
rules (proved using rules 1-8).

Multivalued union rule. If 

 holds.

Intersection rule. If 
holds.

Difference rule. If If 
 holds and 
holds and 
 –  holds.
Database System Concepts, 5th Ed.
 holds and 
 holds and 
C.7
 holds, then 
 holds, then 
 holds, then 

–
©Silberschatz, Korth and Sudarshan
MVD Example
 R = (A, B, C, G, H, I)
D = {A
B
CG
B
HI
H}
 Some members of D+:

A
CGHI.
Since A
B, the complementation rule (4) implies that
A
R – B – A.
Since R – B – A = CGHI, so A
CGHI.

A
HI.
Since A
B and B
rule (6) implies that B
Since HI – B = HI, A
Database System Concepts, 5th Ed.
HI, the multivalued transitivity
HI – B.
HI.
C.8
©Silberschatz, Korth and Sudarshan
MVD Example (Cont.)
 Some members of D+ (cont.):

B
H.
Apply the coalescence rule (8); B
HI holds.
Since H  HI and CG
H and CG  HI = Ø, the
coalescence rule is satisfied with being B,  being HI,  being
CG, and  being H. We conclude that B
H.

A
CG.
A
CGHI and A
HI.
By the difference rule, A
Since CGHI – HI = CG, A
Database System Concepts, 5th Ed.
CGHI – HI.
CG.
C.9
©Silberschatz, Korth and Sudarshan
Table of Contents
 Reasoning with MVDs
 Higher normal forms

Join dependencies and PJNF

DKNF
 Summary
Database System Concepts, 5th Ed.
C.10
©Silberschatz, Korth and Sudarshan
Normalization using Join Dependencies
 Join dependencies constrain the set of legal relations over a schema R to
those relations for which a given decomposition is a lossless-join
decomposition.
 Let R be a relation schema and R1 , R2 ,..., Rn be a decomposition of R. If R =
R1  R2  ….  Rn, we say that a relation r(R) satisfies the join dependency
*(R1 , R2 ,..., Rn) if:
r =R1 (r) ⋈ R2 (r) ⋈ …… ⋈ Rn(r)
A join dependency is trivial if one of the Ri is R itself.
 A join dependency *(R1, R2) is equivalent to the multivalued dependency R1 
R2
R2. Conversely, 
 is equivalent to
*( (R - ),   )
 However, there are join dependencies that are not equivalent to any
multivalued dependency.
Database System Concepts, 5th Ed.
C.11
©Silberschatz, Korth and Sudarshan
Project-Join Normal Form (PJNF)
 A relation schema R is in PJNF with respect to a set D of functional,
multivalued, and join dependencies if for all join dependencies in D+ of the
form
*(R1 , R2 ,..., Rn ) where each Ri  R
and R =R1 R2  ...  Rn
at least one of the following holds:

*(R1 , R2 ,..., Rn ) is a trivial join dependency.

Every Ri is a superkey for R.
 Since every multivalued dependency is also a join dependency,
every PJNF schema is also in 4NF.
Database System Concepts, 5th Ed.
C.12
©Silberschatz, Korth and Sudarshan
PJNF Example
 Consider Loan-info-schema = (branch-name, customer-name, loan-number,
amount).
 Each loan has one or more customers, is in one or more branches and has
a loan amount; these relationships are independent, hence we have the join
dependency
 *(=(loan-number, branch-name), (loan-number, customer-name), (loan-
number, amount))
 Loan-info-schema is not in PJNF with respect to the set of dependencies
containing the above join dependency. To put Loan-info-schema into PJNF,
we must decompose it into the three schemas specified by the join
dependency:

(loan-number, branch-name)

(loan-number, customer-name)

(loan-number, amount)
Database System Concepts, 5th Ed.
C.13
©Silberschatz, Korth and Sudarshan
Domain-Key Normal Form (DKNY)
 Domain declaration. Let A be an attribute, and let dom be a set of
values. The domain declaration A  dom requires that the A value of
all tuples be values in dom.
 Key declaration. Let R be a relation schema with K  R. The key
declaration key (K) requires that K be a superkey for schema R (K 
R). All key declarations are functional dependencies but not all
functional dependencies are key declarations.
 General constraint. A general constraint is a predicate on the set of
all relations on a given schema.
 Let D be a set of domain constraints and let K be a set of key
constraints for a relation schema R. Let G denote the general
constraints for R. Schema R is in DKNF if D  K logically imply G.
Database System Concepts, 5th Ed.
C.14
©Silberschatz, Korth and Sudarshan
DKNF Example
 Accounts whose account-number begins with the digit 9 are special
high-interest accounts with a minimum balance of 2500.
 General constraint: ``If the first digit of t [account-number] is 9, then t
[balance]  2500.''
 DKNF design:
Regular-acct-schema = (branch-name, account-number,
balance)
Special-acct-schema = (branch-name, account-number,
balance)
 Domain constraints for {Special-acct-schema} require that for each
account:

The account number begins with 9.

The balance is greater than 2500.
Database System Concepts, 5th Ed.
C.15
©Silberschatz, Korth and Sudarshan
DKNF rephrasing of PJNF Definition
 Let R = (A1 , A2 ,..., An) be a relation schema. Let dom(Ai ) denote the
domain of attribute Ai, and let all these domains be infinite. Then all
domain constraints D are of the form Ai  dom (Ai ).
 Let the general constraints be a set G of functional, multivalued, or
join dependencies. If F is the set of functional dependencies in G, let
the set K of key constraints be those nontrivial functional
dependencies in F+ of the form   R.
 Schema R is in PJNF if and only if it is in DKNF with respect to D, K,
and G.
Database System Concepts, 5th Ed.
C.16
©Silberschatz, Korth and Sudarshan
Table of Contents
 Reasoning with MVDs
 Higher normal forms

Join dependencies and PJNF

DKNF
 Summary
Database System Concepts, 5th Ed.
C.17
©Silberschatz, Korth and Sudarshan
Appendix C: Summary

In this chapter we presented the theory of multivalued dependencies, including a set of
sound and complete inference rules for multivalued dependencies.

We then presented two more normal forms based on more general classes of
constraints. Join dependencies are a generalization of multivalued dependencies, and
lead to the definition of PJNF.

DKNF is an idealized normal form that may be difficult to achieve in practice. Yet DKNF
has desirable properties that should be included to the extent possible in a good
database design.
Database System Concepts, 5th Ed.
C.18
©Silberschatz, Korth and Sudarshan
Appendix C: Biblio Notes (1)

The Notations of 4NF, PJNF, and DKNF are from Fagin [1977], Fagin [1979], and Fagin
[1981], respectively.

The synthesis approach to database design is discussed in Bernstein [1976].

Join dependencies were introduced by Rissanen [1979]. Sciore [1982] gives a set of
axioms for a class of dependencies that properly includes the join dependencies. In
addition to their use in PJNF, join dependencies are central to the definition of universal
relation databases.

Fagin et al. [1982] introduces the relationship between join dependencies and the
definition of a relation as a conjunction of predicates (see Section C.2.1).

This use of join dependencies has led to a large amount of research into acyclic
database schemas. Intuitively, a schema is acyclic if if every pair of attributes is related in
a unique way.

Formal treatment of acyclic schemas appears in Fagin [1983] and in Beeri et al. [1983].
Database System Concepts, 5th Ed.
C.19
©Silberschatz, Korth and Sudarshan
Appendix C: Biblio Notes (2)

Additional dependencies are discussed in detail in Maier [1983].

Inclusion dependencies are discussed by Casanova et al. [1984] and Cosmadakis et al.
[1990].

Template dependencies are covered by Sadri and Ulman [1982].

Mutual dependencies are examined by Furtado [1978] and by Mendelzon and
Maier[1979].

Constraints be those nontrivial functional dependencies in F+ of the form  g R. Schema
R is in PJNF if and only if it is in DKNF with respect to D, K, and G.

A consequence of DKNF is that all insertion and deletion anomalies are eliminated.
Database System Concepts, 5th Ed.
C.20
©Silberschatz, Korth and Sudarshan
Appendix C: Biblio Notes (3)

DKNF represents an “ultimate” normal form because it allows arbitrary
constraints, rather than dependencies, yet it allows efficient testing of these
constraints.

Of course, if a schema is not in DKNF, we may be able to achieve DKNF via
decomposition, but such decompositions, as we have seen, are not always
dependency-preserving decompositions. Thus, although DKNF is a goal of a
database designer, it may have to be sacrificed in a practical design.
Database System Concepts, 5th Ed.
C.21
©Silberschatz, Korth and Sudarshan