* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download CS 338 The Relational Data Model and Relational Database
Survey
Document related concepts
Transcript
CS 338
The Relational Data Model and Relational
Database Constraints
Bojana Bislimovska
Winter 2017
Major research
Outline
• Relational Model concepts
• Relational model constraints
• Update operations, transactions
Relational
Model
Concepts
Major research
Represents a collection of relations
• Relation – a table of values (flat file of records)
Row (tuple) – represents a record of related data values
Column (attribute) – specifies how to interpret data values
in each row
• All values in a column are from the same data type
Major research
Domains
Set of atomic values specified by:
• Name – helpful in interpreting its values
• Data type
Character strings
Numeric (Integer, Real)
Date
• Format specifies a domain
Attributes
and
Relations
Major research
Relation schema
• Table description
• Formally, R(A1, A2, ...An) consists of
Relation name R
List of attributes A1, A2, ..., An
• Attribute
Attribute domain
Attribute names do not repeat in a schema, but a domain may repeat
• Degree (arity) of a relation
Database schema
• A set of relation schemas S={R1, R2,..., Rn}
Relation (relation instance) of a relation schema
• Specifies current content of a relation
Characteristics
of
Relations
Major research
Relation –set of n tuples, where each tuple is an ordered list of m values
• Tuples in a relation have no particular order
• Alternative: Ordering of values in a tuple (attributes in a relation schema) is
unnecessary (at abstract level)
Correspondence between attributes and values is maintained
To simplify notation, we will consider ordered attributes in a relation schema
• Flat relation model assumes that values in a tuple are atomic
Composite and multivalued attributes not allowed (alternative
representations)
Extensions of this model exist
• NULL values – represent unknown values, or values that do not apply to a
tuple
Several meanings
Best to avoid them
Characteristics
of
Relations
Major research
Relation can be interpreted as:
• Assertion
Each tuple interpeted as a fact (assertion instance)
Relations represent facts about entities and relationships
• Predicate
Values in each tuple satisfy the predicate
Relational
Model
Notation
Major research
• Uppercase letters Q, R, S denote relation names
• Corresponding lowercase letters q, r, s denote
corresponding relation states
• Uppercase letters A, B, C, …, H denote attributes
Attribute A can be qualified with the relation name R to
which it belongs using the dot notation, e.g., R.A
• Lowercase letters t, u, v denote tuples
Tuple t in a relation r(R) is denoted by t=<v1,v2,…,vm>
t.Ai, t[Ai] – refer to value vi in t for attribute Ai
t[Au,Aw,…,Az], t.(Au,Aw,…,Az ) – refer to subtuple of values
corresponding to the specified attributes
Relational
Model
Constraints
Major research
• Inherent model-based constraints (implicit constraints)
Characteristics of relations
• Schema-based constraints (explicit constraints)
Directly expressed in the schemas
• Application-based (semantic) constraints (business rules)
Expressed by the application programs, not in the schemas
• Data dependencies
Test the goodness of a DB design
Schema
Model
Constraints
Major research
• Domain constraints
Each attribute value must be an atomic value from the domain
Variety of data types associate with a domain
• Numeric, characters, booleans, strings, date, time, etc.
• Key constraints
Superkey specifies a uniqueness constraint
Key is a superkey with an additional property: removal of any
attribute leaves a set of attributes that is not a superkey
anymore
Key properties
• Uniqueness
• Minimal superkey
• Time-invariant
Candidate key –more than one key in the schema
• One of them is a primary key (arbitrary choice), others unique keys
Schema
Model
Constraints
Major research
• Constraints on NULL values
Whether NULL values are permitted
If an attribute for a tuple is mapped to NULL, cannot make any
assumptions about the value for that attribute (for that tuple)
• Different interpretations for NULL values
Relational Databases and Relational
Database Schema
Major research
• Relational Database Schema is a set of relation
schemas and a set of integrity constraints
• Relational database state (instance) of the schema is a
set of relation states which satisfy the specified
integrity constraints
• All integrity constraints must be satisfied for the
database to be valid
• Each relational DBMS has a Data Definition Language
(DDL) => SQL
Integrity
Constraints
Major research
Specified on the relational database schema
• Entity integrity constraint
No primary key value can be NULL
• Referential integrity constraint
Tuple in one relation that refers to another relation must
refer to an existing tuple in that relation
Integrity
Constraints
Major research
• Referential integrity constraint
Foreign key
A set of attributes in a relation schema R1 that references
relation R2 if:
• Foreign key attributes have same domains as the primary key
attributes of R2
• Foreign key value for a tuple of a current state of R1 is etiher NULL
or occurs as a primary key value for some tuple in the current state
of R2
R1 - referencing relation, R2 - referenced relation
Foreign key can refer to its own relation
Integrity
Constraints
Major research
Operations
on
Relational
Model
Major research
• Retrievals and updates
Insert
Delete
Update
• Non-violation of integrity constraints
Insert
Operation
Major research
Provides a list of attribute values for a new tuple to be inserted
• All four types of constraints can be violated
• If one or more constraints are violated, insertion is rejected
Delete
Operation
Major research
Deletes tuples from a relation
• Only referential integrity is violated
Restrict – rejects deletion
Cascade- attempt to propagate the deletion by deleting referencing tuples
Set null (set default) - modify referencing attribute values that cause violation
Combination of the above options
Update
Operation
Major research
Modifies attribute values in a tuple (tuples)
• Update of an attribute that is not a primary key or foreign key
Usually causes no problems
• Updating a primary/foreign key
Similar possible constraint violations as with Insert/Delete
Transactions
Major research
Executing program that includes some database operations
• All constraints must be satisfied
Database in a valid and consistent state at the end of each transaction