Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
47 views43 pages

Chapter 3

Uploaded by

Summaya Rafaqat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views43 pages

Chapter 3

Uploaded by

Summaya Rafaqat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 43

CHAPTER 3

Rational Data Model and Rational Database


Constraint
Outline
◦ The Relational Data Model and Relational
Database Constraints
◦ Relational Model Constraints and Relational
Database Schemas
◦ Update Operations, Transactions and Dealing with
Constraint Violations
The Relational Data Model and Relatio
nal Database Constraints
 
◦ Relational model
◦ First commercial implementations available in early
1980s
◦ Has been implemented in a large number of commercial
system
◦ Hierarchical and network models
◦ Preceded the relational model
Relational Model Concepts 
◦ Represents data as a collection of relations
◦ Table of values
◦ Row
◦ Represents a collection of related data values
◦ Fact that typically corresponds to a real-world entity or
relationship
◦ Tuple
◦ Table name and column names
◦ Interpret the meaning of the values in each row attribute
Relational Model Concepts
Domains, Attributes, Tuples, and
Relations 
◦ Domain D
◦ Set of atomic values
◦ Atomic
◦ Each value indivisible
◦ Specifying a domain
◦ Data type specified for each domain
Domains, Attributes, Tuples, and
Relations (Cont.)
◦ Relation schema R
◦ Denoted by R(A1, A2, ...,An)
◦ Made up of a relation name R and a list of attributes, A1, A2, ..., An
◦ Attribute Ai
◦ Name of a role played by some domain D in the relation schema R
◦ Example
◦ Using the data type of each attribute
Domains, Attributes, Tuples, and
Relations (Cont.)
◦ Degree (or arity) of a relation
◦ Number of attributes n of its relation schema
◦ Example
◦ A relation of degree seven, which stores information about
university students would contain seven attributes describing
each student. as follows:
Domains, Attributes, Tuples, and
Relations  (Cont.)
◦ Relation (or relation state)
◦ Set of n-tuples r = {t1, t2, ..., tm}
◦ Each n-tuple t
◦ Ordered list of n values t =<v1, v2, ..., vn
◦ Each value vi, 1 ≤ i ≤ n, is an element of dom(Ai)
or is a special NULL value
Domains, Attributes, Tuples, and
Relations (cont’d.) 
◦ Relation (or relation state) r(R)
◦ Mathematical relation of degree n on the domains
dom(A1), dom(A2), ..., dom(An)
◦ Subset of the Cartesian product of the domains that
define R:
◦ r(R)⊆ (dom(A1)×dom(A2)× ... × dom(An))
Domains, Attributes, Tuples, and
Relations (cont’d.) 
◦ Cardinality
◦ Total number of values in domain
◦ Current relation state
◦ Relation state at a given time
◦ Reflects only the valid tuples that represent a particular state
of the real world
◦ Attribute names
◦ Indicate different roles, or interpretations, for the domain
Domain Constraints
◦ Typically include:
◦ Numeric data types for integers and real numbers
◦ Characters
◦ Booleans
◦ Fixed-length strings
◦ Variable-length strings
◦ Date, time, timestamp
◦ Money
◦ Other special data types
Key Constraints and Constraints on
NULL Values 
◦ No two tuples can have the same combination of values for
◦  

all their attributes.

◦ Superkey
◦ No two distinct tuples in any state r of R can have the same
value for SK
Key Constraints and Constraints on
NULL Values (Cont)
◦ Key
◦ Superkey of R
◦ Removing any attribute A from K leaves a set of
attributes K’ that is not a superkey of R any more
Key Constraints and Constraints on
NULL Values (Cont)
◦ Key satisfies two properties:
◦ Two distinct tuples in any state of relation cannot
have identical values for (all) attributes in key
◦ Minimal superkey
◦ Cannot remove any attributes and still have
uniqueness constraint in above condition hold
Key Constraints and Constraints on
NULL Values (Cont)
◦ Candidate key
◦ Relation schema may have more than one key
◦ Primary key of the relation
◦ Designated among candidate keys
◦ Underline attribute
◦ Other candidate keys are designated as unique keys
Key Constraints and Constraints on
NULL Values (Cont)
Integrity, Referential Integrity, and
Foreign Keys 
◦ • Entity integrity constraint
◦ No primary key value can be NULL
◦ Referential integrity constraint
◦ Specified between two relations
◦ Maintains consistency among tuples in two relations
Integrity, Referential Integrity, and
Foreign Keys (Cont.)
◦ Foreign key rules:
◦  

◦ The attributes in FK have the same domain(s) as the


primary key attributes PK of R; the attributes FK are said to
reference or refer to the relation R2
◦ A value of FK in a tuple of the current state () either occurs
as a value of PK for some tuple in the current state () or is
NULL. In the former case, we have [FK] = [PK], and we say
that the tuple references or refers to the tuple
Integrity, Referential Integrity, and
Foreign Keys (Cont.)
◦ Diagrammatically display referential integrity
constraints
◦ Directed arc from each foreign key to the relation it
references
◦ All integrity constraints should be specified on
relational database schema
Integrity, Referential Integrity, and
Foreign Keys (Cont.)
Other Types of Constraints

◦ Semantic integrity constraints


