SlideShare a Scribd company logo
1 of 36
Download to read offline
1




                 บทที่ 5
            นอร์ มัลไลเซชัน
          NORMALIZATION




วิชา   ฐานข้ อมูลเบืองต้ น โดย อ.แพรตะวัน จารุตน (ปรับปรุง)
                    ้                          ั
หัวข้ อการบรรยาย
2


     ความหมายและจุดประสงค์ ของการนอร์ มัลไลเซชั่น
     ฟั งก์ ชันการขึนต่ อกัน (Function Dependencies)
                     ้
     กระบวนการนอร์ มัลไลเซชั่ น
ความหมายและจุดประสงค์ ของการนอร์ มัลไลเซชั่น
3


       นอร์มลไลเซชัน เป็ นทฤษฎีที่ผออกแบบฐานข้อมูลจะต้องนามาใช้ใน
             ั      ่               ู้
        การแปลงข้อมูลที่อยูในรู ปแบบที่ซบซ้อน ให้อยูในรู ปแบบที่ง่ายต่อการ
                           ่            ั           ่
        นาไปใช้งานและก่อให้เกิดปัญหาน้อยที่สุด

       ในบทนี้จะสอนกระบวนการนอร์มลไลเซชัน ใน 3 ระดับด้วยกันคือ
                                           ั
         นอร์ มลไลชันระดับที่ 1 หรื อเรี ยกว่า 1NF
                ั     ่
         นอร์ มลไลชันระดับที่ 2 หรื อเรี ยกว่า 2NF
                  ั     ่
         นอร์ มลไลชันระดับที่ 3 หรื อเรี ยกว่า 3NF
                    ั     ่
วิเคราะห์ความ
    ต้องการของผูใช้
                ้           E-R Diagram

                      รีเลชั่นทีมรูปแบบไม่ เป็ นบรรทัดฐาน
                                ่ ี
                             (Unnormalized relation)

                                    1 NF
                                    2 NF
                                                            กระบวนการปรับ
                                    3 NF                      บรรทัดฐาน
                                                            (Normalization)

                                บอยด์ คอดด์
                                    4 NF

                         รีเลชั่นทีเ่ ป็ นแบบบรรทัดฐาน
4                            (Normalized relation)
วัตถุประสงค์ ของนอร์ มัลไลซ์ (Normalization)
5


       ลดความซ้ าซ้อนของข้อมูล เมื่อลดความซ้ าซ้อนก็ทาให้ลดเนื้อหาที่ใช้
        ในการจัดเก็บข้อมูล
       ลดปัญหาความไม่ถูกต้องของข้อมูล เมื่อข้อมูลไม่เกิดความซ้ าซ้อนทา
        ให้การปรับปรุ งข้อมูลสามารถทาได้จากแหล่งข้อมูลเพียงแหล่งเดียว
       ลดความผิดพลาดที่อาจเกิดจากการปรับปรุ งข้อมูล (update anomalies)
        ซึ่งประกอบด้วย
ความซ้าซ้ อนและข้ อผิดพลาดจากการปรับปรุงข้ อมูล
6


       แนวคิดหลักอันสาคัญของการออกแบบฐานข้อมูลเชิงสัมพันธ์ คือ การออกแบบ
        ให้มีการเก็บข้อมูลซ้ าซ้อนน้อยที่สุด
         เพื่อประหยัดเนื้ อที่ในการเก็บข้อมูลและลดปั ญหาที่จะเกิดดังตัวอย่างต่อไปนี้
ตัวอย่ างการออกแบบฐานข้ อมูลทีดี
                                                                  ่
Employee (พนักงาน)                                                          Branch (สาขา)
รหัสพนักงาน          ชื่อ-สกุล         ตาแหน่ ง     เงินเดือน รหัสสาขา       รหัสสาขา           ทีอยู่
                                                                                                  ่
    SG21           ชูชาติ สุ ขศรี      ผูจดการ
                                         ้ั           30000     B005           B005          เชียงใหม่
     SG37         ศิริ ดวงเด่น          ผูช่วย
                                          ้          20000      B003            B003         กรุ งเทพ
     SG14         ดวงใจ มีสุข เลขานุการ              20000      B003            B007         พิษณุโลก
     SG09      อัจฉรา เขียวแก้ว ผูจดการ
                                  ้ั                 30000      B007

            ตัวอย่ างการออกแบบฐานข้ อมูลทีจะมีปัญหาของความซ้าซ้ อนตามมา
                                          ่
    Employee_Branch (รวมรายละเอียดของพนักงานไว้ ด้วยกันกับรายละเอียดของสาขา)
       รหัสพนักงาน             ชื่อ-สกุล          ตาแหน่ ง    เงินเดือน รหัสสาขา          ทีอยู่
                                                                                            ่
           SG21              ชูชาติ สุ ขศรี       ผูจดการ
                                                    ้ั          30000     B005         เชียงใหม่
            SG37              ศิริ ดวงเด่น         ผูช่วย
                                                     ้         20000     B003          กรุ งเทพ
            SG14              ดวงใจ มีสุข         เลขานุการ    20000     B003          กรุ งเทพ
7
            SG09           อัจฉรา เขียวแก้ว        ผูจดการ
                                                     ้ั        30000     B007          พิษณุโลก
ตัวอย่ างปัญหาความซ้าซ้ อนในข้ อมูล รีเลชั่น EMPLOYEE_BRANCE

    รหัสพนักงาน      ชื่อ-สกุล          ตาแหน่ ง   เงินเดือน รหัสสาขา      ทีอยู่
                                                                             ่
        SG21       ชูชาติ สุ ขศรี   ผูจดการ
                                      ้ั             30000     B005     เชียงใหม่
       SG37         ศิริ ดวงเด่น    ผูช่วย
                                      ้             20000     B003      กรุ งเทพ
       SG14         ดวงใจ มีสุข     เลขานุการ       20000     B003      กรุ งเทพ
       SG09       อัจฉรา เขียวแก้ว ผูจดการ
                                     ้ั             30000     B007      พิษณุโลก




     ความผิดพลาดจากการเพิม  ่
     oถ้ าต้ องการเพิมพนักงานใหม่ ทีอยู่สาขา B005
                     ่              ่
     oจะต้ องกรอก B005 และทีอยู่สาขา คือ เชียงใหม่ เพิมอีก
                              ่                       ่

8
ตัวอย่ างปัญหาความซ้าซ้ อนในข้ อมูล รีเลชั่น EMPLOYEE_BRANCE

      รหัสพนักงาน       ชื่อ-สกุล          ตาแหน่ ง   เงินเดือน รหัสสาขา      ทีอยู่
                                                                                ่
          SG21        ชูชาติ สุ ขศรี   ผูจดการ
                                         ้ั             30000     B005     เชียงใหม่
         SG37          ศิริ ดวงเด่น    ผูช่วย
                                         ้             20000     B003      กรุ งเทพ
         SG14          ดวงใจ มีสุข เลขานุการ           20000     B003      กรุ งเทพ
         SG09       อัจฉรา เขียวแก้ว ผูจดการ
                                       ้ั              30000     B007      พิษณุโลก

    ความผิดพลาดจากการเพิม        ่
    ถ้ าต้ องการเพิมสาขา จะมีปัญหาคือ ตารางนีมท้งข้ อมูลพนักงานและข้ อมูล
                        ่                        ้ ี ั
    สาขาอยู่รวมกัน
    หากจะเพิมเฉพาะ รหัสสาขา และ ทีอยู่ ก็ไม่ ได้ เพราะ รหัสพนักงาน จะมีค่า
                    ่                     ่
    ว่ างไม่ ได้ เพราะเป็ น Primary Key ของตาราง
    ดังนั้นจะบันทึกได้ กต่อเมื่อมีพนักงานแล้ว
                               ็

9
ความผิดพลาดจากการลบข้ อมูล
  ถ้ าลบข้ อมูลหนึ่งแล้ วส่ งผลกระทบกับข้ อมูลอืน ที่ต้องถูกลบตาม
                                                 ่
10
      เช่ น พนักงานรหัส SG21 ลาออก ก็ลบแถวนั้นออก

      ข้ อมูลสาขา B005 ก็จะหายไปด้ วย



 ข้ อผิดพลาดจากการเปลียนแปลง
                      ่
  ในกรณีที่ต้องการเปลียนแปลงข้ อมูลบางตัวของสาขา
                        ่
      เช่ น เปลียนที่อยู่ของ B003 ก็ต้องเปลี่ยนหลายที่
                 ่
      ถ้ าหากมีพนักงานสั งกัดสาขานีหลายที่กต้องไปตามแก้ ทุก ๆ ที่
                                    ้       ็


     ดังนั้นเราควรแยกตาราง Employee_Brance ออกเป็ นสองตาราง คือ ตารางพนักงาน
     และตารางสาขา
