การตรวจสอบความถูกต้องของการออกแบบระบบฐานข้อมูล ต้องมีขบวนการการตรวจสอบอย่างเป็นขั้นตอน เราเรียกขบวนการนี้ว่า Normalization. Normalization is a formal method

  • Published on
    31-Mar-2015

  • View
    212

  • Download
    0

Embed Size (px)

Transcript

<ul><li>Slide 1</li></ul><p> Normalization. Normalization is a formal method involved with a series of test to help database designer to be able to identify the optimal grouping of attributes for each relation in the relational schema. Normalization can be applied to individual relations so that database can be normalized to a specific form to prevent the possible occurrence of update anomaly. Normalization Slide 2 Data Redundancy and Update Anomalies attributes UPDATE ANOMALIES 3 Insertion anomalies Deletion Anomalies Modification Anomalies Slide 3 Insertion Anomalies Deletion Anomalies Modification Anomalies Slide 4 Insertion Anomalies To insert the details of new members of staff into the Staff_Branch relation, we must include the details of the branch at which the staff are to be located. Deletion Anomalies If we delete a row from the Staff_Branch relation that represents the last member of staff located at a branch, the details about that branch are also lost from the database. Modification Anomalies If we want to change the value of one of the attributes of a particular branch in the Staff_Branch relation, we must update the rows of all staff located at that branch. If this modification is not carried out on all the appropriate rows of the Staff_Branch relation, the data base will become inconsistent. Slide 5 Staff_NoSNameSAddressPositionSalaryBranch_NoBAddressTel_No SL21John White19 Taylor St, LondonManager30000B522 Dear Rd,London02-704-8109 SG37Ann Beech81 George St, GlasgowSnr Asst12000B3163 Main St,Glasgow02-953-8018 SG14David Ford63 Ashby St, GlasgowDeputy18000B3163 Main St,Glasgow02-255-8128 SA9Mary Howe2 Elm Pl, AberdeenAssistant 9000B716 Argyll St, Aberde02-775-4995 SG5Susan Brand5 Gt Western Rd, GlasManager24000B3163 Main St,Glasgow02-987-1234 SL41Julie Lee28 Malvern St,KilburnAssistant 9000B522 Dear Rd,London02-342-5616 Staff_Branch Relation Snew1Julie Lee28 Malvern St,KilburnAssistant 9000Snew1Yupin New2 Ngamvongvan,BKKSnr Mgr 22000B3163 Main St,Glasgow02-255-8128 B816 Lake Show02-221-8128NULL B816 Lake Show02-221-8128 Slide 6 Staff_NoSNameSAddressPositionSalaryBranch_NoBAddressTel_No SL21John White19 Taylor St, LondonManager30000B522 Dear Rd,London02-704-8109 SG37Ann Beech81 George St, GlasgowSnr Asst12000B3163 Main St,Glasgow02-953-8018 SG14David Ford63 Ashby St, GlasgowDeputy18000B3163 Main St,Glasgow02-255-8128 Staff_Branch Relation SG5Susan Brand5 Gt Western Rd, GlasManager24000B3163 Main St,Glasgow02-987-1234 SL41Julie Lee28 Malvern St,KilburnAssistant 9000B522 Dear Rd,London02-342-5616 SA9Mary Howe2 Elm Pl, AberdeenAssistant 9000B716 Argyll St, Aberde02-775-4995 Delete Anomalies Slide 7 Staff_NoSNameSAddressPositionSalaryBranch_NoBAddressTel_No SL21John White19 Taylor St, LondonManager30000B522 Dear Rd,London02-704-8109 SG37Ann Beech81 George St, GlasgowSnr Asst12000B3163 Main St,Glasgow02-953-8018 SG14David Ford63 Ashby St, GlasgowDeputy18000B3163 Main St,Glasgow02-255-8128 SA9Mary Howe2 Elm Pl, AberdeenAssistant 9000B716 Argyll St, Aberde02-775-4995 SG5Susan Brand5 Gt Western Rd, GlasManager24000B3163 Main St,Glasgow02-987-1234 SL41Julie Lee28 Malvern St,KilburnAssistant 9000B522 Dear Rd,London02-342-5616 Staff_Branch Relation Modification Anomalies Slide 8 Functional Dependencies One of the main concepts associated with normalization is functional dependency, which describes the relationship between attributes. (Definition of Functional Dependency) B A ( A ) B A (denoted A B) A (determine) B 1 ( A B ) B A A B B A Slide 9 Functional Dependencies attribute candidate key ( candidate key) r holds on R t 1 [ ] = t 2 [ ] t 1 [ ] = t 2 [ ] Given a relation R, attribute y of R is dependent on attribute x of R if and only if whenever two tuples of R agree on their x-value, they must necessarily agree on their y-value. Slide 10 A B B is functionally dependent on A When a functional dependency exists, the attribute or group Of attributes on the left-hand side of the arrow is called the determinant. Staff_NoPosition Position is functionally dependent on Staff_No SL21 System Engineer Position Staff_No Staff_No is not functionally dependent on Position System Engineer SL21 SG5 Slide 11 Staff_No SName, Saddress, Position, Salary, Branch_No Branch_No BAddress, Tel_No BAddress Branch_No Slide 12 Normalization is a formal method involved with a series of test to help database designer to be able to identify the optimal grouping of attributes for each relation in the relational schema. Unnormalized Form 1 st Normal Form 2 nd Normal Form 3 rd Normal Form Boyce-Codd Normal Form Normalization can be applied to individual relations so that database can be normalized to a specific form to prevent the possible occurrence of update anomaly. The process of normalization is a formal method that identifies relations based on primary key (or candidate keys in the case of BCNF the functional dependencies among their attributes. Slide 13 Relationships of Normal Forms Higher Normal forms Slide 14 Slide 15 Case Study The DreamHome company manages property on behalf of the owners, and as part of this service, the company takes care of the propertys rental. To simplify this example, we assume that a customer rents a given property only once, and cannot rent more than one property at any one time. Unnormalized form (UNF) : A table that contains one or more repeating groups. A repeating group is an attribute or group of attributes within a table that occurs with multiple values for a single occurrence of the key attribute (s) for that table. The term key refers to the attribute (s) That uniquely identify each row within the unnormalized table. Custome_NoCNameProperty_NoPAddressRentRentStartRentFinishOwner_NoOName CR76John KayPG4 PG16 6 Lawrence St, 5 Norwar Dr 350 450 1-Jul-94 1-Sep-96 31-Aug-96 1-Sep-98 CO40 CO93 Tina Murphy Tony Shaw CR56Aline Stewart PG4 PG36 PG16 6 Lawrence St, 2 Manor Rd, 5 Norwar Dr 350 375 450 1-Sep-92 10-Oct-94 1-Jan-96 10-Jan-94 1-Dec-95 10-Aug-96 CO40 CO93 Tina Murphy Tony Shaw Customer_Rental Relation Slide 16 First normal form (1NF) : A relation in which the intersection of each row and column contains one and only one value. For the relational data model, it is important to recognize that it is only first normal form(1NF) that is critical in creating appropriate relations. All the subsequent normal forms are optional. However, to avoid the update anomalies, it is recommended that we proceed to at least 3NF. Custome_NoProperty_NoCNamePAddressRentRentStartRentFinishOwner_NoOName CR76PG4John Kay6 Lawrence St,3501-jul-9431-Aug-96CO40Tina Murphy CR76PG16John Kay5 Norwar Dr4501-Sep-98 CO93Tony Shaw CR56PG4Aline Stew6 Lawrence St,35010-Jun-94 CO40Tina Murphy CR56PG36Aline Stew2 Manor Rd,3751-Dec-95 CO93Tony Shaw CR56PG16Aline Stew5 Norwar Dr45010-Aug-96 CO93Tony Shaw Customer_Rental Relation Slide 17 Set of the Functional Dependency of Customer_Rental relation fd1Customer_No, Property_No RentStart, RentFinish (Primary key) fd2Customer_No CName (Partial dependency) fd3Property_No PAddress, Rent, Owner_No, OName (Partial dependency) fd4Owner_No OName (Transitive dependency) fd5Customer_No, RentStart Property_No, PAddress, RentFinish, Rent, Owner, OName (Candidate key) fd6Property_No, RentStart Customer_No, CName, RentFinish (Candidate key) Slide 18 Customer_NoProperty_NoCNameRentFinishRentPAddressOwner_NoRentStart OName (Primary key) (Partial dependency) (Transitive dependency) (Candidate key) fd1 fd2 fd3 fd5 fd6 Slide 19 A relation that is in the first normal form and every non-primary key attribute is fully functionally dependent on the primary key. Second Normal Form (2NF) : Full functional : Indicates that if A and B are attributes of a relation, B is fully functionally dependent dependency on A if B is functionally dependent on A, but not on any proper subset of A. B Non-Key attribute B partial dependence on A. Partial dependency Non-Key attribute fully dependent on Customer_NoProperty_NoCNameRentFinishRentPAddressOwner_NoRentStart (Primary key) (Partial dependency) fd1 fd2 fd3 OName Slide 20 2NF applies to relations with composite keys, that is, relations with a primary key composed of two or more attributes. A relation with a single attribute primary key is automatically in at least 2NF. Customer (Customer_No, CName) Customer_NoCName CR76John Kay CR56Aline Stewart Customer_NoProperty_NoRentStartRentFinish CR76PG141-Jul-9431-Aug-96 CR766PG161-Sep-961-Sep-98 CR56PG41-Sep-9210-Jun-94 CR56PG3610-Oct-941-Dec-95 CR56PG161-Jan-9610-Aug-96 Customer Relation Rental Relation Property_NoPAddressRentOwner_NoOName PG14 6 Lawrence St, 350CO40Tina Murphy PG165 Norwar Dr450CO93Tony Shaw PG36 2 Manor Rd, 375CO93Tony Shaw Property-Owner Relation Rental (Customer_No, Property_No, RentStart, RentFinish) Property_Owner (Property_No, PAddress, Rent, Owner_No, OName) Slide 21 Transitive dependency Property_NoPAddressRentOwner_NoOName PG14 6 Lawrence St, 350CO40Tina Murphy PG165 Norwar Dr450CO93Tony Shaw PG36 2 Manor Rd, 375CO93Tony Shaw Property-Owner Relation Customer (Customer_No, CName) Rental (Customer_No, Property_No, RentStart, RentFinish) Property_Owner (Property_No, PAddress, Rent, Owner_No, OName) Transitive dependency Customer_NoCName CR76John Kay CR56Aline Stewart Customer_NoProperty_NoRentStartRentFinish CR76PG141-Jul-9431-Aug-96 CR766PG161-Sep-961-Sep-98 CR56PG41-Sep-9210-Jun-94 CR56PG3610-Oct-941-Dec-95 CR56PG161-Jan-9610-Aug-96 Customer Relation Rental Relation Slide 22 Transitive dependency : A condition where A, B, and C are attributes of a relation such that if A B and B C, then C is transitively dependent on A via B (provided that A is not functionally dependent on B or C). Definition of Third Normal Form: A relation that is in first and second normal form, and in which no non-primary key attribute is transitively dependent on the primary key. Property_NoPAddressRentOwner_No PG14 6 Lawrence St, 350CO40 PG165 Norwar Dr450CO93 PG36 2 Manor Rd, 375CO93 Property-for-Rent Relation Customer (Customer_No, CName) Rental (Customer_No, Property_No, RentStart, RentFinish) Property_Owner (Property_No, PAddress, Rent, Owner_No, OName) Owner_NoOName C040Tina Murphy Co93Tony Shaw Owner Relation Slide 23 Custome_NoProperty_NoCNamePAddressRentRentStartRentFinishOwner_NoOName CR76PG4John Kay6 Lawrence St,3501-jul-9431-Aug-96CO40Tina Murphy CR76PG16John Kay5 Norwar Dr4501-Sep-98 CO93Tony Shaw CR56PG4Aline Stew6 Lawrence St,35010-Jun-94 CO40Tina Murphy CR56PG36Aline Stew2 Manor Rd,3751-Dec-95 CO93Tony Shaw CR56PG16Aline Stew5 Norwar Dr45010-Aug-96 CO93Tony Shaw Customer_Rental Relation Customer (Customer_No, CName) Rental (Customer_No, Property_No, RentStart, RentFinish) Property (Property_No, PAddress, Rent, Owner_No) Owner (Owner_No, Oname) Slide 24 Customer_NoCName CR76John Kay CR56Aline Stewart Customer_NoProperty_NoRentStartRentFinish CR76PG141-Jul-9431-Aug-96 CR766PG161-Sep-961-Sep-98 CR56PG41-Sep-9210-Jun-94 CR56PG3610-Oct-941-Dec-95 CR56PG161-Jan-9610-Aug-96 Customer Relation Rental Relation Property_NoPAddressRentOwner_No PG14 6 Lawrence St, 350CO40 PG165 Norwar Dr450CO93 PG36 2 Manor Rd, 375CO93 Property-Owner Relation Owner_NoOName CO40Tina Murphy CO93Tony Shaw Owner Relation Customer_Rental CustomerRental Property_Owner Property_for_RentOwner 1NF 2NF 3NF Slide 25 From 3NF to Boyce-Codd Normal Form (BCNF) The difference between 3NF and BCNF is that for a functional dependency A B, 3NF allows this dependency in a relation if B is a primary-key attribute and A is not a candidate key. Whereas, BCNF insists that for this dependency to remain in a relation, A must be a candidate key. Therefore, BCNF is a stronger form of 3NF, such every relation in BCNF is also in 3NF. BCNF is based on functional dependencies that take into account all candidate keys in a relation. For a relation with only one candidate key, 3NF and BCNF are equivalent. Boyce-Codd : A relation is in BCNF if and only if every determinant is normal form (BCNF) a candidate key. Violation of BCNF is quite rare, since it may only happen under specific conditions. The potential to violate BCNF may occur in relation that contains two (or more) composite candidate keys and which overlap, that is share at least one attribute in common Slide 26 Case Study In this example, Client_Interview relation is presented. It contains details of the arrangements for interviews of clients by members of staff of the DreamHome company. The members of staff involved in interviewing clients are allocated to a specific room on the day of interview. However, a room may be allocated to several members of staff as required throughout a working day. A client is only interviewed once on a given date, but may be requested to attend further interviews at later dates. This relation has three candidate keys: (Client_No, Interview_Date), (Staff_No, Interview_Date, Interview_Time), and (Room_No, Interview_Date, Interview_Time). Therefore the Client_Interview relation has three composite candidate keys, which overlap by sharing the common attribute Interview_Date. We select Client_No, Interview_Date) to act as the primary key for this relation. Slide 27 Fd1 Client_No, Interview_Date Interview_Time, Staff_No, Room_No (Primary key) Fd2 Staff_No, Interview_Date, Interview_Time Client_No (Candidate key) Fd3 Room_No, Interview_Date, Interview_Time Staff_No, Client_No (Candidate key) Fd4 Staff_No, Interview_Date Room_No Client_Interview (Client_No, Inverview_Date, Interview_Time, Staff_No, Room_No) The Client_Interview relation has the following functional dependencies : Client_NoInterview_DateInterview_TimeStaff_NoRoom_No CR7613-May-9810:30SG5G101 CR5613-May-9812:00SG5G101 CR7413-May-9812:00SG37G102 CR561-Jul-9810:30SG5G102 Client_Interview Relation Slide 28 Client_NoInterview_DateInterview_TimeStaff_No CR7613-May-9810:30SG5 CR5613-May-9812:00SG5 CR7413-May-9812:00SG37 CR561-Jul-9810:30SG5 Interview Relation Staff_NoInterview_DateRoom_No SG513-May-98G101 SG3713-May-98G102 SG51-Jul-98G102 Staff_Room Relation Interview (Client_No, Interview-Date, Interview_Time, Staff_No) Staff_Room (Staff_No, Interview-Date, Room_No) Slide 29 Review of Normalization (1NF to BCNF) The DreamHome company manages property on behalf of the owners, and as part of this service the company undertakes regular inspections of the property by members of staff. When staff are required to undertake these inspections, they are allocated a company car for use on the day of the inspections. However, a car may be allocated to several members of staff, as required throughout the working day. A member of staff may inspect several properties on a given date, but a property is only inspected once on a given date. Property_NoPAddressIDateITimeCommentsStaff_NoSNameCar_Reg PG46 Lawrence St,18-Oct-96 22-Apr-97 1-Oct-98 10:00 09:00 12:00 Need to replace crockery In good order Damp rot in bathroom SG37 SG14 Ann Beech David Ford M2...</p>