โมเดลจำลองความสัมพันธ์ระหว่างข้อมูล (E-R Model) |
E-R Model เป็นโมเดลที่ใช้ในการออกแบบฐานข้อมูล ในระดับ conceptual ประกอบด้วยชุดของ object (Entity) และความสัมพันธ์ (relationship) ระหว่าง object E-R diagram สร้างขึ้นเพื่อสื่อความหมายของข้อมูลในระบบและแสดงให้เห็นความสัมพันธ์กันของข้อมูล
Entity-Relationship Model หรืออี-อาร์โมเดล เป็นแบบจำลองข้อมูลที่ได้รับการประยุกต์มาจากแนวคิดของ Semantic โมเดล และได้รับความนิยมอย่างมากสำหรับนำมาใช้เพื่อการออกแบบฐานข้อมูลในระดับแนวคิด โดยอี-อาร์โมเดลเป็นผลงานการพัฒนาของ Peter Pin Shan Chen จาก Massachusetts Institute of Technology ในปี ค.ศ.1976
อี-อาร์โมเดล เป็นแบบจำลองข้อมูลซึ่งแสดงถึงโครงสร้างของฐานข้อมูลที่เป็นอิสระจากซอฟต์แวร์ที่จะใช้ในการพัฒนาฐานข้อมูล รวมทั้งรายละเอียดและความสัมพันธ์ระหว่างข้อมูลในระบบในลักษณะที่เป็นภาพรวม ทำให้เป็นประโยชน์อย่างมากต่อการรวบรวมและวิเคราะห์รายละเอียด ตลอดจนความสัมพันธ์ของข้อมูลต่าง ๆ โดยอี-อาร์โมเดลมีการใช้สัญลักษณ์ต่างๆ ที่เรียกว่า Entity Relationship Diagram หรือ อี-อาร์ไดอะแกรม แทนรูปแบบของข้อมูลเชิงตรรกะขององค์กร จึงทำให้บุคลากรที่เกี่ยวข้องกับระบบฐานข้อมูลสามารถเข้าใจลักษณะของข้อมูลและความสัมพันธ์ระหว่างข้อมูลได้ง่ายและถูกต้องตรงกัน ระบบที่ได้รับการออกแบบจึงมีความถูกต้องและสอดคล้องกับวัตถุประสงค์ขององค์กรทั้งนี้ อี-อาร์โมเดลประกอบด้วย 4 ส่วน คือ เอนทิตี Property ความสัมพันธ์ Subtype และ Supertype
เอนติตี้ แอททริบิวท์และความสัมพันธ์
ในการออกแบบและใช้งานฐานข้อมูลใด ๆ เราจำ เป็นต้องนิยามสิ่งต่างๆ ได้ และเข้าใจถึงความสัมพันธ์ของสิ่งต่าง ๆ ได้ โดยใช้ เอนติตี้ และ แอททริบิวท์เป็นเครื่องมือในการอธิบาย
• เอนติตี้ (Entity) หมายถึงสิ่งต่างๆที่เราเกี่ยวข้องกับฐานข้อมูลนั้นๆ ซึ่งอาจจะเป็นรูปธรรม
หรือ นามธรรมก็ได้ ตัวอย่างเช่น เอนติตี้ที่เป็นรูปธรรม ได้แก่ บุคคล สถานที่ สิ่งของ หรือเอนติตี้ที่เป็นนามธรรม ได้แก่ การลงทะเบียน การสั่งซื้อของ เป็นต้น ตัวอย่างเช่นการลงทะเบียนของนักศึกษา ประกอบด้วย 3 เอนติตี้ ได้แก่ นักศึกษา รายวิชา การลงทะเบียน ผลการเรียน สาขาวิชา และสำ นักวิชาต้นสังกัด เป็นต้น
• แอททริบิวท์ (Attribute) จะเป็นส่วนองค์ประกอบที่แสดงคุณสมบัติของเอนติตี้ เช่น เอนติ
ตี้รายวิชาจะประกอบด้วยแอททริบิวท์รหัสวิชา และ หน่วยกิต เป็นต้น
1. เอนติตี้ (Entity)
องค์ประกอบพื้นฐานที่สำ คัญที่สุดคือ “Entity” ซึ่งหมายถึง สิ่งของ วัตถุ หรือองค์กรของสังคมที่มีอยู่ในโลกที่มนุษย์เข้าใจและยอมรับความมีอยู่จริงอย่างมีรูปธรรม (Conceptual Existence)
เช่น บริษัท, งาน, มหาวิทยาลัย,พนักงาน ฯลฯ ในแต่ละ Entity มีคุณสมบัติ (Attribute)เฉพาะตัวที่บรรยายตัวเอง Attribute ของแต่ละ Entity จะกลายเป็น ข้อมูลที่เราต้องการเก็บไว้ในฐานข้อมูล ตัวอย่างเช่น รูปที่ 6.1 ดังต่อไปนี้แสดง Entity และ Attribute Entity Employee entity อาจถูกบรรยายโดย Name (ชื่อ) Age (อายุ) Address (ที่อยู) Salary (เงินเดือน) และ Job (งาน)
![]() |
บาง Attribute สามารถแบ่งออกเป็นส่วนย่อยอีกเช่น Address ประกอบด้วย StreetAddress ,State, City และ Zip ลักษณะนี้เรียกว่า Composit Attribute
ฐานข้อมูลมักจะประกอบด้วยหลายกลุ่มของ Entity ที่คล้ายกัน เนื่องจาก Entity หนึ่ง จะมี
Attribute คล้ายกันซึ่งเรียกว่า Entity type และ ในแต่ละ Attribute ของ Entity type ประกอบด้วย
Value set (Domain) คือชุดของ Values ที่ถูกกำ หนดให้ Atribute ในแต่ละ Entity ตัวอย่างเช่น ถ้าชุดของอายุคนที่สนใจตั้งแต่ 16-70 Value set ของอายุคือ ตัวเลขจำ นวนเต็ม 16 จนถึงตัวเลขจำ นวนเต็ม70 เราสามารถอธิบายความสัมพันธ์เหล่านี้ได้โดยคณิตศาสตร์คือ ให้ Attribute A ของ Entity type E มี Value set เท่ากับ V A: E → P(v)
![]() |
อาจจะเขียน Attribute A สำ หรับ Entity e Multivalued Attribute รวมไปถึง Null จะแทนโดย เซตว่าง (Empty set) คือ A (e) โดยมีค่าได้ตั้งแต่ single_value attribute และ
สำ หรับ Composite Attribute A เซตของ V คือค่าของ cartesian prodict ของ P(v1,P(v2),___P(vn) ที่ v1,V2,___vn คือ V = P(v1) x P(v2) x________x P(vn)
2. ความสัมพันธ์ระหว่างเอนติตี้ (Relationships,Roles, and Structural Constraints)
ความสัมพันธ์ระหว่างเอนติตี้ 3 ประเภทใหญ่ๆ คือ 1) ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One to One Relationship) ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One to Many RelationshIp) และความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many to Many Relationship) ER model ฉะนั้นสามารถแสดง ความสัมพันธ์ในรูปของสมการทางคณิตศาสตร์คือ ให้ R = relationship type คือ เซตของความสัมพันธ์ ri ใด ๆ โดยแต่ละ ri คือ entity จำ นวน n ใด ๆ (e1 , e2 , e3____, em) และแต่ละ ej ri คือสมาชิกของ Entity type Ej ที่ 1< =<= n ดังนั้น ความสัมพันธ์ R เกิดจาก subset ของ Cartesian product E1 x E2 x ___x En และสามารถเขียนเป็นสมการดังนี้ ri = (e1 , e2 , e3____, em)
ตัวอย่างเช่น ความสัมพันธ์ WORKS_FOR ระหว่าง EMPLOYEE Entity กับ
DEPARTMENT Entity
DEPARTMENT Entity
![]() |
รูป แสดงความสัมพันธ์ระหว่าง Employee, Work_for และ Department
ในรูปแสดงให้เห็นสมาชิกของความสัมพันธ์ (ri) ใด ๆ เชื่อม Employee กับ Department เข้าด้วย เช่น Employee e1 , e3 และ e4 ที่ทำ งาน (work_for) แผนก (Department) d 1
Weak Entity types
บาง Entity อาจจะไม่มีลักษณะเฉพาะ ของตัวเองเลยนั่นหมายถึง เราอาจจะ ไม่สามารถหาความมีตัวตนของ Entity ได้ (Value ของ Attribute ไม่มีเอกลักษณ์เฉพาะของตัวเอง) เราเรียก Entity แบบนี้ว่า Weak Entity types Entity ที่เราเรียกว่า Weak Entity type จะถูกกำ หนดโดยอีก Entity หนึ่งโดยใช้ผลรวมของบาง Attribute value ของ Entity นี้ เราเรียก Entity อันหลังว่า Identifying owner และเรียกความสัมพันธ์แบบนี้ว่า Identifying relationship
ประเภทของความสัมพันธ์
การกำหนดรีเลชันชิประหว่างเอนทิตีนั้นต้องคำนึงถึงทิศทางของการกำหนดรีเลชันชิปนั้นด้วยว่าเป็นรีเลชันชิปจากเอนทิต ีใดไปเอนทิตีใดโดยใช้ลูกศรแทนทิศทางของรีเลชันชิป และจะต้องมีเอนทิตีหนึ่งเป็นเอนทิตีหลักเราเรียก
เอนทิตีหลักนั้นว่า เอนทิตีระดับพ่อแม่ (Parent Entity) และเรียกเอนทิตีทตามมาว่าเอนทิตีระดับลูก(Child Entity)
และหัวลูกศรจะชี้ไปทางเอนทิตีระดับลูกเสมอโดยวิธีนี้เราสามารถแบ่งรีเลชันชิปออกเป็นประเภทโดยขึ้นอยู่กับอัตราส่วน
ของระเบียน 3 (Record) ในเอนทิตีระดับพ่อแม่และเอนทิตีระดับลูก คือ
1. One-to-One คือ ความสัมพันธ์ 1 ต่อ 1 นั่นคือ ในความสัมพันธ์จาก Entity Set A ไปยัง B สมาชิกของ A แต่ละตัวจับคู่กับ B ตัวเดียวเท่านั้น
และ B หนึ่งตัวจับคู่กับ A เพียงตัวเดียว เช่น สมมติการมีบัญชีเงินฝากของธนาคารแห่งหนึ่ง กำหนดให้ลูกค้ามีบัญชีได้เพียง 1 เดียว และหนึ่ง
บัญชีมีเจ้าของเพียงคนเดียว ความสัมพันธ์ " การเป็นเจ้าของบัญชี " นี้ จัดเป็นแบบ 1-to-1 ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (one-to-one , 1:1 Relationship)เป็นรีเลชันชิปที่เมื่อพิจารณาระเบียนใดระเบียนหนึ่งในเอนทิตีหนึ่งจะมีความสัมพันธ์กับระเบียนในอีกเอนทิตีหนึ่ง
เพียงระเบียนเดียวเท่านั้น
เอนทิตีหลักนั้นว่า เอนทิตีระดับพ่อแม่ (Parent Entity) และเรียกเอนทิตีทตามมาว่าเอนทิตีระดับลูก(Child Entity)
และหัวลูกศรจะชี้ไปทางเอนทิตีระดับลูกเสมอโดยวิธีนี้เราสามารถแบ่งรีเลชันชิปออกเป็นประเภทโดยขึ้นอยู่กับอัตราส่วน
ของระเบียน 3 (Record) ในเอนทิตีระดับพ่อแม่และเอนทิตีระดับลูก คือ
1. One-to-One คือ ความสัมพันธ์ 1 ต่อ 1 นั่นคือ ในความสัมพันธ์จาก Entity Set A ไปยัง B สมาชิกของ A แต่ละตัวจับคู่กับ B ตัวเดียวเท่านั้น
และ B หนึ่งตัวจับคู่กับ A เพียงตัวเดียว เช่น สมมติการมีบัญชีเงินฝากของธนาคารแห่งหนึ่ง กำหนดให้ลูกค้ามีบัญชีได้เพียง 1 เดียว และหนึ่ง
บัญชีมีเจ้าของเพียงคนเดียว ความสัมพันธ์ " การเป็นเจ้าของบัญชี " นี้ จัดเป็นแบบ 1-to-1 ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (one-to-one , 1:1 Relationship)เป็นรีเลชันชิปที่เมื่อพิจารณาระเบียนใดระเบียนหนึ่งในเอนทิตีหนึ่งจะมีความสัมพันธ์กับระเบียนในอีกเอนทิตีหนึ่ง
เพียงระเบียนเดียวเท่านั้น

