การแปลงโมเดลแบบ E-R เป็ นรู ปแบบโมเดลเชิงสัมพันธ์
                   รหัสคนงาน                                          วันที่ที่เริ่ มทางาน

       ชื่อคนงาน                             อัตราค่าแรง/ช.ม.
                                                                                                    จ.น.ช.ม.ทั้งหมดที่ทา

                                             1                          N
     ชานาญด้าน
                       N     คนงาน                           ได้รับ                 การทางาน
                                                           มอบหมาย
                                     N                                                     N

         1

                               ชานาญด้าน                                           ชานาญด้าน

                                     1                                                     1

                            ความชานาญ                                             สถานที่ก่อสร้าง


       ประเภทความชานาญ                              อัตราโบนัส          ที่อยู่                               ประเภท

                        จานวนชัวโมงขั้นต่า
                               ่                                                   รหัสสถานที่ก่อสร้าง
BC326 Database Management                                                                                Numtip Trakulmaykee
ขั้นตอนการแปลง
           โมเดลแบบ E-R เป็ นรู ปแบบโมเดลเชิงสัมพันธ์
      1.      แปลงเอนติต้ ีปกติและแอททริ บิวท์ของเอนติต้ ี
              เป็ นขั้นตอนการแปลงอย่างตรงไปตรงมา โดยจะทาการแปลง Entity ปกติที่ไม่ใช่
                                  ่
              Weak Entity ให้อยูในรู ปของ Relation ซึ่งชื่อของ Entity คือ ชื่อของ Relation และ
              attribute ของ Entity จะเป็ น attribute ของ Relation และ ทาการขีดเส้นใต้ attribute ที่
              เป็ นคียหลัก
                       ์
              คนงาน(รหัสคนงาน,ชื่อคนงาน,อัตราค่าแรง/ช.ม.)
              ความชานาญ(ประเภทความชานาญ,อัตราโบนัส,จานวนช.ม.ขั้นต่า)
              สถานที่ก่อสร้าง(รหัสสถานที่ก่อสร้าง,ที่อยู,่ ประเภทสถานที่ก่อสร้าง)

      หมายเหตุ ในกรณี ที่ attribute มีค่าได้มากกว่า 1 ค่า(Multivalue) หรื อมีกลุ่มซ้ า (Repeating
           Group) จะใช้วงเล็บครอบกลุ่ม attribute นั้น ๆ

BC326 Database Management                                                                  Numtip Trakulmaykee
ขั้นตอนการแปลง
      โมเดลแบบ E-R เป็ นรู ปแบบโมเดลเชิงสัมพันธ์
การแปลง Weak Entity
                                                                                       ่
          เช่น Entity การทางาน จะเป็ นเอนติต้ ีแบบอ่อนเนื่องจากจะมีเอนติต้ ีการทางานอยูใน
    ฐานข้อมูลนี้ได้จะต้องมีเอนติต้ ีคนงานและเอนติต้ ีสถานที่ก่อสร้างปรากฎอยูดวย
                                                                              ่ ้

            การทางาน(วันที่เริ่ มทางาน,จานวนช.ม.ทั้งหมดที่ทา)

           Entity ใดมีคุณสมบัติเป็ น Weak Entity และมีการขึ้นต่อกันเชิงระบุ จาเป็ นที่จะต้องนา
                         ์              ั       ่ ้
    attribute ที่เป็ นคียของ Entity ที่มนขึ้นอยูดวยมาร่ วมเป็ นคียของ Relation แทน
                                                                  ์

    การทางาน(รหัสคนงาน,รหัสสถานที่ก่อสร้าง,วันที่เริ่ มทางาน,จานวนช.ม.ทั้งหมดที่ทา)

