Download person-name

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Microsoft Jet Database Engine wikipedia , lookup

Database wikipedia , lookup

Extensible Storage Engine wikipedia , lookup

Concurrency control wikipedia , lookup

Entity–attribute–value model wikipedia , lookup

Ingres (database) wikipedia , lookup

Clusterpoint wikipedia , lookup

Relational algebra wikipedia , lookup

ContactPoint wikipedia , lookup

Relational model wikipedia , lookup

Database model wikipedia , lookup

Transcript
Huiswerk
 Lees delen 3.2, 3.3 van hoofdstuk 3.
 opgaven voor hoofdstuk 2: modelleeropgave 5
 opgaven voor hoofdstuk 3: maak de queries voor de vragen uit
3.5 in relationele algebra; maak de queries 1-6 voor de
bierdrinkerdatabase in tuppel calculus EN in relationele algebra.
Database System Concepts
2.1
©Silberschatz, Korth and Sudarshan
Silberschatz 3.5 a
 employee (person-name, street, city)
 works (person-name, company-name, salary)
 company (company-name, city)
 manages (person-name, manager_name)
Find the names of all employees who work for FBC
{ t | w works ( t[person-name] =w[person-name] Λ
w[company-name]=“FBC” )}
Database System Concepts
2.2
©Silberschatz, Korth and Sudarshan
Silberschatz 3.5 b
 employee (person-name, street, city)
 works (person-name, company-name, salary)
 company (company-name, city)
 manages (person-name, manager_name)
Find the names and the cities of residence of all employees who
work for FBC
{ t | e  employee (t[person-name] = e[person-name] Λ t[city] = e[city]
Λ w works ( w[person-name] =e[person-name]
Λ w[company-name]=“FBC”))}
Database System Concepts
2.3
©Silberschatz, Korth and Sudarshan
Silberschatz 3.5 c
 employee (person-name, street, city)
 works (person-name, company-name, salary)
 company (company-name, city)
 manages (person-name, manager_name)
Find the names, street address, and the cities of residence of all
employees who work for First Bank Corporation and earn more
that $10000 per annum.
t  employee
Λ (t[person-name]
w works ( w[person-name]
=t[person-name]
Λ
{ t | e
employee
= e[person-name]
Λ t[city] = e[city]
Λ t[street] = e[street]
Λ
w[company-name]=“FBC”
Λ
w works ( w[person-name]
=e[person-name] Λ
w[salary] >10000))}
w[company-name]=“FBC” Λ
w[salary] >10000))}
Database System Concepts
2.4
©Silberschatz, Korth and Sudarshan
Silberschatz 3.5 d
 employee (person-name, street, city)
 works (person-name, company-name, salary)
 company (company-name, city)
 manages (person-name, manager_name)
