* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download The Relational Model
Survey
Document related concepts
Transcript
The Relational
Model
By
Elena Ciriani
CS157A
February 19, 2004
Professor Lee
1
INTRODUCTION
The relational model is the most used data model for
commercial data-processing because it is simple to
use and to maintain.
A relational data model is based on a collection of
tables. The user of the database system may query
these tables, insert new tuples, and update (modify)
tuples. There are several languages for expressing
these operations.
2
TOPICS
• Structure of Relational database
– A row in a table represents a relationship
among a set of values where the columns are
the representation of the attributions
• The Relational Algebra
– It defines a set of algebraic operations that
operate on tables, and output tables as their
results. These operations can be combined to
get expressions that express desired queries.
3
Structure of Relational Database
(Section 3.1)
•
•
•
•
•
3.1.1
3.1.2
3.1.3
3.1.4
3.1.5
Basic Structure
Database Schema
Keys
Schema Diagram
Query Languages
4
Basic Structure
The account table below represents a relation in the
relational model. The three columns titles are the
attributes and their domains.
Each row is called a tuple.
An account is a subset of the set of all possible tuples.
account-number
branch-name balance
A-101
Downtown
500
A-102
Perryridge
400
A-201
Brighton
900
A-215
Mianus
700
5
Database Schema
• Database Schema is the logical design of
the database
• Database instance is a snapshot of the data
in the DB at a given instance in time
• Relation instance is the programming
language notion of a value of a variable
6
Database Schema
Relation schema consists of a list of
attributes and their corresponding domain.
As a convention, uppercase letter are used so
Account-schema=(account-number, branchname, balance) This means that account is a
relation on Account-schema by
account(Account-schema)
7
Database Schema
Relation instance is the set of values of a
relation at a specific moment in time. This
values may change in time causing a change in
the relation as it is updated.
8
Keys
• Superkey is a set of one or more attributes that
allow us to identify uniquely an entity in the entity
set.
• Candidate Key are minimal superkey in an entity,
one of those keys is selected to be the primary key
• Primary Key is a candidate key that is chosen to
identify entities within an entity set
• Foreign Key is a primary key of another relation
schema
9
Keys
If K of R is a superkey for R, then the
relation r(R) does not have two tuples
with the same value. So if t1 and t2 are in r
t1 = t2
10
How to determine keys
• Strong entity set: the entity primary key
becomes the relation primary key
• Weak entity set: the primary key of the
relation is the union of the strong entity set
primary key and the discriminator
• Relation set: the union of the primary keys
of the related entity sets becomes a
superkey of the relation
11
How to determine keys
• Combined tables: in a many-to-one, the
primary key of the many becomes the
relation primary key. In a one-to-one either
primary key can be used
• Multivalued attributes: the entity primary
key becomes the primary key
12
Schema Diagram
A database schema with primary and foreign key
dependencies
relation
primary
account
account-number
branch-name
balance
branch
shade indicates primary key
depositor
customer
customer-name
account-number
customer-name
dependency
loan
branch-name
loan-number
branch-city
assets
branch-name
amount
customer-street
customer-city
borrower
customer-name
loan-number
13
Query Languages
Users use query languages to request information
from the database SQL is the most spread.
Database uses two types of query languages:
Procedural language: the user instructs the
system to perform a sequence of operations on the
database
Nonprocedural language: the user describes the
desired information without giving a specific
procedure for obtain the information
14
The Relational Algebra
Topics(section 3.2)
• 3.2.1 Fundamental Operations
–
–
–
–
–
–
–
3.2.1.1
3.2.1.2
3.2.1.3
3.2.1.4
3.2.1.5
3.2.1.6
3.2.1.7
The Select Operation
The Project Operation
Composition of Relational Operations
The Union Operation
The Set Difference Operation
The Cartesian-Product Operation
The Rename Operation
15
Relational Algebra
The relational algebra is a pure procedural query
language. It consists of a set of operations that
take one or two relations as input in an expression
and produced a new relation as their result.
A constant relation is written inside {}
A general expression is construct in
subexpressions
If they works on one relation are called unary
operation otherwise are said to be binary
16
Unary Operations
• Select operation: choose the tuples that satisfy a
given predicament.
–σ branch-name = “Perryridge”(loan)
• Project operation: allows the user to select
particular attributes of a relationship
– Πloan-number, amount (loan)
• Rename operation: give a name to the results of
relational algebra expressions
– ρbig-loans(σamount > 1200 (loan))
17
Binary Operation
• Union operation: allows the user to unify two
different relations and display the result
– Πcustomer-name (borrower) U Πcustomer-name (depositor)
• Difference operation: finds the tuples that are
in one relation but not in another
– Πcustomer-name (borrower) - Πcustomer-name (depositor)
18
Binary Operation
• Cartesian-product: combines information from
any two relations
– σ branch-name = “Perryridge”(borrower x loan)
• Composition of operation: means that to find
information we can associate more operation into
an expression
– Πcustomer-name (σ customer-city = “Harrison”(customer))
19
The Relational Algebra(continued)
(Section 3.2.3)
• 3.2.3 Additional Operations
The following operations make a relational
algebra query easier when the basic
expression may become lengthy
–
–
–
–
3.2.3.1
3.2.3.2
3.2.3.3
3.2.3.4
The Set-Intersection Operation
The Natural-Join Operation
The Division Operation
The Assignment Operation
20
Additional Operation
• Set-Intersection Operation: find all the attributes
that appear in both relations
– Πcustomer-name (borrower) ∩ Π customer-name (depositor)
– Πcustomer-name (borrower) – (Πcustomer-name (borrower) –
Πcustomer-name (depositor))
21
Additional Operation
• Natural-Join Operation: forms a Cartesian
product of its two arguments, performs a selection
forcing equality on those attributes that appears in
both relations and removes any duplicates
– Πcustomer-name, loan-number, amount (borrower
– Πcustomer-name, loan-number, amount
loan)
(borrower.loan-number = loan.loan-number (borrower x loan))
22
Additional Operation
• Division operation: is suited to queries that
include the phrase “for all”
– Πcustomer-name, branch-name (depositor account)
Πbranch-name (σ branch-city = “Brooklyn”(branch))
23
Additional Operation
• Assignment operation: write part of a
relational expression to a temporary relation
variable. This variable is used later in
expression of a query
– temp1 ← Πcustomer-name (borrower)
– temp2 ← Πcustomer-name (depositor)
– Result = temp1 – (temp1 – temp2)
24