27
Logical Schema Design: Logical Schema Design: The Relational Data Model The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema

Logical Schema Design: The Relational Data · PDF fileLogical Schema Design: The Relational Data Model Basics of the Relational Model From Conceptual to Logical Schema

  • Upload
    buithuy

  • View
    229

  • Download
    1

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Email

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

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

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

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

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

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

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

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

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

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,…)