You are on page 1of 13

Step1:

CLASS (CourseNo, SectionNo, CourseName, Room, Capacity)


Step2:
CourseNo, Room, SectionNo, CourseName, Capacity
CourseNo CourseName
Room
Capacity
Step3:
CLASS (CourseNo, SectionNo, Room)
COURSE (CourseNo, CourseName)
ROOM (Room, Capacity)
Step 4:
CourseNo, SectionNo Room
CourseNo CourseName
Room Capacity
------------------------------------------------------------------------------------PART SUPPLIER (PartNo, Description, VendorName, Address, UnitCost)
Step1:
PART SUPPLIER (PartNo, Description, VendorName, Address, UnitCost)
Step2: Functional Dependencies
PartNo, VendorName --> Description, Address, UnitCost
PartNo --> Description
VendorName --> Address
Step3:
PART SUPPLIER (PartNo, VendorName, UnitCost)
PART (PartNo, Description)
SUPPLIER (VendorName, Address)
Step4:
PartNo, VendorName --> UnitCost
Part No --> Description
VendorName --> Address
Step5:
PART SUPPLIER (PartNo, VendorName, UnitCost)
PART (PartNo, Description)
SUPPLIER (VendorName, Address)
Step6:
PartNo, VendorName --> UnitCost
Part No --> Description
VendorName --> Address

GradeReport (studentId, studentName, campusAddress, major, courseId,


courseTitle, instructorName, instructorLocation, grade)
Step1: 1st NF
GradeReport (studentId, studentName, campusAddress, major, courseId,
courseTitle, instructorName, instructorLocation, grade)
Step2: FDs
studentId, courseId studentName, campusAddress, major, courseTitle,
instructorName, instructorLocation, grade
studentId studentName, campusAddress, major
courseId courseTitle, instructorName, instructorLocation
instructorName instructorLocation
Step3: 2nd NF
GradeReport (studentId, courseId, grade)
Student (studentId, studentName, campusAddress, major)
Course (courseId, courseTitle, instructorName, instructorLocation)
Step4: Removed Partial Functional dependency
studentId, courseId grade
studentId studentName, campusAddress, major
courseId courseTitle, instructorName, instructorLocation
instructorName instructorLocation
Step5: 3rd NF
GradeReport (studentId, courseId, grade)
Student (studentId, studentName, campusAddress, major)
Course (courseId, courseTitle, instructorName)
Instructor (instructorName, instructorLocation)
Step6: Removed Transitive Dependency
studentId, courseId grade
studentId studentName, campusAddress, major
courseId courseTitle, instructorName
instructorName instructorLocation

PurchasingData (materialId, materialName, unitOfMeasure, standardCost,


vendorId, vendorName, unitPrice, termsCode, terms)
Step1:
PurchasingData (materialId, materialName, unitOfMeasure, standardCost,
vendorId, vendorName, unitPrice, termsCode, terms)
Step2:
materialId, vendorId materialName, unitOfMeasure, standardCost,
vendorName, unitPrice, termsCode, terms
materialId materialName, unitOfMeasure, standardCost
vendorId vendorName, termsCode, terms
Step3:
PurchasingData (materialId, vendorId, unitPrice)
Material (materialId, materialName, unitOfMeasure, standardCost)
Vendor (vendorId, vendorName, termsCode, terms)
Step4:
materialId, vendorId unitPrice
materialId materialName, unitOfMeasure, standardCost
vendorId vendorName, termsCode, terms
termsCode terms
Step5:
PurchasingData (materialId, vendorId, unitPrice)
Material (materialId, materialName, unitOfMeasure, standardCost)
Vendor (vendorId, vendorName, termsCode)
Terms (termsCode, terms)
Step6:
materialId, vendorId unitPrice
materialId materialName, unitOfMeasure, standardCost
vendorId vendorName, termsCode
termsCode terms

