Schema Conversion Create a table for each entity –1:1 choose one side and put a foreign key –1:*...

Preview:

Citation preview

Schema Conversion

• Create a table for each entity– 1:1 choose one side and put a foreign key– 1:* put a foreign key in many side– *:* create a table for the relation

• Relation– *:* create a table

(1..1) (0..1)

Staff(staffNo, name, position, salary, branchNo, Manager)

Branch(branchNo, street, city, postcode)

Telephone (branchNo, telNo)OR

Staff(staffNo, name, position, salary,branchNo)

Branch(branchNo, street, city, postcode, staffNo)

Telephone (branchNo, telNo)

(1..*) (1..1)

Staff(staffNo, name, position, salary, manages, belongs)

Branch(branchNo, street, city, postcode)

Telephone (branchNo, telNo)

Domain [manages]= Domain[Branch.branchNo]

Domain [belongs] = Domain[Branch.branchNo]

staffNo fName

lName

manages

sex DOB salary branchNo

SL21 John White B005 M Oct/1/45 30000

B005

SG37 Ann Beech F Nov/10/60

12000

B003

SG14 David Ford M Mar/24/58

18000

B003

SA9 Mary Howe F 19/Feb/70

9000 B007

SG5 Susan Brand B003 F Jun/3/40 24000

B003

SL41 Julie Lee F Jun/13/65

9000 B005

Staff

BranchNo street city postcode

B005 22 Deer Rd London SW14EH

B007 16 Argyll St. Aberdeen AB2 3SU

B003 163 Main St Glasgow G11 9QX

B004 32 Manse Rd Bristol BS99 1NZ

B002 56 Clover Dr. London NW10 6EU

Branch (1..*)

(1..1)Find all the staff members who work in London.

How a relationship works in tables.

PropertyForRent (propertyNo, street, city, postcode, type, rooms, rent, privateOwnerNo,

businessOwnerNo, staffNo, branchNo)

Newspaper(newspaperName)

Advertisement (newspaperName, PropertyNo, dateAdvert, cost)

PropertyForRent NewsPaper

newsPaperName {PK}

◄Advertises

(1..*) (0..*)

dateAdvertCost

propertyNo{PK}StreetCityPostcodeRoomsRentprivateOwnerNo…

Many-to-Many Case

EmployeeSSN{pk}FNameMINITLNameBDateAddressSexSalary

DepartmentDnumber{pk}DnameMgrstartdateLocation[1..n]

Manages ►

◄Has1..1 1..0

1..* 1..1

ProjectPnumber{pk}PnamePlocation

Dependent

ESSN{pk}Dependent_Name{pk}SexBdateRelationship

Exercise

◄Depend

On1..1

0..*

◄Supervises

Supervisor

Supervisee

0..1

1..* In Charge of

Works_on ►

0..*

1..*

0..*

1..1

R1

R2

R3

R4

R5

R6

R={R1, R2, R3, R4, R5, R6}

Exercise

Representing Relational Database Schemas

• DreamHome case study– Branch (branchNo, street, city, postcode, manager)– Staff (staffNo, fName, lName, position, sex, DOB salary,

branchNo, supervisor)– PropertyForRent (propertyNo, street, city, postcode, type,

rooms, rent, privateOwnerNo, businessOwnerNo, staffNo, branchNo)

– Client (clientNo, fName, lName, telNo, prefType, maxRent)– Registration (clientNo, branchNo, staffNo, dateJoined)– Manager(staffNo, branchNo, MgrStartDate, bonus)

Schema

– Lease (leaseNo, PropertyNo, clientNo)– Preference (clientNo, preference)– Newspaper(newspaperName)– Advertisement (newspaperName, PropertyNo,

dateAdvert, cost)– PrivateOwner (privateOwnerNo, fName, lName,

address, telNo)– BusinessOwner (businessOwnerNo, businessName)

IS ASSIGNED TO►

Chairs►

PROFESSOR DEPARTMENT0..11..1

1..11..N

Class Exercise

Please complete the relational schema.

PROFESSOR(PID, FName, MINIT, LName, DOB, Rank)

DEPARTMENT (DID, DName)

ENROLL►STUDENTS SECTION

1..60..35

Exercise

STUDENTS (SID, FName, LName, DOB, Major[1..3], Minor)

COURSE (COURSE#, C_Name, Description)

SECTION (Section_Num, Max_size)

COURSE

Has▼

o..*

1..1

Painter Painting GalleryDisplayed(1,1) (0..*)

(0..*) (1..1)Paint ► ►

Exercise

Painter (Painter_ID, FName, LName)

Paining (Painting_ID, Title, Date)

Gallery (Gallery_Name, Location)

Employee SkillsLearn ►

0..* 0..*

Expert Level

Exercise

Employee (EID, FName, LName)

Skill (Skill_Name)

Student ClassesTake ►

1..* 0..*

Grade

Exercise

STUDENTS (SID, FName, LName, DOB)CLASS (CLASS#, C_Name, Description)

Course Section1..1 0..*

Student

Take ▼

1..*

0..*

Has ►

◄Prerequisite

0..*0..*

Grade

Exercise (Recursive and many-to-many)

STUDENTS (SID, FName, LName, DOB)COURSE (COURSE#, C_Name, Description)SECTION (Section_Num, Max_size)

Consider the following relations for a database that keeps track of student enrollment in courses and the books adopted for each course:

STUDENT(SSN, Name, Major, Bdate)

COURSE(Course#, Cname, Dept)

ENROLL(SSN, Course#, Quarter, Grade)

BOOK_ADOPTION(Course#, Quarter, Book_ISBN)

TEXT(Book_ISBN, Book_Title, Publisher, Author)

Quarter(Quarter)

Draw a relational schema diagram specifying the foreign keys for this schema.

Exercise

StudentSSN{pk}

Name

Major

Bdate

CourseEnroll

Course# Cname Dept

Text

ISBN{pk}

Publisher

Author

Adopt

Grade

Quarter

Quarter{pk}

Recommended