BC326 Database Management                                                             Numtip Trakulmaykee
ขั้นตอนการแปลง
         โมเดลแบบ E-R เป็ นรู ปแบบโมเดลเชิงสัมพันธ์
      2. แปลงความสัมพันธ์ระหว่างเอนติต้ ี
                 การแทนความสั มพันธ์ แบบหนึ่งต่ อหนึ่ง (1:1)
           เช่น ถ้าบริ ษทแห่งหนึ่งกาหนดว่าลูกค้าคนหนึ่งจะซื้อรถยนต์ได้เพียง 1 คันเท่านั้นและรถยนต์ 1
                        ั
               คันเป็ นของลูกค้าได้เพียงคนเดียวเท่านั้น จะได้ความสัมพันธ์ดงนี้
                                                                          ั

                           ที่อยู่                                        หมายเลขเครื่ อง



          ชื่อลูกค้า                 ลูกค้ า          1
                                                          มีการซื้อ
                                                                      1
                                                                          รถยนต์                รุ่ น


              รหัสลูกค้า
                                      เบอร์โทรศัพท์                           สี รถ

BC326 Database Management                                                                   Numtip Trakulmaykee
 การแทนความสัมพันธ์แบบหนึ่งต่อหนึ่ง (1:1)
   1.      แปลง Entity แต่ ละ Entity ให้ เป็ น relation โดยชื่อ Entity คือชื่อ relation และกาหนดคีย์
           หลักของแต่ ละรีเลชัน ดังนี้
              ลูกค้า(รหัสลูกค้า,ชื่อลูกค้า,ที่อยู,่ เบอร์โทรศัพท์)
              รถยนต์(หมายเลขเครื่ อง,รุ่ น,สี รถ)

   2.      เพิมคีย์ของ relation หนึ่งลงไปเป็ น attribute หนึ่งของอีก relation
               ่
           รู ปแบบที่ 1 ลูกค้า(รหัสลูกค้า,ชื่อลูกค้า,ที่อยู,่ เบอร์โทรศัพท์)
                         รถยนต์(หมายเลขเครื่ อง,รุ่ น,สี รถ,รหัสลูกค้า)
           รู ปแบบที่ 2 ลูกค้า(รหัสลูกค้า,ชื่อลูกค้า,ที่อยู,่ เบอร์โทรศัพท์,หมายเลขเครื่ อง)
                         รถยนต์(หมายเลขเครื่ อง,รุ่ น,สี รถ)

           ***              คียนอก (Foreign Key) นั้น จะแทนด้วยการขีดเส้นใต้ดวยเส้นประ
                               ์                                             ้
BC326 Database Management                                                                      Numtip Trakulmaykee
 การแทนความสัมพันธ์แบบหนึ่งต่อกลุ่ม (1:N)
   1.      แปลง entity ปกติแต่ ละ entity ให้ เป็ น relation โดยชื่อ entity ก็คอชื่อ relation
                                                                              ื
           และกาหนดคีย์หลักของแต่ ละ relation
             คนงาน(รหัสคนงาน,ชื่อคนงาน,อัตราค่าแรง/ช.ม.)
             ความชานาญ(ประเภทความชานาญ,อัตราโบนัส,จานวนช.ม.ขั้นต่า)

   2.      นาคีย์หลักของ entity ทีอยู่ด้านความสั มพันธ์ เป็ น 1 ไปเก็บเป็ น attribute ของ
                                  ่
           relation ด้ านทีมีความสั มพันธ์ เป็ น N
                           ่
              คนงาน(รหัสคนงาน,ชื่อคนงาน,ประเภทความชานาญ,อัตราค่าแรง/ช.ม.)
              ความชานาญ(ประเภทความชานาญ,อัตราโบนัส,จานวนช.ม.ขั้นต่า)

BC326 Database Management                                                        Numtip Trakulmaykee
การแทนความสัมพันธ์แบบ Recursive
                                           ่ ้
         ให้เพิ่มคียหลักของ relation ที่อยูดานความสัมพันธ์เป็ นหนึ่งไปเป็ น attribute
                    ์
         ของรี เลชันด้านที่มีความสัมพันธ์เป็ นกลุ่ม โดยเปลี่ยนชื่อของแอททริ บิวท์
         ใหม่


                คนงาน                              เป็ นหัวหน้างาน



    คนงาน(รหัสคนงาน,ชื่อคนงาน,ประเภทความชานาญ,อัตราค่าแรง/ช.ม.,หัวหน้างาน)