AuthorBookRoyalties (aId, aFname, aLname, aInst, bNbr, bName, bPublish,


pubCity, bPrice, authBRoyalty)
Step1:
AuthorBookRoyalties (aId, aFname, aLname, aInst, bNbr, bName, bPublish,
pubCity , bPrice, authBRoyalty)
Step2:
aId, bNbr aFname, aLname, aInst, bName, bPublish, bPrice, pubCity,
authBRoyalty
aId aFname, aLname, aInst
bNbr bName, bPublish, pubCity, bPrice
Step3:
AuthorBookRoyalties (aId, bNbr, authBRoyalty)
Author (aId, aFname, aLname, aInst)
Book (bNbr, bName, bPublish, pubCity, bPrice)
Step4:
aId, bNbr authBRoyalty
aId aFname, aLname, aInst
bNbr bName, bPublish, pubCity, bPrice
Step5:
AuthorBookRoyalties (aId, bNbr, authBRoyalty)
Author (aId, aFname, aLname, aInst)
Book (bNbr, bName, bPublish, pubCity, bPrice)
Step6:
aId, bNbr authBRoyalty
aId aFname, aLname, aInst
bNbr bName, bPublish, pubCity, bPrice

VideoRental (MovieNbr, Title, DirectorID, DirectorName, StudioID, StudioName,


StudioLocation, StudioCEO, Character, ActorID, Name, MovieLicenseNbr,
MovieLicenseType, MovieRentalPrice, LicenseRentalStatus, LicenseReturnDate)
Step1:
VideoRental (MovieNbr, Title, DirectorID, DirectorName, StudioID, StudioName,
StudioLocation, StudioCEO, Character, ActorID, Name, MovieLicenseNbr,
MovieLicenseType, MovieRentalPrice, LicenseRentalStatus, LicenseReturnDate)
Step2:
MovieNbr, MovieLicenseNbr Title, DirectorID, DirectorName, StudioID,
StudioName, StudioLocation, StudioCEO, Character, ActorID, Name,
MovieLicenseType, MovieRentalPrice, LicenseRentalStatus, LicenseReturnDate
MovieNbr Title, DirectorID, DirectorName, StudioID, StudioName,
StudioLocation, StudioCEO, Character, ActorID, Name
MovieLicenseNbr MovieLicenseType, MovieRentalPrice,
Step3:
VideoRental (MovieNbr, MovieLicenseNbr, LicenseRentalStatus,
LicenseReturnDate)
Movie (MovieNbr, Title, DirectorID, DirectorName, StudioID, StudioName,
StudioLocation, StudioCEO, Character, ActorID, Name)
MovieLicense (MovieLicenseNbr, MovieLicenseType, MovieRentalPrice)
Step4:
MovieNbr, MovieLicenseNbr LicenseRentalStatus, LicenseReturnDate
MovieNbr Title, DirectorID, StudioID, ActorID
MovieLicenseNbr MovieLicenseType, MovieRentalPrice
DirectorId DirectorName
StudioID StudioName, StudioLocation, StudioCEO
ActorID Name, Character
Step5:
VideoRental (MovieNbr, MovieLicenseNbr, LicenseRentalStatus,
LicenseReturnDate)
Movie (MovieNbr, Title, DirectorID, StudioID, ActorID)
Director (DirectorID, DirectorName)
Studio (StudioID, StudioName, StudioLocation, StudioCEO)
Actor (ActorID, Character, Name)
MovieLicense (MovieLicenseNbr, MovieLicenseType, MovieRentalPrice)
Step6:
MovieNbr, MovieLicenseNbr LicenseRentalStatus, LicenseReturnDate
MovieNbr Title, DirectorID, StudioID, ActorID
MovieLicenseNbr MovieLicenseType, MovieRentalPrice
DirectorId DirectorName
StudioID StudioName, StudioLocation, StudioCEO
ActorID Name, Character
RouteTracking (RouteID, RouteStartPoint, RouteEndPoint,

RouteStandardDrivingTime, ScheduleDate, ScheduledDepTime,


ScheduledArrTime,DriverID, DriverFName, DriverLName,
DateDriverJoinedCompany, DriverDOB, VehicleID, VehicleMake, VehicleModel,
VehiclePassangerCapacity, DriverCertStartDate, DriverCertEndDate)
Step1:
RouteTracking (RouteID, RouteStartPoint, RouteEndPoint,
RouteStandardDrivingTime, ScheduleDate, ScheduledDepTime,
ScheduledArrTime,DriverID, DriverFName, DriverLName,
DateDriverJoinedCompany, DriverDOB, VehicleID, VehicleMake, VehicleModel,
VehiclePassangerCapacity, DriverCertStartDate, DriverCertEndDate)
Step2:
RouteID, DriverID, VehicleID RouteStartPoint, RouteEndPoint,
RouteStandardDrivingTime, ScheduleDate, ScheduledDepTime,
ScheduledArrTime, DriverFName, DriverLName, DateDriverJoinedCompany,
DriverDOB, VehicleMake, VehicleModel, VehiclePassangerCapacity,
DriverCertStartDate, DriverCertEndDate
RouteID RouteStartPoint, RouteEndPoint, RouteStandardDrivingTime
DriverID DriverFName, DriverLName, DateDriverJoinedCompany,
DriverDOB, DriverCertStartDate, DriverCertEndDate
VehicleID VehicleMake, VehicleModel, VehiclePassangerCapacity
Step3:
RouteTracking (RouteID, ScheduleDate, ScheduledDepTime,
ScheduledArrTime,DriverID, VehicleID)
Route (RouteID, RouteStartPoint, RouteEndPoint, RouteStandardDrivingTime)
Driver (DriverID, DriverFName, DriverLName, DateDriverJoinedCompany,
DriverDOB, DriverCertStartDate, DriverCertEndDate)
Vehical (VehicleID, VehicleMake, VehicleModel, VehiclePassangerCapacity)
Step4:
RouteID, DriverID, VehicleID ScheduleDate, ScheduledDepTime,
ScheduledArrTime
RouteID RouteStartPoint, RouteEndPoint, RouteStandardDrivingTime
DriverID DriverFName, DriverLName, DateDriverJoinedCompany,
DriverDOB, DriverCertStartDate, DriverCertEndDate
VehicleID VehicleMake, VehicleModel, VehiclePassangerCapacity
Step5:
RouteTracking (RouteID, DriverID, VehicleID, ScheduleDate,
ScheduledDepTime, ScheduledArrTime,)
Route (RouteID, RouteStartPoint, RouteEndPoint, RouteStandardDrivingTime)
Driver (DriverID, DriverFName, DriverLName, DateDriverJoinedCompany,
DriverDOB, DriverCertStartDate, DriverCertEndDate)
Vehical (VehicleID, VehicleMake, VehicleModel, VehiclePassangerCapacity)
Step6:
RouteID, DriverID, VehicleID ScheduleDate, ScheduledDepTime,