พนักงาน
     รหัสพนักงาน       ชื่อ-สกุล      ตาแหน่ ง      เงินเดือน รหัสสาขา
         SG21        ชูชาติ สุ ขศรี   ผูจดการ
                                        ้ั            30000     B005
        SG37         ศิริ ดวงเด่น      ผูช่วย
                                         ้           20000     B003
        SG14         ดวงใจ มีสุข      เลขานุการ      20000     B003
        SG09       อัจฉรา เขียวแก้ว   ผูจดการ
                                        ้ั           30000     B007


                       สาขา
                          รหัสสาขา         ทีอยู่
                                              ่
                            B005        เชียงใหม่
                            B003         กรุ งเทพ
                            B007       พิษณุโลก
11
ฟังก์ ชั่นการขึนต่ อกัน (Functional Dependency : FD)
                        ้
12



      ถ้ าให้ X และ Y เป็ น Attribute ใน Relation ใดๆ แทนด้ วย
       R(X,Y) Attribute Y เป็ น จะถูกเรียกว่ ามีฟังก์ ชันการขึนต่ อ
                                                              ้
       กันกับแอททริบวต์ X ก็ต่อเมื่อ แต่ ละค่ าที่ไม่ ซากันของ
                       ิ                                 ้
       แอททริบวต์ X มีข้อมูลของ Y ที่เกี่ยวข้ องกับ X เพียง 1 ค่ า
                 ิ
      เขียนแทนด้ วย สัญลักษณ์       XY
ตัวอย่ าง
                  EmployeeNo         Name                Position
                     S01     ฉัตรชัย มีสมบัติ       Manager
                     S02     เอกชัย ใจดี            Manager Assistant
                      S03      มนีรัตน์ เจริญสุ ข   Manager
                      S04      ขวัญชัย ใจเพชร       Manager Assistant
                      S05      มานพ เกตุแก้ ว       Staff
                      S06      ดวงกมล ทิพย์ เทพ     Staff



                 EmployeeNo                                    Position


13
ตัวอย่ าง A) employeeNo           Position
               B) Position (not)       employeeNo
14


 A
              EmployeeNo                                         Position

             employeeNo S21                                 Manager



 B
                Position                                   EmployeeNo

                                                        employeeNo S21
          Manager

                                                        employeeNo S41

                      การขึนต่ อกัน ค่ า X จะต้ องกาหนดค่ า Y ได้ 1:1
                           ้
ชนิดของฟังก์ชั่นการขึนต่ อกัน ( Functional Dependency :FD)
                              ้
15

        1) Complete dependencies การขึนต่ อกันอย่ างสมบูรณ์
                                             ้
        แอททริ บิวต์ท่ีไม่ใช่คียหลัก ขึ้นต่อ แอททริ บิวต์หรื อกลุ่มของแอททริ บิวต์ที่
                                 ์
         เป็ นคียหลัก
                 ์
        ตัวอย่าง ตารางที่มีแอทริ บิวต์ค่าเดียวทาหน้าที่เป็ นคียหลัก คือ หมายเลขบัตร
                                                                ์
         ประชาชน
                       หมายเลขบัตรประชาชน      ชื่อเจ้ าของบัตร
                      3440100634931       กนกวรรณ พ่วงพงษ์
                      3437283420343       ชาติชาย เตชะวงศ์
                      2938742039485              กิ่งกาญ เดชาทรัพย์

                      หมายเลขบัตรประชาชน  ชื่อเจ้าของบัตร
ชนิดของฟังก์ชั่นการขึนต่ อกัน ( Functional Dependency :FD)
                               ้
16


      ตัวอย่าง ตารางที่มีแอทริบิวต์หลายตัวขึ้ นกับคียหลักตัวเดียว
                                                      ์

     หมายเลขบัตรประชาชน      ชื่อเจ้ าของบัตร         วันเกิด          วันที่ทาบัตร
        3440100634931   กนกวรรณ พ่วงพงษ์            27/03/2520         28/04/2553
        3437283420343   ชาติชาย เตชะวงศ์            23/06/2522         25/02/2553
        2938742039485   กิ่งกาญ เดชาทรัพย์          21/04/2525         19/0125/52


        หมายเลขบัตรประชาชน                      ชื่อเจ้าของบัตร,วันเกิด,วันที่ทาบัตร
ชนิดของฟังก์ชั่นการขึนต่ อกัน ( Functional Dependency :FD)
                                 ้
17


        ตัวอย่าง ตารางที่มีแอทริบิวหลายตัวรวมกันเป็ นคียหลัก คือ รหัสนักศึกษา รหัสวิชา
                                                         ์
              ตารางการลงทะเบียน
                  รหัสนักศึกษา            รหัสวิชา             เกรด
                   520014001               S001                  A
                   520014001               S002                  B
                   520014002               S001                  C
                   520014002               S002                  A

                           รหัสนักศึกษา,รหัสวิชา      เกรด
ชนิดของฟังก์ชั่นการขึนต่ อกัน ( Functional Dependency :FD)
                                ้
18

          2) Partial Dependency (การขึ้ นต่อกันบางส่ วน)
          เกิดขึ้นเมื่อคียหลักประกอบด้วยหลาย Attribute รวมกัน
                           ์
          เมื่อแอตทริ บิวต์บางส่ วนของคียหลัก สามารถไประบุค่าแอตทริ บิวต์ตวอื่น ๆ ที่
                                          ์                                ั
           ไม่ใช่คียหลักของรี เลชันได้
                     ์             ่



           รหัสนักศึกษา          รหัสวิชา                   เกรด               ชื่อวิชา
                                                    Partial Dependency


     รหัสนักศึกษา, รหัสวิชา                   เกรด , ชื่อวิชา
     รหัสวิชา                                 ชื่อวิชา
ตัวอย่ างฟังก์ ชั่นการขึนต่ อกันแบบ Partial
                                 ้

       รหัสนักศึกษา     รหัสวิชา    เกรด             ชื่อวิชา
     534267001        F01          A       การเขียนโปรแกรม
     534267001        F02          B       การออกแบบฐานข้ อมูล
     534267002        F01          D       การเขียนโปรแกรม
     534267002        F02          A       การออกแบบฐานข้ อมูล
     534267003        F01          A       การเขียนโปรแกรม
     534267003        F02          C       การออกแบบฐานข้ อมูล



19
ชนิดของฟังก์ ชั่นการขึนต่ อกัน (Functional Dependency : FD)
                            ้
20


         3 Transitive Dependency เกิดขึนเมื่อ Attribute ที่ไม่ ใช่ Primary Key ไป
                                              ้
          ขึนอยู่กบ Attribute อืนที่ไม่ ใช่ Primary Key ในรีเลชั่นนั้น ๆ
            ้     ั             ่
     เลขประจาตัว          ชื่อ สกุล         ที่อยู่             ตาแหน่ง     รถประจาตาแหน่ง
          01        ฉัตรชัย มีสมบัติ       กรุงเทพ      ผู้จดการ
                                                            ั                   BMW
          02        เอกชัย ใจดี            นนทบุรี      ผู้ช่วยผู้จดการ
                                                                   ั            Honda
          03        มนีรัตน์ เจริญสุ ข    เชียงใหม่     ผู้จดการ
                                                            ั                   BMW
          04        ขวัญชัย ใจเพชร         ราชบุรี      ผู้ช่วยผู้จดการ
                                                                   ั            Honda



               คาอธิบาย เลขประจาตัว เป็ นคีย์หลัก (Primary Key) ของตาราง
               เลขประจาตัว                     ชื่อสกุล, ทีอยู่, ตาแหน่ ง
                                                           ่
               ตาแหน่ ง                        รถประจาตาแหน่ ง
นอร์ มัลไลซ์ เซชั่น (Normalization)
21



        Normalization คือ กระบวนการปรับปรุ งโครงสร้างข้อมูลของฐานข้อมูลที่มีความ
                       ่
         ซ้ าซ้อนให้อยูในรู ปแบบที่เป็ นบรรทัดฐาน (Normal Form)
        การนอร์มลไลเซชันมีได้ถึง 5 ระดับ ในระดับที่ 3 ก็จดว่าเพียงพอสาหรับการ
                   ั                                          ั
         ออกแบบฐานข้อมูลในปัจจุบน      ั
          1NF - กาจัด repeating group
                     (กาจัดกลุ่มของข้อมูลที่มีความซ้ าซ้อน)
          2NF - กาจัด partial dependency
                     (กาจัดการขึ้นต่อกันบางส่ วน)
          3NF - กาจัด transitive dependency
                     (กาจัดการขึ้นต่อกันของแอตทริ บิวท์ที่ไม่ใช่คียหลัก)
                                                                   ์