BC326 Database Management                                                     Numtip Trakulmaykee
 การแทนความสัมพันธ์แบบหนึ่งต่อกลุ่ม (M:N)
         ในกรณี ที่เอนติต้ ีมีความสัมพันธ์แบบกลุ่มต่อกลุ่ม (M:N) เราสามารถเขียนแผนภาพ
            ได้ 2 แบบ แบบแรกคือการเชื่อมเอนติต้ ีน้ นด้วยความสัมพันธ์แบบกลุ่มต่อกลุ่ม
                                                     ั
                                           วันที่ทางาน           จานวนช.ม.ทั้งหมดที่ทา


                                   M                                       N
                       คนงาน                        มีการทางาน                   สถานทีก่อสร้ าง
                                                                                       ่

          แบบที่สองคือยอมให้ความสัมพันธ์น้ นสามารถมีแอททริ บิวท์ในตัวมันเองได้
                                           ั
          โดยการแปลงความสัมพันธ์ที่เชื่อมระหว่างเอนติต้ ีน้ นให้เป็ นแอนติต้ ีใหม่
                                                            ั
          ขึ้นมาและเปลี่ยนรู ปแบบความสัมพันธ์แบบหนึ่งต่อกลุ่ม (1:N)
                                 วันที่ทางาน             จานวนช.ม.ทั้งหมดที่ทา

  คนงาน     1
                      ทางานที่
                                    N
                                           การทางาน
                                                          N
                                                                       ทางานที่
                                                                                         1
                                                                                                   สถานที่ก่อสร้าง

BC326 Database Management                                                                            Numtip Trakulmaykee
การแปลงความสัมพันธ์แบบ M:N ให้เป็ น relation จะไม่ใช้หลักการเดียวกับ
      ความสัมพันธ์แบบ 1:1 หรื อ 1:N โดยการเอาคียของ relation หนึ่งไปเก็บเป็ น
                                                     ์
      attribute ในอีก relation หนึ่ง เหมือนดังรู ปแบบดังนี้

       คนงาน(รหัสคนงาน,ชื่อคนงาน,ประเภทความชานาญ,อัตราค่าแรง/ช.ม.)
       สถานที่ก่อสร้าง(รหัสสถานที่ก่อสร้าง,ที่อยู,่ ประเภทสถานที่ก่อสร้าง,รหัสคนงาน)

       เพราะเป็ นวิธีการที่ไม่ถูกต้อง เนื่องจากจะทาให้เกิดปัญหาเกี่ยวกับความผิดปกติที่
       เกี่ยวกับการจัดการข้อมูลไม่วาจะเป็ นการเพิ่ม ลบ หรื อปรับปรุ งข้อมูล เช่น
                                     ่
       คนงานรหัส 1411 ได้ลาออกไป การลบข้อมูลใน relation สถานที่ก่อสร้างในแถวที่มี
       คนงานรหัส 1411 นั้นอยูจะทาให้เราต้องสูญเสี ยข้อมูลเกี่ยวกับสถานที่ก่อสร้างรหัส 450 ไป
                                ่
       ด้วย หรื อถ้าบริ ษทรับก่อสร้างสถานที่แห่งใหม่แต่ยงไม่ได้กาหนดว่าใครเป็ นผูไปทาการ
                         ั                              ั                          ้
       ก่อสร้างที่นนบ้าง จะทาให้เราไม่สามารถเพิ่มข้อมูลที่เกี่ยวกับสถานที่ก่อสร้างแห่งใหม่เข้าไป
                    ั่
       ยัง relation สถานที่ก่อสร้างได้