◦ May have to be specified and enforced on a
relational database
◦ Use triggers and assertions
◦ More common to check for these types of
constraints within the application programs
Other Types of Constraints (Cont..)
◦ Functional dependency constraint
◦ Establishes a functional relationship among two sets of attributes X and
Y
◦ Value of X determines a unique value of Y
XY
◦ State constraints
◦ Define the constraints that a valid state of the database must satisfy
◦ Transition constraints
◦ Define to deal with state changes in the database
Update Operations, Transactions, and
Dealing with Constraint Violations
◦ Operations of the relational model can be
categorized into retrievals and updates
◦ Basic operations that change the states of relations
in the database:
◦ Insert
◦ Delete
◦ Update (or Modify)
The Insert Operation

◦ Provides a list of attribute values for a new tuple t


that is to be inserted into a relation R
◦ Can violate any of the four types of constraints
◦ If an insertion violates one or more constraints
◦ Default option is to reject the insertion
The Insert Operation (Example)

◦ Operation 1:
◦ Insert <‘Cecilia’,’F’, ‘Kolonsky’, NULL,960-04-05, ‘6357
Windy Lane, Katy, TX’, F, 28000, NULL, 4> into
EMPLOYEE.
◦ Result:
◦ This insertion violates the entity integrity constraint
(NULL for the primary key Ssn), so it is rejected.
The Insert Operation (Example)

◦ Operation 2:
◦ Insert <‘Cecilia’,’F’, ‘Kolonsky’, ‘999887777’,960-04-05,
‘6357 Windy Lane, Katy, TX’, F, 28000, ‘987654321’, 4>
into EMPLOYEE.
◦ Result:
◦ This insertion violates the key constraint because
another tuple with the same Ssn value already exists in
the EMPLOYEE relation, and so it is rejected.
The Insert Operation (Practices)

◦ Operation 3:
◦ Insert <‘Cecilia’,’F’, ‘Kolonsky’, ‘999887777’,960-04-05, ‘6357
Windy Lane, Katy, TX’, F, 28000, ‘987654321’, 7> into
EMPLOYEE.
◦ Operation 4:
◦ Insert <‘Cecilia’,’F’, ‘Kolonsky’, ‘677678989’,960-04-05, ‘6357
Windy Lane, Katy, TX’, F, 28000, ‘987654321’, 4> into
EMPLOYEE
The Insert Operation (Practices)

◦ Operation 3 Result:
◦ This insertion violates the referential integrity constraint
specified on Dno in EMPLOYEE because no corresponding
referenced tuple exists in DEPARTMENT with Dnumber = 7.
◦ Operation 4 Result:
◦ This insertion satisfies all constraints, so it is acceptable
The Delete Operation
◦ Can violate only referential integrity
◦ If tuple being deleted is referenced by foreign keys from other
tuples
◦ Restrict
◦ Reject the deletion
◦ Cascade
◦ Propagate the deletion by deleting tuples that reference the tuple
that is being deleted
◦ Set null or set default
◦ Modify the referencing attribute values that cause the violation
The Deletion Operation (Example)

◦ Operation 1:
◦ Delete the WORKS_ON tuple with Essn =
99887777 and Pno = 10
◦ Result:
◦ This deletion is acceptable and deletes exactly
one tuple.
The Deletion Operation (Example)

◦ Operation 2:
◦ Delete the EMPLOYEE tuple with Ssn = ‘999887777’.
◦ Result:
◦ This deletion is not acceptable, because there are
tuples in WORKS_ON that refer to this tuple.
Hence, if the tuple in EMPLOYEE is deleted,
referential integrity violations will result.
The Delete Operation (Practices)

◦ Operation 3:
◦ Delete the EMPLOYEE tuple with Ssn = ‘33445555’.
◦ Operation 4:
◦ Delete the PROJECT tuple with Pnumber = ‘10’.
The Delete Operation (Practices)

◦ Operation 3 Result:
◦ This deletion will result in even worse referential integrity
violations, because the tuple involved is referenced by
tuples from the EMPLOYEE, DEPARTMENT, WORKS_ON, and
DEPENDENT relations.
◦ Operation 4 Result:
◦ This deletion is acceptable and deletes exactly one tuple.
The Update Operation

◦ Necessary to specify a condition on attributes of relation


◦ Select the tuple (or tuples) to be modified
◦ If attribute not part of a primary key nor of a foreign key
◦ Usually causes no problems
◦ the DBMS need only check to confirm that the new value is of
the correct data type and domain
◦ Updating a primary/foreign key
◦ Similar issues as with Insert/Delete
The Update Operation (Example)

◦ Operation 1:
◦ Update the salary of the EMPLOYEE tuple with
Ssn = ‘999887777’ to 28000.
◦ Result:
◦ Acceptable.
The Update Operation (Example)

◦ Operation 2:
◦ Update the Dno of the EMPLOYEE tuple with Ssn
= ‘999887777’ to 7.
◦ Result:
◦ Unacceptable, because it violates referential
integrity.
The Update Operation (Practices)

◦ Operation 3:
◦ Update the Dno of the EMPLOYEE tuple with Ssn =
‘999887777’ to 1.
◦ Operation 4:
◦ Update the Ssn of the EMPLOYEE tuple with Ssn =
‘999887777’ to ‘987654321’.
The Update Operation (Practices)

◦ Operation 3 Result:
◦ Acceptable.
◦ Operation 4 Result:
◦ Unacceptable, because it violates primary key constraint by
repeating a value that already exists as a primary key in
another tuple; it violates referential integrity constraints
because there are other relations that refer to the existing
value of Ssn.
The Transaction Concept

◦ Transaction
◦ Executing program
◦ Includes some database operations
◦ Must leave the database in a valid or consistent state
◦ Online transaction processing (OLTP) systems
◦ Execute transactions at rates that reach several
hundred per second
Read Material

◦ Chapter 3 of Text book

You might also like