1 / 54

Normal forms

Normal forms. ทฤษฎีของการทำ Normalization เป็นเรื่องเกี่ยวกับการพิจารณาว่า relation ที่กำหนดให้ อยู่ในรูปแบบ Normal form ใด คือ มีความถูกต้องตรงกับกฎเกณฑ์ข้อบังคับ หรือเงื่อนไขบางอย่างที่กำหนดไว้. Universe of Relations (normalized and unnormalized). 1 NF relations (normalized relations).

jmcdowell
Télécharger la présentation

Normal forms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Normal forms ทฤษฎีของการทำ Normalization เป็นเรื่องเกี่ยวกับการพิจารณาว่า relation ที่กำหนดให้ อยู่ในรูปแบบ Normal form ใด คือ มีความถูกต้องตรงกับกฎเกณฑ์ข้อบังคับ หรือเงื่อนไขบางอย่างที่กำหนดไว้ Universe of Relations (normalized and unnormalized) 1 NF relations (normalized relations) 2 NF relations 3 NF relations BCNF relations 4NF relations PJ/NF (5 NF) relations

  2. Further Normalization การทำ Normalization เป็นหลักสำคัญของการทำ Database design ซึ่งเรียก ว่า Logical database design ส่วนของ Physical database design เกี่ยวกับ Internal level เช่น จัดการเกี่ยวกับ File เพื่อให้ access เร็วที่สุด, I/O access น้อยที่สุด Normalization คือ วิธีการซึ่ง - บอกให้ทราบว่า relation นั้น มีปัญหาเกิดขึ้นหรือไม่ - ถ้ามีปัญหาเกิดขึ้น จะขจัดปัญหานั้นออกอย่างไร คือ เครื่องมือ (Tool) ที่ช่วยให้ design database ในลักษณะเป็น Conceptual Schema design ได้โดยที่มีปัญหาน้อยที่สุด หรืออาจไม่มีเลย

  3. Functional dependency (FD) “Functional dependence”หรือ “Functional dependency” Relation R มี attribute x, y attribute y เป็น “Functional dependence”กับ attribute x เขียนเป็นสัญลักษณ์ R.x --> R.y หรือ x  y เรียกว่า y functional dependent on x (y ขึ้นกับx อย่างfunction หรือ x functional determines y (x เป็นตัวกำหนด y) ก็ต่อเมื่อ แต่ละค่าของ x ใน R จะมีค่า y ของ R ที่สอดคล้องกับ x เพียงค่าเดียวเท่านั้น (attribute x,y อาจเป็น Composite attribute)

  4. DEPARTMENT PROJECTS PARTS JOBS PART-USE

  5. นิยาม A relation R is in first normal form (1 NF) if and only if All underlying domains contain atomic values only Relation ใดๆ อยู่ใน 1 NF ก็ต่อเมื่อ Simple domains ทั้งหมดมีแต่ Atomic Values (ไม่มี repeating group)

  6. S# STATUS CITY P# QTY S1 20 London P1 300 P2 200 P3 400 P4 200 P5 100 P6 100 S2 10 Paris P1 300 P2 400 S3 10 Paris P2 200 S4 20 London P2 200 P4 300 P5 400 Unnormalized

  7. S# STATUS CITY P# QTY S1 20 London P1 300 S1 20 London P2 200 S1 20 London P3 400 S1 20 London P4 200 S1 20 London P5 100 S1 20 London P6 100 S2 10 Paris P1 300 S2 10 Paris P2 400 S3 10 Paris P2 200 S4 20 London P2 200 S4 20 London P4 300 S4 20 London P5 400 Normalized (1 NF)

  8. S# STATUS QTY P# CITY FD diagram in relation FIRST S# P# STATUS CITY QTY

  9. นิยาม Relation ใดๆ อยู่ใน 2 NF ก็ต่อเมื่อ Relation นั้นอยู่ใน 1 NF และทุกๆ Nonkey attribute นั้น Fully FD กับ Primary key จาก FIRST  SECOND (S#,STATUS,CITY) SP (S#,P#,QTY) STATUS S# S# QTY CITY P# FD in the relation SECOND and SP

  10. SECOND SP

  11. นิยาม Relation ใดๆ อยู่ใน 3 NF ก็ต่อเมื่อ Relation นั้นอยู่ใน 2 NF และทุกๆ Nonkey attribute นั้น ต้องไม่มี transitive กับ Primary key SECOND (S#,STATUS,CITY)  SC (S#,CITY) CS (CITY,STATUS) CITY STATUS S# CITY FD in the relation SC and CS SC CS

  12. นิยาม Relation ใดๆ อยู่ใน 3 NF ก็ต่อเมื่อ Nonkey attribute มีคุณสมบัติ 2 ข้อ ดังนี้ 1. Mutually independent 2. Fully dependent on the primary key Nonkey attributeคือ attributeใดๆ ที่ไม่ใช่ส่วนหนึ่งส่วนใดของ primary key ใน relation Mutually independentคือ attribute ตั้งแต่ 2 attributesขึ้นไป ไม่มี FD กับ attribute อื่นใดเลย คือ Nonkeyทั้งหมดจะต้องเป็นอิสระต่อกันอย่างเด็ดขาดไม่เกี่ยวข้องกัน PNAME SNAME COLOR S# P# S# ADDRESS QTY WEIGHT P# STATUS CITY

  13. ORDER-NO ORDER-NO ORDER-DATE ORDER-DATE PART-NO ORDER-LINE QTY-ORDERED Ord1 Ord2 6 June 1996 3 May 1996 Ord1 Ord1 Ord2 Ord2 Ord2 6 June 1996 6 June 1996 3 May 1996 3 May 1996 3 May 1996 P1 P6 P5 P6 P2 10 30 10 50 30 PART-NO QTY-ORDERED P1 10 P6 30 PART-NO QTY-ORDERED P5 10 P6 50 P2 20 ORDERS ORDERS

  14. ORDER-NO ORDER-DATE Ord1 Ord2 6 June 1996 3 May 1996 ORDER-NO PART-NO QTY-ORDERED Ord1 Ord1 Ord2 Ord2 Ord2 P1 P6 P5 P6 P2 10 30 10 50 30 ORDERS ORDERS-CONTENTS ORDER-NO ORDER-DATE QTY-ORDERS PART-NO

  15. ORDER-NO QTY-ORDERED PART-NO ORDER-NO ORDER-DATE

  16. PROJECT-ID PERSON-ID MANAGER TIME-SPENT J1 J1 J2 J2 J2 J3 Vichi Joe Vichi Joe Brown Vichi 30 12 11 79 17 3 Proj1 Proj2 Proj1 Proj2 Proj3 Proj1 PROJECTS

  17. PROJECT-ID PROJECT-ID MANAGER PERSON-ID TIME-SPENT J1 J1 J2 J2 J2 J3 30 12 11 79 17 3 Vichi Joe Brown Proj1 Proj2 Proj3 Proj1 Proj2 Proj1 Proj2 Proj3 Proj1 WORK PROJECTS PROJECT-ID MANAGER TIME-SPENT PERSON-ID

  18. PROJECT-ID TIME-SPENT PERSON-ID PROJECT-ID MANAGER

  19. REGISTRATION OWNER MODEL MANUFACTOR NO-CYLINDER YX-01 YJ-77 YW-30 YJ-37 YJ-83 Laser Falcon Corolla Laser Corolla Ford Ford Toyota Ford Toyota 4 6 4 4 4 George Mary George Mary Andrew VEHICLES

  20. OWNER MODEL REGISTRATION-NO MANUFACTOR NO-CYLINDER

  21. OWNER MODEL REGISTRATION-NO MANUFACTOR MODEL NO-CYLINDERS MANUFACTOR

  22. REGISTRATION-NO MODEL MANUFACTOR OWNER NO-CYLINDER MODEL MANUFACTOR YX-01 YJ-77 YW-30 YJ-37 YJ-83 Laser Falcon Corolla Laser Corolla Ford Ford Toyota Ford Toyota Laser Falcon Corolla Ford Ford Toyota 4 6 4 George Mary George Mary Andrew REGISTRATION VEHICLES1

  23. LOAN-APPLICTION-NO APPLICANT APPLICANT-ADDRESS LOAN-TYPE 1 Jill Canberra Home 2 Joe Sydney Mortgage 3 Jill Canberra Personal 4 Max Melbourne Home 1. LOAN APPLICATION 1. Each Loan application has APPLICANT and is identified by unique value of LOAN-APPLICATION –NO 2.      Each Loan application-no has one LOAN-TYPE. 3.      Each Loan application-no has one APPLICANT-ADDRESS. 4.      An applicant can make many applications.

  24. CUSTOMER NAME INVOICE-NO CUSTOMER ADDRESS CUSTOMER SERVICE SERVICE COST SERVICE DATE Joe 6 Sydney Repair 120 June,1992 Joe 6 Sydney Course 320 July,1992 Jill 3 Canberra Repair 80 August,1992 Joe 6 Sydney Repair 150 October1992 2. CUSTOMER –INVOICES Rules for CUSTOMER –INVOICES:    1.  Each invoice is to one customer and is identified by a unique value of INVOIC-NO  2. A number of CUSTOMER –INVOICES can be included on one invoice. 3.    There is a separate SERVICE-COST for each CUSTOMER – INVOICES on an invoice.

  25. OPERATOR MACHNE DATE QTY-PARTS PRODUCTS TIME-SPENT ON-MACHNE Joe Mach 1 1 June 1992 15 10 Joe Mach 2 1 June 1992 20 12 Bill Mach 1 1 June 1992 12 6 Bill Mach 2 2 June 1992 20 14 4. MACHINE-USE Rules for MACHINE-USE: 1. A machine only bused one operator on a given date.  2. An operator can use any number of machines the one day. T3. TIME-SPEN-ON –MACHHINE is the time spent by an operator on the machine on given DATE, QTY-PARTS-PRODUCES is quantity of parts produced on that machine by the operator on the given date

  26. Boyce/Codd Normal form (BCNF) Relation ใดๆ อยู่ใน BCNF ก็ต่อเมื่อ ทุกๆ Determinant ที่มีอยู่ เป็น Candidate key ด้วย นิยาม S# STATUS CITY SNAME Relation S(S#,SNAME,STATUS,CITY) Candidate key มี S#, SNAME Determinant มี S#, SNAME STATUS, CITY นั้น Mutually independent กัน คือ FD S.CITY ----- S.STATUS

  27. Example 2 S# SNAME P# QTY Smith Smith Smith Smith P1 P2 P3 P4 300 200 400 200 S1 S1 S1 S1 relation SSP (S#,SNAME,P#,QTY) S# P# QTY SNAME

  28. Candidate key มี (S#,P#), (SNAME,P#) Determinant มี (S#,P#), (SNAME,P#), S#, SNAME การแก้ปัญหา คือ แยก SSP เป็น 2 projection SS (S#, SNAME) กับ SP (S#, P#, QTY) หรือ SS (S#, SNAME) กับ SP (SNAME,P#, QTY)

  29. Example 3 S J T Smith Smith Jones Jones Math Physics Math Physics Prof.White Prof.Green Prof.White Prof.Brown relation SJT (S,J,T) S = Student, J = Subject, T = Teacher วิชาใดๆ แต่ละ Student จะถูกสอนโดย Teacher เพียงคนเดียว (S,J) ---- T แต่ละ Teacher นั้นจะสอนได้เพียง Subject เดียว (แต่ Subject หนึ่ง อาจสอนโดยหลายๆ Teacher ได้) T --- J

  30. S T J Candidate key มี (S,J), (S,T) Determinant มี (S,J), (S,T), T แก้ปัญหาโดย ST(S,T) และ TJ(T,J) ST มี Candidate key คือ (S,T) ไม่มี determinant TJ มี Candidate key คือ T determinant คือ T

  31. Example 4 relation EXAM(S,J,P) S = Student, J = Subject, P = Position ความหมายของ Exam tuple (S,J,P) คือ Student S สอบ Subject J และได้ Position P ใน class ข้อบังคับ - ไม่มีโอกาสที่ 2 student จะได้ Position เดียวกัน ใน Subject เดียวกัน S J P S J P Candidate key มี (S,J), (J,P) Determinant มี (S,J), (J,P)

  32. นิยาม ของ MVD (Multi Value dependency) Relation R ใดๆ ที่มี Attribute A, B, C (อาจเป็น Composite attribute) แล้วมี MVD R.A -> R.B เกิดขึ้น ก็ต่อเมื่อ Set ของค่า B จะขึ้นกับค่า A เท่านั้น และเป็นอิสระกับค่า C (R.A - R.B อ่านว่า R.B “Multi dependent” กับ R.Aหรือ R.A “Multi determine” กับ R.B ทุกๆครั้งที่ relation R ใดๆ R(A,B,C) มี MVD R.A --> R.B สรุปได้ว่า มี MVD R.A ---> R.C ด้วย เพราะ B, C เป็นอิสระต่อกัน เขียนแทนด้วย R.A ---> R.B / R.C MVD เป็น general case (กรณีทั่วไป) ของ FD FD เป็น special case (กรณีทั่วไป) ของ MVD

  33. นิยามของ 4 NF Relation R อยู่ใน 4 NF ก็ต่อเมื่อ เมื่อไรก็ตามที่มี MVD ใน R เช่น A ---> B แล้ว ทุกๆ attribute ของ R มี FD กับ A ด้วย นั่นคือ ถ้ามี MVD A ---> B แล้ว MVD นั้นเป็น FD A -- B ด้วย หรือ ถ้า R อยู่ใน 4 NF แล้ว R นั้นอยู่ใน BCNF และทุกๆ MVD ใน R จริงๆ เป็น FD

  34. COURSE TEACHER TEXT Physics Maths Prof.Gran Prof.Brown Prof.Gran Basic mechanics Principles of optics Basic mechanics Vector analysis Trigonometry Example CTX มี 2 MVD 1. CTX.COURSE ----- CTX.TEACHER 2. CTX.COURSE --- CTX.TEXT

  35. COURSE COURSE COURSE TEACHER TEACHER TEXT TEXT Physics Physics Physics Physics Math Math Math Prof.Gran Prof.Gran Prof.Brown Prof.Brown Prof.Gran Prof.Gran Prof.Gran Basic mechanics Principles of optics Basic mechanics Vector analysis Trigonometry Prof.Gran Prof.Brown Prof.White Basic mechanics Principles of optics Basic mechanics Principles of optics Basic mechanics Vector analysis Trigonometry Physics Physics Math Physics Physics Math Math Math CTX แยกเป็น 2 relation ย่อย(Projection) CT(COURSE,TEACHER) และ CX(COURSE,TEXT) CT CX

  36. นิยาม 5 NF Relation R อยู่ใน 5 NF หรือ “Projection-join normal form” (PJ/NF) ก็ต่อเมื่อ ทุกๆ JD ที่มีอยู่ใน R เป็นผลสืบเนื่องมาจาก หรือ เป็นผลสรุปมาจาก (consequence / imply) Candidate key ของ R Relation R ใดๆ มีคุณสมบัติ “Join dependency” (JD) * (X,Y,….,Z) ก็ต่อเมื่อ R = join ของ Projection X,Y,…,Z โดยที่ X,Y,…,Z คือ subset ใดๆของ set ของ attribute ของ R

  37. Example 1 Relation S (S#,SNAME,STATUS,CITY) Candidate key มี 2 ตัว : S#, SNAME • Relation นี้มี 2 JD • * ((S#,SNAME,STATUS), (S#,STATUS)) • S = Join ของ (S#,SNAME,STATUS) กับ (S#,CITY) ด้วย S# • JD เป็น consequence จาก S# ซึ่งเป็น Candidate key • 2. * ((S#,SNAME), (S#,STATUS), (SNAME,CITY)) (S#,SNAME) (S#,STATUS) Join over S# (S#,SNAME,STATUS) (SNAME,CITY) Join Over SNAME มี JD ทั้งหมด 2 ตัว และ JD ทั้งสองเป็น consequence ของ Candidate key ดังนั้น S อยู่ใน 5 NF

  38. S P J S1 S1 S2 S1 P1 P2 P1 P1 J2 J1 J1 J1 Example 2 Relation SPJ (S#,P#,J#) หมายถึง Supplier คนหนึ่ง ส่ง Part หนึ่งไปใช้ใน Project หนึ่ง Relation SPJ เป็น All key และไม่มี FD หรือ MVD --- 4 NF แยกได้ 3 projections SP, PJ, JS SP(S#,P#), PJ(P#,J#), JS(J#,S#) Join ของ SP กับ PJ ด้วย P# ได้ SPJ เดิม กับอีก 1 tuple เพิ่มมา และเมื่อ join กับ JS ด้วย (J#,S#) จะได้ SPJ ดังเดิม

  39. S# J# P# S P J# P# S# J S1 S1 S1 S2 S2 P1 P1 P2 P1 P1 P1 P2 P1 S1 S1 S2 J2 J1 J1 J2 J1 J1 J2 J1 S1 S1 S2 J2 J1 J1 P1 P2 P1 SP PJ SPJ JS Join Over P# Join Over(J#,S#) Original SPJ

  40. ตัวอย่างของการทำ Normalize Order-Entry System ประกอบด้วยข้อมูลเกี่ยวกับ Customers, Item และ orders

  41. CUSTOMER – Customer number (unique) - Ship to address (several per customer) - Balance - Credit Limit - Discount ORDER - Order number (unique) - Customer number - Ship to address - Date of order - Detail lines (several per customer) - item number - quantity ordered - quantity out ITEM - Item number (unique) - Manufacturing plants - Quantity on hand at each plant - Stock danger level for each plant - Item description

  42. BAL ADDRESS CUST CREDLIM DISCOUNT QTYORD ORD# DATE LINE# QTYOUT ITEM# DESCN QTYOH PLANT# DANGER FD diagram

  43. CUST (CUST#, BAL,CREDIT,DISCOUNT) SHIPTO (ADDRESS, CUST#) ORDHEAD (ORD#, ADDRESS, DATE) ORDLINE (ORD#,LINE#, ITEM#, QTYORD, QTYOUT) ITEM (ITEM#, DESCN) IP (ITEM#,PLANT#, QTYOH, DANGER)

  44. Department Employee Project Office Phone Job Salary History

  45. The Company ประกอบด้วยหลายๆแผนก (department) • แต่ละแผนก (department) ประกอบด้วยกลุ่มพนักงาน (employee) • กลุ่มของ Project และกลุ่มของ office • แต่ละ employee มีประวัติการทำงานที่ผ่านมา (job history) และแต่ละ job • มีเงินเดือน(salary) ที่เคยได้รับมา • - แต่ละ office ประกอบด้วยกลุ่มของโทรศัพท์ (phone) Department ประกอบด้วย department number(unique), งบประมาณ (budget) และ manager (unique) Employee ประกอบด้วย employee number (unique), current project number, office number, phone number, แต่ละ job ในอดีตที่เคยทำ (plus date and salary) Project ประกอบด้วย project number (unique), budget Office ประกอบด้วย office number (unique), area in square feet และ number (unique) of all phones in that office

  46. DBUDGET AREA DEP# MGR# OFF# PHONE# PROJ# PBUDGET EMP# DATE SALARY JOBTITLE FD diagram

  47. DEPARTMENT (DEPT#, DBUDGET,MGR#) EMPLOYEE (EMP#,DEP# PROJ#,PHONE#) SALHIST (EMP#,DATE, JOBTITLE, SALARY) PROJECT (PROJ#, DEPT#, PBUDGET) OFFICE (OFF#, DEPT#, AREA) PHONE (PHONE#, OFF#)

More Related