BC326 Database Management                                                              Numtip Trakulmaykee
ดังนั้นจึงไม่สามารถแปลงความสัมพันธ์ M:N โดยวิธีแบบ 1:1 หรื อ 1:N ได้ แต่ให้
        แปลงความสัมพันธ์โดยมีข้นตอนต่อไปนี้
                                     ั
                                                 ั
    ขั้นตอนที่ 1. แปลงเอนติต้ ีที่มีความสัมพันธ์กนนี้นให้เป็ นรี เลชัน โดยชื่เอนติต้ ี คือ
        ชื่อของรี เลชัน และแอททริ บิวต์ของเอนติต้ ี คือ แอททริ บิวต์ของรี เลชัน ดังนี้
        คนงาน(รหัสคนงาน,ชื่อคนงาน,ประเภทความชานาญ,อัตราค่าแรง/ช.ม.)
        สถานที่ก่อสร้าง(รหัสสถานที่ก่อสร้าง,ที่อยู,่ ประเภทสถานที่ก่อสร้าง)


    ขั้นตอนที่ 2. สร้างรี เลชันขึ้นมาใหม่หนึ่งรี เลชัน โดยรี เลชันที่สร้างขึ้นใหม่จะ
        ประกอบด้วยแอททริ บิวต์ของความสัมพันธ์แบบ N:M และจะมีการสร้างคียหลัก          ์
                                                                              ่
        ของรี เลชันที่มีความสัมพันธ์แบบ N:M นั้นมาสร้างเป็ นคียหลักอยูในรี เลชันใหม่
                                                                     ์
        นี้ดวย
            ้
      การทางาน(รหัสคนงาน,รหัสสถานที่ก่อสร้าง,วันที่เริ่ มทางาน,จานวนช.ม.ทั้งหมดที่ทา)

BC326 Database Management                                                         Numtip Trakulmaykee
ขั้นตอนที่ 3. จะได้ ความสั มพันธ์ ระหว่ างรีเลชันเดิมกับรีเลชันใหม่ เปลียนไปเป็ นแบบ
                                                                            ่
        1:N ดังนี้
    คนงาน(รหัสคนงาน,ชื่อคนงาน,ประเภทความชานาญ,อัตราค่าแรง/ช.ม.)
    สถานที่ก่อสร้าง(รหัสสถานที่ก่อสร้าง,ที่อยู,่ ประเภทสถานที่ก่อสร้าง)
    การทางาน(รหัสคนงาน,รหัสสถานที่ก่อสร้าง,วันที่เริ่ มทางาน,จานวนช.ม.ทั้งหมดที่ทา)


    สุ ดท้ าย คือ การพิจารณาเค้ าร่ างข้ อมูลแต่ ละรีเลชันทีได้ 2
                                                            ่
        ขั้นตอนแรก คือการเขียนรีเลชันทั้งหมดที่ได้ จากการแปลง
        ใหม่ และพิจารณาในเรื่องความซ้าซ้ อนของข้ อมูลด้ วย


BC326 Database Management                                                        Numtip Trakulmaykee
Ex จากระบบฐานข้ อมูลภาระงานสอนของอาจารย์ ให้ เขียน E-R Diagram และแปลง
   เป็ นโมเดลเชิงสั มพันธ์ (Relational Model) โดยมีรายละเอียดดังนี้ คือ
         ฐานข้อมูลประกอบด้วย 4 เอนติต้ ี คือ
       1.       เอนติต้ ีคณะ ประกอบด้วยแอททริ บิวต์ รหัสคณะและชื่อคณะ
       2.       เอนติต้ ีภาควิชา ประกอบด้วยแอททริ บิวต์ รหัสภาควิชา,ชื่อภาควิชา,ที่ทาการ
       3.       เอนติต้ ีอาจารย์ ประกอบด้วยแอททริ บิวต์ รหัสอาจารย์,ชื่ออาจารย์,วันที่เริ่ มทางาน
                ,เงินเดือน
       4.       เอนติต้ ีชุดวิชา ประกอบด้วยแอททริ บิวต์ รหัสชุดวิชา,ชื่อชุดวิชา,จานวนหน่วยกิต
           และฐานข้อมูลมีความสัมพันธ์ระหว่างเอนติต้ ี 5 ความสัมพันธ์ คือ
       1.       ความสัมพันธ์แบบ 1:N ระหว่าง เอนติต้ ีคณะ และ เอนติต้ ีภาควิชา
       2.       ความสัมพันธ์แบบ 1:N ระหว่าง เอนติต้ ีภาควิชา และ เอนติต้ ีอาจารย์
       3.       ความสัมพันธ์แบบ Recursive ระหว่าง เอนติต้ ีอาจารย์
       4.       ความสัมพันธ์แบบ 1:N ระหว่าง เอนติต้ ีภาควิชา และ เอนติต้ ีชุดวิชา
       5.       ความสัมพันธ์แบบ N:M ระหว่าง เอนติต้ ีชุดวิชา และ เอนติต้ ีอาจารย์