22
First Normal Form (1NF)
23


        ทุก Attribute ในแต่ ละ record จะเป็ น single value ไม่ มี ค่ าของกลุ่ม ข้ อมูลที่ซ้ากัน
         (Repeating Group)
        ข้ อมูลทุกแถว (Tuple) ต้ องมีค่าไม่ ซ้ากัน

                       ตารางทีมลกษณะข้ อมูลเป็ น Repeating group
                              ่ ีั
          รหัสนักศึกษา       ชื่อ         นามสกุล             รหัสวิชาทีลงทะเบียน
                                                                        ่
              001           สมชาย         สมใจนึก                   204-101
                                                                                  Repeating Group
                                                                    204-204
                                                                    204-205
               002          ธีรชาย         บุญมาศ                   204-102
                                                                    204-204
Second Normal Form (2NF)
25



        1. ต้ องเป็ น First Normal Form (1NF) มาก่ อน
        2. ต้ องไม่ มี Partial Dependency (การขึนต่ อกันบางส่ วน)
                                                 ้

        สรุปก็คอ นอร์ มัลไลเซชันระดับที่ 2 (Second normal form : 2NF) เป็ นการ
                ื
         ขจัดแอตตริบิวที่ ไม่ ขนกับทั้งส่ วนของคีย์หลัก ออกไป เพือให้
                                 ึ้                                        ่
         แอตตริบิวอืนทั้งหมดขึนตรงกับส่ วนที่เป็ นคีย์หลักทั้งหมดเท่ านั้น
                    ่          ้
ตัวอย่ างตารางที่ Partial Dependency (การขึนต่ อกันบางส่ วน)
                                                    ้
               รหัสนักศึกษา     รหัสวิชา    เกรด                ชื่อวิชา
             534267001        F01          A          การเขียนโปรแกรม
             534267001        F02          B          การออกแบบฐานข้ อมูล
             534267002        F01          D          การเขียนโปรแกรม
             534267002        F02          A          การออกแบบฐานข้ อมูล
             534267003        F01          A          การเขียนโปรแกรม
             534267003        F02          C          การออกแบบฐานข้ อมูล


          รหัสนักศึกษา          รหัสวิชา                     เกรด           ชื่อวิชา
                                                    Partial Dependency


     รหัสนักศึกษา, รหัสวิชา                    เกรด ,ชื่ อวิชา
26
     รหัสวิชา                                  ชื่อวิชา
Second Normal Form (2NF)
27



         วิธีขจัดปัญหา
     1)    ต้ องสร้ างตารางเพิม
                              ่
     2)    นาคอลัมน์ ที่มีปัญหาไปใส่ ในตารางที่สร้ างเพิม
                                                        ่
     3)    กาหนดคีย์หลักให้ กบตารางทีสร้ างใหม่
                                ั      ่
     4)    แอททริบิวต์ ใดในตารางเดิม เมื่อนาไปใส่ ในตารางใหม่ ให้ ตัดออกจาก
           ตารางเดิม ยกเว้ น ส่ วนของคีย์หลัก คงไว้ ในตารางเดิม
ตารางผลการเรียน
      รหัสนักศึกษา     รหัสวิชา เกรด            ชื่อวิชา
     534267001         F01      A        การเขียนโปรแกรม                   ตารางนีเ้ มื่อทาให้ อยู่
     534267001         F02      B        การออกแบบฐานข้ อมูล
                                                                           ในรู ป 2 NF จะได้ 2
     534267002         F01      D        การเขียนโปรแกรม
                                                                                ตารางดังนี ้
     534267002         F02      A        การออกแบบฐานข้ อมูล
     534267003         F01      A        การเขียนโปรแกรม
     534267003         F02      C        การออกแบบฐานข้ อมูล

             ตารางผลการเรียน                                   ตารางวิชา
                 รหัสนักศึกษา       รหัสวิชา       เกรด         รหัสวิชา           ชื่อวิชา
             534267001          F01            A               F01          การเขียนโปรแกรม
             534267001          F02            B               F02          การออกแบบฐานข้ อมูล
             534267002          F01            D
             534267002          F02            A
             534267003          F01            A
28
             534267003          F02            C
ให้ นักศึกษานอมัลไลซ์ ตารางนีให้ อยู่ในรูปแบบ 2NF
                                             ้
     ตารางผลการอบรม
      รหัสผู้เข้ า   รหัสครอส   ชื่อผู้เข้ าอบรม   ชื่อครอสอบรม ผลการทดสอบ
       อบรม            อบรม
        0001           TR01   นายเอ ใจดี           การซ่อมไฟฟ้ า      ผ่าน
        0001           TR05      นายเอ ใจดี        การซ่อมตูเ้ ย็น    ผ่าน
        0002           TR03      นางบี ใจกล้า      การทาอาหาร            ่
                                                                     ไม่ผาน
        0002           TR09      นางบี ใจกล้า      การเลี้ยงเด็ก      ผ่าน
        0003           TR01      นายรวย มีเงิน     การซ่อมไฟฟ้ า      ผ่าน
        0003           TR05      นายรวย มีเงิน     การซ่อมตูเ้ ย็น       ่
                                                                     ไม่ผาน
29
Third Normal Form (3NF)
30


      1.Relation นั้นจะต้องมีคุณสมบัติ 2NF
      2.ต้องไม่มีความสัมพันธ์ระหว่าง Non-key Attribute หรื อ

          ไม่มี Transitive Dependency
     สรุ ป : แอททริ บิวต์ที่ไม่ใช่คียหลัก ต้องไม่ข้ ึนต่อกันเอง
                                     ์
Third Normal Form (3NF)
31


         วิธีขจัดปัญหา
     1.       สร้างตารางเพิ่ม
     2.       นาแอททริ บิวต์ที่มีปัญหามาใส่ ในตารางใหม่
     3.       กาหนดคียหลัก
                        ์
     4.       แอททริ บิวต์ที่ยายจากตารางเดิมไปใส่ ในตารางใหม่ให้
                              ้
              ตัดออกจากตารางเดิม
     5.       นาคียหลักในข้อ 3 ไปใส่ ในตารางเดิม
                    ์
รหัสพนักงาน          ชื่อสกุล           รหัสแผนก           ชื่อแผนก         เงินเดือน
         P001          นพเกศ แก้วใส            A001                บัญชี          25000
         P002          วารุ ณี รวดเร็ ว        F001              การเงิน          30000

        คียหลักของตารางนี้คือ รหัสพนักงาน
            ์
        จากตารางยังมีฟังก์ชนการขึ้นต่อกันแบบ Transitive Dependency อยู่ คือ
                             ั่
        รหัสแผนก ซึ่ งไม่ใช่คียหลักของตาราง แต่สามารถระบุค่า ชื่อแผนก ได้ คือ ถ้ารู้รหัส
                                ์
         แผนก ก็จะรู ้ชื่อแผนก

              จากตารางข้ างบน ทาให้ อยู่ในรู ป 3 NF จะได้ 2 ตารางข้ างล่างนี้

 รหัสพนักงาน          ชื่อสกุล       เงินเดือน รหัสแผนก                    รหัสแผนก ชื่อแผนก
     P001           นพเกศ แก้ วใส      25000     A001                        A001      บัญชี
     P002           วารุณี รวดเร็ว     30000     F001                        F001    การเงิน
32
สรุป Normalization
33


        1NF ทุกแอททริ บิวต์ในแต่ละแถวมีค่าของข้อมูลเพียงค่าเดียว
        2NF รี เลชันนั้นต้องไม่มีความสัมพันธ์ระหว่างแอททริ บิวต์แบบบางส่ วน (แอ
                    ุ                 ์                     ่ ั
         ททริ บิวต์ทกตัวต้องขึ้นกับคียหลักทุกตัว ไม่ข้ ึนอยูกบตัวใดตัวหนึ่ง)
        3NF ทุกแอททริ บิวต์ที่ไม่ใช่คียหลักไม่มีคุณสมบัติในการกาหนดค่าของ
                                        ์
         แอททริ บิวต์อื่น
แบบฝึ กหัด
          ให้ นักศึกษาแปลงตารางต่ อไปนีให้ อยู่ในรูป NF1-NF3 โดยละเอียด
                                       ้

     1)การลงทะเบียนเรียน
              รหัส     ชื่อนักศึกษา   รหัสวิชา   ชื่อวิชา   หน่ วยกิต   เกรด
            นักศึกษา
             53001         วนิ ดา     AB12        บัญชี        3         A
                                      CD01       การเงิน       3         A
                                      PC09        สถิติ        3         B
             53009         สุมาลี     AB12        บัญชี        3         B
                                      CD01       การเงิน       3         A