2. One-to-Many คือ ความสัมพันธ์ 1 ต่อ หลาย นั่นคือ ในความสัมพันธ์จาก Entity Set A ไปยัง B สมาชิกของ A แต่ละตัวจับคู่กับ B
ได้มากกว่าหนึ่ง แต่ B หนึ่งตัวจับคู่กับ A เพียงตัวเดียวเท่านั้น เช่น หากธนาคารกำหนดให้ลูกค้า (Entity A) หนึ่งคนเปิดบัญชี ได้มากกว่าหนึ่ง
แต่ บัญชีหนึ่งๆมีเจ้าของเพียงหนึ่งเดียว ความสัมพันธ์" การเป็นเจ้าของบัญชี " นี้ จัดเป็นแบบ 1-to-M ความสัมพันธ์แบบหนึ่งต่อหลาย
(one-to-many, 1:N Relationship) รีเลชันชิปจะเกิดขึ้นได้ตั้งแต่ 0 จนถึงหลาย ๆ ครั้ง โดยแต่ละระเบียนของเอนทิตีลูกจะสัมพันธ์กับเอนทิต
ีแม่ได้หนึ่งระเบียนเท่านั้น แต่หนึ่งระเบียนในเอนทิตีแม่สัมพันธ์กับเอนทิตีลูกได้หลายระเบียน
ได้มากกว่าหนึ่ง แต่ B หนึ่งตัวจับคู่กับ A เพียงตัวเดียวเท่านั้น เช่น หากธนาคารกำหนดให้ลูกค้า (Entity A) หนึ่งคนเปิดบัญชี ได้มากกว่าหนึ่ง
แต่ บัญชีหนึ่งๆมีเจ้าของเพียงหนึ่งเดียว ความสัมพันธ์" การเป็นเจ้าของบัญชี " นี้ จัดเป็นแบบ 1-to-M ความสัมพันธ์แบบหนึ่งต่อหลาย
(one-to-many, 1:N Relationship) รีเลชันชิปจะเกิดขึ้นได้ตั้งแต่ 0 จนถึงหลาย ๆ ครั้ง โดยแต่ละระเบียนของเอนทิตีลูกจะสัมพันธ์กับเอนทิต
ีแม่ได้หนึ่งระเบียนเท่านั้น แต่หนึ่งระเบียนในเอนทิตีแม่สัมพันธ์กับเอนทิตีลูกได้หลายระเบียน
![]() |
3. Many-to-One คือ ความสัมพันธ์ หลายต่อ 1 นั่นคือ ในความสัมพันธ์จาก Entity Set A ไปยัง B สมาชิกของ A แต่ละตัวจับคู่กับ
B ได้ตัวเดียว แต่อาจซ้ำกันไดคือ B ตัวเดียวกัน จะจับคู่กับ A ได้มากกว่าหนึ่ง เช่น ในความสัมพันธ์ การเป็นแม่ลูก แม่(Entity B)
คนหนึ่งอาจมีลูกได้หลายคน แต่ลูก (Entity A) แต่ละคน มีแม่เพียงหนึ่งเดียวซึ่ง ลูกหลายคนอาจมีแม่คนเดียวกันได้ ความสัมพันธ์นี้ จัดเป็น M-to-1
B ได้ตัวเดียว แต่อาจซ้ำกันไดคือ B ตัวเดียวกัน จะจับคู่กับ A ได้มากกว่าหนึ่ง เช่น ในความสัมพันธ์ การเป็นแม่ลูก แม่(Entity B)
คนหนึ่งอาจมีลูกได้หลายคน แต่ลูก (Entity A) แต่ละคน มีแม่เพียงหนึ่งเดียวซึ่ง ลูกหลายคนอาจมีแม่คนเดียวกันได้ ความสัมพันธ์นี้ จัดเป็น M-to-1
![]() |
4. Many-to-Many คือ ความสัมพันธ์ หลายต่อหลาย นั่นคือ ในความสัมพันธ์จาก Entity Set A ไปยัง B สมาชิกของ
Aแต่ละตัวจับคู่กับ B ได้มากกว่าหนึ่ง และ B ก็จับคู่กับ A ได้มากกว่าหนึ่ง เช่นกัน เช่น การลงทะเบียนเรียนในเทอมหนึ่งๆ
นักศึกคนหนึ่งสามารถลงเรียนได้ มากกว่าหนึ่งวิชา (course) และ แต่ละ courseก็มีนักศึกษามาเข้าเรียนมากกว่าหนึ่งคนความ
สัมพันธ์แบบหลายต่อหลาย(many-to-many, M:N Relationship) เป็นรีเลชันชิปที่เกิดขึ้นได้ตั้งแต่ 0 ครั้งจนถึงหลาย ๆ
ครั้งในทั้งสองทิศทางกล่าวคือระเบียนใดระเบียนหนึ่งในเอนทิตีลูกจะมีความสัมพันธ์กับระเบียนในเอนทิตีแม่ได้หลายระเบียนและ
ในทางกลับกันระเบียนใดระเบียนหนึ่งในเอนทิตีแม่ก็สัมพันธ์กับระเบียนในเอนทิตีลูกได้หลายระเบียนเช่นกัน
Aแต่ละตัวจับคู่กับ B ได้มากกว่าหนึ่ง และ B ก็จับคู่กับ A ได้มากกว่าหนึ่ง เช่นกัน เช่น การลงทะเบียนเรียนในเทอมหนึ่งๆ
นักศึกคนหนึ่งสามารถลงเรียนได้ มากกว่าหนึ่งวิชา (course) และ แต่ละ courseก็มีนักศึกษามาเข้าเรียนมากกว่าหนึ่งคนความ
สัมพันธ์แบบหลายต่อหลาย(many-to-many, M:N Relationship) เป็นรีเลชันชิปที่เกิดขึ้นได้ตั้งแต่ 0 ครั้งจนถึงหลาย ๆ
ครั้งในทั้งสองทิศทางกล่าวคือระเบียนใดระเบียนหนึ่งในเอนทิตีลูกจะมีความสัมพันธ์กับระเบียนในเอนทิตีแม่ได้หลายระเบียนและ
ในทางกลับกันระเบียนใดระเบียนหนึ่งในเอนทิตีแม่ก็สัมพันธ์กับระเบียนในเอนทิตีลูกได้หลายระเบียนเช่นกัน
![]() |
คีย์ (key)
คีย์ คือ ชุดของแอตตริบิวที่เล็กที่สุดที่ใช้อ้างถึงระเบียนต่าง ๆ ในเอนทิตี แอตตริบิวที่แทนค่าคีย์จะมีค่าซํ้ากันไม่ได้ (Unique) ทุกเอนทิตีจะต้องมีคีย์หลักเสมอ คีย์หลักมีคุณสมบัติพิเศษต่างจากคีย์อื่น ๆ คือมีค่าเป็นนัล (Null Character) ไม่ได้ นอกจากนั้นในเอนทิตีหนึ่ง ๆ อาจมีคีย์รองเพื่อใช้ในการอ้างอิงถึงระเบียนต่าง ๆ ในเอนทิตีซึ่งชุดของแอตตรีบิวที่แทนคีย์รองจะต้องเป็นคนละชุดกับแอตตริบิวที่แทนคีย์หลักเสมอ และในเอนทิตีหนึ่ง ๆ จะมีคีย์รองหรือไม่ก็ได้ กล่าวอย่าง่ายๆก็คือ คีย์นั้นเป็นสิ่งที่เล็กที่สุดที่สามารถบง่ บอกความมีตัวตนอยู่ได้ข องเอนติตี้นั้นๆ
• นิยาม Super Key Super Key คือ เซ็ทของแอตทิวบิวท์ที่สามารถแทนEntity
• นิยาม Candidate Key Candidate Key คือ Super Key ที่ ไม่มี ซับเซ็ทของ ตัวเอง ที่เป็น Super Key
ตัวอย่าง : STUDENT (ID,LAST,FIRST,TEL#,ADDRESS) จะมี
{ID,Tel# } คือ SuperKey
{LAST, FIRST} คือ SuperKey
{LAST, FIRST, ID} คือ SuperKey
แต่ {ID} คือ SuperKey และ Candidate Key
โมเดลข้อมูลเชิงสัมพันธ์ (Entity_Relationship Model)
โมเดลข้อมูลเชิงสัมพันธ์ (Entity_Relationship Model) ถูกนำ เสนอโดย Chen (1976) และได้รับการพัฒนาจะสมบูรณ์ในปี 1979 เพื่อใช้ในการ พยายามจะอธิบายฐานข้อมูลในรูปแบบแผนภาพ นั้นคือมนุษย์พยายาม เขียนสร้างที่เป็นจินตภาพ (ในที่นี้คือ มุมมองที่เขามองฐานข้อมูล) ให้เป็นกายภาพในรูปแผนภาพ แผนภาพ ER ดังกล่าวใช้พื้นฐานของโมเดลข้อมูลเชิงตรรกะ (Logical Data Model) ของ Fleming ที่เสนอไว้ในปี 1989
เป็นวิธีการแสดงความต้องการสารสนเทศในระบบธุรกิจให้เป็นแผนภาพ ในขั้นตอนการวิเคราะห์และออกแบบระบบฐานข้อมูล เน้นตัวข้อมูลที่มีอยู่จริงโดยไม่คำ นึงถึงรายละเอียดในการติดตั้ง, ความต้องการพิเศษอื่นในแง่การใช้งาน และความเร็วในการสืบค้นข้อมูล หรืออาจกล่าวอีกนัยหนึ่งว่าโมเดลข้อมูลเชิงตรรกะเป็นการสร้างโครงร่างวิวของผู้ใช้ (Skeletal User View) จะแสดงข้อมูลในขอบเขตที่ผู้ออกแบบสนใจโดยมีสิ่งที่ต้องกำ หนดเป็นพื้นฐานได้แก่ เอนทิตี, รีเลชันชิป, แอตตริบิว ในแง่ของ ER-DIagram ประกอบด้วย
เอนทิตี้ คือสิ่งที่มีอยู่จริง จับต้องได้ หรือเป็นจินตภาพที่แสดงความเป็นหนึ่งเดียวเมื่อกล่าวถึงแล้วทุกคนเข้าใจตรงกัน เช่น สินค้า, วัตถุดิบ, แผนกต่าง ๆ, การสั่งซื้อ
รีเลชันชิป คือความสัมพันธ์ซึ่งเป็นลักษณะการเกี่ยวพันกันระหว่างเอนทิรีหนึ่งกับตัวมันเองหรือ เอนทิตีอื่น อาจเป็นความสัมพันธ์ที่มากกว่า 2 เอนทิตีก็ได้ เช่นแผนกจัดซื้อทำ การสั่งซื้อสินค้าหรือวัตถุดิบ
แอตตริบิว คือกลุ่มของค่าความจริงใด ๆ ที่เป็นรายละเอียดของเอนทิตีซึ่งแสดงลักษณะและ คุณสมบัติของเอนทิตี ทำ ให้เข้าใจเอนทิตีได้ลึกซึ้งยิ่งขึ้น และเป็นสิ่งที่ไม่สามารถแตกย่อยลงไปได้อีกโดยไม่เสียความหมายไป เช่น รหัสสินค้า, สถานที่เก็บ, ชื่อสินค้า, ราคา นอกจากนั้นยังมีการระบุด้วยว่าแอตตริบิวใดเป็นคีย์กำ หนดกฎข้อบังคับต่าง ๆ ของเอนทิตีและรีเลชันชิป
คีย์ คือ ชุดของแอตตริบิวที่เล็กที่สุดที่ใช้อ้างถึงระเบียนต่าง ๆ ในเอนทิตี แอตตริบิวที่แทนค่าคีย์จะมีค่าซํ้ากันไม่ได้ (Unique) ทุกเอนทิตีจะต้องมีคีย์หลักเสมอ คีย์หลักมีคุณสมบัติพิเศษต่างจากคีย์อื่น ๆ คือมีค่าเป็นนัล (Null Character) ไม่ได้ นอกจากนั้นในเอนทิตีหนึ่ง ๆ อาจมีคีย์รองเพื่อใช้ในการอ้างอิงถึงระเบียนต่าง ๆ ในเอนทิตีซึ่งชุดของแอตตรีบิวที่แทนคีย์รองจะต้องเป็นคนละชุดกับแอตตริบิวที่แทนคีย์หลักเสมอ และในเอนทิตีหนึ่ง ๆ จะมีคีย์รองหรือไม่ก็ได้ กล่าวอย่าง่ายๆก็คือ คีย์นั้นเป็นสิ่งที่เล็กที่สุดที่สามารถบง่ บอกความมีตัวตนอยู่ได้ข องเอนติตี้นั้นๆ
• นิยาม Super Key Super Key คือ เซ็ทของแอตทิวบิวท์ที่สามารถแทนEntity
• นิยาม Candidate Key Candidate Key คือ Super Key ที่ ไม่มี ซับเซ็ทของ ตัวเอง ที่เป็น Super Key
ตัวอย่าง : STUDENT (ID,LAST,FIRST,TEL#,ADDRESS) จะมี
{ID,Tel# } คือ SuperKey
{LAST, FIRST} คือ SuperKey
{LAST, FIRST, ID} คือ SuperKey
แต่ {ID} คือ SuperKey และ Candidate Key
โมเดลข้อมูลเชิงสัมพันธ์ (Entity_Relationship Model)
โมเดลข้อมูลเชิงสัมพันธ์ (Entity_Relationship Model) ถูกนำ เสนอโดย Chen (1976) และได้รับการพัฒนาจะสมบูรณ์ในปี 1979 เพื่อใช้ในการ พยายามจะอธิบายฐานข้อมูลในรูปแบบแผนภาพ นั้นคือมนุษย์พยายาม เขียนสร้างที่เป็นจินตภาพ (ในที่นี้คือ มุมมองที่เขามองฐานข้อมูล) ให้เป็นกายภาพในรูปแผนภาพ แผนภาพ ER ดังกล่าวใช้พื้นฐานของโมเดลข้อมูลเชิงตรรกะ (Logical Data Model) ของ Fleming ที่เสนอไว้ในปี 1989
เป็นวิธีการแสดงความต้องการสารสนเทศในระบบธุรกิจให้เป็นแผนภาพ ในขั้นตอนการวิเคราะห์และออกแบบระบบฐานข้อมูล เน้นตัวข้อมูลที่มีอยู่จริงโดยไม่คำ นึงถึงรายละเอียดในการติดตั้ง, ความต้องการพิเศษอื่นในแง่การใช้งาน และความเร็วในการสืบค้นข้อมูล หรืออาจกล่าวอีกนัยหนึ่งว่าโมเดลข้อมูลเชิงตรรกะเป็นการสร้างโครงร่างวิวของผู้ใช้ (Skeletal User View) จะแสดงข้อมูลในขอบเขตที่ผู้ออกแบบสนใจโดยมีสิ่งที่ต้องกำ หนดเป็นพื้นฐานได้แก่ เอนทิตี, รีเลชันชิป, แอตตริบิว ในแง่ของ ER-DIagram ประกอบด้วย
เอนทิตี้ คือสิ่งที่มีอยู่จริง จับต้องได้ หรือเป็นจินตภาพที่แสดงความเป็นหนึ่งเดียวเมื่อกล่าวถึงแล้วทุกคนเข้าใจตรงกัน เช่น สินค้า, วัตถุดิบ, แผนกต่าง ๆ, การสั่งซื้อ
รีเลชันชิป คือความสัมพันธ์ซึ่งเป็นลักษณะการเกี่ยวพันกันระหว่างเอนทิรีหนึ่งกับตัวมันเองหรือ เอนทิตีอื่น อาจเป็นความสัมพันธ์ที่มากกว่า 2 เอนทิตีก็ได้ เช่นแผนกจัดซื้อทำ การสั่งซื้อสินค้าหรือวัตถุดิบ
แอตตริบิว คือกลุ่มของค่าความจริงใด ๆ ที่เป็นรายละเอียดของเอนทิตีซึ่งแสดงลักษณะและ คุณสมบัติของเอนทิตี ทำ ให้เข้าใจเอนทิตีได้ลึกซึ้งยิ่งขึ้น และเป็นสิ่งที่ไม่สามารถแตกย่อยลงไปได้อีกโดยไม่เสียความหมายไป เช่น รหัสสินค้า, สถานที่เก็บ, ชื่อสินค้า, ราคา นอกจากนั้นยังมีการระบุด้วยว่าแอตตริบิวใดเป็นคีย์กำ หนดกฎข้อบังคับต่าง ๆ ของเอนทิตีและรีเลชันชิป
การเขียนแผนภาพ ER Diagram คุณลักษณะของ ER Diagram 1. แสดงได้ด้วยแผนภาพ (Graphical Diagrams) ไม่ว่าจะเป็นเทคนิคโมเดลข้อมูลแบบใดก็ตามจะมีภาษาและรูปภาพทางกราฟฟิกโดยเฉพาะ เพื่อใช้แสดงรายละเอียดข้อมูลทั้งกลุ่มใหญ่และรายละเอียดส่วนย่อย ซึ่งทำ ให้ง่ายต่อการแปลความ เช่น ใช้วงกลม หรือสี่เหลี่ยมแทนเอนทิตีใช้เส้นโค้งหรือเส้นตรงแทนรีเลชันชิป 2. แสดงชัดเจนถึงความหมายของข้อมูล (Explicit Representation of Semantic) มีทางเลือกในการแสดงความหมายของข้อมูล เราอาจใช้สัญลักษณ์ที่ต่างกันจำ นวนมากบ้างน้อยบ้างเพื่อแสดง แต่จุดสำ คัญคือแผนภาพที่ได้ออกมาควรง่าย ไม่ซับซ้อน และเห็นความหมายของข้อมูลชัดเจน 3. แสดงรายละเอียดในระดับที่เหมาะสม (Appropriate Level of Detail) กล่าวคือโมเดลระดับตรรกะจะมีรายละเอียดที่เพียงพอที่จะชี้จุดที่ทำ ให้เกิดความแตกต่างระหว่างชนิดของข้อมูลรีเลชันชิปและข้อบังคับต่าง ๆ แต่จะน้อยกว่าโมเดลทางกายภาพโดยเฉพาะอย่างยิ่งสัญลักษณ์หนึ่ง ๆ ไม่ควรมีหลายความหมาย 4. ไม่พึ่งพิงกับระบบจัดการฐานข้อมูลแบบใดแบบหนึ่ง (DBMS Independence) โมเดลที่ได้จากการออกแบบแล้วควรใช้ได้กับระบบฐานข้อมูลหลายแบบ ได้แก่ แบบความสัมพันธ์, แบบลำ ดับชั้นและแบบเครือข่าย 5. ง่ายต่อการศึกษาและใช้งาน ในที่นี้จะต้องง่ายเพียงพอสำ หรับผู้ใช้ทุกประเภทจะทำ ความเข้าใจและนำ ไปใช้ได้ ขั้นตอนการ ออกแบบ ER Model ในการออกแบบ ER-Diagram มีด้วยกันหลายขั้นตอนสำ หรับใน 5 ขั้นตอนแรกจะเป็นการออกแบบทางด้านโครงสร้างพื้นฐานของโมเดล ได้แก่ พวกเอนทิตี, รีเลชันชิป, คีย์หลัก, คีย์สำ รอง, คีย์ภายนอก, กฎเกณฑ์ พื้นฐาน จากนั้นจึงเริ่มเพิ่มรายละเอียดในระดับที่ผู้ใช้มองเห็น (User View) และรวมรายละเอียดเหล่านั้นเข้าด้วยกันจึงได้เป็นโมเดลข้อมูลเชิงตรรกะที่สมบูรณ์ ขั้นตอนที่ 1 การกำ หนดเอนทิตีหลัก จากตัวอย่างทั้งหมด สามารถออกแบบฐานข้อมูลโดยเริ่มจากการนำ Requirement ในข้างต้นที่กล่าวมาแล้ว การกำ หนดเอนทิตีนั้นเป็นงานที่ยาก และต้องอาศัยความร่วมมือของผู้ที่เข้าใจระบบที่เราออกแบบ เพื่อ คัดเลือกสิ่งที่ถูกต้อง มีความสำ คัญและเหมาะสมที่สุดมาเป็นเอนทิตี วิธีการอย่างคร่าว ๆ ก็คือให้พิจารณาข้อมูลทั้งหมดที่มี และจัดกลุ่มของข้อมูล โดยดูจากค่า และความหมายถ้าสามารถรวมกลุ่มกันได้ก็ให้รวมเข้าไว้ในเอนทิตีเดียวกัน แล้ว จึงนำ ไป กำ หนดชื่อและความหมายลงในพจนานุกรมข้อมูล และเขียนลงโมเดลข้อมูลด้วยการตั้งชื่อไม่ควรเกิน 20 ตัวอักษร ขั้นตอนที่ 2 การกำ หนดความสัมพันธ์ ระหว่างเอนทิตี กำ หนดชื่อ ความหมาย รีเลชันชิป ทิศทาง และขนาดอัตราส่วนที่เกิดรีเลชันชิปนั้น ๆ พร้อมทั้งบันทึกลงในพจนานุกรมข้อมูลด้วยสำ หรับชื่อก็ไม่ควรเกิน 20 หลังจากที่เราสามารถแบ่งกลุ่มรีเลชันชิประหว่างเอนทิตีได้ เรียบร้อยแล้ว จะพบว่ารีเลชันชิปแบบ 1:Many เป็นสิ่งที่เราต้อง สนใจมากที่สุดเพราะเป็นตัว ทำ ให้การสร้างฐาน ข้อมูลเชิงตรรกะมีความยุ่งยากซับซ้อนมากขึ้น ตัวอย่างเช่น จงเขียนเป็น ER diagram ของ ฐานข้อมูล COMPANY (ที่กล่าวในข้างต้น) ประกอบด้วย 4 Entity (EMPLOYEE , DEPARTMENT , PROJECT , DEPENDENT) โดยมีความสัมพันธ์ (Relation type) ดังต่อไปนี้ 1. MANAGES เป็นความสัมพันธ์แบบ 1:1 ระหว่าง Employee กับ Department กล่าวคือ แต่ละ Department ต้องมีผู้จัดการ (Manages) บริหาร 1 คน เสมอ และมีการเก็บข้อมูลวันแรกของการทำ งานของพนักงานทุกคนโดยใช้ Startdate Attribute 2. WORK_FOR เป็นความสัมพันธ์แบบ 1: N ระหว่าง DEPARTMENT และ EMPLOYEE 3. SUPERVISION เป็นความสัมพันธ์แบบ 1: N ระหว่าง (ฝ่ายบริหารเช่น ผู้จัดการหรือหัวหน้าแผนก) กับ EMPLOYEE (ผู้ใต้บังคับบัญชา) 4. CONTROLS เป็นความสัมพันธ์แบบ 1:N ระหว่าง DEPARTMENT กับ PROJECT 5. WORKS_FOR เป็นความสัมพันธ์แบบM:N ระหว่าง EMPLOYEE กับ DEPARTMENTเพราะ แต่ละ PROJECT มีพนักงานหลายคนทำ งานอยูในเวลาเดียวกับพนักงาน 1 คน สามารถทำ งานได้หลาน PROJECT เช่นกัน 6. DEPENDENTS_OF เป็นความสัมพันธ์แบบ 1: N ระหว่าง EMPLOYEE กับ DEPARTMENT โดยความสัมพันธ์เป็นแบบ DEPENDENT ขั้นตอนที่ 3 การกำ หนดคีย์หลักและคีย์รอง หลังจากที่ได้กำ หนดเอนทิตีต่าง ๆ แล้ว ขั้นตอนต่อไปของการสร้างโมเดลข้อมูลทางตรรกะคือ การเพิ่ม ข้อมูลที่เรียกว่า แอตตริบิวลงในทุก ๆ เอนทิตีสิ่งที่สำ คัญอีกประการหนึ่ง คือ เอนทิตีที่เป็นซับไทป์จะต้องมีคีย์หลักอันเดียวกับเอนทิตีที่เป็นซุปเปอร์ไทป์ของมัน หลังจากกำ หนดแล้วให้ตั้งชื่อระบุในโมเดลข้อมูลเชิงตรรกะพร้อมทั้งใส่ในพจนานุกรมข้อมูลด้วย การตั้งชื่อควรกำ หนดสั้น ๆ ง่าย ๆ อาจใช้ชื่อย่อก็ได้ และควรหลีกเลี่ยงการตั้งชื่อแอตตริบิวของสองสิ่งที่ไม่เหมือนกันด้วยชื่อเดียวกัน |
ขั้นตอนที่ 4 การกำ หนดคีย์ภายนอก เมื่อกำ หนดคีย์หลักและคีย์รองได้แล้ว ให้กำ หนดคีย์ภายนอกสำ หรับเอนทิตีที่มีรีเลชันชิปกันทุกอันคีย์ภายนอก คือ แอตตริบิวในเอนทิตีระดับลูกที่แทนคีย์หลักของเอนทิตีระดับพ่อแม่ เพื่อใช้ในการอ้างถึงระเบียนในเอนทิตีระดับพ่อแม่และแสดงถึงรีเลชันชิประหว่างเอนทิตีต่าง ๆ ซึ่งอาจให้คีย์หลักเป็นคีย์ภายนอกด้วยก็ได้ ขั้นตอนที่ 5 พิจารณาขอบเขตค่าโดเมนของแอตตริบิว ให้กำ หนดโดเมนของแอตตริบิวทุกตัวในเอนทิตีแล้วบันทึกในพจนานุกรมข้อมูลโดเมน คือกลุ่มค่าที่ถูกต้องเป็นไปได้สำ หรับแอตตริบิวแต่ละตัว อันได้แก่ 1. ชนิดของข้อมูล (Data Type) เช่น จำ นวนเต็ม, วันที่, ตัวอักษร, ทศนิยม 2. ความยาว (Length) เช่น 5 หลัก, 35 ตัวอักษร 3. รูปแบบข้อมูล (Format) เช่น dd/mm/yy (วันที่) 4. ค่าที่อนุญาต (Allowable value) เช่น เป็นได้เฉพาะวันศุกร์ต้นเดือน 5. ช่วงของข้อมูลหรือข้อกำ หนดอื่น ๆ (Range, Constraints) 6. ความหมาย (Meaning) อธิบายความหมายของแอตตริบิวนั้นว่าคืออะไร 7. ความเป็นหนึ่งเดียว (Uniqueness) ต้องมีค่าเป็นหนึ่งเดียว 8. ความเป็นนัล (Null support) อนุญาตให้เป็นนัลได้หรือไม่ 9. ค่าโดยปริยาย (Default value) กำ หนดให้มีค่าเป็น 0 ขั้นตอนที่ 6 การวิเคราะห์ความมีเสถียรภาพและการเติบโตในอนาคต การออกแบบโมเดลที่ดี ตอ้ งคำ นึงการเปลี่ยนแปลงในอนาคตเสมอ และ ควรจะยืดหยุน่ ตอ่ การเปลี่ยนแปลงนั้น การเขียน ER Diagram Data model หมายถึงกลุ่มของ แนวคิดที่ช่วยเรากำ หนดโครงสร้างของฐานข้อมูลและ ชุดเซทที่เกี่ยวข้องกับชุดคำ สั่งที่ใช้ในการเรียกใช้ และ เปลี่ยนแปลง ข้อมูล และ ในบทนี้นำ เสนอแนวคิด Conceptual Data Modeling ที่เรียกว่า แบบจำ ลอง Entity Relation (ER Model) ที่สามารถ อธิบายภาพรวม (Data View) ของทั้งองค์กรได้ดีในรูปแบบ ER Diagram แบบจำ ลองแบบ E-R Model ถูกออกแบบให้ง่ายต่อความเข้าความเข้าใจของผู้ใช้งาน โดยไม่คำ นึงถึงลักษณะการเก็บทางกายภาพของข้อมูลว่าเก็บอย่างไรที่ใด หลังจากที่ได้ความสัมพันธ์ทั้งหมดแล้ว พยายามขจัดความซับซ้อนของ Attribute ในแต่ละ Entity ให้มากที่สุดเพื่อเขียนเป็น Conceptual Schema และเพื่อให้เกิดความเข้าใจง่าย มนุษย์จึงคิด ER Diagram เพื่ออธิบาย Conceptual Schema ให้ง่ายต่อการเข้าใจและตีความ โดยใช้สัญลักษณ์ดังต่อไปนี้ สัญลักษณ์ที่ใช้ใน E-R Diagram ![]() |
ไม่มีความคิดเห็น:
แสดงความคิดเห็น