BC326 Database Management                                                                 Numtip Trakulmaykee

Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์

  • 1.
    การแปลงโมเดลแบบ E-R เป็นรู ปแบบโมเดลเชิงสัมพันธ์ รหัสคนงาน วันที่ที่เริ่ มทางาน ชื่อคนงาน อัตราค่าแรง/ช.ม. จ.น.ช.ม.ทั้งหมดที่ทา 1 N ชานาญด้าน N คนงาน ได้รับ การทางาน มอบหมาย N N 1 ชานาญด้าน ชานาญด้าน 1 1 ความชานาญ สถานที่ก่อสร้าง ประเภทความชานาญ อัตราโบนัส ที่อยู่ ประเภท จานวนชัวโมงขั้นต่า ่ รหัสสถานที่ก่อสร้าง BC326 Database Management Numtip Trakulmaykee
  • 2.
    ขั้นตอนการแปลง โมเดลแบบ E-R เป็ นรู ปแบบโมเดลเชิงสัมพันธ์ 1. แปลงเอนติต้ ีปกติและแอททริ บิวท์ของเอนติต้ ี เป็ นขั้นตอนการแปลงอย่างตรงไปตรงมา โดยจะทาการแปลง Entity ปกติที่ไม่ใช่ ่ Weak Entity ให้อยูในรู ปของ Relation ซึ่งชื่อของ Entity คือ ชื่อของ Relation และ attribute ของ Entity จะเป็ น attribute ของ Relation และ ทาการขีดเส้นใต้ attribute ที่ เป็ นคียหลัก ์ คนงาน(รหัสคนงาน,ชื่อคนงาน,อัตราค่าแรง/ช.ม.) ความชานาญ(ประเภทความชานาญ,อัตราโบนัส,จานวนช.ม.ขั้นต่า) สถานที่ก่อสร้าง(รหัสสถานที่ก่อสร้าง,ที่อยู,่ ประเภทสถานที่ก่อสร้าง) หมายเหตุ ในกรณี ที่ attribute มีค่าได้มากกว่า 1 ค่า(Multivalue) หรื อมีกลุ่มซ้ า (Repeating Group) จะใช้วงเล็บครอบกลุ่ม attribute นั้น ๆ BC326 Database Management Numtip Trakulmaykee
  • 3.
    ขั้นตอนการแปลง โมเดลแบบ E-R เป็ นรู ปแบบโมเดลเชิงสัมพันธ์ การแปลง Weak Entity ่ เช่น Entity การทางาน จะเป็ นเอนติต้ ีแบบอ่อนเนื่องจากจะมีเอนติต้ ีการทางานอยูใน ฐานข้อมูลนี้ได้จะต้องมีเอนติต้ ีคนงานและเอนติต้ ีสถานที่ก่อสร้างปรากฎอยูดวย ่ ้ การทางาน(วันที่เริ่ มทางาน,จานวนช.ม.ทั้งหมดที่ทา) Entity ใดมีคุณสมบัติเป็ น Weak Entity และมีการขึ้นต่อกันเชิงระบุ จาเป็ นที่จะต้องนา ์ ั ่ ้ attribute ที่เป็ นคียของ Entity ที่มนขึ้นอยูดวยมาร่ วมเป็ นคียของ Relation แทน ์ การทางาน(รหัสคนงาน,รหัสสถานที่ก่อสร้าง,วันที่เริ่ มทางาน,จานวนช.ม.ทั้งหมดที่ทา) BC326 Database Management Numtip Trakulmaykee
  • 4.
    ขั้นตอนการแปลง โมเดลแบบ E-R เป็ นรู ปแบบโมเดลเชิงสัมพันธ์ 2. แปลงความสัมพันธ์ระหว่างเอนติต้ ี  การแทนความสั มพันธ์ แบบหนึ่งต่ อหนึ่ง (1:1) เช่น ถ้าบริ ษทแห่งหนึ่งกาหนดว่าลูกค้าคนหนึ่งจะซื้อรถยนต์ได้เพียง 1 คันเท่านั้นและรถยนต์ 1 ั คันเป็ นของลูกค้าได้เพียงคนเดียวเท่านั้น จะได้ความสัมพันธ์ดงนี้ ั ที่อยู่ หมายเลขเครื่ อง ชื่อลูกค้า ลูกค้ า 1 มีการซื้อ 1 รถยนต์ รุ่ น รหัสลูกค้า เบอร์โทรศัพท์ สี รถ BC326 Database Management Numtip Trakulmaykee
  • 5.
     การแทนความสัมพันธ์แบบหนึ่งต่อหนึ่ง (1:1) 1. แปลง Entity แต่ ละ Entity ให้ เป็ น relation โดยชื่อ Entity คือชื่อ relation และกาหนดคีย์ หลักของแต่ ละรีเลชัน ดังนี้ ลูกค้า(รหัสลูกค้า,ชื่อลูกค้า,ที่อยู,่ เบอร์โทรศัพท์) รถยนต์(หมายเลขเครื่ อง,รุ่ น,สี รถ) 2. เพิมคีย์ของ relation หนึ่งลงไปเป็ น attribute หนึ่งของอีก relation ่ รู ปแบบที่ 1 ลูกค้า(รหัสลูกค้า,ชื่อลูกค้า,ที่อยู,่ เบอร์โทรศัพท์) รถยนต์(หมายเลขเครื่ อง,รุ่ น,สี รถ,รหัสลูกค้า) รู ปแบบที่ 2 ลูกค้า(รหัสลูกค้า,ชื่อลูกค้า,ที่อยู,่ เบอร์โทรศัพท์,หมายเลขเครื่ อง) รถยนต์(หมายเลขเครื่ อง,รุ่ น,สี รถ) *** คียนอก (Foreign Key) นั้น จะแทนด้วยการขีดเส้นใต้ดวยเส้นประ ์ ้ BC326 Database Management Numtip Trakulmaykee
  • 6.
     การแทนความสัมพันธ์แบบหนึ่งต่อกลุ่ม (1:N) 1. แปลง entity ปกติแต่ ละ entity ให้ เป็ น relation โดยชื่อ entity ก็คอชื่อ relation ื และกาหนดคีย์หลักของแต่ ละ relation คนงาน(รหัสคนงาน,ชื่อคนงาน,อัตราค่าแรง/ช.ม.) ความชานาญ(ประเภทความชานาญ,อัตราโบนัส,จานวนช.ม.ขั้นต่า) 2. นาคีย์หลักของ entity ทีอยู่ด้านความสั มพันธ์ เป็ น 1 ไปเก็บเป็ น attribute ของ ่ relation ด้ านทีมีความสั มพันธ์ เป็ น N ่ คนงาน(รหัสคนงาน,ชื่อคนงาน,ประเภทความชานาญ,อัตราค่าแรง/ช.ม.) ความชานาญ(ประเภทความชานาญ,อัตราโบนัส,จานวนช.ม.ขั้นต่า) BC326 Database Management Numtip Trakulmaykee
  • 7.
    การแทนความสัมพันธ์แบบ Recursive ่ ้ ให้เพิ่มคียหลักของ relation ที่อยูดานความสัมพันธ์เป็ นหนึ่งไปเป็ น attribute ์ ของรี เลชันด้านที่มีความสัมพันธ์เป็ นกลุ่ม โดยเปลี่ยนชื่อของแอททริ บิวท์ ใหม่ คนงาน เป็ นหัวหน้างาน คนงาน(รหัสคนงาน,ชื่อคนงาน,ประเภทความชานาญ,อัตราค่าแรง/ช.ม.,หัวหน้างาน) BC326 Database Management Numtip Trakulmaykee
  • 8.
     การแทนความสัมพันธ์แบบหนึ่งต่อกลุ่ม (M:N) ในกรณี ที่เอนติต้ ีมีความสัมพันธ์แบบกลุ่มต่อกลุ่ม (M:N) เราสามารถเขียนแผนภาพ ได้ 2 แบบ แบบแรกคือการเชื่อมเอนติต้ ีน้ นด้วยความสัมพันธ์แบบกลุ่มต่อกลุ่ม ั วันที่ทางาน จานวนช.ม.ทั้งหมดที่ทา M N คนงาน มีการทางาน สถานทีก่อสร้ าง ่ แบบที่สองคือยอมให้ความสัมพันธ์น้ นสามารถมีแอททริ บิวท์ในตัวมันเองได้ ั โดยการแปลงความสัมพันธ์ที่เชื่อมระหว่างเอนติต้ ีน้ นให้เป็ นแอนติต้ ีใหม่ ั ขึ้นมาและเปลี่ยนรู ปแบบความสัมพันธ์แบบหนึ่งต่อกลุ่ม (1:N) วันที่ทางาน จานวนช.ม.ทั้งหมดที่ทา คนงาน 1 ทางานที่ N การทางาน N ทางานที่ 1 สถานที่ก่อสร้าง BC326 Database Management Numtip Trakulmaykee
  • 9.
    การแปลงความสัมพันธ์แบบ M:N ให้เป็น relation จะไม่ใช้หลักการเดียวกับ ความสัมพันธ์แบบ 1:1 หรื อ 1:N โดยการเอาคียของ relation หนึ่งไปเก็บเป็ น ์ attribute ในอีก relation หนึ่ง เหมือนดังรู ปแบบดังนี้ คนงาน(รหัสคนงาน,ชื่อคนงาน,ประเภทความชานาญ,อัตราค่าแรง/ช.ม.) สถานที่ก่อสร้าง(รหัสสถานที่ก่อสร้าง,ที่อยู,่ ประเภทสถานที่ก่อสร้าง,รหัสคนงาน) เพราะเป็ นวิธีการที่ไม่ถูกต้อง เนื่องจากจะทาให้เกิดปัญหาเกี่ยวกับความผิดปกติที่ เกี่ยวกับการจัดการข้อมูลไม่วาจะเป็ นการเพิ่ม ลบ หรื อปรับปรุ งข้อมูล เช่น ่ คนงานรหัส 1411 ได้ลาออกไป การลบข้อมูลใน relation สถานที่ก่อสร้างในแถวที่มี คนงานรหัส 1411 นั้นอยูจะทาให้เราต้องสูญเสี ยข้อมูลเกี่ยวกับสถานที่ก่อสร้างรหัส 450 ไป ่ ด้วย หรื อถ้าบริ ษทรับก่อสร้างสถานที่แห่งใหม่แต่ยงไม่ได้กาหนดว่าใครเป็ นผูไปทาการ ั ั ้ ก่อสร้างที่นนบ้าง จะทาให้เราไม่สามารถเพิ่มข้อมูลที่เกี่ยวกับสถานที่ก่อสร้างแห่งใหม่เข้าไป ั่ ยัง relation สถานที่ก่อสร้างได้ BC326 Database Management Numtip Trakulmaykee
  • 10.
    ดังนั้นจึงไม่สามารถแปลงความสัมพันธ์ M:N โดยวิธีแบบ1:1 หรื อ 1:N ได้ แต่ให้ แปลงความสัมพันธ์โดยมีข้นตอนต่อไปนี้ ั ั ขั้นตอนที่ 1. แปลงเอนติต้ ีที่มีความสัมพันธ์กนนี้นให้เป็ นรี เลชัน โดยชื่เอนติต้ ี คือ ชื่อของรี เลชัน และแอททริ บิวต์ของเอนติต้ ี คือ แอททริ บิวต์ของรี เลชัน ดังนี้ คนงาน(รหัสคนงาน,ชื่อคนงาน,ประเภทความชานาญ,อัตราค่าแรง/ช.ม.) สถานที่ก่อสร้าง(รหัสสถานที่ก่อสร้าง,ที่อยู,่ ประเภทสถานที่ก่อสร้าง) ขั้นตอนที่ 2. สร้างรี เลชันขึ้นมาใหม่หนึ่งรี เลชัน โดยรี เลชันที่สร้างขึ้นใหม่จะ ประกอบด้วยแอททริ บิวต์ของความสัมพันธ์แบบ N:M และจะมีการสร้างคียหลัก ์ ่ ของรี เลชันที่มีความสัมพันธ์แบบ N:M นั้นมาสร้างเป็ นคียหลักอยูในรี เลชันใหม่ ์ นี้ดวย ้ การทางาน(รหัสคนงาน,รหัสสถานที่ก่อสร้าง,วันที่เริ่ มทางาน,จานวนช.ม.ทั้งหมดที่ทา) BC326 Database Management Numtip Trakulmaykee
  • 11.
    ขั้นตอนที่ 3. จะได้ความสั มพันธ์ ระหว่ างรีเลชันเดิมกับรีเลชันใหม่ เปลียนไปเป็ นแบบ ่ 1:N ดังนี้ คนงาน(รหัสคนงาน,ชื่อคนงาน,ประเภทความชานาญ,อัตราค่าแรง/ช.ม.) สถานที่ก่อสร้าง(รหัสสถานที่ก่อสร้าง,ที่อยู,่ ประเภทสถานที่ก่อสร้าง) การทางาน(รหัสคนงาน,รหัสสถานที่ก่อสร้าง,วันที่เริ่ มทางาน,จานวนช.ม.ทั้งหมดที่ทา) สุ ดท้ าย คือ การพิจารณาเค้ าร่ างข้ อมูลแต่ ละรีเลชันทีได้ 2 ่ ขั้นตอนแรก คือการเขียนรีเลชันทั้งหมดที่ได้ จากการแปลง ใหม่ และพิจารณาในเรื่องความซ้าซ้ อนของข้ อมูลด้ วย BC326 Database Management Numtip Trakulmaykee
  • 12.
    Ex จากระบบฐานข้ อมูลภาระงานสอนของอาจารย์ให้ เขียน E-R Diagram และแปลง เป็ นโมเดลเชิงสั มพันธ์ (Relational Model) โดยมีรายละเอียดดังนี้ คือ  ฐานข้อมูลประกอบด้วย 4 เอนติต้ ี คือ 1. เอนติต้ ีคณะ ประกอบด้วยแอททริ บิวต์ รหัสคณะและชื่อคณะ 2. เอนติต้ ีภาควิชา ประกอบด้วยแอททริ บิวต์ รหัสภาควิชา,ชื่อภาควิชา,ที่ทาการ 3. เอนติต้ ีอาจารย์ ประกอบด้วยแอททริ บิวต์ รหัสอาจารย์,ชื่ออาจารย์,วันที่เริ่ มทางาน ,เงินเดือน 4. เอนติต้ ีชุดวิชา ประกอบด้วยแอททริ บิวต์ รหัสชุดวิชา,ชื่อชุดวิชา,จานวนหน่วยกิต  และฐานข้อมูลมีความสัมพันธ์ระหว่างเอนติต้ ี 5 ความสัมพันธ์ คือ 1. ความสัมพันธ์แบบ 1:N ระหว่าง เอนติต้ ีคณะ และ เอนติต้ ีภาควิชา 2. ความสัมพันธ์แบบ 1:N ระหว่าง เอนติต้ ีภาควิชา และ เอนติต้ ีอาจารย์ 3. ความสัมพันธ์แบบ Recursive ระหว่าง เอนติต้ ีอาจารย์ 4. ความสัมพันธ์แบบ 1:N ระหว่าง เอนติต้ ีภาควิชา และ เอนติต้ ีชุดวิชา 5. ความสัมพันธ์แบบ N:M ระหว่าง เอนติต้ ีชุดวิชา และ เอนติต้ ีอาจารย์ BC326 Database Management Numtip Trakulmaykee