Вы находитесь на странице: 1из 15

Chapter 2: Relational Model

Chapter 2: Relational Model


Structure of Relational Databases
Fundamental Relational-Algebra-Operations
Additional Relational-Algebra-Operations
Extended Relational-Algebra-Operations
Null Values
Modification of the Database
Example of a Relation
Basic Structure
Formally, given sets D1, D2, . Dn a relation r is a subset of D1 x D2 x x Dn
Thus, a relation is a set of n-tuples (a1, a2, , an) where each ai Di

Example: If
customer_name = {Jones, Smith, Curry, Lindsay, } /* Set of all customer names */
customer_street = {Main, North, Park, } /* set of all street names */
customer_city = {Harrison, Rye, Pittsfield, } /* set of all city names */
Then r = { (Jones, Main, Harrison),
(Smith, North, Rye),
(Curry, North, Rye),
(Lindsay, Park, Pittsfield) }
is a relation over:
customer_name x customer_street x customer_city
Attribute Types
Each attribute of a relation has a name
The set of allowed values for each attribute is called the domain of the attribute
Attribute values are (normally) required to be atomic; that is, indivisible
E.g. the value of an attribute can be an account number,
but cannot be a set of account numbers
Domain is said to be atomic if all its members are atomic
The special value null is a member of every domain
The null value causes complications in the definition of many operations
We shall ignore the effect of null values in our main presentation and
consider their effect later
Relation Schema
A1, A2, , An are attributes

R = (A1, A2, , An ) is a relation schema


Example:
customer = (customer_name, customer_street, customer_city)
Relation Instance
The current values (relation instance) of a relation are specified by a table
An element t of r is a tuple, represented by a row in a table

attributes
(or columns)
customer_name customer_street customer_city

Jones Main Harrison


Smith North Rye tuples
Curry North Rye (or rows)
Lindsay Park Pittsfield

customer
Relations are Unordered
Order of tuples is irrelevant (tuples may be stored in an arbitrary order)
Example: account relation with unordered tuples
Database
A database consists of multiple relations
Information about an enterprise is broken up into parts, with each relation storing one part of the
information
account : stores information about accounts
depositor : stores information about which customer owns which account
customer : stores information about customers

Storing all information as a single relation such as

bank(account_number, balance, customer_name, ..)

is not a good idea:


repetition of information
e.g.,if two customers own an account (What gets repeated?)
the need for null values
e.g., to represent a customer without an account
Normalization theory deals with how to design relational schemas (1NF, 2NF, 3NF)
The customer Relation
The depositor Relation
Integrity Constraints
What is an integrity constraint? A constraint that we (the designers) impose on all instances of a
database.
Examples:
Each row of table T should have a unique value on attribute A
Each row of table T should have a positive number on attribute A
Foreign keys
Its a good idea to standardize the most common cases
Candidate and Primary Keys
Let K R
K is a candidate key of R if
(a) for all rows t1 and t2, t1[K] t2[K] and
(b) we can not remove an attribute of K and still have (a)
Examples: SSN, customer_id, (first_name, last_name, date_of_birth)
Primary key: the designer chooses one of the candidate keys as the most important
one for the design (what does it mean)?
Example: SSN
Remember: it is an integrity constraint we choose one or more attribute, the DBMS
enforces uniqueness. It is called key constraint.
Foreign Keys

A relation schema may have an attribute that corresponds to the primary key of another
relation. This attribute is called a foreign key.
E.g. customer_name and account_number attributes of depositor are foreign keys to
customer and account respectively.
Only values occurring in the primary key attribute of the referenced relation may occur in
the foreign key attribute of the referencing relation (or null value).
It is an integrity constraint (referential integrity): we specify it and the DBMS enforces it.
Semantic Integrity Constraint

Constraints on the value of one or more attributes in one or more relations.


Examples:
The salary attribute must be positive
The salary an employee should be lower than his/her supervisors
The sum of the working hours for an employee cannot be more than 60

Вам также может понравиться