- Understanding Relationships
- Notation basics
- Generalization/Specialization hierarchies
Data Models
Data model เป็นแบบจำลองข้อมูลเพื่อนำเสนอรายละเอียดเกี่ยวกับโครงสร้างและความสัมพันธ์ระหว่างข้อมูลอยู่ในรูปของแนวคิดหรือตรรกะ ที่ยากแก่การเข้าใจให้อยู่ในรูปแบบมาตราฐาน
Data Model : a collection of conceptual tools for describing data,
data relationships, data semantics, and consistency constraints.
notation : a system of written symbols used especially in mathematics.
semantic : adjective = connected with meanings of words.
การจะออกแบบฐานข้อมูลนั้นจะต้องมีกระบวนการทำ User Requirement (อาจารย์บอก 6-8 เดือน) เก็บความต้องการของผู้ใช้และกฎเกณฑ์ของธุรกรรมต่างในองค์กร (Business Rules) จากนั้นก็นำ User Requirement มาออกแบบ E-R Model แล้วจึงส่งเจ้าของงาน
User Requrement ----> E-R Models ----> Customer
เมื่อได้ E-R Model มาแล้วเราจะมาออกแบบเป็น Relational Model (ตาราง 2 มิติ) ซึ่งจะมีกฏเกณฑ์ตายตัว E-R Model เป็น Real world ขององค์กร ซึ่งใช้ออกแบบในระดับหลักการ
E-R Model
อี-อาร์โมเดล เป็นแบบจำลองข้อมูลซึ่งแสดงถึงโครงสร้างของฐานข้อมูลที่เป็นอิสระจากซอฟต์แวร์ที่จะใช้ในการพัฒนาฐานข้อมูล รวมทั้งรายละเอียดและความสัมพันธ์ระหว่างข้อมูลในระบบในลักษณะที่เป็นภาพรวม ทำให้เป็นประโยชน์อย่างมากต่อการรวบรวมและวิเคราะห์รายละเอียด ตลอดจนความสัมพันธ์ของข้อมูลต่าง ๆ โดยอี-อาร์โมเดลมีการใช้สัญลักษณ์ต่างๆ ที่เรียกว่า Entity Relationship Diagram หรือ อี-อาร์ไดอะแกรม แทนรูปแบบของข้อมูลเชิงตรรกะขององค์กร จึงทำให้บุคลากรที่เกี่ยวข้องกับระบบฐานข้อมูลสามารถเข้าใจลักษณะของข้อมูลและความสัมพันธ์ระหว่างข้อมูลได้ง่ายและถูกต้องตรงกัน ระบบที่ได้รับ การออกแบบจึงมีความถูกต้องและสอดคล้องกับวัตถุประสงค์ขององค์กร
องค์ประกอบของ E-R Model
- Entity set เป็นกลุ่มของ Entities ที่มีชนิดเดียวกันใช้ Attributes ร่วมกัน
Entity คือ สิ่งของหรือวัตถุที่เกี่ยวข้องใน Real World ขององค์กร ซึ่งสามารถบอกถึงความแตกต่างจากสิ่งอื่นทั้งหมด เช่น นักศึกษา 1 คน , เหตุการณ์ 1 เหตุการณ์ - Realtionship set เป็นกลุ่มของความสัมพันธ์ประเภทเดียวกัน ซึ่งเกิดจากความสัมพันธ์ของ Entity
แต่ละความสัมพันธ์ (Relationship)คือแถวซึ่งเป็นตัวแทนของความสัมพันธ์ระหว่างหลาย Entity จาก n Entity (n>=2)
เช่น มี Entity Set นักศึกษา(รหัสนักศึกษา,ชื่อและสกุล, เกรดเฉลี่ย)
และ มี Entity Set วิชาเรียน(รหัสวิชา,ชื่อวิชา,หน่วยกิต)
Relationship แทนได้ว่า นักศึกษาคนไหนเรียนวิชาอะไร ตัวอย่าง 5 Relationship ดังนี้
สมปองลงทะเบียนเรียนวิชา คณิต 1
สมปองลงทะเบียนเรียนวิชา คณิต 2
สมหมายลงทะเบียนเรียนวิชา ฐานข้อมูล 1
สมใจลงทะเบียนเรียนวิชา คณิต 1
สมใจลงทะเบียนเรียนวิชา Java
Attribute
An entity is represent by a set of (attributes,datavalue) pairs
Attributes : คือข้อมูลที่แสดงลักษณะ และคุณสมบัติของ Entity
เช่น attribute ของบุคคล อาจได้แก่ เลขประจำตัว ชื่อ ส่วนสูง
วันเดือนปีเกิด …. เป็นต้น
Attribute จะมีกรอบของค่าที่เป็นไปได้ที่เราเรียกว่า Domain (a set of permitted values)
เช่น Attribute blood กำหนดให้มีค่าที่เป็นไปได้ เช่น A,B,O,AB เท่านั้น
Attribute salary กำหนดให้มีค่าที่เป็นไปได้ เป็นตัวเลขชนิด double มีค่าไม่น้อยกว่า 10,000 เป็นต้น
ประเภทของ Key ใน Database
- Superkey
- Primary key
- Candidate key
- Foreign key
ในระบบฐานข้อมูล มีความจำเป็นต้องระบุให้ได้ถึงความแตก ต่างกันระหว่าง Entities ใน Entity Set และ ระหว่าง Relationship ใน Relationship Set
คีย์หลัก คือฟิลด์ (Attribute) ที่ได้รับเลือกให้เป็นตัวที่บอกความ แตกต่างของแต่ละเรคอร์ด
ดังนั้นค่าในฟิลด์นี้ของแต่ละเรคอร์ด ภายในตาราง ต้องไม่ซ้ำกัน
คีย์หลักอาจถูกกำหนดมาจาก attribute เดียว หรือใช้ตั้งแต่ 2 attributes ขึ้นไปร่วมกันกำหนดความแตกต่างของแต่ละเรคอร์ดได้
Superkey คือ กลุ่มของ attribute ตั้งแต่ 1 attribute ที่ระบุความแตกต่างของข้อมูลในตาราง เช่น รหัสนักเรียน SID เป็น 1 ใน Attribute ของ Entity Set Student ที่สามารถระบุความแตกต่างว่า Entity Student แตกต่างจาก Entity Student อื่น SID จึงเป็น Superkey เหมือนกันกับการรวมระหว่าง รหัสนักเรียน SID กับชื่อนักเรียน SName ก็สามารถระบุความแตกต่างของนักเรียนได้เช่นกัน SID,SName จึงเป็น Superkey เช่นเดียวกัน
Candidate Key คือ Superkey ที่ตัด attribute ที่ไม่จำเป็นสำหรับการเป็น Superkey ออก ในกรณี Entity Set Student มี SID เป็น Candidate key แต่ถ้า มี Attribute CitizenID (รหัสประชาชน) เพิ่มขึ้นมา CitizenID จะทำให้เกิด Superkey มากมายและ CitizenID ก็เป็น Candidate key เช่นเดียวกัน
Primary Key คือ Candidate key ที่ถูกเลือกขึ้นมา
Primary key
ประเภทของ Attribute
- Simple and Composite
Simple : ไม่สามารถแบ่งแยกได้อีก เช่น ชื่อ,สกุล,เพศ,คำนำหน้าชื่อ เป็นต้น
Composite : สามารถแบ่งแยกได้อีกเช่น ชื่อและสกุล สามารถแบ่งเป็น ชื่อ,สกุล ได้ - Single-Valued Attribute ที่มีค่าของข้อมูลในแต่ละสมาชิกของเอนทิตีได้เพียง ค่าเดียว เช่น บุคคลหนึ่งคนมีเพศเดียว Attribute เพศจึงเป็น Single-Valued หรือพนักงานหนึ่งคนมีเงินเดือนเพียงค่าเดียว Attribute เงินเดือนจึงเป็น Single-Valued เป็นต้น
- Multi-valued Attribute เป็น Attribute ที่มีหลายค่า เช่น วุฒิการศึกษา หลายค่า เช่น บุคคลหนึ่งคนอาจมีวุฒิการศึกษาได้หลายระดับ
- Derive เป็น Attribute ที่ค่าของข้อมูลในแต่ละสมาชิกของเอนทิตีได้มาจากการนำ ค่าของข้อมูลใน Attribute อื่นที่มีอยู่ในแต่ละสมาชิกของเอนทิตีมาทำการคำนวณ ซึ่งโดยทั่วไปไม่จำเป็นต้องจัดเก็บ Attribute ประเภทนี้ไว้ในระบบฐานข้อมูล เนื่องจาก Attribute ประเภทนี้มีการเปลี่ยนแปลงค่าของ ข้อมูลในแต่ละสมาชิกของเอนทิตีทุกครั้ง เมื่อมีการเปลี่ยนแปลงค่าของข้อมูลใน Attribute ที่ถูกนำมาคำนวณของแต่ละสมาชิกในเอนทิตี้ เช่น Attribute อายุปัจจุบันสามารถคำนวณได้จาก Attribute วัน/เดือน/ปี
ความสัมพันธ์ของ Entity
- Binary : A relationship of degree two. 1 ความสัมพันธ์ของ 2 Entity
- Ternary : A relationship of degree three. 1 ความสัมพันธ์ของ 3 Entity
- Quarternary : A relationship of degree four. 1 ความสัมพันธ์ของ 4 Entity
Mapping Cardinalities (Type Of Relationship)
- 1 : 1 หมายถึง ความสัมพันธ์ที่แต่ละสมาชิกในเอนทิตีหนึ่งมี ความสัมพันธ์กับสมาชิกในอีกหนึ่งเอนทิตีเพียงสมาชิกเดียว หรือกล่าวได้ว่า ความสัมพันธ์ดังกล่าวเป็นแบบหนึ่งต่อหนึ่ง เช่น เอนทิตีอาจารย์และเอนทิตีคณะ มีความสัมพันธ์กันแบบหนึ่งต่อหนึ่ง กล่าวคือ แต่ละคณะมีคณบดีเพียงหนึ่งคนเท่านั้น และมีอาจารย์เพียงหนึ่งคนเท่านั้นที่เป็นคณบดี เป็นต้น
- 1 : M , M : 1 หมายถึง ความสัมพันธ์ที่แต่ละสมาชิกในเอนทิตีหนึ่งมี ความสัมพันธ์กับสมาชิกในอีกหนึ่งเอนทิตีมากกว่าหนึ่งสมาชิก หรือกล่าวได้ว่า ความสัมพันธ์ดังกล่าวเป็นแบบหนึ่งต่อกลุ่ม เช่น เอนทิตีคณะและเอนทิตีนักศึกษามีความสัมพันธ์กันแบบหนึ่งต่อกลุ่ม กล่าวคือ นักศึกษาแต่ละคนมีสังกัดเพียงคณะเดียว และหนึ่งคณะอาจมีนักศึกษาในสังกัดได้
- M : M หมายถึง ความสัมพันธ์ที่สมาชิกมากกว่าหนึ่งสมาชิกใน เอนทิตีหนึ่งมีความสัมพันธ์กับสมาชิกในอีกหนึ่งเอนทิตีมากกว่าหนึ่งสมาชิก หรือกล่าวได้ว่า ความสัมพันธ์ ดังกล่าวเป็นแบบกลุ่มต่อกลุ่ม เช่น เอนทิตีนักศึกษาและเอนทิตีชุดวิชามีความสัมพันธ์กันแบบกลุ่มต่อกลุ่ม กล่าวคือ นักศึกษาแต่ละคนสามารถลงทะเบียนเรียนได้หลายชุดวิชา และแต่ละชุดวิชาสามารถมีนักศึกษาลงทะเบียนได้หลายคน
ดูตัวอย่างของความสัมพันธ์ ของนักเรียนกับอาจารย์ วิชาเรียน และ โปรเจค
พิจารณาที่ ความสัมพันธ์ 1 : 1 ระหว่าง Student กับ Project
แสดงให้เห็นว่านักเรียน 1 คนมี 1 โปรเจค และ 1 โปรเจคนั้นมีนักเรียนทำได้คนเดียว ไม่มีการทำซ้ำของโปรเจค เราสามารถเก็บ Schema ของ Table ในความสัมพันธ์ลักษณะนี้ได้ 2 แบบ
Schema แบบที่ 1 คือ Student(SID,SName,GPA,ProjID,ProjName,Budget,Lab);
Schema แบบที่ 2 คือ
Student(SID,SNAME,GPA,ProjID);
foreign key (ProjID) references Project
Project(ProjID,ProjName,Budget,Lab);
พิจารณาที่ ความสัมพันธ์ 1:M ระหว่าง Lecturer กับ Student แบบไม่มี Descriptive Attribute
แสดงให้เห็นว่าผู้สอนแต่ละคนจะเป็นอาจารย์ที่ปรึกษากับกับนักเรียนหลายคน
และนักเรียนแต่ละคนจะมีอาจารย์ที่ปรึกษาได้เพียง 1 คน จะได้ Schema ดังนี้
Lecturer(LecID,LecName,Dept);
Student(SID,SNAME,GPA,ProjID,LecID);
foreign key (ProjID) references Project
foreign key (LecID) references Lecturer
พิจารณาที่ ความสัมพันธ์ M:M ระหว่าง Lecturer กับ Subject
แสดงให้เห็นว่าผู้สอนนั้นสามารถสอนได้หลายวิชาและแต่ละวิชาอาจจะมีผู้สอนได้หลายคน
Lecturer(LecID,LecName,Dept);
Subject(SubID,SubName);
Teach(LecID,SubID)
foreign key (SubID) references Subject
foreign key (LecID) references Lecturer
ความสัมพันธ์ 1 : m แบบมี Descriptive Attribute
รูปนี้ผิดนะกำลังแก้ไขอยู่
- ลูกค้าแต่ละคนอาจจะมีหลายการเช่า
- การเช่าแต่ละครั้งต้องมีลูกค้าหนึ่งคน
- วิดีโอเทปอาจจะมีการยืมหนึ่งรายการ
- รายการยืมต้องมีหนึ่งรายการ
ปัญหาการออกแบบ E-R
- Fan Trap เกิดจากลำดับความสัมพันธ์ไม่ถูกต้อง มักพบในกรณีที่เอนทิตีหนึ่งมีความสัมพันธ์แบบหนึ่งต่อกลุ่มกับเอนทิตีอื่นตั้งแต่สองเอนทิตีขึ้นไป
- Chasm Trap เกิดความขาดช่วงของข้อมูลไม่สามารถบอกรายละเอียดของความสัมพันธ์ได้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น