7.E-R Diagram
(Entity Relationship Diagram)
E-R Diagram
• เป็นแผนภาพที่ทาหน้าที่จาลองข้อมูลที่มีความสัมพันธ์กัน
• เป็นการออกแบบฐานข้อมูลในระดับ Conceptual
• เป็นแบบจาลองข้อมูลที่แสดงถึงโครงสร้างฐานข้อมูลที่เป็นอิสระ
จาก Software ที่จะใช้พัฒนาฐานข้อมูล (ไม่ขึ้นกับ Software)
• ทาให้บุคลากรเข้าใจในระบบฐานข้อมูลได้ง่าย
สัญลักษณ์ที่ใช้ใน E-R Diagram
ใช้แบบ Chen Model
• Entity
– เป็นส่วนที่ใช้สาหรับเก็บข้อมูลแต่ละรายการภายในระบบที่เรากาลัง
จัดทาอยู่
– เช่น
• บุคคล (พนักงาน, ผู้ป่วย, บุคลากร, นักศึกษา,ลูกค้า)
• สถานที่ (จังหวัด, อาเภอ, ภาค, ที่อยู่)
• วัตถุ (รถยนต์, อาคาร, เครื่องจักร,สินค้า)
• เหตุการณ์ (ประวัติ, การลงทะเบียน, การรักษาโรค,ซื้อ,ขาย)
– สัญลักษณ์จะแทนด้วยรูปสี่เหลี่ยมและมีชื่อ Entity อยู่ภายใน
พนักงาน
• ประเภทของ ของ Entity มี 2 ประเภท
– 1 Regular Entity อาจจะเรียกอีกชื่อว่า Strong Entity
• เป็น Entity ที่อยู่ได้โดยไม่ต้องอาศัย Entity อื่นในการคง
อยู่ ซึ่งมีคุณสมบัติ Identity ได้ด้วยตัวเอง ไม่ต้องพึ่ง Entity
อื่น
–2 Week Entity
• เป็น Entity ที่อยู่ได้โดยต้องอาศัย Entity อื่นในการคงอยู่
Customer
Order Detail
ภาพอธิบาย Strong & Weak Entity
รหัส ชื่อ คณะ
45001 เดชา บริหารธุรกิจ
45002 สมชาย เกษตร
รหัส ปีการศึกษา รหัสวิชา
45001 1/45 01
45002 1/45 01
45001 1/45 02
45002 1/45 02
รหัสวิชา ชื่อวิชา
01 ฐานข้อมูล
02 โครงสร้าง
Student (Strong) Subject (Strong)
Regis_Detail(Weak)
• Attributes
– เป็นคุณสมบัติหรือลักษณะของ Entity
– เช่น Attributes ของ พนักงาน ประกอบด้วย
• เลขที่พนักงาน
• ชื่อ-นามสกุล
• เพศ
• เงินเดือน
สัญลักษณ์ Attributes นั้นจะแทนด้วยวงรี โดยมีชื่อของ Attributes
กากับอยู่ภายใน และมีเส้นเชื่อมต่อกับ Entity ของมัน เช่น
• ตัวอย่าง Attributes
Employee
Name
Emp_ID
Sex
Salary
• Attributes สามารถจาแนกได้เป็น 6 ประเภท
1 Simple Attributes
– Attributesที่ไม่สามารถแบ่งแยกย่อยได้อีกแล้ว เช่น เพศ,เงินเดือน
2 Composite Attributes
– มีลักษณะตรงข้ามกับแบบ Simple ที่สามารถแบ่งแยกย่อยไปได้อีก เช่น
ชื่อสกุล ที่สามารถแบ่งออกได้เป็น Attributes ชื่อ และ สกุล
3 Key Attributes
– เป็น Attributes ที่สามารถบ่งบอกถึงเอกลักษณ์ของ Entity นั้นได้ (มีค่า
ไม่ซ้ากัน)
– เวลาเขียน ER Diagram ต้องขีดเส้นใต้ Attributes ที่เป็น Key ด้วย
4 Single - Valued Attributes
– Property ที่มีค่าของข้อมูลได้เพียงแค่ค่าเดียว เช่น Attributes เพศ ที่ระบุได้เพียง ชาย หรือ
หญิง เท่านั้น เพราะมนุษย์มีเพียงเพศเดียว
– สัญลักษณ์เป็นวงรี เส้นเชื่อมเป็นเส้นเดี่ยว
5 Multi - Valued Attributes
– มีลักษณะตรงข้ามกับแบบ Single ที่สามารถมีค่าของข้อมูลได้หลายค่า เช่น เบอร์โทรที่
ประกอบด้วยรหัสพื้นที่และตามด้วยหมายเลขโทรศัพท์
– สัญลักษณ์เป็นวงรีสองเส้น
6 Derived Attributes
– เป็น Property ที่ได้มาจากการคานวณ โดยอาศัยค่าใน Property อื่น ๆ เช่น ค่าของอายุ ที่
ได้มาจาก Property วันเกิดสัญลักษณ์เป็นวงรีเส้นประ
• ตัวอย่างภาพ Attributes ชนิดต่าง ๆ
StudentID Age
Name_Surname Birthday
Sex
Name
Surname
Tel
Composite
key
Derived
Multi - Valued
• 3. Relationship
– หมายถึง Entity ที่แสดงความสัมพันธ์ระหว่าง 2 Entity ขึ้นไป
– เป็นความสัมพันธ์ระหว่าง Entity ที่มี Attributes ร่วมกัน
– โดยแต่ละความสัมพันธ์จะถูกระบุด้วยสัญลักษณ์สี่เหลี่ยมข้าวหลามตัด
(Diamond) และคาที่อธิบายถึงความสัมพันธ์นั้น ๆ
– พร้อมทั้งระบุชนิดของความสัมพันธ์ระหว่าง Entity นั้น ๆ ด้วย
• ตัวอย่าง Relationship
Employee Work_in Department
Order Of Order_detail
ประเภทของ Relationship
• 1. One-to-One Relationship
– เป็นความสัมพันธ์ของสมาชิกของใน Entity หนึ่งไปสัมพันธ์กับ กับสมาชิกของ
ใน Entity อีกอันหนึ่ง เพียงหนึ่งเดียวเท่านั้น
Employee Owner1 1
Car
ประเภทของ Relationship
• 2. One-to-Many Relationship
– เป็นความสัมพันธ์ของสมาชิกของใน Entity หนึ่งไปสัมพันธ์กับ กับสมาชิกของ
ใน Entity อีกอันหนึ่ง มากกว่า 1 สมาชิก
Employee Have1 M
Car
ประเภทของ Relationship
• 2. Meny-to-Many Relationship
– เป็นความสัมพันธ์ของสมาชิกมากกว่า 1 สมาชิก ของใน Entity หนึ่งไป
สัมพันธ์กับ กับสมาชิกของใน Entity อีกอันหนึ่ง มากกว่า 1 สมาชิก
Customer Belong_toM N
Account
• Composite Entity
– เป็น Entity ที่ถูกสร้างขึ้นเพื่อแปลงความสัมพันธ์แบบ M:M ให้เป็น แบบ 1:M (เพราะ
แบบ M:M นั้นค่อนข้างยากแก่การเข้าใจ)
– ซึ่ง Composite Entity จะกลายเป็น Entity ใหม่ที่รวมเอาไว้ด้วย Key Property ของทั้ง
2 Entity หลัก และส่วนสนใจอื่น ๆ
– ซึ่ง Key Property ของ Composite Entity ก็คือ Key Property ของทั้ง 2 Entity หลัก
นั่นเอง (เป็น PK ที่มีลักษณะเป็น Super Key : คีย์ร่วม)
– สัญลักษณ์ของ Composite Entity คือ สี่เหลี่ยมผืนผ้าซ้อนด้วยสี่เหลี่ยมรูปข้าวหลามตัด
ภาพแสดงการเปลี่ยนแปลงจาก M:M มาเป็น 1:M
Studen Subject
M
Learning
M
Studen Subject
M M1 1
Learning
การออกแบบฐานข้อมูลด้วย E-R Model
1. ศึกษารายละเอียดและลักษณะหน้าที่งานของระบบ
• เพื่อรวบรวมรายละเอียด
– ลักษณะการทางานของระบบ
– ขั้นตอนการทางาน
– เอกสารรายงานต่างๆ
2. กาหนด Entity ที่ควรมีในระบบฐานข้อมูล
• โดยคานึงถึงข้อมูลทั้งหมดที่จะจัดเก็บลงไปในฐานข้อมูล ว่า
สามารถแบ่งออกได้เป็นกี่ Entity
• ภายในฐานข้อมูลหนึ่ง ๆ อาจจะมีจานวน Entity เป็นจานวนมาก
ซึ่งก็ขึ้นอยู่ที่ผู้ใช้ว่าต้องการจัดเก็บข้อมูลมากเพียงใด
• โดยการกาหนด Entity จะต้องคานึงถึง Entity ทั้งแบบอ่อนแอและ
แบบแข็งแรงด้วย
3. การกาหนดความสัมพันธ์ระหว่าง Entity
• ว่าแต่ละ Entity ที่มีความสัมพันธ์กันนั้น จะสัมพันธ์กันด้วยเงื่อนไขใด
และชนิดความสัมพันธ์เป็นอย่างไร
– One to One Relationship
– One to Many Relationship
– Many to Many Relationship
4. การกาหนดคุณลักษณะของ Entity
• เป็นการกาหนดคุณสมบัติ (Attributes) ให้กับ Entity ว่าควรจะประกอบ
ไปด้วย Attributes ใดบาง
• พร้อมทั้งพิจารณาด้วยว่า Attributes ใดบ้างที่จะเป็น
– Composite Attributes
– Derived Attributes
5. การกาหนด Primary Key ของแต่ละ Entity
• เป็นการกาหนดให้ Entity แต่ละ Entity มีเอกลักษณ์เฉพาะที่สามารถ
อ้างอิงได้อย่างไม่ซ้าซ้อน
• นั่นก็คือการกาหนด Primary Key นั่นเอง
ตัวอย่างการออกแบบฐานข้อมูลด้วย E-R Model
สถาบันการศึกษาแห่งหนึ่งมีการสอนอยู่ 3 คณะ คือ เกษตร,
วิทยาศาสตร์, ศึกษาศาสตร์
• ซึ่งในแต่ละคณะจะประกอบไปด้วยภาควิชาต่าง ๆ
• แต่ละภาควิชาก็จะประกอบไปด้วยอาจารย์หลาย ๆ คน
• อาจารย์แต่ละคนสอนได้หลายวิชา แต่สามารถสังกัดได้เพียงแค่
ภาควิชาเดียว
• และอาจารย์แต่ละคนแต่ละภาคก็จะมีหัวหน้าภาค
กาหนด Entity ที่ควรมีในระบบฐานข้อมูล
– Entity Faculty แสดงรายละเอียดของคณะ
– Entity Department แสดงรายละเอียดของแผนก
– Entity Teacher แสดงรายละเอียดของอาจารย์
– Entity Subject แสดงรายละเอียดของวิชา
กาหนดความสัมพันธ์ระหว่าง Entity
Faculty DepartmentUnder
Department TeacherUnder
Department SubjectUnder
1 M
1
1
M
M
Teacher
Leader
Subject Teacher
M
Teaching
M
Subject TeacherTeaching
1
M
M
M1 1
กาหนดคุณลักษณะของ Entity
• Faculty
• Department
Faculty
Faculty_ID Faculty_Name
Department
Dep_ID Dep_Name
 Teacher
 Subject
