ch7 - Database System Concepts, 5th Ed . ©Silberschatz,...

Info iconThis preview shows pages 1–7. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Database System Concepts, 5th Ed . ©Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use Chapter 7: Relational Database Design Chapter 7: Relational Database Design ©Silberschatz, Korth and Sudarshan 7.2 Database System Concepts - 5 th Edition, Oct 5, 2006 Chapter 7: Relational Database Design Chapter 7: Relational Database Design ■ Features of Good Relational Design ■ Atomic Domains and First Normal Form ■ Decomposition Using Functional Dependencies ■ Functional Dependency Theory ■ Algorithms for Functional Dependencies ■ Decomposition Using Multivalued Dependencies ■ More Normal Form ■ Database-Design Process ■ Modeling Temporal Data ©Silberschatz, Korth and Sudarshan 7.3 Database System Concepts - 5 th Edition, Oct 5, 2006 The Banking Schema The Banking Schema ■ branch = ( branch_name , branch_city , assets ) ■ customer = ( customer_id , customer_name , customer_street , customer_city ) ■ loan = ( loan_number , amount ) ■ account = ( account_number , balance ) ■ employee = ( employee_id . employee_name , telephone_number , start_date ) ■ dependent_name = ( employee_id , dname ) ■ account_branch = ( account_number , branch_name ) ■ loan_branch = ( loan_number , branch_name ) ■ borrower = ( customer_id , loan_number ) ■ depositor = ( customer_id , account_number ) ■ cust_banker = ( customer_id , employee_id , type ) ■ works_for = ( worker_employee_id , manager_employee_id ) ■ payment = ( loan_number , payment_number , payment_date , payment_amount ) ■ savings_account = ( account_number , interest_rate ) ■ checking_account = ( account_number , overdraft_amount ) ©Silberschatz, Korth and Sudarshan 7.4 Database System Concepts - 5 th Edition, Oct 5, 2006 Combine Schemas? Combine Schemas? ■ Suppose we combine borrower and loan to get bor_loan = ( customer_id , loan_number , amount ) ■ Result is possible repetition of information (L-100 in example below) ©Silberschatz, Korth and Sudarshan 7.5 Database System Concepts - 5 th Edition, Oct 5, 2006 A Combined Schema Without Repetition A Combined Schema Without Repetition ■ Consider combining loan_branch and loan loan_amt_br = ( loan_number , amount , branch_name ) ■ No repetition (as suggested by example below) ©Silberschatz, Korth and Sudarshan 7.6 Database System Concepts - 5 th Edition, Oct 5, 2006 What About Smaller Schemas? What About Smaller Schemas? ■ Suppose we had started with bor_loan. How would we know to split up ( decompose ) it into borrower and loan ? ■ Write a rule “if there were a schema ( loan_number, amount ), then loan_number would be a candidate key” ■ Denote as a functional dependency : loan_number → amount ■ In bor_loan , because loan_number is not a candidate key, the amount of a loan may have to be repeated. This indicates the need to decompose bor_loan ....
View Full Document

This note was uploaded on 02/17/2010 for the course CAS 6M03 taught by Professor Franek during the Spring '10 term at McMaster University.

Page1 / 87

ch7 - Database System Concepts, 5th Ed . ©Silberschatz,...

This preview shows document pages 1 - 7. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online