34
แบบฝึ กหัด
           ให้ นักศึกษาแปลงตารางต่ อไปนีให้ อยู่ในรูป NF1-NF3 โดยละเอียด
                                        ้

     2)การลงทะเบียนเรียน
       รหัส     ชื่อนักศึกษา   รหัส     ชื่อคณะ      รหัสวิชา   ชื่อวิชา   หน่ วยกิต   เกรด
     นักศึกษา                  คณะ
      53001        วนิ ดา       BC    บริหารธุรกิจ    AB12       บัญชี        3         A
                                                     CD01       การเงิน       3         A
                                                     PC09        สถิติ        3         B
      53009        สุมาลี      HT     การโรงแรม      AB12        บัญชี        3         B
                                                     CD01       การเงิน       3         A

35
แบบฝึ กหัด
              ให้ นักศึกษาแปลงตารางต่ อไปนีให้ อยู่ในรูป NF1-NF3 โดยละเอียด
                                           ้

     3) การสั่ งสิ นค้ า
     เลขที่ใบสัง่    วันที่ซ้ ือ   รหัสลูกค้า   ชื่อผูสง่ั
                                                      ้      รหัสสินค้า   ชื่อสินค้า   จานวนที่ซ้ ือ   ราคาต่อ
        ซื้อ                                                                                            หน่ วย
      OR001         02/09/2552       C001        เดวิด         AB12        ตูเ้ ย็น         4           4000
                                                               CD01        พัดลม            3           2000
                                                               PC09         แอร์            4           6000
      OR002         02/09/2552       C005       ไมเคิล         TP01        เตาอบ            3           3000
                                                               CD01        พัดลม            2           2000

36

More Related Content

What's hot

รูปเล่มวิชาโครงงาน
รูปเล่มวิชาโครงงานรูปเล่มวิชาโครงงาน
รูปเล่มวิชาโครงงานAjBenny Pong
 
โครงสร้างและหน้าที่ของใบ
โครงสร้างและหน้าที่ของใบโครงสร้างและหน้าที่ของใบ
โครงสร้างและหน้าที่ของใบThanyamon Chat.
 
บทที่ 4 หลักการทำงานของระบบคอมพิวเตอร์
บทที่ 4 หลักการทำงานของระบบคอมพิวเตอร์บทที่ 4 หลักการทำงานของระบบคอมพิวเตอร์
บทที่ 4 หลักการทำงานของระบบคอมพิวเตอร์russana
 
04 บทที่ 4-ผลการดำเนินโครงงาน
04 บทที่ 4-ผลการดำเนินโครงงาน04 บทที่ 4-ผลการดำเนินโครงงาน
04 บทที่ 4-ผลการดำเนินโครงงานTanyarad Chansawang
 
หน้าปกโครงงานคอมพิวเตอร์
หน้าปกโครงงานคอมพิวเตอร์หน้าปกโครงงานคอมพิวเตอร์
หน้าปกโครงงานคอมพิวเตอร์kand-2539
 
บทที่ 1 ที่มาและความสำคัญ
บทที่ 1 ที่มาและความสำคัญบทที่ 1 ที่มาและความสำคัญ
บทที่ 1 ที่มาและความสำคัญneeranuch wongkom
 
คำนำ สารบัญ แบบฝึกทักษะคณิตศาสตร์ สำหรับนักเรียนชั้นมัธยมศึกษาปีที่ 1 เล่มที่...
คำนำ สารบัญ แบบฝึกทักษะคณิตศาสตร์ สำหรับนักเรียนชั้นมัธยมศึกษาปีที่ 1 เล่มที่...คำนำ สารบัญ แบบฝึกทักษะคณิตศาสตร์ สำหรับนักเรียนชั้นมัธยมศึกษาปีที่ 1 เล่มที่...
คำนำ สารบัญ แบบฝึกทักษะคณิตศาสตร์ สำหรับนักเรียนชั้นมัธยมศึกษาปีที่ 1 เล่มที่...Suphot Chaichana
 
ข้อสอบปลายภาค50ข้อ โปรแกรมword
ข้อสอบปลายภาค50ข้อ โปรแกรมwordข้อสอบปลายภาค50ข้อ โปรแกรมword
ข้อสอบปลายภาค50ข้อ โปรแกรมwordpeter dontoom
 
บทที่ 5 สรุปผล และข้อเสนอแนะ
บทที่ 5 สรุปผล และข้อเสนอแนะบทที่ 5 สรุปผล และข้อเสนอแนะ
บทที่ 5 สรุปผล และข้อเสนอแนะKittichai Pinlert
 
สารบัญโครงงานคอม
สารบัญโครงงานคอมสารบัญโครงงานคอม
สารบัญโครงงานคอมkand-2539
 
แบบประเมินทักษะกระบวนการ
แบบประเมินทักษะกระบวนการแบบประเมินทักษะกระบวนการ
แบบประเมินทักษะกระบวนการsomdetpittayakom school
 
อินโฟกราฟิกในยุคการศึกษา 4.0 (Infographic in Education 4.0)
อินโฟกราฟิกในยุคการศึกษา 4.0 (Infographic in Education 4.0)อินโฟกราฟิกในยุคการศึกษา 4.0 (Infographic in Education 4.0)
อินโฟกราฟิกในยุคการศึกษา 4.0 (Infographic in Education 4.0)Dr.Kridsanapong Lertbumroongchai
 
ข้อสอบปฏิบัติ Microsoft Word
ข้อสอบปฏิบัติ Microsoft Wordข้อสอบปฏิบัติ Microsoft Word
ข้อสอบปฏิบัติ Microsoft WordSupreeyar philarit
 
หน้าปกโครงงาน
หน้าปกโครงงานหน้าปกโครงงาน
หน้าปกโครงงานKanistha Chudchum
 
ตัวอย่างสารบัญ เล่มโปรเจ็ค
ตัวอย่างสารบัญ เล่มโปรเจ็คตัวอย่างสารบัญ เล่มโปรเจ็ค
ตัวอย่างสารบัญ เล่มโปรเจ็คtumetr1
 

What's hot (20)

รูปเล่มวิชาโครงงาน
รูปเล่มวิชาโครงงานรูปเล่มวิชาโครงงาน
รูปเล่มวิชาโครงงาน
 
โครงสร้างและหน้าที่ของใบ
โครงสร้างและหน้าที่ของใบโครงสร้างและหน้าที่ของใบ
โครงสร้างและหน้าที่ของใบ
 
ภาคผนวก
ภาคผนวกภาคผนวก
ภาคผนวก
 
บทที่ 4 หลักการทำงานของระบบคอมพิวเตอร์
บทที่ 4 หลักการทำงานของระบบคอมพิวเตอร์บทที่ 4 หลักการทำงานของระบบคอมพิวเตอร์
บทที่ 4 หลักการทำงานของระบบคอมพิวเตอร์
 
04 บทที่ 4-ผลการดำเนินโครงงาน
04 บทที่ 4-ผลการดำเนินโครงงาน04 บทที่ 4-ผลการดำเนินโครงงาน
04 บทที่ 4-ผลการดำเนินโครงงาน
 
หน้าปกโครงงานคอมพิวเตอร์
หน้าปกโครงงานคอมพิวเตอร์หน้าปกโครงงานคอมพิวเตอร์
หน้าปกโครงงานคอมพิวเตอร์
 
แบบฝึกหัดที่ 3 Microsoft PowerPoint
แบบฝึกหัดที่ 3 Microsoft PowerPointแบบฝึกหัดที่ 3 Microsoft PowerPoint
แบบฝึกหัดที่ 3 Microsoft PowerPoint
 
บทที่ 1 ที่มาและความสำคัญ
บทที่ 1 ที่มาและความสำคัญบทที่ 1 ที่มาและความสำคัญ
บทที่ 1 ที่มาและความสำคัญ
 
คำนำ สารบัญ แบบฝึกทักษะคณิตศาสตร์ สำหรับนักเรียนชั้นมัธยมศึกษาปีที่ 1 เล่มที่...
คำนำ สารบัญ แบบฝึกทักษะคณิตศาสตร์ สำหรับนักเรียนชั้นมัธยมศึกษาปีที่ 1 เล่มที่...คำนำ สารบัญ แบบฝึกทักษะคณิตศาสตร์ สำหรับนักเรียนชั้นมัธยมศึกษาปีที่ 1 เล่มที่...
คำนำ สารบัญ แบบฝึกทักษะคณิตศาสตร์ สำหรับนักเรียนชั้นมัธยมศึกษาปีที่ 1 เล่มที่...
 