Teacher
Teacher_ID
Teacher_Name
Salary
Subject
Subject_ID
Subject_Name
Unit
การกาหนด Primary Key ของ Entity
– Entity Faculty คือ Faculty_ID
– Entity Department คือ Dep_ID
– Entity Teacher คือ Teacher_ID
– Entity Subject คือ Subject_ID
ตัวอย่างการออกแบบฐานข้อมูลด้วย E-R Model
• Ex ให้เขียน ER-Diagram ของระบบการขายสินค้า ร้านABC
คอมพิวเตอร์
• โดยที่
– ลูกค้าหลายคนสามารถที่จะซื้อสินค้าได้หลายชิ้น
– ใบเสร็จรับเงินหลายใบมีสินค้าได้หลายชิ้น
– ในใบเสร็จแต่ละใบจะมีพนักขายเพียงคนเดียวเท่านั้น
– สินค้าจะประเภทของตัวเอง
กาหนด Entity ที่ควรมีในระบบฐานข้อมูล
– Entity Customer แสดงรายละเอียดของลูกค้า
– Entity Employee แสดงรายละเอียดของพนักงานขาย
– Entity Product แสดงรายละเอียดของสินค้า
– Entity TypeProduct แสดงประเภทของสินค้า
– Entity Bill แสดงรายละเอียดของใบเสร็จ
• กาหนดความสัมพันธ์ระหว่าง Entity
Customer ได้รับ
1 M
Bill
Employee มี
1 M
Bill
TypeProduct มี
1 M
Product
Bill มี
M M
Product
Bill Bill_detail
M M
Product
1 1
กาหนดคุณลักษณะของ Entity
Employee
Emp_ID
Emp_name
salary
Product
Product_ID
Product_name
price
TypeProductTypeName
TypeID
Customer
Cus_ID
Cus_name
Address
Bill
Bill_No
Bill_date
Emp_ID
Bill_detail
ER-Diagram
ของระบบการขายสินค้า
Customer
Cus_ID
Cus_name
Address
Bill
Bill_No
Bill_date
Emp_ID
ได้รับ
Employee
Emp_ID
Emp_name
salary
Product
Product_ID
Product_name
price
มี
Bill_detail
1
M
1
M
1 M 1M
Detail_ID
Product_ID
Bill_No
Amount
Price_s
TypeProduct
มี
TypeID
TypeName
1
M
• การออกแบบฐานข้อมูล
การออกแบบฐานข้อมูล
(Database Design)
การออกแบบฐานข้อมูล (Database Design)
– การออกแบบฐานข้อมูลในระดับแนวคิด (Conceptual Database Design)
– การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design)
– การออกแบบฐานข้อมูลในระดับกายภาพ (Physical Database Design)
39
วิเคราะห์ข้อมูลที่ต้องการ
(Data Requirements Analysis
การออกแบบในระดับแนวคิด
(Conceptual Database Design
การออกแบบในระดับตรรก
(Logical Database Design)
การออกแบบในระดับกายภาพ
(Physical Database Design)
รูปที่ 4.1 ขั้นตอนการออกแบบฐานข้อมูล
การออกแบบฐานข้อมูลในระดับแนวคิด
(Conceptual Database Design)
การออกแบบฐานข้อมูลในระดับแนวคิด (Conceptual Database
Design)
การออกแบบฐานข้อมูลในระดับแนวคิดคือ ขั้นตอนการ
ออกแบบจากข้อมูลที่ได้ในขั้นตอนการวิเคราะห์ความต้องการ แล้ว
นาเสนอในรูปแบบแผนภาพในระดับแนวคิด (Conceptual
Schema) ซึ่งแสดงภาพรวมของฐานข้อมูล
แผนภาพในระดับแนวคิดที่เป็นที่นิยมคือแผนภาพอี-อาร์ ซึ่ง
แสดงเอนทิตี้ทั้งหมด แอททริบิวส์ของแต่ละเอนทิตี้ และ
ความสัมพันธ์ระหว่างเอนทิตี้ ฟังก์ชันการขึ้นต่อกันในรูปแบบที่
เข้าใจง่าย และไม่ขึ้นกับระบบจัดการฐานข้อมูลที่เลือกใช้
40
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design)
การออกแบบฐานข้อมูลในระดับตรรกคือ การออกแบบฐานข้อมูลให้อยู่
ในแบบจาลองฐานข้อมูลที่เหมาะสมกับระบบจัดการฐานข้อมูลที่เลือกใช้เช่น
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ แบบจาลองฐานข้อมูลลาดับชั้น หรือ
แบบจาลองแบบเครือข่าย การออกแบบฐานข้อมูลในระดับแนวคิดให้เป็นเค้า
โครงร่างในระดับตรรก (Logical Schema)
ตามรูปแบบของระบบฐานข้อมูลต่างๆ เช่น ฐานข้อมูลเชิงสัมพันธ์ หรือ
สามารถเลือกที่จะเริ่มออกแบบฐานข้อมูลในระดับตรรกะเลจโดยข้ามขั้นตอน
ของการออกแบบในระดับแนวคิด
คือเริ่มจากข้อมูลรายละเอียดจากขั้นตอนการวิเคราะห์ความต้องการแล้ว
สร้างเป็นแบบจาลองเชิ่งสัมพันธ์แต่ในการออแบบฐานข้อมูลที่มีโครงสร้าง
ซับซ้อนควรจะเริ่มในระดับแนวคิดก่อนเพื่อให้สามารถเห็นภาพรวมของ
ฐานข้อมูล
41
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design)
– จากแผนภาพอี-อาร์ แล้วสร้างเป็นฐานข้อมูลเชิงสัมพันธ์ (Normalization)
– จากแผนภาพอี-อาร์ แล้วสร้างเป็นฐานข้อมูลเชิงสัมพันธ์โดยการแปลงเอนทิตี้ และแปลง
ความสัมพันธ์
• จากแผนภาพอี-อาร์ แล้วสร้างเป็นฐานข้อมูลเชิงสัมพันธ์ (Normalization)
จากแผนภาพอี-อาร์ใช้แสดงลักษณะโครงสร้างของฐานข้อมูล จะถูก
แปลงไปเป็นกลุ่มของรีเลชัน (ตาราง) แล้วจึงทาการนอร์มอลไลท์ แล้วทาให้เป็น
รูปแบบนอร์มอลระดับที่ 3 หรือรูปแบบนอร์มอลบอยส์-คอด แต่ในบางครั้ง
อาจจะให้บางรีเลชันอยู่ในรูปแบบนอร์มอลระดับที่ 2 คือจะไม่ทาการแยกรี
เลชันออกเพื่อให้รูปแบบนอร์มอลระดับที่ 3 ต่อไปอีก เพื่อประสิทธิภาพของ
ฐานข้อมูลดีขึ้นเนื่องจากการลดเวลาที่ใช้ในการค้นหาและเชื่อมโยงข้อมูล
42
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
• การแปลงเอนทิตี้
การแปลงเอนทิตี้ทาได้โดยแปลงเอนทิตี้แต่ละชนิดใน
แผนภาพอี-อาร์ให้มาเป็นรีเลชัน โดยให้แต่ละรีเลชันมีคอลัมน์ซึ่งมา
จากแอททริบิวท์ของเอนทิตี้ โดยให้แอททริบิวส์ที่เป็นคีย์หลักของ
แต่ละเอนทิตี้แต่ละชนิดนั้นมาเป็นคีย์หลักของรีเลชัน โดยจะต้อง
ตรวจสอบว่าคีย์หลักต้องตรวจสอบว่าคีย์หลักนี้มีคุณสมบัติถูกต้อง
คือ
• ค่าคีย์หลักในแต่ละแถวของรีเลชันจะต้องแตกต่างกันเนื่องจากคีย์หลักนี้จะใช้เพื่อ
แยกความแตกต่างของแต่ละแถวในรีเลชัน
• แอททริบิวท์ใดๆ ในคีย์หลักไม่สามารถถูกลบออกทิ้งได้นั่นคือคีย์หลักนี้ ไม่มีความ
ซ้าซ้อนและจะนานอลคีย์แอททริบิวท์ของเอนทิตี้แต่ละชนิดในแผนภาพอี-อาร์ไป
เป็นนอลคีย์แอททริบิวท์ของรีเลชัน
43
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
• จากแผนภาพอี-อาร์ แล้วสร้างเป็นฐานข้อมูลเชิงสัมพันธ์
(การแปลงเอนทิตี้ และการแปลงความสัมพันธ์)
การเปลี่ยนจาก แผนภาพอี-อาร์มาเป็นรีเลชัน
ประกอบด้วย 2 ขั้นตอนคือ
• การแปลงเอนทิตี้
• การแปลงความสัมพันธ์
44
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
• การแปลงเอนทิตี้
การแปลงเอนทิตี้ทาโดยแปลงเอนทิตี้แต่ละชนิดในแผนภาพอี-
อาร์ให้มาเป็นรีเลชัน โดยให้แต่ละรีเลชันมีคอลัมน์ซึ่งมาจากแอ
ททริบิวส์ของเอนทิตี้ โดยให้แต่ละแอททริบิวส์ที่เป็นคีย์ของ
เอนทิตี้แต่ละชนิดนั้นมาเป็นคีย์หลักของรีเลชัน โดยจะต้อง
ตรวจสอบว่าคีย์หลักมีคุณสมบัติถูกต้อง คือ
• ค่าของคีย์หลักในแต่ละแถวของรีเลชันจะต้องแตกกัน เนื่องจากคีย์
หลักนี้จะใช้เพื่อแยกความแตกต่างของแต่ละแถวในรีเลชัน
• แอททริบิวส์ใดๆ ในคีย์หลักไม่สามารถถูกลบออกทิ้งได้นั่นคือคีย์
หลักจะต้องไม่มีความซ้าซ้อนและจะนานอลคีย์แอททริบิวส์ของ
เอนทิตี้แต่ละชนิดในแผนภาพอี-อาร์ ไปเป็นนอลคีย์แอททริบิวท์ของ
รีเลชัน
45
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
• การแปลงความสัมพันธ์ (การแปลง Relationship)
ในการแปลงความสัมพันธ์ต้องพิจารณาดีกรีของความสัมพันธ์
ระหว่างเอนทิตี้ว่าเป็นยูนารี ไบนารี หรือเทอร์นารี และจะต้อง
พิจารณาคาร์ดินอลลิตี้ ของความสัมพันธ์ ดังนี้
– ความสัมพันธ์แบบไบนารีหนึ่งต่อหนึ่ง(Binary 1:1 Relationship)
– ความสัมพันธ์แบบไบนารีหนึ่งต่อกลุ่ม(Binary 1:N Relationship)
– ความสัมพันธ์แบบไบนารีกลุ่มต่อกลุ่ม(Binary N:N Relationship)
– ความสัมพันธ์แบบรีเคอซีพ (Recursive Relationship)
– ความสัมพันธ์ระหว่างเอนทิตี้หลักและเอนทิตี้ย่อย(ISA Relationship)
46
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
– การแปลงเอนทิตี้แบบอ่อน (Weak Entity)
– การรวมรีเลชัน (Merging Relation)
47
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
• การแปลงความสัมพันธ์แบบหนึ่งต่อหนึ่ง (Binary 1:1 Relationship)
ตัวอย่าง 1 พิจารณาความสัมพันธ์แบบหนึ่งต่อหนึ่งระหว่างเอนทิตี้
“คนไข้” และเอนทิตี้ “ห้องพัก” ซึ่งมีแอททริบิวท์ดังรูปที่ 4.2
48
หมายเลขห้อง-หมายเลขเตียง ประเภทห้อง
รหัสคนไข้ ชื่อ-นามสกุล
วันกาหนดออกจากโรงพยาบาล
ห้องพัก
คนไข้
พัก
รูปที่ 4.2 แผนภาพอี-อาร์แสดงความสัมพันธ์ระหว่างเอนทิตี้ “คนไข้” กับเอนทิตี้ “ห้องพัก”
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
จากแผนภาพอี-อาร์แสดงความสัมพันธ์แบบหนึ่งต่อหนึ่ง
ระหว่างเอนทิตี้ “คนไข้” กับเอนทิตี้ “ห้องพัก” จะถูกแปลงให้เป็น
รีเลชันไดโดยกาหนดให้ “หมายเลขห้อง-หมายเลขเตียง” เป็นคีย์
นอกของรีเลชัน “คนไข้” เนื่องจาก “หมายเลขห้อง-หมายเลขเตียง”
เป็นคีย์หลักของรีเลชัน “ห้องพัก”
– คนไข้(รหัสคนไข้, ชื่อ-สกุล, หมายเลขห้อง-หมายเลขเตียง, วันกาหนดออก
จากโรงพยาบาล)
– ห้องพัก(หมายเลขห้อง-หมายเลขเตียง, ประเภทห้อง)
49
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
• การแปลงความสัมพันธ์แบบหนึ่งต่อกลุ่ม (Binary 1:N Relationship)
ตัวอย่าง 2 พิจารณาความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างเอนทิตี้
“อาจารย์” และเอนทิตี้ “นักศึกษา” ซึ่งมีแอททริบิวท์ดังรูปที่ 4.3
50
รูปที่ 4.3 แผนภาพอี-อาร์แสดงความสัมพันธ์ระหว่างเอนทิตี้ “อาจารย์” กับเอนทิตี้ “นักศึกษา”
ชื่อ-นามสกุล
รหัสอาจารย์ ชื่อ-สกุล
รหัสนักศึกษา
คณะ
อาจารย์
นักศึกษา
ที่ปรึกษา
หมายเลขห้องพัก
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
จากแผนภาพอี-อาร์ แสดงความสัมพันธ์ระหว่างเอนทิตี้
อาจารย์และเอนทิตี้นักศึกษา จะถูกแปลงไปเป็นรีเลชันได้โดย
กาหนดให้ “รหัสอาจารย์” ซึ่งเป็นคีย์หลักของเอนทิตี้ทางด้าน
ความสัมพันธ์เป็นหนึ่งให้เป็นคีย์นอกของรีเลชัน “นักศึกษา”
ทางด้านความสัมพันธ์เป็นกลุ่ม
– อาจารย์(รหัสอาจารย์, ชื่อ-นามสกุล, หมายเลขห้องพัก)
– นักศึกษา(รหัสนักศึกษา, ชื่อ-สกุล, รหัสอาจารย์)
51
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
• การแปลงความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Binary M:N Relationship)
ตัวอย่าง 3 พิจารณาความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างเอนทิตี้
“คนไข้” และเอนทิตี้ “แพทย์” ซึ่งมีแอททริบิวท์ดังรูปที่ 4.4
52
รูปที่ 4.4 แผนภาพอี-อาร์แสดงความสัมพันธ์ระหว่างเอนทิตี้ “แพทย์” กับเอนทิตี้ “คนไข้”
ชื่อ-นามสกุล
รหัสแพทย์ ชื่อ-สกุล
รหัสคนไข้
หัองพัก
แพทย์
คนไข้
รักษา ลักษณะการรักษา
หมายเลขโทรศัพท์
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
จากแผนภาพอี-อาร์ แสดงความสัมพันธ์ระหว่างเอนทิตี้
“แพทย์” กับเอนทิตี้ “คนไข้” จะถูกแปลงเป็นรีเลชันได้โดยสร้างเป็น
รีเลชัน “การรักษา” เพิ่มอีก 1 รีเลชัน โดยให้รีเลชัน “การรักษา” มีคีย์
หลักเป็นคีย์รวมที่สร้างขึ้นจากคีย์หลักของรีเลชัน “คนไข้” และรีเล
ชัน “แพทย์” และนาแอททริบิวท์ “ลักษณะการรักษา” ของ
ความสัมพันธ์ “รักษา” มาเป็นแอททริบิวท์ของรีเลชัน “การรักษา”
ด้วยจึงเกิด 3 รีเลชัน ดังนี้
– คนไข้(รหัสคนไข้, ชื่อ-นามสกุล, ห้องพัก)
– แพทย์(รหัสแพทย์, ชื่อ-นามสกุล, หมายเลขโทรศัพท์)
– การรักษา(รหัสคนไข้, รหัสแพทย์, ลักษณะการรักษา)
53
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
• การแปลงความสัมพันธ์แบบรีเคอร์ซีพ (Recursive Relationship)
ตัวอย่าง 4 พิจารณาความสัมพันธ์แบบรีเคอร์ซีพระหว่างเอนทิตี้
“พนักงาน” ซึ่งมีแอททริบิวท์ดังรูปที่ 4.5
54
รูปที่ 4.5 แผนภาพอี-อาร์แสดงความสัมพันธ์แบบรีเคอร์ซีพระหว่างเอนทิตี้พนักงาน
รหัสพนักงาน ชื่อ-สกุล
พนักงาน
หัวหน้า
แผนก
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
จากแผนภาพอี-อาร์ แสดงความสัมพันธ์แบบรีเคอร์ซี
พระหว่างเอนทิตี้พนักงานเป็นรีเลชันได้โดยนา “รหัส
พนักงาน” ซึ่งเป็นคีย์หลักของรีเลชัน “พนักงาน” มาเป็นคีย์
นอกของรีเลชันด้วยโดยให้ทาการเปลี่ยนชื่อแอททริบิวท์คีย์
นอกนั้นใหม่เป็น “รหัสผู้จัดการ” ดังนี้
– พนักงาน(รหัสพนักงาน, ชื่อ-นามสกุล, แผนก, รหัสผู้จัดการ)
55
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
• การแปลงความสัมพันธ์ระหว่างเอนทิตี้หลักและเอนทิตี้ย่อย (ISA
Relationship)
56
รูปที่ 4.6 ความสัมพันธ์ ISA ระหว่างเอนทิตี้อาจารย์เอนทิตี้อาจารย์ประจา และเอนทิตี้
อาจารย์พิเศษ
รหัสอาจารย์ ชื่อ-สกุล
อาจารย์ประจา
ที่อยู่
รหัสอาจารย์ รหัสอาจารย์
คณะ
เงินเดือน
ค่าจ้างรายชั่วโมง
ภาคการศึกษา
อาจารย์พิเศษ
อาจารย์
ISA ISA
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
ตัวอย่างที่ 5 พิจารณาความสัมพันธ์ ISA ระหว่างเอนทิตี้
“อาจารย์” และเอนทิตี้ “อาจารย์ประจา” และเอนทิตี้ “อาจารย์พิเศษ”
ซึ่งมีแอททริบิวท์ดังรูปที่ 4.6
จากแผนภาพอี-อาร์ แสดงความสัมพันธ์ระหว่างเอนทิตี้
“อาจารย์” เอนทิตี้ “อาจารย์ประจา” และเอนทิตี้ “อาจารย์พิเศษ” จะ
ถูกแปลงเป็นรีเลชันโดยสร้างรีเลชัน “อาจารย์” “อาจารย์ประจา”
และ “อาจารย์พิเศษ” ดังนี้
– อาจารย์(รหัสอาจารย์, ชื่อ-นามสกุล, ที่อยู่)
– อาจารย์ประจา(รหัสอาจารย์, เงินเดือน, คณะ)
– อาจารย์พิเศษ(รหัสอาจารย์, ค่าจ้างรายชั่วโมง, ภาคการศึกษา)
57
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
• การแปลงเอนทิตี้แบบอ่อน (Weak Entity)
การแปลงเอนทิตี้แบบอ่อน ซึ่งเป็นเอนทิตี้ที่จะปรากฎในฐานข้อมูลได้
ต่อเมื่อมีเอนทิตี้หนึ่งอยู่ในฐานข้อมูลด้วยเท่านั้น ให้เป็นรีเลชันทาโดยการสร้างรี
เลชันของทั้งเอนทิตี้แบบอ่อน และเอนทิตี้ที่เอนทิตี้แบบอ่อนนั้นมีการขึ้นต่อกัน
เชิงระบุ
โดยให้รีเลชันของเอนทิตี้แบบอ่อนประกอบด้วยแอททริบิวท์ทั้งหมดของ
เอนทิตี้นั้น และจะต้องนาแอททริบิวท์ที่เป็นคีย์ของเอนทิตี้ที่เอนทิตี้แบบอ่อนนั้น
มีการขึ้นต่อกันเชิงระบุมาอยู่ในรีเลชันของเอนทิตี้แบบอ่อนและให้เป็นส่วน
หนึ่งของคีย์หลักของรีเลชัน
ตัวอย่างที่ 6 พิจารณาความสัมพันธ์ระหว่างเอนทิตี้ “พนักงาน” กับ
เอนทิตี้แบบอ่อนคือเอนทิตี้ “ผู้เกี่ยวข้อง” ซึ่งมีแอททริบิวท์ดังรูปที่ 4.7
58
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
จากแผนภาพอี-อาร์แสดงความสัมพันธ์ระหว่างเอนทิตี้ “พนักงาน”
กับเอนทิตี้ “ผู้เกี่ยวข้อง” จะเปลี่ยนไปเป็นรีเลชัน 2 รีเลชัน ดังนี้
– พนักงาน(รหัสพนักงาน, ชื่อ-นามสกุล, แผนก)
– ผู้เกี่ยวข้อง(รหัสพนักงาน, ชื่อ-สกุลผู้เกี่ยวข้อง, วัน-เดือน-ปีเกิด)
59
รูปที่ 4.7 ความสัมพันธ์ระหว่างเอนทิตี้แบบอ่อนและเอนทิตี้แบบRegular
พนักงาน
รหัสพนักงาน
รหัสพนักงานแผนก
ชื่อ-นามสกุล ชื่อ-สกุลผู้เกี่ยวข้อง
วันเดือนปีเกิด
เกี่ยวข้อง อาจารย์พิเศษผู้เกี่ยวข้อง
การออกแบบฐานข้อมูลในระดับตรรก
(Logical Database Design)
• การรวมรีเลชัน (Merging Relations)
รีเลชันที่ผ่านการนอร์มอลไลแล้วอาจจะถูกสร้างจากแผนภาพ
อี-อาร์หลายๆ แผนภาพ ทาให้บางรีเลชันที่ได้ เป็นรีเลชันของเอน
ทิตี้ชนิดเดียวกัน ดังนั้นเราควรจะทาการรวมรีเลชันเหล่านั้นเพื่อจะ
ลดความซ้าซ้อนของข้อมูลลง ซึ่งกรรมวิธีอาจจะเรียกว่าการทา View
Integration ซึ่งจะเป็นขั้นตอนสุดท้ายของการออกแบบฐานข้อมูล
– พนักงาน1(รหัสพนักงาน, ชื่อ, ที่อยู่, โทรศัพท์)
– พนักงาน2(เลขประจาตัวพนักงาน, ชื่อ, ที่อยู่, แผนก, ตาแหน่ง)
รวมกันได้เป็น
– พนักงาน(รหัสพนักงาน, ชื่อ, ที่อยู่, โทรศัพท์, แผนก, ตาแหน่ง)
60
การออกแบบฐานข้อมูลในระดับกายภาภ
(Physical Database Design)
• การออกแบบฐานข้อมูลในระดับกายภาพ (Physical Database
Design)
การออกแบบฐานข้อมูลในระดับกายภาพ เป็นกระบวนการ
ในการแปลงจากโครงสร้างฐานข้อมูลในระดับตรรกะ (Logical
Database Design) ไปเป็นโครงสร้างฐานข้อมูลในระดับกายภาพ
(Physical Database Design) โดยพิจารณาการจัดเก็บข้อมูลจริง
เช่นดิสก์หรือเทป จุดประสงค์หลักของการออกแบบ
ฐานข้อมูลคือประสิทธิภาพของระบบ ซึ่งสามารถพิจารณาได้จาก
ความเร็วในการทางานของระบบ ความสะดวกในการใช้งาน และ
การประหยัดเนื้อที่ในการจัดเก็บข้อมูล ปัจจัยต่างๆ ที่จะต้อง
คานึงถึงในการออกแบบฐานข้อมูลในระดับกายภาพ ได้แก่
61
การออกแบบฐานข้อมูลในระดับกายภาภ
(Physical Database Design)
– อุปกรณ์ที่ใช้เพื่อเก็บข้อมูล วิธีการเข้าถึงข้อมูล วิธีการ
บารุงรักษาและเพิ่มประสิทธิ
– จานวนของเอนทิตี้แต่ละชนิดในฐานข้อมูล เช่นประมาณว่าใน
ฐานข้อมูลจะเก็บข้อมูลที่เกี่ยวกับพนักงานกี่คน
– จานวนผลลัพธ์ (Output) ที่ต้องการจากฐานข้อมูล เช่นจานวน
รายงาน ขนาดของแต่ละรายงานและความถี่ในการใช้รายงาน
– กฎเกณฑ์ในการควบคุมความถูกต้องและความปลอดภัยของ
ข้อมูล
62
Entity Relationship
Entity Relationship

