Cute Orange Cloud

บทที่11

บทที่ 11

บทที่ 11
การเขียนแผนผังข้อมูลสัมพันธ์

1. ภาพรวมของแผนผังข้อมูลสัมพันธ์

1.1 ความหมายแผนผังข้อมูลสัมพันธ์
      เมื่อนักวิเคราห์ระบบได้ออกแบบระบบโดยเขียนการจำลองการทำงานด้วยแผนผังDFDแล้วยังจะต้อง
จำลองข้อมูลที่เกิดขึ้นทั้งหมดโดยใช้แผนผังข้อมูลสัมพันธ์(Entity Relationship Diagrm ERD)เรียกแบบ
สั้นๆ ทั่วไปว่า อีอาร์ดี(ERD) หรือ อีอาร์ไดอะแกรม (E-R Diagram) หมายถึง แผนผังชนิดหนึ่งที่ใช้การ
เขียนสัญลักษณ์รูปภาพแสดงความสัมพันธ์ของข้อมูล แผนผังนี้ถือได้ว่าเป็นเครื่องมืออย่างหนึ่งในการ
แสดงแบบจำลองของข้อมูล (Data Modei)

1.2 ความสำคัญ
1.2.1 วัตถุประสงค์ของการเขียน ERD 
คือการแสดงรายละเอียดเชิงลักษณะของตัวข้อมูลที่ไหลในระบบการทำงานลักษณะที่ว่านี้ได้แก่โครง
สร้างของข้อมูล ลักษณะความสัมพันธ์ระหว่างข้อมูลโดยไม่ได้สนใจวิธีการเก็บข้อมูลหรือวิธีจัดการข้อมูล
1.2.2 ข้อเปรียบเทียบระหว่าง ERD กับ DFD
          บางคนอาจตั้งคำถามใช้ เพียงอย่างเดียวยังไม่เพียงพออีกหรือในการอธิบายเราคิดขึ้นมา ทำไม
ต้องมี อีอาร์ไดอะแกรมเพิ่ม คำถามนี้หมดไปถ้าเราเข้าใจว่าผัง DFD และผัว เป็นผังคนละชนิดกันและมี
จุดประสงค์การใช้งานต่างกันโดยผัง DFD จะมุ้งเน้นแสดงการไหลของข้อมูลสู่ระบบการแต่ไม่สนใจเรื่อง
ไหลของข้อมูล
      ดังนั้นถ้าเราจะคิดสร้างระบบขึ้นมา เราควรจะมีความสามารถในการเขียนแผนผังทั้งแบบ DFD และ
แบบจำลองระบบจะขาดใดผังหนึ่งมิได้

1.3 สัญลักษณ์ที่ใช้ใน ERD
      สัญลักษณ์ที่ใช้ในผัง ERD มีหลายแบบ แต่ที่พบเห็นกันทัวไปจะมีอยู่ 2 แบบคือ แบบChen Model 
และแบบ Corw's Foot Model ดังรูปที่ 11.1 และ 11.2 สำหรับหนังสือเล่มนี้จะใช้แบบCrow's Foot 
เป็นหลัก

1.4 องค์ประกอบของ ERD
      Entrust relationship Diagram คือแผนผังประกอบด้วยเอนทีตี้ ที่แสดงความสัมพันธ์ซึ่งกันและกัน
และภายในเอนทิตี้นั้นยังมีคุณสมบัติที่เราเรียกว่า แอตทริบิวต์ ประกอบด้วย เช่น คอมพิวเตอร์ คีย์บอร์ด
เม้าส์ ถือเป็น 3 เอนทิตี้ ที่มีความสัมพันธ์กัน และแต่ล่ะเอนทิตี้สมบัติเฉพาะเช่นคีย์บอร์ด เมาส์สี่เหลี่ยม
เม้าส์วงคอมพิงเตอร์
1.4.1 เอนทิตี้(Entities)
         เป็นที่สำหรับเก็บข้อมูลแต่บะรายกายเช่น เอนทิตี้เป็นส่วนของบุคคล สถานที่ วัตถุ เหตุการณ์และ
