Outline: Relational Data Model Relational Data Model -relation schema, relations
Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational...
Transcript of Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational...
![Page 1: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/1.jpg)
Logical Schema Design:Logical Schema Design:The Relational Data ModelThe Relational Data Model
Basics of the Relational ModelFrom Conceptual to Logical Schema
![Page 2: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/2.jpg)
1.2
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design Logical Schema Design
Select data modelHierarchical data model: hierarchies of record types mainframe oldie, still in use, outdatedNetwork data model: graph like data structures, still in use, outdatedRelational data model: the most important one todayObject-Oriented data model: more flexible data structures, less powerful data manipulation languageObject-Relational: the best of two worlds?
Transform conceptual model into logical schema of data model
easy for Relational Data Model (RDM)can be performed automatically (e.g. by Oracle Designer)
![Page 3: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/3.jpg)
1.3
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: Relational Data ModelLogical Schema Design: Relational Data Model
The Relational Data Model1970 introduced by E.F. Codd, honoured by Turing award (Codd: A Relational Model of Data for Large Shared Data Banks. ACM Comm. 13( 6): 377- 387, 1970)
Basic ideas:Database is collection of relationsRelation R = set of n-tuplesRelation schema R(A1,A2,…An) Attributes Ai = atomic values of domain Di=dom(Ai)
Student
Name EmailMüllerKatzMaus
[email protected]@...piep@...
FNameTinaAnnaCarla
Student(Fname:string, Name:string, Email:string, SID:number)
relation (table)attribute
tuple
relation schema:Student(Fname, Name, Email, SID) or
Important terms
SID135551255511222
![Page 4: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/4.jpg)
1.4
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: Relational Data ModelLogical Schema Design: Relational Data Model
Relation Schema R(A1, A2, …, An)notation sometimes R:{[A1, A2, …, An]}
Relation R ⊆ dom(A1) x dom(A2) x … x dom(An) Attribute set R ={A1, A2, …, An} Degree of a relation: number of attributes
Example:Student(Fname, Name, Email, SID)Student ⊆ string x string x string x numberR (Student) ={Fname, Name, Email, SID}
Database Schema is set of relation schemas
![Page 5: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/5.jpg)
1.5
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: Relational Data ModelLogical Schema Design: Relational Data Model
Time-variant relationsRelations have state at each point in time. Integrity constraints on state part of DB schema
Tuples (rows, records) Not orderedNo duplicate tuples (Relations are sets)Null-values for some attributes possibleDistinguishable based on tuple values (key-concept)
Different to object identification in o-o languages:there, each object has implicit identity, usually completely unrelated to its fields
![Page 6: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/6.jpg)
1.6
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: Relational Data ModelLogical Schema Design: Relational Data Model
Superkey: subset of attributes of a relation schema R for which no two tuples have the same value.
Every relation at least 1 superkey.Example: Student(Fname, Name, Email, SID) Superkeys: {Fname, Name, Email, SID}, {Name, Email, SID}, {Fname, Email, SID}, {Fname, Name, SID}, {Fname, SID}, {Name, SID}, {Fname, Name, Email}, {Fname, Email}, {Name, Email}, {Email, SID}, {Email}, {SID}
Important terms
![Page 7: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/7.jpg)
1.7
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: Relational Data ModelLogical Schema Design: Relational Data Model
Candidate Key: superkey K of relation R such that if any attribute A ∈ K is removed, the set of attributes K\A is not a superkey of R.
Example: Student(Fname, Name, Email, SID) Candidate Keys: {Email}, {SID}
Primary Key:arbitrarily designated candidate key
Example: Student(Fname, Name, Email, SID) Primary Key: {SID}
Important terms
![Page 8: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/8.jpg)
1.8
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: Relational Data ModelLogical Schema Design: Relational Data Model
Foreign Key: set of attributes FK in relation schema R1 that references relation R2 if:
Attributes of FK have the same domain as the attributes of primary key K2 of R2
A value of FK in tuple t1 in R1 either occurs as a value of K2for some t2 in R2 or is null.
Example: R1: Exercise(EID, Tutor, ExcerciseHours, Lecture) R2: Student(Fname, Name, Email, SID)
K1={EID}, K2={SID}Tutor is foreign key of Student (from Exercise ).
Important terms
![Page 9: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/9.jpg)
1.9
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: TransformationLogical Schema Design: Transformation
1. Select data model → relational data model2. Transform conceptual model into logical schema of
relational data model
Define relational schema, table names, attributes and types, invariantsDesign steps:
Translate entities into relationsTranslate relationships into relationsSimplify the designDefine tables in SQLDefine additional invariants(Formal analysis of the schema)
![Page 10: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/10.jpg)
1.10
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: EntitiesLogical Schema Design: Entities
Step 1: Transform entitiesFor each entity E create relation R with all attributes Key attributes of E transform to keys of the relation
Relational Schema:Movie(id, title, category, year, director, Price_per_day, length)
Movie
director
title
categoryyear id
Price_per_day
length
![Page 11: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/11.jpg)
1.11
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: Weak EntitiesLogical Schema Design: Weak Entities
Step 2: Transform weak entitiesFor each weak entity WE create relation RInclude all attributes of WEAdd key of identifying entity to weak entities key Part of key is foreign key
Relational Schema:Employee(eid)Child(cid, eid)
Note: weak entity and defining relationship transformed together!
Employee has Child(0,*) (1,1)
eid cid
![Page 12: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/12.jpg)
1.12
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: Weak EntitiesLogical Schema Design: Weak Entities
Step 2: Transform weak entities
Example:
Relational Schema:Delivery(did, date)Order(oid, did, date, contact)Item(iid, oid, did)
has
(1,*)
(1,1)
Itemiid
OrderDeliverydid
contains(1,1)(1,*)
oid
date
datecontact
![Page 13: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/13.jpg)
1.13
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: RelationshipsLogical Schema Design: Relationships
Step 3: Transform Relationships For each 1:1-relationship between E1, E2 create relation RInclude all key attributesDefine as key: key of entity E1 or entity E2Choose entity with total participation for key (driving licence)
Relational Schema:Country(CName)President(PName)has(CName, PName) or has(Cname, PName)
Country has President(1,1) (1,1)
PNameCName
![Page 14: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/14.jpg)
1.14
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: RelationshipsLogical Schema Design: Relationships
Step 3: Transform Relationships For each 1:N-relationship between E1, E2 create relation RInclude all key attributesDefine as key: key of N-side of relationship
Relational Schema:Lecture(lnr)Lecturer(lid, name)hold(lnr,lid)
Lecture hold Lecturer(1,1) (0,*)
lnr
lid
name
![Page 15: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/15.jpg)
1.15
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: RelationshipsLogical Schema Design: Relationships
Step 3: Transform Relationships For each N:M-relationship create relation RInclude all key attributesDefine as key: keys from both entities
User_account has emailMessage(0,*) (1,*)
id
fromusername
Relational Schema:User_account(username)emailMessage(id, from)has(username, messageid)
![Page 16: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/16.jpg)
1.16
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: RelationshipsLogical Schema Design: Relationships
Step 3: Transform Relationships Include all relationship attributes in relation R
Relational Schema:require(preLNR, succLNR)
Rename keys in recursive relationships
Lecture hold Lecturer(1,1) (0,N)
lnr
lid
namedateRelational Schema:
Lecture(lnr)Lecturer(lid, name)hold(lnr,lid, date)
Lecture
require
predecessor successor
lnr
(0,1) (0,*)
![Page 17: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/17.jpg)
1.17
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: RelationshipsLogical Schema Design: Relationships
Step 3: Transform Relationships For each n-ary relationship (n>2) create relation RInclude all key attributesDefine as key: keys from all numerously involved entities
Lecturer recommend Textbook(0,*) (1,*)
Lecture
(0,*)namelid
ISBN
lnr
rating
title
author
Relational Schema:Lecture(lnr)Lecturer(lid, name)Textbook(ISBN, title, author)recommend(lid, lnr, ISBN, rating)
![Page 18: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/18.jpg)
1.18
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: GeneralizationLogical Schema Design: Generalization
Step 4: Generalization3 Variants for Transformation
Person(pid, name, fname, email)Student(pid, sid)Lecturer(pid, contract)
Person(pid, name, fname, email, sid, contract)
Student(pid, name, fname, email, sid)Lecturer(pid, name, fname, email, contract)
Student LecturerSID
pid
Contract
Person
is-a is-a
Name
FName
![Page 19: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/19.jpg)
1.19
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: GeneralizationLogical Schema Design: Generalization
(1) Separate relation for each entityKey in specialized relations: foreign key to general relation
Gathering data from different tables time consumingAppropriate specialization prevents unnecessary data access
B:C:
A:
aid
B C
A
is-a is-a
cb
a
A(aid, a)B(aid, b)C(aid, c)
![Page 20: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/20.jpg)
1.20
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: GeneralizationLogical Schema Design: Generalization
(2) Relations for specializationSeparate tables which include A’s attributesSeparate keys for relations
Only valid for exhaustive specialization (no data in A only)Time consuming data retrieval for non-distinct specializations
AB:AC:
AB(aid, a, b)AC(aid, a, c)
aid
B C
A
is-a is-a
cb
a
![Page 21: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/21.jpg)
1.21
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: GeneralizationLogical Schema Design: Generalization
(3) one relation for all entities
Removes generalization!Relation may contain many NULL-values
ABC(aid, a, b, c)
ABC: NULLs, if subtypes are disjoint
Empty, if subtypes are exhaustive
aid
B C
A
is-a is-a
cb
a
![Page 22: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/22.jpg)
1.22
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: ExampleLogical Schema Design: Example
Movie
Tape
hold
Actor
play
First_name
birthday
Address
Telephone
Last_name
stage_name
real_name
directortitle category
yearid
Customer
Mem_no
Price_per_day
id
Format
belong_to
charge
namelength
Rentalfrom
is_in
(1,1)
(1,1)
(0,*)
(1,*)
(0,*)
(1,*)
(0,*)(1,1)
(1,1)
(0,*)
until
have
![Page 23: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/23.jpg)
1.23
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: ExampleLogical Schema Design: Example
Format(name, charge)Tape(id)Movie(id, title, category, year, director, price_per_day, length)Actor(stage_name, real_name, birthday)Customer(mem_no, last_name, first_name, address, telephone)Rental(tape_id, member, from, until)
Belong_to(formatname, tape_id)Hold(tape_id, movie_id)Play(movie_id, actor_name)
Reduce relation number by simplification!
![Page 24: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/24.jpg)
1.24
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: SimplificationLogical Schema Design: Simplification
Collect those relation schemas with the same keyattributes into one relation schema
Semantics of attributes must match, not literal name Do not destroy generalization!
Lecture(lid, title, hours)Person(pid, fname, name, email)Student(pid, sid)Lecturer(pid, contract)Attend(lid, pid)Hold(lid, pid)
Lecture(lid, title, hours, lecturer)
Lecture
attend
Student
hold
Lecturer
SID Contract
hours title
Person
is-a is-a
FNameNameEmail
(1,1)
(0,N)(3,N)
(1,N)
LID
pid
![Page 25: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/25.jpg)
1.25
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: ExampleLogical Schema Design: Example
Format(name, charge)Tape(id)Movie(id, title, category, year, director, price_per_day, length)Actor(stage_name, real_name, birthday)Customer(mem_no, last_name, first_name, address, telephone)Rental(tape_id, member, from, until)
Belong_to(formatname, tape_id)Hold(tape_id, movie_id)Play(movie_id, actor_name)
Simplified relation from Tape/Belong_to/Hold:Tape(id, format, movie_id)
No simplification based on partial keys!
![Page 26: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/26.jpg)
1.26
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: SimplificationLogical Schema Design: Simplification
Restrictions on schema simplificationSimplification (folding) of relations may result in NULL values in some tables
Student(id, …)Grant(gid, duation, amount)Get(student, gid, since, responsible)
Student get Grant(0,1) (0,1)
gid
amountsince
duration
responsible
…… id
Grant(gid, duation, amount, student, since, responsible)
Consequence: optional relationships should not be transformed if many NULLS to be expectedMay lead to time consuming retrieval
![Page 27: Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema](https://reader034.fdocuments.us/reader034/viewer/2022052406/5a9e17967f8b9adb388e43d5/html5/thumbnails/27.jpg)
1.27
FU-Berlin, D
BS I 2006, Hinze / Scholz
Logical Schema Design: Short summaryLogical Schema Design: Short summary
Relational data modelRepresentation data in relations (tables)the most important data model today
Important terms & conceptsRelation: set of n-tuplesRelation schema defines structureAttribute: property of relation, atomic values Superkey, candidate key, primary key identify tupleTransformation rules for entities, relationshipsSimplification
Open aspects of logical schema designDDL for defining and changing relation schemasDefinition of constraints (Min-cardinalities, Value restrictions for attributes,…)