ScheduledArrTime
RouteID RouteStartPoint, RouteEndPoint, RouteStandardDrivingTime
DriverID DriverFName, DriverLName, DateDriverJoinedCompany,
DriverDOB, DriverCertStartDate, DriverCertEndDate
VehicleID VehicleMake, VehicleModel, VehiclePassangerCapacity

Computer (ComputerSerialNbr, VendorID, VendorName, VendorPhone,


VendorSupportID, VendorSupportName, VendorSupportExtension, SoftwareID,
SoftwareName, SoftwareVendor, SoftwareLicenseExpires, SoftwareLicensePrice,
UserID, UserName, UserAuthorizationStarts, UserAuthorizationEnds,
UserAuthorizationPassword, PurchasePrice)
Step1:
Computer (ComputerSerialNbr, VendorID, VendorName, VendorPhone,
VendorSupportID, VendorSupportName, VendorSupportExtension, SoftwareID,
SoftwareName, SoftwareVendor, SoftwareLicenseExpires, SoftwareLicensePrice,
UserID, UserName, UserAuthorizationStarts, UserAuthorizationEnds,
UserAuthorizationPassword, PurchasePrice)
Step2:
ComputerSerialNbr VendorID, VendorName, VendorPhone,
VendorSupportID, VendorSupportName, VendorSupportExtension, SoftwareID,
SoftwareName, SoftwareVendor, SoftwareLicenseExpires, SoftwareLicensePrice,
UserID, UserName, UserAuthorizationStarts, UserAuthorizationEnds,
UserAuthorizationPassword, PurchasePrice
VendorID VendorName, VendorPhone, VendorSupportID,
VendorSupportName, VendorSupportExtension
SoftwareID SoftwareName, SoftwareVendor, SoftwareLicenseExpires,
SoftwareLicensePrice, UserID UserName, UserAuthorizationStarts,
UserAuthorizationEnds, UserAuthorizationPassword
Step3:
Computer (ComputerSerialNbr, VendorID, SoftwareID, UserID, PurchasePrice)
Vendor (VendorID, VendorName, VendorPhone, VendorSupportID,
VendorSupportName, VendorSupportExtension)
Software (SoftwareID, SoftwareName, SoftwareVendor,
SoftwareLicenseExpires, SoftwareLicensePrice)
User(UserID, UserName, UserAuthorizationStarts, UserAuthorizationEnds,
UserAuthorizationPassword)
Step4:
ComputerSerialNbr VendorID, SoftwareID, UserID, PurchasePrice
VendorID VendorName, VendorPhone, VendorSupportID,
VendorSupportName, VendorSupportExtension
VendorSupportID VendorSupportName, VendorSupportExtension
SoftwareID SoftwareName, SoftwareVendor, SoftwareLicenseExpires,
SoftwareLicensePrice, UserID UserName, UserAuthorizationStarts,
UserAuthorizationEnds, UserAuthorizationPassword