แนวความคิดที่ทีเอกลักษณ์และคุณสมบัติอยู่ในตัว เช่นเอนทิตี้ซึ่งแต่ละเอนทิตีเจะมีเอกลักษณ์ เอนทิตี้
ไม่ซ้ำกัน จะประกอบด้วย เอนทิตี้ลูกค้า ใบสั่งซื้อสินค้า กับสินค้า ซึ่งแต่ล่ะออนทิตี้ก็จะแตกต่างกันด้วย
        ประเภทของเอนทิตี้
        เอนทิตี้แบ่งเป็น 2 ประเภท คือ
        1 Regular Entity
        Reguiar Entity เป็นเอนทิตี้ที่มีเอกลักษณ์ คือต้องมีคุณสมบัติ (Attributes) บางค่าที่ไม่ซ้ำกันเลย
ทำให้สามารถระบุข้อมูลที่เราต้องการได้จากคุณสมบัตินี้ เช่น เอนทิตี้ของสินค้าจะมีคุณสมบัติเป็นรหัส
อ้างอิงสินค้าที่ใช้ตัวเลขไม่ซ้ำกัน ทำให้เราสามารถเจาะจงข้อมูลของสินค้าตัวที่ต้องการได้จาคุณสมบัติ
เลขรหัสนี้
       2 Weak Entity
       Weak Entity เป็นเอนทิตี้ไม่มีเอกลักษณ์ ต้องพึ่ง Regular Entity ถึงจะระบุข้อมูลที่ต้องการได้ เช่น 
เอนทิตี้การสั่งซื้อ (Order) และเอนทิตี้รายละเอียดการสั่งซื้อ (Order Detail)โดยเอนทิตี้รายละเอียดการ
สั่งซื้อจะเก็บรายการของใบสั่งซื้อแต่ละใบ โดยตัวมันเองไม่สามารถระบุได้ว่ารายละเอียดแต่ละรายการ
มาจากใบสั่งซื้อใบใด ต้องพึ่งเอนทิตี้ของการสั่งซื้อจึงจะสามารถดูรายละเอียดการสั่งซื้อของใบสั่งซื้อนั้น
1.4.2 แอตทริบิวต์ (Attributes)
    แอตทริบิวต์เป็นคุณสมบัติเฉพาะตัวของเอนทริตี้หรือความสัมพันธ์ เช่น เอนทิตี้ลูกค้า จะมีคุณสมบัติ
เฉพาะตัวของลูกค้า เช่น ชื่อ ที่อยู่ ส่วนเอนทิตี้การสั่งซื้อสินค้าจะมีคุณสมบัติเฉพาะตัว คือ รหัสใบสั่งซื้อ
วันที่สั่งซื้อ ชื่อสินค้า จำนวนสินค้าที่สั่ง และราคาสินค้า เป็นต้น ซึ่งเราสามารถแสดงคุณสมบัติของแต่ละ
เอนทิตี้ได้
        ประเภทของแอตทริบิวต์
        แอตทริบิวต์หรือคุณสมบัติมีหลายประเภท พอแจกแจงได้ดังนี้
1.Simple Attribute
   Simple Attribute.  เป็นค่าคุณสมบัติทั่วไปที่มีรายละเอียดชัดเจน ไม่สามารถแบ่งย่อยได้อีกเช่น 
   เพศ ศาสนา สัญชาติ อายุ
2.Composite Attribute
   Composite Attribute เป็นคุณค่าสมบัติรวม สามารถแยกเป็น บ้านเลขที่ หมู่บ้าน ถนน ตำบล อำเภอ
   จังหวัด ประเทศ หรือ อาจจะแยกเป็นคำนำหน้า ชื่อ สกุล
3.ldentifier/key
    แอตบริบิวต์ประเภทนนี้เรียกว่า ldentifier หรือ key ก็ได้ เป็นคุณสมบัติที่มีเอกลักษณ์ คือจะไม่มีค่าซ้ำ
ในคุณสมบัตินี้ถือเป็นคุณสมบัติที่ใช้เป็นกุนแจ(key)ในการนำไปสู่ข้อมูลที่เราต้องการคีย์แบ่ง 4 ประเภท
        1)primary key (คีย์หลัก)
            เป็นคุณสมบัติที่มีค่าไม่ซ้ำกันเลย ใช้คีย์ในการหาข้อมูลที่เราต้องการ
        2)composite key (คีย์รวม)
           เป็นการรวมกลายๆคุณสมบัติในการได้คีย์ที่มีเป็นค่าไม่ซ้ำ เช่น นำเอา ชื่อ สกุล และอายุ มารวม
           กันเกิดเป็นคีย์รวมที่มีค่าไม่ซ้ำขึ้นเราสามารถใช้คีย์รวม(composite key)แทนคีย์หลัก
           (primary key)ได้
        3)candate key (คีย์คู่แข่ง)
           เป็นคุณสมบัติ หรือคุณสมบัติที่รวมกันแล้วไม่มีค่าซ้ำแต่คีย์ไม่ได้ถูกใช้คีย์เพราะเอนทิตี้หลัก
           อยู่แล้วหลักไป
        4)Foreign key (คีย์ต่างแดน)
           เป็นคีย์หลักจองเอนทิตี้ใช้ในการอ้างอิงความสัมพันธ์ เช่น การสั่งชื่อต้องเก็บคีย์หลักของเอนทิตี้
           ลูกค้าไว้เพื่อใช้ในการสั่งซื้อ เราจะเรียกว่าคีย์นี้ว่า Foreign key