ข้อสอบปลายภาค50ข้อ โปรแกรมword
ข้อสอบปลายภาค50ข้อ โปรแกรมwordข้อสอบปลายภาค50ข้อ โปรแกรมword
ข้อสอบปลายภาค50ข้อ โปรแกรมword
 
แผนKpa ส่งจริง (ซ่อมแซม)
แผนKpa ส่งจริง (ซ่อมแซม)แผนKpa ส่งจริง (ซ่อมแซม)
แผนKpa ส่งจริง (ซ่อมแซม)
 
ออกแบบและเทคโนโลยี ม.5
ออกแบบและเทคโนโลยี ม.5ออกแบบและเทคโนโลยี ม.5
ออกแบบและเทคโนโลยี ม.5
 
บทที่ 5 สรุปผล และข้อเสนอแนะ
บทที่ 5 สรุปผล และข้อเสนอแนะบทที่ 5 สรุปผล และข้อเสนอแนะ
บทที่ 5 สรุปผล และข้อเสนอแนะ
 
สารบัญโครงงานคอม
สารบัญโครงงานคอมสารบัญโครงงานคอม
สารบัญโครงงานคอม
 
แบบประเมินทักษะกระบวนการ
แบบประเมินทักษะกระบวนการแบบประเมินทักษะกระบวนการ
แบบประเมินทักษะกระบวนการ
 
อินโฟกราฟิกในยุคการศึกษา 4.0 (Infographic in Education 4.0)
อินโฟกราฟิกในยุคการศึกษา 4.0 (Infographic in Education 4.0)อินโฟกราฟิกในยุคการศึกษา 4.0 (Infographic in Education 4.0)
อินโฟกราฟิกในยุคการศึกษา 4.0 (Infographic in Education 4.0)
 
ข้อสอบปฏิบัติ Microsoft Word
ข้อสอบปฏิบัติ Microsoft Wordข้อสอบปฏิบัติ Microsoft Word
ข้อสอบปฏิบัติ Microsoft Word
 
ปก
ปกปก
ปก
 
หน้าปกโครงงาน
หน้าปกโครงงานหน้าปกโครงงาน
หน้าปกโครงงาน
 
ตัวอย่างสารบัญ เล่มโปรเจ็ค
ตัวอย่างสารบัญ เล่มโปรเจ็คตัวอย่างสารบัญ เล่มโปรเจ็ค
ตัวอย่างสารบัญ เล่มโปรเจ็ค
 

More from skiats

การ Setup disk quota กับ user ทุกคน
การ Setup disk quota กับ user ทุกคนการ Setup disk quota กับ user ทุกคน
การ Setup disk quota กับ user ทุกคนskiats
 
อัลกอริทึมและการวิเคราะห์ปัญหา
อัลกอริทึมและการวิเคราะห์ปัญหาอัลกอริทึมและการวิเคราะห์ปัญหา
อัลกอริทึมและการวิเคราะห์ปัญหาskiats
 
รูปแบบโครงการ
รูปแบบโครงการรูปแบบโครงการ
รูปแบบโครงการskiats
 
ตัวแปรและค่าคงที่ basic data type
ตัวแปรและค่าคงที่ basic data typeตัวแปรและค่าคงที่ basic data type
ตัวแปรและค่าคงที่ basic data typeskiats
 
4 - statement
4  - statement4  - statement
4 - statementskiats
 
การใช้งาน phpMyadmin
การใช้งาน phpMyadminการใช้งาน phpMyadmin
การใช้งาน phpMyadminskiats
 
แบบจำลองข้อมูล
แบบจำลองข้อมูลแบบจำลองข้อมูล
แบบจำลองข้อมูลskiats
 
สถาปัตยกรรมฐานข้อมูล
สถาปัตยกรรมฐานข้อมูลสถาปัตยกรรมฐานข้อมูล
สถาปัตยกรรมฐานข้อมูลskiats
 
การรวบรวมความต้องการ
การรวบรวมความต้องการการรวบรวมความต้องการ
การรวบรวมความต้องการskiats
 
การกำหนดปัญหาและศึกษาความเป็นไปได้
การกำหนดปัญหาและศึกษาความเป็นไปได้การกำหนดปัญหาและศึกษาความเป็นไปได้
การกำหนดปัญหาและศึกษาความเป็นไปได้skiats
 
รวบรวมความต้องการ
รวบรวมความต้องการรวบรวมความต้องการ
รวบรวมความต้องการskiats
 
DFD ภาษาอังกฤษ
DFD ภาษาอังกฤษDFD ภาษาอังกฤษ
DFD ภาษาอังกฤษskiats
 
การเขียนแผนภาพ DFD
การเขียนแผนภาพ DFDการเขียนแผนภาพ DFD
การเขียนแผนภาพ DFDskiats
 
วงจรพัฒนาระบบ SDLC
วงจรพัฒนาระบบ SDLCวงจรพัฒนาระบบ SDLC
วงจรพัฒนาระบบ SDLCskiats
 
ความหมายการวิเคราะห์ระบบ
ความหมายการวิเคราะห์ระบบความหมายการวิเคราะห์ระบบ
ความหมายการวิเคราะห์ระบบskiats
 
อุปกรณ์รับและแสดงผล
อุปกรณ์รับและแสดงผลอุปกรณ์รับและแสดงผล
อุปกรณ์รับและแสดงผลskiats
 
ฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์ฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์skiats
 
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูลLecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูลskiats
 
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์skiats
 
Lecture5 ฐานข้อมูลเชิงสัมพันธ์
Lecture5 ฐานข้อมูลเชิงสัมพันธ์Lecture5 ฐานข้อมูลเชิงสัมพันธ์
Lecture5 ฐานข้อมูลเชิงสัมพันธ์skiats
 

More from skiats (20)

การ Setup disk quota กับ user ทุกคน
การ Setup disk quota กับ user ทุกคนการ Setup disk quota กับ user ทุกคน
การ Setup disk quota กับ user ทุกคน
 
อัลกอริทึมและการวิเคราะห์ปัญหา
อัลกอริทึมและการวิเคราะห์ปัญหาอัลกอริทึมและการวิเคราะห์ปัญหา
อัลกอริทึมและการวิเคราะห์ปัญหา
 
รูปแบบโครงการ
รูปแบบโครงการรูปแบบโครงการ
รูปแบบโครงการ
 
ตัวแปรและค่าคงที่ basic data type
ตัวแปรและค่าคงที่ basic data typeตัวแปรและค่าคงที่ basic data type
ตัวแปรและค่าคงที่ basic data type
 
4 - statement
4  - statement4  - statement
4 - statement
 
การใช้งาน phpMyadmin
การใช้งาน phpMyadminการใช้งาน phpMyadmin
การใช้งาน phpMyadmin
 
แบบจำลองข้อมูล
แบบจำลองข้อมูลแบบจำลองข้อมูล
แบบจำลองข้อมูล
 
สถาปัตยกรรมฐานข้อมูล
สถาปัตยกรรมฐานข้อมูลสถาปัตยกรรมฐานข้อมูล
สถาปัตยกรรมฐานข้อมูล
 
การรวบรวมความต้องการ
การรวบรวมความต้องการการรวบรวมความต้องการ
การรวบรวมความต้องการ
 
การกำหนดปัญหาและศึกษาความเป็นไปได้
การกำหนดปัญหาและศึกษาความเป็นไปได้การกำหนดปัญหาและศึกษาความเป็นไปได้
การกำหนดปัญหาและศึกษาความเป็นไปได้
 
รวบรวมความต้องการ
รวบรวมความต้องการรวบรวมความต้องการ
รวบรวมความต้องการ
 
DFD ภาษาอังกฤษ
DFD ภาษาอังกฤษDFD ภาษาอังกฤษ
DFD ภาษาอังกฤษ
 
การเขียนแผนภาพ DFD
การเขียนแผนภาพ DFDการเขียนแผนภาพ DFD
การเขียนแผนภาพ DFD
 
วงจรพัฒนาระบบ SDLC
วงจรพัฒนาระบบ SDLCวงจรพัฒนาระบบ SDLC
วงจรพัฒนาระบบ SDLC
 
ความหมายการวิเคราะห์ระบบ
ความหมายการวิเคราะห์ระบบความหมายการวิเคราะห์ระบบ
ความหมายการวิเคราะห์ระบบ
 
อุปกรณ์รับและแสดงผล
อุปกรณ์รับและแสดงผลอุปกรณ์รับและแสดงผล
อุปกรณ์รับและแสดงผล
 
ฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์ฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์
 
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูลLecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
 
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์
 
Lecture5 ฐานข้อมูลเชิงสัมพันธ์
Lecture5 ฐานข้อมูลเชิงสัมพันธ์Lecture5 ฐานข้อมูลเชิงสัมพันธ์
Lecture5 ฐานข้อมูลเชิงสัมพันธ์
 

การ Normalization

  • 1. 1 บทที่ 5 นอร์ มัลไลเซชัน NORMALIZATION วิชา ฐานข้ อมูลเบืองต้ น โดย อ.แพรตะวัน จารุตน (ปรับปรุง) ้ ั
  • 2. หัวข้ อการบรรยาย 2  ความหมายและจุดประสงค์ ของการนอร์ มัลไลเซชั่น  ฟั งก์ ชันการขึนต่ อกัน (Function Dependencies) ้  กระบวนการนอร์ มัลไลเซชั่ น
  • 3. ความหมายและจุดประสงค์ ของการนอร์ มัลไลเซชั่น 3  นอร์มลไลเซชัน เป็ นทฤษฎีที่ผออกแบบฐานข้อมูลจะต้องนามาใช้ใน ั ่ ู้ การแปลงข้อมูลที่อยูในรู ปแบบที่ซบซ้อน ให้อยูในรู ปแบบที่ง่ายต่อการ ่ ั ่ นาไปใช้งานและก่อให้เกิดปัญหาน้อยที่สุด  ในบทนี้จะสอนกระบวนการนอร์มลไลเซชัน ใน 3 ระดับด้วยกันคือ ั  นอร์ มลไลชันระดับที่ 1 หรื อเรี ยกว่า 1NF ั ่  นอร์ มลไลชันระดับที่ 2 หรื อเรี ยกว่า 2NF ั ่  นอร์ มลไลชันระดับที่ 3 หรื อเรี ยกว่า 3NF ั ่
  • 4. วิเคราะห์ความ ต้องการของผูใช้ ้ E-R Diagram รีเลชั่นทีมรูปแบบไม่ เป็ นบรรทัดฐาน ่ ี (Unnormalized relation) 1 NF 2 NF กระบวนการปรับ 3 NF บรรทัดฐาน (Normalization) บอยด์ คอดด์ 4 NF รีเลชั่นทีเ่ ป็ นแบบบรรทัดฐาน 4 (Normalized relation)
  • 5. วัตถุประสงค์ ของนอร์ มัลไลซ์ (Normalization) 5  ลดความซ้ าซ้อนของข้อมูล เมื่อลดความซ้ าซ้อนก็ทาให้ลดเนื้อหาที่ใช้ ในการจัดเก็บข้อมูล  ลดปัญหาความไม่ถูกต้องของข้อมูล เมื่อข้อมูลไม่เกิดความซ้ าซ้อนทา ให้การปรับปรุ งข้อมูลสามารถทาได้จากแหล่งข้อมูลเพียงแหล่งเดียว  ลดความผิดพลาดที่อาจเกิดจากการปรับปรุ งข้อมูล (update anomalies) ซึ่งประกอบด้วย
  • 6. ความซ้าซ้ อนและข้ อผิดพลาดจากการปรับปรุงข้ อมูล 6  แนวคิดหลักอันสาคัญของการออกแบบฐานข้อมูลเชิงสัมพันธ์ คือ การออกแบบ ให้มีการเก็บข้อมูลซ้ าซ้อนน้อยที่สุด  เพื่อประหยัดเนื้ อที่ในการเก็บข้อมูลและลดปั ญหาที่จะเกิดดังตัวอย่างต่อไปนี้
  • 7. ตัวอย่ างการออกแบบฐานข้ อมูลทีดี ่ Employee (พนักงาน) Branch (สาขา) รหัสพนักงาน ชื่อ-สกุล ตาแหน่ ง เงินเดือน รหัสสาขา รหัสสาขา ทีอยู่ ่ SG21 ชูชาติ สุ ขศรี ผูจดการ ้ั 30000 B005 B005 เชียงใหม่ SG37 ศิริ ดวงเด่น ผูช่วย ้ 20000 B003 B003 กรุ งเทพ SG14 ดวงใจ มีสุข เลขานุการ 20000 B003 B007 พิษณุโลก SG09 อัจฉรา เขียวแก้ว ผูจดการ ้ั 30000 B007 ตัวอย่ างการออกแบบฐานข้ อมูลทีจะมีปัญหาของความซ้าซ้ อนตามมา ่ Employee_Branch (รวมรายละเอียดของพนักงานไว้ ด้วยกันกับรายละเอียดของสาขา) รหัสพนักงาน ชื่อ-สกุล ตาแหน่ ง เงินเดือน รหัสสาขา ทีอยู่ ่ SG21 ชูชาติ สุ ขศรี ผูจดการ ้ั 30000 B005 เชียงใหม่ SG37 ศิริ ดวงเด่น ผูช่วย ้ 20000 B003 กรุ งเทพ SG14 ดวงใจ มีสุข เลขานุการ 20000 B003 กรุ งเทพ 7 SG09 อัจฉรา เขียวแก้ว ผูจดการ ้ั 30000 B007 พิษณุโลก
  • 8. ตัวอย่ างปัญหาความซ้าซ้ อนในข้ อมูล รีเลชั่น EMPLOYEE_BRANCE รหัสพนักงาน ชื่อ-สกุล ตาแหน่ ง เงินเดือน รหัสสาขา ทีอยู่ ่ SG21 ชูชาติ สุ ขศรี ผูจดการ ้ั 30000 B005 เชียงใหม่ SG37 ศิริ ดวงเด่น ผูช่วย ้ 20000 B003 กรุ งเทพ SG14 ดวงใจ มีสุข เลขานุการ 20000 B003 กรุ งเทพ SG09 อัจฉรา เขียวแก้ว ผูจดการ ้ั 30000 B007 พิษณุโลก ความผิดพลาดจากการเพิม ่ oถ้ าต้ องการเพิมพนักงานใหม่ ทีอยู่สาขา B005 ่ ่ oจะต้ องกรอก B005 และทีอยู่สาขา คือ เชียงใหม่ เพิมอีก ่ ่ 8
  • 9. ตัวอย่ างปัญหาความซ้าซ้ อนในข้ อมูล รีเลชั่น EMPLOYEE_BRANCE รหัสพนักงาน ชื่อ-สกุล ตาแหน่ ง เงินเดือน รหัสสาขา ทีอยู่ ่ SG21 ชูชาติ สุ ขศรี ผูจดการ ้ั 30000 B005 เชียงใหม่ SG37 ศิริ ดวงเด่น ผูช่วย ้ 20000 B003 กรุ งเทพ SG14 ดวงใจ มีสุข เลขานุการ 20000 B003 กรุ งเทพ SG09 อัจฉรา เขียวแก้ว ผูจดการ ้ั 30000 B007 พิษณุโลก ความผิดพลาดจากการเพิม ่ ถ้ าต้ องการเพิมสาขา จะมีปัญหาคือ ตารางนีมท้งข้ อมูลพนักงานและข้ อมูล ่ ้ ี ั สาขาอยู่รวมกัน หากจะเพิมเฉพาะ รหัสสาขา และ ทีอยู่ ก็ไม่ ได้ เพราะ รหัสพนักงาน จะมีค่า ่ ่ ว่ างไม่ ได้ เพราะเป็ น Primary Key ของตาราง ดังนั้นจะบันทึกได้ กต่อเมื่อมีพนักงานแล้ว ็ 9
  • 10. ความผิดพลาดจากการลบข้ อมูล  ถ้ าลบข้ อมูลหนึ่งแล้ วส่ งผลกระทบกับข้ อมูลอืน ที่ต้องถูกลบตาม ่ 10  เช่ น พนักงานรหัส SG21 ลาออก ก็ลบแถวนั้นออก  ข้ อมูลสาขา B005 ก็จะหายไปด้ วย ข้ อผิดพลาดจากการเปลียนแปลง ่  ในกรณีที่ต้องการเปลียนแปลงข้ อมูลบางตัวของสาขา ่  เช่ น เปลียนที่อยู่ของ B003 ก็ต้องเปลี่ยนหลายที่ ่  ถ้ าหากมีพนักงานสั งกัดสาขานีหลายที่กต้องไปตามแก้ ทุก ๆ ที่ ้ ็ ดังนั้นเราควรแยกตาราง Employee_Brance ออกเป็ นสองตาราง คือ ตารางพนักงาน และตารางสาขา
  • 11. พนักงาน รหัสพนักงาน ชื่อ-สกุล ตาแหน่ ง เงินเดือน รหัสสาขา SG21 ชูชาติ สุ ขศรี ผูจดการ ้ั 30000 B005 SG37 ศิริ ดวงเด่น ผูช่วย ้ 20000 B003 SG14 ดวงใจ มีสุข เลขานุการ 20000 B003 SG09 อัจฉรา เขียวแก้ว ผูจดการ ้ั 30000 B007 สาขา รหัสสาขา ทีอยู่ ่ B005 เชียงใหม่ B003 กรุ งเทพ B007 พิษณุโลก 11
  • 12. ฟังก์ ชั่นการขึนต่ อกัน (Functional Dependency : FD) ้ 12  ถ้ าให้ X และ Y เป็ น Attribute ใน Relation ใดๆ แทนด้ วย R(X,Y) Attribute Y เป็ น จะถูกเรียกว่ ามีฟังก์ ชันการขึนต่ อ ้ กันกับแอททริบวต์ X ก็ต่อเมื่อ แต่ ละค่ าที่ไม่ ซากันของ ิ ้ แอททริบวต์ X มีข้อมูลของ Y ที่เกี่ยวข้ องกับ X เพียง 1 ค่ า ิ  เขียนแทนด้ วย สัญลักษณ์ XY
  • 13. ตัวอย่ าง EmployeeNo Name Position S01 ฉัตรชัย มีสมบัติ Manager S02 เอกชัย ใจดี Manager Assistant S03 มนีรัตน์ เจริญสุ ข Manager S04 ขวัญชัย ใจเพชร Manager Assistant S05 มานพ เกตุแก้ ว Staff S06 ดวงกมล ทิพย์ เทพ Staff EmployeeNo Position 13
  • 14. ตัวอย่ าง A) employeeNo  Position B) Position (not)  employeeNo 14 A EmployeeNo Position employeeNo S21 Manager B Position EmployeeNo employeeNo S21 Manager employeeNo S41 การขึนต่ อกัน ค่ า X จะต้ องกาหนดค่ า Y ได้ 1:1 ้
  • 15. ชนิดของฟังก์ชั่นการขึนต่ อกัน ( Functional Dependency :FD) ้ 15  1) Complete dependencies การขึนต่ อกันอย่ างสมบูรณ์ ้  แอททริ บิวต์ท่ีไม่ใช่คียหลัก ขึ้นต่อ แอททริ บิวต์หรื อกลุ่มของแอททริ บิวต์ที่ ์ เป็ นคียหลัก ์  ตัวอย่าง ตารางที่มีแอทริ บิวต์ค่าเดียวทาหน้าที่เป็ นคียหลัก คือ หมายเลขบัตร ์ ประชาชน หมายเลขบัตรประชาชน ชื่อเจ้ าของบัตร 3440100634931 กนกวรรณ พ่วงพงษ์ 3437283420343 ชาติชาย เตชะวงศ์ 2938742039485 กิ่งกาญ เดชาทรัพย์ หมายเลขบัตรประชาชน  ชื่อเจ้าของบัตร
  • 16. ชนิดของฟังก์ชั่นการขึนต่ อกัน ( Functional Dependency :FD) ้ 16  ตัวอย่าง ตารางที่มีแอทริบิวต์หลายตัวขึ้ นกับคียหลักตัวเดียว ์ หมายเลขบัตรประชาชน ชื่อเจ้ าของบัตร วันเกิด วันที่ทาบัตร 3440100634931 กนกวรรณ พ่วงพงษ์ 27/03/2520 28/04/2553 3437283420343 ชาติชาย เตชะวงศ์ 23/06/2522 25/02/2553 2938742039485 กิ่งกาญ เดชาทรัพย์ 21/04/2525 19/0125/52 หมายเลขบัตรประชาชน ชื่อเจ้าของบัตร,วันเกิด,วันที่ทาบัตร
  • 17. ชนิดของฟังก์ชั่นการขึนต่ อกัน ( Functional Dependency :FD) ้ 17  ตัวอย่าง ตารางที่มีแอทริบิวหลายตัวรวมกันเป็ นคียหลัก คือ รหัสนักศึกษา รหัสวิชา ์ ตารางการลงทะเบียน รหัสนักศึกษา รหัสวิชา เกรด 520014001 S001 A 520014001 S002 B 520014002 S001 C 520014002 S002 A รหัสนักศึกษา,รหัสวิชา เกรด
  • 18. ชนิดของฟังก์ชั่นการขึนต่ อกัน ( Functional Dependency :FD) ้ 18  2) Partial Dependency (การขึ้ นต่อกันบางส่ วน)  เกิดขึ้นเมื่อคียหลักประกอบด้วยหลาย Attribute รวมกัน ์  เมื่อแอตทริ บิวต์บางส่ วนของคียหลัก สามารถไประบุค่าแอตทริ บิวต์ตวอื่น ๆ ที่ ์ ั ไม่ใช่คียหลักของรี เลชันได้ ์ ่ รหัสนักศึกษา รหัสวิชา เกรด ชื่อวิชา Partial Dependency รหัสนักศึกษา, รหัสวิชา เกรด , ชื่อวิชา รหัสวิชา ชื่อวิชา
  • 19. ตัวอย่ างฟังก์ ชั่นการขึนต่ อกันแบบ Partial ้ รหัสนักศึกษา รหัสวิชา เกรด ชื่อวิชา 534267001 F01 A การเขียนโปรแกรม 534267001 F02 B การออกแบบฐานข้ อมูล 534267002 F01 D การเขียนโปรแกรม 534267002 F02 A การออกแบบฐานข้ อมูล 534267003 F01 A การเขียนโปรแกรม 534267003 F02 C การออกแบบฐานข้ อมูล 19
  • 20. ชนิดของฟังก์ ชั่นการขึนต่ อกัน (Functional Dependency : FD) ้ 20  3 Transitive Dependency เกิดขึนเมื่อ Attribute ที่ไม่ ใช่ Primary Key ไป ้ ขึนอยู่กบ Attribute อืนที่ไม่ ใช่ Primary Key ในรีเลชั่นนั้น ๆ ้ ั ่ เลขประจาตัว ชื่อ สกุล ที่อยู่ ตาแหน่ง รถประจาตาแหน่ง 01 ฉัตรชัย มีสมบัติ กรุงเทพ ผู้จดการ ั BMW 02 เอกชัย ใจดี นนทบุรี ผู้ช่วยผู้จดการ ั Honda 03 มนีรัตน์ เจริญสุ ข เชียงใหม่ ผู้จดการ ั BMW 04 ขวัญชัย ใจเพชร ราชบุรี ผู้ช่วยผู้จดการ ั Honda คาอธิบาย เลขประจาตัว เป็ นคีย์หลัก (Primary Key) ของตาราง เลขประจาตัว ชื่อสกุล, ทีอยู่, ตาแหน่ ง ่ ตาแหน่ ง รถประจาตาแหน่ ง
  • 21. นอร์ มัลไลซ์ เซชั่น (Normalization) 21  Normalization คือ กระบวนการปรับปรุ งโครงสร้างข้อมูลของฐานข้อมูลที่มีความ ่ ซ้ าซ้อนให้อยูในรู ปแบบที่เป็ นบรรทัดฐาน (Normal Form)  การนอร์มลไลเซชันมีได้ถึง 5 ระดับ ในระดับที่ 3 ก็จดว่าเพียงพอสาหรับการ ั ั ออกแบบฐานข้อมูลในปัจจุบน ั  1NF - กาจัด repeating group (กาจัดกลุ่มของข้อมูลที่มีความซ้ าซ้อน)  2NF - กาจัด partial dependency (กาจัดการขึ้นต่อกันบางส่ วน)  3NF - กาจัด transitive dependency (กาจัดการขึ้นต่อกันของแอตทริ บิวท์ที่ไม่ใช่คียหลัก) ์
  • 22. 22
  • 23. First Normal Form (1NF) 23  ทุก Attribute ในแต่ ละ record จะเป็ น single value ไม่ มี ค่ าของกลุ่ม ข้ อมูลที่ซ้ากัน (Repeating Group)  ข้ อมูลทุกแถว (Tuple) ต้ องมีค่าไม่ ซ้ากัน ตารางทีมลกษณะข้ อมูลเป็ น Repeating group ่ ีั รหัสนักศึกษา ชื่อ นามสกุล รหัสวิชาทีลงทะเบียน ่ 001 สมชาย สมใจนึก 204-101 Repeating Group 204-204 204-205 002 ธีรชาย บุญมาศ 204-102 204-204
  • 24.
  • 25. Second Normal Form (2NF) 25  1. ต้ องเป็ น First Normal Form (1NF) มาก่ อน  2. ต้ องไม่ มี Partial Dependency (การขึนต่ อกันบางส่ วน) ้  สรุปก็คอ นอร์ มัลไลเซชันระดับที่ 2 (Second normal form : 2NF) เป็ นการ ื ขจัดแอตตริบิวที่ ไม่ ขนกับทั้งส่ วนของคีย์หลัก ออกไป เพือให้ ึ้ ่ แอตตริบิวอืนทั้งหมดขึนตรงกับส่ วนที่เป็ นคีย์หลักทั้งหมดเท่ านั้น ่ ้
  • 26. ตัวอย่ างตารางที่ Partial Dependency (การขึนต่ อกันบางส่ วน) ้ รหัสนักศึกษา รหัสวิชา เกรด ชื่อวิชา 534267001 F01 A การเขียนโปรแกรม 534267001 F02 B การออกแบบฐานข้ อมูล 534267002 F01 D การเขียนโปรแกรม 534267002 F02 A การออกแบบฐานข้ อมูล 534267003 F01 A การเขียนโปรแกรม 534267003 F02 C การออกแบบฐานข้ อมูล รหัสนักศึกษา รหัสวิชา เกรด ชื่อวิชา Partial Dependency รหัสนักศึกษา, รหัสวิชา เกรด ,ชื่ อวิชา 26 รหัสวิชา ชื่อวิชา
  • 27. Second Normal Form (2NF) 27  วิธีขจัดปัญหา 1) ต้ องสร้ างตารางเพิม ่ 2) นาคอลัมน์ ที่มีปัญหาไปใส่ ในตารางที่สร้ างเพิม ่ 3) กาหนดคีย์หลักให้ กบตารางทีสร้ างใหม่ ั ่ 4) แอททริบิวต์ ใดในตารางเดิม เมื่อนาไปใส่ ในตารางใหม่ ให้ ตัดออกจาก ตารางเดิม ยกเว้ น ส่ วนของคีย์หลัก คงไว้ ในตารางเดิม
  • 28. ตารางผลการเรียน รหัสนักศึกษา รหัสวิชา เกรด ชื่อวิชา 534267001 F01 A การเขียนโปรแกรม ตารางนีเ้ มื่อทาให้ อยู่ 534267001 F02 B การออกแบบฐานข้ อมูล ในรู ป 2 NF จะได้ 2 534267002 F01 D การเขียนโปรแกรม ตารางดังนี ้ 534267002 F02 A การออกแบบฐานข้ อมูล 534267003 F01 A การเขียนโปรแกรม 534267003 F02 C การออกแบบฐานข้ อมูล ตารางผลการเรียน ตารางวิชา รหัสนักศึกษา รหัสวิชา เกรด รหัสวิชา ชื่อวิชา 534267001 F01 A F01 การเขียนโปรแกรม 534267001 F02 B F02 การออกแบบฐานข้ อมูล 534267002 F01 D 534267002 F02 A 534267003 F01 A 28 534267003 F02 C
  • 29. ให้ นักศึกษานอมัลไลซ์ ตารางนีให้ อยู่ในรูปแบบ 2NF ้ ตารางผลการอบรม รหัสผู้เข้ า รหัสครอส ชื่อผู้เข้ าอบรม ชื่อครอสอบรม ผลการทดสอบ อบรม อบรม 0001 TR01 นายเอ ใจดี การซ่อมไฟฟ้ า ผ่าน 0001 TR05 นายเอ ใจดี การซ่อมตูเ้ ย็น ผ่าน 0002 TR03 นางบี ใจกล้า การทาอาหาร ่ ไม่ผาน 0002 TR09 นางบี ใจกล้า การเลี้ยงเด็ก ผ่าน 0003 TR01 นายรวย มีเงิน การซ่อมไฟฟ้ า ผ่าน 0003 TR05 นายรวย มีเงิน การซ่อมตูเ้ ย็น ่ ไม่ผาน 29
  • 30. Third Normal Form (3NF) 30  1.Relation นั้นจะต้องมีคุณสมบัติ 2NF  2.ต้องไม่มีความสัมพันธ์ระหว่าง Non-key Attribute หรื อ ไม่มี Transitive Dependency สรุ ป : แอททริ บิวต์ที่ไม่ใช่คียหลัก ต้องไม่ข้ ึนต่อกันเอง ์
  • 31. Third Normal Form (3NF) 31  วิธีขจัดปัญหา 1. สร้างตารางเพิ่ม 2. นาแอททริ บิวต์ที่มีปัญหามาใส่ ในตารางใหม่ 3. กาหนดคียหลัก ์ 4. แอททริ บิวต์ที่ยายจากตารางเดิมไปใส่ ในตารางใหม่ให้ ้ ตัดออกจากตารางเดิม 5. นาคียหลักในข้อ 3 ไปใส่ ในตารางเดิม ์
  • 32. รหัสพนักงาน ชื่อสกุล รหัสแผนก ชื่อแผนก เงินเดือน P001 นพเกศ แก้วใส A001 บัญชี 25000 P002 วารุ ณี รวดเร็ ว F001 การเงิน 30000  คียหลักของตารางนี้คือ รหัสพนักงาน ์  จากตารางยังมีฟังก์ชนการขึ้นต่อกันแบบ Transitive Dependency อยู่ คือ ั่  รหัสแผนก ซึ่ งไม่ใช่คียหลักของตาราง แต่สามารถระบุค่า ชื่อแผนก ได้ คือ ถ้ารู้รหัส ์ แผนก ก็จะรู ้ชื่อแผนก จากตารางข้ างบน ทาให้ อยู่ในรู ป 3 NF จะได้ 2 ตารางข้ างล่างนี้ รหัสพนักงาน ชื่อสกุล เงินเดือน รหัสแผนก รหัสแผนก ชื่อแผนก P001 นพเกศ แก้ วใส 25000 A001 A001 บัญชี P002 วารุณี รวดเร็ว 30000 F001 F001 การเงิน 32
  • 33. สรุป Normalization 33  1NF ทุกแอททริ บิวต์ในแต่ละแถวมีค่าของข้อมูลเพียงค่าเดียว  2NF รี เลชันนั้นต้องไม่มีความสัมพันธ์ระหว่างแอททริ บิวต์แบบบางส่ วน (แอ ุ ์ ่ ั ททริ บิวต์ทกตัวต้องขึ้นกับคียหลักทุกตัว ไม่ข้ ึนอยูกบตัวใดตัวหนึ่ง)  3NF ทุกแอททริ บิวต์ที่ไม่ใช่คียหลักไม่มีคุณสมบัติในการกาหนดค่าของ ์ แอททริ บิวต์อื่น
  • 34. แบบฝึ กหัด ให้ นักศึกษาแปลงตารางต่ อไปนีให้ อยู่ในรูป NF1-NF3 โดยละเอียด ้ 1)การลงทะเบียนเรียน รหัส ชื่อนักศึกษา รหัสวิชา ชื่อวิชา หน่ วยกิต เกรด นักศึกษา 53001 วนิ ดา AB12 บัญชี 3 A CD01 การเงิน 3 A PC09 สถิติ 3 B 53009 สุมาลี AB12 บัญชี 3 B CD01 การเงิน 3 A 34
  • 35. แบบฝึ กหัด ให้ นักศึกษาแปลงตารางต่ อไปนีให้ อยู่ในรูป NF1-NF3 โดยละเอียด ้ 2)การลงทะเบียนเรียน รหัส ชื่อนักศึกษา รหัส ชื่อคณะ รหัสวิชา ชื่อวิชา หน่ วยกิต เกรด นักศึกษา คณะ 53001 วนิ ดา BC บริหารธุรกิจ AB12 บัญชี 3 A CD01 การเงิน 3 A PC09 สถิติ 3 B 53009 สุมาลี HT การโรงแรม AB12 บัญชี 3 B CD01 การเงิน 3 A 35
  • 36. แบบฝึ กหัด ให้ นักศึกษาแปลงตารางต่ อไปนีให้ อยู่ในรูป NF1-NF3 โดยละเอียด ้ 3) การสั่ งสิ นค้ า เลขที่ใบสัง่ วันที่ซ้ ือ รหัสลูกค้า ชื่อผูสง่ั ้ รหัสสินค้า ชื่อสินค้า จานวนที่ซ้ ือ ราคาต่อ ซื้อ หน่ วย OR001 02/09/2552 C001 เดวิด AB12 ตูเ้ ย็น 4 4000 CD01 พัดลม 3 2000 PC09 แอร์ 4 6000 OR002 02/09/2552 C005 ไมเคิล TP01 เตาอบ 3 3000 CD01 พัดลม 2 2000 36