CS 157B Database Systems Dr. T Y Lin
1.2 Overview of a Database Management System Data-Definition Language Commands –Illustrated by three examples on the website Demo by Yaniv Cohen- 2/2/2011
Chapter 2 Relational Database Modeling
2.1 An Overview of Data Models What is a Data Model? Important Data Models The Relational Model in Brief The Semistructured Model in Brief Other Data Models Comparison of Modeling Approaches
2.1.1 What is a Data Model? Real World Math Model: “ ” is explicit correspondence between real world objects to mathematical objects Roughly Entities tuples
2.1.1 What is a Data Model? Real World Math Model: 1.Structure of the data (tuples) 2.Operations on the data –real world changes 3.Constraints on the data – to describe the data as close to real object as possible.
2.2 Basics of the Relational Model TitleYearLengthgenre Gone with the wind Drama Star Wars SciFi Wayne’s world199295comedy Figure 2.3 The Relation Movies
2.2.5 Equivalent Representations of a Relation A relation is a subset (of Cartesian product of domains(=sets)), so there is no order among tuples (elements) Every attribute is named, so if data(element) move with names, there is no order; we often refer such data as attribute value pair.
2.2.5 Equivalent Representations of a Relation YearGenreTitlelength 1977SciFiStar Wars ComedyWayne’s World DramaGone With the Wind231 Figure 2.4 Another presentation of the relation Movies
2.2.6 Relation Instances All the relation examples given in the web site are Relation Instances Relation is a variable Relation instance is a value in the variable.
Database Schema about Movies Moviestar ( name : string, address : string, gender : char, birthdate : date ) Movies( title: string; Year : integer, Length : integer, Genre : string, studioName : string, producerC# : integer )
StarsIn ( MovieTitle: string, Movieyear : integer Starname : string ) MovieExec ( name: string, address : string cert# : integer netWorth : integer ) Studio ( name: string, address : string pressC# : integer )
2.2.9 Exercises for Section 2.2 Next example is for exercise
Two relations of Banking database acctNoTypeBalance 12345Savings Checking Saving25 firstNameLastNameId noAccount RobbieBanks LennaHand LennaHand The relations accounts The relations customers Figure 2.6 Two relations of banking customers
2.3 Defining a Relation Schema in SQL Relations in SQL Data Types Simple Table Declarations Modifying Relation Schemas Default Values Declaring Keys Exercises for Section 2.3
2.3.1 Relations in SQL
2.3.2 Data Types
2.3.3 Simple Table Declarations
Example CREATE TABLE Movie ( title VARCHAR(255), year INTEGER, length INTEGER, inColor CHAR(1), studioName CHAR(50), producerC# INTEGER, ); Figure 2.7 : SQL declaration of the table Movies
Example 2 : Moviestar CREATE TABLE MOVIESTAR ( NAME CHAR(30), ADDRESS VARCHAR2(50), GENDER CHAR(6), BIRTHDATE DATE ); Figure 2.8 Declaring the relation schema for the Moviestar relation
2.3.4 Modifying Relation Schemas CREATE TABLE MOVIEEXEC (NAME CHAR(30) NOT NULL, ADDRESS VARCHAR2(50) NOT NULL, CERT# VARCHAR2(10) NOT NULL, NETWORTH NUMBER(15) NOT NULL );
2.3.4 Modifying Relation Schemas REMARK we're going to add a Foreign Key In MOVIEEXEC Table ALTER TABLE MovieExec ADD FOREIGN KEY (Cert#) REFERENCES Movie(ProducerC#);
2.3.5 Default Values
Example 2.5 We consider Example 2.3. To use the default character ? As the default for an unknown gender.\ Earliest possible date for Unknown Birthdate. DATE ‘ ’ –Gender CHAR(1) DEFAULT ‘?’, –Birthdate DATE DEFAULT DATE ‘ ’,
Another Example We could have declared the default value for new attribute phone to be ‘listed’ when we added this attribute, ALTER TABLE MovieStar ADD phone CHAR (16) DEFAULT ‘ unlisted’;
2.3.6 Declaring Keys
Example 2.6 Schema MovieStar No star would use the name of another star, we shall assume the name itself forms a key for this relation. Then we can declare name as PRIMARY KEY. CREATE TABLE MovieStar ( name CHAR (30) Primary Key, address VARCHAR (255), gender CHAR(1), birthdate DATE );
Alternative way We can use separate definition of key. Unique can replace Primary Key CREATE TABLE MOVIESTAR ( name CHAR(30), address VARCHAR2(255), gender CHAR(1), birthdate DATE, PRIMARY KEY (name) ); Figure 2.10Separate declaration of the key
Example 2.7 The Relation Movie, whose key is the pair of attributes ‘title and year’ must be declared like this CREATE TABLE Movies( title CHAR(100), yearINTEGER, lengthINTEGER, genreCHAR(10), studiNameCHAR(30), producerC#INTEGER, PRIMARY KEY (title,year) );
2.3.7 Exercises for Section 2.3
2.4 An Algebraic Query Language Why Do We Need a Special Query Language? What is an Algebra? Overview of Relational Algebra Set Operations on Relations Projection Selection Cartesian Product Natural Joins Theta-Joins Combining Operations to Form Queries Naming and Renaming Relationships Among Operations A Linear Notation for Algebraic Expressions Exercises for Section 2.4
2.4.1 Why Do We Need a Special Query Language?
2.4.2 What is an Algebra?
2.4.3 Overview of Relational Algebra
2.4.4 Set Operations on Relations
NameAddressGenderBirthdate Carrie Fisher123 Maple st., HollywoodF9/9/99 Mark hamill456 Oak road., BrentwoodM8/8/88 Relation R NameAddressGenderBirthdate Carrie Fisher123 Maple st., HollywoodF9/9/99 Harrison Ford789 Palm Dr., Beverly HillsM7/7/77 Relation S Figure 2.12 Two Relations
Example 2.8 Relation R and S UNION (R S) is Note: the two tuples for Carrie Fisher from two relations appear only once in result NameAddressGenderBirthdate Carrie Fisher123 Maple st., HollywoodF9/9/99 Mark Hamill456 oak Rd., BrentwoodM8/8/88 Harrison Ford789 Palm Dr., Beverly HillsM7/7/77
The Intersection (R S) Now, Only the Carrie Fisher tuple appears, because only it is in both relations. The Difference is R-S is Fisher and Hamill tuples appear in R and thus are candidates for R-S. thus Fisher appear in S. so is not R-S. NameAddressGenderBirthdate Carrie Fisher123 Maple st., Hollywood F9/9/99 NameAddressGenderBirthdate Mark Hamill 456 oak Rd., Brentwood M8/8/88
2.4.5 Projection
Projection TitleYearLengthGenreStudionameproducerC# Star Wars SciFiFox12345 Galaxy ComedyDreamWorks67890 Wayne’s World ComedyParamount99999 Figure 2.13 the Relation Movies
Example 2.9 TitleYearLength Star Wars Galaxy Quest Wayne’s World ∏ Title,year,length (Movies) ∏ genre (Movies) Genre SciFi Comedy
2.4.6 Selection
Example 2.10 The relation Movies be as in Fig then the value of expression length >= 100(Movie) is TitleYearLengthGenreStudioNameproducerC# Star Wars SciFiFox12345 Galaxy ComedyDreamWorks67890
Example 2.11 Set tuples in the relation movies that represent Fox Movies atleast 100 minutes long. You can use AND for more than one condition. Length >= 100 AND studioName = ‘Fox’ (Movies) Is the only one in the resulting relation. TitleYearLengthGenreStudioNameproducerC# Star Wars SciFiFox12345
2.4.7 Cartesian Product
2.4.8 Natural Joins
AB BCD Relation R Relation S Relation R X S AR.BS.BCD
Example 2.13 ABCD
2.4.9 Theta-Joins
ABC BCD Relation U (a) Relation V (b) Result U V ABCD Figure 2.16 Natural join of relations
Example 2.15 Consider all nine pairs of tuples, one from each relation. Whether A component from U-tuple is less than the D Component of the V-tuple. AU.BU.CV.BV.CD Figure 2.17 Result of U theta Join A < D V
Example 2.16 U and V that has more complex condition : U A < D AND (U.B != V.B) V We require for successful pairing not only that the A component of U-tuple be less than D component of the V-tuple, but that the two tuples disagree on their respective B components is the only one to satisfy both conditions, so this relation is the result of the theta-join. AU.BU.CV.BV.CD
Combining Operations to Form Queries
∏ Title,year (σ length >=100 (Movies) ∩ σ StudioName =‘Fox’ (Movies) Represents the same expression ∩ ∏ Title,year σ length >=100 σ StudioName =‘Fox’
Naming and Renaming
Example 2.18 ABXCD Figure 2.19 R X ρ s (X,C,D) (S)
Relationships Among Operations
A Linear Notation for Algebraic Expressions
Exercises for Section 2.4
2.5 Constraints on Relations Relational Algebra as a Constraint Language Referential Integrity Constraints Key Constraints Additional Constraint Examples Exercises for Section Summary of Chapter References for Chapter 2
2.5.1 Relational Algebra as a Constraint Language
2.5.2 Referential Integrity Constraints
Example 2.21 Consider the two relations from our running movie database: Movie(title,year,length,genre,studioName, producerC#) MovieExec(name,address,cert#,netWorth) ∏ producerC# (Movies) ⊆ ∏ cert# (MocvieExec)
Example 2.22 StarsIn(movietitle, movieYear,starName) Movie(title,year,length,studioName, producerC#) ∏ movieTitle, movieYear (StarsIn) ⊆ ∏ title,year (Movies)
2.5.3 Key Constraints
Example 2.23 Recall that name is the key for relation MovieStar(name,address,gender,birthdate)
2.5.4 Additional Constraint Examples
Example Recall the name of the Key for relation MovieStar(Name,address,gender,birthdate) The requirement can be expressed by the algebraic expression σ MS1.name = MS2.name AND MS1.address ≠ MS2.address (MS1 x MS2) = ∅ MS1 in the product MS1 x MS2 is shorthand for the remaining ρ MS1(name,address,gender,birthdate) (MovieStar)
Example 2.24
The only legal value for Gender attribute is ‘F’ and ‘M’. We can express the gender attribute of MovieStar alegrabically by: σ Mgender ≠‘F’ AND gender ≠‘M’ (MovieStar) = ∅
Example 2.25 If one must have networth of at least $100,000,000 to be president of movie studio. We can define this algebraically but first we have to perform theta-join on this two relations. –MovieExec(name,address,cert#,networth) –Studio(name,address, presC#)
We can express this constraint as : σ networth < (Studio ⋈ presC# = cert# MovieExec) ∅ Alternative way to express the same constraints is to compare the set of certificates that represent studio president with the set of certificates that represents the networth of atleast $ ; Former must be the subset of the latter. ∏ TpressC# (Studio) ⊆ ∏ cert# (σ networth < (MovieExec))
2.5.5 Exercises for Section 2.5
2.6 Summary of Chapter 2
2.7 References for Chapter 2
Chapter 3 Design Theory for Relational Databases
3.1 Functional Dependencies Definition of Functional Dependency Keys of Relations Superkeys Exercises for Section 3.1
3.1.1 Definition of Functional Dependency
3.1.2 Keys of Relations
3.1.3 Superkeys
3.1.4 Exercises for Section 3.1
3.2 Rules About Functional Dependencies Reasoning About Functional Dependencies The Splitting/Combining Rule Trivial Functional Dependencies Computing the Closure of Attributes Why the Closure Algorithm Works The Transitive Rule Closing Sets of Functional Dependencies Projecting Functional Dependencies Exercises for Section 3.2
3.2.1 Reasoning About Functional Dependencies
3.2.2 The Splitting/Combining Rule
3.2.3 Trivial Functional Dependencies
3.2.4 Computing the Closure of Attributes
3.2.5 Why the Closure Algorithm Works
3.2.6 The Transitive Rule
3.2.7 Closing Sets of Functional Dependencies
3.2.8 Projecting Functional Dependencies
3.2.9 Exercises for Section 3.2
3.3 Design of Relational Database Schemas Anomalies Decomposing Relations Boyce-Codd Normal Form Decomposition into BCNF Exercises for Section 3.3
3.3.1 Anomalies
3.3.2 Decomposing Relations
3.3.3 Boyce-Codd Normal Form
3.3.4 Decomposition into BCNF
3.3.5 Exercises for Section 3.3
3.4 Decomposition: The Good, Bad, and Ugly Recovering Information from a Decomposition The Chase Test for Lossless Join Why the Chase Works Dependency Preservation Exercises for Section 3.4
3.4.1 Recovering Information from a Decomposition
3.4.2 The Chase Test for Lossless Join
3.4.3 Why the Chase Works
3.4.4 Dependency Preservation
3.4.5 Exercises for Section 3.4
3.5 Third Normal Form Definition of Third Normal Form The Synthesis Algorithm for 3NF Schemas Why the 3NF Synthesis Algorithm Works Exercises for Section 3.5
3.5.1 Definition of Third Normal Form
3.5.2 The Synthesis Algorithm for 3NF Schemas
3.5.3 Why the 3NF Synthesis Algorithm Works
3.5.4 Exercises for Section 3.5
3.6 Multivalued Dependencies Attribute Independence and Its Consequent Redundancy Definition of Multivalued Dependencies Reasoning About Multivalued Dependencies Fourth Normal Form Decomposition into Fourth Normal Form Relationships Among Normal Forms Exercises for Section 3.6
3.6.1 Attribute Independence and Its Consequent Redundancy
3.6.2 Definition of Multivalued Dependencies
3.6.3 Reasoning About Multivalued Dependencies
3.6.4 Fourth Normal Form
3.6.5 Decomposition into Fourth Normal Form
3.6.6 Relationships Among Normal Forms
3.6.7 Exercises for Section 3.6
3.7 An Algorithm for Discovering MVD's The Closure and the Chase Extending the Chase to MVD's Why the Chase Works for MVD's Projecting MVD's Exercises for Section Summary of Chapter References for Chapter 3
3.7.1 The Closure and the Chase
3.7.2 Extending the Chase to MVD's
3.7.3 Why the Chase Works for MVD's
3.7.4 Projecting MVD's
3.7.5 Exercises for Section 3.7
3.8 Summary of Chapter 3
3.9 References for Chapter 3
Chapter 4 High-Level Database Models
4.1 The Entity/Relationship Model Entity Sets Attributes Relationships Entity-Relationship Diagrams Instances of an E/R Diagram Multiplicity of Binary E/R Relationships Multiway Relationships Roles in Relationships Attributes on Relationships Converting Multiway Relationships to Binary Subclasses in the E/R Model Exercises for Section 4.1
4.1.1 Entity Sets
4.1.2 Attributes
4.1.3 Relationships
4.1.4 Entity-Relationship Diagrams
4.1.5 Instances of an E/R Diagram
4.1.6 Multiplicity of Binary E/R Relationships
4.1.7 Multiway Relationships
4.1.8 Roles in Relationships
4.1.9 Attributes on Relationships
Converting Multiway Relationships to Binary
Subclasses in the E/R Model
Exercises for Section 4.1
4.2 Design Principles Faithfulness Avoiding Redundancy Simplicity Counts Choosing the Right Relationships Picking the Right Kind of Element Exercises for Section 4.2
4.2.1 Faithfulness
4.2.2 Avoiding Redundancy
4.2.3 Simplicity Counts
4.2.4 Choosing the Right Relationships
4.2.5 Picking the Right Kind of Element
4.2.6 Exercises for Section 4.2
4.3 Constraints in the E/R Model Keys in the E/R Model Representing Keys in the E/R Model Referential Integrity Degree Constraints Exercises for Section 4.3
4.3.1 Keys in the E/R Model
4.3.2 Representing Keys in the E/R Model
4.3.3 Referential Integrity
4.3.4 Degree Constraints
4.3.5 Exercises for Section 4.3
4.4 Weak Entity Sets Causes of Weak Entity Sets Requirements for Weak Entity Sets Weak Entity Set Notation Exercises for Section 4.4
4.4.1 Causes of Weak Entity Sets
4.4.2 Requirements for Weak Entity Sets
4.4.3 Weak Entity Set Notation
4.4.4 Exercises for Section 4.4
4.5 From E/R Diagrams to Relational Designs From Entity Sets to Relations From E/R Relationships to Relations Combining Relations Handling Weak Entity Sets Exercises for Section 4.5
4.5.1 From Entity Sets to Relations
4.5.2 From E/R Relationships to Relations
4.5.3 Combining Relations
4.5.4 Handling Weak Entity Sets
4.5.5 Exercises for Section 4.5
4.6 Converting Subclass Structures to Relations E/R-Style Conversion An Object-Oriented Approach Using Null Values to Combine Relations Comparison of Approaches Exercises for Section 4.6
4.6.1 E/R-Style Conversion
4.6.2 An Object-Oriented Approach
4.6.3 Using Null Values to Combine Relations
4.6.4 Comparison of Approaches
4.6.5 Exercises for Section 4.6
4.7 Unified Modeling Language UML Classes Keys for UML classes Associations Self-Associations Association Classes Subclasses in UML Aggregations and Compositions Exercises for Section 4.7
4.7.1 UML Classes
4.7.2 Keys for UML classes
4.7.3 Associations
4.7.4 Self-Associations
4.7.5 Association Classes
4.7.6 Subclasses in UML
4.7.7 Aggregations and Compositions
4.7.8 Exercises for Section 4.7
4.8 From UML Diagrams to Relations UML-to-Relations Basics From UML Subclasses to Relations From Aggregations and Compositions to Relations The UML Analog of Weak Entity Sets Exercises for Section 4.8
4.8.1 UML-to-Relations Basics
4.8.2 From UML Subclasses to Relations
4.8.3 From Aggregations and Compositions to Relations
4.8.4 The UML Analog of Weak Entity Sets
4.8.5 Exercises for Section 4.8
4.9 Object Definition Language Class Declarations Attributes in ODL Relationships in ODL Inverse Relationships Multiplicity of Relationships Types in ODL Subclasses in ODL Declaring Keys in ODL Exercises for Section 4.9
4.9.1 Class Declarations
4.9.2 Attributes in ODL
4.9.3 Relationships in ODL
4.9.4 Inverse Relationships
4.9.5 Multiplicity of Relationships
4.9.6 Types in ODL
4.9.7 Subclasses in ODL
4.9.8 Declaring Keys in ODL
4.9.9 Exercises for Section 4.9
4.10 From ODL Designs to Relational Designs From ODL Classes to Relations Complex Attributes in Classes Representing Set-Valued Attributes Representing Other Type Constructors Representing ODL Relationships Exercises for Section Summary of Chapter References for Chapter 4
From ODL Classes to Relations
Complex Attributes in Classes
Representing Set-Valued Attributes
Representing Other Type Constructors
Representing ODL Relationships
Exercises for Section 4.10
4.11 Summary of Chapter 4
4.12 References for Chapter 4