4 single-value Attnbute
   single-value-Attnbute เป็นคุณสมบัติที่เก็บคำเดียว เช่น ข้อมูลราคาสินค้าจะบันทึกว่าเป็นราคาที่รวม
หรือไม่รวมภาษีเท่านั้น หรือข้อมูลเพศจะเก็บค่า ชายหรือ หญิง  เท่านั้น เป็นต้น มักเป็นคุณบัติที่ใช้บ่อย
5 Multi-Value-Attnibute
   Multi-Value-Attnibute เป็นคุณสมบัติที่เก็บหลายคำ เช่น รหัสการสั่งซื้อสินค้าทีถูกบันทึกหลายค่าใน
การสั่งซื้อที่ต่างกัน เป็นคุณสมบัติที่ใช้เก็บค่าข้อมูลได้ไม่จำกัด
6 Derived-Value-Attnibute
   Derived-Value-Attnibute เป็นคุณสมบัติที่แปรผันตามคุณสมบัติอื่น เช่น ส่วนลดจะแปรผันตามคุณสมบัติจำนวนการสั่งซื้อ
1.4.3 ความสัมพันธ์ (Relationships)
         ความสัมพันธ์เป็นความสัมพันธ์ระหว่างเอนทิตี้ต่างๆในระบบ เช่น ในระบบการสั่งซื้อสินค้า จะประ
กอบด้วนเอนทิตี้การสั่งซื้อสินค้าและเอนทิตี้ลูกค้า ซึ่งมีความสัมพันธ์จางลูกค้าไปยัวการสั่งซื้อสินค้าเป็น
แบบหนึ่งต่อกลุ่ม (One-to-Many) หมายความว่า ลูกค้ารายเดือนสามารถมีใบสั่งซื้อสินค้าได้หลายใบ
ทำให้สามารถสั่งซื้อสินค้าได้หลายชิ้น แต่ใบสั่งซื้อแต่ละใบจะมาจากลูกค้าเพียงรายเดือนเท่านั้น เป็นต้น
ความสัมพันธ์ระหว่างเอนทิตี้ที่กล่าวสามารถแสดงได้
        ประเภทความสัมพันธ์
        ความสัมพันธ์มีอยู่ 3 ประเภท
   1) ความสัมพันธ์หนึ่งต่อหนึ่งเป็นความสัมพันธ์แบบจับคู่หนึ่งต่อหนึ่ง จะไม่มีการจับคู่แบบหนึ่งต่อกลุ่ม
       โดยเด็ดขาด เช่น ความสัมพันธ์ของใบสั่งซื้อใบเสร็จ ใบสั่งชื่อจะออกใบเสร็จได้ใบเดียว และใบเสร็จ
        จะเป็นยอดของใบสั่งซื้อเพียงใบเดียว
   2) ความสัมพันธ์หนึ่งต่อกลุ่ม
       เป็นความสัมพันธ์ที่พบบ่อยที่สุดคือฝั่ง สามารถจับคู่กับ ได้หลายคู่แต่กลับกันฝั่ง ลูกค้าสามารถ
       มีใบสั่งซื้อสินค้าได้หลายแบบ ตะมาจากลูกค้าแค่คนเดียว
   3) ความสัมพันธ์กลุ่มต่อกลุ่ม
       เป็นความสัมพันธ์ที่ต่างฝ่ายสามารถจับคู่กันและกันและได้หลายคู่เช่น ใบสั่งซื้อสินค้า กับสินค้า
       ใบสั่งซื้อสินค้าหนึ่งใบสามารถมีสินได้หลายแบบและมาสินค้าชนิดหนึ่งสามารถปรากฏในใบสั่งซื้อ
       หลายๆใบได้