Entity Relationship

  • 1.
  • 2.
    E-R Diagram • เป็นแผนภาพที่ทาหน้าที่จาลองข้อมูลที่มีความสัมพันธ์กัน •เป็นการออกแบบฐานข้อมูลในระดับ Conceptual • เป็นแบบจาลองข้อมูลที่แสดงถึงโครงสร้างฐานข้อมูลที่เป็นอิสระ จาก Software ที่จะใช้พัฒนาฐานข้อมูล (ไม่ขึ้นกับ Software) • ทาให้บุคลากรเข้าใจในระบบฐานข้อมูลได้ง่าย
  • 3.
    สัญลักษณ์ที่ใช้ใน E-R Diagram ใช้แบบChen Model • Entity – เป็นส่วนที่ใช้สาหรับเก็บข้อมูลแต่ละรายการภายในระบบที่เรากาลัง จัดทาอยู่ – เช่น • บุคคล (พนักงาน, ผู้ป่วย, บุคลากร, นักศึกษา,ลูกค้า) • สถานที่ (จังหวัด, อาเภอ, ภาค, ที่อยู่) • วัตถุ (รถยนต์, อาคาร, เครื่องจักร,สินค้า) • เหตุการณ์ (ประวัติ, การลงทะเบียน, การรักษาโรค,ซื้อ,ขาย) – สัญลักษณ์จะแทนด้วยรูปสี่เหลี่ยมและมีชื่อ Entity อยู่ภายใน พนักงาน
  • 4.
    • ประเภทของ ของEntity มี 2 ประเภท – 1 Regular Entity อาจจะเรียกอีกชื่อว่า Strong Entity • เป็น Entity ที่อยู่ได้โดยไม่ต้องอาศัย Entity อื่นในการคง อยู่ ซึ่งมีคุณสมบัติ Identity ได้ด้วยตัวเอง ไม่ต้องพึ่ง Entity อื่น –2 Week Entity • เป็น Entity ที่อยู่ได้โดยต้องอาศัย Entity อื่นในการคงอยู่ Customer Order Detail
  • 5.
    ภาพอธิบาย Strong &Weak Entity รหัส ชื่อ คณะ 45001 เดชา บริหารธุรกิจ 45002 สมชาย เกษตร รหัส ปีการศึกษา รหัสวิชา 45001 1/45 01 45002 1/45 01 45001 1/45 02 45002 1/45 02 รหัสวิชา ชื่อวิชา 01 ฐานข้อมูล 02 โครงสร้าง Student (Strong) Subject (Strong) Regis_Detail(Weak)
  • 6.
    • Attributes – เป็นคุณสมบัติหรือลักษณะของEntity – เช่น Attributes ของ พนักงาน ประกอบด้วย • เลขที่พนักงาน • ชื่อ-นามสกุล • เพศ • เงินเดือน สัญลักษณ์ Attributes นั้นจะแทนด้วยวงรี โดยมีชื่อของ Attributes กากับอยู่ภายใน และมีเส้นเชื่อมต่อกับ Entity ของมัน เช่น
  • 7.
  • 8.
    • Attributes สามารถจาแนกได้เป็น6 ประเภท 1 Simple Attributes – Attributesที่ไม่สามารถแบ่งแยกย่อยได้อีกแล้ว เช่น เพศ,เงินเดือน 2 Composite Attributes – มีลักษณะตรงข้ามกับแบบ Simple ที่สามารถแบ่งแยกย่อยไปได้อีก เช่น ชื่อสกุล ที่สามารถแบ่งออกได้เป็น Attributes ชื่อ และ สกุล 3 Key Attributes – เป็น Attributes ที่สามารถบ่งบอกถึงเอกลักษณ์ของ Entity นั้นได้ (มีค่า ไม่ซ้ากัน) – เวลาเขียน ER Diagram ต้องขีดเส้นใต้ Attributes ที่เป็น Key ด้วย
  • 9.
    4 Single -Valued Attributes – Property ที่มีค่าของข้อมูลได้เพียงแค่ค่าเดียว เช่น Attributes เพศ ที่ระบุได้เพียง ชาย หรือ หญิง เท่านั้น เพราะมนุษย์มีเพียงเพศเดียว – สัญลักษณ์เป็นวงรี เส้นเชื่อมเป็นเส้นเดี่ยว 5 Multi - Valued Attributes – มีลักษณะตรงข้ามกับแบบ Single ที่สามารถมีค่าของข้อมูลได้หลายค่า เช่น เบอร์โทรที่ ประกอบด้วยรหัสพื้นที่และตามด้วยหมายเลขโทรศัพท์ – สัญลักษณ์เป็นวงรีสองเส้น 6 Derived Attributes – เป็น Property ที่ได้มาจากการคานวณ โดยอาศัยค่าใน Property อื่น ๆ เช่น ค่าของอายุ ที่ ได้มาจาก Property วันเกิดสัญลักษณ์เป็นวงรีเส้นประ
  • 10.
    • ตัวอย่างภาพ Attributesชนิดต่าง ๆ StudentID Age Name_Surname Birthday Sex Name Surname Tel Composite key Derived Multi - Valued
  • 11.
    • 3. Relationship –หมายถึง Entity ที่แสดงความสัมพันธ์ระหว่าง 2 Entity ขึ้นไป – เป็นความสัมพันธ์ระหว่าง Entity ที่มี Attributes ร่วมกัน – โดยแต่ละความสัมพันธ์จะถูกระบุด้วยสัญลักษณ์สี่เหลี่ยมข้าวหลามตัด (Diamond) และคาที่อธิบายถึงความสัมพันธ์นั้น ๆ – พร้อมทั้งระบุชนิดของความสัมพันธ์ระหว่าง Entity นั้น ๆ ด้วย
  • 12.
    • ตัวอย่าง Relationship EmployeeWork_in Department Order Of Order_detail
  • 13.
    ประเภทของ Relationship • 1.One-to-One Relationship – เป็นความสัมพันธ์ของสมาชิกของใน Entity หนึ่งไปสัมพันธ์กับ กับสมาชิกของ ใน Entity อีกอันหนึ่ง เพียงหนึ่งเดียวเท่านั้น Employee Owner1 1 Car
  • 14.
    ประเภทของ Relationship • 2.One-to-Many Relationship – เป็นความสัมพันธ์ของสมาชิกของใน Entity หนึ่งไปสัมพันธ์กับ กับสมาชิกของ ใน Entity อีกอันหนึ่ง มากกว่า 1 สมาชิก Employee Have1 M Car
  • 15.
    ประเภทของ Relationship • 2.Meny-to-Many Relationship – เป็นความสัมพันธ์ของสมาชิกมากกว่า 1 สมาชิก ของใน Entity หนึ่งไป สัมพันธ์กับ กับสมาชิกของใน Entity อีกอันหนึ่ง มากกว่า 1 สมาชิก Customer Belong_toM N Account
  • 16.
    • Composite Entity –เป็น Entity ที่ถูกสร้างขึ้นเพื่อแปลงความสัมพันธ์แบบ M:M ให้เป็น แบบ 1:M (เพราะ แบบ M:M นั้นค่อนข้างยากแก่การเข้าใจ) – ซึ่ง Composite Entity จะกลายเป็น Entity ใหม่ที่รวมเอาไว้ด้วย Key Property ของทั้ง 2 Entity หลัก และส่วนสนใจอื่น ๆ – ซึ่ง Key Property ของ Composite Entity ก็คือ Key Property ของทั้ง 2 Entity หลัก นั่นเอง (เป็น PK ที่มีลักษณะเป็น Super Key : คีย์ร่วม) – สัญลักษณ์ของ Composite Entity คือ สี่เหลี่ยมผืนผ้าซ้อนด้วยสี่เหลี่ยมรูปข้าวหลามตัด
  • 17.
  • 18.
    การออกแบบฐานข้อมูลด้วย E-R Model 1.ศึกษารายละเอียดและลักษณะหน้าที่งานของระบบ • เพื่อรวบรวมรายละเอียด – ลักษณะการทางานของระบบ – ขั้นตอนการทางาน – เอกสารรายงานต่างๆ
  • 19.
    2. กาหนด Entityที่ควรมีในระบบฐานข้อมูล • โดยคานึงถึงข้อมูลทั้งหมดที่จะจัดเก็บลงไปในฐานข้อมูล ว่า สามารถแบ่งออกได้เป็นกี่ Entity • ภายในฐานข้อมูลหนึ่ง ๆ อาจจะมีจานวน Entity เป็นจานวนมาก ซึ่งก็ขึ้นอยู่ที่ผู้ใช้ว่าต้องการจัดเก็บข้อมูลมากเพียงใด • โดยการกาหนด Entity จะต้องคานึงถึง Entity ทั้งแบบอ่อนแอและ แบบแข็งแรงด้วย
  • 20.
    3. การกาหนดความสัมพันธ์ระหว่าง Entity •ว่าแต่ละ Entity ที่มีความสัมพันธ์กันนั้น จะสัมพันธ์กันด้วยเงื่อนไขใด และชนิดความสัมพันธ์เป็นอย่างไร – One to One Relationship – One to Many Relationship – Many to Many Relationship
  • 21.
    4. การกาหนดคุณลักษณะของ Entity •เป็นการกาหนดคุณสมบัติ (Attributes) ให้กับ Entity ว่าควรจะประกอบ ไปด้วย Attributes ใดบาง • พร้อมทั้งพิจารณาด้วยว่า Attributes ใดบ้างที่จะเป็น – Composite Attributes – Derived Attributes
  • 22.
    5. การกาหนด PrimaryKey ของแต่ละ Entity • เป็นการกาหนดให้ Entity แต่ละ Entity มีเอกลักษณ์เฉพาะที่สามารถ อ้างอิงได้อย่างไม่ซ้าซ้อน • นั่นก็คือการกาหนด Primary Key นั่นเอง
  • 23.
    ตัวอย่างการออกแบบฐานข้อมูลด้วย E-R Model สถาบันการศึกษาแห่งหนึ่งมีการสอนอยู่3 คณะ คือ เกษตร, วิทยาศาสตร์, ศึกษาศาสตร์ • ซึ่งในแต่ละคณะจะประกอบไปด้วยภาควิชาต่าง ๆ • แต่ละภาควิชาก็จะประกอบไปด้วยอาจารย์หลาย ๆ คน • อาจารย์แต่ละคนสอนได้หลายวิชา แต่สามารถสังกัดได้เพียงแค่ ภาควิชาเดียว • และอาจารย์แต่ละคนแต่ละภาคก็จะมีหัวหน้าภาค
  • 24.
    กาหนด Entity ที่ควรมีในระบบฐานข้อมูล –Entity Faculty แสดงรายละเอียดของคณะ – Entity Department แสดงรายละเอียดของแผนก – Entity Teacher แสดงรายละเอียดของอาจารย์ – Entity Subject แสดงรายละเอียดของวิชา
  • 25.
  • 26.
  • 27.
    กาหนดคุณลักษณะของ Entity • Faculty •Department Faculty Faculty_ID Faculty_Name Department Dep_ID Dep_Name
  • 28.
  • 29.
    การกาหนด Primary Keyของ Entity – Entity Faculty คือ Faculty_ID – Entity Department คือ Dep_ID – Entity Teacher คือ Teacher_ID – Entity Subject คือ Subject_ID
  • 31.
    ตัวอย่างการออกแบบฐานข้อมูลด้วย E-R Model •Ex ให้เขียน ER-Diagram ของระบบการขายสินค้า ร้านABC คอมพิวเตอร์ • โดยที่ – ลูกค้าหลายคนสามารถที่จะซื้อสินค้าได้หลายชิ้น – ใบเสร็จรับเงินหลายใบมีสินค้าได้หลายชิ้น – ในใบเสร็จแต่ละใบจะมีพนักขายเพียงคนเดียวเท่านั้น – สินค้าจะประเภทของตัวเอง
  • 32.
    กาหนด Entity ที่ควรมีในระบบฐานข้อมูล –Entity Customer แสดงรายละเอียดของลูกค้า – Entity Employee แสดงรายละเอียดของพนักงานขาย – Entity Product แสดงรายละเอียดของสินค้า – Entity TypeProduct แสดงประเภทของสินค้า – Entity Bill แสดงรายละเอียดของใบเสร็จ
  • 33.
    • กาหนดความสัมพันธ์ระหว่าง Entity Customerได้รับ 1 M Bill Employee มี 1 M Bill TypeProduct มี 1 M Product
  • 34.
    Bill มี M M Product BillBill_detail M M Product 1 1
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
    การออกแบบฐานข้อมูล (Database Design) การออกแบบฐานข้อมูล (DatabaseDesign) – การออกแบบฐานข้อมูลในระดับแนวคิด (Conceptual Database Design) – การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) – การออกแบบฐานข้อมูลในระดับกายภาพ (Physical Database Design) 39 วิเคราะห์ข้อมูลที่ต้องการ (Data Requirements Analysis การออกแบบในระดับแนวคิด (Conceptual Database Design การออกแบบในระดับตรรก (Logical Database Design) การออกแบบในระดับกายภาพ (Physical Database Design) รูปที่ 4.1 ขั้นตอนการออกแบบฐานข้อมูล
  • 40.
    การออกแบบฐานข้อมูลในระดับแนวคิด (Conceptual Database Design) การออกแบบฐานข้อมูลในระดับแนวคิด(Conceptual Database Design) การออกแบบฐานข้อมูลในระดับแนวคิดคือ ขั้นตอนการ ออกแบบจากข้อมูลที่ได้ในขั้นตอนการวิเคราะห์ความต้องการ แล้ว นาเสนอในรูปแบบแผนภาพในระดับแนวคิด (Conceptual Schema) ซึ่งแสดงภาพรวมของฐานข้อมูล แผนภาพในระดับแนวคิดที่เป็นที่นิยมคือแผนภาพอี-อาร์ ซึ่ง แสดงเอนทิตี้ทั้งหมด แอททริบิวส์ของแต่ละเอนทิตี้ และ ความสัมพันธ์ระหว่างเอนทิตี้ ฟังก์ชันการขึ้นต่อกันในรูปแบบที่ เข้าใจง่าย และไม่ขึ้นกับระบบจัดการฐานข้อมูลที่เลือกใช้ 40
  • 41.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) การออกแบบฐานข้อมูลในระดับตรรก(Logical Database Design) การออกแบบฐานข้อมูลในระดับตรรกคือ การออกแบบฐานข้อมูลให้อยู่ ในแบบจาลองฐานข้อมูลที่เหมาะสมกับระบบจัดการฐานข้อมูลที่เลือกใช้เช่น แบบจาลองฐานข้อมูลเชิงสัมพันธ์ แบบจาลองฐานข้อมูลลาดับชั้น หรือ แบบจาลองแบบเครือข่าย การออกแบบฐานข้อมูลในระดับแนวคิดให้เป็นเค้า โครงร่างในระดับตรรก (Logical Schema) ตามรูปแบบของระบบฐานข้อมูลต่างๆ เช่น ฐานข้อมูลเชิงสัมพันธ์ หรือ สามารถเลือกที่จะเริ่มออกแบบฐานข้อมูลในระดับตรรกะเลจโดยข้ามขั้นตอน ของการออกแบบในระดับแนวคิด คือเริ่มจากข้อมูลรายละเอียดจากขั้นตอนการวิเคราะห์ความต้องการแล้ว สร้างเป็นแบบจาลองเชิ่งสัมพันธ์แต่ในการออแบบฐานข้อมูลที่มีโครงสร้าง ซับซ้อนควรจะเริ่มในระดับแนวคิดก่อนเพื่อให้สามารถเห็นภาพรวมของ ฐานข้อมูล 41
  • 42.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) การออกแบบฐานข้อมูลในระดับตรรก(Logical Database Design) – จากแผนภาพอี-อาร์ แล้วสร้างเป็นฐานข้อมูลเชิงสัมพันธ์ (Normalization) – จากแผนภาพอี-อาร์ แล้วสร้างเป็นฐานข้อมูลเชิงสัมพันธ์โดยการแปลงเอนทิตี้ และแปลง ความสัมพันธ์ • จากแผนภาพอี-อาร์ แล้วสร้างเป็นฐานข้อมูลเชิงสัมพันธ์ (Normalization) จากแผนภาพอี-อาร์ใช้แสดงลักษณะโครงสร้างของฐานข้อมูล จะถูก แปลงไปเป็นกลุ่มของรีเลชัน (ตาราง) แล้วจึงทาการนอร์มอลไลท์ แล้วทาให้เป็น รูปแบบนอร์มอลระดับที่ 3 หรือรูปแบบนอร์มอลบอยส์-คอด แต่ในบางครั้ง อาจจะให้บางรีเลชันอยู่ในรูปแบบนอร์มอลระดับที่ 2 คือจะไม่ทาการแยกรี เลชันออกเพื่อให้รูปแบบนอร์มอลระดับที่ 3 ต่อไปอีก เพื่อประสิทธิภาพของ ฐานข้อมูลดีขึ้นเนื่องจากการลดเวลาที่ใช้ในการค้นหาและเชื่อมโยงข้อมูล 42
  • 43.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) •การแปลงเอนทิตี้ การแปลงเอนทิตี้ทาได้โดยแปลงเอนทิตี้แต่ละชนิดใน แผนภาพอี-อาร์ให้มาเป็นรีเลชัน โดยให้แต่ละรีเลชันมีคอลัมน์ซึ่งมา จากแอททริบิวท์ของเอนทิตี้ โดยให้แอททริบิวส์ที่เป็นคีย์หลักของ แต่ละเอนทิตี้แต่ละชนิดนั้นมาเป็นคีย์หลักของรีเลชัน โดยจะต้อง ตรวจสอบว่าคีย์หลักต้องตรวจสอบว่าคีย์หลักนี้มีคุณสมบัติถูกต้อง คือ • ค่าคีย์หลักในแต่ละแถวของรีเลชันจะต้องแตกต่างกันเนื่องจากคีย์หลักนี้จะใช้เพื่อ แยกความแตกต่างของแต่ละแถวในรีเลชัน • แอททริบิวท์ใดๆ ในคีย์หลักไม่สามารถถูกลบออกทิ้งได้นั่นคือคีย์หลักนี้ ไม่มีความ ซ้าซ้อนและจะนานอลคีย์แอททริบิวท์ของเอนทิตี้แต่ละชนิดในแผนภาพอี-อาร์ไป เป็นนอลคีย์แอททริบิวท์ของรีเลชัน 43
  • 44.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) •จากแผนภาพอี-อาร์ แล้วสร้างเป็นฐานข้อมูลเชิงสัมพันธ์ (การแปลงเอนทิตี้ และการแปลงความสัมพันธ์) การเปลี่ยนจาก แผนภาพอี-อาร์มาเป็นรีเลชัน ประกอบด้วย 2 ขั้นตอนคือ • การแปลงเอนทิตี้ • การแปลงความสัมพันธ์ 44
  • 45.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) •การแปลงเอนทิตี้ การแปลงเอนทิตี้ทาโดยแปลงเอนทิตี้แต่ละชนิดในแผนภาพอี- อาร์ให้มาเป็นรีเลชัน โดยให้แต่ละรีเลชันมีคอลัมน์ซึ่งมาจากแอ ททริบิวส์ของเอนทิตี้ โดยให้แต่ละแอททริบิวส์ที่เป็นคีย์ของ เอนทิตี้แต่ละชนิดนั้นมาเป็นคีย์หลักของรีเลชัน โดยจะต้อง ตรวจสอบว่าคีย์หลักมีคุณสมบัติถูกต้อง คือ • ค่าของคีย์หลักในแต่ละแถวของรีเลชันจะต้องแตกกัน เนื่องจากคีย์ หลักนี้จะใช้เพื่อแยกความแตกต่างของแต่ละแถวในรีเลชัน • แอททริบิวส์ใดๆ ในคีย์หลักไม่สามารถถูกลบออกทิ้งได้นั่นคือคีย์ หลักจะต้องไม่มีความซ้าซ้อนและจะนานอลคีย์แอททริบิวส์ของ เอนทิตี้แต่ละชนิดในแผนภาพอี-อาร์ ไปเป็นนอลคีย์แอททริบิวท์ของ รีเลชัน 45
  • 46.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) •การแปลงความสัมพันธ์ (การแปลง Relationship) ในการแปลงความสัมพันธ์ต้องพิจารณาดีกรีของความสัมพันธ์ ระหว่างเอนทิตี้ว่าเป็นยูนารี ไบนารี หรือเทอร์นารี และจะต้อง พิจารณาคาร์ดินอลลิตี้ ของความสัมพันธ์ ดังนี้ – ความสัมพันธ์แบบไบนารีหนึ่งต่อหนึ่ง(Binary 1:1 Relationship) – ความสัมพันธ์แบบไบนารีหนึ่งต่อกลุ่ม(Binary 1:N Relationship) – ความสัมพันธ์แบบไบนารีกลุ่มต่อกลุ่ม(Binary N:N Relationship) – ความสัมพันธ์แบบรีเคอซีพ (Recursive Relationship) – ความสัมพันธ์ระหว่างเอนทิตี้หลักและเอนทิตี้ย่อย(ISA Relationship) 46
  • 47.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) –การแปลงเอนทิตี้แบบอ่อน (Weak Entity) – การรวมรีเลชัน (Merging Relation) 47
  • 48.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) •การแปลงความสัมพันธ์แบบหนึ่งต่อหนึ่ง (Binary 1:1 Relationship) ตัวอย่าง 1 พิจารณาความสัมพันธ์แบบหนึ่งต่อหนึ่งระหว่างเอนทิตี้ “คนไข้” และเอนทิตี้ “ห้องพัก” ซึ่งมีแอททริบิวท์ดังรูปที่ 4.2 48 หมายเลขห้อง-หมายเลขเตียง ประเภทห้อง รหัสคนไข้ ชื่อ-นามสกุล วันกาหนดออกจากโรงพยาบาล ห้องพัก คนไข้ พัก รูปที่ 4.2 แผนภาพอี-อาร์แสดงความสัมพันธ์ระหว่างเอนทิตี้ “คนไข้” กับเอนทิตี้ “ห้องพัก”
  • 49.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) จากแผนภาพอี-อาร์แสดงความสัมพันธ์แบบหนึ่งต่อหนึ่ง ระหว่างเอนทิตี้“คนไข้” กับเอนทิตี้ “ห้องพัก” จะถูกแปลงให้เป็น รีเลชันไดโดยกาหนดให้ “หมายเลขห้อง-หมายเลขเตียง” เป็นคีย์ นอกของรีเลชัน “คนไข้” เนื่องจาก “หมายเลขห้อง-หมายเลขเตียง” เป็นคีย์หลักของรีเลชัน “ห้องพัก” – คนไข้(รหัสคนไข้, ชื่อ-สกุล, หมายเลขห้อง-หมายเลขเตียง, วันกาหนดออก จากโรงพยาบาล) – ห้องพัก(หมายเลขห้อง-หมายเลขเตียง, ประเภทห้อง) 49
  • 50.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) •การแปลงความสัมพันธ์แบบหนึ่งต่อกลุ่ม (Binary 1:N Relationship) ตัวอย่าง 2 พิจารณาความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างเอนทิตี้ “อาจารย์” และเอนทิตี้ “นักศึกษา” ซึ่งมีแอททริบิวท์ดังรูปที่ 4.3 50 รูปที่ 4.3 แผนภาพอี-อาร์แสดงความสัมพันธ์ระหว่างเอนทิตี้ “อาจารย์” กับเอนทิตี้ “นักศึกษา” ชื่อ-นามสกุล รหัสอาจารย์ ชื่อ-สกุล รหัสนักศึกษา คณะ อาจารย์ นักศึกษา ที่ปรึกษา หมายเลขห้องพัก
  • 51.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) จากแผนภาพอี-อาร์แสดงความสัมพันธ์ระหว่างเอนทิตี้ อาจารย์และเอนทิตี้นักศึกษา จะถูกแปลงไปเป็นรีเลชันได้โดย กาหนดให้ “รหัสอาจารย์” ซึ่งเป็นคีย์หลักของเอนทิตี้ทางด้าน ความสัมพันธ์เป็นหนึ่งให้เป็นคีย์นอกของรีเลชัน “นักศึกษา” ทางด้านความสัมพันธ์เป็นกลุ่ม – อาจารย์(รหัสอาจารย์, ชื่อ-นามสกุล, หมายเลขห้องพัก) – นักศึกษา(รหัสนักศึกษา, ชื่อ-สกุล, รหัสอาจารย์) 51
  • 52.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) •การแปลงความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Binary M:N Relationship) ตัวอย่าง 3 พิจารณาความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างเอนทิตี้ “คนไข้” และเอนทิตี้ “แพทย์” ซึ่งมีแอททริบิวท์ดังรูปที่ 4.4 52 รูปที่ 4.4 แผนภาพอี-อาร์แสดงความสัมพันธ์ระหว่างเอนทิตี้ “แพทย์” กับเอนทิตี้ “คนไข้” ชื่อ-นามสกุล รหัสแพทย์ ชื่อ-สกุล รหัสคนไข้ หัองพัก แพทย์ คนไข้ รักษา ลักษณะการรักษา หมายเลขโทรศัพท์
  • 53.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) จากแผนภาพอี-อาร์แสดงความสัมพันธ์ระหว่างเอนทิตี้ “แพทย์” กับเอนทิตี้ “คนไข้” จะถูกแปลงเป็นรีเลชันได้โดยสร้างเป็น รีเลชัน “การรักษา” เพิ่มอีก 1 รีเลชัน โดยให้รีเลชัน “การรักษา” มีคีย์ หลักเป็นคีย์รวมที่สร้างขึ้นจากคีย์หลักของรีเลชัน “คนไข้” และรีเล ชัน “แพทย์” และนาแอททริบิวท์ “ลักษณะการรักษา” ของ ความสัมพันธ์ “รักษา” มาเป็นแอททริบิวท์ของรีเลชัน “การรักษา” ด้วยจึงเกิด 3 รีเลชัน ดังนี้ – คนไข้(รหัสคนไข้, ชื่อ-นามสกุล, ห้องพัก) – แพทย์(รหัสแพทย์, ชื่อ-นามสกุล, หมายเลขโทรศัพท์) – การรักษา(รหัสคนไข้, รหัสแพทย์, ลักษณะการรักษา) 53
  • 54.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) •การแปลงความสัมพันธ์แบบรีเคอร์ซีพ (Recursive Relationship) ตัวอย่าง 4 พิจารณาความสัมพันธ์แบบรีเคอร์ซีพระหว่างเอนทิตี้ “พนักงาน” ซึ่งมีแอททริบิวท์ดังรูปที่ 4.5 54 รูปที่ 4.5 แผนภาพอี-อาร์แสดงความสัมพันธ์แบบรีเคอร์ซีพระหว่างเอนทิตี้พนักงาน รหัสพนักงาน ชื่อ-สกุล พนักงาน หัวหน้า แผนก
  • 55.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) จากแผนภาพอี-อาร์แสดงความสัมพันธ์แบบรีเคอร์ซี พระหว่างเอนทิตี้พนักงานเป็นรีเลชันได้โดยนา “รหัส พนักงาน” ซึ่งเป็นคีย์หลักของรีเลชัน “พนักงาน” มาเป็นคีย์ นอกของรีเลชันด้วยโดยให้ทาการเปลี่ยนชื่อแอททริบิวท์คีย์ นอกนั้นใหม่เป็น “รหัสผู้จัดการ” ดังนี้ – พนักงาน(รหัสพนักงาน, ชื่อ-นามสกุล, แผนก, รหัสผู้จัดการ) 55
  • 56.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) •การแปลงความสัมพันธ์ระหว่างเอนทิตี้หลักและเอนทิตี้ย่อย (ISA Relationship) 56 รูปที่ 4.6 ความสัมพันธ์ ISA ระหว่างเอนทิตี้อาจารย์เอนทิตี้อาจารย์ประจา และเอนทิตี้ อาจารย์พิเศษ รหัสอาจารย์ ชื่อ-สกุล อาจารย์ประจา ที่อยู่ รหัสอาจารย์ รหัสอาจารย์ คณะ เงินเดือน ค่าจ้างรายชั่วโมง ภาคการศึกษา อาจารย์พิเศษ อาจารย์ ISA ISA
  • 57.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) ตัวอย่างที่5 พิจารณาความสัมพันธ์ ISA ระหว่างเอนทิตี้ “อาจารย์” และเอนทิตี้ “อาจารย์ประจา” และเอนทิตี้ “อาจารย์พิเศษ” ซึ่งมีแอททริบิวท์ดังรูปที่ 4.6 จากแผนภาพอี-อาร์ แสดงความสัมพันธ์ระหว่างเอนทิตี้ “อาจารย์” เอนทิตี้ “อาจารย์ประจา” และเอนทิตี้ “อาจารย์พิเศษ” จะ ถูกแปลงเป็นรีเลชันโดยสร้างรีเลชัน “อาจารย์” “อาจารย์ประจา” และ “อาจารย์พิเศษ” ดังนี้ – อาจารย์(รหัสอาจารย์, ชื่อ-นามสกุล, ที่อยู่) – อาจารย์ประจา(รหัสอาจารย์, เงินเดือน, คณะ) – อาจารย์พิเศษ(รหัสอาจารย์, ค่าจ้างรายชั่วโมง, ภาคการศึกษา) 57
  • 58.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) •การแปลงเอนทิตี้แบบอ่อน (Weak Entity) การแปลงเอนทิตี้แบบอ่อน ซึ่งเป็นเอนทิตี้ที่จะปรากฎในฐานข้อมูลได้ ต่อเมื่อมีเอนทิตี้หนึ่งอยู่ในฐานข้อมูลด้วยเท่านั้น ให้เป็นรีเลชันทาโดยการสร้างรี เลชันของทั้งเอนทิตี้แบบอ่อน และเอนทิตี้ที่เอนทิตี้แบบอ่อนนั้นมีการขึ้นต่อกัน เชิงระบุ โดยให้รีเลชันของเอนทิตี้แบบอ่อนประกอบด้วยแอททริบิวท์ทั้งหมดของ เอนทิตี้นั้น และจะต้องนาแอททริบิวท์ที่เป็นคีย์ของเอนทิตี้ที่เอนทิตี้แบบอ่อนนั้น มีการขึ้นต่อกันเชิงระบุมาอยู่ในรีเลชันของเอนทิตี้แบบอ่อนและให้เป็นส่วน หนึ่งของคีย์หลักของรีเลชัน ตัวอย่างที่ 6 พิจารณาความสัมพันธ์ระหว่างเอนทิตี้ “พนักงาน” กับ เอนทิตี้แบบอ่อนคือเอนทิตี้ “ผู้เกี่ยวข้อง” ซึ่งมีแอททริบิวท์ดังรูปที่ 4.7 58
  • 59.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) จากแผนภาพอี-อาร์แสดงความสัมพันธ์ระหว่างเอนทิตี้“พนักงาน” กับเอนทิตี้ “ผู้เกี่ยวข้อง” จะเปลี่ยนไปเป็นรีเลชัน 2 รีเลชัน ดังนี้ – พนักงาน(รหัสพนักงาน, ชื่อ-นามสกุล, แผนก) – ผู้เกี่ยวข้อง(รหัสพนักงาน, ชื่อ-สกุลผู้เกี่ยวข้อง, วัน-เดือน-ปีเกิด) 59 รูปที่ 4.7 ความสัมพันธ์ระหว่างเอนทิตี้แบบอ่อนและเอนทิตี้แบบRegular พนักงาน รหัสพนักงาน รหัสพนักงานแผนก ชื่อ-นามสกุล ชื่อ-สกุลผู้เกี่ยวข้อง วันเดือนปีเกิด เกี่ยวข้อง อาจารย์พิเศษผู้เกี่ยวข้อง
  • 60.
    การออกแบบฐานข้อมูลในระดับตรรก (Logical Database Design) •การรวมรีเลชัน (Merging Relations) รีเลชันที่ผ่านการนอร์มอลไลแล้วอาจจะถูกสร้างจากแผนภาพ อี-อาร์หลายๆ แผนภาพ ทาให้บางรีเลชันที่ได้ เป็นรีเลชันของเอน ทิตี้ชนิดเดียวกัน ดังนั้นเราควรจะทาการรวมรีเลชันเหล่านั้นเพื่อจะ ลดความซ้าซ้อนของข้อมูลลง ซึ่งกรรมวิธีอาจจะเรียกว่าการทา View Integration ซึ่งจะเป็นขั้นตอนสุดท้ายของการออกแบบฐานข้อมูล – พนักงาน1(รหัสพนักงาน, ชื่อ, ที่อยู่, โทรศัพท์) – พนักงาน2(เลขประจาตัวพนักงาน, ชื่อ, ที่อยู่, แผนก, ตาแหน่ง) รวมกันได้เป็น – พนักงาน(รหัสพนักงาน, ชื่อ, ที่อยู่, โทรศัพท์, แผนก, ตาแหน่ง) 60
  • 61.
    การออกแบบฐานข้อมูลในระดับกายภาภ (Physical Database Design) •การออกแบบฐานข้อมูลในระดับกายภาพ (Physical Database Design) การออกแบบฐานข้อมูลในระดับกายภาพ เป็นกระบวนการ ในการแปลงจากโครงสร้างฐานข้อมูลในระดับตรรกะ (Logical Database Design) ไปเป็นโครงสร้างฐานข้อมูลในระดับกายภาพ (Physical Database Design) โดยพิจารณาการจัดเก็บข้อมูลจริง เช่นดิสก์หรือเทป จุดประสงค์หลักของการออกแบบ ฐานข้อมูลคือประสิทธิภาพของระบบ ซึ่งสามารถพิจารณาได้จาก ความเร็วในการทางานของระบบ ความสะดวกในการใช้งาน และ การประหยัดเนื้อที่ในการจัดเก็บข้อมูล ปัจจัยต่างๆ ที่จะต้อง คานึงถึงในการออกแบบฐานข้อมูลในระดับกายภาพ ได้แก่ 61
  • 62.
    การออกแบบฐานข้อมูลในระดับกายภาภ (Physical Database Design) –อุปกรณ์ที่ใช้เพื่อเก็บข้อมูล วิธีการเข้าถึงข้อมูล วิธีการ บารุงรักษาและเพิ่มประสิทธิ – จานวนของเอนทิตี้แต่ละชนิดในฐานข้อมูล เช่นประมาณว่าใน ฐานข้อมูลจะเก็บข้อมูลที่เกี่ยวกับพนักงานกี่คน – จานวนผลลัพธ์ (Output) ที่ต้องการจากฐานข้อมูล เช่นจานวน รายงาน ขนาดของแต่ละรายงานและความถี่ในการใช้รายงาน – กฎเกณฑ์ในการควบคุมความถูกต้องและความปลอดภัยของ ข้อมูล 62