Find the names of all employees who live in the same city as the
company for which they work.
{ t | w works ( t[person-name] =w[person-name] Λ ccompany (
c[company-name=w[company-name] Λ
eemployee ( e[person-name] = w[person-name] Λ
e[city] = c[city] )))}
Database System Concepts
2.5
©Silberschatz, Korth and Sudarshan
Silberschatz 3.5 e
 employee (person-name, street, city)
 works (person-name, company-name, salary)
 company (company-name, city)
 manages (person-name, manager_name)
Find the names of all employees who live in the same city and
on the same street as do their managers.
{ t | eemployee (t[person-name] = e[person-name] Λ
mmanages ( m[person-name] = e[person-name] Λ
em employee (em[person-name] = m[person-name] Λ
e[city] = em[city] Λ e[street] = em[street] )))}
Database System Concepts
2.6
©Silberschatz, Korth and Sudarshan
Silberschatz 3.5 f
 employee (person-name, street, city)
 works (person-name, company-name, salary)
 company (company-name, city)
 manages (person-name, manager_name)
Find the names of all employees in this database who do not work
for FBC.
 single company assumption
{ t | wworks (t[person-name]=w[person-name] Λ [company-name]≠“FBC”)}
 Multiple company assumption
{ t | wworks (t[person-name]=w[person-name] Λ
w1 works (w[person-name] = w1[person-name] 
w1[company-name]≠“FBC”))}
 Which assumption holds according to the definition of the database?
Database System Concepts
2.7
©Silberschatz, Korth and Sudarshan
Silberschatz 3.5 g
 employee (person-name, street, city)
 works (person-name, company-name, salary)
 company (company-name, city)
 manages (person-name, manager_name)
Find the names of all employees who earn more than every
employee of SBC.
{ t | wworks (t[person-name]=w[person-name] Λ
w1 works (w1[company-name] = “SBC”  w[salary] > w1[salary] ))}
Database System Concepts
2.8
©Silberschatz, Korth and Sudarshan
Silberschatz 3.5 h
 employee (person-name, street, city)
 works (person-name, company-name, salary)
 company (company-name, city)
 manages (person-name, manager_name)
Assume the companies may be located in several cities. Find all
companies located in every city in which SBC is located.
{ t | ccompany (t[company-name]=c[company-name] Λ
c1 company (c1[company-name] = “SBC” 
c2company (c2[company-name]=c[company-name]
Λ c2[city] = c1[city] )))}
Database System Concepts
2.9
©Silberschatz, Korth and Sudarshan
Reduction of an E-R Schema to Tables
 Primary keys allow entity sets and relationship sets to be
expressed uniformly as tables which represent the
contents of the database.
 A database which conforms to an E-R diagram can be
represented by a collection of tables.
 For each entity set and relationship set there is a unique
table which is assigned the name of the corresponding
entity set or relationship set.
 Each table has a number of columns (generally
corresponding to attributes), which have unique names.
 Converting an E-R diagram to a table format is the basis
for deriving a relational database design from an E-R
diagram.
Database System Concepts
2.10
©Silberschatz, Korth and Sudarshan
Representing Entity Sets as Tables
 A strong entity set reduces to a table with the same attributes.
Database System Concepts
2.11
©Silberschatz, Korth and Sudarshan
Composite and Multivalued Attributes
 Composite attributes are flattened out by creating a separate attribute
for each component attribute
 E.g. given entity set customer with composite attribute name with
component attributes first-name and last-name the table corresponding
to the entity set has two attributes
name.first-name and name.last-name
 A multivalued attribute M of an entity E is represented by a separate
table EM
 Table EM has attributes corresponding to the primary key of E and an
attribute corresponding to multivalued attribute M
 E.g. Multivalued attribute dependent-names of employee is represented
by a table
employee-dependent-names( employee-id, dname)
 Each value of the multivalued attribute maps to a separate row of the
table EM
 E.g., an employee entity with primary key John and
dependents Johnson and Johndotir maps to two rows:
(John, Johnson) and (John, Johndotir)
Database System Concepts
2.12
©Silberschatz, Korth and Sudarshan
Representing Weak Entity Sets
 A weak entity set becomes a table that includes a column for
the primary key of the identifying strong entity set
Database System Concepts
2.13
©Silberschatz, Korth and Sudarshan
Representing Relationship Sets as
Tables
 A many-to-many relationship set is represented as a table with
columns for the primary keys of the two participating entity sets,
and any descriptive attributes of the relationship set.
 E.g.: table for relationship set borrower
Database System Concepts
2.14
©Silberschatz, Korth and Sudarshan
Redundancy of Tables
 Many-to-one and one-to-many relationship sets that are total
on the many-side can be represented by adding an extra
attribute to the many side, containing the primary key of the
one side
 E.g.: Instead of creating a table for relationship account-
branch, add an attribute branch to the entity set account
Database System Concepts
2.15
©Silberschatz, Korth and Sudarshan
Redundancy of Tables (Cont.)
 For one-to-one relationship sets, either side can be chosen to act
as the “many” side
 That is, extra attribute can be added to either of the tables
corresponding to the two entity sets
 If participation is partial on the many side, replacing a table by an
extra attribute in the relation corresponding to the “many” side
could result in null values
 The table corresponding to a relationship set linking a weak
entity set to its identifying strong entity set is redundant.
 E.g. The payment table already contains the information that would
appear in the loan-payment table (i.e., the columns loan-number
and payment-number).
Database System Concepts
2.16
©Silberschatz, Korth and Sudarshan
Representing Specialization as Tables
 Method 1:
 Form a table for the higher level entity
 Form a table for each lower level entity set, include primary key of
higher level entity set and local attributes
table
table attributes
person name, street, city
customer name, credit-rating
employee
name, salary
 Drawback: getting information about, e.g., employee requires
accessing two tables
Database System Concepts
2.17
©Silberschatz, Korth and Sudarshan
Representing Specialization as Tables
(Cont.)
 Method 2:
 Form a table for each entity set with all local and inherited
attributes
table
person
customer
employee
table
name,
name,
name,
attributes
street, city
street, city, credit-rating
street, city, salary
 If specialization is total, table for generalized entity (person) not
required to store information
 Can be defined as a “view” relation containing union of
specialization tables
 But explicit table may still be needed for foreign key constraints
 Drawback: street and city may be stored redundantly for persons
who are both customers and employees
Database System Concepts
2.18
©Silberschatz, Korth and Sudarshan
Relations Corresponding to
Aggregation
 To represent aggregation, create a table containing
 primary key of the aggregated relationship,
 the primary key of the associated entity set
 Any descriptive attributes
Database System Concepts
2.19
©Silberschatz, Korth and Sudarshan
Relations Corresponding to
Aggregation (Cont.)
 E.g. to represent aggregation manages between relationship
works-on and entity set manager, create a table
manages(employee-id, branch-name, title, manager-name)
 Table works-on is redundant provided we are willing to store
null values for attribute manager-name in table manages
Database System Concepts
2.20
©Silberschatz, Korth and Sudarshan
Example
Click to add Text
Translate into the relational model
Database System Concepts
2.22
©Silberschatz, Korth and Sudarshan