Step5:
Computer (ComputerSerialNbr, VendorID, SoftwareID, UserID,
PurchasePrice)
Vendor (VendorID, VendorName, VendorPhone, VendorSupportID)
VendorSupport (VendorSupportID, VendorSupportName,
VendorSupportExtension)
Software (SoftwareID, SoftwareName, SoftwareVendor,
SoftwareLicenseExpires, SoftwareLicensePrice)
User(UserID, UserName, UserAuthorizationStarts, UserAuthorizationEnds,
UserAuthorizationPassword)
Step6:
ComputerSerialNbr VendorID, SoftwareID, UserID, PurchasePrice
VendorID VendorName, VendorPhone, VendorSupportID
VendorSupportID VendorSupportName, VendorSupportExtension
SoftwareID SoftwareName, SoftwareVendor, SoftwareLicenseExpires,
SoftwareLicensePrice, UserID UserName, UserAuthorizationStarts,
UserAuthorizationEnds, UserAuthorizationPassword

Normalization Exercise 1

HEALTH HISTORY REPORT


PET ID
246

PET NAME
ROVER

PET TYPE PET AGE OWNER


DOG
12
SAM COOK

VISIT DATE
JAN 13/2002
MAR 27/2002
APR 02/2002

PROCEDURE
01 - RABIES VACCINATION
10 - EXAMINE and TREAT WOUND
05 - HEART WORM TEST

298

SPOT

DOG

TERRY KIM

JAN 21/2002
MAR 10/2002

08 - TETANUS VACCINATION
05 - HEART WORM TEST

341

MORRIS

CAT

SAM COOK

JAN 23/2001
JAN 13/2002

01 - RABIES VACCINATION
01 - RABIES VACCINATION

519

TWEEDY

BIRD

TERRY KIM

APR 30/2002
APR 30/2002

20 - ANNUAL CHECK UP
12 - EYE WASH

Step1:
HealthHistory (petId, petName, petType, petAge, owner, visitDate, procedureNo,
procedureName)
Step2: function Dependencies

petId petName, PetType, PetAge, Owner,


procedureName
petId, visitDate -> procedureNo, procedureName
procedureNo procedureName

