บทที่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) ความสัมพันธ์หนึ่งต่อกลุ่ม เป็นความสัมพันธ์ที่พบบ่อยที่สุดคือฝั่ง A สามารถจับคู่กับ B ได้หลายคู่แต่กลับกันฝั่ง ลูกค้าสามารถมีใบสั่งซื้อสินค้าได้หลายแบบ ตะมาจากลูกค้าแค่คนเดียว 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 สามารถเขียนเป็นพจนานุกรมได้

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

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