2. วิธีการเขียน ERD
    การเขียนผัง ERD  มีสิ่งที่ต้องทำความเข้าใจ 4 ประเด็น

2.1 ขั้นตอนในการเขียนผังแบบ. ERD
       -  จากตัวอย่างเป็นการสั่งซื้อสินค้า มีเอนทิติ้3ตัวคือ ลูกค้า ใบสั่งซื้อ และสินค้า

2.2 การออกแบบระดับกายภาพ
      เป็นการออกแบบการส้รางโครงสร้างฐานข้อมูลจริง โดยออกแบบฐานระบบจัดการฐานข้อมูล 
ที่ต้องการนำมาใช้จริงเช่นกำหนด ประเภทและขนาดของฟิลด์ข้อมูลที่สอดคล้องกับการทำงสนจริงและ
ความสามารถของระบบฐานข้อมูลที่เลือกใช้ที่ได้จากการออกแบบระดับด้วยระบบหรือโปรแกรมจัดทำ
ฐานข้อมูลได้แก่ Oracie Microsoft. Access Microsoft SQL

2.3 นอน์มัลไลเซซัน
2.3.1. ความหมายการเก็บข้อมูลในฐานข้อมูลนั้นจะเก็บเป็นการปรับปรุงข้อมูลในฐานข้อมูลที่มีความซับ
ซ้อนให้อยู่ในรูปแบบที่เป็นปกติ นอร์มัลไลเซซันเป็นทฤษฏีที่ใช้ในการทำให้เอนทิตี้และคุณสมบัติ ที่ได้
ออกแบบไว้ถูกจัดกลุ่มเป็นตารางที่มีความสัมพันธ์และสามารถดูได้ง่าย
           การจัดกลุ่มเป็นตารางที่มีความสัมพันธ์กันนั้นจะต้องเป็นไปตามกฏของนอน์มัลไลเซซันะซึ่งมีอยู่
- จะต้องทีการใช้คุณสมบัติค่าใดร่วมกัน
- คุณสมบัติทุกตัวต้องขึ้นอยู่กับคีย์หลัก ไม่ใช่บางส่วนของคีย์หลัก
- คุณสมบัติทุกตัวต้องขึ้นอยู่กับคีย์หลัก ไม่ใช่ขึ้นอยู่กับคุณสมบัติอื่นที่ไม่เป็นคีย์หลัก
2.3.2 จุดประสงค์ของการนอร์มัลไลเชชัน
         เนืองจากผัง ERD เป็นส่วนที่นำไปเป็นแบบในการสร้างฐานข้อมูลของระบบดังต่อไปลดความซ้ำ
ซ้อนของข้อมูลตาราง นอร์มัลไลเซซันทำให้ได้ตารางที่เก็บข้อมูลมี่มีเอกลักษณ์เจาะจงแบบต่างๆและมี
ความสัมพันธ์เมื่อเกิดความจำเป็นที่จะต้องปรับปรุงแก้ไขข้อมูลในตารางก็จะไม่ต้องแก้ไขข้อมูลหลายๆ

3. การอธิบายรายละเอียดข้อมูล
    จากหัวข้อนอร์มัลไลเซชัน เราจะได้โครงสร้างของระบบฐานข้อมูลที่พร่อมใช้ แต่นั่นยังไม่พอเพียง
เพราะยังขาดส่วนของการอธิบายรายละเอียดข้อมูลซึ่งจะต้องมีการจัดทำเอกสารประกอบคู่กับผังERD
ที่ผ่าน นอร์มัลไลเซชันแล้ว เอกสารนี้เรียกว่า พจนนุกรมข้อมูล (Data Dictionary) ซึ่งจะมีรายละเอียด
ในบทที่ 12
     พจนานุกรมข้อมูลเป็นเอกสารที่ลงรายละเอียดของระบบข้อมูลที่เราออกแบบขึ้นมา เอกสารนี้จะใช้
อ้างอิงสำหรับการสร้างฐานข้อมูลใช้งานจริงปกติจะอยู่ในรูปแบบของตารางประกอบด้วยคอลัมน์หลักๆ
คือชื่อต่าง ชื่อคุณสมบัติ ประเภทข้อมูล ขนาดความยามข้อมูล และคำอธิบายข้อมูล จากผลลัพธ์
นอร์มัลไลชันในหัวข้อ 2.3 สามารถเขียนเป็นพจนานุกรมได้

ไม่มีความคิดเห็น:

แสดงความคิดเห็น