VisitDate,

Step3:
Pet (petId, petName, petType, petAge, owner)
Pet_Visit(petId, visitDate, procedureNo, procedureName)
Step4:
petId petName, PetType, PetAge, Owner
petId, visitDate, -> procedureNo, procedureName
procedureNo procedureName
Step5:
Pet (petId, petName, petType, petAge, owner)
PetVisit (petId, visitDate, procedureNo)
Procedure (procedureNo, procedureName)
Step6:
petId petName, PetType, PetAge, Owner
petId, visitDate -> procedureNo
procedureNo procedureName

Step1:
User (userId, uEmail, fName, lName, city, state, zip)
Step2:
userId uEmail, fName, lName, city, state, zip
zip city, state
Step3:
User (userId, uEmail, fName, lName, zip)
Address (zip, city, state)

procedureNo,

Step4:
userId uEmail, fName, lName, zip
zip city, state
Step5:
User (userId, uEmail, fName, lName, zip)
Address (zip, city, state)
Step6:
userId uEmail, fName, lName, zip
zip city, state

Step1:
Repayment (borrowerId, bName, bAddress, loanAmount, requestDate,
repaymentDate, repaymentAmount)
Step2:
borrowerId, requestDate, repaymentDate bName, bAddress,
loanAmount, repaymentAmount
borrowerId, requestDate loanAmount
borrowerId bName, bAddress
Step3:
Repayment (borrowerId, requestDate, repaymentDate, repaymentAmount)
Loan (borrowerId, requestDate, loanAmount)
Borrower (borrowerId, bName, bAddress)
Step4:
borrowerId, requestDate, repaymentDate -> repaymentAmount
borrowerId, requestDate loanAmount
borrowerId bName, bAddress
Step5:
Repayment (borrowerId, requestDate, repaymentDate, repaymentAmount)
Loan (borrowerId, requestDate, loanAmount)
Borrower (borrowerId, bName, bAddress)
Step6:
borrowerId, requestDate, repaymentDate -> repaymentAmount
borrowerId, requestDate loanAmount
borrowerId bName, bAddress

Step1:
StudentGrades(unitId, studentId, date, tutorId, topic, room, grade, book,
tutEmail)
Step2:
unitId, studentId date, tutorId, topic, room, grade, book, tutEmail
unitId date, topic, room, book
TutorId tutEmail
Step3:
StudentGrades (unitId, studentId, grade, tutorId, tutEmail)
Unit (unitId, date, topic, room, book)
Step4:
unitId, studentId, date, grade, book, tutorId, tutEmail
unitId date, topic, room, book
TutorId tutEmail
Step5:
StudentGrades (unitId, studentId, grade, tutorId)
Unit (unitId, date, topic, room, book)
Tutor (tutorId, tutEmail)
Step4:
unitId, studentId, date, grade, book, tutorId, tutEmail
unitId date, topic, room, book
TutorId tutEmail

Step1:
OrderForm(orderId, custId, custName, custAddress, custCity, custCountry,
orderDate, productId, description, quantity, unitPrice)
Step2:
orderId custId, custName, custAddress, custCity, custCountry, orderDate,
productId, description, quantity, unitPrice
custId custName, custAddress, custCity, custCountry
productId description, unitPrice
Step3:
OrderForm (orderId, custId, productId, orderDate, quantity)
Customer (custId, custName, custAddress, custCity, custCountry)
Product (productId, description, unitPrice)
Step4:
orderId orderDate, productId, quantity
custId custName, custAddress, custCity, custCountry
productId description, unitPrice
orderId, custId orderDate
orderId, productId quantity
Step5:
Order (orderId, custId, orderDate)
OrderLine (orderId, productId, quantity)
Customer (custId, custName, custAddress, custCity, custCountry)
Product (productId, description, unitPrice)
Step6:

custId custName, custAddress, custCity, custCountry


productId description, unitPrice
orderId, custId orderDate
orderId, productId quantity

You might also like