You are on page 1of 162

ระบบฐานข้อมูล
Database Systems

มณกันต์ สมเกื้อ

สาขาวิชาคอมพิวเตอร์ธุรกิจ คณะวิทยาการจัดการ
มหาวิทยาลัยราชภัฏสุราษฎร์ธานี
2560

คานา
เอกสารประกอบการสอน รายวิชาระบบฐานข้อมูล รหัสวิชา MBC0507 ฉบับนี้ จัดทํา
ขึ้นเพื่อใช้ประกอบการสอนในชั้นเรียนของนักศึกษาสาขาวิชาคอมพิวเตอร์ธุรกิจ ซึ่งผู้เรียบเรียงได้
รวบรวมข้อมูลจากเอกสาร ตํารา หนังสือ เว็บไซต์ต่างๆ รวมถึงประสบการณ์ของผู้เรียบเรียงเอง เพื่อ
ประโยชน์ในการทําความเข้าใจเนื้อหามากยิ่งขึ้น โดยได้แบ่งเนื้อหาออกเป็น 6 บท โดยแต่ละบทได้
เรียงลําดับต่อ เนื่อ งในกระบวนการต่างๆ ที่ ใช้ในการออกแบบฐานข้อ มู ลเชิงสัม พันธ์ อีก ทั้งเนื้อหา
เกี่ยวกับคําสั่ง SQL (Structure Query Language) ในตอนท้ายซึ่งเป็นคําสั่งที่ใช้ทํางานกับฐานข้อมูล
เชิงสัมพันธ์
ผู้เรียบเรียงขอขอบพระคุณเนื้อหาจากแหล่งที่มาต่างๆ ที่ได้ใช้อ้างอิงและขอขอบคุณทุก
ฝ่ายที่ช่วยเหลือให้เอกสารประกอบการสอนฉบับนี้สําเร็จเป็นเล่มสมบูรณ์ หวังเป็นอย่างยิ่งว่าเอกสาร
ประกอบการสอนวิชาระบบฐานข้อมูล ฉบับนี้จะเป็นประโยชน์ต่อการเรียนการสอนรายวิชาระบบ
ฐานข้อมูล ต่อไป

มณกันต์ สมเกื้อ
ผู้เรียบเรียง
2560

สารบัญ
หน้า

แผนบริหารการสอนประจาบทที่ 1 ___________________________________________ 1
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล _________________________________ 3
1.1 ตัวอย่างการประยุกต์ใช้ฐานข้อมูล _________________________________________ 4
1.2 ความสาคัญของการออกแบบฐานข้อมูล _____________________________________ 6
1.3 โครงสร้างแฟ้มข้อมูล __________________________________________________ 7
1.4 ข้อจากัดของระบบแฟ้มข้อมูล ___________________________________________ 10
1.5 ระบบฐานข้อมูล_____________________________________________________ 12
1.6 สภาพแวดล้อมของระบบฐานข้อมูล _______________________________________ 13
1.7 ประเภทของระบบฐานข้อมูล____________________________________________ 16
1.8 หน้าที่ของระบบจัดการฐานข้อมูล DBMS ___________________________________ 17
1.9 แบบจาลองฐานข้อมูล_________________________________________________ 20
1.9.1 แบบจําลองฐานข้อมูลลําดับชั้น _______________________________________ 20
1.9.2 แบบจําลองฐานข้อมูลเครือข่าย_______________________________________ 23
1.9.3 แบบจําลองฐานข้อมูลเชิงสัมพันธ์ _____________________________________ 24
1.9.4 แบบจําลองฐานข้อมูลเชิงวัตถุ ________________________________________ 26
1.9.5 แบบจําลองฐานข้อมูลหลายมิติ _______________________________________ 27
สรุปท้ายบท___________________________________________________________ 28
คาถามทบทวนบทที่ 1 ___________________________________________________ 29
เอกสารอ้างอิงบทที่ 1 ____________________________________________________ 30
แผนบริหารการสอนประจาบทที่ 2 __________________________________________ 31
บทที่ 2 การออกแบบฐานข้อมูลด้วย ER-Diagram ______________________________ 33
2.1 สัญลักษณ์ที่ใช้ใน ER-Diagram _________________________________________ 34
2.2 ชนิดของความสัมพันธ์ ________________________________________________ 37

สารบัญ (ต่อ)
หน้า

2.3 วิธีวิเคราะห์ชนิดของความสัมพันธ์ใน ER-Diagram ____________________________ 39


2.3.1 การวิเคราะห์ความสัมพันธ์ชนิดหนึง่ ต่อหนึง่ ______________________________ 39
2.3.2 การวิเคราะห์ความสัมพันธ์ชนิดหนึง่ ต่อกลุ่ม ______________________________ 40
2.3.3 การวิเคราะห์ความสัมพันธ์ชนิดกลุ่มต่อกลุ่ม______________________________ 41
2.4 Cardinality ______________________________________________________ 42
2.4.1 วิธีการวิเคราะห์ Cardinality มีลักษณะการวิเคราะห์คล้ายกับการวิเคราะห์ _______ 43
2.5 การระบุการเป็นทางเลือกหรือมีความจาเป็น (Optional, Mandatory) _____________ 45
2.6 แอตทริบิวต์ (Attribute) ______________________________________________ 46
2.6.1 ประเภทและสัญลักษณ์ของ แอตทริบิวต์ (Attribute) _______________________ 48
2.7 กรณีตัวอย่างในการเขียน ER-Diagram ____________________________________ 49
สรุปท้ายบท __________________________________________________________ 63
คาถามทบทวนท้ายบทที่ 2 ________________________________________________ 64
เอกสารอ้างอิงบทที่ 2____________________________________________________ 65
แผนบริหารการสอนประจาบทที่ 3 __________________________________________ 66
บทที่ 3 การแปลง ER-Diagram ให้อยู่ในรูปรีเลชัน ______________________________ 69
3.1 ชนิดของคีย์ที่ใช้ในการออกแบบฐานข้อมูล _________________________________ 69
3.2 วิธีการแปลง ER-Diagram ให้อยู่ในรูปของรีเลชัน ____________________________ 73
3.2.1 กฎต่างๆ ในการ Mapping ___________________________________________ 73
การ Mapping กรณีที่ชนิดของความสัมพันธ์เป็นแบบหนึ่งต่อหนึ่ง (1 to 1) __________ 74
การ Mapping กรณีมี Composite Key __________________________________ 75
การแปลง ER-Diagram ในกรณีที่มี Derived Attribute _______________________ 79
การแปลง ER-Diagram กรณีที่มี Weak Entity _____________________________ 80
สรุปท้ายบท __________________________________________________________ 84
คาถามทบทวนบทที่ 3 ___________________________________________________ 85
เอกสารอ้างอิงบทที่ 3____________________________________________________ 86

สารบัญ (ต่อ)
หน้า

แผนบริหารการสอนประจาบทที่ 4 __________________________________________ 87
บทที่ 4 Normalization ________________________________________________ 89
4.1 Functional Dependency (FDs) _______________________________________ 89
4.1.8 Multi-Value Dependency (MVDs)____________________________________ 93
4.2 Dependency Diagram ______________________________________________ 94
4.5 Dependency Diagram _____________________________________________ 95
4.6 การทาให้อยู่ในรูปแบบทีเ่ ป็นบรรทัดฐาน (Normalization) ______________________ 96
4.6.1 ระดับของการทํา Normalization ____________________________________ 96
สรุปท้ายบท__________________________________________________________ 100
คาถามทบทวนบทที่ 4 __________________________________________________ 101
เอกสารอ้างอิงบทที่ 4 ___________________________________________________ 102
แผนบริหารการสอนประจาบทที่ 5 _________________________________________ 103
บทที่ 5 การสร้างฐานข้อมูลด้วยระบบจัดการฐานข้อมูล __________________________ 105
5.1 ประเภทข้อมูลใน Microsoft Access (Microsoft Access Data Type) ____________ 105
5.2 การสร้างฐานข้อมูลด้วย Microsoft Access 2010 ___________________________ 113
สรุปท้ายบท__________________________________________________________ 118
คาถามท้ายบทที่ 5 _____________________________________________________ 119
เอกสารอ้างอิงบทที่ 5 ___________________________________________________ 120
แผนบริหารการสอนประจาบทที่ 6 _________________________________________ 121
บทที่ 6 คาสั่ง SQL : Structure Query Language ____________________________ 123
6.1 ประวัติและความเป็นมาของ SQL _______________________________________ 123
6.2 ประเภทของคาสั่ง SQL ______________________________________________ 124
6.3 ภาษานิยามข้อมูล (Data Definition Language : DDL) ______________________ 124
6.3.1 การสร้างตาราง _________________________________________________ 124
6.3.2 สร้างดัชนี _____________________________________________________ 125
6.3.3 การสร้าง _____________________________________________________ 126
6.3.4 คําสั่งที่ใช้ในการลบ ______________________________________________ 127

สารบัญ (ต่อ)
หน้า

6.4 ภาษาจัดการข้อมูล (Data Manipulation Language : DML) __________________ 127


6.5 ภาษาควบคุมข้อมูล (Data Control Language : DCL) _______________________ 142
สรุปท้ายบท _________________________________________________________ 143
คาถามทบทวนบทที่ 6 __________________________________________________ 144
เอกสารอ้างอิงบทที่ 6___________________________________________________ 145

สารบัญภาพ
หน้า
ภาพที่ 1.1 อุปกรณ์ที่ใช้กบั ระบบ POS ___________________________________________ 5
ภาพที่ 1.2 ระบบบริหารงานทะเบียนมหาวิทยาลัยราชภัฏสุราษฎร์ธานี ____________________ 5
ภาพที่ 1.3 โครงสร้างแฟ้มข้อมูล _______________________________________________ 8
ภาพที่ 1.4 แสดงตัวอย่างการเก็บข้อมูลด้วยไฟล์ ____________________________________ 9
ภาพที่ 1.7 ตัวอย่างฐานข้อมูลภายใต้โครงสร้างแบบจําลองฐานข้อมูลลําดับชั้น ______________ 21
ภาพที่ 1.8 แบบจําลองฐานข้อมูลเครือข่าย _______________________________________ 23
ภาพที่ 1.9 ตัวอย่างฐานข้อมูลภายใต้โครงสร้างแบบจําลองฐานข้อมูลเชิงสัมพันธ์ ____________ 25
ภาพที่ 2.1 แสดงตัวอย่างสัญลักษณ์ที่ใช้ใน ER-DIAGRAM ______________________________ 34
ภาพที่ 2.2 แสดงลักษณะความสัมพันธ์แบบ RECURSIVE ______________________________ 35
ภาพที่ 2.3 แสดงลักษณะความสัมพันธ์แบบเอ็นทิตี กับเอ็นทิตี _________________________ 36
ภาพที่ 2.4 แสดงลักษณะความสัมพันธ์แบบ TERNARY________________________________ 36
ภาพที่ 2.5 แสดงลักษณะความสัมพันธ์แบบมี WEAK ENTITY ___________________________ 37
ภาพที่ 2.6 แสดงลักษณะความสัมพันธ์แบบหนึง่ ต่อหนึง่ ______________________________ 38
ภาพที่ 2.7 แสดงลักษณะความสัมพันธ์แบบหนึง่ ต่อกลุ่ม ______________________________ 38
ภาพที่ 2.8 แสดงลักษณะความสัมพันธ์แบบกลุม่ ต่อกลุ่ม ______________________________ 38
ภาพที่ 2.9 แสดงลักษณะความสัมพันธ์แบบหนึง่ ต่อหนึง่ ______________________________ 39
ภาพที่ 2.10 แสดงลักษณะความสัมพันธ์แบบหนึ่งต่อกลุม่ _____________________________ 40
ภาพที่ 2.11 แสดงลักษณะความสัมพันธ์แบบกลุม่ ต่อกลุ่ม _____________________________ 41
ภาพที่ 2.12 ลักษณะการใช้ COMPOSITE ENTITY เพื่อแก้ปญ ั หาความสัมพันธ์แบบกลุ่มต่อกลุ่ม ____ 42
ภาพที่ 2.13 แสดงลักษณะของการระบุ CARDINALITY ________________________________ 43
ภาพที่ 2.14 ลักษณะของการระบุ CARDINALITY กรณีมี COMPOSITE ENTITY _________________ 44
ภาพที่ 2.15 ลักษณะของการระบุ OPTIONAL ______________________________________ 45
ภาพที่ 2.16 แสดงลักษณะของการระบุ OPTIONAL กรณีมี COMPOSITE ENTITY _______________ 46
ภาพที่ 2.17 แสดงการระบุ แอตทริบิวต์ ใน ER-DIAGRAM _____________________________ 47
ภาพที่ 2.18 แสดงตัวอย่างการระบุ แอตทริบิวต์ ใน ER-DIAGRAM________________________ 47
ภาพที่ 2.19 แสดงสัญลักษณ์ แอตทริบิวต์ ________________________________________ 48
ภาพที่ 2.20 แสดงสัญลักษณ์ KEY ATTRIBUTE______________________________________ 48

สารบัญภาพ (ต่อ)
หน้า
ภาพที่ 2.21 แสดงสัญลักษณ์ COMPOSITE ATTRIBUTE ________________________________ 48
ภาพที่ 2.22 แสดงสัญลักษณ์ MULTI VALUE ATTRIBUTE ______________________________ 49
ภาพที่ 2.23 แสดงสัญลักษณ์ DERIVED ATTRIBUTE __________________________________ 49
ภาพที่ 2.24 ER-DIAGRAM แสดงความสัมพันธ์ระหว่างผู้รบั เหมากับการมีรถบรรทุก ___________ 51
ภาพที่ 2.25 ER-DIAGRAM แสดงความสัมพันธ์ระหว่างพนักงานกับการชัง่ รถบรรทุก ___________ 52
ภาพที่ 2.26 ER-DIAGRAM แสดงความสัมพันธ์ระหว่างลูกค้ากับการจ้างผูร้ ับเหมา ____________ 54
ภาพที่ 2.27 ER-DIAGRAM แสดงความสัมพันธ์ระหว่างพนักงานกับการจ่ายเงินกับลูกค้า ________ 56
ภาพที่ 2.28 ER-DIAGRAM แสดงความสัมพันธ์ระหว่างพนักงานกับการบันทึกราคารับซื้อ _______ 57
ภาพที่ 2.29 ER-DIAGRAM แสดงความสัมพันธ์ระหว่างพนักงานกับการรับเงินจากโรงงาน _______ 58
ภาพที่ 2.30 ER-DIAGRAM ของลานเทปาล์ม ______________________________________ 60
ภาพที่ 3.1 ตารางข้อมูลพนักงาน ______________________________________________ 69
ภาพที่ 3.2 ตารางข้อมูลพนักงานและ CANDIDATE KEY _______________________________ 70
ภาพที่ 3.3 ตารางข้อมูลพนักงานและ UNIQUE SUBSET _______________________________ 71
ภาพที่ 3.4 การเชื่อมความสัมพันธ์ระหว่างตารางด้วย FOREIGN KEY ______________________ 72
ภาพที่ 3.5 สัญลักษณ์ SIMPLE ATTRIBUTE ________________________________________ 74
ภาพที่ 3.6 ER-DIAGRAM ที่มีความสัมพันธ์แบบหนึง่ ต่อหนึง่ ____________________________ 74
ภาพที่ 3.7 ER-DIAGRAM ที่มีความสัมพันธ์แบบหนึง่ ต่อหนึง่ และมีคีย์เป็น COMPOSITE KEY_______ 75
ภาพที่ 3.8 ER-DIAGRAM ที่มีความสัมพันธ์แบบหนึง่ ต่อกลุ่ม____________________________ 76
ภาพที่ 3.9 ER-DIAGRAM ที่มีความสัมพันธ์แบบกลุ่มต่อกลุ่ม ___________________________ 77
ภาพที่ 3.10 เอ็นทิตี ที่มี COMPOSITE ATTRIBUTE ___________________________________ 78
ภาพที่ 3.11 เอ็นทิตี ที่มี MULTI VALUE ATTRIBUTE __________________________________ 78
ภาพที่ 3.12 เอ็นทิตี ที่มี DERIVED ATTRIBUTE ______________________________________ 79
ภาพที่ 3.13 ER-DIAGRAM ที่มีความสัมพันธ์กบั WEAK ENTITY __________________________ 80
ภาพที่ 3.14 ER-DIAGRAM แสดงความสัมพันธ์แบบ RECURSIVE _________________________ 81
ภาพที่ 3.15 ตัวอย่าง ER-DIAGRAM เพื่อใช้ในการแปลงให้อยูใ่ นรูปของรีเลชัน _______________ 82
ภาพที่ 4.1 FUNCTIONAL DEPENDENCY (FDS) ______________________________________ 90
ภาพที่ 4.2 ตัวอย่างของข้อมูลที่เป็น FUNCTIONAL DEPENDENCY _________________________ 90

สารบัญภาพ (ต่อ)
หน้า
ภาพที่ 4.3 ตัวอย่างข้อมูลการ DETERMINANT หนึ่งค่า กับ DEPENDENCY หลายค่า _____________ 91
ภาพที่ 4.4 ตัวอย่างข้อมูลการ DETERMINANT ที่มีการขึ้นต่อกันแบบสองทาง ________________ 91
ภาพที่ 4.5 ตัวอย่างข้อมูลการ DETERMINANT มากกว่า 1 ค่าเพื่ออ้างถึง DEPENDENCY __________ 92
ภาพที่ 4.6 แสดงตัวอย่าง FULLY FUNCTIONAL DEPENDENCY ___________________________ 93
ภาพที่ 4.7 ตัวอย่างการไม่เป็น FULLY FUNCTIONAL DEPENDENCY ________________________ 93
ภาพที่ 4.8 ตัวอย่าง MULTI-VALUE DEPENDENCY ___________________________________ 93
ภาพที่ 4.9 แสดงตัวอย่าง DEPENDENCY DIAGRAM ___________________________________ 94
ภาพที่ 4.10 แสดงตัวอย่าง DEPENDENCY DIAGRAM ที่มี DETERMINANT Nมากกว่า 1 แอตทริบิวต์ ___ 94
ภาพที่ 4.11 ลักษณะของ DEPENDENCY DIAGRAM ___________________________________ 95
ภาพที่ 4.12 ตารางข้อมูลผลการเรียนของนักศึกษา _________________________________ 98
ภาพที่ 4.13 ตารางข้อมูลผลการเรียนของนักศึกษาซึง่ กําจัด REPEATING GROUP แล้ว __________ 98
ภาพที่ 4.14 แสดง DEPENDENCY DIAGRAM ของตารางผลการเรียนนักศึกษา ________________ 99
ภาพที่ 5.1 DATA TYPE ของ MICROSOFT ACCESS __________________________________ 105
ภาพที่ 5.2 แสดง ER-DIAGRAM ของระบบทะเบียนและตารางสอน ______________________ 109
ภาพที่ 5.3 หน้าต่างโปรแกรม MICROSOFT ACCESS 2010 ____________________________ 113
ภาพที่ 5.4 ลําดับการสร้างฐานข้อมูลในโปรแกรม MICROSOFT ACCESS 2010 ______________ 114
ภาพที่ 5.5 ตารางเปล่าในโปรแกรม MICROSOFT ACCESS 2010 ________________________ 114
ภาพที่ 5.6 การสร้างฐานข้อมูลด้วยมุมมอง DESIGN VIEW ในโปรแกรม MICROSOFT ACCESS 2010 115

สารบัญตาราง
หน้า

ตารางที่ 1.1 ศัพท์พื้นฐานในระบบแฟ้มข้อมูล 8


ตารางที่ 2.1 Attribute ของเอ็นทิตพี นักงาน 60
ตารางที่ 2.2 Attribute ของเอ็นทิตี ราคารับซื้อ 61
ตารางที่ 2.3 Attribute ขอ งเอ็นืทิตี โรงงาน 61
ตารางที่ 2.4 Attribute ของเอ็นทิตี ลูกค้า 61
ตารางที่ 2.5 Attribute ของเอ็นทิตี ผู้รบั เหมา 62
ตารางที่ 2.6 Attribute ของเอ็นทิตี รถบรรทุก 62
ตารางที่ 2.7 Attribute ของ Composite Entity รับเงิน 62
ตารางที่ 2.8 Attribute ของ Composite Entity จ่าย 62
ตารางที่ 2.9 Attribute ของ Composite Entity จ้าง 63
ตารางที่ 2.10 Attribute ของ Composite Entity ชั่ง 63
ตารางที่ 3.1 ตารางเปรียบเทียบคุณสมบัตเิ พื่อเลือกเป็นคีย์หลัก 71
ตารางที่ 5.1 ชนิดข้อมูล (Data Type) ของ Microsoft Access 108
ตารางที่ 6.1 ตารางข้อมูลลูกค้า 128
ตารางที่ 6.2 ตารางข้อมูลการใช้เงินของลูกค้า 128
ตารางที่ 6.3 ตารางข้อมูลประเทศ 128
ตารางที่ 6.4 ผลลัพธ์ของตัวดําเนินการทางตรรกะ 131

แผนบริหารการสอนประจาวิชา
รายวิชา ระบบฐานข้อมูล (Database System) รหัสวิชา MBC0507
จานวนหน่วยกิต 3(2-2-5) เวลาเรียน 60 ชั่วโมง/ภาคเรียน

คาอธิบายรายวิชา
แนวคิดระบบฐานข้อมูล ประเภทของฐานข้อมูล ฐานข้อมูลเชิงสัมพันธ์ ภาษาประมวลผลข้อมูล SQL
การออกแบบฐานข้อมูล โมเดลข้อมูลแบบ ER(Entity-Relationship) การแปลง ER Diagram เป็น
รีเลชัน (Relation) การลดความซ้ําซ้อนของข้อมูลด้วยกระบวนการ Normalization ฝึกออกแบบ
ฐานข้อมูลโดยใช้กรณีตัวอย่างทางธุรกิจ ใช้ระบบจัดการฐานข้อมูลและโปรแกรมเข้าถึงข้อมูลตัวอย่าง
เพื่อทดลองสร้าง บันทึก แก้ไข ข้อมูลในฐานข้อมูลด้วยภาษาประมวลผลข้อมูล (SQL)

วัตถุประสงค์เชิงพฤติกรรม
หลังจากศึกษารายวิชานี้จบแล้วนักศึกษาจะมีพฤติกรรมที่พึงประสงค์ ดังนี้
1. นัก ศึ กษาสามารถอธิบ ายแนวคิดเกี่ ยวกั บ ระบบการจัดเก็ บ ข้อมู ลด้วยฐานข้อมูล และ
สามารถเปรียบเทียบกับวิธีการเก็บข้อมูลด้วยวิธีอื่นได้
2. นักศึกษาสามารถอธิบายถึงลักษณะของฐานข้อมูลประเภทต่างๆ ได้
3. นักศึกษาสามารถออกแบบฐานข้อมูลเชิงสัมพันธ์ด้วยเครื่องมือต่างๆ ดังต่อไปนี้ได้
3.1 นัก ศึ ก ษาสามารถออกแบบและวิเ คราะห์ ความสัม พัน ธ์ข องข้อ มู ล ด้ว ย Entity
Relationship Diagram (ER-Diagram) ได้
3.2 นักศึกษาสามารถแปลง ER-Diagram ให้อยู่ในรูปของรีเลชัน ได้
3.3 นักศึกษาสามารถทํากระบวนการ Normalization กับรีเลชัน ต่างๆ ตั้งแต่ระดับ
First Normal Form, Second Normal Form และ Third Normal Form ได้
4. นักศึกษาสามารถใช้โปรแกรมจัดการฐานข้อมูล (DBMS : Database Management
Systems) ในการสร้างและจัดการข้อมูลจากที่ออกแบบไว้ได้
5. นักศึกษาสามารถใช้คําสั่ง SQL (Structure Query Language) ประเภทต่างๆ ได้

เนื้อหา
บทที่ 1 แนวคิดระบบฐานข้อมูล 4 ชั่วโมง
1.1 ความสําคัญของการออกแบบฐานข้อมูล
1.2 ระบบแฟ้มข้อมูล (File System)
1.3 ระบบฐานข้อมูล
1.4 สภาพแวดล้อมของระบบฐานข้อมูล
1.5 ประเภทของฐานข้อมูล
1.6 หน้าที่ของระบบจัดการฐานข้อมูล
1.7 Database Models
1.8 แบบจําลองฐานข้อมูลประเภทต่างๆ

บทที่ 2 การออกแบบฐานข้อมูลด้วย ER-Diagram 12 ชั่วโมง


2.1 ลักษณะของฐานข้อมูลเชิงสัมพันธ์
2.2 สัญลักษณ์ที่ใช้ในการออกแบบฐานข้อมูลด้วย ER-Diagram
2.3 ชนิดของความสัมพันธ์
2.4 วิธีวิเคราะห์ความสัมพันธ์ใน ER-Diagram
2.5 Cardinality
2.6 Optional, Mandatory
2.7 ประเภทของ แอตทริบิวต์ (Attribute)

บทที่ 3 การแปลง ER-Diagram ให้อยู่ในรูปของ (Relation) 4 ชั่วโมง


3.1 ชนิดของคีย์ที่ใช้ในการออกแบบฐานข้อมูล
3.2 วิธีการแปลง ER-Diagram ให้อยู่ในรูปของ Relation
3.3 กฎต่างๆ ที่ต้องคํานึงถึงเมื่อต้องการแปลง ER-Diagram ให้อยู่ในรูปของรีเลชัน

บทที่ 4 Normalization 8 ชั่วโมง


4.1 Functional Dependency
4.2 Fully Functional Dependency
4.3 Multi-Value Dependency
4.4 Dependency Diagram
4.5 Normalization

บทที่ 5 การสร้างฐานข้อมูลด้วยระบบจัดการฐานข้อมูล 8 ชั่วโมง


5.1 ประเภทของข้อมูลในระบบจัดการฐานข้อมูลทีเ่ ลือกใช้
5.2 ส่วนเชื่อมต่อผู้ใช้งาน (Interface) ของระบบจัดการฐานข้อมูลนั้น
5.3 การสร้างฐานข้อมูลในระบบจัดการฐานข้อมูล
5.4 การสร้างตารางข้อมูลในระบบจัดการฐานข้อมูล

บทที่ 6 คําสั่ง SQL 24 ชั่วโมง


6.1 ภาษานิยามข้อมูล (Data Definition Language : DDL)
6.2 ภาษาจัดการข้อมูล (Data Manipulation Language : DML)
6.3 ภาษาควบคุมข้อมูล (Data Control Language : DCL)

วิธีสอนและกิจกรรมในการเรียนการสอน
1. วิธีสอน
1.1 ทบทวนเนือ้ หาก่อนหน้าเพื่อเชื่อมโยงเข้าสู่เนือ้ หาประจําบท
1.2 ชี้แจงวัตถุประสงค์ สิง่ ที่นักศึกษาต้องทําได้หรืออธิบายได้เมือ่ เสร็จสิ้นกิจกรรมการเรียน
การสอนแต่ละครั้ง
2. กิจกรรมการเรียนการสอน
2.1 ในเนื้อหาภาคทฤษฎีผู้สอนจะใช้วิธีการอธิบายเนื้อหาพร้อมการเขียนภาพประกอบต่างๆ
เป็นขั้นตอนไปเรื่อยๆ เพื่อเป็นการลําดับความเข้าใจให้กับผู้เรียน
2.2 บรรยายเนื้อหาที่เป็นทฤษฎี จากนั้นให้ร่วมกิจกรรมทดลองทํากรณีศึกษาต่างๆ ตามเรื่อง
ที่เรียนร่วมกับผู้สอน
2.3 ทวนสอบความเข้าใจของนักศึกษาด้วยการให้ทําชิ้นงานและออกมานําเสนอหน้าชั้นให้
อาจารย์ฟังแบบไม่เป็นทางการ
2.4 ในเนื้อหาภาคปฏิบัติผู้สอนจะใช้เครือ่ งคอมพิวเตอร์และโปรแกรมระบบจัดการฐานข้อมูล
เพื่อให้ผู้เรียนได้ทดลองสร้างฐานข้อมูลที่ผ่านการออกแบบมาแล้ว
2.5 ในเนื้อหาภาคปฏิบัติเกี่ยวกับคําสั่ง SQL ผู้สอนจะแนะนําลักษณะการทํางานของคําสั่ง
ต่างๆ จากนั้นสาธิตการใช้คําสั่งให้ผู้เรียนดูเป็นตัวอย่าง แล้วจึงตั้งโจทย์ให้ผู้เรียนทดลอง
ทํา

3. สื่อการเรียนการสอน
3.1 เอกสารประกอบการสอนรายวิชาระบบฐานข้อมูล
3.2 อุปกรณ์ฉายภาพจากจอคอมพิวเตอร์เพือ่ ใช้ในการสาธิต
3.3 กระดานไวท์บอร์ดเพือ่ อธิบายเนือ้ หาทีจ่ ําเป็นต้องลําดับความคิดในภาคทฤษฎี
3.4 โปรแกรมระบบจัดการฐานข้อมูล
3.5 เครื่องคอมพิวเตอร์ซงึ่ สามารถทํางานกับโปรแกรมระบบจัดการฐานข้อมูล
3.6 ซอฟต์แวร์ที่ช่วยอํานวยความสะดวกในการวาดแผนผังต่างๆ
3.7 ระบบเครือข่ายอินเทอร์เน็ตซึ่งใช้ค้นหากรณีศึกษาต่างๆ นํามาวิเคราะห์ในระหว่างเวลา
ทําการเรียนการสอน
4. การวัดและประเมินผล
4.1 การวัดผล
4.1.1 คะแนนภาคทฤษฎี 55 เปอร์เซ็นต์
- การทําแบบฝึกหัดและการส่งงาน 30 เปอร์เซ็นต์
- การสอบ 25 เปอร์เซ็นต์
4.1.2 คะแนนภาคปฏิบัติ 35 เปอร์เซ็นต์
- การทํากิจกรรมและทดสอบในห้องเรียน 20 เปอร์เซ็นต์
- การสอบ 15 เปอร์เซ็นต์
4.1.3 จิตพิสัย (คุณลักษณะอันพึงประสงค์) 10 เปอร์เซ็นต์
4.2 การประเมินผล
ประเมินผลแบบอิงเกณฑ์ จากคะแนนรวมทั้งหมดของผู้เรียน โดยใช้เกณฑ์การตัดสินดังนี้
ระดับคะแนน ความหมายของผลการเรียน ค่าระดับคะแนน ค่าร้อยละ
A ดีเยี่ยม 4.0 81-100
B+ ดีมาก 3.5 76-80
B ดี 3.0 71-75
C+ พอใช้ค่อนข้างดี 2.5 66-70
C พอใช้ 2.0 61-65
D+ อ่อน 1.5 56-60
D อ่อนมาก 1.0 51-55
E ตก 0.0 0-50

5. เอกสารอ่านประกอบกาหนดการสอน
โอภาส เอี่ยมสิริวงศ์.(2559). ระบบฐานข้อมูล (Database Systems) ฉบับปรับปรุง
เพิ่มเติม. กรุงเทพฯ : บริษัท ซีเอ็ดยูเคชั่น จํากัด (มหาชน).
ชาญชัย ศุภอรรถกร และ เอกรินทร์ คําคูณ. ระบบฐานข้อมูล. กรุงเทพฯ : บริษทั ซีเอ็ด
ยูเคชั่น จํากัด (มหาชน).
สมควร สํากํา. ระบบจัดการฐานข้อมูล. บริษัท แม็คเอ็ดดูเคชั่น จํากัด.

จํานวนชั่วโมง
สัปดาห์ที่ เนื้อหา
ทฤษฎี ปฏิบัติ
1 บทที่ 1 แนวคิดระบบฐานข้อมูล 3 1
2-5 บทที่ 2 การออกแบบฐานข้อมูลด้วย ER-Diagram 9 3
6 บทที่ 3 การแปลง ER-Diagram ให้อยู่ในรูปของรีเลชัน 3 1
7-8 บทที่ 4 Normalization 6 2
9-10 บทที่ 5 การสร้างฐานข้อมูลด้วยระบบจัดการฐานข้อมูล 6 2
11-15 บทที่ 6 คําสั่ง SQL 6 18
33 27
รวม
60
แผนบริหารการสอนประจาบทที่ 1
หัวข้อเนื้อหา
บทที่ 1 แนวคิดระบบฐานข้อมูล
1.1 ความสําคัญของการออกแบบฐานข้อมูล
1.2 ระบบแฟ้มข้อมูล
1.3 ระบบฐานข้อมูล
1.4 สภาพแวดล้อมของระบบฐานข้อมูล
1.5 ประเภทของระบบฐานข้อมูล
1.6 หน้าที่ของระบบจัดการฐานข้อมูล (Database Management Systems)
1.7 แบบจําลองฐานข้อมูล (Database Models)
1.8 แบบจําลองฐานข้อมูลประเภทต่างๆ

วัตถุประสงค์เชิงพฤติกรรม
วัตถุป ระสงค์ในบทที่ 1 นี้ เมื่อผู้เรียนได้ศึกษาเกี่ยวกับเนื้อหาและสาระของแนวคิดระบบ
ฐานข้อมูลแล้ว ผู้เรียนจะมีพฤติกรรมที่พึงประสงค์ ดังนี้
1. อธิบายความสําคัญของการออกแบบฐานข้อมูลได้
2. อธิบายลักษณะการจัดเก็บข้อมูลด้วยระบบแฟ้มข้อมูลได้
3. อธิบายลักษณะการจัดเก็บข้อมูลด้วยระบบฐานข้อมูลได้
4. วิเคราะห์จุดเด่น จุดด้อยของการเก็บข้อมูลด้วยระบบแฟ้มข้อมูลกับระบบฐานข้อมูลได้
5. อธิบายลักษณะของฐานข้อมูลแต่ละประเภทได้
6. อธิบายหน้าที่การทํางานของระบบจัดการฐานข้อมูลและสามารถยกตัวอย่างระบบจัดการ
ฐานข้อมูลกับงานได้อย่างเหมาะสม
7. อธิบาย Database Models ได้
8. อธิบายแบบจําลองฐานข้อมูลประเภทต่างๆ ได้

วิธีสอนและกิจกรรมการเรียนการสอนประจาบท
1. วิธีการสอน
1.1 ยกตัวอย่างเรื่องสําคัญและใกล้ตัวนักศึกษาและสมมุตสิ ถานการณ์ให้เลวร้ายเมื่อข้อมูล
เหล่านั้นไม่สามารถใช้การใช้หรือหายไป
2

1.2 ผู้สอนบรรยายแนวคิดด้วยการจัดเก็บข้อมูลด้วยระบบแฟ้มข้อมูล ระบบฐานข้อมูล


ประเภทของฐานข้อมูล
1.3 ผู้สอนยกตัวอย่างระบบจัดการฐานข้อมูลและคุณลักษณะเฉพาะ
1.4 ผู้สอนบรรยายแบบจําลองฐานข้อมูล และ แบบจําลองฐานข้อมูลประเภทต่างๆ

2. กิจกรรมการเรียนการสอน
2.1 ผู้สอนยกตัวอย่างสถานการณ์สําคัญที่เป็นเรื่องใกล้ตัวนักศึกษาและสมมุติสถานการณ์
ให้เลวร้ายเช่น ข้อมูลบางส่วนหรือทั้งหมดหาย ข้อมูลมีการเปลี่ยนแปลงผิดปกติ แล้ว
ให้ นัก ศึก ษาช่วยกั นวิเ คราะห์ผ ลกระทบที่ เ กิ ด ขึ้นเมื่ อเกิ ดเหตุ ก ารณ์ จ ากที่ ผู้ส อน
ยกตัวอย่าง
2.2 ผู้เรียนร่วมแสดงความคิดเห็น อภิปรายร่วมกัน
2.1 ผู้เรียนทําแบบฝึกหัดท้ายบทที่ 1 แล้วมานําเสนออาจารย์ฟังเป็นรายบุคคล เพื่อทวน
สอบความรู้ความเข้าใจ ทัศนคติ แนวคิด ของผู้เรียน

สื่อการเรียนการสอน
สื่อการเรียนการสอนในบทนี้ประกอบด้วย
1. เอกสารประกอบการสอนรายวิชาระบบฐานข้อมูล
2. กระดานเพื่อใช้ในการอธิบายและลําดับความคิดนักศึกษาในเรื่องที่ผสู้ อนบรรยาย
3. แบบฝึกหัดท้ายบทที่ 1

การวัดผลและประเมินผล
การวัดผลและการประเมินผล ประกอบด้วยการวัดผลและการประเมินผล ดังนี้
1. สังเกตความสนใจในกิจกรรมการเรียนการสอนของผูเ้ รียน
2. สังเกตพฤติกรรมการมีส่วนร่วมในชั้นเรียน เช่น การซักถาม การตอบคําถาม ตลอดจนการ
อภิปรายร่วมกัน
3. วัดและประเมินผลเป็นรายบุคคลจากการส่งแบบฝึกหัดท้ายบทที่ 1 ด้วยการนําเสนอเป็น
รายบุคคลกับผู้สอน
3

บทที่ 1 ความรู้เบื้องต้นเกีย่ วกับระบบฐานข้อมูล

การจัดการฐานข้อมูลเริ่มต้นจากการที่องค์การบริหารการบินและอวกาศสหรัฐอเมริกา
หรือนาซาได้ว่าจ้างบริษัทไอบีเอ็ม (IBM) ประเทศสหรัฐอเมริกาให้ออกแบบระบบเก็บรวบรวมข้อมูลที่
ได้จากการสํารวจดวงจันทร์ใ นโครงการอะพอลโล (โครงการอะพอลโลเป็นโครงการสํารวจอวกาศ
อย่างจริงจัง และมีการส่งมนุษย์ขึ้นบนดวงจันทร์ได้สําเร็จด้วยยานอะพอลโล 11) ซึ่งถือเป็นต้นกําเนิด
ของระบบการจัดการฐานข้อมูล ต่อมาบริษัท ไอบีเอ็ม ได้พัฒนาระบบการจัดการฐานข้อมูลขึ้นมาใหม่
เพื่อให้ใช้งานกับธุรกิจทั่วๆ ไปได้ เรียกว่า DL/I (Data Language/I) จนในที่สุดก็กลายมาเป็นระบบ
IMS (Information Management System)

ในช่วงปี พ.ศ. 2525 มีการนําระบบฐานข้อมูลเข้ามาใช้กับคอมพิวเตอร์อย่างเต็มที่ ได้มี


การคิดค้นและผลิตซอฟต์แวร์เกี่ยวกับฐานข้อมู ลออกมามากมาย การเจริญ เติบโตของการจัดการ
ฐานข้อมู ล รุดหน้าไปอย่างรวดเร็วพร้อมกั บระบบคอมพิวเตอร์และมี ก ารพัฒ นามาจนถึงทุ ก วันนี้
ปัจจุบันได้มีการนําคอมพิวเตอร์มาใช้ในการเก็บข้อมูล โดยใช้โปรแกรมสําเร็จรูปทั่วไปโดยทีผ่ ู้ใช้ไม่ต้อง
เขียนโปรแกรมเอง เพียงแต่เรียนรู้คําสั่งการเรียกใช้ข้อมูลหรือการจัดการข้อมูล เช่นการป้อนข้อมูล
การบันทึกข้อมูล การแก้ไขและเปลี่ยนแปลงข้อมูล เป็นต้น

ในอดีตยุคที่มีไมโครคอมพิวเตอร์เกิดขึ้นใหม่ๆ โปรแกรมสําเร็จรูปทางด้านการจัดการ
ฐานข้อมูลที่นิยมใช้กันอย่างแพร่หลาย คือ Personal Filling System ต่อมาได้มีโปรแกรมฐานข้อมูล
เพิ่มขึ้นหลายโปรแกรม เช่น Datastar DB Master และ dBASE II เป็นต้น โดยเฉพาะโปรแกรม
dBASE II ได้รับความนิยมมาก จนกระทั่งในปี พ.ศ. 2528 ผู้ผลิตได้สร้าง dBASE III Plus ออกมาซึ่ง
สามารถจัดการฐานข้อมูลแบบสัมพันธ์ (Relational) เชื่อมโยงแฟ้มข้อมูลต่างๆ เข้าด้วยกัน ค้นหา
และนํามาสร้างเป็นรายงานตามความต้องการได้ส ะดวก รวดเร็ว ต่อมาได้มี ก ารสร้ างโปรแกรม
สําเร็จรูปเกี่ยวกับฐานข้อมูลออกมา เช่น FoxBASE FoxPro Microsoft Access และ Oracle เป็น
ต้น

สํารับยุคปัจจุบัน การใช้งานฐานข้อมูลก็มิได้ถูกจํากัดให้ใช้งานเฉพาะฐานข้อมูลภายใน
อีกต่อไป แต่จะมีก ารเชื่อมโยงเข้ากับฐานข้อมูลภายนอกอื่นๆ เข้าด้วยกัน จนกลายเป็นฐานข้อมู ล
ขนาดใหญ่ที่เรียกว่า “คลังข้อมูล (Data Warehouse)” ซึ่งภายใต้ข้อมูลกองโตขนาดมหึมาเหล่านี้ เรา
สามารถนําเครื่องมือสกัดเอาเฉพาะข้อมูลสําคัญๆ ที่ อยู่ในคลัง จนก่ อเกิดเป็นสารสนเทศและองค์
ความรู้อันทรงคุณค่า เพื่อนําไปใช้วิเคราะห์แนวโน้มในทางธุรกิจหรือใช้ในการศึกษานิ่งที่ต้องการมุ่ง
ประเด็นได้ต่อไป
4

ด้วยขอบเขตการใช้ฐานข้อ มู ล ที่ ครอบคลุม แทบทุ กภาคส่วนขององค์ก ร จึง ทํ าให้ทั้ ง


หน่วยงานภาครัฐและภาคธุรกิจเอกชน ต่างตื่นตัวในการพัฒนาระบบฐานข้อมูลขึ้นมาเพื่อใช้งาน ไม่ว่า
จะมีจุดประสงค์เพื่อใช้งานภายในองค์กร การเชื่อมตัวระหว่างองค์กร หรือเพื่อบริการแก่ลูกค้า รวมถึง
การแสดงศักยภาพทางเทคโนโลยีสารสนเทศผ่านการพัฒนาเทคโนโลยีขั้นสูงเพื่อประจักษ์แก่คู่แข่งขัน
ซึ่งถือเป็นการชิงความได้เปรียบในทางธุรกิจ และด้วยผู้คนรุ่นใหม่ ซึ่งต่างมีความรู้และมีศักยภาพใน
การใช้เทคโนโลยีเป็นอย่างดี จึงทําให้พวกเขามีโอกาสเลือกบริโภคสินค้าหรือเลือกใช้บริการต่างๆ ได้
หลากหลายช่อ งทางมากขึ้น โดยเฉพาะบริการผ่านช่องทางของเทคโนโลยีเครือข่ายที่มุ่งเน้นความ
สะดวกรวดเร็ว ดังนั้น องค์การต่างๆ จึงพยายามหันมาปรับปรุงรูปแบบการดําเนินธุรกิจของตนให้ทัน
เทคโนโลยี จนก่อเกิดเทคโนโลยีต่างๆ ที่หลั่งไหลเข้ามาเป็นส่วนหนึ่งในชีวิตประจําวันของผู้คนในยุคนี้
มากขึ้น จนทําให้เทคโนโลยีฐานข้อมูลกลายเป็นสิ่งสําคัญในการใช้ติดต่อเพื่อธุรกิจ เพื่อการเข้าถึงและ
เรียกดูข้อมูลที่ต้องการได้ทันที จนมีประโยคหนึ่งที่กล่าวไว้อย่างน่าสนใจคือ “หากหน่วยงานใดได้นํา
เทคโนโลยีฐานข้อมูลมาใช้ ย่อมได้เปรียบในเชิงแข่งขันทางการค้า ” นั่นหมายความว่าหน่วยงานใดก็
ตาม หากได้พั ฒ นาฐานข้อ มู ล เพื่ อ ใช้ในองค์ก ร ด้ว ยการจัดทํ าอย่ างเป็นระบบและจัด เก็ บ ลงใน
ฐานข้อมูล ย่อมนําไปใช้ให้เกิดประโยชน์ได้อย่างหลากหลาย กล่าวคือ การเข้าถึงฐานข้อมูลเพื่อเรียกดู
ข้อมูลหรือสารสนเทศได้ทันที การพิมพ์รายงานตามเงื่อนไขได้ทันท่วงที การจัดการกับระบบความ
ปลอดภั ย ในฐานข้ อ มู ล และการนํ า ข้ อ มู ล มาวิ เ คราะห์ แนวโน้ ม เพื่ อ ให้ ผู้ บ ริห ารสามารถนํ า มา
ประกอบการตัดสินใจทางธุรกิจได้ ในขณะเดียวกันก็สามารถนําเอาเทคโนโลยีนี้มาเชื่อมโยงเข้ากับ
ฐานข้อมูลลูกค้าเพื่อสร้างปฏิสัมพันธ์ระหว่างกัน เรื่องการอํานวยความสะดวกในการใช้บริการ การให้
คําแนะนําต่างๆ ซึ่งเป็นหนทางหนึ่งในการเชื่อมโยงความสัมพันธ์ระหว่างกันให้แน่นแฟ้นมากยิ่งขึ้น จน
ก่อให้เกิดเป็นมิตรภาพและความภักดีของลูกค้า ที่มีต่อองค์กรหรือตัวสินค้าและบริการมากขึ้น (สิทธิ
ชัย ชูสําโรง การจัดการฐานข้อมูลและฐานข้อมูลภูมิสารสนเทศ หน้า 2-3)
1.1 ตัวอย่างการประยุกต์ใช้ฐานข้อมูล
โดยหากจะยกตัวอย่างการใช้ระบบฐานข้อมูลในปัจจุบันแล้ว ที่พบเห็นกันได้บ่อยและ
เป็นที่รู้จักดีคือการซื้อสินค้าในร้านสะดวกซื้อต่างๆ หรือแม้แต่การขายสินค้าในห้างสรรพสินค้า มีการ
ใช้ระบบ POS (Point of Sale) ในการช่วยขายสินค้าหน้าร้านให้กับพนักงาน การออกใบเสร็จหรือ
ใบกํากับภาษีได้อย่างรวดเร็ว การบริหารคลังสินค้าซึ่งเป็นประโยชน์กับเจ้าของกิจการหรือผู้บริหาร
คลังสินค้า การสรุปรายรับประจํากะของพนักงานแต่ละคน หรือแม้แต่การคิดกําไรซึ่งสามารถเรียกดู
ได้ตลอดเวลา และระบบจะนําเสนอข้อมูลได้อย่างรวดเร็ว ซึ่งเบื้องหลังของระบบที่กล่าวมานี้มีการ
จัดเก็บข้อมูลอย่างเป็นระบบด้วยฐานข้อมูล
5

ภาพที่ 1.1 อุปกรณ์ที่ใช้กับระบบ POS (Point of Sale)


ที่มา : http://www.chaophayacomputech.com/images/POS_RETAIL.png

อีกระบบหนึ่งที่นักศึกษารู้จักกันดีคือ ระบบบริหารงานทะเบียนของมหาวิทยาลัย โดย


นักศึกษาสามารถเข้าถึงได้ผ่านเว็บไซต์ ซึ่งใช้ในการลงทะเบียน ตรวจสอบผลการเรียน ตรวจสอบการ
จบ เพิ่มหรือถอนรายวิชา อีกทั้งตรวจสอบข้อมูลของนักศึกษาเอง ซึ่งระบบดังกล่าวนอกจากผู้ใช้งาน
จะเป็นนักศึกษาแล้วยังมีอาจารย์ อาจารย์ที่ปรึกษา บุคลากรสายสนับสนุนในฝ่ายต่างๆ ซึ่งสามารถใช้
งานในส่วนของตนเองได้เท่านั้น ทั้งที่จริงแล้วข้อมูลที่บันทึกหรือนําออกมานําเสนอให้ผู้ใช้แต่ละคนอยู่
ในฐานข้อมูลเดียวกัน เพียงแต่หน้าที่ ความรับผิดชอบ หรือสิทธิในการเข้าถึงของแต่ละคนไม่เท่ากัน
หรือคนละส่วนงานกันเท่านั้น

ภาพที่ 1.2 ระบบบริหารงานทะเบียนมหาวิทยาลัยราชภัฏสุราษฎร์ธานี


ที่มา : http://reg.sru.ac.th
6

นอกจากตัวอย่างการประยุกต์ใช้ฐานข้อมูลที่กล่าวมาข้างต้นแล้ว ในชีวิตประจําวันยังมี
การใช้ฐานข้อมูลกั นอีกมากมาย ได้แก่ การเดินทางโดยใช้ตั๋วอิเล็กทรอนิก ส์ต่างๆ การบันทึ กเวลา
ทํางาน การทําธุรกรรมกับ ธนาคาร ทะเบียนราษฎร เวชระเบียนในโรงพยาบาล การใช้โทรศัพท์
ร้านอาหาร โรงภาพยนตร์ ฯลฯ ก็ล้วนแล้วแต่มีการใช้งานฐานข้อมูลทั้งสิ้น โดยข้อมูลที่บันทึกอยู่ใน
ฐานข้อมู ล นั้นนอกจากจะเป็นการทํ าธุ ร กรรมปกติกั บ งานใดๆ แล้ว ข้อมู ลที่ บันทึ ก ไว้ยัง สามารถ
นํามาใช้ประโยชน์โดยการนําเสนอในรูปแบบของสารสนเทศ ต่างๆ ได้อย่างสะดวก รวดเร็ว ได้อีกด้วย
ดังนั้นการบริหารงานในปัจจุบันจึงสามารถทําได้อย่างมีประสิทธิภาพมากยิ่งขึ้น โดยการตัดสินใจหรือ
วางแผนใดๆ ล้วนแล้วแต่อ ยู่บ นพื้ นฐานของข้อมู ล ทั้ ง สิ้น เช่น การวางแผนการตลาดของบริษั ท
โทรศัพท์มื อถือ อาจจะนําข้อ มู ลจากพฤติก รรมการใช้โ ทรศัพท์ของลูกค้า มาวิเ คราะห์ด้วยระบบ
คอมพิวเตอร์แล้วนําเสนอเป็นสารสนเทศให้ฝ่ายการตลาดนํามาใช้ประกอบการตัดสินใจในการออก
โปรโมชั่นใหม่ๆ เพื่อจูงใจลูกค้า โดยข้อมูลเหล่านั้นอาจจะได้มาจากข้อมูลจํานวนมากแต่กลับใช้เวลา
เพียงไม่กี่วินาทีในการได้มาซึ่งผลการวิเคราะห์ด้วยระบบคอมพิวเตอร์ ซึ่งหากใช้คนทําอาจจะต้องใช้
เวลา งบประมาณ เป็นจํานวนมาก หรืออาจจะไม่ทันต่อการใช้งานก็เป็นได้
ส่วนในมุมของผู้ใช้บริการ ซึ่งอาจจะหมายถึงลูกค้า หรือผู้ใช้บริการต่างๆ ทั้งทีเ่ ป็นภาครัฐ
และเอกชนก็ได้รับข้อมูลที่ทันสมัยตลอดเวลา เมื่อนําฐานข้อมูลเหล่านั้นมานําเสนอในรูปแบบต่างๆ ที่
เข้ าถึ ง ได้ง่ า ย โดยอาจนํ าเสนอในรูป แบบของเว็บ ไซต์ หรือ แม้ แ ต่บ นอุ ป กรณ์พ กพาต่า งๆ เช่ น
โทรศัพท์มือถือแบบ Smart Phone ซึ่งใช้งานกันอย่างแพร่หลายในปัจจุบัน ตัวอย่างเช่น ปัจจุบัน
กรมสรรพากรของประเทศไทย มีการให้บริการยื่นแบบเสียภาษีหลายประเภทผ่านเว็บ ไซต์ ผู้ยื่นแบบ
เสียภาษีสามารถทําได้ด้วยตัวเองโดยไม่ต้องเดินทางไปยังสํานักงานสรรพากรพื้นที่ และการกรอกแบบ
ต่างๆ ก็ยังสามารถทําได้ง่าย สะดวก และมีความถู กต้องมากขึ้น เพราะมีการตรวจสอบด้วยระบบ
คอมพิวเตอร์ อี กทั้ ง งานต่างๆ เหล่านี้ซึ่ง ใช้คอมพิวเตอร์ หรือระบบคอมพิวเตอร์ทําการแทนนั้น
สามารถลดจํานวนพนักงานซึ่งคอยให้บริการได้ด้วย ซึ่งการลดคนจะเป็นการลดปัญหาอย่างอื่นในการ
บริหารองค์กรได้อีกด้วย เนื่องจากระบบคอมพิวเตอร์ ทํางานด้วยระบบอัตโนมัติและให้บริการโดย
มาตรฐานเดิมในทุกๆ การทํารายงาน อีกทั้งไม่ต้องจัดสรรสวัสดิการต่างๆ ให้เหมือนกับการใช้คนใน
การปฏิบัติงาน ไม่มีการลางาน ไม่ต้องจ่ายเงินโบนัสหรือค่าล่วงเวลาใดๆ เพิ่มเติม

1.2 ความสาคัญของการออกแบบฐานข้อมูล
จากที่กล่าวไปแล้วข้างต้นฐานข้อมูลมีประโยชน์และเข้ามามีบทบาทในทุกๆ วงการก็จริง
แต่การออกแบบฐานข้อมูลให้สามารถทํางานได้อย่างมีประสิทธิภาพ และรองรับการทํางานในอนาคต
นั้นเป็นเรื่องละเอียดอ่อ นและจะต้องใช้การศึกษา ทําความเข้าใจมากพอสมควร หากผู้ที่ออกแบบ
7

ฐานข้อมูลออกแบบฐานข้อมูลไว้ไม่ดีพอ การแก้ไขฐานข้อมูลในภายหลังจะทําได้ยากมาก และยังส่งผล


กระทบกับระบบงานต่างๆ หรือแม้แต่โปรแกรม หรือ แอพพลิเคชั่น (Application) ที่มาติดต่อกับ
ฐานข้อมูลอาจจะต้องได้รับ การแก้ไขตามไปด้วย ดังนั้นการออกแบบฐานข้อมูลจึงจะต้องทําอย่าง
รอบคอบ คํานึงถึงผู้ใช้งาน (User) อุปกรณ์ที่นํามาใช้ร่วม (Hardware) หรือแม้กระทั่งความถี่ในการ
เข้าใช้ฐานข้อมูลเหล่านั้น
ดังนั้นการออกแบบฐานข้อมู ลจึงไม่ได้หมายความแค่การออกแบบตัวฐานข้อมูล เพียง
อย่างเดียวเท่านั้น แต่อาจจะหมายความรวมถึงการออกแบบระบบต่างๆ ที่มาเกี่ยวข้องกับฐานข้อมูล
ด้วย จึงจะใช้งานระบบได้อย่างมีประสิทธิภาพ โดยหากมีการออกแบบฐานข้อมูลไว้ไม่ดีพออาจจะ
ส่งผลกับระบบโดยภาพรวมซึ่งอาจจะมีการสร้างปัญหาต่างๆ ตามมาในภายหลัง ซึ่งอาจจะเป็น ความ
ผิดพลาดของข้อมูลที่อาจะเกิดขึ้น ความเข้ากันได้กับอุปกรณ์หรือซอฟต์แวร์ หรืออาจจะถึงขั้นการที่ไม่
สามารถใช้ฐานข้อมูลนั้นต่อไปได้

1.3 โครงสร้างแฟ้มข้อมูล
การบัน ทึ ก ข้ อ มู ล ด้ วยระบบแฟ้ ม ข้อ มู ล เป็ นการบั น ทึ ก ข้ อมู ล แบบแรกๆ ในระบบ
คอมพิ วเตอร์แต่ก็ ยัง มีใช้ม าจนถึงปัจจุบันเนื่องจากเป็นการบันทึ กข้อมู ลแบบง่ายๆ ด้วยการเขียน
โปรแกรมในภาษาต่างๆ บันทึกลงไฟล์โดยตรง แต่ก็ยัง มีข้อจํากั ดและปัญหาหลายประการในการ
บันทึกข้อมูลแบบนี้ การบันทึกข้อมูลแบบดังกล่าวจึงเหมาะกับข้อมูลบางประเภทเท่านั้น หากเป็น
ข้อมูลที่มีความซับซ้อนอาจจะก่อให้เกิดปัญหาในภายหลังได้ อีกทั้งการออกแบบและการนําไปใช้ยัง
ค่อนข้างใช้เวลานานและความปลอดภัยต่ําเนื่ องจากระบบความปลอดภัยของข้อมูลแบบนี้ก็จะต้อง
พัฒนาขึ้นมาเองตามมาตรฐานของแต่ละคนที่ออกแบบมา ไม่ได้มีมาตรฐานแน่นอน โดยการบันทึก
ข้อมูลแบบนี้จะต้องทําความเข้าใจพื้นฐานดังนี้
โครงสร้างแฟ้มข้อมูล ประกอบด้วยโครงสร้างพื้นฐานที่ลําดับจากหน่วยเล็กที่สุด แล้ว
นํามารวมเข้าด้วยกันเพื่อกลายเป็นหน่วยใหญ่ตามลําดับ ดังภาพที่ 1.3
8

ภาพที่ 1.3 โครงสร้างแฟ้มข้อมูล


ที่มา : https://sites.google.com/site/dswirawannonthing/_/rsrc/1468868081646/kar-cad-khorngsrang-faem-khxmul/image1_1_1_1.gif

ตารางที่ 1.1  ศัพท์พื้นฐานในระบบแฟ้มข้อมูล


บิต (Bit) บิตเป็นหน่วยข้อมูลที่เล็กที่สุด ประกอบด้วยตัวเลขฐานสองที่มีเพียงหนึ่งในสองสถานะ
เท่านั้น คือ 0 หรือ 1 นํามาใช้แทนสัญญาณทางไฟฟ้า เปิด (On) หรือ ปิด (off) ดังนั้นบิต
จึงไม่สามารถแทนค่าข้อมูลได้หลายตัว
ไบต์ เมื่อบิตไม่สามารถใช้แทนค่าข้อมูลได้หลายตัวเพราะมีเพียงสองสถานะเท่านั้น จึงมีการนํา
(Byte) หลายๆ บิต มาเรียงกันเป็นไบต์ ซึ่งปกติ 1 ไบต์ จะมี 8 บิตด้วยกัน ดังนั้นจึงทําให้หนึ่งไบต์
สามารถสร้างรหัสแทนข้อมูลขึ้นมาเพื่อใช้แทนตัวอักขระให้แตกต่างกันได้ถึง 28 หรือ 256
อักขระด้วยกัน
ฟิลด์ แม้ว่าไบต์จะสามารถแทนตัวอักขระหนึ่งตัวให้แตกต่างกันได้ถึง 256 ตัวก็ตาม แต่ไบต์ก็ยัง
(Field) ไม่ ส ามารถสื่ อ ข้ อ มู ล ได้อ ย่า งมี ความหมาย จึ ง นํ าหลายๆ ไบต์ ม ารวมเข้า ด้ว ยกั นจน
กลายเป็นฟิลด์ เพื่อแทนความหมายข้อมูลหนึ่งๆ ได้ เช่น ฟิลด์ name ใช้แทนชื่อพนักงาน
และฟิลด์ address ใช้เก็บที่อยู่ของพนักงาน เป็นต้น
ระเบียน เป็น Field หรือกลุ่มของ Field ที่สามารถอธิบายข้อมูลในภาพรวมของรายการหนึ่งๆ ได้
(Recor เช่น ข้อมูลบุคคลอาจจะประกอบขึ้นจาก “เลขประจําตัวประชาชน” “คํานําหน้านาม”
d) “ชื่อ” “สกุล” “วันเกิด” เหล่านี้รวมเรียกกันเป็น ระเบียน
ไฟล์ ไฟล์คือกลุ่มของเรคอร์ดที่สัมพันธ์กัน เช่น แฟ้มพนักงานที่ประกอบไปด้วยเรคอร์ดของ
(File) พนักงานต่างๆ ทุกคนที่อยู่ในองค์กร
9

จากตารางที่ 1.1 หากแบ่งตามขนาดของการจัดเก็บจะเห็นว่าไฟล์มีขนาดใหญ่ที่สุด และ


เรียงลําดับไปหา Record, Field, Byte และ Bit ตามลําดับ โดยหากจะยกตัวอย่างการจัดเก็บข้อมูล
แบบนี้ เช่น การเก็บข้อมูลนักศึกษา
ไฟล์ จะเป็นการเก็บ แยกเป็นเรื่องๆ เช่น ข้อมูลทะเบียนประวัตินักศึก ษา ข้อมู ลการ
ลงทะเบียน ข้อมูลอาจารย์ที่ปรึกษา
ระเบียน จะกล่าวถึง ไฟล์ใดไฟล์หนึ่งเท่านั้นเช่น ใน ข้อมูลทะเบียนประวัตินักศึกษาจะ
ประกอบด้วยนักศึกษาทุกคนในมหาวิทยาลัย โดยแต่ละ Record จะเป็นข้อมูลของนักศึกษาแต่ละคน
ฟิลด์ จะกล่าวถึงข้อมูลที่อยู่ใน Record ซึ่งจะถูกแบ่งออกเป็นข้อมูลย่อยๆ เช่น “รหัส
ประจําตัวนักศึกษา” “คํานําหน้านาม” “ชื่อ” “ชื่อสกุล” “วัน-เดือน-ปีเกิด” หรืออื่นๆ ขึ้นอยู่กับ
ความจําเป็นในการใช้งาน แต่ไม่ว่าจะกล่าวถึง Record ใด ใน File เดียวกัน จะมีการจัดเก็บข้อมูล
Field เดียวกันในทุกๆ Record
ไบต์ คืออักขระใดๆ ซึ่งจะรวมตัวกันจนเป็นคําหรือข้อความจนไปปรากฏในฟิลด์
บิต คือตัวเลขฐานสอง 1 ตัว ซึ่งมีค่าได้เพียงสองค่าเท่านั้นคือ 0 หรือ 1 ซึ่งไม่สามารถสื่อ
ความหมายใดในการเก็บข้อมูลได้ ดังนั้นในการเก็บตัวอักษรแต่ละตัวจึงจําเป็นต้องใช้เลขฐานสองเป็น
ชุดซึ่งปกติจะใช้เลขฐานสองจํานวน 8 บิต เพื่อเก็บอักขระ หรือตัวอักษรแต่ละตัว เช่น การแทนค่า
อักษร “a” ในรหัสแบบแอสกีนั้นจําเป็นต้องใช้ตัวเลขฐานสองจํานวน 8 ตัว หรือแปดบิต คือ “0110
0001” แทนอักษร เอเล็ก ในภาษาอังกฤษ

ภาพที่ 1.4  แสดงตัวอย่างการเก็บข้อมูลด้วยไฟล์

จากภาพที่ 1.4 หากเป็นการเก็บข้อมู ลด้วยระบบแฟ้มข้อมูล นั้น จะต้องมีการกําหนด


โครงสร้างของไฟล์ (File) ไว้อย่างชัดเจนตั้งแต่ต้นว่าจะต้องมีการเก็บข้อมูลอะไรบ้างในแต่ละไฟล์ อีก
10

ทั้งยังต้องกําหนดขนาดความกว้างของแต่ละฟิลด์ ซึ่งจากตัวอย่างจะเห็นว่าจะเก็บด้วยกันจํานวน 6
ฟิลด์ ซึ่งประกอบด้วยฟิลด์ ดังนี้ รหัสนักศึกษา คํานําหน้า ชื่อ สกุล เพศ และ วัน/เดือน/ปีเกิด โดย
จากตัวอย่างจะมีรายละเอียดและขอบเขตของแต่ละฟิลด์ ดังนี้
รหัสนักศึกษา ประกอบ ขึ้นจากตัวเลขจํานวน 5 หลัก ซึ่งไม่ว่าจะมีจํานวนกี่ Record ก็
ตามตัวเลขในฟิลด์นี้ก็ยังจะเป็นจํานวน 5 หลัก เท่านั้น ไม่สามารถเพิ่มหรือลดได้ อีกปัญหาที่อาจจะ
พบกั บ ฟิ ล ด์นี้ คื อ รหั ส นั ก ศึก ษาของแต่ ล ะ Record จะต้อ งไม่ ซ้ํ า กั น ดัง นั้ นผู้ ที่ เ ขี ย นโปรแกรม
(Programmer) เพื่อเก็บข้อมูล ไฟล์นี้จะต้องเขียนโปรแกรมมาคอยตรวจสอบเงื่อนไขดังกล่าว เพื่อ
ป้องกันความผิดพลาดที่อาจจะเกิดขึ้นได้
ในส่วนของ คํานําหน้า ชื่อ สกุ ล และเพศ ประกอบขึ้นจากตัวอัก ษรซึ่ง ไม่ สามารถ
กําหนดความกว้างที่แน่นอนได้ว่าจะต้องมีกี่ตัวอักษรในฟิลด์นี้ ดังนั้นในการออกแบบจึงต้องมีการเผื่อ
ขนาดของฟิลด์เหล่านี้ไว้ให้เพียงพอที่ข้อมูลอาจจะเกิดขึ้นใหม่ในอนาคตซึ่งอาจจะมีความยาวมากกว่า
แต่หากไม่ได้คํานึงถึงไว้ในการออกแบบตั้งแต่ต้นอาจจะเกิดปัญหาได้หากในอนาคตมี ข้อมูลที่มีขนาด
มากกว่าที่ ได้ออกแบบไว้ ก็ อาจจะต้องตัดให้เหลือเท่ากับ จํานวนที่ สามารถเก็ บได้ ซึ่ง อาจจะไม่ได้
ความหมาย หรือความหมายอาจจะเปลี่ยนไป อีกปัญหาหนึ่งที่อาจจะเกิดขึ้นกับข้อมูลในฟิลด์นี้คือ
หากผู้บันทึกข้อมูลพิมพ์คํานําหน้าเป็นอย่างอื่นเช่น “นางสาว” เป็น “น.ส.” หรือข้อมูลเพศ “ชาย”
หรือ “หญิง” ซึ่งอาจจะมีการบันทึกเป็น “ช” หรือ “ญ” ซึ่งโดยปกติแล้ว คําย่อหรือคําเต็มนั้นก็ มี
ความหมายเหมือนกัน แต่ในการเก็บข้อมูลที่เป็นคนละรูปแบบตามกรณีนี้ อาจจะก่อให้เกิดปัญหาขึ้น
ในภายหลังได้ และหากจะต้องการป้องกันความผิดพลาดแบบนี้ที่อาจจะเกิดขึ้นได้ ผู้เขียนโปรแกรมก็
จะต้องเขียนโปรแกรมเพื่อป้องกันความผิดพลาดนี้ขึ้นมาเองโดยเฉพาะ
ส่วน วัน/เดือน/ปีเกิด นั้น เป็นการจัดเก็บวันที่ ซึ่งโดยปกติแล้ว วันที่นั้นสามารถจัดเก็บ
ได้หลายรูปแบบ เช่น วัน/เดือน/ปี หรือ เดือน/วัน/ปี อีกทั้ง ปีนั้นยังสามารถเข้าใจได้ว่าอาจจะเป็นปี
แบบพุทธศักราช หรืออาจจะเป็นคริสต์ศักราช ซึ่งการจัดเก็บแบบไฟล์นั้น ไม่มีรูปแบบในการจัดเก็บ
โดยเฉพาะ ดังนั้นผู้เขียนโปรแกรมจึงจําเป็นต้องเขียนโปรแกรมเข้ามาควบคุมส่วนนี้ด้วยเช่นกัน และ
หากต้องการใช้วันที่ในรูปแบบที่นอกเหนือจากที่จัดเก็บไว้เป็นรูปแบบอื่น เช่น อยากจะแสดง ปี เป็น
คริสต์ศักราช ก็จะเขียนโปรแกรมเพื่อแปลงค่าเหล่านั้นขึ้นมาใหม่
1.4 ข้อจากัดของระบบแฟ้มข้อมูล
จากที่กล่าวมาแล้วข้างต้น ในการใช้งานระบบแฟ้มข้อมูล นั้นยังมีข้อจํากัดอยู่หลาย
ประการ ซึ่งอาจสรุปเป็นข้อๆ ได้ดังต่อไปนี้
11

1. การจั ด เก็ บ ข้ อ มู ล ขึ้ น อยู่ กั บ ภาษาที่ ใ ช้ ใ นการเขี ย นโปรแกรม (Data


Dependence) กล่าวคือ หากมีก ารเก็บ ข้อมูล ด้วยระบบแฟ้ม ข้อมู ล ผู้เขียนโปรแกรมจะต้องเขียน
ชุดคําสั่งในการจัดการกับไฟล์ข้อมูลเหล่านั้นขึ้นมาเอง เช่น การบันทึกข้อมูล การลบข้อมูล การแก้ไข
หรือแม้แต่การค้นหาข้อมูล ดังนั้นหากมีผู้เขียนโปรแกรมมากกว่าหนึ่งคน จะต้องมีการทําความเข้าใจ
กันเป็นอย่างดีในลักษณะของการทํางานกับไฟล์ที่ต้องการเก็บข้อมูลให้ตรงกัน มิฉะนั้นแล้วอาจสร้าง
ความเสียหายกับข้อมูล ที่เก็บ ได้ อีกทั้ งผู้เ ขียนโปรแกรมแต่ล ะคนจะต้องเขียนโปรแกรมด้วยภาษา
เดียวกันอีกด้วย
2. วิ ธี ก ารในการจั ด เก็ บ ข้ อ มู ล ไม่ มี ม าตรฐานที่ แ น่ น อน (Program-Data
Dependence) เนื่องจากการเก็บข้อมูลในลักษณะของไฟล์นั้นผู้เขียนโปรแกรมหรือโปรแกรมเมอร์
จะต้องมีมาตรฐานการจัดเก็บของตนเอง ไม่มีมาตรฐานกลาง ดังนั้นการนําข้อมูลไปใช้ในส่วนงานอื่นๆ
จึงต้องเข้าใจมาตรฐานดังกล่าวซึ่งตกลงกันไว้เอง
3. มีความซ้ําซ้อนในการจัดเก็บข้อมูล (Data Redundancy) เนื่องจากหากมีหลาย
ส่วนงานต้องการใช้ไฟล์เ ดียวกันนั้นสามารถทําได้ยาก ในการเก็บข้อมูลในรูปแบบไฟล์ จึงมีการทํ า
สําเนาไฟล์ไปใช้ในหลายๆ ส่วน เพื่อให้แต่ละส่วนสามารถเข้าถึงข้อมูลจากไฟล์ได้ ส่งผลให้เกิดปัญหา
ต่างๆ ตามมา ดังต่อไปนี้
3.1 ข้อมูลที่จัดเก็บไว้แต่ละที่ไม่ตรงกัน (Data Inconsistency) ปัญหานี้เกิด
จากข้อมูลที่ทําสําเนาไปใช้จากต้นฉบับเดียวกัน เมื่อมีการนําไปใช้แล้วอาจจะมีการปรับปรุงข้อมู ล
เกิดขึ้น ดังนั้นอาจเกิดเหตุที่ข้อมูลเดียวกันแต่กลับไม่ตรงกัน เช่น ข้อมูลนักศึกษาซึ่งอยู่ที่สํานักงาน
ทะเบียนของมหาวิทยาลัย หากคณะต้องการใช้งานก็ต้องทําสําเนาไปใช้อีกหนึ่งชุด หากมีนักศึกษาคน
ใดมีการเปลี่ยนชื่อ หรือ นามสกุล ก็จะมาแจ้งที่ฝ่ายทะเบียนเพื่อทําการเปลี่ยนชื่อ หรือนามสกุล เมื่อ
ฝ่ายทะเบียนแก้ไขชื่อเป็นชื่อใหม่แล้ว แต่ไม่ได้แจ้งไปทางคณะ นักศึกษาผู้นั้นก็จะมีชื่อไม่ตรงกันใน
สองหน่วยงาน ทั้งๆ ที่เป็นคนเดียวกัน
3.2 ความผิดพลาดของข้อมูลที่เกี่ยวเนื่องกัน (Data Anomalies) เป็นปัญหา
เกี่ยวกั บความผิดพลาดที่เ กิดขึ้นกั บข้อมู ลในรูป แบบต่างๆ ซึ่งส่วนใหญ่เป็นปัญหาที่เ กิดจากความ
ซ้ําซ้อนของข้อมูลเดียวกัน กระจัดกระจายไปอยู่ในหลายๆ แผนก หรือนําไปใช้ในหลายส่วนงาน ซึ่ง
Data Anomalies สามารถแยกย่อยออกได้ดังต่อไปนี้
3.2.1 ข้อมู ลที่ ขัดแย้งกั นเมื่อเกิดความผิดพลาดจากการแก้ไข
ข้อมูล (Modification Anomalies) เป็นความผิดพลาดที่เกิดกับข้อมูลซึ่งเกิดจากการแก้ไขข้อมูลทํา
ให้ข้อมูลไม่ตรงกันและไม่สามารถอ้างถึงข้อมูลที่เกี่ยวข้องกันขึ้นมาได้
3.2.2 ข้อมูลขัดแย้งกันเนื่องจากการเพิ่มข้อมูลที่เกี่ยวเนื่องกัน
(Insertion Anomalies) ความผิดพลาดนี้เกิดจากมีการเพิ่มข้อมูลใหม่ในไฟล์หนึ่ง แต่กลับไม่ได้มีการ
12

เพิ่มข้อมูลที่เ กี่ยวข้องกันในอีก ไฟล์หนึ่ง เช่น เพิ่มข้อมูล พนักงานใหม่ในไฟล์พนัก งาน แต่ไม่ ได้เพิ่ม


ข้อมูลเงินเดือนในไฟล์เงินเดือน เป็นต้น
3.2.3 ข้อมูลที่ขัดแย้งกันเนื่องจากการลบข้อมูลที่เกี่ยวเนื่องกัน
(Deletion Anomalies) เป็นความผิดพลาดที่เกิดจากการลบข้อมูล ในไฟล์หนึ่งทิ้ง แต่กลับไม่ล บ
ข้อมูลในไฟล์ที่เกี่ยวข้องด้วย ดังนั้นจึงจะมีข้อมูลบางส่วนที่ไม่สามารถอ้างถึงกับข้ อมูลในไฟล์ใดๆ ได้
กลายเป็นข้อมูลขยะที่ไม่สามารถนํามาใช้งานได้ต่อไป

1.5 ระบบฐานข้อมูล
เนื่องจากการเก็บข้อมูล ด้วยระบบแฟ้มข้อมูล นั้น มีข้อจํากัดหลายประการดังที่กล่าว
มาแล้วข้างต้น จึงได้มีการคิดค้นวิธีการเก็บข้อมูลด้วยระบบฐานข้อมูลขึ้น เพื่อขจัดข้อจํากัดเหล่านั้น
โดยการเก็บข้อมูลด้วยระบบฐานข้อมูลนั้น จะมีการเก็บข้อมูลแยกออกจากตัวโปรแกรมที่เขียนขึ้น
อย่างชัดเจน อีกทั้งยังมีระบบบริหารจัดการซึ่งเป็นมาตรฐานเดียวกัน ทําให้สามารถทําความเข้าใจได้
ง่าย มีความปลอดภัยสูงขึ้น และยังสามารถใช้งานร่วมกันได้อย่างปลอดภัยและลดปัญหาต่างๆ ที่เกิด
ขึ้นกับการบันทึกข้อมูลด้วยระบบแฟ้มข้อมูลโดยการเก็บข้อมูลด้วยระบบฐานข้อมูลนั้นจะมีตัวกลางที่
เรียกว่า DBMS (Database Management System) ซึ่งจะทําหน้าที่ในการบริหารจัดการข้อมูลใน
ฐานข้อมูล โดยไม่ต้องมีการเขียนโปรแกรมควบคุมใดๆ เพิ่มเติม และสามารถทํางานร่วมกันได้อย่างมี
ประสิท ธิภาพและมี ม าตรฐานในการทํ างานที่ ทั่ วโลกยอมรับ โดยลั ก ษณะการทํ า งานของระบบ
ฐานข้อมูลนั้นดังแสดงในภาพที่ 1.5

ภาพที่ 1.5  แสดงโครงสร้างการทํางานของระบบฐานข้อมูล


ที่มา : https://sites.google.com/site/cadkarthankhxmul/home/4-hnathi-khxng-rabb-kar-cadkar-than-khxmul/dstructure.png
13

จากภาพจะเห็นได้ว่าการใช้ระบบฐานข้อมูลนั้นสามารถใช้งานร่วมกันได้ โดยผ่าน DBMS


เป็นตัวกลางในการเข้าถึงตัวข้อมูลซึง่ เก็บอยู่ในฐานข้อมูล ดังนั้นหากมีการเปลี่ยนแปลง แก้ไข เพิ่มเติม
ข้อมูลก็จะทํายังแหล่งเก็บข้อมูลเพียงแหล่ งเดียว จึงสามารถขจัดปัญหาความผิดพลาดต่างๆ ซึ่งเคย
เกิดขึ้นกับระบบแฟ้มข้อมูลได้ อีกทั้งในการเข้าถึงข้อมูล ยังมีระบบความปลอดภัยและสิทธิ์การเข้าใช้
งานต่างๆ โดย DBMS เป็นตัวจัดการอีกด้วย

1.6 สภาพแวดล้อมของระบบฐานข้อมูล
ในการใช้งานระบบฐานข้อมูลนั้นมีความปลอดภัยและถูกต้อง อีกทั้งยังลดปัญหาต่างๆ ที่
เกิ ดขึ้นกั บการจัดเก็ บ ข้อ มู ลด้วยระบบแฟ้ม ข้อมู ล ก็จ ริง แต่ร ะบบฐานข้อมู ล ก็ยัง มีองค์ป ระกอบที่
เพิ่ม ขึ้น จากระบบแฟ้ ม ข้อ มู ล ค่อ นข้ างมาก ดัง นั้น จึง ต้อ งทํ าความเข้า ใจกั บ สภาพแวดล้ อมและ
องค์ประกอบต่างๆ ซึ่งประกอบกันขึ้นเป็นระบบฐานข้อมูล ดังต่อไปนี้
1. ฮาร์ดแวร์ (Hardware) คืออุป กรณ์ต่างๆ ที่ ใช้ในระบบฐานข้อมู ล เช่น เครื่อง
คอมพิวเตอร์รวมถึงอุปกรณ์ต่อพ่วงต่างๆ อุปกรณ์แม่ข่าย อุปกรณ์เครือข่ายต่างๆ ระบบสํารองข้อมูล
โดยอุปกรณ์แต่ละชนิดจะต้องมีความเข้ากันได้และทํางานเป็ นระบบเดียวกันร่วมกับส่วนอื่นๆ ของ
องค์ประกอบ
2. ซอฟต์แวร์ (Software) คือส่วนประกอบของโปรแกรมต่างๆ ซึ่ง จะใช้ในระบบ
เพื่อให้ระบบทํางานได้ อย่างมีเสถียรภาพ ปัจจุบันซอฟต์แวร์ยังมีให้เลือกใช้ทั้งประเภทที่ต้องจ่ายเงิน
เป็นค่า License และที่เป็น Open Source แต่หากเป็นระบบฐานข้อมูลทีม่ ีความสําคัญมากๆ อาจจะ
ต้องเลี่ยงการใช้งานซอฟต์แวร์ประเภท Open Source เนื่องจากการพัฒนาซอฟต์แวร์ประเภทนี้ คน
ทั่วโลกช่วยกันพัฒนา ดังนั้นอาจจะมีช่องโหว่ของซอฟต์แวร์ ซึ่งเป็นที่เปิดเผย อาจจะไม่ปลอดภัยกับ
ระบบฐานข้อมูลที่มีความสําคัญมากๆ โดยซอฟต์แวร์ที่ใช้ในระบบฐานข้อมูลอาจแบ่งย่อยออกได้ดังนี้
2.1 ซอฟต์แวร์ระบบปฏิบัติการ (Operating Systems) ซึ่งมีอุปกรณ์หลาย
อย่ า งที่ ต้ อ งใช้ ซ อฟต์ แ วร์ ป ระเภทนี้ เ พื่ อ ใช้ ใ นการทํ า งานเบื้ อ งต้ น ของอุ ป กรณ์ โดยซอฟต์ แ วร์
ระบบปฏิบัติการนี้จะมีหน้าที่บริหารจัดการฮาร์ดแวร์และอุปกรณ์ต่อพ่วงที่เกี่ยวข้อง และยังมีหน้าที่ให้
ซอฟต์แวร์ประเภทอื่นๆ สามารถทํางานบนระบบปฏิบัติการอีกด้วย โดยฮาร์ดแวร์ส่วนใหญ่จะต้องใช้
ระบบปฏิบัติการทํางานเสมอและยังขึ้นอยู่กับประเภทของฮาร์ดแวร์อีกด้วย ระบบปฏิบัติการแต่ละ
ประเภทจะทํางานบนฮาร์ดแวร์ที่ได้ออกแบบไว้เท่านั้น เช่น ระบบปฏิบัติการ Windows 7 จะทํางาน
บนเครื่อง IBM Compatible เท่านั้น แต่หากเป็นฮาร์ดแวร์ประเภทอื่นเช่นเครื่องตระกูล Macintosh
ก็จะต้องใช้ระบบปฏิบัติการ Mac OS ของบริษัท Apple เท่านั้น เป็นต้น
2.2 ซอฟต์แวร์ระบบจัดการฐานข้อมูล (DBMS Software) เป็นซอฟต์แวร์ที่
สําคัญมากในระบบฐานข้อมูล โดยซอฟต์แวร์ประเภทนี้จะทําหน้าที่บริหารจัดการฐานข้อมูล ซึ่งมีอยู่
14

หลายระดับ ความสามารถและราคาให้เ ลือ กใช้ ซอฟต์ แวร์ป ระเภทนี้ที่ รู้จั ก กั นดี เ ช่น Microsoft
Access ซึ่ง ติดมากับโปรแกรมในชุด Microsoft Office ของบริษัท ไมโครซอฟต์ แต่หากต้องการ
ความสามารถที่มากขึ้นอาจจะใช้ Microsoft SQL Server หรือ Oracle ของบริษัท Oracle แต่หาก
ต้องการใช้ประเภทที่เป็น Open Source ก็สามารถเลือกใช้ MySQL Server เป็นต้น
2.3 แอปพลิเ คชั น โปรแกรมและโปรแกรมอรรถประโยชน์ (Application
Programs and Utilities Software) ส่วน Application Program เป็นส่วนที่ใช้เป็นตัวกลางในการ
ติดต่อระหว่าง user กับ Database ซึ่งโปรแกรมประเภทนี้อาจจะพัฒนาขึ้นมาใช้เองในองค์กรต่างๆ
โดยมีหน้าที่ต่างกันไป ส่วนซอฟต์แวร์อรรถประโยชน์ (Utilities Software) อาจจะเป็นซอฟต์แวร์ที่
ช่วยอํานวยความสะดวกในการทํางานเพิ่มเติม เช่น โปรแกรมที่ใช้ในการสร้างรายงานต่างๆ โดยไม่
ต้องเขียนโปรแกรมเพิ่มเติมมากนัก ที่นิยมใช้กันมากในปัจจุบัน ได้แก่ Crystal Report ซึ่งช่วยสร้าง
รายงานโดยดึงข้อมูลจากฐานข้อมูลมาแสดงในรูปแบบรายงานตั้งแต่แบบพื้นฐานจนถึงรายงานที่มี
ความซับซ้อนมากๆ ได้
3. คน (People) ส่วนประกอบของระบบที่สําคัญอีกอย่างหนึ่งคือ “คน” ซึ่งระบบจะ
ประสบความสําเร็จมากน้อยเพียงใดนั้นขึ้นอยู่กับส่วนประกอบนี้เป็นหลัก โดยเริ่มตั้งแต่สร้างระบบ
ขึ้นมา จนถึงการใช้งานระบบ และการดูแลรักษาระบบ ล้วนแล้วแต่จําเป็นต้องใช้คนซึ่งมีหน้าที่ต่ างกัน
ดังนี้
3.1 ผู้บริหารระบบ (System Administrators) ทําหน้าที่โดยรวมทั้งหมด
ในระบบและเป็นผู้ที่มีสิทธิมากที่สุดในระบบด้วย โดยทําหน้าที่ดูแลระบบทั่วไปทั้งระบบ
3.2 ผู้บริหารฐานข้อมูล (Database Administrators) จะมีห น้าที่เกี่ยวข้องกั บ
ฐานข้อมูล บางครั้งตําแหน่งนี้จะเรียกย่อๆ ว่า “DBAs” โดยทําหน้าที่บริหารจัดการฐานข้อมูล ตั้งกฎ
ต่างๆ เกี่ยวกับฐานข้อมูลเพื่อให้ผู้ปฏิบัติงานส่วนอื่นทราบและปฏิบัติไปในทิศทางเดียวกัน เพื่อความ
ถูกต้อง มีเสถียรภาพ และเกิดความปลอดภัยกับระบบมากที่สุด
3.3 ผู้ออกแบบฐานข้อมู ล (Database Designers) ทําหน้าที่ ในการออกแบบ
ฐานข้อมูลตามมาตรฐานของฐานข้อมูลในรูปแบบนั้นๆ ให้ถูกต้อง มีประสิทธิภาพ และความปลอดภัย
ในการใช้งานมากที่สุด หากฐานข้อมูลออกแบบมาไม่ดีตั้งแต่ต้นอาจจะส่งผลกระทบในภายหลังซึ่งไม่
สามารถแก้ไขได้ หรือการแก้ไขนั้นทําได้ยากมากและอาจะส่งผลกระทบต่อส่วนงานต่างๆ ด้วย
3.4 นัก วิ เ คราะห์ ร ะบบและโปรแกรมเมอร์ (Systems Analysts and
Programmers) โดยนักวิเคราะห์ระบบนั้นจะทําหน้าที่ออกแบบโปรแกรมซึ่งหากใช้ร่วมกับฐานข้อมูล
แล้ ว ถื อ เป็ น ส่ ว นสํ า คั ญ เพราะโปรแกรมเป็ น เสมื อ นส่ ว นที่ เ ชื่ อ มต่ อ กั บ ผู้ ใ ช้ ใ นระดั บ อื่ น ๆ ส่ ว น
โปรแกรมเมอร์นั้นมีหน้าที่เขียนคําสั่ง หรือชุดคําสั่งโปรแกรมให้ทํางานได้ตามที่นักวิเคราะห์ระบบได้
ออกแบบไว้
15

3.5 ผู้ใช้งานระบบ (End Users) จะทํางานต่างๆ ในหน้าที่ของตนเอง โดยผ่าน


โปรแกรมที่โปรแกรมเมอร์ได้เขียนเอาไว้ และโปรแกรมเหล่านี้จะไปติดต่อข้อมูลจากฐานข้ อมูลมาให้
เองตามคําสั่งที่เขียนไว้ ดังนั้นผู้ใช้ระบบจึงไม่มีหน้าที่ใดๆ เพิ่มเติมเกี่ยวกับงานระบบเลย แต่ก็ยัง มี
ความสําคัญ เนื่องจากระบบจะประสบความสําเร็จได้ก็ขึ้นอยู่กับผู้ใช้งานระบบ ใช้งานได้อย่างถูกต้อง
และหลีกเลี่ยงปัญหาที่อาจะเกิดขึ้นกับระบบได้ โดยผู้ใช้งานระบบซึ่งมีหน้าที่แตกต่างกันก็จะเข้าถึง
ข้อมูลในระดับที่แตกต่างกัน เช่นกัน
4. กระบวนการทางาน (Procedure) ต่างๆ ในระบบฐานข้อมูล อาจจะเป็นกฎ สิทธิ์ใน
การเข้าถึงข้อมูลในระดับต่างๆ ซึ่งจะต้องมีเงื่อนไขจากเงื่อนไขขององค์กรและนํามากําหนดเป็นสิทธิ์
และกระบวนการในการเข้าถึงฐานข้อมูลในรูปแบบต่างๆ เพื่อความปลอดภัย และความมีเสถียรภาพ
และประสิทธิภาพในการบริหารจัดการฐานข้อมูล โดยมีข้อตกลงและกฎต่างๆ ร่วมกัน
5. ข้อมูล (Data) คือส่วนประกอบของความจริงๆ ซึ่งจะถูกบันทึกในฐานข้อมูล โดย
ข้อมูลถือเป็นวัตถุดิบของระบบฐานข้อมูลและมีความสําคัญเป็นอย่างยิ่ง เนื่องจากข้อมูลเป็นสิ่งมีค่า
มากสําหรับทุกองค์กร หากเกิ ดความผิดพลาด หรือแม้แต่เกิ ดความเสียหายของข้อมูล ผลกระทบ
อาจจะไม่ได้อยู่แค่ภายในองค์กรเท่านั้นแต่อาจะหมายรวมถึ งภาพรวมทั้งหมดทั้งในและนอกองค์กร
เช่น ข้อมูลธนาคาร หากมีการเข้าถึงไม่ได้ก็จะกระทบกับพนักงาน ลูกค้า และอาจหมายถึงกระทบกับ
ระบบเศรษฐกิจด้วย ดังนั้น องค์ประกอบนี้จึงถือเป็นองค์ประกอบที่สําคัญอย่างยิ่งในระบบฐานข้อมูล
จะต้องมีการบริหารจัดการ การสํารอง การเข้าถึง สิทธิ์การเข้าถึงข้อมูลในแต่ละระดับ การบันทึก การ
แก้ไข ข้อมูลส่วนส่วนต่างๆ จะต้องกระทําอย่างเคร่งครัด
16

ภาพที่ 1.6  แสดงสภาพแวดล้อมของระบบฐานข้อมูล


ที่มา : https://sites.google.com/site/cadkarthankhxmul/home/4-hnathi-khxng-rabb-kar-cadkar-than-khxmul/dbinvi.png
1.7 ประเภทของระบบฐานข้อมูล
1. ผู้ใช้คนเดียวหรือผู้ใช้หลายคน (Single User or Multi User) หากจะแบ่งประเภท
ของระบบฐานข้อมูลตามจํานวน Connection หรือ จํานวนผู้ที่เข้าถึงฐานข้อมูลได้ในเวลาเดียวกันนั้น
สามารถแบ่งได้เป็น 2 ประเภท คือ Single User จะเป็นระบบฐานข้อมูลที่มีผู้ใช้คนเดียวเท่านั้นที่
สามารถเข้าถึงฐานข้อมูลได้ในเวลาเดียวกัน โดยปกติจะเป็นฐานข้อมูลที่มีขนาดเล็กและไม่ซับซ้อน
และทํางานบนเครื่องเดี่ยวๆ ไม่ได้ทํางานออนไลน์ผ่านระบบเครือข่าย แต่หากเป็นระบบฐานข้อมูล
แบบ Multi User นั้น ระบบฐานข้อมูลแบบนี้จะทํางานบนระบบเครือข่าย โดยจะมีผู้ใช้ฐานข้อมูล
สามารถที่จะเข้ามาใช้พร้อมๆ กันผ่านระบบเครือข่ายคอมพิวเตอร์ โดยจํานวนผู้ใช้ที่เข้าถึงได้ในเวลา
เดียวกันนั้นก็ขึ้นอยู่กับความสามารถของระบบจัดการฐานข้อมูล
2. ระบบฐานข้อมูล แบบรวมศูนย์ห รือแบบกระจาย (Centralized or Distributed
Database) หากจะแบ่งประเภทของฐานข้อมูลตามวิธีการในการบริหารจัดการฐานข้อมูล สามารถ
แบ่งออกได้เป็นสองประเภทเช่นกั น คือ Centralized จะเป็นการเก็ บข้อมู ลไว้เพียงที่เดียวเท่านั้น
อาจจะเป็น Database Server เครื่องใดเครื่องหนึ่งซึ่งทําหน้าที่เก็บข้อมูลด้ วยฐานข้อมูลเพียงอย่าง
เดียว และมีระบบบริหารฐานข้อมูลควบคุมการทํางานให้ผู้ใช้สามารถเข้าถึงได้จากฐานข้อมูลเดียวกัน
ผ่านระบบเครือข่ายคอมพิวเตอร์ แต่หากมีจํานวน User เข้ามาใช้งานพร้อมๆ กันเป็นจํานวนมากๆ
การทํางานที่จุดเดียวอาจจะต้องใช้เครื่องแม่ข่าย หรือ Database Server ที่มีประสิทธิภาพสูงมากๆ
17

แต่เมื่อถึงขีดสุดการทํางานอาจจะช้าลง ก็อาจจะเลือกวิธีการใช้ฐานข้อมูลแบบกระจาย Distributed


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

1.8 หน้าที่ของระบบจัดการฐานข้อมูล
สิ่งสําคัญอย่างหนึ่งในระบบฐานข้อมูลก็คือระบบจัดการฐานข้อมูล ดังนั้นในหัวข้อนี้จะ
กล่าวถึงลักษณะของระบบจัดการฐานข้อมูล ซึ่งจะกล่าวถึงหน้าที่หลักๆ ที่ระบบจัดการฐานข้อมูลควร
มีเป็นเบื้องต้น แต่ก็ อาจจะมี ระบบจัดการฐานข้อมูล บางประเภทที่มี ฟังก์ ชั่นการทํางานมากกว่านี้
ขึ้นอยู่กับผู้ผลิตแต่ละรายจะเพิ่มเติมคุณลักษณะพิเศษ เพื่อเป็นจุดขายให้กับผลิตภัณฑ์ของตนเอง โดย
คุณสมบัติเบื้องต้นของระบบจัดการฐานข้อมูล มีดังต่อไปนี้
1. ระบบจัดการพจนานุกรมข้อมูล (Data Dictionary Management) โดยพจนานุกรม
ข้อมูลนั้นเป็นสิ่งสําคัญที่จะบอกถึงลักษณะและรายละเอียดต่างๆ ของข้อมูล ความสัมพันธ์ ลักษณะ
ของข้อ มูล เพื่ อ แสดงเป็นเอกสารที่บ อกคุณลัก ษณะของฐานข้อมู ล นั้นๆ เพื่อให้ผู้ที่ จําเป็นต้องนํา
ฐานข้อมูลไปใช้ได้ศึกษา ทําความเข้าใจ หรือแม้กระทั่งการนําไปปรับปรุงฐานข้อมูลในอนาคต โดย
สามารถนําไปวิเคราะห์ ทําความเข้าใจ และวางแผนในการบริหารจัดการฐานข้อมูลให้มีประสิทธิภาพ
18

ต่อไป หรือแม้ก ระทั่งเมื่อเกิดปัญหากั บฐานข้อมูล ก็ สามารถที่จะนําพจนานุกรมข้อมูลนี้ไปทําการ


วิเคราะห์ส าเหตุของปัญหาได้อี กด้วย ระบบจัดการฐานข้อมูล จึง จะต้องมี คุณสมบัติในการบริหาร
จัดการพจนานุกรมข้อมูลด้วย
2. ระบบจัดการข้อมูล (Data Storage Management) ระบบในการบริหารจัดการที่ใช้
ในการเก็บข้อมูล โดยปกติแล้วผู้ใช้ส่วนใหญ่จะไม่เห็นการทํางานในส่วนนี้ เพราะการบริหารจัดการ
การเก็บข้อมูลในระดับกายภาพนั้นระบบจัดการฐานข้อมูลจะทําโดยอัตโนมัติตามที่ผู้ผลิตได้ออกแบบ
ไว้ อันได้แก่ การบริหารจัดการพื้นที่บนฮาร์ดดิสก์ หรือสื่อเก็บข้อมูลอื่นๆ เพื่อให้สามารถเข้าถึงข้อมูล
ได้อย่างรวดเร็วและมีประสิทธิภาพ อีกทั้งจะต้องมีความปลอดภัย ซึ่งโดยปกติแล้วในการบันทึกข้อมูล
ต่างๆ ของระบบจัดการฐานข้อมูลนั้นจะมิใช่การบันทึกเฉพาะตัวข้อมูลเท่านั้น แต่ยังมีส่วนเกี่ยวข้อง
อย่างอื่น เช่น ข้อมูลที่เกี่ยวข้องกับกฎต่างๆ ที่ใช้ในฐานข้อมูล คีย์ หรือแม้แต่รายงาน หรือฟอร์ม ซึ่ง
ขึ้นอยู่กับระบบจัดการฐานข้อมูลแต่ละชนิดด้วย
3. การแปลงข้อมูลเพื่อใช้บันทึกลงสื่อ (Data Transformation and Presentation)
คุณสมบัติที่สําคัญอีกอย่างหนึ่งของระบบจัดการฐานข้อมูลคือการแปลงข้อมูลเพื่อใช้ในการบันทึกลง
สื่อซึ่งเป็นลักษณะทางกายภาพ โดยปกติผู้ใช้งานทั่วไปก็จะไม่เห็นคุณสมบัติในส่วนนี้เช่นเดียวกัน แต่
ระบบจะทํางานโดยอัตโนมัติ เมื่อผู้ใช้งาน (User) บันทึกข้อมูลลงฐานข้อมูล ฐานข้อมูลจะนําข้อมูลนั้น
ไปแปลงค่าด้วยวิธีการตามที่ผู้ผลิตระบบจัดการฐานข้อมูลได้กําหนดเอาไว้ และนําข้อมูลไปเก็บลงใน
สื่อด้วยวิธีการของแต่ละผู้ผลิต และเมื่อต้องการค้นคืนข้อมูลก็จะใช้วิธีการเช่นเดียวกันในการเรียกค้น
ข้อมูลคืน โดยจะแปลงข้อมูลที่ถูกเก็บในระดับกายภาพกลับมาเป็นระดับตรรกะ เพื่อคืนค่าให้กับผู้ใช้
4. ระบบจัดการความปลอดภัย (Security Management) ระบบความปลอดภัยใน
ระบบจัดการฐานข้อมูลเป็นสิ่งสําคัญมากอย่างหนึ่ง โดยระบบในส่วนนี้จะทําหน้าที่จํากัดการเข้าถึง
โดยผู้ใช้แต่ละคนสามารถเข้าถึงข้อมูลในส่วนของตนเท่านั้น โดยการกําหนดสิทธิ์ เพื่อความปลอดภัย
ของการเข้าถึงข้อมูล ข้อมูลบางส่วนอาจเป็นความลับสําหรับบางส่วนงาน หรืออาจไม่เป็นความลับแต่
ผู้ที่ไม่เกี่ยวข้องกับข้อมูลก็ไม่ควรเข้าถึงข้อมูลได้ ดังนั้นหน้าที่ของระบบจัดการฐานข้อมูลในส่วนนี้จึง
เป็นการทําหน้าที่การจํากั ดสิทธิ์ในการเข้าถึง ข้อมูล ของแต่ละคนตามสิท ธิและหน้าที่ โดยใช้ระบบ
ความปลอดภัยที่ได้กําหนดไว้ อาจจะเป็นการใช้รหัสผ่านเพื่อพิสูจน์สิทธิ์ การเข้ารหัสข้อมูลเพื่อความ
ปลอดภัยของข้อมูล การป้องกันความเสียหายทีอ่ าจเกิดขึ้นกับข้อมูล หรือระบบความปลอดภัยอื่นๆ ที่
ผู้ผลิตระบบจัดการฐานข้อมูลเพิ่มเติมมาเพื่อเป็นจุดขายของผลิตภัณฑ์ของตนเอง
5. การควบคุมการใช้งานแบบหลายบุคคล (Multiuser Access Control) เนื่องจากการ
ใช้งานระบบฐานข้อมูลนั้นสามารถเข้าถึงได้โดยผู้ใช้งานหลายๆ คน อาจจะเข้ามาพร้อมๆ กันหรือเข้า
มาคนละช่วงเวลากันก็ตามแต่ ระบบจัดการฐานข้อมูลจะต้องมีการกําหนดการเข้าใช้งานเพื่อป้องกัน
ความผิดพลาดของข้อ มูล ที่อ าจจะเกิดขึ้นจากการเข้าใช้ง านพร้อมกั น เช่น การเข้ามาแก้ไขข้อมู ล
19

เดียวกันพร้อมๆ กัน อาจจะทําให้ข้อมูลผิดพลาดได้ จึงจะต้องมีการควบคุมส่วนเข้าใช้งานดังกล่าวเพื่อ


ความถูกต้องของข้อมูล อาจจะมีการ Lock ข้อมูลที่มีผู้กําลังแก้ไข แต่ก็อาจจะส่งผลให้ระบบทํางานช้า
ลงเพราะมีการ Lock ข้อมูลที่กําลังถูกแก้ไข ดังนั้นระบบนี้จะต้องมีการบริหารจัดการที่ดีเพื่อให้ข้อมูล
ยังคงความถูกต้อง และยังสามารถให้บริการได้เป็นปกติอีกด้วย
6. ระบบสารองข้อมูลและกู้คืน (Backup and Recovery Management) ในส่วนของ
การสํารองข้อมูลและเรียกคืนข้อ มูลเป็นฟัง ก์ชั่นซึ่งสําคัญมากในระบบจัดการฐานข้อมูล เนื่องจาก
ข้อมูลเป็นสิ่งมีค่าขององค์กรทุกองค์กร ดังนั้นจึงต้องมีการสํารองข้อมูลไว้หาเกิดความเสียหายจะต้อง
เรียกคืนข้อมูลดังกล่าวกลับมาได้ ซึ่งโดยปกติแล้วการสํารองข้อมูลจะมีการกําหนดนโยบายของแต่ละ
องค์กรไว้ว่าจะมีวิธีการอย่างไร ทําบ่อยแค่ไหน และข้อมูลที่สํารองเอาไว้เก็บไว้ที่ใด แต่หากต้องมีการ
เรียกคืนข้อมูลจะต้องทําได้อย่างรวดเร็วเพื่อให้ระบบสามารถทํางานต่อได้โดยไม่สะดุด อีกทั้งยังต้องมี
ความปลอดภัยของข้อมูลที่สํารองไว้หากตกลงอยู่ในมือของผู้ไม่หวังดีจะต้องมีระบบป้องกันให้ผู้ที่มี
สิทธิเท่านั้นที่จะเรียกคืนข้อมูลได้
7. การจัดกาความสมบูรณ์ของข้อมูล (Data Integrity Management) เป็นฟังก์ชั่นที่
เป็นการประกันว่าข้อมูลได้รับการเข้าถึงหรือปรับปรุงโดยผู้ที่ได้รับอํานาจเท่านั้น เป็นมาตรการที่ใช้
สร้างความมั่นใจ ซึ่ง integrity ได้แก่ การควบคุมสภาพแวดล้อมทางภายภาพของการรับส่งข้อมูลใน
เครือข่าย การเข้าถึงข้อมูล และรักษาวิธีปฏิบัติการรับรองอย่างเข้มงวด ส่วน Data Integrity จะต้อง
สามารถป้องกันการคุกคามโดยอันตรายจากสภาพแวดล้อม เช่น ความร้อน ความชื้น ฝุ่น และความ
ไม่มีเสถียรภาพทางไฟฟ้า ได้ด้วยเพื่อป้องกันข้อมูลที่อาจเกิดความเสียหายจากเหตุดังกล่าวได้
8. การมีภาษากลางในการเข้าถึงและจัดการข้อมูลในฐานข้อมูล (Database Access
Languages and Application Programming Interfaces) คุณสมบัติอีกอย่างหนึ่งของระบบ
จัดการฐานข้อ มูลคือวิธีการในการเข้าถึงข้อมูล ซึ่งจะต้องเข้าถึงได้ด้วยภาษาที่ใช้ในการเข้าถึงและ
จัดการฐานข้อมูล เช่น ภาษา SQL (Structure Query Language) ซึ่งเป็นภาษามาตรฐานที่ใช้ในการ
เข้าถึงและจัดการฐานข้อมูลเชิงสัมพันธ์ แต่การใช้ภาษา SQL เพียงอย่างเดียวนั้นไม่เพียงพอ เนื่องจาก
คําสั่งภาษา SQL เป็นคําสั่งที่ใช้ในการจัดการข้อมู ลในฐานข้อมู ลเท่านั้น ดังนั้นเมื่อต้องการพั ฒนา
ระบบขึ้นมาใช้งานจะต้องมีการพัฒนา Application Program ขึ้นมาจากภาษาอื่นร่วมด้วย เช่น C,
C++, Basic, php, Java, ASP ฯลฯ ดังนั้นระบบจัดการฐานข้อมูลจะต้องอนุญาตให้ภาษาประเภทนี้
สามารถติดต่อกับระบบจัดการฐานข้อมูลได้ด้วย
9. ส่วนเชื่อมต่อกับฐานข้อมูล (Database Communication Interfaces) ส่วนสําคัญ
อีกอย่างหนึ่งคือการเข้าถึงระบบจัดการฐานข้อมูล ซึ่งจะเชื่อมโยงไปยังข้อมูลต่อไปนั้นจะต้องสามารถ
ติดต่อกับผู้ใช้ได้ผ่านสิ่งที่เรียกว่า Interface ซึ่งขึ้นอยู่กับผู้ผลิตแต่ละรายว่าจะออกแบบ Interface
หรือส่วนติดต่อผู้ใช้อย่างไร โดยอาจจะเป็น แอพพลิเคชั่น ที่ผู้ผลิตได้สร้างขึ้นมาเพื่อใช้ติดต่อกับระบบ
20

จัดการฐานข้อมูลของตัวเอง หรืออาจจะเป็น Interface ผ่านเว็บไซต์ หรือรูปแบบอื่นๆ โดยตัวอย่างที่


ใช้เป็น Interface เพื่อติดต่อกั บระบบจัดการฐานข้อมูลที่นิยมใช้เช่ น หากใช้ MySQL เป็นระบบ
จัดการฐานข้อมูล จะมี Interface ที่ใช้บนเว็บที่เป็นที่นิยมก็คือ phpMyAdmin ซึ่งผู้ใช้สามารถเข้าถึง
MySQL ได้ผ่าน phpMyAdmin ผ่านทาง Browser เพื่อเข้าไปบริหารจัดการฐานข้อมูลได้ ซึ่งได้แก่
การสร้างฐานข้อมูล การสร้างตารางข้อมูล การแก้ไข การลบ การสํารองข้อมูล อีกตัวอย่างหนึ่งซึ่งทํา
หน้าที่เป็น Interface ของระบบจัดการฐานข้อมูล Microsoft SQL Server ของบริษัท Microsoft
คือ Microsoft SQL Server Management Studio โดย แอพพลิเคชั่น (Application) นี้จะใช้ติดต่อ
กับระบบจัดการฐานข้อมูล Microsoft SQL Server แต่จะเป็น แอพพลิเคชั่น (Application) ซึ่ง
ทํางานบนระบบปฏิบัติการ Windows โดยอาศัย .net Technology ของบริษัท Microsoft เช่นกัน
ซึ่งการใช้งานจะต้องติดตั้งโปรแกรมนี้ลงในเครื่องก่อนจึงจะสามารถเรียกใช้งานได้
1.9 แบบจาลองฐานข้อมูล (สิทธิชัย ชูสําโรง การจัดการฐานข้อมูลและฐานข้อมูลภูมิสารสนเทศ หน้า
42-49)
แบบจําลองฐานข้อมู ล คือ สถาปัตยกรรมที่ มี ความสําคัญ ต่อระบบจัดการฐานข้อมู ล
(DBMS) ในการนํามาใช้จัดเก็บข้อมูล/วัตถุ ลงในฐานข้อมูลและกําหนดความสัมพันธ์ระหว่างข้อมูล
ต่างๆ ที่เกี่ยวข้อง ซึ่งเทคโนโลยีฐานข้อมูลแต่ละชนิด ต่างก็มีวิธีเชื่อมโยงความสัมพันธ์เพื่อเข้าถึงข้อมูล
ในรูปแบบที่แตกต่างกัน ดังนั้นกระบวนการคัดสรรระบบจัดการฐานข้อมูลเพื่อใช้งาน (ในขั้นตอนการ
ออกแบบฐานข้อมูล) จึงจําเป็นต้องสอดคล้องกับแบบจําลองข้อมูลที่สร้างขึ้นจากการวิเคราะห์ด้วย
รูปแบบโครงสร้างการจัดการฐานข้อมูลและคลังข้อมูลมีอยู่หลายรูปแบบด้วยกัน โดยแต่
ละรูปแบบต่างก็มคี ุณสมบัติและโครงสร้างที่แตกต่างกัน ซึ่งรายละเอียดการจัดการข้อมูล จะต้องได้รับ
การสนับสนุนภายใต้พื้นฐานของแบบจําลองฐานข้อมูล 1 ใน 5 รูปแบบ ซึ่งประกอบด้วย
1.9.1 แบบจาลองฐานข้อมูลลาดับชั้น (Hierarchical Database Model)
แบบจําลองชนิดนี้ไฟล์ข้อมูลจะถูกจัดลงในโครงสร้างแบบบนลงล่าง (Top-Down)
คล้ายกับต้นไม้หรือแผนผังสืบทอดวงศ์ตระกูลที่ถูกกําหนดความสัมพันธ์ในรูปแบบหนึ่งต่อกลุ่ม (One-
to-Many) โดยไฟล์ระดับบนสุดจะเรียกว่าโหนดราก (Root Node) หรือเซ็กเมนต์ (Segment) และ
ไฟล์ระดับล่างสุดจะเรียกว่าโหนดใบ (Leaves Node) ส่วนไฟล์ที่อยู่ระหว่างกึ่งกลางจะเป็น ไฟล์ที่มี
เพียงพ่อเดียว และไฟล์หนึ่งๆ สามารถมีไฟล์ลูกได้หลายไฟล์ด้วยกัน
21

โครงสร้ า งข้ อ มู ล แบบลํ า ดั บ ชั้ น แต่ ล ะโหนดเปรี ย บเสมื อ นเรคอร์ ด ในระบบ


แฟ้มข้อมูลซึ่งแต่ละเรคอร์ดจะถูกเชื่อมโยงด้วยพอยน์เตอร์ (Pointer) ในระดับกายภาพ สําหรับเร
คอร์ดหรือเซ็กเม็นต์ต่างๆ ที่อ ยู่ลําดับ ล่างลงไปก็คือลูกของเซ็กเม็นต์ที่อยู่ลําดับก่อนหน้า และด้วย
หลักการนี้แบบจําลองฐานข้อมูลชนิดนี้จึงมีความสัมพันธ์แบบ หนึ่งต่อกลุ่ม กล่าวคือโหนดพ่อสามารถ
แตกสาขาออกเป็นโหนดลูกได้หลายโหนดในขณะที่โหนดลูกจะมีเพียงพ่อเดียวเท่านั้น จึงไม่รองรับ
ความสัมพันธ์แบบ กลุ่มต่อกลุ่ม (Many-to-Many)
หากพิจารณาจากภาพที่ 1.7 เป็นตัวอย่างฐานข้อมูลที่ออกแบบภายใต้แบบจําลอง
ฐานข้อมูลแบบลําดับชั้น จะพบว่า MSC Department ซึ่งเป็นโหนดรากได้มีการแตกออกเป็นสาขา
ต่างๆ อันได้แก่ MSC01, MSC02 และ MSC03 ดังนั้นหากต้องการรายงานอาจารย์ทั้งหมดที่สังกัดใน
สาขาธุรกิจเกษตรก็จะต้องเริ่มต้นค้นหาตั้งแต่โหนดรากซึ่งอยู่ลําดับบนสุด แล้วค่อยๆ ไต่ลําดับลงมา
โดยเมื่อพบโหนดสาขาก็จะสามารถดึงเรคอร์ดข้อมูลที่เกี่ยวข้องออกมาได้ทั้งหมด

ภาพที่ 1.7 ตัวอย่างฐานข้อมูลภายใต้โครงสร้างแบบจาลองฐานข้อมูลลาดับชั้น

แบบจําลองฐานข้อ มู ล ลําดับ ชั้นจัดเป็นสถาปัตยกรรมข้อมู ล ที่ เ ก่ าแก่ ที่ สุดในบรรดา


แบบจําลองฐานข้อมูลทั้งหมดและเนื่องจากเป็นแบบจําลองที่มีโครงสร้างความสัมพันธ์แบบพ่อลูก
22

ดังนั้นความถูกต้องในข้อมูลย่อมมีความคงสภาพสูง แม้ว่าในปัจจุบันจะไม่นิยมใช้แบบจําลองประเภท
นี้แล้วก็ตาม แต่ยังอาจพบได้ในองค์กรขนาดใหญ่สําหรับ เทคโนโลยีนี้ใช้งานได้ดีบนแบบจําลองบน
แบบจําลองข้อ มู ล ที่ ใช้โ ครงสร้างแบบทรีและการเข้าถึง ข้อมู ล ส่วนใหญ่เ ริ่ม ต้นจากแฟ้ม เดียวกั น
แบบจําลองฐานข้อมูลลําดับชั้นเหมาะกับการประมวลผลธุรกรรมขนาดใหญ่ ทุกวันนี้ยังคงมีองค์กร
เก่าแก่เพียงบางแห่งเท่านั้นที่ใช้งานอยู่ ตัวอย่างซอฟต์แวร์จัดการฐานข้อมูลบนแบบจําลองชนิดนี้คือ
IMS (Information Management System) ของบริษัท IBM แต่ด้วยแนวโน้มระบบฐานข้อมูล ในยุค
ปัจจุบันล้วนสร้างขึ้นภายใต้แบบจําลองฐานข้อมูลเชิงสัมพันธ์แทบทั้งสิ้น ดังนั้น ทางบริษัท IBM จึงได้
เตรียมชุดซอฟต์แวร์สําหรับใช้เป็นเครื่องมือในการเคลื่อนย้าย (Migration) จากฐานข้อมูล IMS มา
เป็น DB2 เพื่อรองรับการเปลี่ยนแปลงข้อมูลของลูกค้า โดยฐานข้อมูล DB2 เป็นผลิตภัณฑ์ซอฟต์แวร์
จัดการฐานข้อมูลเชิงสัมพันธ์ของบริษัท IBM เช่นกัน สํ า หรั บข้ อ ดี และข้ อเสี ยของ แบบจํ าลอ ง
ฐานข้อมูลลําดับชั้น มีดังต่อไปนี้
ข้อดี
1. เป็นโครงสร้างที่ง่ายต่อการทําความเข้าใจ มีลักษณะเหมือนกับโครงสร้างต้นไม้
2. เป็นโครงสร้างที่มีความซับซ้อนน้อยที่สุด เหมาะกับข้อมูลที่มีความสัมพันธ์แบบหนึ่ง
ต่อกลุ่ม
3. การป้อ งกั นความปลอดภัยในข้อมูล ค่อนข้างดี เนื่องจากต้องอ่านข้อมู ลที่ เ ป็นต้น
กําเนิดก่ อนทําให้ความถูกต้องของข้อมูลในฐานข้อมู ลมีสูงหรือที่เรียกว่ามี ความคง
สภาพสูง
4. เหมาะกับข้อมูลที่มีการเรียงลําดับแบบต่อเนื่อง
ข้อเสีย
1. ยากต่อการพัฒนา ซึ่งผู้พัฒนาต้องมีความรู้ความเข้าใจเกี่ยวกับโครงสร้างทางกายภาพ
ของข้อมูลที่จัดเก็บอยู่ภายในฐานข้อมูลเป็นอย่างดี
2. เมื่อมีการเปลี่ยนแปลงในโครงสร้าง แอปพลิเคชันโปรแกรมทั้งหมดต้องเปลี่ยนแปลง
ตาม เนื่องจากขาดอิสระในโครงสร้าง
3. ในการเรียกใช้ข้อมูลจําเป็นต้องผ่านโหนดรากเสมอ ดังนั้นหากต้องการค้นหาข้อมูลซึ่ง
อยู่ในระดับต่างๆ จะต้องค้นหาข้อมูลทั้งแฟ้มข้อมูล
4. ไม่มีภาษามาตรฐานที่นําไปใช้จัดการกับฐานข้อมูล
5. ขาดมาตรฐานการรองรับที่ชัดเจน
23

1.9.2 แบบจาลองฐานข้อมูลเครือข่าย (Network Database Model)


แบบจําลองฐานข้อมูล เครือข่าย สามารถรองรับ ความสัมพันธ์ข้อมูล ที่ มี ความ
ซับซ้อนยิ่งขึ้นและมีประสิทธิภาพสูงกว่าแบบแรก แต่ยังมีโครงสร้างที่คล้ายคลึงกับแบบลําดับชั้น คือมี
ลําดับชั้นแบบบนลงล่างแต่จะแตกต่างตรงที่ นอกจากแต่ละโหนดจะมีความสัมพันธ์กับโหนดอื่นๆ ได้
หลายโหนดแล้ว แต่ละโหนดยังสามารถมีหลายพ่อได้

ภาพที่ 1.8 แบบจาลองฐานข้อมูลเครือข่าย


ที่มา : http://2.bp.blogspot.com/-f4XgaZEKJW0/VkyJ6XxvHTI/AAAAAAAABuU/kN3RAb1VWnc/s1600/pic18.jpg

ความสัมพันธ์ระหว่างข้อมูลในแบบจําลองฐานข้อมูลเครือข่ายจะเรียกว่าเซต (Set)
แต่ละเซตอย่างน้อยประกอบด้วยเรคอร์ด 2 ชนิดด้วยกัน คือ Owner Record ที่เปรียบเสมือนกับ
โหนดพ่อ และ Member Record ที่ Owner Record และ Member Record ได้ตามโครงสร้าง
แบบเมซ (Mesh Structure)
ปัจจุบันแบบจําลองชนิดนี้ ยังมีมีใช้งานอยู่บนเครื่องคอมพิวเตอร์ระดับเมนเฟรม
โดยเฉพาะโปรแกรมจัดการฐานข้อมูล IDMS (Integrated Database Management System) ของ
บริษัท Computer Associates ซึ่งปัจจุบันคือบริษัท CA Technologies ซึ่งได้รับความนิยมมาก
ภายใต้การใช้งานบนโครงสร้างแบบจําลองดังกล่าวและในทํานองเดียวกัน โครงสร้างแบบจําลอง
ฐานข้อมูลแบบเครือข่ายยังคงใช้พอยน์เตอร์หรือตัวชี้ในการเชื่อมโยงความสัมพันธ์ระหว่างเรคคอร์ดใน
24

ระดับกายภาพ โดยสนับสนุนความสัมพันธ์ได้ทั้งแบบ หนึ่งต่อหนึ่ง และ กลุ่มต่อกลุ่ม สําหรับข้อดีและ


ข้อเสียของแบบจําลองฐานข้อมูลแบบนี้ คือ
ข้อดี
1. มีหลักการที่ง่าย คล้ายกับแบบจําลองฐานข้อมูลลําดับชั้น
2. สนับสนุนความสัมพันธ์ได้ทั้งแบบ หนึ่งต่อหนึ่ง และ กลุ่มต่อกลุ่ม
3. การเข้าถึงข้อมูลที่มีความยืดหยุ่นสูงกว่าแบบลําดับชั้น เหมาะกับแฟ้มข้อมูลที่มี
ความสัมพันธ์กันในรูปแบบของเครือข่าย
4. ความสัมพันธ์แบบ Owner/Member Relationship ทําให้ข้อมูลมีความคง
สภาพที่ดี
5. มีภาษานิยามข้อมูล (DDL) และภาษาจัดการข้อมูล (DML) ในระบบจัดการ
ฐานข้อมูล
6. มีมาตรฐานเพื่อนําไปปฏิบัติชัดเจน (ตามกรอบมาตรฐานของ CODASYL)
ข้อเสีย
1. ระบบโดยรวมมีความซับซ้อน อีกทั้งยังมีข้อจํากัดด้านประสิทธิภาพ
2. ยากต่อการนําไปใช้ ทั้งในด้านการพัฒนาแอปพลิเคชัน และการจัดการ
3. หากโครงสร้างมีการเปลี่ยนแปลง โปรแกรมประยุกต์ทั้งหมดต้ องเปลี่ยนตาม
เนื่องจากขาดอิสระในโครงสร้าง
1.9.3 แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
แบบจําลองฐานข้อมูลเชิงสัมพันธ์ จัดเป็นแบบจําลองที่ นิยมใช้มากที่สุด ระบบ
ใหม่ๆ ในปัจจุบันล้วนถูก สร้างขึ้นภายใต้แบบจําลองชนิดนี้แทบทั้งสิ้น ผ่านการนําเสนอมุมมองใน
รูปแบบของตาราง (Table) สองมิติที่สามารถสื่อสารได้อย่างเข้าใจ โดยตารางหนึ่งๆ จะประกอบด้วย
แถวและคอลัมน์ ข้อมูลที่ จัดเก็บ อยู่ในตารางสามารถเชื่อมโยงความสัมพันธ์กับตารางอื่นๆ ได้ อัน
ได้แก่ ความสัมพันธ์แบบ หนึ่งต่อหนึ่ง หรือแบบ กลุ่มต่อกลุ่ม โดยมีคีย์เป็ นตัวเชื่อมโยงเข้ากับตาราง
อื่นๆ ซึ่งประกอบด้วยคีย์หลักและคีย์นอก รวมถึงการกํ าหนดลําดับดัชนีให้กับ คีย์ห ลักและคีย์รอง
เพื่อให้การเข้าถึงข้อมูลมีความรวดเร็วยิ่งขึ้น นอกจากนี้ยังมีเครื่องมือสนับสนุนอื่นๆ ที่สําคัญ อันได้แก่
ภาษา SQL และเครื่องมือสร้างคิวรี (QBE) เป็นต้น
25

ภาพที่ 1.9 ตัวอย่างฐานข้อมูลภายใต้โครงสร้างแบบจาลองฐานข้อมูลเชิงสัมพันธ์

ปัจจุบันมีโปรแกรมประยุกต์มากมายที่พัฒนาเพื่อใช้งานบนแบบจําลองฐานข้อมูล
เชิงสัมพันธ์ ซอฟต์แวร์จัดการฐานข้อมูล (DBMS) ส่วนใหญ่ล้วนสนับสนุนการทํางานของแบบจําลอง
ดังกล่าว ด้วยการใช้คําสั่ง SQL ในการจัดการกับฐานข้อมูล สําหรับข้อดีและข้อเสียของแบบจําลอง
ฐานข้อมูลชนิดนี้ มีดังนี้
ข้อดี
1. มีความเป็นอิสระในโครงสร้าง หากมีการเปลี่ยนแปลงโครงสร้างตารางจะไม่
ส่งผลต่อโปรแกรมที่ใช้งาน
2. การนําเสนอข้อมู ล ในรูป แบบตารางก่ อให้เ กิ ด มโนภาพถึง ลัก ษณะข้อมู ล ที่
สามารถจับต้องได้ ง่ายต่อการทําความเข้าใจ ช่วยในการออกแบบฐานข้อมูล
การนําไปใช้และการจัดการสะดวกมากขึ้น
3. การเรียกดูข้อมูลสามารถเรียกใช้งานผ่านชุดคําสั่ง SQL ซึ่งเป็นภาษาในยุคที่ 4
4. มีระบบความปลอดภัยที่ดี เนื่องจากโครงสร้างการจัดเก็บข้อมูลทางกายภาพ
ผู้ใช้ทั่วไปไม่สามารถรับรู้ได้เนื่องจากถูกซ่อนอยู่ภายใน
5. ระบบจั ดการฐานข้อ มู ล ยุคใหม่ ที่ ใ ช้ง านในปัจ จุบั นล้ วนรองรับ เทคโนโลยี
ฐานข้อมูลเชิงสัมพันธ์แทบทั้งสิ้น
26

ข้อเสีย
1. ค่าใช้จ่ายเกี่ ยวกั บ ระบบค่อ นข้ างสู ง เนื่องจากจํา เป็นต้องใช้ท รัพ ยากรทั้ ง
ฮาร์ดแวร์และซอฟต์แวร์ที่มีความสามารถสูง รวมถึงต้นทุนของระบบจัดการฐานข้อมูลเองก็จะสูงขึ้น
ตามระดับความสามารถ
2. เนื่องจากแนวคิดฐานข้อมูลเชิงสัมพันธ์ในภาพรวมนั้นง่ายต่อการนําไปใช้งาน
ดังนั้น บุคคลที่ไม่ได้รับการฝึกอบรมหรือเป็นผู้ที่มีความรู้ไม่ดีพอ ได้นําเครื่องมือไปใช้หรือออกแบบ
ผิดๆ ทําให้ระบบที่ดีต้องกับแย่ลง และหากไม่ได้รับการตรวจสอบอาจจะก่อให้เกิดความซ้ําซ้อนใน
ข้อมูลได้เช่นเดียวกับระบบแฟ้มข้อมูล
3. เนื่องจากฐานข้อมูลเชิงสัมพันธ์มีเครื่องมือสนับสนุนมากมายที่สามารถนํามาใช้
เพื่อพัฒนาระบบด้วยระยะเวลาอันสั้น ดังนั้น อาจเกิดปัญหากับกรณีมีพนักงานบางคนอยากลองวิชา
หรือทดลองศึกษาด้วยการลักลอบพัฒนาแอปพลิเคชันเพื่อใช้งานเองในทางที่ผิดหรือกระทําโดยไม่ได้
รับอนุญาตซึ่งอาจส่งผลกระทบต่อฐานข้อมูลองค์กรไม่ทางใดก็ทางหนึ่ง
1.9.4 แบบจาลองฐานข้อมูลเชิงวัตถุ (Object-Oriented Database Model)
แบบจําลองชนิดนี้ถือเป็นเทคโนโลยีใหม่ของการจัดการฐานข้อมูลเชิงวัตถุ ซึ่งเกิด
จากแนวคิดการเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Program : OOP) ด้วยการมองทุกสิ่งเป็น
วัตถุ โดยแต่ละวัตถุจะเป็นแหล่งรวมของข้อมูลโอเปอเรชัน (Data and Operation) มีคลาส (Class)
เป็นตัวกําหนดคุณสมบัติหรือรายละเอียดของวัตถุ รวมทั้งคุณสมบัติห่อหุ้ม (Encapsulation) ที่การ
เข้าถึงข้อมูลเมื่อวัตถุอื่นๆ ได้ส่งเมสเสจร้องขอมา จะต้องได้รับการตอบรับจากเมธอดในวัตถุนั้นว่าจะ
อนุญาตให้เข้าถึงข้อมูลตนหรือไม่ ข้อดีของแบบจําลองฐานข้อมูลเชิงวัตถุนี้ก็คือ สามารถจัดการกับ
ข้อมู ล ชนิดต่ างๆ ที่ มี ค วามซับ ซ้อ นได้ เ ป็ นอย่ างดี เช่น ข้อ มู ล ประเภท กราฟิก วีดี โ อ และเสีย ง
นอกจากนี้ยังสนับสนุนคุณสมบัติการนํากลับมาใช้ใหม่ (Reusable) ทั้งนี้แบบจําลองฐานข้อมูลเชิง
วัตถุถือเป็นเทคโนโลยีใหม่ของระบบจัดการฐานข้อมูล ที่มักนําไปใช้กับหน่วยงานขนาดใหญ่ สําหรับ
ข้อดีและข้อเสียของแบบจําลองฐานข้อมูลชนิดนี้ มีดังต่อไปนี้
ข้อดี
1. คุณสมบัติด้านการสืบทอด (Inheritance) ทําให้ข้อมูลมีความคงสภาพสูง
2. มีคุณสมบัติในการนํากลับมาใช้ใหม่
3. การนําเสนอข้อมูลรูปแบบวิชวล (Visual) ทําให้เข้าใจความหมายได้ดี
27

ข้อเสีย
1. ยังต้องพึ่งพาผู้เชี่ยวชาญโดยเฉพาะ และมีค่าใช้จ่ายเกี่ยวกับระบบค่อนข้างสูง
2. ยังไม่มีมาตรฐานรองรับที่ชัดเจนเมื่อเทียบกับแบบจําลองฐานข้อมูลเชิงสัมพันธ์
อีกทั้งผลิตภัณฑ์ระบบจัดการฐานข้อมูลที่ใช้งานบนแบบจําลองฐานข้อมูลเชิง
สัมพันธ์ ได้พัฒนาขีดความสามารถก้าวไปอีกขั้นหนึ่งด้วยการผนวกเทคโนโลยี
เชิงวัตถุไปด้วย ที่เรียกว่า Object-Relational Database
3. ผู้เชี่ยวชาญส่วนใหญ่คุ้นเคยกับเทคโนโลยีฐานข้อมูลเชิงสัมพันธ์มากกว่า
1.9.5 แบบจาลองฐานข้อมูลหลายมิติ (Multidimensional Database Model)
แบบจําลองชนิดนี้ใช้งานกับคลังข้อมูล (Data Warehousing) โดยนําเสนอข้อมูล
ได้หลายมิติทําให้สามารถวิวข้อมูลได้มากกว่าหนึ่งมุมมอง เพื่อให้ผู้บริหารสามารถมองเห็นปัญหาทาง
ธุรกิจและสร้างวิธีแก้ปัญหาได้ดียิ่งขึ้น กล่าวคือ แบบจําลองฐานข้อมูลหลายมิติจะนําข้อมูลธุรกรรม
ทางธุรกิจมาจัดรูปแบบให้อยู่ในรูปมิติ เช่น การนําข้อมูลผลิตภัณฑ์สินค้า กับข้อมูลพื้นที่การขาย มา
ประมวลเป็นตารางในรูปแบบหลายมิ ติ ทําให้ผู้ใช้สามารถตัดขวางหรือแบ่งข้อมูล ออกเป็นส่วนๆ
(Data Cube) มาวิเคราะห์ใช้งานได้ตามต้องการ ตัวอย่างแบบจําลองฐานข้อมูลหลายมิติที่ถูกสร้าง
เพื่อใช้งานในฐานข้อมูลเชิงสัมพันธ์ คือ Star Schema ซึ่งจะมี Fact Table เป็นศูนย์กลางในการ
บรรจุแอตตริบิวต์ทั้งหมดที่ถูกวัดหรือวิเคราะห์ ส่วนตารางมิติ (Dimension Tables) ก็คือตารางแกน
ต่างๆ ที่จะเชื่อมโยงเข้ากับตาราง Fact ผ่านคีย์ สําหรับข้อดีและข้อเสียของแบบจําลองฐานข้อมูลชนิด
นี้ มีดังต่อไปนี้
ข้อดี
1. สามารถนํามาประยุกต์ใช้เพื่อวางแผนกลยุทธ์ และสร้างวิธีแก้ปัญหาธุรกิจได้
2. ข้อมูลที่นําเสนอสามารถนําเสนอมุมมองได้หลายมิติ
ข้อเสีย
1. ใช้เงินลงทุนสูง ทั้งฮาร์ดแวร์และซอฟต์แวร์ที่นํามาใช้เพื่อการวิเคราะห์
2. คลั ง ข้ อ มู ล ต้อ งได้รั บ การออกแบบที่ ดี มิ ฉะนั้น อาจจะไม่ ส ามารถนํ ามาใช้
ประโยชน์ได้อย่างคุ้มค่า
3. ผู้เชี่ยวชาญเฉพาะด้านมีจํานวนน้อย
4. เหมาะสําหรับธุรกิจขนาดใหญ่
28

สรุปท้ายบท
ในบทที่ 1 นี้ได้กล่าวถึงความเป็นมาและความสําคัญ ของการบันทึกข้อมูลตั้งแต่อดีตมา
จนถึงการจัดเก็บข้อมูลด้วยฐานข้อมูล อีกทั้งยังได้อธิบายวิธีการเก็บข้อมูลในรูปแบบของไฟล์ซึ่งไม่ได้มี
วิธีการเก็บข้อมูลหรือข้อตกลงที่ชัดเจนเมือ่ เปรียบเทียบกับการบันทึกข้อมูลด้วยระบบฐานข้อมูลโดยได้
อธิบ ายถึงลัก ษณะของไฟล์ ข้อมู ล ข้อจํากัดต่างๆ ในการเก็บ ข้อมู ลด้วยระบบแฟ้มข้อมูล นอกจาก
วิธี ก ารเก็ บ ข้อ มู ล ด้ วยระบบแฟ้ ม ข้ อ มู ล แล้ วในบทนี้ ยัง ได้ อ ธิบ ายถึง วิธี ก ารเก็ บ ข้ อมู ล ด้ วยระบบ
ฐานข้อมูล สภาพแวดล้อมที่ใช้กับการเก็บข้อมูลด้วยระบบฐานข้อมูล ประเภทของฐานข้อมูล ระบบ
จัดการฐานข้อมู ล และยั ง กล่าวถึง Database Models ทั้ง ที่ เป็น Conceptusl Model และ
Implementation Model ในตอนท้ายของบทยังได้กล่าวถึงแบบจําลองฐานข้อมูลประเภทต่างๆ ไม่
ว่าจําเป็น แบบจําลองฐานข้อมู ลแบบลําดับ ชั้น แบบจําลองฐานข้อมู ลแบบเครือข่าย แบบจําลอง
ฐานข้อมูลเชิงสัมพันธ์ และ แบบจําลองฐานข้อมูลเชิงวัตถุ ซึ่งในบทนี้ผู้เรียนจะได้เห็นความเป็นมาและ
ภาพรวมต่างๆ ของการจัดเก็บข้อมูลด้วยระบบฐานข้อมูล
29

คาถามทบทวนบทที่ 1
1. จงอธิบายลักษณะการเก็บข้อมูลด้วยระบบแฟ้มข้อมูลมาพอเข้าใจ
2. จงอธิบายลักษณะการเก็บข้อมูลด้วยระบบฐานข้อมูลมาพอเข้าใจ
3. จงอธิบายเปรียบเทียบวิธีการเก็บข้อมูลด้วยระบบแฟ้มข้อมูลและระบบฐานข้อมูลในประเด็นสําคัญ
มาเป็นข้อๆ
4. เมื่อต้องการจัดเก็บข้อมูลด้วยระบบฐานข้อมูล ระบบฐานข้อมูลดังกล่าวจําเป็นต้องมีสภาพแวดล้อม
สําคัญอะไรบ้าง
5. DMBS คืออะไร หากจําเป็นต้องใช้งานจะต้องมีองค์ประกอบอื่นใดบ้างร่วมด้วย
6. จงอธิบายลักษณะเฉพาะของแบบจําลองฐานข้อมูลประเภทต่างๆ
30

เอกสารอ้างอิงบทที่ 1

ชนะชล กันหาถม. (2554). แบบจาลองฐานข้อมูล. เรียกใช้เมื่อ 25 สิงหาคม 2560 จาก


Datamodelcool: http://datamodelcool.blogspot.com

ทรงศักดิ์. (ม.ป.ป.). หน้าที่ของระบบจัดการฐานข้อมูล. เรียกใช้เมื่อ 25 สิงหาคม 2560 จาก


https://sites.google.com/site/cadkarthankhxmul/home/4-hnathi-khxng-rabb-
kar-cadkar-than-khxmul

สิทธิชัย ชูสําโรง. (2559). การจัดการฐานข้อมูลและฐานข้อมูลภูมสิ ารสนเทศ. พิษณุโลก: ภาควิชา


ทรัพยากรธรรมชาติและสิ่งแวดล้อม มหาวิทยาลัยนเรศวร.
31

แผนบริหารการสอนประจาบทที่ 2
หัวข้อเนื้อหา
บทที่ 2 การออกแบบฐานข้อมูลด้วย ER-Diagram
2.1 สัญลักษณ์ที่ใช้ใน ER-Diagram
2.2 ชนิดของความสัมพันธ์
2.3 วิธีวิเคราะห์ชนิดของความสัมพันธ์ใน ER-Diagram
2.4 วิธีวิเคราะห์ Cardinality
2.5 Optional, Mandatory
2.6 แอตทริบิวต์

วัตถุประสงค์เชิงพฤติกรรม
วัตถุประสงค์ในบทที่ 2 นี้ เมื่อผู้เรียนได้ศึกษาเกี่ยวกับการออกแบบฐานข้อมูลด้วย ER-
Diagram แล้ว ผู้เรียนจะมีพฤติกรรมที่พึงประสงค์ ดังนี้
1. ผู้เรียนสามารถใช้สัญลักษณ์ของ ER-Diagram ในรูปแบบทีถ่ ูกต้องในการเขียน ER-
Diagram
2. ผู้เรียนสามารถวิเคราะห์และแก้ปญ ั หาความสัมพันธ์ใน ER-Diagram ได้
3. ผู้เรียนสามารถวิเคราะห์ค่าความเป็นไปได้ของข้อมูลระหว่างเอ็นทิตี (Entity) ต่างๆ
(Cardinality) ได้
4. ผู้เรียนสามารถวิเคราะห์ Optional และ Mandatory ใน ER-Diagram ได้
5. ผู้เรียนสามารถกําหนด แอตทริบิวต์ ต่างๆ ให้แต่ละเอ็นทิตี ได้อย่างเหมาะสม

วิธีสอนและกิจกรรมการเรียนการสอนประจาบท
1. วิธีการสอน
1.1 ผู้สอนบรรยายเนื้อหาใหม่
1.2 ให้ผู้เรียนมีส่วนร่วมในกิจกรรมการเรียนการสอน โดยการตอบคําถาม และตัวอย่าง
ต่างๆ
1.3 กําหนดให้ผเู้ รียนวิเคราะห์งานของตัวเองหรือกลุ่ม ด้วย ER-Diagram
1.4 กําหนดวิธีการส่งงานโดยให้ผู้เรียนแต่ละคนหรือกลุม่ มาอธิบายงานโดยผูส้ อนอาจะ
สอบถามเพิ่มเติมเพื่อทวนสอบความเข้าใจในแต่ละเรื่อง
32

2. กิจกรรมการเรียนการสอน
2.1 ผู้สอนบรรยายเนื้อใหม่ซึ่งผู้เรียนไม่เคยมีความรู้มาก่อน โดยระหว่างที่บรรยายจะให้
ผู้เรียนมีส่วนร่วมในการยกตัวอย่างเพิม่ เติมจากทีผ่ ู้สอนยกตัวอย่างไปแล้วเพื่อทดสอบ
ความเข้าใจ
2.2 เมื่ อ ผู้ส อนบรรยายเนื้อ หาเสร็จ ไปในแต่ล ะประเด็นก็ ท ดสอบโดยการตั้ง โจทย์ใน
ประเด็นที่ ได้บ รรยายไปให้ ผู้เ รี ยนช่ วยกั นทํ า โจทย์ดัง กล่า ว โดยให้ช่ว ยกั น เสนอ
ความเห็นของแต่ละกลุ่มหรือของผู้เรียนแต่ละคนโดย
2.3 กําหนดโจทย์ประจําสัปดาห์ให้ผู้เรียนแต่ละคนหรือแต่ละกลุ่มทําในชั้นเรียน และให้
ส่งงานโดยการนําเสนอกับผู้สอนและหากเพื่อนกลุ่ม อื่นๆ สนใจฟังหรือร่วมแสดง
ความคิดเห็นก็สามารถทําได้เพื่อทวนสอบความรู้ ความเข้าใจ ของผู้เรียน

สื่อการเรียนการสอน
สื่อการเรียนการสอนในบทนี้ประกอบด้วย
1. เอกสารประกอบการสอนรายวิชาระบบฐานข้อมูล
2. กระดานเพื่อใช้ในการอธิบายและลําดับความคิดนักศึกษาในเรื่องที่ผสู้ อนบรรยาย
3. แบบฝึกหัดท้ายบทที่ 2

การวัดผลและประเมินผล
การวัดผลและการประเมินผล ประกอบด้วยการวัดผลและการประเมินผล ดังนี้
1. สังเกตความสนใจในกิจกรรมการเรียนการสอนของผูเ้ รียน
2. สังเกตพฤติกรรมการมีส่วนร่วมในชั้นเรียน เช่น การซักถาม การตอบคําถาม ตลอดจนการ
อภิปรายร่วมกัน
3. วัดและประเมินผลเป็นรายบุคคลหรือรายกลุม่ จากการส่งแบบฝึกหัดท้ายบทที่ 2 ด้วยการ
นําเสนอเป็นรายบุคคลหรือรายกลุ่มกับผู้สอน
33

บทที่ 2 การออกแบบฐานข้อมูลด้วย ER-Diagram


ในการออกแบบฐานข้อมูลเชิงสัมพันธ์นั้นประกอบด้วยขั้นตอนการออกแบบหลาย
ขั้นตอน ซึ่งแต่ละขั้นตอนจะต้องวิเคราะห์และออกมาอย่างรอบคอบ มิฉะนั้นแล้วผลลัพธ์ที่ได้จากการ
ออกแบบอาจจะเกิดความผิดพลาดหรือความไม่เหมาะสมของการนําไปใช้งานในอนาคตได้ ซึ่งอาจจะ
ส่งผลต่อประสิทธิภาพการทํางานของระบบโดยรวม หรือหากจําเป็นต้องมีการแก้ไขโครงสร้างของ
ฐานข้อมูลในอนาคตก็จะเป็นเรื่องที่อาจเกิดความวุ่นวายและส่งผลกระทบต่อระบบโดยรวมเป็นอย่าง
มาก อีกทั้งหากจําเป็นต้องแก้ไขโครงสร้างของฐานข้อมูลขณะที่ระบบนั้นถูกใช้งานไปด้วยแล้ว อาจ
ส่งผลกระทบเป็นอย่างมากต่อองค์กรที่ใช้ระบบหรือฐานข้อมูลนั้นอยู่ ทั้งยังเกิดคําถามเกี่ยวกับความ
มั่นคงและเสถียรภาพของระบบงานดังกล่าว
ดังนั้นการออกแบบฐานข้อมูลจึงต้องกระทําอย่างระมัดระวัง รอบคอบ และคํานึงถึง
ประสิทธิภาพในการนําไปใช้งาน และการรองรับอนาคต
เมื่อ ทราบถึงความสําคัญของการออกแบบฐานข้อมูล ที่เหมาะสมแล้ว ในขั้นตอน
ต่อไปจะกล่าวถึงขั้นตอนในการออกแบบฐานข้อมูล เชิง สัมพันธ์ซึ่ง ประกอบด้วยขั้นตอนต่างๆ ซึ่ง
จะต้องกระทําโดยเรียงลําดับขั้นกันไป ดังต่อไปนี้
ขั้นตอนที่ 1 Entity Relationship Diagram การวิเคราะห์ความสัมพันธ์ของ
กลุ่มข้อมูลต่างๆ โดยใช้เครื่องมือที่เรียกว่า Entity Relationship Diagram หรืออาจะเรียกว่า ER-
Diagram โดยในขั้นตอนนี้จะเป็นการวิเคราะห์ว่าข้อมูลที่จะต้องเก็บมีอะไรบ้าง และสัมพันธ์กับข้อมูล
อื่นหรือไม่ หากสัมพันธ์จะต้องวิเคราะห์เพิ่มเติมว่ามีความสัมพันธ์กันแบบใด
ขั้นตอนที่ 2 Mapping ขั้นตอนนี้จะเป็นขั้นตอนของการแปลง ER-Diagram ที่ได้
จากขั้นตอนที่ 1 ให้กลายเป็นสิ่งที่เรียกว่ารีเลชัน โดยมีกฎต่างๆ ในการแปลง
ขั้นตอนที่ 3 Normalization จะเป็นขั้นตอนที่ใช้ลดความซ้ําซ้อนของข้อมูล ซึ่งอยู่
ในรูปแบบของรีเลชัน ซึ่งได้มาจากขั้นตอนที่ 2 เมื่อผ่านกระบวนการ Normalization แล้ว อาจจะมี
การแยกรีเลชัน ออกจากกัน จนได้รีเลชัน ใหม่ๆ เกิดขึ้นแต่ก็ลดความซ้ําซ้อนในการเก็บข้อมูลของแต่
ละรีเลชัน ในอนาคตเช่นกัน
ขั้นตอนที่ 4 Table Design เมื่อผ่านขั้นตอนที่ 3 เราจะได้ รีเลชัน ต่างๆ ที่พร้อม
จะนําไปสร้างเป็นฐานข้อมูล โดยใช้โปรแกรมจัดการฐานข้อมูล (DBMS : Database Management
System) ซึ่งการออกแบบในขั้นตอนนี้จะต้องคํานึงถึงโปรแกรมจัดการฐานข้อมูลด้วย เพราะแต่ละ
โปรแกรมมีข้อกําหนด หรือแม้แต่ประเภทของเขตข้อมูลที่แตกต่างกัน
เมื่อผ่านขั้นตอนครบทั้ง 4 ขั้นตอนข้างต้นแล้วฐานข้อมูลก็ พร้อมที่จะนําไปใช้งาน
ต่อไป ซึ่งการใช้งานฐานข้อมูลนั้นก็ขึ้นอยู่กับประสิทธิภาพของระบบจัดการฐานข้อมูลด้วยว่ารองรับ
34

การใช้งานใดบ้าง รองรับการเชื่อมต่อพร้อมกันครั้งละเท่าใด หรือแม้กระทั่งระบบความปลอดภัยต่างๆ


ที่ใช้กับระบบจัดการฐานข้อมูลนั้นๆ ซึ่งก็มีลักษณะเด่น หรือข้อควรระวังที่แตกต่างกันไปตามประเภท
ของระบบจัดการฐานข้อมูลของแต่ละผู้ผลิต
ส่วนในบทนี้จะกล่าวถึงขั้นตอนการออกแบบฐานข้อมูลเชิงสัมพันธ์โดยใช้เครื่องมือที่เรียกว่า
Entity Relationship Diagram หรือ ER-Diagram ซึ่งเป็นขั้นตอนแรกของการออกแบบฐานข้อมูล
เชิงสัมพันธ์ โดยการวิเคราะห์ ER-Diagram นั้น มีสัญลักษณ์ต่างๆ ที่ใช้ในการออกแบบอยู่หลายค่าย
ด้วยกัน ดังแสดงในภาพที่ 2.1 ซึ่งหากเลือกใช้สัญลักษณ์ของค่ายใดแล้วจําเป็นจะต้องใช้ทั้งชุดของค่าย
นั้น ไม่นํามาปะปนกัน ซึ่งในเอกสารประกอบการสอนเล่มนี้จะเลือกใช้สัญลักษณ์ของ Chen ในการ
ออกแบบ ER-Diagram
2.1 สัญลักษณ์ที่ใช้ใน ER-Diagram

ภาพที่ 2.1  แสดงตัวอย่างสัญลักษณ์ที่ใช้ใน ER-Diagram


ที่มา : http://www.ugetproject.com/wp/wp-content/uploads/2011/04/51.png
35

จากภาพที่ 2.1 สัญลักษณ์ของ Chen ซึ่งประกอบด้วยสัญลักษณ์ต่างๆ 8 สัญลักษณ์


ด้วยกัน โดยมีรายละเอียดของแต่ละสัญลักษณ์ดังต่อไปนี้

1. เอ็นทิตี (Entity) เป็นสัญลักษณ์ซึ่งใช้เป็นตัวแทนของกลุ่มข้อมูล โดยเอ็นทิตี นั้น


จะต้อ งมี คุ ณสมบัติส องอย่างด้ วยกั น คื อ จะต้อ งเป็นกลุ่ม ข้อมู ล และสามารถแยกเป็ นข้อมู ล ซึ่ ง
ประกอบด้ว ยรายละเอี ย ดย่ อ ยๆ ได้อีก เช่น หากจะออกแบบฐานข้อ มู ล ให้ร ะบบทะเบี ยนของ
มหาวิทยาลัยราชภัฏสุราษฎร์ธานีแล้ว สิ่งที่จะนํามาเป็นเอ็นทิตี ได้อย่างหนึ่งคือเอ็นทิตี นักศึกษา ซึ่ง
จะเป็นว่านักศึก ษานั้นมี ข้อ มู ล จํานวนมาก หากมหาวิท ยาลัยราชภัฏสุร าษฎร์ธานี มีนัก ศึก ษาอยู่
30,000 คนก็จะมีข้อมูลนักศึกษาอยู่จํานวน 30,000 ชุดด้วยเช่นกัน และอีกคุณสมบัติของเอ็นทิตี คือ
สามารถแยกเป็นข้อมูลย่อยๆ ตัวอย่างเช่น ข้อมูลนักศึกษา สามารถแยกเป็น รหัสนักศึกษา คํานําหน้า
นาม ชื่อ นัก ศึก ษา สกุ ล นัก ศึก ษา สาขาที่ เ รีย น คณะที่ เ รียน สถาบันที่ จ บมาก่ อนเข้าเรียนที่
มหาวิทยาลัยฯ หรือข้อมูลอื่นๆ ดังนั้นนักศึกษาจึงมีองค์ประกอบทั้ง 2 ส่วน จึงจัดเป็นเอ็นทิตี ในการ
วิเคราะห์และออกแบบ ER-Diagram ได้

2. เส้นเชื่อมความสัมพันธ์ (Relationship Line) เป็นสัญลักษณ์ซึ่งมีลักษณะเป็นเส้น


ลากเชื่อมระหว่างเอ็นทิตี หนึ่ง กับอีกเอ็นทิตี หนึ่ง โดยผ่านสัญลักษณ์รีเลชัน เพื่อบอกว่าเอ็นทิตี ใดมี
ความสัมพันธ์ กับ เอ็นทิตี ใดบ้าง และผ่านความสัมพันธ์อะไร โดยการลากเส้นเชื่อมความสัมพันธ์
ระหว่างเอ็นทิตี นั้นสามารถกระทําได้ใน 3 ลักษณะ ดังนี้

2.1 ความสัมพันธ์แบบ Recursive ความสัมพันธ์ที่เกิดขึ้นในลักษณะนี้คือความสัมพันธ์


กับเอ็นทิตี หนึ่งและสัมพันธ์กับตัวมันเอง เช่น พนักงานซึ่งเป็นหัวหน้าคนหนึ่งดูแลพนักงานอื่นๆ ได้
หลายคน ซึ่งพนักงานที่มีตําแหน่งเป็นหัวหน้า หรือพนักงานที่ไม่ได้เป็นหัวหน้าก็มีข้อมูลพนักงานอยู่ใน
เอ็นทิตี พนักงานเช่นเดียวกัน จึงเกิดความสัมพันธ์กับตัวมันเอง ดังรูปที่ 3.2

ภาพที่ 2.2  แสดงลักษณะความสัมพันธ์แบบ Recursive


36

2.2 ความสัมพันธ์ร ะหว่างเอ็นทิตีกับ เอ็นทิตี (Binary Relationship) เมื่ อเขียน ER-


Diagram แล้ว ความสัมพันธ์แบบนี้เกิดขึ้นได้มากที่สุด กล่าวคือเอ็นทิตี หนึ่ง จะไปสัมพันธ์กับอีกเอ็นทิ
ตี หนึ่งเท่านั้น เช่น ความสัมพันธ์ระหว่างศิลปินกับการสร้างสรรค์งานศิลปะ โดยที่ศิลปินแต่ละคน
สามารถสร้างสรรค์งานศิลปะของตนเองได้ และงานศิลปะแต่ละชิ้นก็ถูกสร้างสรรค์โดยศิลปิ นเช่นกัน
ดังภาพที่ 3.3

ภาพที่ 2.3  แสดงลักษณะความสัมพันธ์แบบเอ็นทิตี กับเอ็นทิตี

2.3 ความสัมพันธ์แบบ Ternary เป็นความสัมพันธ์ระหว่างเอ็นทิตี หนึ่งกับอีก 2 เอ็นทิตี


หรืออาจจะอธิบายว่าเป็นความสัมพันธ์แบบ 3 ฝ่าย และเมื่อพิจารณาแล้วไม่ว่าจะพิจารณาจากเอ็นทิตี
คู่ใด ก็ สามารถวิเ คราะห์ความสัมพั นธ์เดียวกั นได้ ดัง ตัวอย่างในภาพที่ 2.4 จะเห็นได้ว่าอาจารย์มี
ความสัมพันธ์กับกลุ่มเรียนด้วยการสอน อีกทั้ง อาจารย์ยังมีความสัมพันธ์กับวิชาด้วยการสอนเช่นกัน

ภาพที่ 2.4  แสดงลักษณะความสัมพันธ์แบบ Ternary

3. ความสัมพันธ์ (Relationship) เป็นสัญลักษณ์ที่ใช้บอกลักษณะของความสัมพันธ์ว่า


เป็นความสัมพันธ์อะไร ซึ่งโดยปกติแล้วสัญลักษณ์นี้จะใช้เชื่อมต่อระหว่างเอ็นทิตี เพื่อบอกว่าแต่ละ
เอ็นทิตี นั้นสัมพันธ์กันอย่างไร
37

4. ทางเลือก (Optional) เป็นสั ญ ลัก ษณ์ที่ ใช้บ อกว่าข้อ มู ล ของเอ็นทิ ตี ใด เป็ น


ทางเลือกของอีกเอ็นทิตี หนึ่งหรือไม่ โดยการวิเคราะห์ว่าเป็น Optional หรือไม่นั้นจะต้องพิจารณา
จากค่า Cardinality ซึ่งจะกล่าวถึงต่อไป

5. สัญลักษณ์ที่ใช้บอกชนิดของความสัมพันธ์ โดยใช้ตัวเลข 1 แทนชนิดความสัมพันธ์


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

6. คอมโพสิทเอ็นทิตี (Composite Entity) เป็นสัญลักษณ์ที่เกิดจากการแก้ปัญหา


ชนิดความสัม พันธ์แบบ Many to Many เนื่องจากลัก ษณะความสัม พันธ์ แบบกลุ่ม ต่อกลุ่มนี้ ไม่
สามารถนําไปสร้างในฐานข้อมูลเชิงสัมพันธ์ได้ ดังนั้นสัญลักษณ์เดิมซึ่งเรียกว่ารีเลชัน จึงถูกเปลี่ยนเป็น
Composite Entity และปรับเปลี่ยนชนิดของความสัมพันธ์ เมื่อเกิด Composite Entity แล้ว ก็จะ
กลายเป็นเอ็นทิตี ใหม่ ที่ในอนาคตจะต้องใช้ในการเก็บข้อมูลใดข้อมูลหนึ่ง คล้ายๆ กับเอ็นทิตี ปกติ

7. วีคเอ็นทิตี (Weak Entity) เป็น เอ็นทิตี อีกประเภทหนึ่งโดยลักษณะสําคัญของ


Weak Entity นั้นจะต้องเชื่อมต่อกับเอ็นทิตี ปกติเสมอ อีกทั้งข้อมูลใดๆ ที่จะเกิดขึ้นใน Weak Entity
ได้ จะต้องมีข้อมูลที่เกี่ยวข้องสัมพันธ์กันเกิดขึ้นในเอ็นทิตี อีกด้านหนึ่งก่อนเสมอ เช่น บริษัทแห่งหนึ่ง
ได้ให้สวัสดิการในการเบิกค่ารักษาพยาบาลได้ของตัวพนักงานและบุตรอีก 1 คน หากจะเขียน ER-
Diagram เพื่อแสดงความสัมพันธ์ระหว่างพนักงานกับการให้สวัสดิการ การรักษาพยาบาลของบุตร
จะเห็นว่าจะไม่สามารถมีข้อมูลบุตรขึ้นมาได้ก่อนเลยหากไม่มีข้อมูลพนักงาน ดังนั้นข้อมูลในเอ็นทิตี
บุตร จึงขึ้นอยู่กับข้อมูลในเอ็นทิตี พนักงานเสมอ ซึ่งสามารถเขียน ER-Diagram ดังแสดงในภาพที่
2.5

ภาพที่ 2.5  แสดงลักษณะความสัมพันธ์แบบมี Weak Entity

2.2 ชนิดของความสัมพันธ์
เมื่อ กล่าวถึง ชนิดของความสัม พันธ์นั้น ขั้นตอนการวิเ คราะห์ความสัมพันธ์ของข้อมู ล
ต่างๆ โดยใช้ ER-Diagram นั้น สามารถปรากฏความสัมพันธ์ระหว่างข้อมูลต่างๆ ได้ 3 ชนิด ดังนี้
1. ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One to One Relationship) โดยความสัมพันธ์แบบ
นี้ จ ะเป็ น ความสั ม พั น ธ์ ที่ มี ลั ก ษณะสิ่ ง หนึ่ ง สั ม พั น ธ์ กั บ อี ก สิ่ ง หนึ่ ง เพี ย งหน่ ว ยเดี ย วเท่ า นั้ น เช่ น
38

ความสัมพันธ์ระหว่างคนไทยกับใบสูติบัตรนั้นมีลักษณะความสัมพันธ์แบบหนึ่งต่อหนึ่ง กล่าวคือ คน
ไทยแต่ละคนนั้นจะมีสูติบัตรเพียงคนละหนึ่งฉบับเท่านั้น และสูติบัตรแต่ละฉบับก็เป็นของคนไทยเพียง
หนึ่งคน ดังภาพที่ 2.6

ภาพที่ 2.6  แสดงลักษณะความสัมพันธ์แบบหนึง่ ต่อหนึ่ง

2. ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One to Many Relationship) โดยความสัมพันธ์


แบบนี้จะเป็นความสัมพันธ์ระหว่างสิ่งหนึ่งสัมพันธ์กับกลุ่ม เช่น ความสัมพันธ์ระหว่างเจ้าของรถยนต์
กับรถยนต์ซึ่งจดทะเบียนกับกรมการขนส่งทางบก กล่าวคือ เจ้าของรถยนต์แต่ละคนสามารถมีรถยนต์
ในครอบครองได้หลายคัน และรถยนต์แต่ละคันนั้นจะมีเจ้าของซึ่งเป็นผู้ครอบครองอยู่เพียงคนเดียว
เท่านั้น ดังภาพที่ 2.7

ภาพที่ 2.7  แสดงลักษณะความสัมพันธ์แบบหนึง่ ต่อกลุม่


3. ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many to Many Relationship) โดยความสัมพันธ์
แบบนี้จะเป็นความสัมพันธ์ระหว่างกลุ่มหนึ่งสัมพันธ์กับอีกกลุ่ม เช่น ความสัมพันธ์ระหว่างนักศึกษา
กับการลงทะเบียนเรียนรายวิชาต่างๆ กล่าวคือ นักศึกษาแต่ละคนสามารถลงทะเบียนเรียนได้หลาย
วิชา และแต่ละวิชาก็เปิดให้นักศึกษาลงทะเบียนได้หลายคนเช่นกัน ดังภาพที่ 2.8

ภาพที่ 2.8  แสดงลักษณะความสัมพันธ์แบบกลุ่มต่อกลุ่ม


39

2.3 วิธีวิเคราะห์ชนิดของความสัมพันธ์ใน ER-Diagram


เมื่อรู้จักชนิดของความสัมพันธ์แบบต่างๆ แล้ว ในขั้นตอนนี้จะเป็นการวิเคราะห์ลักษณะ
ของความสัมพันธ์ว่าเป็นชนิดใด โดยมีขั้นตอนการวิเคราะห์ความสัมพันธ์ระหว่างข้อมูล โดยจะต้อง
วิเคราะห์จากเอ็นทิตี หนึ่ง ไปหาอีกเอ็นทิตี หนึ่งโดยเริ่มวิเคราะห์จากหนึ่งหน่วยของข้อมูลไปหา
ปลายทางซึ่งอาจจะเป็นหนึ่งหน่วย หรือหลายหน่วย และเมื่อได้คําตอบจากการวิเคราะห์ในครั้งแรก
แล้วนั้นก็ ยัง ไม่ส ามารถสรุปได้ว่า ความสัม พันธ์ระหว่างเอ็นทิตี จะเป็นแบบใด จะต้องวิเคราะห์
ความสัมพันธ์ตามขั้นตอนเดิม จากอีกฝั่งของเอ็นทิตี กลับมาด้วย แล้วจึงเลือกเอาค่ามากที่สุดเอาไว้
จึงจะสรุปได้ว่าความสัมพันธ์ระหว่างเอ็นทิตี นั้นจะเป็นชนิดใด ดังตัวอย่างต่อไปนี้
2.3.1 การวิเคราะห์ความสัมพันธ์ในกรณีที่ผลลัพธ์ของการวิเคราะห์ความสัมพันธ์
เป็นชนิดหนึ่งต่อหนึ่ง

ภาพที่ 2.9  แสดงลักษณะความสัมพันธ์แบบหนึง่ ต่อหนึ่ง

จากภาพที่ 2.9 นั้นจะเห็นได้ว่าเป็น ER-Diagram ซึ่งแสดงความสัมพันธ์ระหว่าง คณบดี


กับการบริหารคณะ โดยตัวเลขบอกชนิดความสัมพันธ์เป็นความสัมพันธ์แบบหนึ่งต่อหนึ่ง โดยการที่จะ
วิเคราะห์ชนิดของความสัมพันธ์และสรุปแบบมาแบบนี้ได้นั้น จะต้องเริ่มวิเคราะห์จากเอ็นทิตี ใดเอ็นทิ
ตี หนึ่งโดยเริ่มวิเคราะห์จากหนึ่งหน่วยเสมอและถามไปหาเอ็นทิตี ปลายทาง จากนั้นวิเคราะห์กลับ
จากเอ็นทิตี ปลายทางอีกครั้งหนึ่งโดยเริ่มถามจากหนึ่ง หน่วยเช่นกัน จากภาพที่ 2.9 หากต้องการ
วิเคราะห์ความสัมพันธ์สามารถทําได้ตามขั้นตอนดังต่อไปนี้

ขั้นตอนที่หนึ่ง เริ่มวิเคราะห์จากเอ็นทิตี คณบดี ไปหาเอ็นทิตี คณะ ซึ่งผลการวิเคราะห์


เป็นดังนี้ คณบดีหนึ่งคนสามารถบริห ารคณะได้เ พียงหนึ่งคณะเท่านั้น ซึ่ง ผลจากการวิเคราะห์ใน
ขั้นตอนนี้น่าจะได้ผลลัพ ธ์ของชนิดความสัมพันธ์เป็นแบบหนึ่งต่อหนึ่ง แต่อย่างไรก็ ตามยังต้องทํ า
ขั้นตอนที่สองด้วยทุกครั้ง เพื่อผลลัพธ์ของการวิเคราะห์ที่ถูกต้อง

ขั้นตอนที่สอง เริ่มวิเคราะห์จากเอ็นทิตี คณะ ไปหาเอ็นทิตี คณบดี ซึ่งเป็นการวิเคราะห์


ย้อนกลับจากขั้นตอนที่หนึ่ง ซึ่งผลการวิเคราะห์เป็นดังนี้ คณะแต่ละคณะก็สามารถบริหารงานโดย
คณบดีเพียงหนึ่งคนเท่านั้น
40

ขั้นตอนที่สาม สรุปผลการวิเคราะห์ จะเห็นว่าจากตัวอย่างนี้ซึ่งปรากฏผลลัพธ์ในภาพที่


2.9 ซึ่ ง ผ่านการวิเ คราะห์ ในขั้นตอนที่ ห นึ่ง ซึ่ง ได้ผ ลลัพ ธ์ความสัม พัน ธ์เ ป็นหนึ่ง ต่อ หนึ่ง และการ
วิเคราะห์ย้อนกลับในขั้นตอนที่สองแล้วก็ได้ผลลัพธ์เป็นหนึ่งต่อหนึ่งเช่นกัน จึงสรุปความสัมพันธ์ของคู่
นี้ได้ได้ว่าเป็นแบบหนึ่งต่อหนึ่ง
2.3.2 การวิเคราะห์ความสัมพันธ์ในกรณีที่ผลลัพธ์ของการวิเคราะห์ความสัมพันธ์
เป็นชนิดหนึ่งต่อกลุ่ม

ในการวิเคราะห์ความสัมพันธ์ซึ่งได้ผลลัพธ์เป็นแบบหนึ่งต่อหนึ่งนั้น จะเห็นได้ว่าไม่ว่าจะ
วิเคราะห์จากเอ็นทิตี ใดไปหาเอ็นทิตี ใดก็ยังได้ผลลัพธ์เหมือนเดิม จึงจะสรุปความสั มพันธ์ได้ แต่หาก
เป็นความสัมพันธ์ชนิดอื่น เมื่อวิเคราะห์ทั้งสองฝั่งแล้ว จะได้ผลลัพธ์ที่แตกต่างกัน ดังตัวอย่างต่อไปนี้

ภาพที่ 2.10  แสดงลักษณะความสัมพันธ์แบบหนึ่งต่อกลุ่ม


จากภาพที่ 2.10 จะเห็นว่าเป็น ER-Diagram ซึ่งแสดงความสัมพันธ์ระหว่าง เจ้าของรถยนต์
กับการมีรถยนต์ ซึ่งการวิเคราะห์ว่าความสัมพันธ์ระหว่างสองเอ็นทิตี นี้จะเป็นชนิดใดนั้นจะต้องทํา
ตามขั้นตอนการวิเคราะห์ทั้ง 3 ขั้นตอนเช่นเดียวกัน ดังขั้นตอนต่อไปนี้

ขั้นตอนที่หนึ่ง เริ่มวิเคราะห์จากเอ็นทิตี เจ้าของรถยนต์ ไปหาเอ็นทิตี รถยนต์ ซึ่งผลการ


วิเคราะห์เป็นดังนี้ เจ้าของรถยนต์หนึ่งคนสามารถมีรถยนต์ในครอบครองได้หลายคัน ซึ่งผลจากการ
วิเคราะห์ในขั้นตอนนี้น่าจะได้ผลลัพธ์ของชนิดความสัมพันธ์เป็นแบบหนึ่งต่อกลุ่ม แต่อย่างไรก็ตามยัง
ไม่อาจสรุปความสัมพันธ์ของสองเอ็นทิตี นี้ได้ จนกว่าจะได้ทําตามขั้นตอนการวิเคราะห์จนครบทั้งสาม
ขั้นตอน เพื่อผลลัพธ์ของการวิเคราะห์ที่ถูกต้อง

ขั้นตอนที่สอง เริ่มวิเคราะห์จากเอ็นทิตี รถยนต์ กลับไปหาเอ็นทิตี เจ้าของรถยนต์ ซึ่ง


เป็นการวิเคราะห์ย้อนกลับจากขั้นตอนที่หนึ่ง ซึ่งผลการวิเคราะห์เป็นดังนี้ รถยนต์แต่ละคันสามารถมี
เจ้าของได้เพียงคนเดียวเท่านั้น ซึ่งจะเห็นว่าจากการวิเคราะห์ในขั้นตอนที่สองนี้มีผลลัพธ์ที่แตกต่างกัน
กับขั้นตอนที่หนึ่ง

ขั้นตอนที่สาม สรุปผลการวิเคราะห์ จะเห็นว่าจากตัวอย่างนี้ซึ่งปรากฏผลลัพธ์ในภาพที่


2.10 ซึ่งผ่านการวิเคราะห์ในขั้นตอนที่หนึ่ง และการวิเคราะห์ย้อนกลับในขั้นตอนที่สองแล้ว จึงสรุป
41

ความสัมพันธ์ได้ว่าเป็นแบบหนึ่งต่อกลุ่ม เนื่องจากพิจารณาจากผลลัพธ์ในขั้นตอนที่ 1 และ ขั้นตอนที่


สองแล้ว ทั้งสองฝั่งของเอ็นทิตี ปรากฏชนิดของความสัมพันธ์ต่างกัน จึงตัดตัวเลขซึ่งบอกชนิดของ
ความสัมพันธ์ที่มีค่าน้อ ยกว่าของแต่ละเอ็นทิตี ทิ้งไป จึงสรุปได้ว่า ความสัมพันธ์ของตัวอย่างนี้เป็น
แบบ หนึ่งต่อกลุ่ม
2.3.3 การวิเคราะห์ความสัมพันธ์ในกรณีที่ผลลัพธ์ของการวิเคราะห์ความสัมพันธ์
เป็นชนิดกลุม่ ต่อกลุ่ม

ภาพที่ 2.11  แสดงลักษณะความสัมพันธ์แบบกลุ่มต่อกลุ่ม

จากภาพที่ 2.11 จะเห็นว่ าผลลั พธ์จ ากการวิ เ คราะห์ ความสัม พั นธ์ร ะหว่ างเอ็นทิ ตี
นัก ศึก ษา ซึ่ง สัม พั นธ์โ ดยการลงทะเบียนกั บ เอ็น ทิ ตี วิ ชา นั้น เป็นแบบกลุ่ม ต่ อกลุ่ม ซึ่ ง ได้จ าก
กระบวนการวิเคราะห์ชนิดของความสัมพันธ์ตามขั้นตอน 3 ขั้นตอนที่กล่าวไปแล้วในการวิเคราะห์
ชนิดของความสัมพันธ์แบบ หนึ่งต่อหนึ่งและหนึ่งต่อกลุม่ ในตัวอย่างนี้ก็เช่นเดียวกัน ยังมีวิธีการในการ
วิเคราะห์ชนิดของความสัมพันธ์แบบเดียวกันกับสองกรณีแรก ดังนี้

ขั้นตอนที่หนึ่ง เริ่มวิเคราะห์จากเอ็นทิตี นักศึกษาไปหาเอ็นทิตี วิชา ซึ่งผลการวิเคราะห์


เป็นดังนี้ นักศึกษาแต่ละคนสามารถลงทะเบียนเรียนได้หลายวิชา ซึ่งผลจากการวิเคราะห์ในขั้นตอนนี้
น่ า จะได้ ผ ลลั พ ธ์ ข องชนิ ด ความสั ม พั น ธ์ เ ป็ น แบบหนึ่ ง ต่ อ กลุ่ ม แต่ อ ย่ า งไรก็ ต ามยั ง ไม่ อ าจสรุ ป
ความสัมพันธ์ของสองเอ็นทิตี นี้ได้ จนกว่าจะได้ทําตามขั้นตอนการวิเคราะห์จนครบทั้งสามขั้นตอน
เพื่อผลลัพธ์ของการวิเคราะห์ที่ถูกต้อง

ขั้นตอนที่สอง เริ่มวิเคราะห์จากเอ็นทิตี วิชา กลับไปหาเอ็นทิตี นักศึกษา ซึ่งเป็นการ


วิเคราะห์ย้อนกลับจากขั้นตอนที่หนึ่ง ผลการวิเคราะห์เป็นดังนี้ แต่ละรายวิชาสามารถมีนัก ศึกษา
ลงทะเบียนได้หลายคน ซึ่งจะเห็นว่าจากการวิเ คราะห์ในขั้นตอนที่สองนี้มีผลลัพธ์ที่แตกต่างกันกั บ
ขั้นตอนที่หนึ่ง
42

ขั้นตอนที่สาม สรุปผลการวิเคราะห์ จะเห็นว่าจากตัวอย่างนี้ซึ่งปรากฏผลลัพธ์ในภาพที่


3.11 ซึ่งผ่านการวิเคราะห์ในขั้นตอนที่หนึ่ง และการวิเคราะห์ย้อนกลับในขั้นตอนที่สองแล้ว จึงสรุป
ความสัมพันธ์ได้ว่าเป็นแบบกลุ่มต่อกลุ่ม เนื่องจากพิจารณาจากผลลัพธ์ในขั้นตอนที่ 1 และ ขั้นตอนที่
สองแล้ว ทั้งสองฝั่งของเอ็นทิตี ปรากฏชนิดของความสัมพันธ์ต่างกัน จึงตัดตัวเลขซึ่งบอกชนิดของ
ความสัมพันธ์ที่มีค่าน้อยกว่าทิ้งไป จึงสรุปได้ว่า ความสัมพันธ์ของตัวอย่างนี้เป็นแบบ กลุ่มต่อกลุ่ม

เมื่อสรุปได้แล้วว่าความสัมพันธ์เป็นแบบกลุ่มต่อกลุ่มใน ER-Diagram ซึ่งความสัมพันธ์


แบบนี้ไม่สามารถนําไปสร้างในฐานข้อมูลเชิงสัมพันธ์ได้ จึงจําเป็นต้องมีการแก้ปัญหาให้ความสัมพันธ์
กลายเป็นแบบ หนึ่งต่อหนึ่งหรือหนึ่งต่อกลุ่มเท่านั้น โดยการแก้ปัญหาความสัมพันธ์แบบกลุ่มต่อกลุ่ม
ใน ER-Diagram สามารถทําได้โดย การเปลี่ยนความสัมพันธ์ (Relation) ให้เป็น Composite Entity
จากนั้นให้ใส่ตัวอักษรซึ่งบอกชนิดของความสัมพันธ์ M,N ไว้ที่ทั้งสองแขนของ Composite Entity
ส่วนความสัมพันธ์ฝั่งตรงกันข้ามของทุกๆ แขนของเส้นเชื่อมความสัมพันธ์จะมีชนิดของความสัมพันธ์
เป็นแบบหนึ่ง ดังผลลัพธ์ที่แสดงในภาพที่ 2.12

ภาพที่ 2.12  ลักษณะการใช้ Composite Entity เพื่อแก้ปัญหา


ความสัมพันธ์แบบกลุ่มต่อกลุ่ม
2.4 Cardinality
ในขั้นตอนนี้เป็นการวิเคราะห์ความสัมพันธ์ของข้อมูลระหว่างเอ็นทิตี ถึงความเป็นไปได้
ของการเกิดข้อมูลในเอ็นทิตี ที่เกี่ยวข้องกัน โดยค่าที่วิเคราะห์ได้เรียกว่า Cardinality ซึ่งจะเขียนอยู่
ในรูปแบบของ (ค่าน้อยที่สุด,ค่ามากที่สุด) ที่เป็นไปได้กับการเกิดข้อมูลขึ้นในอนาคตของเอ็นทิตี ที่
เกี่ยวข้องกันซึ่งค่าน้อยที่สุดและค่ามากที่สุดที่จะกําหนดลงไปนั้นสามารถระบุเป็นตัวเลขได้เลย แต่
หากข้อมูลนั้นเกิดขึ้นได้จํานวนมากแต่ไม่อาจระบุค่าที่แน่นอนได้ ก็สามารถระบุเป็นเครื่องหมายดอก
จัน (*) ซึ่งโดยปกติเกิดขึ้นกับค่ามากที่สุดเท่านั้น โดยตําแหน่งที่จะต้องกําหนด Cardinality นั้นจะ
เป็นตําแหน่งเดียวกันกับตัวเลขหรือตัวอักษรที่ใช้บอกความสัมพันธ์
43

2.4.1 วิธีการวิเคราะห์ Cardinality มีลักษณะการวิเคราะห์คล้ายกับการวิเคราะห์


ความสัมพันธ์แต่มีรายละเอียดที่เพิ่มเติมเข้ามาในการวิเคราะห์คือ คําถามในการวิเคราะห์ จะต้องระบุ
ความเป็นไปได้ของข้อมูลว่ามากที่สุด และน้อยที่สุดเป็นเท่าใด ดังตัวอย่างต่อไปนี้

ภาพที่ 2.13  แสดงลักษณะของการระบุ Cardinality


จากภาพที่ 2.13 ซึ่งแสดงตําแหน่งของการระบุ Cardinality จะเห็นได้ว่าจากตัวอย่าง
ดังกล่าวนั้นค่า Cardinality ที่มีค่ามากที่สุด ค่าน้อยที่สุด ของเอ็นทิตี คนไทย และเอ็นทิตี สูติบัตร
เป็น 1 ทั้ ง หมด ซึ่ง การที่ จ ะระบุค่าเหล่านี้ได้นั้นมาจากการวิเคราะห์ข้อมู ล ซึ่ง มี วิธีก ารวิเคราะห์
ดังต่อไปนี้
หากต้องการวิเคราะห์ค่า Cardinality ของเอ็นทิตี คนไทย ซึ่งมีความสัมพันธ์กับการมี
สูตรบัตรนั้น สามารถวิเคราะห์ได้โดยใช้คําถามในการวิเคราะห์ดังนี้ หากหยิบยกคนไทยขึ้นมาจํานวน
หนึ่งคนโดยคนไทยที่ยกขึ้นมาคนนี้เป็นคนที่มีสูติบตั รน้อยทีส่ ุด คนไทยคนนั้นสามารถมีสูติบัตรได้เพียง
หนึ่งใบ ดังนั้นค่าน้อ ยที่สุดของ Cardinality ในเอ็นทิตี คนไทยจึงมี ค่าเท่ากับ 1 จากนั้นเป็นการ
วิเคราะห์ค่ามากที่สุด ก็ใช้คําถามในการวิเคราะห์แบบเดียวกันแต่ถามถึงค่ามากที่สุด ดังนี้ หากหยิบ
ยกคนไทยขึ้นมาหนึ่งคนซึ่งมี สูติบัติม ากที่สุด คนไทยคนนั้นสามารถมีสูติบัติได้เพียงหนึ่งใบเช่นกั น
ดังนั้นค่ามากที่สุดของ Cardinality คนไทย จึงมีค่าเท่ากับ 1 เช่นกัน ส่วนในลําดับถัดมาก็จะต้อง
วิเคราะห์ค่า Cardinality ของฝั่งเอ็นทิตี สูติบัตร โดยวิธีการวิเคราะห์ก็ใช้วิธีเดียวกัน ดังนี้ หากหยิบ
ยกสูติบัตรขึ้นมาหนึ่งใบโดยเลือกสูติบัติใบที่มีคนไทยเป็นเจ้าของมากที่สุดจะมีเจ้าของได้กี่คน โดย
คําตอบก็คือสูติบัตรแต่ละใบก็สามารถมีเจ้าของเพียงคนเดี ยวไม่ว่าจะหยิบสูติบัตรใบใดขึ้นมาก็ตาม
ดังนั้นจึงสามารถสรุปได้ว่าค่า Cardinality ของฝั่งเอ็นทิตี สูติบัตรก็มีค่าน้อยที่สุดเป็น 1 และค่ามาก
ที่สุดก็มีค่าเป็น 1 เช่นเดียวกัน ดังภาพที่ 2.13
ในการวิเ คราะห์ค่า Cardinality นั้น ใช้วิธีก ารวิเคราะห์แบบเดียวกันไม่ว่ าชนิดของ
ความสัม พั นธ์ของ ER-Diagram นั้นจะเป็นแบบ หนึ่ง ต่อหนึ่ง หรือ หนึ่ง ต่อกลุ่ม แต่หากเป็นการ
วิเคราะห์ค่า Cardinality ของ ER-Diagram ซึ่งมี Composite Entity ประกอบอยู่ด้วยก็มีความ
แตกต่างกันบ้าง โดยจะต้องมีการระบุ Cardinality เพิ่มเติมในส่วนของ Composite Entity ด้วย
44

ดังภาพที่ 2.14

ภาพที่ 2.14  ลักษณะของการระบุ Cardinality กรณีมี Composite Entity

จากตัวอย่างในภาพที่ 2.14 จะเห็นว่าหากมี Composite Entity ก็จะต้องมีการระบุ


Cardinality ในส่วนของ Composite Entity ด้วยเช่นกันเนื่องจากเป็นเอ็นทิตี อีกประเภทหนึ่ง โดย
วิธีการวิเคราะห์ Cardinality ในส่วนของ Composite Entity นั้นจะต้องคิดถึงรายละเอียดของข้อมูล
ที่จะจัดเก็บใน Composite Entity นั้นก่อน เช่นในตัวอย่างจากภาพที่ 2.14 Composite Entity
ลงทะเบียนนั้นก็ คงต้อ งนึก ถึง ข้อ มู ล จากใบลงทะเบียน ซึ่ ง มีข้อมู ลหลัก ๆ ซึ่ง ประกอบด้วย ข้อมู ล
นักศึกษาที่ลงทะเบียนในใบลงทะเบียนแต่ละใบ และรายวิชาที่จะปรากฏในใบลงทะเบียนแต่ละใบ
เป็น ข้อ มู ล หลั ก ๆ จากนั้ นจึ ง จะสามารถวิเ คราะห์ Cardinality ได้ โดยหากต้อ งการวิเ คราะห์
Cardinality ของ Composite Entity ลงทะเบียน ไปหานักศึกษา สามารถวิเคราะห์ได้ดังนี้ หากหยิบ
ยกใบลงทะเบียนขึ้นมาหนึ่งใบโดยใบลงทะเบียนใบที่ห ยิบยกมานั้นมีชื่อนักศึกษาอยู่น้อยที่สุดได้กี่
รายชื่อ และคําตอบที่ได้มาคือ ใบลงทะเบียนแต่ละใบนั้นมีชื่อนักศึกษาอยู่อย่างน้อยหนึ่งรายชื่อ และ
มากที่สุดก็หนึ่งรายชื่อเท่านั้น จึงสามารถสรุป Cardinality ในส่วนนี้ได้ว่า ค่าน้อยที่สุดมีค่าเท่ากับ 1
ค่ามากที่สุดก็เช่นกัน โดยสามารถเขียนให้อยู่ในรูปแบบ Cardinality ได้เป็น (1,1) ดังภาพที่ 2.14
จากนั้นหากจะพิจารณา Cardinality จาก Composite Entity ใบลงทะเบียนไปหา
รายวิชา สามารถวิเคราะห์ได้ดังนี้ หากหยิบยกใบลงทะเบียนขึ้นมาหนึ่งใบ ใบลงทะเบียนใบนั้นจะต้อง
ปรากฎรายวิชาอยู่อย่างน้อยที่สุดหนึ่งรายวิชา และมากที่สุดไม่เกิน 7 วิชา เนื่องจากการลงทะเบียน
ของนักศึกษาแต่ละคนนั้นต้องลงรายวิชาอย่างน้อยหนึ่งรายวิชาอยู่แล้ว ส่วนมากที่สุดไม่เกิน 7 วิชา
อาจอธิบายเหตุผลได้ว่า ในภาคเรียนปกตินักศึกษาสามารถลงทะเบียนเรียนได้ไม่เกิน 21 หน่วยกิต ซึ่ง
เท่ากับ 7 วิชา เพราะทุกวิชาเป็นวิชาที่มี 3 หน่วยกิต จึงสามารถสรุปค่า Cardinality ในส่วนนี้ได้ว่า
ค่าน้อยสุดเป็น 1 และค่ามากสุดเป็น 7 โดยสามารถเขียนอยู่ในรูปแบบ (1,7) ดังภาพที่ 2.14

ในลําดับถัดไปเป็นการวิเคราะห์ค่า Cardinality ของเอ็นทิตี นักศึกษา ซึ่งมีความสัมพันธ์


กับ Composite Entity ลงทะเบียน สามารถทําได้โดยการวิเคราะห์ ดังนี้ หากหยิบยกนักศึกษาขึ้นมา
หนึ่งคนโดยพิจารณานักศึกษาคนที่มีใบลงทะเบียนน้อยที่สุด นักศึกษาคนนั้นจะต้องมีใบลงทะเบียน
อย่างน้อย 1 ใบ เหตุเ พราะหากมี ก ารรายงานตัวเข้าเป็นนัก ศึกษาตั้งแต่ชั้นปีที่ 1 ก็ จ ะต้องมี ก าร
ลงทะเบียนเรียนรายวิชาตั้งแต่รายงานตัว และหยิบยกนักศึกษาคนที่มีใบลงทะเบียนมากที่สุดขึ้นมา
45

หนึ่งคน นักศึกษาคนนั้นจะมีใบลงทะเบียนได้มากที่สุด 16 ใบ เพราะนักศึกษาทุกคนเรียนในหลักสูตร


4 ปีการศึกษา และแต่ละปีการศึกษามี 2 ภาคเรียน อีกทั้งนักศึกษาสามารถลงทะเบียนได้มากที่สุดไม่
เกินระยะเวลา 2 เท่าของหลักสูตร ซึ่งเท่ากับ 8 ปีการศึกษา 16 ภาคเรียน จึงสรุปได้ว่า ค่าน้อยที่สุด
เท่ ากั บ 1 และค่ามากที่สุดเท่ากั บ 16 ซึ่ง สามารถเขียนให้ อยู่ในรูป แบบของ Cardinality ได้ดัง นี้
(1,16) ดังภาพที่ 2.14

ส่วนในเอ็นทิตี สุดท้ายของตัวอย่างจากภาพที่ 2.14 เป็นการวิเคราะห์ Cardinality ของ


เอ็นทิตี วิชา ซึ่งมีความสัมพันธ์กับ Composite Entity ลงทะเบียน สามารถวิเคราะห์ได้ดังนี้ หาก
หยิบยกรายวิชาขึ้นมาหนึ่งวิชาโดยพิจารณารายวิชาที่ปรากฎในใบลงทะเบียนน้อยที่สุด อาจจะมีบาง
วิชาที่ไม่เคยปรากฎอยู่ในใบลงทะเบียนใบใดเลย เนื่องจาก อาจจะเป็นวิชา เอกเลือก หรือวิชาที่ไม่เคย
เปิด ให้ล งทะเบี ยน แต่ วิชานั้นก็ ป รากฏอยู่ ใ นหลัก สู ตรเช่น กั น และหากพิจ ารณาวิ ชาที่ อยู่ใ นใบ
ลงทะเบียนมากที่สุด ก็ปรากฏอยู่ในใบลงทะเบียนได้หลายใบ ตามจํานวนนักศึกษาที่ลงทะเบียนใน
รายวิชานั้นๆ จึงสรุปได้ว่า Cardinality ของเอ็นทิตี นี้ มีค่าน้อยสุดเป็น 0 และ ค่ามากสุดเป็น * ซึ่ง
สามารถเขียนให้อยู่ในรูปแบบของ Cardinality ได้ ดังนี้ (0,*) ดังภาพที่ 2.14

2.5 การระบุการเป็นทางเลือกหรือมีความจาเป็น (Optional, Mandatory)


เมื่อสามารถระบุ Cardinality ได้แล้ว ในขั้นตอนถัดไปจะต้องพิจารณาส่วนที่ค่าน้อย
ที่สุดมีค่าเป็นศูนย์ ซึ่งหมายความว่าเอ็นทิตี ที่มีความสัมพันธ์กัน อาจจะมีข้อมูลที่เกี่ยวข้องสัมพันธ์กัน
อยู่หรือไม่ก็ได้ ซึ่งหากพิจารณาค่าน้อยที่สดุ มีค่าเป็นศูนย์แล้ว จะต้องระบุการเป็น Optional ซึ่งข้อมูล
ที่เกี่ยวข้องจะเป็นทางเลือก ซึ่งต้องระบุสัญลักษณ์ ของการเป็น Optional หรือทางเลือก ดังภาพที่
2.15

ภาพที่ 2.15  ลักษณะของการระบุ Optional


จากภาพที่ 2.15 จะเป็นสัญลักษณ์วงกลบเล็กที่ปลายเส้นเชื่อมความสัมพันธ์ซึ่งระบุไว้ติด
กับเอ็นทิตี วิชา ซึ่งเมื่ออ่านความสัมพันธ์ของ ER-Diagram คู่นี้แล้วจะหมายถึง อาจารย์บางคนไม่
จําเป็นต้องรับผิดชอบรายวิชาก็ได้ ซึ่งสัมพันธ์กับ Cardinality ทางเอ็นทิตี อาจารย์จะเห็นว่าค่าน้อย
ที่สุดเป็นศูนย์ จึงระบุสัญลักษณ์ Optional ไว้ในเอ็นทิตี ตรงข้าม และมีความหมายดังที่กล่าวมา
ในทางกลับกัน หากพิจารณาความสัมพันธ์จากเอ็นทิตี วิชา ไปหาอาจารย์ จะเห็นได้ว่า ทุกรายวิชา
46

จะต้อ งมี อ าจารย์ เ ป็ น ผู้รั บ ผิ ด ชอบรายวิ ช าเสมอ เส้น เชื่ อ มความสัม พัน ธ์ ฝั่ง อาจารย์จึ ง เรี ยกว่ า
Mandatory

อาจกล่าวโดยสรุปได้ว่าหากจะพิจารณาว่าเส้นเชื่อมความสัมพันธ์เส้นใดเป็น Optional
หรือไม่นั้นสามารถพิจารณาจากค่า Cardinality ที่วิเคราะห์ได้โดยเมื่อใดก็ตามที่มีค่า Cardinality
ส่วนของค่าน้อ ยที่สุดเป็น 0 สัญ ลัก ษณ์ของเส้นเชื่อมความสัม พันธ์ฝั่งตรงข้ามก็จ ะเป็น Optional
เสมอ

แต่หากมีกรณีของ Composite Entity อยู่ใน ER-Diagram ด้วยนั้น การระบุเส้นเชื่อม


ความสัมพันธ์ที่เป็น Optional มีความแตกต่างกันเล็กน้อยกับกรณีแรก ดังแสดงในภาพที่ 2.16

ภาพที่ 2.16  แสดงลักษณะของการระบุ Optional กรณีมี Composite Entity


จากภาพที่ 2.16 จะเห็นว่า ER-Diagram คู่นี้มี Composite Entity คั่นอยู่ตรงกลาง
เนื่องจากการวิเคราะห์ความสัมพันธ์เป็นแบบกลุ่มต่อกลุ่ม จึงจําเป็นต้องเปลี่ยนรีเลชัน ให้กลายเป็น
Composite Entity อีกทั้งเอ็นทิตี วิชา มีค่าน้อยที่สุดของ Cardinality เป็น 0 ซึ่งปกติเอ็นทิตี ฝั่ง
ตรงกันข้ามจะต้องระบุสัญลักษณ์ Optional แต่ในกรณีนี้ Composite Entity ลงทะเบียนถือว่าเป็น
เอ็นทิตี ตรงกันข้ามเนื่องจาก Composite Entity ก็เป็นเอ็นทิตี ประเภทหนึ่งเช่นกัน จึงจะต้องระบุ
สัญลักษณ์ของ Optional ไว้ดังภาพที่ 2.16

2.6 แอตทริบิวต์
เมื่อสามารถวิเคราะห์ความสัมพันธ์ได้แล้วในขั้นตอนนี้จะกล่าวถึงการระบุข้อมูลเพิ่มเติม
เข้าไปใน ER-Diagram ซึ่งจะเป็นข้อมูลในระดับที่ย่อยกว่า Entity ซึ่งเรียกข้อมูลย่อยๆ นี้ว่า แอตทริ
บิวต์ ซึ่งก็มีความสําคัญไม่น้อยไปกว่าเอ็นทิตี เลย เพราะในขั้นตอนต่อไปในการออกแบบฐานข้อมูล
เชิงสัมพันธ์นั้นเอ็นทิตี เหล่านี้จะมีบทบาทมาก ผู้ออกแบบฐานข้อมูลเชิงสัมพันธ์จึงต้องรู้จัก แอตทริ
บิวต์ ประเภทต่างๆ ทั้งนี้การระบุสัญลักษณ์ของ แอตทริบิวต์ นั้นสามารถทําได้โดยการนําสัญลักษณ์
รูปวงรีซึ่งใช้แทน แอตทริบิวต์ แล้วลากเส้นเชื่อมต่อกับเอ็นทิตี ดังภาพที่ 2.17
47

ภาพที่ 2.17  แสดงการระบุ แอตทริบิวต์ ใน ER-Diagram


โดยหากจะยกตัวอย่าง Attritbute เช่น เอ็นทิตี นักศึกษา ประกอบด้วย แอตทริบิวต์
รหัสนักศึกษา คํานําหน้านาม ชื่อ สกุล สาขาที่เรียน อาจเขียนแทนด้วยสัญลักษณ์ดังภาพที่ 2.18

ภาพที่ 2.18  แสดงตัวอย่างการระบุ แอตทริบิวต์ ใน ER-Diagram


48

2.6.1 ประเภทและสัญลักษณ์ของ แอตทริบิวต์ (Attribute)


แอตทริบิ วต์ ใช้สัญ ลัก ษณ์เ ครื่องหมายวงรีและมี ชื่อของ แอตทริบิวต์ อยู่ด้านใน
สัญลักษณ์วงรี ใช้สําหรับ แอตทริบิวต์ ปกติ ดังภาพที่ 2.19

ภาพที่ 2.19  แสดงสัญลักษณ์ แอตทริบิวต์


Key Attribute ใช้สัญลักษณ์เครื่องหมายวงรีและมีชื่อของ แอตทริบิวต์ อยู่ด้านใน
สัญลักษณ์วงรีและขีดเส้นใต้ชื่อ แอตทริบิวต์ นั้น ใช้สําหรับ แอตทริบิวต์ ที่เป็น Key หรือส่วนใดส่วนห
นี่งของ Key ดังภาพที่ 2.20

ภาพที่ 2.20  แสดงสัญลักษณ์ Key Attribute


Composite Attribute ใช้สัญลักษณ์เครื่องหมายวงรีและมีชื่อของ แอตทริบิวต์ อยู่
ด้านในสัญลักษณ์วงรี แต่ลักษณะพิเศษของ Composite Attribute คือการมี แอตทริบิวต์ ย่อยๆ ต่อ
ออกไปอีก เช่น ที่อยู่ แบ่งออกได้เป็น บ้านเลขที่ ถนน ตําบล อําเภอ จังหวัด รหัสไปรษณีย์ โดย
ลักษณะของ Composite Attribute ดังแสดงในภาพที่ 2.21

ภาพที่ 2.21  แสดงสัญลักษณ์ Composite Attribute


Multi Value Attribute ใช้สัญลักษณ์เครื่องหมายวงรีและมีชื่อของ แอตทริบิวต์ อยู่
ด้านในสัญลักษณ์วงรี แต่ลักษณะพิเศษของ Multi Value Attribute คือเส้นที่ใช้เชื่อมต่อไปยังเอ็นทิตี
จะใช้เส้นคู่ ซึ่ง Multi Value Attribute จะใช้แทน แอตทริบิวต์ ที่อาจมีข้อมูลมากกว่าหนึ่งข้อมูลเช่น
49

ผู้แต่งหนังสือเพราะหนังสือบางเล่มมีผู้แต่งหลายคน โดยสัญลักษณ์ของ Multi Value Attribute ดัง


แสดงในภาพที่ 2.22

ภาพที่ 2.22  แสดงสัญลักษณ์ Multi Value Attribute


Derived Attribute เป็น แอตทริบิวต์ ที่ได้จากการคํานวณ จะใช้สัญลักษณ์วงรีและมื
ชื่อ แอตทริบิวต์ ด้านใน ส่วนเส้นที่เชื่อมต่อกับเอ็นทิตี ใช้เส้นประ Derived Attribute ได้แก่ อายุ ซึ่ง
คํานวณได้จาก วัน เดือน ปี เกิด โดยสัญลักษณ์ของ Derive Attribute ดังแสดงในภาพที่ 2.23

ภาพที่ 2.23  แสดงสัญลักษณ์ Derived Attribute


2.7 กรณีตัวอย่างในการเขียน ER-Diagram
ในการวิเ คราะห์ ER-Diagram ตั้ง แต่ขั้นตอนแรกมาจนถึง ขณะนี้จ ะเห็นได้ว่ามี ก าร
วิเคราะห์และเขียน ER-Diagram ออกมาเป็นคู่ๆ แต่เมื่อวิเคราะห์ ER-Diagram ครบทุกคู่แล้วจะต้อง
นํา ER-Diagram แต่ล ะคู่ที่วิเคราะห์ได้นั้นมารวมกั นเป็นภาพรวมของระบบฐานข้อมู ลเพื่อให้เห็น
ภาพรวมทั้งหมดของระบบฐานข้อมูลที่ออกแบบมาว่าข้อมูลใดมีความสัมพันธ์กันบ้าง โดยจะแสดงด้วย
กรณีตัวอย่างต่อไปนี้
50

2.7.1 เงื่อนไขต่างๆ ของระบบที่นํามาใช้ออกแบบ ER-Diagram


ตัวอย่างต่อ ไปนี้เ ป็นตัวอย่างการออกแบบฐานข้อมู ลให้กับ ลานเทปาล์ม ซึ่ง รับ ซื้อผล
ปาล์มจากเกษตรกร เพื่อไปจําหน่ายต่อให้กับโรงงานผลิตน้ํามันปาล์ม ซึ่งลานเทจะได้ส่วนต่างจาก
ราคาที่รับซื้อจากเกษตรกรและราคาขายให้กับโรงงาน โดยมีรายละเอียดของระบบดังต่อไปนี้
ในแต่ละวันราคาปาล์มที่รับซื้อจากเกษตรกรนั้นอาจะมีการเปลี่ยนแปลงขึ้นอยู่กับราคา
รับซื้อที่โรงงานน้ํามันปาล์ มประกาศราคารับซื้อ ดังนั้นในแต่ละวันผู้จัดการลานปาล์มจะต้องมีการ
กําหนดราคารับซื้อปาล์มในระบบโดยเพื่อให้พนักงานที่รบั ซื้อปาล์มดึงราคาดังกล่าวไปใช้งานในการรับ
ซื้อผลผลิตปาล์มจากเกษตรกร โดยผลผลิตปาล์ม ที่เกษตรกรนํามาขายให้กับลานเทนั้น จะมีอยู่ 2
ประเภทด้วยกันคือ ปาล์มทะลายและเมล็ดปาล์ม ซึ่งโดยปกติแล้ว ราคาเมล็ดปาล์มจะมีราคาสูงกว่า
ปาล์มทะลายเนื่องจากเป็นน้ําหนักของเมล็ดปาล์มที่เอาไปใช้ในการแปรรูปได้ทั้งหมด
ส่วนขั้นตอนการรับ ซื้ อ ปาล์ม จากเกษตรกรนั้นจะมี เ กษตรกร 2 ประเภทใหญ่ๆ คื อ
เกษตรกรที่นํารถบรรทุกปาล์มของตัวเองมาขายให้กับลานเท และ เกษตรกรที่จ้างผู้รับเหมา ซึ่งหาก
เป็นเกษตรกรที่นําผลผลิตปาล์มมาขายด้วยตนเองก็จะได้รับเงินทั้งหมดโดยไม่ต้องแบ่งให้กับใคร แต่
หากเป็นเกษตรกรที่ จ้างผู้รับ เหมาในการตัดปาล์มแล้วเมื่อได้รับเงิน พนัก งานที่ลานเทจะแบ่ง เงิน
ออกเป็นสองส่วน ส่วนแรกเป็นของเกษตรกรเจ้าของสวนปาล์ม ส่วนที่สองจะแบ่งให้กับผู้รับเหมาซึ่ง
จะคิดค่ารับเหมาตัดปาล์มเป็นกิโลกรัม เช่น กิโลกรัมละ 0.5 บาท โดยจะแบ่งเงินกันตอนสิ้นวันซึ่งลาน
ปาล์มจะเป็นผูค้ ิดเงินและแบ่งให้กับเกษตรกรเจ้าของสวนและผู้รับเหมา โดยเงินส่วนที่เป็นค่ารับเหมา
จะไม่ผ่านมือเกษตรกรเจ้าของสวนปาล์ม
การรับ ซื้อ ปาล์ม นั้นอาจจะมี รถบรรทุ กหลายคัน หรือผู้รับ เหมาหลายคนในบางสวน
เพราะมีผลผลิตมาก อีกทั้งผลผลิตปาล์มที่เก็บเกี่ยวในแต่ละรอบอาจจะบรรทุกรถเพียงคันเดียวได้ไม่
หมด ดังนั้นในรอบวันซึ่งมีการเก็บเกี่ยวผลผลิตปาล์มนั้นผู้รบั เหมา หรือเจ้าของสวน จะบรรทุกผลผลิต
ปาล์มไปชั่งน้ําหนักที่ลานปาล์มโดยคิดเป็นรอบ เมื่อรถบรรทุกผลผลิตปาล์มถึงลานปาล์มแล้วจะมีการ
ชั่งน้ําหนักรถบรรทุกพร้อมกับน้ําหนักผลผลิตปาล์มในครั้งแรกและบันทึกน้ําหนักรวมทั้งหมดไว้ใน
ระบบ จากนั้นรถบรรทุกจะไปนําผลผลิตปาล์มทะลายลงจากรถแล้วกลับมาชั่ งรถใหม่จะได้น้ําหนัก
ของผลผลิตปาล์มทะลายในรถเที่ยวนั้น หากในรถบรรทุกมีเมล็ดปาล์มอยู่ด้วยจะต้องนําเมล็ดปาล์มไป
ลงไว้ที่ลานเทและกลับมาชั่งน้ําหนักอีกรอบเพือ่ ให้ได้น้ําหนักของเมล็ดปาล์มแล้วเจ้าหน้าที่จะบันทึกไว้
ในระบบต่อไป รถบรรทุกจะทําแบบนี้ไปเรื่อยๆ จนกระทั่งสิ้นวัน
เมื่อสิ้นวันในส่วนของเกษตรกรเจ้าของสวนจะมารับเงินที่ลานเท ซึ่งเจ้าหน้าที่ลานเทจะ
ออกใบสรุปให้เกษตรกรเจ้าของสวนทราบว่าทั้งวันมีรถเข้ามาชั่งน้ําหนักจํานวนกี่เที่ยว แต่ละเที่ยว
51

ผลผลิตน้ําหนักเท่าใด และสรุปเป็นยอดเงิน หรือเงินโอนเงินบัญชีในกรณีที่เป็นเงินจํานวนมาก ซึ่ง


เกษตรกรเจ้าของสวนสามารถแจ้งเลขที่บัญชีธนาคารให้กับลานเทได้หลายบัญชีแล้วแต่เกษตรกร
สะดวกรับเงินที่ธนาคารใด หากเป็นการเก็บเกี่ยวปาล์มโดยใช้ผู้รับเหมาลานเทจะออกใบสรุปให้กับ
เกษตรกรเจ้าของสวนพร้อมยอดเงิน และออกรายละเอียดดังกล่าวให้ผู้รับเหมาะและคิดเป็นค่ ารับ
เหมาะเพื่อจ่ายเงินให้กับผู้รับเหมาด้วยเช่นกัน
ในส่วนของลานเทนั้นเมื่อสิ้นวันก็จะนําปาล์มที่รับซื้อไปขายให้กับโรงงานและนํายอดเงิน
ที่ขายได้มาบันทึกลงระบบ เพื่อใช้ในการคิดกําไรต่อไป
จากรายละเอียดข้างต้นสามารถนํามาวิเคราะห์ ER-Diagram ได้ ดังต่อไปนี้
1. วิเ คราะห์ว่าจากข้อมูลที่ ได้มานั้นมีอะไรเป็น เอ็นทิตี บ้าง ซึ่ง จากข้อมูล ข้างต้นเมื่ อ
วิเคราะห์แล้วจะได้เอ็นทิตี ดังต่อไปนี้ ผู้รับเหมา รถบรรทุก ลูกค้า พนักงาน ราคารับซื้อ และ
โรงงาน
2. เมื่อ วิเคราะห์แล้วว่า เอ็นทิตี จะมีอะไรบ้าง จากนั้นจะต้องพิจารณาความสัม พันธ์
ระหว่างเอ็ น ทิ ตี ว่า มี เ อ็ นทิ ตี ใดบ้างที่ มี ความสัม พันธ์ กั นตามข้อมู ล ที่ ได้ม าพร้อมทั้ ง วิเ คราะห์
ความสัมพันธ์ของแต่ละเอ็นทิตี ที่นํามาจับคู่กัน และกําหนด แอตทริบิวต์ ให้กับแต่ละเอ็นทิตี ซึ่งจาก
ตัวอย่างนี้จะได้ความสัมพันธ์ระหว่างเอ็นทิตี และ แอตทริบิวต์ ดังนี้
2.1 ความสัมพันธ์ระหว่างเอ็นทิตี ผู้รับเหมา กับการมีรถบรรทุก

ภาพที่ 2.24  ER-Diagram แสดงความสัมพันธ์ระหว่างผู้รับเหมากับการมีรถบรรทุก

จากภาพที่ 2.24 จะเห็นได้ว่าเอ็นทิตี ผู้รับเหมา มีความสัมพันธ์กับเอ็นทิตี รถบรรทุก


โดยผู้รับเหมาแต่ละคนนั้นจําเป็นต้องมีรถบรรทุก จึงถือได้ว่าทั้งสองเอ็นทิตี นี้มีความสัมพันธ์กัน เมื่อ
จับคู่เอ็นทิตี ผู้รับเหมากับการมีรถบรรทุกได้แล้ว ในขั้นตอนถัดไปจะต้องวิเคราะห์ความสัมพันธ์ว่าเป็น
ชนิดใด
การวิเคราะห์ความสัมพันธ์ระหว่างผู้รับเหมากับการมีรถบรรทุกสามารถวิเคราะห์ได้
ดังต่อไปนี้ ผู้รับเหมาหนึ่ง รายสามารถมีรถบรรทุก ได้หลายคัน (One-to-Many) ในขั้นตอนนี้จะได้
52

ความสํา พันธ์แบบหนึ่ง ต่ อ กลุ่ม แต่ ยัง ไม่ ส ามารถสรุป ความสัม พัน ธ์ได้จ ะต้องมี ก ารวิเ คราะห์จ าก
รถบรรทุกกลับไปหาผู้รับเหมาด้วย ดังนี้ รถบรรทุกแต่ละคันจะเป็นของผู้รับเหมาคนใดคนหนึ่งเท่านั้น
(One-to-One) จึงสรุปความสัมพันธ์ของผู้รับเหมากับการมีรถบรรทุกได้ว่าเป็นแบบหนึ่งต่อกลุ่ม ดัง
ภาพที่ 2.24
ส่วนการวิเคราะห์ Cardinality จากเอ็นทิตี ผู้รับเหมาไปหารถบรรทุก วิเคราะห์ได้
ดังนี้ ผู้รับเหมาแต่ละรายจะต้องมีรถบรรทุกอย่างน้อยหนึ่งคันและผู้รับเหมาแต่ละคนจะมีรถบรรทุกกี่
คันก็ได้ ดังนั้นค่า Cardinality ของผู้รับเหมาจึงได้ผลลัพธ์เป็น (1,*) จากนั้นจะต้องวิเคราะห์ค่า
Cardinality จากฝั่งรถบรรทุกไปหาผู้รับเหมาซึ่งผลการวิเคราะห์เป็นดังนี้ รถบรรทุกแต่ละคันจะต้อง
เป็นของผู้รับเหมารายใดรายหนึ่งเท่านั้น ดังนั้นค่า Cardinality ของเอ็นทิตี รถบรรทุกไปหาผู้รับเหมา
จึงได้ผลลัพธ์เป็น (1,1) จากการวิเคราะห์ Cardinality ของเอ็นทิตี คู่นี้ไม่มีค่า Min ของฝั่งใดมีค่าเป็น
ศูนย์เลย ดัง นั้นเส้นเชื่อมความสัม พันธ์ทั้ง สองเส้นจึงเป็น Mandatory กล่าวคือผู้รับ เหมาจะไม่ มี
รถบรรทุกไม่ได้ เช่นเดียวกัน รถบรรทุกจะไม่มีเจ้าของเป็นผู้รับเหมาไม่ได้เช่นกัน
2.2 ความสัมพันธ์ระหว่างเอ็นทิตี พนักงาน กับการชั่งน้ําหนักรถบรรทุก

ภาพที่ 2.25  ER-Diagram แสดงความสัมพันธ์ระหว่างพนักงานกับการชัง่ รถบรรทุก


53

จากภาพที่ 2.25 แสดงให้เห็นว่าเอ็นทิตี พนักงาน มีความสัมพันธ์กับ เอ็นทิตี รถบรรทุก


ด้วยการชั่งน้ําหนัก กล่าวคือรถบรรทุกปาล์มจะถูกชั่งน้ําหนักของรถในแต่ละเที่ยวโดยพนักงานของ
ลานปาล์ม
ส่วนการวิเคราะห์ความสัมพันธ์สามารถทําได้ดังนี้ พนักงานแต่ละคนสามารถชั่งน้ําหนัก
รถบรรทุกได้หลายคัน (One-to-Many) และรถบรรทุกแต่ละคันก็สามารถถูกชั่งน้ําหนักโดยพนักงาน
หลายคนได้เช่นเดียวกัน (One-to-Many) เนื่องจากในแต่ละเที่ยวที่รถบรรทุกปาล์มเข้ามาก็อาจจะใช้
พนัก งานคนละคนชั่ง น้ําหนัก จึง สรุป ความสัมพันธ์ระหว่างเอ็นทิ ตี พนักงาน กั บ การชั่ง น้ําหนัก
รถบรรทุก ได้เ ป็นแบบ กลุ่ม ต่อกลุ่ม ดังนั้นความสัม พันธ์คือการชั่งจะต้องเปลี่ยนเป็น Composite
Entity และกําหนดความสัมพันธ์ใหม่เพื่อแก้ไขความสัมพันธ์แบบกลุม่ ต่อกลุ่มให้อยู่ในรูปแบบ หนึ่งต่อ
กลุ่ม
จากนั้นการวิเคราะห์ Cardinality จะเกิดขึ้นกับ 3 เอ็นทิตี กล่าวคือ จะต้องวิเคราะห์
Cardinality ของพนักงานไปหาการชั่งน้ําหนัก และ การชั่งน้ําหนักไปหารถบรรทุก เนื่องจากการชั่งได้
กลายมาเป็นเอ็นทิตี ที่เรียกว่า Composite Entity ซึ่งผลของการวิเคราะห์ได้ผลลัพธ์ดังนี้
หากพิจารณา Cardinality จากเอ็นทิตี พนักงานไปยังการชั่ง อาจมีพนักงานบางคนไม่
เคยชั่งน้ําหนักเลยสักครั้งเนื่องจากพนักงานคนนั้นอาจจะมีหน้าที่อย่างอื่นที่ไม่เกี่ยวกับการชั่งน้ําหนัก
รถบรรทุกปาล์ม แต่หากกล่าวถึงพนักงานคนที่เคยชั่งน้ําหนักรถบรรทุกปาล์มมากที่สุดก็สามารถชั่งกี่
ครั้งก็ได้จึงสามารถกําหนด Cardinality ให้กับพนักงานไปหาการชั่งได้เป็น (0,*) และเมื่อมีค่า Min
เป็น 0 เอ็นทิตี ตรงข้ามก็คือการชั่งก็จะเป็น Optional กล่าวคือมีพนักงานบางคนไม่เคยชั่งน้ําหนัก
รถบรรทุกปาล์มเลย
หากจะพิจารณา Cardinality ของ Composite Entity การชั่งไปหาพนักงาน จะได้ผล
การวิเคราะห์ดังนี้ ในการชั่งน้ําหนักรถบรรทุกแต่ละครั้งจะต้องชั่งโดยพนักงานเพียง 1 คน เท่านั้น จึง
สามารถกําหนดผลลัพธ์ของ Cardinality การชั่งไปหาพนักงานได้เป็น (1,1) และเป็น Mandatory
เนื่องจากการชั่งน้ําหนักรถบรรทุกปาล์มแต่ละครั้งจําเป็นต้องใช้พนักงานชั่งเสมอ
เมื่อพิจารณา Composite Entity การชั่งน้ําหนัก ไปหาเอ็นทิตี รถบรรทุกแล้ว สามารถ
วิเคราะห์ Cardinality ได้ดังนี้ ในการชั่งน้ําหนักแต่ละครั้งจะเป็นการชั่งของรถบรรทุกคันใดคันหนึ่ง
เท่านั้น ดังนั้นสามารถกําหนด Cardinality ของ Composite Entity การชั่งไปหารถบรรทุกได้เป็น
(1,1) และเป็น Mandatory กล่าวคือการชั่งน้ําหนักแต่ละครั้งจะต้องชั่งรถบรรทุกหนึ่งคันเสมอ
เอ็นทิตี สุดท้ายในกรณีนี้คือ รถบรรทุก ซึ่งจะต้องวิเคราะห์ Cardinality ไปหาการชั่ง
น้ําหนั ก ได้ผ ลการวิเ คราะห์ ดั ง นี้ มี ร ถบรรทุ ก บางคัน ที่ ไม่ เ คยถูก ชั่ง น้ําหนัก เลย ซึ่ง อาจจะเป็ น
รถบรรทุกที่เข้ามาลงทะเบียนกับลานปาล์มไว้แต่ยังไม่ได้รับจ้างเลยแม้แต่ครั้งเดียว ส่วนหากกล่าวถึง
54

รถบรรทุกที่เคยชั่งน้ําหนักมากที่สุดก็สามารถชั่งได้หลายครั้ง จึงได้ Cardinality ส่วนนี้เป็น (0,*) ซึ่ง


เป็น Optional กล่าวคือ รถบรรทุกบางคันอาจไม่เคยมีรายการชั่งน้ําหนักเลยก็ได้
2.3 ความสัมพันธ์ระหว่างเอ็นทิตี ลูกค้า กับการจ้างผู้รับเหมา

ภาพที่ 2.26  ER-Diagram แสดงความสัมพันธ์ระหว่างลูกค้ากับการจ้างผู้รับเหมา


จากภาพที่ 2.26 ซึ่งแสดงให้เห็นถึงความสัมพันธ์ระหว่างลูกค้ากับการจ้างผู้รับเหมาโดย
ลูกค้าที่เป็นเกษตรกรแต่ละรายจะทําการจ้างผู้รับเหมาในการเก็บเกี่ยวผลผลิตปาล์มและบรรทุกมา
ขายยังลานปาล์ม ซึ่งผู้รับเหมาจะได้รับค่าจ้างจากน้ําหนักของปาล์มที่สามารถเกี่ยวเก็บได้ ทั้งสอง
เอ็นทิตี นีจ้ ึงมีความสัมพันธ์กัน
ส่วนการวิเ คราะห์ความสัมพันธ์ร ะหว่างเอ็นทิตี ลูก ค้ากับการจ้างผู้รับเหมาสามารถ
วิเคราะห์ได้ดังนี้ ลูกค้าแต่ละรายสามารถจ้างผู้รบั เหมาได้หลายราย (One-to-Many) เนื่องจากในการ
จ้างผู้รับเหมาแต่ละครั้งอาจจะไม่ใช่ผู้รับเหมารายเดียวกัน ส่วนผู้รับเหมาแต่ละรายก็รับจ้างจากลูกค้า
ได้ ห ลายรายเช่ น เดี ย วกั น (One-to-Many) ดั ง นั้ น เมื่ อ สรุ ป ความสั ม พั น ธ์ แ ล้ ว จะพบว่ า เป็ น
ความสัม พันธ์แบบกลุ่มต่อ กลุ่ม การจ้างซึ่ง เดิม เป็นความสัม พันธ์จึง ต้องเปลี่ยนเป็น Composite
55

Entity และกําหนดความสัมพันธ์ใหม่ตามกฎของการใช้ Composite Entity ตามภาพที่ 2.26 ดังนั้น


หลังจากวิเคราะห์ความสัมพันธ์เรียบร้อยแล้วจะได้ เอ็นทิตี ประกอบด้วย ลูกค้า ผู้รับเหมา และ การ
จ้าง ซึ่งเป็น Composite Entity
เมื่อต้องการวิเคราะห์ Cardinality ของเอ็นทิตี ลูกค้า ผู้รับเหมา และการจ้าง สามารถ
ทําได้ดังนี้ หากวิเคราะห์ Cardinality ลูกค้าไปหา การจ้าง สามารถทําได้ดังนี้ ลูกค้าบางรายไม่มีการ
จ้างผู้รับ เหมาเนื่ อ งจากลู ก ค้าบางรายเก็ บ เกี่ ยวผลผลิตปาล์ ม ด้วยตนเอง ส่ว นลูก ค้าที่ มี ก ารจ้า ง
ผู้รับเหมาสามารถจ้างกี่ครั้งก็ได้ ในส่วนนี้จึงสามารถกําหนด Cardinality ได้เป็น (0,*) และเนื่องจาก
ค่า Min ของลูกค้าไปยังการจ้างมีค่าเป็นศูนย์ ดังนั้นการจ้างจึงเป็น Optional ซึ่งหมายถึงลูกค้าจะ
จ้างเก็บเกี่ยวผลผลิตปาล์มหรือไม่ก็ตาม จึงได้กําหนดสัญลักษณ์ Optional ไว้ดังภาพที่ 2.26
หากวิเคราะห์ Cardinality จากการจ้างไปหาลูกค้าซึ่งเป็นเกษตรกร สามารถทําได้ดังนี้
การรับจ้างแต่ละครั้งจะมีนายจ้างซึ่งเป็นลูกค้าเพียงรายเดียวเท่านั้น จึงสามารถกําหนด Cardinality
การจ้างไปหาลูกค้าเป็น (1,1) ซึ่งหมายถึง การจ้างแต่ล ะครั้งจะต้องมีลูก ค้าซึ่ง เป็นเกษตรกรเป็น
นายจ้างเสมอ หรือลูกค้าเป็น Mandatory ของการจ้างนั่นเอง
เมื่อวิเคราะห์ Cardinality ของ Composite Entity การจ้าง ไปหาผู้รับเหมาบ้าง พบว่า
การจ้างแต่ละครั้งจะต้องมีผู้รบั เหมาอย่างน้อยหนึ่งราย และอาจมีผู้รับเหมาหลายรายในการจ้างแต่ละ
ครั้งก็ ได้ (1,*) เนื่อ งจากลูก ค้าซึ่ง เป็นเกษตรกรบางรายมี สวนปาล์มจํานวนมาก จึง ไม่ สามารถใช้
ผู้รับเหมาเพียงรายเดียวในแต่ละครั้งได้ เพราะการเก็บเกี่ยวผลผลิตต้องทําให้เสร็จทันเวลา หากไม่
เสร็จผลผลิตปาล์มจะสุกมากเกินไปจนร่วงหล่นออกมาจากทะลายปาล์มและเกิดความเสียหายกับ
เกษตรกรได้ ผู้รับเหมาจึงเป็น Mandatory ของการจ้าง
ในส่วนของเอ็นทิตี ผู้รับเหมาไปหาการจ้าง หากต้องการวิเคราะห์ Cardinality สามารถ
ทําได้ดังนี้ ผู้รับเหมาบางรายอาจไม่เคยได้รับการจ้างเลย เนื่องจากอาจจะเป็นผู้รับเหมารายใหม่ที่เพิ่ง
มาสมัครกับทางลานปาล์มไว้และยังไม่ได้รบั การจ้างเลย แต่หากกล่าวถึงผู้รับเหมาทีม่ ีการจ้างมากที่สุด
ก็จะสามารถรับจ้างกี่ ครั้งก็ได้ (0,*) และเมื่อค่า Min มีค่าเป็นศูนย์การจ้างจึงเป็น Optional ของ
ผู้รับเหมา โดยอธิบายได้ว่าผู้รับเหมาบางรายอาจจะไม่ได้รับการจ้างเลยก็ได้
56

2.4 ความสัมพันธ์ระหว่างเอ็นทิตี พนักงานกับการจ่ายเงินให้กับลูกค้า

ภาพที่ 2.27  ER-Diagram แสดงความสัมพันธ์ระหว่างพนักงานกับการจ่ายเงินกับลูกค้า

จากภาพที่ 2.27 ซึ่งแสดงให้เ ห็นความสัมพันธ์ระหว่างพนักงานกับ การจ่ายเงินให้กั บ


ลูกค้าซึ่งเป็นเกษตรกร เมื่อเก็บเกี่ยวผลผลิตเสร็จในแต่ละวันลูกค้าซึ่งเป็นเกษตรกรจะมารับเงินจาก
ลานปาล์ม จึงทําให้มีการกําหนดความสัมพันธ์ระหว่างเอ็นทิตี พนักงาน และลูกค้าซึ่งเป็นเกษตรกร
เมื่อวิเคราะห์ความสัมพันธ์ระหว่างพนักงานกับการจ่ายเงินให้ลูกค้า สามารถวิเคราะห์ได้
ดังนี้ พนักงานแต่ละคนสามารถจ่ายเงินให้กับลูกค้าได้หลายคน (One-to-Many) และลูกค้าแต่ละคน
ก็สามารถรับเงินจากพนักงานได้หลายคน เช่นกัน (One-to-Many) เมื่อสรุปความสัมพันธ์ระหว่าง
เอ็นทิตี พนักงาน กับการจ่ายเงินให้ลูกค้าแล้วจึงสรุปความสัมพันธ์ได้เ ป็น (Many-to-Many) จึง
จําเป็นต้องเปลี่ยนรีเ ลชัน จ่าย ให้เป็น Composite Entity แล้วกํ าหนดความสัม พันธ์ใหม่ ตาม
ความสัมพันธ์เมื่อมีการใช้งาน Composite Entity ดังภาพที่ 2.27
ในส่วนของการวิเคราะห์ Cardinality ให้กับเอ็นทิตี พนักงานซึ่งมีความสัมพันธ์กับลูกค้า
ด้วยการจ่ายเงิ นนั้นเนื่อ งจากรายการจ่ายเงิน เป็น Composite Entity จึง จะต้องวิ เ คราะห์
Cardinality ดังนี้ ส่วนแรกอาจกล่าวถึงการวิเคราะห์ Cardinality ระหว่างเอ็นทิตี พนักงานไปยัง
57

เอ็นทิ ตี การจ่ายเงิน ดังนี้ พนักงานบางคนอาจไม่เ คยจ่ายเงินให้ลูกค้าเลยเนื่องจากพนักงานบาง


ตําแหน่งก็ไม่ได้มีหน้าที่ในการจ่ายเงินให้กับลูกค้า แต่หากเป็นพนักงานที่จ่ายเงินแล้วจะจ่ายกี่ครั้งก็ได้
(0,*) เมื่อวิเคราะห์เสร็จแล้วมีค่า Min เป็นศูนย์ดังนั้น Composite Entity จ่ายจึงเป็น Optional ของ
พนักงานโดยทํ าเครื่องหมาย Optional ดังภาพที่ 2.27 ในฝั่งกลับ กันหากพิจารณา Cardinality
ให้กับ Composite Entity จ่ายไปยังพนักงานจะได้ผลการวิเคราะห์ดังนี้ ในการจ่ายเงินแต่ ละครั้ง
จําเป็นต้อ งมี พ นักงานเป็นคนจ่ายเพียงคนเดียวเท่ านั้น จึงได้ค่า Cardinality เป็น (1,1) ดัง นั้น
พนักงานจึงเป็น Mandatory ของรายการจ่ายเงิน
อี ก สองเอ็ น ทิ ตี ที่ เ กี่ ย วข้ อ งกั น คื อ ลู ก ค้ า กั บ รายการจ่ า ยเงิ น โดยหากพิ จ ารณา
Cardinality ฝั่งลูกค้าก่อนจะพิจารณาได้ว่า ลูกค้าแต่ละคนจะมีรายการรับเงินแล้วอย่างน้อยหนึ่งครั้ง
ส่วนลูกค้าจะมีการรับชําระเงินจากพนักงานมากกี่ครั้งก็ได้ (1,*) ส่วนในฝั่งของ จ่ายเงินไปหาลูกค้า
วิเ คราะห์ได้ว่า การจ่ายเงินแต่ละครั้ง จะต้องจ่ายให้ลูก ค้าอย่างน้อยหนึ่งคนและมากที่สุดหนึ่ง คน
เท่านั้นต่อรายการจ่ายเงินหนึ่งครั้ง (1,1)
2.5 ความสัมพันธ์ระหว่างเอ็นทิตี พนักงานกับการบันทึกราคารับซื้อปาล์ม

ภาพที่ 2.28  ER-Diagram แสดงความสัมพันธ์ระหว่างพนักงานกับการบันทึกราคารับซื้อ

จากภาพที่ 2.28 ซึ่งแสดงให้เห็นความสัมพันธ์ระหว่างพนักงานกับการบันทึกราคารับ


ซื้อปาล์มแต่ละชนิด ซึ่งราคารับซื้อผลผลิตปาล์มนั้นอาจเปลี่ยนแปลงได้ในแต่ละวัน จึงจําเป็นต้องมี
การบันทึกราคารับซื้อปาล์มไว้ล่วงหน้าเมื่อราคารับซื้อของโรงงานเปลี่ยนแปลงไป จึงทําให้ เอ็นทิตี
ราคารับซื้อ และ เอ็นทิตี พนักงานมีความสัมพันธ์กันด้วยการบันทึกราคา
หากจะพิจารณาความสัมพันธ์ระหว่างเอ็นทิตี พนักงาน กับการบันทึก ราคารับซื้อ
ปาล์ม ในแต่ละวันหรือเมื่อมีการเปลีย่ นแปลงราคารับซื้อผลผลิตปาล์มแต่ละชนิด สามารถวิเคราะห์ได้
ดังนี้ พนักงานแต่ละคนสามารถบันทึก ราคารับ ซื้อผลผลิตปาล์ม แต่ล ะชนิดได้หลายครั้ง (One-to-
58

Many) และราคารับซื้อ แต่ละครั้ง จะถูก บันทึก ด้วยพนักงานเพียงหนึ่ง คนเท่านั้น (One-to-One)


ดังนั้นจึงสรุปได้ว่าความสัมพันธ์ระหว่างพนักงานกับการบันทึกราคารับซื้อปาล์มเป็นแบบหนึ่งต่อกลุ่ม
ในส่วนของ Cardinality ระหว่างเอ็นทิตี พนักงานกับการบันทึกราคารับซื้อนั้นหาก
เริ่มพิจารณาจากเอ็นทิตี พนักงานไปหาราคารับซื้ออาจวิเคราะห์ได้ว่า พนักงานบางคนอาจไม่เคย
บันทึกราคารับซื้อเลยเพราะอาจจะเป็นพนักงานในตําแหน่งที่ไม่เกี่ยวข้องกับการบันทึกราคารับซื้อ แต่
หากกล่าวถึงพนักงานที่บันทึกราคารับซื้อมากที่สุดเขาจะบันทึกกี่ครั้งก็ได้ (0,*) เมื่อวิเคราะห์แล้วค่า
Min มีค่าเป็นศูนย์เอ็นทิตี ราคารับซื้อจึงเป็น Optional ของพนักงาน ซึ่งอธิบายได้ว่า พนักงานบาง
คนไม่เคยบันทึกราคารับซื้อเลย
หากพิจารณา Cardinality จากเอ็นทิตี ราคารับซื้อไปยังพนักงานอาจวิเคราะห์ได้ว่า
ราคารับ ซื้อแต่ล ะรายการนั้นจะต้อ งถูก บันทึ ก ด้วยพนักงานคนใดคนหนึ่ง ดัง นั้นพนัก งานจึง เป็น
Mandatory ของการบันทึกราคารับซื้อหมายถึงการบันทึกราคารับซื้อต้องทําโดยพนักงานเสมอ
2.6 ความสัมพันธ์ระหว่างเอ็นทิตี พนักงานกับการรับเงินจากโรงงานปาล์ม

ภาพที่ 2.29  ER-Diagram แสดงความสัมพันธ์ระหว่างพนักงานกับการรับเงินจากโรงงาน

จากภาพที่ 2.29 ซึ่งแสดงให้เห็นความสัมพันธ์ระหว่างเอ็นทิตี พนักงาน กับเอ็นทิ ตี


โรงงาน เนื่องจากลานปาล์มสามารถนําผลผลิตปาล์มไปขายให้กับโรงงานใดก็ได้ขึ้นอยู่กับการตัดสินใจ
ของเจ้าของลานปาล์ม และเมือ่ นําผลผลิตปาล์มที่รับซื้อมาไปขายยังโรงงานน้ํามันปาล์มแล้วก็จะมีการ
รับเงินและบันทึกการรับเงินดังกล่าวเข้าสู่ฐานข้อมูลเพือ่ ใช้ในการคิดกําไร ขาดทุน ต่อไป ดังนั้นเอ็นทิตี
พนักงาน จึงมีความสัมพันธ์กับเอ็นทิตี โรงงาน ด้วยการรับเงิน
เมื่อพิจารณาประเภทของความสัมพันธ์ระหว่างเอ็นทิตี พนักงาน กับการ รับเงินจาก
โรงงานเมื่อมี การจําหน่ายผลผลิตปาล์ม ที่รับซื้อปาล์มจากเกษตรกรมา สามารถวิเ คราะห์ได้ดัง นี้
พนักงานแต่ละคนสามารถรับเงินจากโรงงานน้ํามันปาล์มได้หลายครั้ง (One-to-Many) และในทาง
กลับกัน โรงงานน้ํามันปาล์มก็สามารถจ่ายเงินให้กับพนักงานได้หลายคนเช่นกัน เนื่องจากในการขาย
59

ปาล์มแต่ละครั้งพนักงานที่รับเงินอาจจะไม่ใช่คนเดิม (One-to-Many) เมื่อสรุปความสัมพันธ์จะพบว่า


ความสัมพันธ์ของทั้งสองเอ็นทิตี นี้เป็นแบบกลุ่มต่อกลุ่ม จึงจําเป็นต้องเปลี่ยนการรับเงินซึ่งเดิมเป็น
ความสัมพันธ์ให้กลายเป็น Composite Entity และกําหนดความสัมพันธ์ใหม่จากการเปลี่ยนรีเลชัน
ให้เป็น Composite Entity ตามภาพที่ 2.29
เมื่อพิจารณา Cardinality ของเอ็นทิตี พนักงานไปหา Composite Entity รับเงิน อา
จะวิเ คราะห์ได้ว่า พนัก งานบางคนไม่ เ คยมี ร ายการรับ เงินจากโรงงานเลย เนื่องจากอาจจะเป็น
พนัก งานที่ ไม่มี ห น้าที่ รับ เงินจากโรงงาน แต่ห ากกล่าวถึง พนัก งานที่ มี ห น้าที่ รับ เงินจากโรงงานก็
สามารถรับเงินกี่ครั้งก็ได้ (0,*) ซึ่งผลลัพธ์ในที่นี้มีค่า Min เป็นศูนย์ เอ็นทิตี รับเงินจึงเป็น Optional
ของพนักงานกล่าวคือพนักงานจะมีรายการรับเงินหรือไม่ก็ได้ กลับกันหากพิจารณา Cardinality จาก
ฝั่งรับเงินกลับไปหาพนักงานอาจวิเคราะห์ได้ว่า ในการรับเงินแต่ละครั้งจําเป็นต้องมีพนักงานบันทึก
การรับเงินแต่ละรายการเพียงคนเดียว (1,1) ซึ่งแสดงให้เห็นว่าพนักงานเป็น Mandatory ของการรับ
เงิน อธิบายได้ว่าในการรับเงินแต่ละครั้งไม่มีพนักงานรับเงินไม่ได้
หากพิจารณาจากเอ็นทิตี โรงงานไปหา Composite Entity รับเงิน อธิบายได้ว่า โรงงาน
แต่ระโรงจ่ายเงินให้ทางลานปาล์มแล้วอย่างน้อย 1 ครั้ง ส่วนโรงงานที่จ่ายเงินให้ทางลานปาล์มมาก
ที่สุดจะจ่ายมากกี่ครั้งก็ได้ (1,*) แสดงว่าการรับเงินเป็น Mandatory ของลานปาล์ม โดยโรงงานปาล์ม
จะมีข้อมูลอยู่ในฐานข้อมูลนี้ได้จะต้องเป็นโรงงานปาล์มที่เคยจ่ายเงินให้กับลานเทแห่งนี้แล้วเท่านั้น
ส่วนหากต้อ งการวิเคราะห์ Cardinality จากเอ็นทิตี การรับเงินไปหา โรงงานปาล์ม
สามารถวิเ คราะห์ ได้ดัง นี้ การรับ เงิ นแต่ล ะครั้ง จะต้องรับ จากโรงงานใดโรงงานหนึ่ ง เท่ า นั้น ซึ่ ง
หมายความว่าโรงงานเป็น Mandatory ของการรับเงิน
จากการวิเคราะห์ ER-Diagram ที่กล่าวมาแล้วข้างต้นเมื่อนําผลการวิเคราะห์มารวมกัน
จะได้เป็น ER-Diagram ที่สมบูรณ์ดังภาพที่ 2.30
60

ภาพที่ 2.30  ER-Diagram ของลานเทปาล์ม

จากภาพที่ 2.30 ซึ่งแสดงให้เห็น ER-Diagram ที่สมบูรณ์วิเคราะห์ไปก่อนหน้าและมีการ


กําหนด แอตทริบิวต์ เพื่อให้ ER-Diagram สมบูรณ์จึงขออธิบาย แอตทริบิวต์ ของแต่ละเอ็นทิตี ดังนี้

ตารางที่ 2.1  Attribute ของเอ็นทิตี พนักงาน


แอตทริบิวต์ คําอธิบาย
รหัสพนักงาน คีย์หลัก
คํานําหน้านาม
ชื่อ-สกุล
User name
Password
ตําแหน่งงาน
61

ตารางที่ 2.2  Attribute ของเอ็นทิตี ราคารับซื้อ


แอตทริบิวต์ คําอธิบาย
ลําดับรายการ คีย์หลัก
วันที่
เวลา
ราคารับซื้อ

ตารางที่ 2.3  แอตทริบิวต์ ของเอ็นทิตี โรงงาน


แอตทริบิวต์ คําอธิบาย
รหัสโรงงาน คีย์หลัก
ชื่อโรงงาน
ที่อยู่ Composite Key ซึ่งมี แอตทริบิวต์ ย่อยๆ ดังนี้
เลขที่ ถนน ตําบล อําเภอ จังหวัด และ รหัสไปรษณีย์
เบอร์โทรศัพท์
เบอร์แฟกซ์

ตารางที่ 2.4  แอตทริบิวต์ ของเอ็นทิตี ลูกค้า


แอตทริบิวต์ คําอธิบาย
รหัสลูกค้า คีย์หลัก
คํานําหน้า
ชื่อ-สกุล
ที่อยู่ Composite Key ซึ่งมี แอตทริบิวต์ ย่อยๆ ดังนี้
บ้านเลขที่ ถนน ตําบล อําเภอ จังหวัด และรหัสไปรษณีย์
โทรศัพท์
บัญชีธนาคาร Composite Key ซึ่งมี แอตทริบิวต์ ย่อยๆ ดังนี้
เลขที่บัญชี ชื่อบัญชี
อีกทั้ง แอตทริบิวต์ นี้ยังเป็น Multi Value Attribute ซึ่งอาจจะ
ปรากฏค่าใน แอตทริบิวต์ นี้มากกว่าหนึ่งค่าได้อีกด้วย
62

ตารางที่ 2.5  แอตทริบิวต์ ของเอ็นทิตี ผู้รับเหมา


แอตทริบิวต์ คําอธิบาย
รหัสผู้รับเหมา คีย์หลัก
ชื่อผู้รับเหมา
หมายเลขโทรศัพท์

ตารางที่ 2.6  แอตทริบิวต์ ของเอ็นทิตี รถบรรทุก


แอตทริบิวต์ คําอธิบาย
ทะเบียนรถ คีย์หลัก
สีรถ
ประเภทรถ

ตารางที่ 2.7  แอตทริบิวต์ ของ Composite Entity รับเงิน


แอตทริบิวต์ คําอธิบาย
เลขที่ใบสําคัญ คีย์หลัก
วันที่
รายการสินค้า
ราคาขาย/หน่วย
ยอดเงินรวม Derived Attribute ซึ่งค่าใน แอตทริบิวต์ นี้จะได้มาจากการ
คํานวณ

ตารางที่ 2.8  แอตทริบิวต์ ของ Composite Entity จ่าย


แอตทริบิวต์ คําอธิบาย
เลขที่ใบสําคัญ คีย์หลัก
รายการสินค้า
ราคารับซื้อ/หน่วย
ยอดเงินรวม Derived Attribute ซึ่งค่าใน แอตทริบิวต์ นี้ได้มาจากการคํานวณ
63

ตารางที่ 2.9  แอตทริบิวต์ ของ Composite Entity จ้าง


แอตทริบิวต์ คําอธิบาย
เลขที่ใบสําคัญ คีย์หลัก
น้ําหนักปาล์มรวม
อัตราค่าจ้าง
ยอดเงิน Derived Attribute ซึ่ง ค่าใน แอตทริบิวต์ นี้จะได้ม าจากการ
คํานวณ

ตารางที่ 2.10  แอตทริบิวต์ ของ Composite Entity ชั่ง


แอตทริบิวต์ คําอธิบาย
ลําดับการชั่ง คีย์หลัก
วันที่ เวลา
น้ําหนักรวมรถ
น้ําหนักเมล็ดปาล์ม
น้ําหนักปาล์มทะลาย

สรุปท้ายบท
การออกแบบฐานข้อมูลด้วย ER-Diagram เป็นการออกแบบฐานข้อมูลเชิงสัมพันธ์ในขั้นตอน
แรกซึ่งจะเป็นให้อยู่ในรูปของแผนภาพโดยแผนภาพที่ใช้ในการออกแบบความสัมพันธ์ใน ER-Diagram
นั้นมีมาจากหลายค่ายหากนําของค่ายใดมาใช้ก็ต้องยึดให้เป็นรูปแบบเดียวกัน โดยขั้นตอนแรกในการ
ออกแบบความสัมพันธ์ด้วย ER-Diagram นั้นเริ่มต้นด้วยการวิเคราะห์ เอ็นทิตี จากนั้นเป็นการจับคู่
ความสัมพันธ์ของเอ็นทิตี แล้วจึงทําการวิเคราะห์ความสัมพันธ์ โดยความสัมพันธ์ที่ วิเคราะห์ได้นั้นจะ
ประกอบด้วยความสัม พั นธ์แบบหนึ่ง ต่อหนึ่ง หนึ่ง ต่อกลุ่ม และกลุ่ม ต่อกลุ่ม โดยความสัม พันธ์ที่
สามารถนํ าไปสร้า งในฐานข้ อ มู ล เชิ ง สั ม พั นธ์ ไ ด้ นั้น มี เ พีย งความสัม พั น ธ์แ บบหนึ่ ง ต่อ หนึ่ ง และ
ความสัมพันธ์แบบหนึ่งต่อกลุ่มเท่านั้น หากวิเคราะห์แล้วว่าความสัมพันธ์เป็นแบบกลุ่มต่อกลุ่มจะต้อง
แก้ปัญหาโดยอาจจะใช้ Composite Entity หรืออาจจะวิเคราะห์แล้วแยกเอ็นทิตี เพิ่มเติม เมื่อได้
ความสัมพันธ์แล้ว ER-Diagram ก็จําเป็นต้องใส่ แอตทริบิวต์ ให้กับแต่ละเอ็นทิตี ซึ่ง แอตทริบิวต์ ก็มี
หลายประเภทจําเป็นต้องวิเคราะห์และใส่สัญลัก ษณ์ของ แอตทริบิวต์ ต่างๆ ให้ถูกต้องและมีความ
เหมาะสม จึงจําได้ ER-Diagram ที่มีความสมบูรณ์และพร้อมที่จะไปออกแบบฐานข้อมูลในขั้นตอน
ต่อไป
64

คาถามทบทวนท้ายบทที่ 2
1. จงระบุสัญลักษณ์ที่ใช้ในการเขียน ER-Diagram ในรูปแบบของมาตรฐานใดมาตรฐานหนึ่งให้ครบ
ทุกสัญลักษณ์
2. จงอธิบายความแตกต่างระหว่างเอ็นทิตี กับ Weak Entity
3. จงยกตัวอย่าง ER-Diagram ที่มีความสัมพันธ์แบบหนึ่งต่อหนึ่ง หนึ่งต่อกลุ่ม และกลุ่มต่อกลุ่ม และ
อธิบายความสัมพันธ์ดังกล่าวพร้อมเหตุผลของความสัมพันธ์นั้น
4. จากคําตอบในข้อ 3 ให้แก้ปัญหาความสัมพันธ์แบบกลุม่ ต่อกลุม่ ให้เป็นรูปแบบที่สามารถนําไปสร้าง
ในฐานข้อมูลเชิงสัมพันธ์ได้
5. จากคําตอบในข้อ 3 และ ข้อ 4 ซึ่งคําตอบจะได้ ER-Diagram ที่อธิบายความสัมพันธ์ไว้แล้วให้เพิ่ม
Cardinality และอธิบายให้เข้าใจ
6. จงวิเคราะห์ความเป็น Optional หรือ Mandatory จาก ER-Diagram ในข้อก่อนหน้านี้เพิ่มเติม
7. จงใส่ แอตทริบิวต์ ให้ ER-Diagram ให้สมบูรณ์
65

เอกสารอ้างอิงบทที่ 2

แซ่เฮง, ก. (2557). ER-Diagram. Retrieved สิงหาคม 26, 2560, from


http://www.ugetproject.com/wp/ms-office-access-er-diagram.html

Peter Rob, C. C. (2000). Database Systems Design and Management. America:


Thomson Learning.
66

แผนบริหารการสอนประจาบทที่ 3
หัวข้อเนื้อหา
บทที่ 3 การแปลง ER-Diagram ให้อยู่ในรูปรีเลชัน
3.1 ชนิดของคีย์ที่ใช้ในการออกแบบฐานข้อมูล
3.2 วิธีการแปลง ER-Diagram ให้อยู่ในรูปของรีเลชัน
3.3 กฎต่างๆ ในการแปลง ER-Diagram ให้อยู่ในรูปของรีเลชัน

วัตถุประสงค์เชิงพฤติกรรม
วัตถุประสงค์ในบทที่ 3 นี้ เมื่อผู้เรียนได้ศึกษาเกี่ยวกับเนื้อหาในการแปลง ER-Diagram ให้
อยู่ในรูปของรีเลชัน แล้ว ผู้เรียนจะมีพฤติกรรมที่พึงประสงค์ ดังนี้
1. อธิบายลักษณะของคีย์ชนิดต่างๆ ได้
2. วิเคราะห์คีย์ชนิดต่างๆ ได้อย่างถูกต้องเหมาะสม
3. สามารถทําการแปลง ER-Diagram ให้อยู่ในรูปของรีเลชัน ได้อย่างถูกต้อง เหมาะสม
4. สามารถอธิบายกฎในการแปลง ER-Diagram ให้อยู่ในรูปรีเลชัน ได้อย่างถูกต้องและ
นําไปใช้งานได้อย่างถูกต้อง เหมาะสม

วิธีสอนและกิจกรรมการเรียนการสอนประจาบท
1. วิธีการสอน
1.1 บรรยายเนื้อหา
1.2 สาธิตตัวอย่างในการแปลง ER-Diagram ให้อยู่ในรูปรีเลชัน

2. กิจกรรมการเรียนการสอน
2.1 ผู้ส อนบรรยายเนื้อ หาเกี่ ยวกั บ คีย์ป ระเภทต่างๆ ที่ ใช้ในการออกแบบฐานข้อมู ล
รวมถึงวิธีการวิเคราะห์คีย์เหล่านั้น โดยขณะที่บรรยายเนื้อหาให้ผู้เรียนมีส่วนร่วมใน
กิจกรรมการเรียนการสอนโดยการให้ตอบคําถาม หรือมีส่วนร่วมในการยกตัวอย่าง
2.2 ผู้สอนแนะนํากฎที่ใช้ในการแปลง ER-Diagram ให้อยู่ในรูปของรีเลชัน แก่ผู้เรียน
2.3 ผู้สอนสาธิตวิธีการแปลง ER-Diagram ให้อยู่ในรูปของรีเลชัน ด้วยวิธีลําดับความคิด
ให้แก่ผู้เรียนเป็นขั้นตอนไปจนเสร็จกระบวนการ
67

2.4 ผู้สอนกําหนดโจทย์ให้ผู้เรียนทําการแปลง ER-Diagram ให้อยู่ในรูปของรีเลชัน ใน


คาบเรียนและให้ส่ง โดยการอธิบายให้ผู้ส อนฟังและผู้สอนอาจจะซัก ถามประเด็น
วิธีการในการจัดทําหรือประเด็นอื่นเพิ่มเติมเพื่อทวนสอบความเข้าใจของผู้เรียน

สื่อการเรียนการสอน
สื่อการเรียนการสอนในบทนี้ประกอบด้วย
1. เอกสารประกอบการสอนรายวิชาระบบฐานข้อมูล
2. กระดานเพื่อใช้ในการอธิบายและลําดับความคิดนักศึกษาในเรื่องที่ผสู้ อนบรรยาย
3. แบบฝึกหัดท้ายบทที่ 3

การวัดผลและประเมินผล
การวัดผลและการประเมินผล ประกอบด้วยการวัดผลและการประเมินผล ดังนี้
1. สังเกตความสนใจในกิจกรรมการเรียนการสอนของผูเ้ รียน
2. สังเกตพฤติกรรมการมีส่วนร่วมในชั้นเรียน เช่น การซักถาม การตอบคําถาม ตลอดจนการ
อภิปรายร่วมกัน
3. วัดและประเมินผลเป็นรายบุคคลจากการส่งแบบฝึกหัดท้ายบทที่ 3 ด้วยการนําเสนอเป็น
รายบุคคลกับผู้สอน
68
69

บทที่ 3 การแปลง ER-Diagram ให้อยูใ่ นรูปรีเลชัน


เมื่อผู้ออกแบบฐานข้อมูลได้ทําการออกแบบความสัมพันธ์ของเอ็นทืตี้ต่างๆ เรียบร้อย
แล้ว ขั้นตอนต่อจากนั้นคือการแปลงภาพของ ER-Diagram ให้อยู่ในรูปของรีเลชัน เพื่อจะได้นําไปทํา
กระบวนการถัดไป โดยการแปลง ER-Diagram ให้อยู่ในรูปของรีเลชันนั้นจําเป็นต้องอาศัยกฎต่างๆ
ในการแปลงซึ่งจะได้กล่าวรายละเอียดในบทนี้ และเมื่อผู้ออกแบบฐานข้อมูลได้ศึกษากฎทั้งหมดแล้ว
เมื่อนําไปใช้งานจริงจะต้องนํากฎทั้งหมดที่ได้เรียนรู้มาประยุกต์ใช้เพื่อให้ได้ผลลัพธ์ซึ่งเป็นรีเลชันต่างๆ
อย่างถูกต้องและเหมาะสมต่อไป

ก่อนที่ทําความเข้าใจในการแปลง ER-Diagram ให้อยู่ในรีเลชัน หรือการทํา Mapping


ER-Diagram หรือ Converting ER-Diagram จะต้องทําความเข้าใจเรื่องคีย์ชนิดต่างๆ ที่มีในขั้นตอน
การออกแบบฐานข้อมูล เนื่องจากกระบวนการของการ Mapping ER-Diagram นั้น จําเป็นจะต้อง
พิจารณาเรื่องคีย์ต่างๆ
3.1 ชนิดของคีย์ที่ใช้ในการออกแบบฐานข้อมูล
คีย์ (Keys) หมายถึง คอลัมน์ หรือ ฟิลด์ หรือ แอททริบิวต์ จํานวน 1 คอลัมน์ หรือ
หลายๆ คอลัม น์ม าประกอบกั น อีก ทั้ ง มี ค่าไม่ ซ้ํากั นในแต่ ล ะแถวซึ่ง คุณสมบัติ นี้เ รียกว่าการเป็ น
เอกลักษณ์ (unique) โดยสามารถใช้คอลัมน์นั้นในการระบุคอลัมน์อื่นๆ ในแถว เรคคอร์ด หรือ ทู
เพิ่ล ได้
ซุเปอร์คีย์ (Super Keys) หมายถึง คอลัมน์หรือกลุ่มของคอลัมน์ ที่สามารถจําแนก
ความแตกต่างของแต่ละแถวได้ โดยหากมีคอลัมน์หรือกลุ่มของคอลัมน์ใด ที่ไม่มีโอกาสมีค่าซ้ํากันเลย
ในแต่ละแถวก็สามารถจัดได้ว่าคอลัมน์นั้นหรือกลุ่มของคอลัมน์นั้นเป็น Super Key เช่น

ภาพที่ 3.1  ตารางข้อมูลพนักงาน


ที่มา : http://na5cent.blogspot.com/2011/12/keys-database.html
70

เมื่อพิจารณาแล้วจะเห็นได้ว่าในตารางพนักงาน สามารถใช้ Super Key ได้ดังต่อไปนี้


1. รหัสพนักงาน 9. รหัสพนักงาน ร่วมกับ นามสกุล และ รหัส
2. รหัสพนักงาน ร่วมกับ ชื่อ แผนก
3. รหัสพนักงาน ร่วมกับ นามสกุล 10. รหัสพนักงาน ร่วมกับ นามสกุล และ
4. รหัสพนักงาน ร่วมกับ รหัสแผนก ตําแหน่ง
5. รหัสพนักงาน ร่วมกับ ตําแหน่ง 11. รหัสพนักงาน ร่วมกับ รหัสแผนก และ
6. รหัสพนักงาน ร่วมกับ ชื่อ และ นามสกุล ตําแหน่ง
7. รหัสพนักงาน ร่วมกับ ชื่อ และ รหัสแผนก 12. ชื่อ ร่วมกับ นามสกุล ร่วมกับ รหัสแผนก
8. รหัสพนักงาน ร่วมกับ ชื่อ และ ตําแหน่ง และ ตําแหน่ง
คีย์ร่วม (Composite Key) หมายถึง คีย์ที่ประกอบกัน หรือการมีมากกว่า 1 คีย์ เช่น
รหัสพนักงาน ร่วมกับ ชื่อ รหัสพนักงาน ร่วมกับ นามสกุล รหัสพนักงาน ร่วมกับ ชื่อ และ นามสกุล
ชื่อ ร่วมกับ นามสกุล ร่วมกับ รหัสแผนก และ ตําแหน่ง แต่ในกลางกลับกัน รหัสพนักงานเพียงอย่าง
เดียว ไม่ใช่ Composite Key เนือ่ งจากเป็นเพียงคีย์เดียว
คีย์คู่แข่ง (Candidate Keys) หมายถึง Super Key ที่มีเ พียงคอลัมน์เดียว หรือ
Super Key ที่มีหลายคอลัมน์ แต่ไม่มีบางส่วนของ Key เป็น Unique Subset1 จากตารางพนักงาน
ภาพที่ 3.1 หากพิจารณา Candidate Key ทั้งหมดจะได้ผลลัพธ์ดังต่อไปนี้
1. รหัสพนักงาน เป็น Candidate Keys เพราะเป็น Super Key ที่มีคอลัมน์เดียว
2. ชื่อ ร่วมกับ นามสกุล ร่วมกับ รหัสแผนก และ ตําแหน่ง เป็น Candidate Key ด้วย
เงื่อนไขไม่มบี างส่วนเป็น Unique Subset ดังภาพที่ 3.2

ภาพที่ 3.2  ตารางข้อมูลพนักงานและ Candidate Key


ที่มา : http://na5cent.blogspot.com/2011/12/keys-database.html

1
Unique Subset คือ การมีค่าไม่ซ้ํากันในแต่ละแถว
71

ส่วน Super Key อื่ นๆ นั้นไม่เ ข้าเงื่อนไขที่ จ ะเป็น Candidate Key คือมี Unique
Subset เกิดขึ้น เช่น รหัสพนักงาน ร่วมกับ ชื่อพนักงาน นั้นจะมี Unique Subset เกิดขึ้น ดังภาพที่
3.3

ภาพที่ 3.3  ตารางข้อมูลพนักงานและ Unique Subset


ที่มา : http://na5cent.blogspot.com/2011/12/keys-database.html
จากภาพที่ 3.3 จะเห็นได้ว่า รหัสพนักงาน ร่วมกับ ชื่อพนักงาน จัดเป็น Composite
Key กล่าวคือเป็น Key ประกอบ และหนึ่งใน Key ประกอบมีความเป็น Unique Subset เกิดขึ้นทํา
ให้ไม่เป็น Candidate Key
คีย์หลัก (Primary Key) หมายถึง Key ที่ถูกเลือกมาจาก Candidate Key โดยมี
หลักเกณฑ์ดังต่อไปนี้
1. ต้องไม่มีค่าซ้ํากันในแต่ละแถว
2. ต้องไม่มีค่าเป็นค่าว่าง (Null)
3. ค่าที่เลือกเป็น Primary Key แล้ว จะถูกเปลี่ยนแปลงค่าในภายหลังไม่ได้
และเมื่อพิจารณา Candidate Key ที่มีอยู่ จะได้ผลการพิจารณาดังตารางที่ 3.1

ตารางที่ 3.1  ตารางเปรียบเทียบคุณสมบัติเพื่อเลือกเป็น Primary Key


รหัสพนักงาน ชื่อ+สกุล+รหัสแผนก+ตาแหน่ง
หากนําทั้ง 4 คอลัมน์มารวมกันจึงเป็นเอกลักษณ์
1 เป็นเอกลักษณ์ (Unique) อยู่แล้ว
(Unique)
ไม่มีค่าว่างเพราะพนักงานทุกคนต้องมี ไม่มีค่าเป็นค่าว่างเพราะต้องกรอกข้อมูลทัง้ หมดทั้งชื่อ
2
รหัสพนักงาน นามสกุล รหัสแผนก และ ตําแหน่ง
อาจมีการเปลี่ยนแปลงข้อมูลได้ เช่น อาจมีพนักงานบาง
3 ไม่มีการเปลี่ยนแปลง มีเปลี่ยนชื่อ หรือนามสกุล หรือมีการย้ายแผนก ใน
อนาคต
72

จากการพิจารณาซึ่งมีข้อมูลประกอบในตารางที่ 3.1 จะเห็นได้ว่าควรเลือก รหัสพนักงาน


เป็น Primary Key ของตารางข้อมู ลพนัก งาน การเป็น Primary Key จะใช้ก ารขีดเส้นใต้เป็น
สัญลักษณ์ของการเป็น Primary Key
คีย์สารอง (Alternate Keys) หมายถึง คีย์ที่ไม่ได้ถูกเลือกให้เป็น Primary Key หาก
พิจารณาจากตัวอย่างที่กล่าวมาแล้วข้างต้นนั่นก็คือ ชื่อ ร่วมกับ นามสกุล ร่วมกับ รหัสแผนก และ
ตําแหน่ง
คีย์นอก (Foreign Keys) หมายถึง คีย์ที่อ้างไปยัง Primary Key ของอีกตารางหนึ่ง
เช่นในตารางพนักงาน มีรหัสแผนกเป็น Foreign Key เพราะได้อ้างไปยัง Primary Key ของอีกตาราง
หนึ่ง ดังภาพ

ภาพที่ 3.4  การเชื่อมความสัมพันธ์ระหว่างตารางด้วย Foreign Key


ที่มา : http://na5cent.blogspot.com/2011/12/keys-database.html

จากภาพที่ 3.4 จะเห็นได้ว่ารหัสแผนกในตารางข้อมูลพนักงานเป็น Foreign Key ไปยัง


รหัสแผนกซึ่งเป็น Primary Key ของตารางข้อมูลแผนก
73

3.2 วิธีการแปลง ER-Diagram ให้อยู่ในรูปของรีเลชัน


หลังจากทําการออกแบบฐานข้อมูลเชิงสัมพันธ์ด้วย ER-Diagram เสร็จแล้วขั้นตอนต่อไป
จะต้องมีการแปลง ER-Diagram ที่ได้ออกแบบไว้ให้กลายเป็นรีเลชัน เพื่อที่จะนําไปจัดการในขั้นตอน
ต่อไป โดยขั้นตอนในการแปลง ER-Diagram ให้กลายเป็นรีเลชัน นั้น เรียกว่าการทํา Mapping หรือ
Converting ซึ่งจะมีกฎต่างๆ ที่ใช้ในการทํา Mapping ต่างๆ ดังจะได้กล่าวถึงต่อไปในบทนี้ โดยสิ่งที่
จะต้องคํานึงถึงโดยรวมในการทํา Mapping นั้น มีดังต่อไปนี้
- เอ็นทิตี ที่เกี่ยวข้องทั้งหมดใน ER-Diagram
- รูปแบบของความสัมพันธ์ระหว่างเอ็นทิตี ที่จะนํามาทําการ Mapping
- แอตทริบิวต์ ของเอ็นทิตี
- Key ต่างๆ ใน ER-Diagram
เมื่อพิจารณาสิ่งที่ต้องคํานึงถึงพร้อมแล้ว ในขั้นตอนต่อไปจะต้องพิจารณากฎต่างๆ ใน
การ Mapping โดยจะต้องพิจารณาเป็นกรณี และหลังจากทําการ Mapping แล้วจะได้ผลลัพธ์ซึ่งอยู่
ในรูปของรีเลชัน ซึ่งมีลักษณะดังนี้

จากตัวอย่างข้างต้นจะเห็นได้ว่าการเขียนรีเลชัน นั้น จะประกอบด้วย ชื่อของรีเลชัน


ตามด้วยเครื่องหมายวงเล็บเปิด หลังจากนั้นจะเป็น แอตทริบิวต์ ต่างๆ ที่ประกอบอยู่ในรีเลชัน นั้น
โดยหาก แอตทริบิวต์ ใด เป็น Primary Key หรือส่วนใดส่วนหนึ่งของ Primary Key จะต้องขีดเส้นใต้
ที่ แอตทริบิวต์ นั้น ดังตัวอย่างต่อไปนี้

จากตัวอย่างจะเห็นว่ารีเลชัน นี้ชื่อรีเลชัน A ซึ่งมี แอตทริบิวต์ ต่างๆ ประกอบด้วย แอ


ตทริบิวต์ A1, A2, A3 และ A4 โดยมี แอตทริบิวต์ A1 เป็น Primary Key ของรีเลชัน
3.2.1 กฎต่างๆ ในการ Mapping
การ Mapping กรณี Simple Attribute
หากต้องการ Mapping ในกรณี Simple Attribute นั้นเป็นกรณีพื้นฐานที่สุด โดย
สามารถนําชื่อของเอ็นทิตี นั้นๆ มาเป็นชื่อของรีเลชัน ได้เลย ส่วน แอตทริบิวต์ ต่างๆ ก็นํามาเป็น แอ
74

ตทริบิวต์ ของรีเลชัน นั้นๆ ได้เลยเช่นเดียวกัน หากมี แอตทริบิวต์ ใดที่เป็นคีย์เมื่อทําการ Mapping


แล้วก็จะเป็นคีย์ของรีเลชัน เช่นกัน ดังตัวอย่างต่อไปนี้

ภาพที่ 3.5  สัญลักษณ์ Simple Attribute

จากภาพที่ 3.5 ซึ่งแสดงเอ็นทิตี ของนักศึกษา ซึ่งประกอบด้วย แอตทริบิวต์ รหัสนักศึกษา


ซึ่งเป็นคีย์หลัก (Primary key) คํานําหน้านาม ชื่อ สกุล และวันเกิด หากจะทําการ Mapping
Entity นี้ให้อยู่ในรูปของรีเลชัน จะได้รีเลชัน ดังต่อไปนี้

นักศึกษา (รหัสนักศึกษา, คํานําหน้านาม, ชื่อ, สกุล, วันเกิด)

การ Mapping กรณีที่ชนิดของความสัมพันธ์เป็นแบบหนึง่ ต่อหนึ่ง (1 to 1)


ในกรณีที่ชนิดของความสัมพันธ์เป็นแบบหนึ่งต่อหนึ่งนั้น การ Mapping จะต้องพิจารณา
ถึงเอ็นทิตี ที่มีความสัมพันธ์กันด้วย โดยขึ้นอยู่กับชนิดของความสัมพันธ์ หากความสัมพันธ์เป็นชนิด
หนึ่งต่อหนึ่ง เมื่อทําการ Mapping ER-Diagram สามารถทําได้โดยนํา คีย์หลัก ของเอ็นทิตี ใดเอ็นทิตี
หนึ่งไปใส่เป็น Foreign Key ของเอ็นทิตี ที่มีความสัมพันธ์ด้วย ดังตัวอย่างต่อไปนี้

ภาพที่ 3.6  ER-Diagram ที่มีความสัมพันธ์แบบหนึง่ ต่อหนึ่ง

จากภาพที่ 3.6 จะเห็นว่าชนิดความสัมพันธ์ระหว่างเอ็นทิตี คนไทย กับ เอ็นทิตี สูติบัตร


ด้วยความสัมพันธ์ได้รับนั้นเป็นแบบหนึ่งต่อหนึ่ง หากจะ Mapping ER-Diagram คู่นี้ให้เป็นรีเลชัน
แล้ว สามารถทําได้โดยนํา แอตทริบิวต์ ที่เป็น คีย์หลัก ของฝั่งเอ็นทิตี คนไทย ไปเป็น Foreign Key
75

ของเอ็นทิตี สูติบัติ หรืออีกกรณีหนึ่งอาจจะนํา คีย์หลัก ของเอ็นทิตี สูติบัตร ไปเป็น Foreign Key


ของเอ็นทิตี คนไทยก็ได้ซึ่งจะได้ผลลัพท์ ดังต่อไปนี้

กรณีที่ 1
คนไทย (เลขประจาตัวประชาชน, คํานําหน้านาม, ชื่อ, สกุล, เพศ, วันเกิด)
สูติบัตร (หมายเลขสูติบัติ, ผู้ออกสูติบัตร, วันที่, เลขประจําตัวประชาชน)

กรณีที่ 2
คนไทย (เลขประจาตัวประชาชน, คํานําหน้านาม, ชื่อ, สกุล, เพศ, วันเกิด,
หมายเลขสูตบิ ัติ)
สูติบัตร (หมายเลขสูติบัติ, ผู้ออกสูติบัตร, วันที่)

ทั้งนี้จะเลือกทําเพียงกรณีเดียวเท่านั้น โดยจากตัวอย่างข้างต้นผลของการ Mapping จะ


เป็นไปได้ตามกรณีที่ 1 และ 2 แต่ผู้ Mapping จะต้องเลือกผลลัพธ์เพียงกรณีเดียว

การ Mapping กรณีที่ชนิดของความสัมพันธ์เป็นแบบหนึง่ ต่อหนึ่ง (1 to 1) และ


เอ็นทิตี หนึ่งมี Composite Key
กรณีที่ความสัมพันธ์เป็นแบบหนึ่งต่อหนึ่ง แต่มี เอ็นทิตี ฝั่งหนึ่งใช้คีย์แบบ Composite
Key หากต้องการ Mapping ER-Diagram ในกรณีนี้ ให้นํา คีย์หลัก มาใส่เป็น Foreign Key ของอีก
เอ็นทิตี ที่สัมพันธ์กัน ดังตัวอย่างต่อไปนี้

ภาพที่ 3.7  ER-Diagram ที่มีความสัมพันธ์แบบหนึง่ ต่อหนึ่งและมีคีย์ของเอ็นทิตี หนึ่งเป็น


Composite Key

จากภาพที่ 3.7 ซึ่งแสดง ER-Diagram ระหว่างเอ็นทิตี A กับเอ็นทิตี B ซึ่งเอ็นทิตี A


ประกอบด้วย แอตทริบิวต์ A1, A2, A3 และ A4 ซึ่งมี แอตทริบิวต์ A1 เป็น คีย์หลัก และเอ็นทิตี B
ประกอบด้วย แอตทริบิวต์ B1, B2, B3 โดยมี B1 และ B2 ร่วมกันเป็น Composite Key หาก
76

ต้องการ Mapping ER-Diagram คู่นี้ จะต้องนํา แอตทริบิวต์ A1 จากเอ็นทิตี A ไปเป็น Foreign Key
ให้กับ แอตทริบิวต์ B ซึ่งจะได้รีเลชัน ผลลัพธ์ ดังนี้

A (A1, A2, A3, A4)


B (B1, B2, B3, A1)

การ Mapping กรณีที่ชนิดของความสัมพันธ์เป็นแบบหนึง่ ต่อกลุ่ม (1 to M)


การ Mapping ความสัมพันธ์แบบนี้สามารถทําได้โดยให้นํา แอตทริบิวต์ ซึ่งเป็น คีย์หลัก
ของเอ็นทิตี ที่มี ความสัม พั นธ์ด้านที่ เป็นหนึ่ง ไปใส่เ ป็น Foreign Key ให้กับ เอ็นทิ ตี ด้านที่ มี
ความสัมพันธ์เป็นกลุ่ม ดังตัวอย่างต่อไปนี้

ภาพที่ 3.8  ER-Diagram ที่มีความสัมพันธ์แบบหนึง่ ต่อกลุ่ม


จากภาพที่ 3.8 ซึ่งแสดง ER-Diagram ที่มีความสัมพันธ์ระหว่าง เจ้าของรถยนต์กับการมี
รถยนต์ ซึ่งชนิดของความสัมพันธ์ที่วิเคราะห์แล้วระบุว่าเป็นความสัมพันธ์แบบหนึ่งต่อกลุ่ม ดังนั้นหาก
พิจาณาตามกฎการ Mapping แล้ว จะก็จะต้องนํา แอตทริบิวต์ เลขประจําตัวประชาชน ของเอ็นทิตี
เจ้าของรถยนต์ ไปใส่เป็น Foreing Key ให้กับเอ็นทิตี รถยนต์ ตามกฎ จึงได้ รีเลชัน ผลลัพธ์ในการ
Mapping ดังต่อไปนี้

เจ้าของรถยนต์ (เลขประจาตัวประชาชน, คํานําหน้านาม, ชื่อ, สกุล, เพศ, วันเกิด)


รถยนต์ (หมายเลขทะเบียน, หมายเลขคัทซี, สี, ยี่หอ้ , ประเภทรถ,
เลขประจําตัวประชาชน)

การ Mapping กรณีที่ชนิดของความสัมพันธ์เป็นแบบกลุม่ ต่อกลุ่ม (M to M)


ในการทํา Mapping กรณีที่ความสัมพันธ์ของ ER-Diagram เป็นแบบ กลุ่มต่อกลุ่มนั้น
จะต้องพิจารณาถึง Composite Entity ด้วย ซึ่งก็ถือว่าเป็นอีกหนึ่งเอ็นทิตี โดยการ Mapping กรณีนี้
77

นั้นเมื่อทําการ Mapping ให้ยึด Composite Entity เป็นหลัก จากนั้นให้นําเอา คีย์หลัก ของทุกๆ


แขนที่ Composite Entity ไปมีความสัมพันธ์ด้วย มาร่วมกันเป็น คีย์หลัก (Composite Key) ของ
Composite Entity นั้น ดังตัวอย่างต่อไปนี้

ภาพที่ 3.9  ER-Diagram ที่มีความสัมพันธ์แบบกลุ่มต่อกลุ่ม

จาก ER-Diagram ในภาพที่ 3.9 ซึ่ ง แสดงความสั ม พั น ธ์ ร ะหว่ า งนั ก ศึ ก ษากั บ การ
ลงทะเบียนรายวิ ชานั้ นเป็น ชนิด ความสั ม พั นธ์ แบบกลุ่ ม ต่ อกลุ่ ม และเกิ ด Composite Entity
ลงทะเบียน ดังนั้นเมื่อต้องการ Mapping ER-Diagram นี้ให้เป็นรีเลชัน จะต้องนํา คีย์หลัก ของเอ็นทิ
ตี นักศึกษา ซึ่งก็คือ รหัสนักศึกษา และอีกด้านหนึ่งคือ คีย์หลัก ของเอ็นทิตี วิชา ซึ่งก็คือ รหัสวิชา
มาร่วมกันเป็น คีย์หลัก ของ Composite Entity ลงทะเบียน ซึ่งจะได้รีเลชัน ดังต่อไปนี้

นักศึกษา (รหัสนักศึกษา, คํานําหน้านาม, ชื่อ, สกุล, สาขาวิชา, คณะ)


วิชา (รหัสวิชา, ชื่อวิชา, หน่วยกิต)
ลงทะเบียน (รหัสประจาตัวนักศึกษา, รหัสวิชา, ภาคเรียน, วันที่ลงทะเบียน)

การ Mapping กรณีที่มี Composite Attribute


กรณีที่มี Composite Attribute อยู่ใน ER-Diagram ที่ต้องการ Mapping ด้วยนั้น
สามารถทําได้โดยให้ใช้ แอตทริบิวต์ ย่อยสุดของ Composite Attribute นั้น มาทําการ Mapping
เป็นรีเลชัน ดังตัวอย่างต่อไปนี้
78

ภาพที่ 3.10  เอ็นทิตี ที่มี Composite Attribute

จากภาพที่ 3.10 จะเห็นว่าเอ็นทิตี นักศึกษานั้นมีเอ็นทิตี อยู่หลาย แอตทริบิวต์ แต่ที่


น่าสนใจคือ แอตทริบิวต์ ที่อยู่นั้น จะมีข้อมูลย่อยๆ ซึ่งได้แก่ บ้านเลขที่ ถนน ตําบล อําเภอ จังหวัด
และรหัสไปรษณีย์ ซึ่ง แอตทริบิวต์ แบบนี้เรียกว่า Composite Attribute โดยตามกฎที่กล่าวมาแล้ว
ข้างต้นเมื่อต้องการ Mapping แอตทริบิวต์ แบบนี้ให้กลายเป็นรีเลชัน สามารถทําได้โดยใช้ แอตทริ
บิวต์ ย่อยสุดของ Composite Attribute นั้น จากตัวอย่างจึง ได้ผลลัพธ์ของรีเลชัน ที่ทํ าการ
Mapping แล้วดังนี้

นักศึกษา (รหัสนักศึกษา, คํานําหน้านาม, ชื่อ, สกุล, สาขาวิชา, คณะ, บ้านเลขที่, ถนน,


ตําบล, อําเภอ, จังหวัด, รหัสไปรษณีย์)

การแปลง ER-Diagram กรณีที่มี Multi Value Attribute


ในกรณีที่เอ็นทิตี มี แอตทริบิวต์ ประเภท Multi Value Attribute ประกอบอยู่ด้วยนั้น
เมื่อทําการ Mapping Attribute ซึ่งเป็น Multi Value Attribute จะต้องแยกไปเป็นอีกหนึ่ง รีเลชัน
โดยนํา คีย์หลัก ของเอ็นทิตี นั้น ไปเป็น Foreign Key ของรีเลชัน ใหม่ด้วย ดังตัวอย่างต่อไปนี้

ภาพที่ 3.11  เอ็นทิตี ที่มี Multi Value Attribute


79

จากตัวอย่างในภาพที่ 3.11 จะเห็นว่าเอ็นทิตี หนังสือนั้นมี แอตทริบิวต์ ประกอบอยู่


หลาย แอตทริบิวต์ และมี แอตทริบิวต์ ผู้แต่งเป็น Multi Value Attribute ดังนั้นเมื่ อต้องการ
Mapping Entity นี้ให้เป็นรีเลชัน นอกจากจะได้รีเลชัน หนังสือแล้ว ยังจะได้รีเลชัน ผู้แต่ง ขึ้นมา ซึ่ง
จะประกอบด้วย ผู้แต่ง และนํา เลขเรียก ซึ่งเป็น คีย์หลัก ของเอ็นทิตี นี้มารเป็น Foreing Key ด้วย
ซึ่งจะได้ผลลัพท์ซึ่งเป็นรีเลชัน ดังนี้

หนังสือ (เลขเรียก, ชื่อหนังสือ, สํานักพิมพ์, ปีที่พิมพ์)


ผู้แต่ง (เลขเรียก, ผู้แต่ง)
การแปลง ER-Diagram ในกรณีที่มี Derived Attribute
ในกรณีที่มี Derived Attribute คือค่านั้นได้มาจากการคํานวณ เมื่อทําการแปลง ER-
Diagram ไม่ต้องนํา แอตทริบิวต์ นั้นมา แต่จะต้องบอกที่มาที่ไปของการคํานวณได้ว่าค่านั้นคํานวณ
มาจากสูตร หรือวิธีการคํานวณอย่างไรเพื่อให้ได้ค่าใน Derived Attribute นั้น ดังตัวอย่างต่อไปนี้

ภาพที่ 3.12  เอ็นทิตี ที่มี Derived Attribute

จากภาพที่ 3.12 ซึ่งเป็นเอ็นทิตี ของนักศึกษาและมี Derived Attribute คืออายุ ซึ่งอายุ


ของนักศึกษาเป็นค่าที่เปลี่ยนแปลงได้หากบันทึกไว้เป็น แอตทริบิวต์ ปกติ อาจจะเกิดความผิดพลาด
ได้ เนื่องจากเมื่อเวลาเปลี่ยนไป อายุของนักศึกษาก็จะเพิม่ ขึ้นจึงออกแบบไว้เป็น แอตทริบิวต์ ที่ได้จาก
การคํานวณ ซึ่ง อายุของนัก ศึก ษาสามารถคํานวณได้จ าก วันที่ ปัจจุบัน ลบกั บวันเกิ ด ก็ จะได้อายุ
ปัจจุบันของนักศึกษา ส่วนในกลางแปลง ER-Diagram ที่มี Derived Attribute ดังตัวอย่างนี้ให้ทํานํา
ทุก แอตทริบิวต์ มาเป็นค่าในรีเลชัน นั้น ยกเว้น Derived Attribute ซึ่งจะได้ผลลัพธ์ดังนี้

นักศึกษา (รหัส นักศึก ษา, คํานําหน้านาม, ชื่อ, สกุล , กลุ่ม เรียน, สาขาวิชา, คณะ,
วันเกิด)
80

การแปลง ER-Diagram กรณีที่มี Weak Entity


ในกรณีที่มี Weak Entity เมื่อทําการแปลงให้อยู่ในรูปของรีเลชั่น ให้นําเอาคีย์หลักของ
เอ็นทิตี ปกติมาร่วมเป็นคีย์หลักของฝั่ง Weak Entity ด้วย ดังตัวอย่างต่อไปนี้

ภาพที่ 3.13  ER-Diagram ที่มีความสัมพันธ์กับ Weak Entity

จากตัวอย่างในภาพที่ 3.13 จะเห็นได้ว่าเอ็นทิตี รายละเอียดใบเสร็จเป็น Weak Entity


ของเอ็นทิตี ใบเสร็จดังนั้นเมื่อ ทํ าการแปลง ER-Diagram ดังกล่าวจะต้องนํา แอตทริบิวต์ เลขที่
ใบเสร็จของเอ็นทิตี ใบเสร็จมาเป็นคีย์รว่ มกับ แอตทริบิวต์ รหัสสินค้า ของเอ็นทิตี รายละเอียดใบเสร็จ
ซึ่งจะได้ผลลัพธ์ดังนี้

ใบเสร็จ (เลขที่ใบเสร็จ, วันที่, นามผู้ซื้อ, บ้านเลขที่, ซอย, ถนน, ตําบล, อําเภอ, จังหวัด,
รหัสไปรษณีย์, ผู้รับเงิน
รายละเอียดใบเสร็จ (เลขที่ใบเสร็จ, รหัสสินค้า, จํานวน, ราคา/หน่วย)

การ Mapping ในกรณีที่ความสัมพันธ์เป็นแบบ Recursive

ในกรณีที่ความสัมพันธ์เป็นแบบ Recursive นั้น เอ็นทิตี ที่มาเกี่ยวข้องจะมีเพียงเอ็นทิตี


เดี ย วและเกิ ดความสั ม พั น ธ์โ ดยมิ ไ ด้สั ม พั น ธ์ กั บ เอ็น ทิ ตี อื่ นๆ หากพบความสัม พั นธ์ แ บบนี้ ใ น
กระบวนการแปลง ER-Diagram ให้นําคีย์หลักของเอ็นทิตี นั้นมาเป็น Foreign Key ของรีเลชัน ด้วย
ดังตัวอย่างต่อไปนี้
81

ภาพที่ 3.14  ER-Diagram แสดงความสัมพันธ์แบบ Recursive

จากตัวอย่างในภาพที่ 3.14 ซึ่ง แสดงให้เ ห็นถึง ER-Diagram ที่ มี ความสัม พันธ์แบบ


Recursive กล่าวคือเอ็นทิตี นักศึกษามีความสัมพันธ์ด้วยความเป็นหัวหน้ากลับมายังเอ็นทิตี นักศึกษา
ในกรณีเช่นนี้เมื่อทําการแปลง ER-Diagram ให้อยู่ในรูปของรีเลชัน จะต้องนําคีย์หลักของเอ็นทิตี ซึ่งก็
คือ แอตทริบิวต์ รหัสนักศึกษา มาเป็น Foreign Key ด้วย ซึ่งจะได้ผลลัพธ์ดังต่อไปนี้

นักศึกษา (รหัส นัก ศึก ษา, คํานําหน้านาม, ชื่อ, สกุ ล , กลุ่ม เรีย น, สาขาวิ ชา, คณะ,
รหัสนักศึกษาที่เป็นหัวหน้า)

เมื่อได้เรียนรู้วิธีการต่างๆ ในการแปลง ER-Diagram ให้อยู่ในรูปของรีเลชั่นในแต่ละส่วน


ไปแล้ว แต่ในการทํ างานจริง ER-Diagram ดัง กล่าวไม่ได้แยกส่วนกันแต่อย่างใด แต่ก ลับ เป็น ER-
Diagram ของทั้งระบบ ดังนั้นการนําวิธีการต่างๆ มาใช้จะต้องทําแบบบูรณาการด้วยกันจากวิธีการ
ต่างๆ ที่กล่าวมาข้างต้นจนได้ผลลัพธ์ที่เป็นรีเลชั่นอย่างถูกต้อง ดังตัวอย่างต่อไปนี้
82

ภาพที่ 3.15  ตัวอย่าง ER-Diagram เพื่อใช้ในการแปลงให้อยู่ในรูปของรีเลชัน


จาก ER-Diagram ภาพที่ 3.15 หากแปลงให้อยู่ในรูปของรีเ ลชั่นแล้วเบื้องต้นน่าจะ
ประกอบด้วยรีเลชั่นต่างๆ ดังนี้ รีเลชั่น A รีเลชั่น B รีเลชั่น C รีเลชั่น D รีเลชั่น E และ รีเลชั่น F
แต่หากจะพิจารณาตามกฎแต่ละข้อแล้วเมื่อทําการแปลง ER-Diagram ดังกล่าวเรียบร้อยแล้วจะมี
รีเลชั่นเพิ่มเติม โดยจะพิจารณาทีละรีเลชั่นดังนี้
A (A1,A2,A3)
รีเลชั่น A นั้นจะประกอบไปด้วย Attibute A1 ซึ่งเป็นคีย์หลัก A2 และ A3 เท่านั้น
เนื่องจาก แอตทริบิวต์ A4 เป็น Derived Attribute จึงไม่ต้องนํามาเป็น แอตทริบิวต์ ในรีเลชั่นใน
ขั้นตอนการแปลง อี กทั้ งหากพิ จารณาจากความสัมพันธ์ระหว่างเอ็นทิ ตี A และเอ็นทิ ตี B แล้ว
ความสัมพันธ์เป็นแบบหนึ่งต่อหนึ่งซึ่งสามารถนําคีย์หลักของเอ็นทิตี B มาเป็น Foreign Key ของ
เอ็นทิตี A ได้ แต่เอ็นทิตี B กลับมีคีย์หลักที่เป็น Composite Key คือ แอตทริบิวต์ B1 และ B2
ร่วมกันเป็นคีย์หลักจึงไม่สามารถนํามาเป็น Foreign Key ของเอ็นทิตี A ได้
B (B1, B2, B31, B32, B33, A1, C1)
สําหรับ รี เ ลชั่น B นั้น จะประกอบไปด้วย แอตทริบิว ต์ B1, B2 ซึ่ง ร่ว มกั นเป็ น
Composite Key ให้กับรีเลชั่น นอกจากนั้นแล้วยังมี แอตทริบิวต์ B31, B32 และ B33 ซึ่งได้ทําการ
แปลงมาจาก Composite Attribute ซึ่งเลือกเอา แอตทริบิวต์ ปลายสุดออกมาเป็น แอตทริบิวต์
ให้กับรีเลชั่น จึงไม่นํา แอตทริบิวต์ B3 ออกมาเป็น แอตทริบิวต์ ให้กับรีเลชั่น ส่วน แอตทริบิวต์ A1
นั้นได้นําคีย์หลักของเอ็นทิตี A มาเป็น Foreign Key ให้กับเอ็นทิตี B เช่นเดียวกันครับ แอตทริบิวต์
C1 ซึ่งเป็นคีย์หลักให้กับเอ็นทิตี C มาเป็น foreign Key ให้กับเอ็นทิตี B เช่นกัน
C (C1, C2, C3)
C4 (C1, C4)
83

สําหรับเอ็นทิตี C นั้นเมื่อทําการแปลงให้อยู่ในรูปของรีเลชั่นแล้วจะได้ออกมาเป็น 2
รีเลชั่นคือรีเลชั่น C และรีเลชั่น C4 เนื่องจากเดิม C4 เป็น Multi Value Attribute ซึ่ง แอตทริบิวต์
ประเภทนี้เมื่อใช้เก็บข้อมูลจริงอาจจะมีค่าได้มากกว่าหนึ่งค่าจึงต้องแยกออกมาเป็นรีเลชั่น ซึ่งวิธีแยก
ออกมาเป็นรีเลชั่นนั้นจะเป็นว่า แอตทริบิวต์ C4 จะกลายมาเป็นรีเลชัน C4 และในรีเลชั่น C4 นี้จะ
ประกอบด้วย แอตทริบิวต์ C1 ซึ่งกําหนดให้เป็นคีย์หลักร่วมกับตัวมันเองคือ C4
ส่วนในรีเลชั่น C นั้นจะประกอบไปด้วย C1 ซึ่งเป็นคีย์หลัก C2 และ C3 เท่านั้น
D (D1, D2, D3)
จากเอ็นทิตี D นั้น เมื่อแปลงให้อยู่ในรูปของรีเลชั่นแล้วจะประกอบด้วย รีเลชั่น D โดยมี
สมาชิกในรีเลชั่นที่เป็น แอตทริบิวต์ ประกอบด้วย D1 ซึ่งเป็นคีย์หลัก D2 และ D3
F (F1, F2, C1, D1)
จาก ER-Diagram จะเห็นได้ว่าเอ็นทิตี F นั้นเป็น Composite Entity ดังนั้นเมื่อทําการ
แปลงให้อยู่ในรูปของรีเลชั่นก็จะได้รีเลชั่น F ซึ่งมีสมาชิกเป็น แอตทริบิวต์ ประกอบด้วย F1 และ F2
ส่วน C1 ซึ่งนํามาเป็นคีย์หลักร่วมกับ D1 ซึ่ง C1 นอกจากนํามาเป็นคีย์หลักร่วมแล้วยังทําหน้าที่เป็น
Foreign Key ไปยังรีเลชั่น C เช่นเดียวกับ D1 ก็ยังทําหน้าที่เป็น foreign Key เชื่อมไปยังรีเลชั่น D
ด้วยเช่นกัน
E (E1, E2, E3, A1)
สําหรับเอ็นทิตี E นั้นจะเห็นว่าใน ER-Diagram เป็น Weak Entity ดังนั้นเมื่อทําการ
แปลงเอ็นทิตี E ให้อยู่ในรูปของรีเลชั่นก็จะได้รีเลชั่น E ซึ่งประกอบด้วยสมาชิกที่เป็น แอตทริบิวต์
ดังนี้ E1 เป็นคีย์หลักตาม ER-Diagram ส่วน E2 และ E3 ก็นํามาเป็น แอตทริบิวต์ ตามปกติ ส่วน แอ
ตทริบิวต์ A1 ซึ่งเป็นคีย์หลักของเอ็นทิตี A จะนํามาเป็นคีย์หลักร่วมกับ แอตทริบิวต์ E1 ซึ่งเป็นคีย์
หลักเดิมของรีเลชั่นอยู่แล้ว
84

เมื่อทําการแปลง ER-Diagram ทั้งหมดให้อยู่ในรูปของรีเลชั่นเรียบร้อยแล้วจะได้รีเลชั่น


ทั้งหมดดังนี้
A (A1,A2,A3)
B (B1, B2, B31, B32, B33, A1, C1)
C (C1, C2, C3)
C4 (C1, C4)
D (D1, D2, D3)
F (F1, F2, C1, D1)
E (E1, E2, E3, A1)
สรุปท้ายบท
ขั้นตอนการแปลง ER-Diagram ให้อยู่ในรูปของรีเลชัน หรือการ Mapping นั้น สิ่งที่
จําเป็นต้องทําความเข้าใจก่อนคือคีย์ชนิดต่างๆ ซึ่งได้แก่ คีย์หลัก Super Key Composite Key
Alternate Key Foreign Key เนื่องจากคีย์เหล่านี้มีส่วนสําคัญกับกฎต่างๆ ของการแปลง ER-
Diagram ให้อยู่ในรูปของรีเลชัน จากนั้นต้องทําความเข้าใจกฎต่างๆ ที่ใช้ในการแปลง ER-Diagram
ให้อยู่ในรูปของรีเลชัน โดยเมื่อทําการแปลงอาจจะไม่ยึดกฎใดกฎหนึ่งโดยเฉพาะแต่จะต้องประยุกต์ใช้
กฎทั้งหมดในการแปลง ER-Diagram แต่ละครั้ง
85

คาถามทบทวนบทที่ 3
1. จงอธิบายลักษณะของคีย์ประเภทต่างๆ ดังต่อไปนี้
1.1 Primary Key
1.2 Super Key
1.3 Composite Key
1.4 Candidate Key
1.5 Foreign Key
2. จงแปลง ER-Diagram ต่อไปนี้ให้อยู่ในรูปของรีเลชัน
86

เอกสารอ้างอิงบทที่ 3

พิทักษ์เมธากุล, จ. (n.d.). ประเภทของคีย์ในฐานข้อมูลเชิงสัมพันธ์. Retrieved กรกฎาคม 18, 2559,


from http://na5cent.blogspot.com/2011/12/keys-database.html
87

แผนบริหารการสอนประจาบทที่ 4
หัวข้อเนื้อหา
บทที่ 4 Normalization
4.1 Function Dependency
4.2 Fully Functional Dependency
4.3 Multi-Value Dependency
4.4 Dependency Diagram
4.5 Normalization

วัตถุประสงค์เชิงพฤติกรรม
วัตถุประสงค์ในบทที่ 4 นี้ เมื่อผู้เรียนได้ศึกษาเกี่ยวกับกระบวนการทํา Normalization แล้ว
ผู้เรียนจะมีพฤติกรรมที่พึงประสงค์ ดังนี้
1. อธิบายลักษณะของการขึ้นต่อกันแบบต่างๆ ต่อไปนี้ได้ Functional Dependency
Fully Functional Dependency Multi-Value Dependency
2. สามารถวิเคราะห์การขึ้นต่อกันและเขียนออกมาให้อยู่ในรูปของ Dependency Diagram
ได้
3. สามารถใช้ข้อมูลจาก Dependency Diagram มาทํา Normalization ตั้งแต่ระดับ 1NF
2NF และ 3NF ได้

วิธีสอนและกิจกรรมการเรียนการสอนประจาบท
1. วิธีการสอน
1.1 บรรยายเนื้อหา
1.2 สาธิตขั้นตอนการทํา Dependency Diagram
1.3 สาธิตขั้นตอนการทํา Normalization โดยใช้ข้อมูลจาก Dependency Diagram

2. กิจกรรมการเรียนการสอน
2.1 ผู้ส อนบรรยายเนื้อหาเกี่ ยวกับ การขึ้นต่อกันหรือ Dependency แบบต่างๆ โดย
ยกตัวอย่างประกอบและจัดมีให้ส่วนร่วมในชั้นเรียนของผู้เรียนโดยให้ผู้เรียนช่วยตอบ
คําถามหรือทําตัวอย่างให้สําเร็จไปพร้อมกับอาจารย์ผู้สอน
88

2.2 ผู้สอนสาธิตขั้นตอนการทํา Dependency Diagram โดยให้ผู้เรียนมีส่วนร่วมในการ


จัดทํา Dependency Diagram ในแต่ละขั้นตอน
2.3 ผู้สอนสาธิตการทํา Normalization ในระดับที่ 1NF จนถึง 3 NF โดยใช้ข้อมูลการ
วิเ คราะห์จ าก Dependency Diagram โดยในการสาธิตแต่ล ะขั้นตอนนั้น จะให้
ผู้เรียนมีส่วนร่วมในการทําแต่ละขั้นตอนให้สมบูรณ์ด้วยการให้ผู้เรียนช่วยต่อเติมหรือ
ตอบคําถามประเด็นต่างๆ ระหว่างการสาธิต
2.4 มอบหมายชิ้นงานให้ทําเป็นกลุ่ม หรือทําเดี่ยวโดยเมื่ อทําเสร็จแล้วให้มาอธิบายให้
ผู้สอนฟัง ผู้สอนอาจสอบถามเพิ่มเติมประเด็นเพื่อทวนสอบความรู้ความเข้าใจของ
นักศึกษาแต่ละคน

สื่อการเรียนการสอน
สื่อการเรียนการสอนในบทนี้ประกอบด้วย
1. เอกสารประกอบการสอนรายวิชาระบบฐานข้อมูล
2. กระดานเพื่อใช้ในการอธิบายและลําดับความคิดนักศึกษาในเรื่องที่ผสู้ อนบรรยาย
3. แบบฝึกหัดท้ายบทที่ 4

การวัดผลและประเมินผล
การวัดผลและการประเมินผล ประกอบด้วยการวัดผลและการประเมินผล ดังนี้
1. สังเกตความสนใจในกิจกรรมการเรียนการสอนของผูเ้ รียน
2. สังเกตพฤติกรรมการมีส่วนร่วมในชั้นเรียน เช่น การซักถาม การตอบคําถาม ตลอดจนการ
อภิปรายร่วมกัน
3. วัดและประเมินผลเป็นรายบุคคลจากการส่งแบบฝึกหัดท้ายบทที่ 4 ด้วยการนําเสนอเป็น
รายบุคคลหรือรายกลุ่มกับผูส้ อน
89

บทที่ 4 Normalization
การทํา Normalization เป็นวิธีที่ใช้ในการปรับโครงสร้างของตารางเพื่อให้ได้ตารางที่
สามารถเก็บข้อมูลได้โดยไม่มีปัญหาใดๆ ตามมาในภายหลัง โดยให้อยู่ในรูปแบบที่เรียกว่า Normal
form ส่วนตารางนั้นในกระบวนการออกแบบฐานข้อมูลนั้นจะเรียกว่าเรียกว่ารีเลชัน
การทํา Normalization นั้นสามารถทําได้ 6 ขั้นตอน แต่ก็ไม่มีความจําเป็นจะต้องทําจน
ครบทั้ง 6 ขั้นตอน ขึ้นอยู่กับแต่ละกรณี โดยการทํา Normalization นั้นมีขั้นตอนต่างๆ ตามลําดับ
ดังนี้
ขั้นตอนที่ 1 First Normal Form (1 NF)
ขั้นตอนที่ 2 Second Normal Form (2 NF)
ขั้นตอนที่ 3 Third Normal Form (3 NF)
ขั้นตอนที่ 4 Boyce-Codd Normal Form (BCNF)
ขั้นตอนที่ 5 Fourth Normal Form (4 NF)
ขั้นตอนที่ 6 Fifth Normal Form (5 NF)
ก่อนที่จะเข้าขั้นตอนการทํา Normalization จะต้องมีความรู้พื้นฐานเกี่ยวกับการขึ้นต่อ
กัน Dependency ประเภทต่างๆ เพื่อให้สามารถทํ า Normalization ได้อย่างถูก ต้องมากยิ่ง ขึ้น
ดังต่อไปนี้
4.1 Functional Dependency (FDs)
ก่อนที่จะกล่าวถึง Functional Dependency เพื่อทําความเข้าใจในสัญลักษณ์ต่างๆ
จะต้องเข้าใจถึงตัวกําหนดค่า Determinant ซึ่งหมายถึง แอตทริบิวต์ ที่สามารถกําหนดค่าใน แอตทริ
บิวต์ อื่นได้ เช่น รหัสนักศึกษา เป็น Determinant ของชื่อนักศึกษา เป็นต้น จากตัวอย่างชื่อนักศึกษา
ซึ่งถูกกําหนดค่าโดยรหัสนักศึกษาซึ่งเป็ น Determinant จะเรียกว่า Dependency ซึ่งจะเขียนแทน
ด้วยสัญลักษณ์ดังนี้
รหัสนักศึกษา  ชื่อนักศึกษา
ประเภทของ Dependency
4.1.1 Functional Dependency ที่เกิดจากความสัมพันธ์ระหว่าง Determinant และ
Determinant อย่างละ 1 ค่า เช่น
รหัสนักศึกษา  ชื่อนักศึกษา
90

Function Dependency นั้น จะต้องพิจ ารณาโครงสร้างของแต่ล ะรีเ ลชัน ว่ามี


โครงสร้างอยู่ใน Normal Form ระดับใด โดยจะพิจารณาจาก Function Dependency ซึ่งเป็น
ความสัมพันธ์ระหว่าง แอตทริบิวต์ ต่างๆ ภายในรีเลชัน กับ แอตทริบิวต์ หรือกลุ่ม แอตทริบิวต์ ที่ทํา
หน้าที่เป็นคีย์ของรีเลชัน นั้น ซึ่งความสัมพันธ์นี้จะถูกนิยามอยู่ในรูปแบบของคณิตศาสตร์ที่เรียกว่า
Functional Dependency ซึ่งมีรูปแบบดังนี้

ที่มา : ผู้เรียบเรียง

ภาพที่ 4.1  Functional Dependency (FDs)

จากภาพที่ 4.1 ซึ่ ง แสดง Functional Dependency นั้ น อาจอธิ บ ายได้ ว่ า


Determinant-Attribute (ตัวกําหนดค่า) สามารถ Determine (กําหนด) Dependency Attribute
(ค่าที่ขึ้นอยู่กับตัวกําหนดค่า) ได้ ดังตัวอย่างต่อไปนี้

ที่มา : ผู้เรียบเรียง
ภาพที่ 4.2  ตัวอย่างของข้อมูลที่เป็น Functional Dependency

จากภาพที่ 4.2 จะแสดงข้อมูลนักศึกษาซึ่งประกอบด้วย รหัสนัก ศึกษาซึ่งเป็นคีย์ของ


ตาราง และ ชื่อ-สกุล นักศึกษา โดยรหัสนักศึกษานั้นจะสามารถระบุ ชื่อ -สกุล ของนักศึกษาได้ เช่น
หากกล่าวถึงรหัสนักศึกษา 5801500016559 ก็สามารถระบุได้ว่านักศึกษาที่มีรหัสนี้คือ จ้อย แพรว
พรรณไพลิน และหากจะพิจารณารหัสนักศึกษาอื่นๆ ดังภาพที่ 4.2 ก็จะแสดงข้อมูลซึ่งเป็นชื่อ -สกุล
นักศึกษาออกมาได้เช่นกัน ดังนั้นจากตัวอย่างในภาพที่ 4.2 จึงอาจกล่าวได้ว่า ชื่อ -สกุล นักศึกษาเป็น
Function Dependency กับรหัสนักศึกษา
91

4.1.2 Functional Dependency ที่เกิดจากความสัมพันธ์ระหว่าง Determinant 1 ค่า


กับ Dependency หลายค่า เช่น
รหัสนักศึกษา  ชื่อนักศึกษา, สาขาวิชา, คณะ, วันเกิด
นอกจากการกําหนดค่าจาก แอตทริบิวต์ ซึ่งเป็นคีย์ ไปกําหนดค่า แอตทริบิวต์ อื่นได้
หนึ่ง แอตทริบิวต์ แล้ว Functional Dependency ยังมีการกําหนดค่าลักษณะอื่นๆ ได้อีก ดังนั้น
Functional Dependency จึงสามารถแบ่งออกได้เป็น 4 ประเภท ดังนี้
1. Determinant และ Dependency อย่างละ 1 ค่า เช่น เลขประจําตัวนักศึกษา กับ
ชื่อ-สกุล นักศึกษา ซึ่งได้ยกตัวอย่างไปแล้วข้างต้นจากตัวอย่างในภาพที่ 4.2
2. Determinant หนึ่งค่า กับ Dependency หลายค่า

ภาพที่ 4.3  ตัวอย่างข้อมูลการ Determinant หนึ่งค่า กับ Dependency หลายค่า

จากภาพที่ 4.3 จะเห็นได้ว่ารหัสนักศึกษาซึง่ เป็นคีย์ของตารางสามารถกําหนดค่า ชื่อ-


สกุลนักศึกษา สาขาวิชา และวันเกิดได้
3. Determinant และ Dependency ที่ สัม พันธ์กั นแบบสองทางซึ่ง ต่างฝ่ายต่าง
สามารถทําหน้าที่แทนอีกฝ่ายหนึ่งได้ ดังตัวอย่างต่อไปนี้
4.1.3 Functional Dependency ที่มีความสัมพันธ์ 2 ทาง โดยทั่ง Determinant และ
Dependency ต่างสามารถทําหน้าที่ของอีกฝ่ายหนึ่งได้เช่นกัน เช่น
รหัสโครงการ  ชื่อผู้จัดการโครงการ
ชื่อผู้จัดการโครงการ  รหัสโครงการ
รหัสโครงการ  ชื่อผู้จัดการโครงการ

ภาพที่ 4.4  ตัวอย่างข้อมูลการ Determinant ที่มีการขึ้นต่อกันแบบสองทาง


92

จากตัวอย่างในภาพที่ 4.4 จะเห็นว่า รหัส โครงการสามารถกํ าหนดค่ารหัส ผู้จัดการ


โครงการได้ กล่าวคือ หากทราบรหัสโครงการก็จะสามารถระบุได้ว่าผู้จัดการโครงการเป็นใครด้วยรหัส
ของผู้จัดการโครงการ เช่น โครงการที่มีรหัส PR001 ก็สามารถระบุได้ว่ารหัสผู้จัดการโครงการคือ
MGN101 แต่ในกลางกลับกัน หากทราบรหัสผู้จัดการโครงการก็สามารถกําหนดค่ารหัสโครงการได้
เช่นกัน เช่น รหัสโครงการ MGN104 ก็สามารถระบุได้ว่าเป็นโครงการที่มีรหัส PR004 เช่นกัน
4.1.4 Functional Dependency ที่ต้องใช้ Determinant มากกว่า 1 ค่า เพื่ออ้างถึง
Dependency เช่น
รหัสนักศึกษา, รหัสวิชา, ภาคเรียน  เกรด
การใช้ Determinant มากกว่า 1 ค่า เพื่ออ้างถึง Dependency

ภาพที่ 4.5  ตัวอย่างข้อมูลการ Determinant มากกว่า 1 ค่าเพื่ออ้างถึง Dependency

จากตัวอย่างในภาพที่ 4.5 ซึ่งแสดงการบันทึกข้อมูลเกรดของนักศึกษา ซึ่งประกอบด้วย


แอตทริบิวต์ รหัสนักศึกษา รหัสวิชา และเกรดที่นักศึกษาได้รับ จะเห็นได้ว่าหากต้องการที่จะทราบ
เกรดของนักศึกษาแต่ละคนนั้นจะต้องทราบ รหัสนักศึกษา และรหัสวิชา จึงจะสามารถทราบเกรดได้
กรณีแบบนี้จึงจะต้องมี Determinant มากกว่าหนึ่ง ค่าคือ รหัสนักศึกษาและรหัสวิชา ร่วมกันเพื่อ
กําหนดค่า Dependency ซึ่งในที่นี้คือ เกรดที่นักศึกษาได้นั่นเอง
4.1.5 Full Functional Dependency โดย Determinant จะต้องมีขนาดเล็กที่สดุ และ
สามารถระบุถึง Dependency ได้ เช่น
Relation A : รหัสนักศึกษา  สาขาวิชา
Relation B : รหัสนักศึกษา, ชื่อนักศึกษา  สาขาวิชา
จากตัวอย่างจะเห็นได้ว่ารีเลชัน A เป็น Full Functional Dependency เนื่องจาก รหัส
นักศึกษาเพียง Determinant เดียวก็สามารถกําหนดค่า Dependency สาขาวิชาได้ ซึ่งถือว่าเป็น
Determinant ที่มีขนาดเล็กที่สุดเมื่อเปรียบเทียบ Determinant ของรีเลชัน A และ B
Fully Functional Dependency นั้นจะมี Determinant ขนาดเล็กที่สุดและสามารถ
ระบุถึง Dependency ได้ ดังตัวอย่างต่อไปนี้
93

ภาพที่ 4.6  แสดงตัวอย่าง Fully Functional Dependency

จากภาพที่ 4.6 จะเห็นว่า รหัสนักศึกษาเพียงอย่างเดียวสามารถเป็น Determinant เพื่อ


กําหนดค่า ชื่อ-สกุลนักศึกษาได้เลยจากตัวอย่างนี้จึงเรียก Fully Functional Dependency ซึ่งจะ
แตกต่างกั บตัวอย่างในภาพที่ 4.7 ที่ไม่ เป็น Fully Functional Dependency เนื่องจากต้องใช้
Determinant ถึ ง 2 ตั ว คื อ รหั ส นัก ศึก ษาและรหัส วิ ชาร่ วมกั นจึง จะสามารถระบุ เ กรดซึ่ง เป็ น
Dependencyได้

ภาพที่ 4.7  ตัวอย่างการไม่เป็น Fully Functional Dependency

4.1.6 Partial Dependency ความสัมพันธ์แบบนี้จะเกิดขึ้นได้ก็ต่อเมื่อรีเลชัน หนึ่งๆ มี


คีย์ผสม (Composite Key) นั่นคือ คีย์หลักของรีเลชัน นั้นๆ ประกอบด้วย แอตทริบิวต์ หลาย แอ
ตทริบิวต์ ความสัมพันธ์ระหว่างค่าของ แอตทริบิวต์ แบบบางส่วนเกิดขึ้นเมื่อ แอตทริบิวต์ บางส่วน
ของคีย์ห ลั ก สามารถระบุค่าของ แอตทริ บิวต์ อื่นๆ ที่ ไม่ ใช่คีย์ ห ลัก ของรี เ ลชัน ได้ (Non-Key
Attribute) ซึ่งความสัมพันธ์แบบนี้จะทําให้เกิดปัญหาในเรื่องของความซ้ําซ้อนและการปรับปรุงข้อมูล
(ที่มา : https://www.trigo-group.com/upload/pdf_controle_cn.pdf)
4.1.7 Transitive Dependency จะพิจารณา แอตทริบิวต์ อื่นที่ ไม่ใช่คีย์ (Non-Key
Attribute) ที่สามารถระบุค่าของ แอตทริบิวต์ อื่นๆ ได้
4.1.8 Multi-Value Dependency (MVDs) เป็นความสัมพันธ์ของ Determinant หนึ่ง
ค่า แต่สามารถระบุ Dependency ได้ตั้งแต่สองค่าขึ้นไป ดังตัวอย่างต่อไปนี้

ภาพที่ 4.8  ตัวอย่าง Multi-Value Dependency


94

จากตัวอย่างในภาพที่ 4.8 จะเห็นได้ว่าเมื่อมีการระบุค่า รหัสพนักงาน จะปรากฏค่า รหัส


แผนก และรหัสโปรเจค ดังนี้ หากระบุค่ารหัสพนักงาน 11001 จะได้ค่ารหัสแผนกมาคือ แผนก 01
02 และ 01 ในสามแถวแรกของภาพที่ 4.8 และสามารถระบุค่ารหัสโปรเจคได้คือ P1 P3 และ P2 ใน
สามแถวแรกเช่นกัน
4.2 Dependency Diagram
เมื่อทําความเข้าใจกับ Determinant และ Dependency แล้ว ในขั้นตอนถัดไปจะมี
เครื่องมือช่วยในการวิเคราะห์ Determinant และ Dependency เพื่อใช้อํานวยความสะดวกในการ
ทํา Normalization ต่อไป โดย Dependency Diagram จะมีลักษณะดังนี้

ภาพที่ 4.9  แสดงตัวอย่าง Dependency Diagram

จากตัวอย่างในภาพที่ 4.9 ซึ่งแสดงตัวอย่างของ Dependency Diagram ซึ่ง มีรหัส


นักศึกษาเป็น Determinant และสามารถกําหนดค่า Dependency คือ ชื่อ-สกุล สาขาวิชา และ
คณะ โดยสัญลักษณ์เส้นที่ใช้ในการระบุว่า แอตทริบิวต์ ใดเป็น Determinant นั้นจะใช้เส้นที่ไม่มีหัว
ลูกศร และหาก แอตทริบิวต์ ซึ่งเป็น Determinant นั้นสามารถกําหนดค่า Dependency ใน แอ
ตทริบิวต์ ใดก็จะมีการเชื่อมเส้นไปยัง แอตทริบิวต์ เหล่านั้น โดยฝั่งที่เป็น Determinant นั้นจะใช้
สัญลักษณ์ปลายเส้นเป็นหัวลูกศรเพื่อใช้ในการสื่อความหมาย แต่ในกรณีที่มี Determinant มากกว่า
1 แอตทริบิวต์ ก็สามารถใช้สัญลักษณ์ ดังภาพที่ 4.10 ในการระบุ แอตทริบิวต์ ที่เป็น Determinant
และ Dependency ได้ ดังนี้

ภาพที่ 4.10  แสดงตัวอย่าง Dependency Diagram ในกรณีที่มี Determinant


มากกว่า 1 แอตทริบิวต์

จากตัวอย่างในภาพที่ 4.10 จะเห็นได้ว่ามี Determinant 2 แอตทริบิวต์ คือ รหัส


นักศึกษา และ รหัสวิชา จึงจะสามารถกําหนดค่า Dependency ซึ่งก็คือ แอตทริบิวต์ เกรด หากเกิด
กรณีลักษณะนี้จะใช้สัญลักษณ์ดังภาพที่ 4.10 เพื่อระบุการขึ้นต่อกันใน Dependency Diagram
95

ในตัวอย่างต่อไปนี้จะเป็นตัวอย่างการเขียน Dependency Diagram โดยหากต้องการ


เก็บข้อมูลใบลงทะเบียนของนัก ศึกษาในฐานข้อมูล ซึ่งประกอบด้วย แอตทริบิวต์ ต่างๆ ดัง ภาพที่
4.11 และวิเคราะห์การขึ้นต่อกันโดยใช้ Dependency Diagram
4.5 Dependency Diagram
Dependency Diagram นั้น เป็นเครื่องมื อที่ใช้ในการช่วยวิเคราะห์ Determinant
และ Dependency เพื่อช่วยให้การทํา Normalization นั้น ทําได้ง่ายยิ่งขึ้น โดย Dependency
Diagram นั้นมีลักษณะเป็นตารางหลายคอลัมน์ และมีเพียงแถวเดียว โดยมีการระบุ Determinant
และ Dependency แบบต่างๆ ที่กล่าวมาแล้วข้างด้วยด้วยเส้นและหัวลูกศร โดยปลายของเส้นฝั่ง
Determinant นั้นจะไม่มีหัวลูกศร และหลายเส้นด้านที่เป็น Dependency จะมีหัวลูกศร ดังตัวอย่าง
ต่อไปนี้
 

ภาพที่ 4.11  ลักษณะของ Dependency Diagram

จากภาพที่ 4.11 ซึ่ง แสดงลัก ษณะของ Dependency Diagram นั้นจะเห็นได้ว่าใน


ตาราง Dependency Diagram ดังกล่าวนั้นประกอบด้วย แอตทริบิวต์ A ซึ่งเป็นคีย์ของรีเลชัน และ
แอตทริบิวต์ อื่นๆ คือ B, C, D, E, F และ G และมีเส้นซึ่งใช้แสดง Determinant และ Dependency
ทั้งหมดจํานวน 3 เส้น ซึ่งอธิบายได้ดังนี้
เส้นที่ห นึ่ง  ซึ่ง มี แอตทริบิวต์ A ซึ่ง เป็น คีย์ห ลัก ของรีเ ลชัน และมี เ ส้นซึ่ง มี
ความหมายว่า แอตทริบิวต์ A เป็น Determinant ของ แอตทริบิวต์ B และ แอตทริบิวต์ C เนื่องจาก
ปลายของเส้นที่ แอตทริบิวต์ A นั้นไม่มีหัวลูกศร และปลายเส้นที่ แอตทริบิวต์ B และ C มีหัวลูกศรซึ่ง
ตามสัญลักษณ์แล้วหากปลายเส้นมีเครื่องหมายหัวลูกศร แอตทริบิวต์ ก็จะเป็น Dependency ดังนั้น
เส้นนี้จึงระบุการเป็น Functional Dependency ซึ่งมี Determinant หนึ่งค่า และสามารถระบุ
Dependency ได้หลายค่า
เส้นที่สอง  ซึ่งมี แอตทริบิวต์ G เป็น Determinant ซึ่งตามสัญลักษณ์จะเห็นได้ว่า
แอตทริบิวต์ G นั้น ที่ปลายเส้นไม่มีหัวลูกศรและสามารถระบุค่า Dependency ซึ่งปลายเส้นอีกด้าน
หนึ่งชี้ไปยัง แอตทริบิวต์ F ซึ่งปลายของเส้นที่ แอตทริบิวต์ F นั้นปรากฏหัวลูกศร ตามสัญลักษณ์จึง
96

สามารถอธิบายได้ว่า แอตทริบิวต์ G ซึ่งเป็น Determinant นั้น สามารถกําหนดค่า แอตทริบิวต์ F ซึ่ง


เป็น Dependency แบบ Functional Dependency
เส้นที่สาม  ซึ่งมี แอตทริบิวต์ A และ B ร่วมกันเป็น Determinant ซึ่งจะเป็นได้ว่า
เส้นที่ใช้ระบุก ารเป็น Determinant นั้นที่ แอตทริบิวต์ A และ B ไม่ มี หัวลูก ศร และสามารถ
กําหนดค่า Dependency ที่ แอตทริบิวต์ D และ E ซึ่งเส้นมีหัวลูกศรชี้ไปหา แอตทริบิวต์ D และ E
จึงอธิบายเส้นนี้ได้ว่า แอตทริบิวต์ D และ E เป็น Determinant ของ แอตทริบิวต์ D และ E
4.6 การทาให้อยู่ในรูปแบบที่เป็นบรรทัดฐาน (Normalization)
เมื่อการออกแบบฐานข้อมูลผ่านการแปลงจาก ER-Diagram จนได้เป็นรีเลชัน แล้วนั้น
ในบางครั้งข้อมูลในแต่ละรีเลชัน ก็ยัง มีความซ้ําซ้อนกันอยู่ โดยผู้ออกแบบฐานข้อมูลสามารถขจัด
ความซ้ําซ้อนดังกล่าวด้วยกระบวนการ Normalization ซึ่งแนวคิดนี้ถูกคิดค้นโดย E.F.Codd ซึ่งเป็น
กระบวนการที่นําเค้าร่างของรีเลชัน มาทําให้อยู่ในรูปที่เป็นบรรทัดฐาน (Normal Form) เพื่อให้แน่ใจ
ว่าการออกแบบเค้าร่างของรีเลชัน เป็นการออกแบบที่เหมาะสม โดยการทําให้ข้อมูลอยู่ในรูปที่เป็น
บรรทัดฐานนั้นมีประโยชน์ดังนี้
1. ลดที่ว่างที่ต้องใช้ในการเก็บข้อมูล
2. ลดความผิดพลาด ความไม่ตรงกันของข้อมูลในฐานข้อมูล
3. ลดการเกิดอะนอร์มัลไลของการลบและแก้ไขข้อมูล
4. เพิ่มความคงทนแก่โครงสร้างฐานข้อมูล
4.6.1 ระดับของการทา Normalization
First Normal Form (1NF) ในระดับนี้ทุกๆ ฟิลด์ในแต่ละ Record จะเป็น Single
Value หมายถึงในแต่ละตารางจะไม่มีค่าของกลุ่มข้อมูลที่ซ้ําซ้อนกัน (Repeating Group) และการ
จะเป็น First Normal Form ได้นั้นจะต้องมีคีย์ ที่ทุก Non-Key จะต้องขึ้นอยู่กับคีย์นี้ และมีเพียงคีย์
เดียวในหนึ่งตารางซึ่งเรียกว่าคีย์หลัก การที่ทุกตารางต้องมีคีย์ ก็เพราะต้องการให้แน่ใจว่าทุกข้อมูลใน
แต่ละแถว (Record) ต่างๆ สามารถค้นหาได้โดยใช้คีย์
Second Normal Form (2NF) การทํา Normalization ก่อนจะทํา Normalization
ในระดับที่ สองนี้ได้ คุณสมบัติของรีเ ลชัน ที่จ ะนํามาทํ าในระดับ นี้ต้องผ่านคุณสมบัติของการทํ า
Normalization ในระดับ 1NF มาแล้ว ซึ่งในระดับที่ 2 นี้ จะเป็นการขจัด แอตทริบิวต์ ที่ไม่ขึ้นกับทั้ง
ส่วนของคีย์หลักออกไป เพื่อให้ แอตทริบิวต์ อื่นทั้งหมดขึ้นตรงกับส่วนที่เป็นคีย์หลักทั้งหมดเท่านั้น
Third Normal Form (3NF) คุณสมบัติของรีเลชัน ที่จะนํามาทํา Normalization ใน
ระดับ 3NF ได้นั้นรีเลชัน นั้นๆ จะต้องมีคุณสมบัติในระดับ 2 NF มาแล้ว ซึ่งในขั้นตอนนี้จะต้องขจัด
97

สภาพของ Transitive Dependency ออกไป หรือ เป็นการขจัด แอตทริบิวต์ ที่ไม่เป็นคีย์ที่ขึ้นตรง


กับ แอตทริบิวต์ อื่นที่ไม่ใช่คีย์หลักออกไปเพื่อให้ แอตทริบิวต์ ที่ไม่ใช่คีย์หลักต้องขึ้นกับกับทั้งส่วนที่
เป็นคีย์หลัก และไม่ขึ้นกับ แอตทริบิวต์ อื่นที่ไม่ใช่คีย์หลัก
Boyce/Codd Normal Form (BCNF) การทํา Normalization ในระดับนี้จะต้อง
ขจัด แอตทริบิวต์ อื่นในรีเลชัน ที่สามารถระบุค่าของ แอตทริบิวต์ ที่เป็นคีย์หลักหรือส่วนหนึ่งส่วนใด
ของคีย์หลักในกรณีทึ่คีย์หลักเป็นคีย์ผสม โดยส่วนใหญ่ขั้นตอนการทําให้อยู่ในระดับ BCNF จะต้อง
พิจารณาเป็นพิเศษเมื่อในรีเลชัน นั้น มีคีย์คู่แข่ง (Candidate Key) อยู่หลายคีย์ โดยที่คีย์คู่แข่งเป็นคีย์
ผสม (Composite Key) และ คีย์คู่แข่งมีบางส่วนซ้ําซ้อนกัน
Forth Normal Form (4NF) การทํา Normalization ในระดับนี้จะต้องอยู่ในรูปแบบ
BCNF และเป็นรีเลชัน ที่ไม่มีความสัมพันธ์ในการระบุค่าของ แอตทริบิวต์ แบบหลายค่า โดยที่ แอ
ตทริบิวต์ ที่ถูกระบุค่าเหล่านั้นไม่มีความสัมพันธ์กัน (Independently Multivalued Dependency
Fifth Normal Form (5NF) หรือ Project-Join Normal Form (PJ/NF) โดยการทํา
Normalization ในระดับนี้ต้องอยู่ในรูปแบบ 4NF และไม่มี Symmetric Constraint กล่าวคือ หาก
มีการแตกรีเลชัน ออกเป็นรีเลชัน ย่อย (Projection) และเมื่อทําการเชื่อมโยงรีเลชัน ย่อยทั้งหมด
(Joint) จะไม่ก่อนให้เกิดข้อมูลใหม่ที่ไม่เหมือนรีเลชัน เดิม โดยในการแตกรีเลชัน ออกมาจากรูป 4NF
นั้น ถ้าทําการเชื่อมโยงรีเลชัน ย่อยนั้นใหม่ หากไม่มีข้อมูลที่แตกต่างไปจากรีเลชัน เดิม ก็จะสามารถ
แตกรี เ ลชัน นั้ นได้ แต่ ถ้า หากแตกเป็น รีเ ลชั น ย่อ ยแล้ว เกิ ด ข้อ มู ล ไม่ เ หมื อ นกั บ รี เ ลชั น เดิ ม
ก็ไม่ ควรแตกรีเ ลชัน และให้ถือ ว่า รีเ ลชัน เดิม อยู่ใน 5NF แล้ว (ที่ ม า : https://www.trigo-
group.com/upload/pdf_controle_cn.pdf)
ในขั้นตอนของการทํา Normalization นั้นจะทําไปเป็นลําดับขั้น และมีกระบวนการที่
จะต้อ งพิ จ ารณาในแต่ล ะขั้น นั้นแตกต่างกั น อีก ทั้ ง ยัง ต้ องทํ าแบบเรี ยงลําดั บ กั นไปที ล ะขั้ น โดย
กระบวนการทํา Normalization สามารถทําได้ถึง 6 ระดับ แต่ก็ขึ้นอยู่กับเหตุผลความจําเป็นของแต่
ละระบบฐานข้อมูลว่าจะต้องทําถึงขั้นใด โดยปกติแล้วหากฐานข้อมูลไม่ได้มีความซับซ้อนมากจะทําถึง
ระดับ 3 หรือที่เรียกว่า 3NF (Third Normal Form) เนื่องจากการทํา Normalization ยิ่งระดับสูง
ขึ้นเท่าใดความซ้ําซ้อนข้อมูลก็จะลดลง แต่ก็จะทําให้มีการแตกรีเลชัน ออกเป็นจํานวนมากขึ้น ซึ่ง
บางครั้งอาจจะยากต่อการบริหารจัดการหรือแม้แต่การคิวรี่ข้อมูลออกมาใช้งานด้วยเช่นกัน ดังนั้นใน
หัวข้อนี้จะอธิบายกระบวนการทํา Normalization ทีละขั้นตอน ถึงระดับ 3NF ดังนี้
1 NF (First Normal Form) โดยมีนิยามในการทํา Normalization ในระดับนี้คือ
- ค่าของ แอตทริบิวต์ ต่างๆ ในแต่ละแถว (Tuple) จะต้องมีเพียงค่าเดียว
- รีเลชัน นั้นจะต้องไม่มีกลุ่มข้อมูลซ้ํา (Repeating Group)
98

ภาพที่ 4.12  ตารางข้อมูลผลการเรียนของนักศึกษา

จากภาพที่ 4.12 ซึ่งแสดงตารางข้อมูลที่ใช้ในการเก็บผลการเรียนของนักศึกษา โดยจาก


ตัวอย่างนั้นจะเห็นว่ามีข้อมูลอยู่จํานวน 3 แถว (3 Tuples) โดยมีปัญหาข้อมูล รหัสวิชาและชื่อวิชา
และภาคเรียน ยังมีปัญหา Repeating Group ซึ่งจะมีข้อมูลซ้ําๆ กันทั้งสามแถวของตาราง ในขั้นตอน
ของ 1 NF นั้นสามารถแก้ปัญหาโดยการกําหนดคีย์หลัก ที่ถูกต้องให้กับ รีเลชัน โดยการกําหนด คีย์
หลักนั้นเพื่อบอกถึง ความแตกต่างของแต่ล ะแถว ดัง นั้นจากตัวอย่างในภาพที่ 4.12 หากต้องการ
กําหนดคีย์หลักจะต้องใช้ รหัสวิชา ร่วมกับรหัสนักศึกษา จึงสามารถเป็นคีย์หลักของตารางนี้ได้ ซึ่ง
หากใช้ส อง แอตทริบิวต์ นี้รวมกั นจึงจะสามารถแยกความแตกต่างระหว่างแถวข้อมูลได้ โดยการ
กําหนดคีย์หลักนั้นจะต้องคํานึงถึงข้อมูลที่จะเกิดขึ้นในอนาคตด้วยว่ามีโอกาสที่คีย์หลักที่เลือกไว้จะซ้ํา
หรือไม่ จากตัวอย่า งดัง กล่าวจะใช้ รหัส วิชาร่วมกั บ รหัส นัก ศึก ษาและภาคเรียน เป็นคีย์ห ลัก ได้
เนื่องจากไม่ว่าจํานวนแถวของข้อมูลจะเพิ่มมากขึ้นอีกเท่าใดก็ตาม เมื่อนํา 3 แอตทริบิวต์ ที่กําหนดให้
เป็นคีย์หลักมารวมกันก็ยังสามารถบอกความแตกต่างของแต่ละแถวได้ และเมื่อกําหนดคีย์หลักให้กับ
ตารางข้อมูลแล้วจะได้ผลลัพธ์ดังภาพที่ 4.13

ภาพที่ 4.13  ตารางข้อมูลผลการเรียนของนักศึกษาซึ่งกาจัด Repeating Group แล้ว

หลังจากกําจัด Repeating Group ให้กับตารางโดยการกําหนด คีย์หลัก ที่ถูกต้องให้กับ


ตารางแล้วจะเห็นว่าจําเป็นต้องใส่ข้อมูลให้ครบทุก แอตทริบิวต์ ตามข้อกําหนดของคีย์หลักคือ คีย์
หลักต้องมีข้อมูลไม่ซ้ํากันในแต่ละแถวแต่ต้องไม่เป็นค่าว่าง (Null) จึงได้ผลลัพธ์ดังภาพที่ 4.13 จึงถือ
ว่าเสร็จกระบวนการทํา Normalization ในระดับที่ 1

2 NF (Second Normal Form) ในการทํา Normalization ในระดับนี้ได้นั้น


จะต้องผ่านกระบวนการทํา Normalization ในระดับที่หนึ่ง (1 NF) มาก่อนแล้วจึงจะเริ่มทําระดับที่
2 (2 NF) ได้ โดยการ Normalization ในระดับนี้จะพิจารณาสิ่งที่เรียกว่า Partial Dependency
หรือพิจารณา แอตทริบิวต์ ที่ขึ้นอยู่กับคีย์ หรือส่วนใดส่วนหนึ่งของคีย์ ดังนั้นจากตัวอย่างในภาพที่
4.13 หากนํามาเขียนเป็น Dependency Diagram เพื่อให้ง่ายต่อการวิเคราะห์ Normalization ใน
ระดับนี้ จึงสามารถเขียนได้ดังนี้
99

ภาพที่ 4.14  แสดง Dependency Diagram ของตารางผลการเรียนนักศึกษา

จากภาพที่ 4.14 ซึ่งแสดงการวิเคราะห์ Dependency Diagram จะเห็นได้ว่ามีเส้นซึ่ง


แสดง Partial Dependency อยู่จํานวน 3 เส้น ดังนั้นในกระบวนการทํา Normalization ในระดับที่
สองนี้จ ะเป็นการแยก Partial Dependency ออกมาเป็น รีเ ลชัน ซึ่ง จะได้ผ ลลัพธ์เป็น รีเ ลชัน
ดังต่อไปนี้

วิชา (รหัสวิชา, ชื่อวิชา)


นักศึกษา (รหัสนักศึกษา, ชื่อ-สกุล นักศึกษา)
คะแนน (รหัสวิชา, รหัสนักศึกษา, ภาคเรียน คะแนน, เกรด)
ส่วน แอตทริบิวต์ รหัสสาขาวิชา และ ชื่อสาขาวิชานั้น ไม่ได้มีการขึ้นต่อกันแบบ Partial
Dependency ยังไม่มีการแยกเป็นรีเลชัน ใหม่ในขั้นตอนนี้
3 NF (Third Normal Form) ในขั้นตอนการทํา 3 NF นั้นมีวิธีการคล้ายๆ กับ
การทําในระดับ 2 NF แต่ในขั้นตอนนี้จะพิจารณาจํากัด Transitive Dependency แต่มีข้อกําหนด
ก่ อนจะทํ า 3 NF คื อ จะพิ จ ารณาทํ า Normalization ในระดับ 3 NF นั้นจะต้องผ่า นการทํ า
Normalization ในระดับ 2 NF มาก่อน กล่าวคือจะต้องไม่มี Partial Dependency หลงเหลืออยู่
แล้ว จึงจะสามารถทํา Normalization ในระดับ 3 NF ได้
ดังนั้นจาก Dependency Diagram จากภาพที่ 4.14 ซึ่งแสดง Dependency Diagram
ของตารางผลการเรียนนักศึกษานั้น จะเห็นว่ามีเส้นซึ่งแสดง Transitive Dependency อยู่ จํานวน 1
เส้น ซึ่งต้องแยกออกมาเป็นอีก 1 รีเลชัน (Relation) ดังนี้
สาขาวิชา (รหัสสาขาวิชา, ชื่อสาขาวิชา)
และเมื่อผ่านกระบวนการ Normalization ถึงระดับ 3 NF แล้วจะได้รีเลชัน ต่างๆ ดังนี้
วิชา (รหัสวิชา, ชื่อวิชา)
นักศึกษา (รหัสนักศึกษา, ชื่อ-สกุล นักศึกษา)
คะแนน (รหัสวิชา, รหัสนักศึกษา, ภาคเรียน คะแนน, เกรด)
สาขาวิชา (รหัสสาขาวิชา, ชื่อสาขาวิชา)
100

ถึงแม้ว่ากระบวนการทํา Normalization จะมี 6 ระดับ แต่โดยปกติแล้วจะมี การทํ า


Normalization ถึงในระดับ 3 NF เท่านั้น เพื่อไม่ให้เกิดรีเลชัน มากจนเกินไป จนยากต่อการบริหาร
จัดการหรือการเรียกใช้ข้อมูล
สรุปท้ายบท
วัตถุประสงค์ในบทนี้เพื่อให้นักศึกษาสามารถทํากระบวนการลดความซ้ําซ้อนของข้อมูล
ในรีเลชั่นด้วยกระบวนการที่เรียกว่าการทํา Normalization แต่ก่อนที่ที่ทํากระบวนการดังกล่าวได้
จําเป็น ต้องมี ค วามรู้เ กี่ ยวกั บ การขึ้ นต่อ กั น หรือ Dependency ซึ่ ง มี อยู่ห ลายประเภทอั นได้แ ก่
Function Dependency, Fully Functional Dependency, Multi-Value Dependency และ
เมื่อทําความเข้าใจเกี่ยวกับการขึ้นต่อกันแบบต่างๆ แล้ว จากนั้นเนื้อหาในบทนี้ได้กล่าวถึงเครื่องมือที่
ช่วยในการทํ า กระบวนการ Normalization ซึ่ง ก็ คือ Dependency Diagram เพื่อ ให้ก ารทํ า
กระบวนการ Normalization ทําได้ง่ายขึ้น จากนั้นจึงทํากระบวนการลดความซ้ําซ้อนของข้อมูลด้วย
วิธีการ Normalization ถึงระดับที่ 3 ถึงแม้ว่ากระบวนการทํา Normalization ซึ่งเป็นระดับที่เป็นที่
ยอมรับกันว่าความซ้ําซ้อนของข้อมูลถูกกําจัดออกไปให้อยู่ในระดับที่เหมาะสม
101

คาถามทบทวนบทที่ 4
1. จงอธิบายลักษณะของการขึ้นต่อกันของข้อมูลแต่ละประเภทดังนี้ พร้อมยกตัวอย่างประกอบ
1.1 ลักษณะของ Function Dependency
1.2 ลักษณะของ Fully Functional Dependency
1.3 ลักษณะของ Multi-Value Dependency
2. จงเขียน Dependency Diagram จากข้อมูล ในใบเสร็จ ที่นักศึกษาจัดหามาเองโดยกํ าหนดให้
นักศึกษาแต่ละคนจะต้องใช้ใบเสร็จจากต่างที่กัน
3. จงนําผลลัพธ์ที่ได้จากการวิเคราะห์ Dependency Diagram ในข้อ 2 มาทํา Normalization โดย
ให้แสดงผลลัพธ์ของกระบวนการ Normalization ในระดับ 1NF, 2NF และ 3NF
102

เอกสารอ้างอิงบทที่ 4

Peter Rob, C. C. (2000). Database Systems Design and Management. America:


Thomson Learning.

การออกแบบและพัฒนาฐานข้อมูล. (n.d.). Retrieved พฤศจิกายน 2560, 2560, from


https://www.trigo-group.com/upload/pdf_control_cn.pdf

โครงการเครือข่ายเพื่อพัฒนาสารสนเทศเพื่อพัฒนาการศึกษา. (n.d.). รูปแบบทีเ่ ป็นบรรทัดฐาน.


Retrieved กรกฎาคม 18, 2560, from มหาวิทยาลัยศรีนครินทรวิโรฒ:
http://sot.swu.ac.th/Portals/156/sot/CP342/lesson04/ms1t1.htm

ทริโก้กรุป๊ . (n.d.). Normalization. Retrieved พฤศจิกายน 14, 2560, from https://www.trigo-


group.com/upload/pdf_controle_cn.pdf

พิทักษ์เมธากุล, จ. (n.d.). ประเภทของคีย์ในฐานข้อมูลเชิงสัมพันธ์. Retrieved กรกฎาคม 18, 2559,


from http://na5cent.blogspot.com/2011/12/keys-database.html
103

แผนบริหารการสอนประจาบทที่ 5
หัวข้อเนื้อหา
บทที่ 5 การสร้างฐานข้อมูลด้วยระบบจัดการฐานข้อมูล
5.1 ชนิดของข้อมูล (Data Type) ใน Microsoft Access
5.2 ขั้นตอนการสร้างฐานข้อมูลด้วย Microsoft Access

วัตถุประสงค์เชิงพฤติกรรม
วัตถุประสงค์ในบทที่ 5 นี้ เมื่อผู้เรียนได้ศึกษาเกี่ยวกับการสร้างฐานข้อมูลด้วยระบบจัดการ
ฐานข้อมูลแล้ว ผู้เรียนจะมีพฤติกรรมทีพ่ ึงประสงค์ ดังนี้
1. นําฐานข้อมูลทีผ่ ่านการออกแบบไว้มาสร้างเป็นฐานข้อมูลด้วยโปรแกรม Microsoft
Access ได้อย่างถูกต้อง เหมาะสม
2. สามารถกําหนดชนิดของข้อมูลในตารางข้อมูลได้อย่างเหมาะสมกับข้อมูลที่ตอ้ งการจัดเก็บ

วิธีสอนและกิจกรรมการเรียนการสอนประจาบท
1. วิธีการสอน
1.1 สาธิตขั้นตอนการสร้างฐานข้อมูลด้วยเครือ่ งคอมพิวเตอร์ที่ติดตั้งโปรแกรมจัดการ
ฐานข้อมูล Microsoft Access
1.2 ผู้เรียนทดลองสร้างฐานข้อมูลด้วย Microsoft Access จากฐานข้อมูลทีเ่ คยออกแบบ
ไว้ด้วยตนเอง

2. กิจกรรมการเรียนการสอน
2.1 ผู้สอนทบทวนเนื้อ หาจากตัวอย่างฐานข้อมูล ที่เ คยออกแบบมาทั้ งหมดเพื่อเตรียม
ข้อมูลมาสร้างในระบบจัดการฐานข้อมูล Microsoft Access
2.2 ผู้สอนสาธิตขั้นตอนการสร้างฐานข้อมูลด้วยโปรแกรมจัดการฐานข้อมูล Microsoft
Access พร้อมทั้งบรรยายเนื้อหาประกอบในประเด็นต่างๆ ที่เ กี่ยวข้องกั บแต่ล ะ
ขั้นตอน
2.3 ผู้เรียนฝึกปฏิบัติใช้โปรแกรมจัดการฐานข้อมูลด้วยโปรแกรม Microsoft Access โดย
การสร้างฐานข้อมูล จากที่ผู้เรียนแต่ ละคนได้ออกแบบไว้ในขั้นตอนก่อนหน้า โดยมี
ผู้สอนคอยให้คําแนะนํา
104

สื่อการเรียนการสอน
สื่อการเรียนการสอนในบทนี้ประกอบด้วย
1. เอกสารประกอบการสอนรายวิชาระบบฐานข้อมูล
2. เครื่องฉายภาพโปรเจ็คเตอร์
4. เครื่องไมโครคอมพิวเตอร์ทมี่ ีพอร์ตส่งออกภาพด้วยเครื่องฉายโปรเจ็คเตอร์ได้
5. ระบบปฏิบัติการ Microsoft Windows และ โปรแกรม Microsoft Access รุ่นที่รองรับ
กับระบบปฏิบัติการคอมพิวเตอร์
6. แบบฝึกหัดท้ายบทที่ 5

การวัดผลและประเมินผล
การวัดผลและการประเมินผล ประกอบด้วยการวัดผลและการประเมินผล ดังนี้
1. สังเกตความสนใจในกิจกรรมการเรียนการสอนของผูเ้ รียน
2. สังเกตพฤติกรรมการมีส่วนร่วมในชั้นเรียน จากการฝึกปฏิบตั ิของผู้เรียนในแต่ละกรณี
3. วัดและประเมินผลเป็นรายบุคคลจากการส่งแบบฝึกหัดท้ายบทที่ 5 ซึ่งเป็นแบบฝึกหัด
ภาคปฏิบัติด้วยระบบจัดการฐานข้อมูล Microsoft Access
105

บทที่ 5 การสร้างฐานข้อมูลด้วยระบบจัดการฐานข้อมูล
เมื่อผ่านกระบวนการออกแบบฐานข้อมูลมาแล้วในขั้นตอนนี้จะเป็นการนําฐานข้อมูลที่
ออกแบบมา มาสร้างด้วยระบบจัดการฐานข้อมูล (DBMS : Database Management System) ซึ่ง
ในขั้นตอนนี้จะขึ้นอยู่กับระบบจัดการฐานข้อมูลทีใ่ ช้ด้วย เนื่องจากระบบจัดการฐานข้อมูลแต่ละระบบ
จะมีรูปแบบในการสร้างอีกทั้งชนิดของข้อมูล (Data Type) ที่แตกต่างกันไป โดยในที่นี้จะยกตัวอย่าง
การสร้างฐานข้อมูลด้วยระบบจัดการฐานข้อมูลที่มีชื่อว่า Microsoft Access ซึ่งเป็นโปรแกรมหนึ่งที่
อยู่ในชุด Microsoft Office ของบริษัท Microsoft โดย Microsoft Access มีการสั่งงานผ่านระบบ
GUI (Graphic User Interface) ซึ่งสามารถสั่งงานต่างๆ ผ่านระบบกราฟิก จึงทําให้ง่ายต่อการทํา
ความเข้าใจและใช้งาน
5.1 ประเภทข้อมูลใน Microsoft Access (Microsoft Access Data Type)
ก่อนที่จะสร้างฐานข้อมูลด้วย Microsoft Access ประเด็นแรกที่จะต้องพิจารณาคือชนิด
ของข้อมูลที่ Microsoft Access มีให้ใช้งาน ซึ่งประกอบด้วยชนิดข้อมูลต่างๆ ดังต่อไปนี้

ภาพที่ 5.1  Data Type ของ Microsoft Access

จากภาพที่ 6.1 ซึ่งแสดงชนิดของข้อมูลที่ Microsoft Access มีไว้ให้ใช้งาน ซึ่งชนิดของ


ข้อมูลต่างๆ นั้นมีความแตกต่างในการใช้งานดังต่อไปนี้
5.1.1 ตัวเลขอัตโนมัติ (Auto Number) ข้อมูลชนิดนี้เป็นข้อมูลชนิดตัวเลขจํานวน
เต็มซึ่งจะขึ้นมาโดยอัตโนมัติในแต่ละแถว (Row) ของข้อมูล และตัวเลขเหล่านี้จะไม่ซ้ํากันเลยในแต่ละ
แถว โดยปกติแล้วจะใช้ข้อมูลเหล่านี้กับตัวเลขที่จาํ เป็นต้องขึ้นมาโดยอัตโนมัติต่างๆ เช่น เลขที่ใบเสร็จ
106

หากกําหนดชนิดข้อมูลเป็นแบบนี้ ผู้ใช้งานฐานข้อมูลไม่จําเป็นต้องกรอกข้อมูลใดๆ ลงในเขตข้อมูล


(Field) โดยโปรแกรม Microsoft Access จะทําการรันตัวเลขและใส่ให้โดยอัตโนมัติ
5.1.2 ข้อความ (Text) ใช้สําหรับเขตข้อมูลที่เป็นข้อความ หรือตัวอักษรภาษาใดๆ ที่มี
ความยาวไม่เกิน 255 ตัวอักษร ซึ่งโดยปกติแล้วข้อความหรือตัวอักษรนั้นไม่จําเป็นจะต้องเป็นเฉพาะ
ตัวอักษร ในบางกรณีถึงแม้เขตข้อมูลนั้นจะใช้เก็บตัวเลขทั้งหมดก็อาจจะกําหนดชนิดข้อมูลเป็น Text
เช่นกัน เช่น หากต้องการกําหนดเขตข้อมูลเพื่อเก็บหมายเลขโทรศัพท์ลูกค้า ก็ควรกําหนดเป็น Text
ถึงแม้หมายเลขโทรศัพท์ของลูกค้าจะเป็นตัวเลขก็ตามเนื่องจากหากกําหนดชนิดของเขตข้อมูลที่เก็บ
หมายเลขโทรศั พ ท์ ของลูก ค้า เป็ น ตัว เลขแล้ ว เมื่ อมี ก ารเก็ บ ข้ อ มู ล จริ ง เช่น หมายเลขโทรศั พ ท์
0815563325 หากกําหนดชนิดของเขตข้อมูลนี้เป็นตัวเลขจะเก็บเพียง “815563325” โดยเลข 0
ด้านหน้าจะโดนตัดทิ้ งเนื่องจากหากเป็นการเก็บเป็นตัวเลข 0 ด้านหน้าไม่มีค่าจึงถูกตัดทิ้ง แต่หาก
กําหนดชนิดข้อ มูล นี้เป็นตัวอั กษรแล้วนั้น ตัวอัก ษรทุก ตัวมี ความหายจึงไม่มี ก ารตัดข้อมูล ใดๆ ทิ้ ง
ดังนั้นผู้ที่ทําการกําหนดชนิดของเขตข้อมูลจึงจะต้องพิจารณาถึงความถูกต้องและเหมาะสมกับข้อมูล
เหล่านี้ด้วย อย่างไรก็ตามชนิดข้อมูลนี้ในโปรแกรม Microsoft Access จะมีข้อจํากัดคือมีความยาวได้
ไม่เกิน 255 ตัวอักษรเท่านั้น ซึ่งหากเป็นการจัดเก็บตัวอักษรภาษาไทยความยาวของตัวอักษรจะนับ
รวมถึง สระ วรรณยุกต์ และการเว้นวรรค ด้วย
ทั้งนี้มีข้อควรระวังในการกําหนดชนิดข้อมูลเป็นแบบ Text และเก็บข้อมูลเป็นตัวเลข คือ
หากมีการใช้เครื่องหมาย หรือวิธีการทางคณิตศาสตร์กับข้อมูลชนิดนี้ผลลัพธ์ที่ได้จะเป็นแบบวิธีการทํา
กับตัวอักษรเช่น หากสั่งให้ 1+1 ผลลัพธ์ที่ได้คือ 11 เนื่องจากการสั่งให้มีการเอาตัวอักษรมาบวกกัน
ผลลัพธ์ที่ได้คือเอาตัวอักษรมาชนกัน นอกจากนี้หากสั่งให้เรียงลําดับชุดข้อมูลต่อไปนี้ 1,2,11,50 ซึ่ง
กําหนดชนิดข้อมูลเป็นตัวอักษรไว้ แล้วสั่งให้เรียงจากน้อยไปหามากผลลัพธ์ที่ได้จะถูกเรียงลําดับแบบ
ตัวอักษรคือ 1,11,2,50
5.1.3 บันทึก (Memo) ชนิดข้อมู ลแบบนี้ใช้เก็ บข้อความเช่นเดียวกันกั บ Text แต่
สามารถเก็บข้อความที่มีความยาวมากๆ ได้ไม่เกิน 64,000 ตัวอักษร 1แต่ก็มีข้อจํากัดของชนิดข้อมูลนี้
กล่าวคือ เขตข้อมูลที่ถูกกําหนดชนิดของข้อมูลเป็น Memo นั้น ไม่สามารถนํามาอ้างถึงในการค้นหา
ข้อมูลได้ อีกทั้งไม่สามารถกําหนดเขตข้อมูลชนิดนี้เป็น Key ต่างๆได้เช่นกัน ดังนั้นชนิดข้อมูลนี้จึง
เหมาะกับการเก็บข้อมูลยาวๆ ในกรณีพิเศษ เช่น หมายเหตุ หรือบันทึกอื่นๆ ที่ไม่จําเป็นต้องเอามา
อ้างถึง จัดเรียง หรือกําหนดเป็นคีย์
5.1.4 ตั ว เลข (Number) ชนิ ด ข้ อ มู ล นี้ ใ ช้ เ ก็ บ เขตข้ อ มู ล ที่ มี ค่ า เป็ น ตั ว เลข ซึ่ ง
ประกอบด้วยตัวเลขจํานวนเต็ม หรือทศนิยมก็ตาม ข้อดีของการเก็บข้อมูลเป็นแบบตัวเลขคือสามารถ
สั่งงานด้วยเครื่องหมายทางคณิตศาสตร์ได้ หรือการจัดเรียงข้อมูล ก็จะถูกจัดเรียงตามค่าของตัวเลข
107

นั้นๆ ด้วย และเมื่อกําหนดให้ชนิดของข้อมูลเป็นแบบ Number แล้ว จะต้องมีการกําหนดชนิดของ


ตัวเลขด้วยว่าตัวเลขนั้นจะให้มีคุณสมบัติอย่างไร โดยชนิดของตัวเลขที่สามารถกําหนดให้รองรับได้ใน
Microsoft Access นั้น มีดังต่อไปนี้
5.1.4.1 ตัวแปรประเภทไบท์ (Byte) หากกําหนดชนิดของตัวเลขให้เป็น Byte
แล้ว เขตข้อมูลนั้นจะสามารถเก็บตัวเลขจํานวนเต็ม ที่มีค่าตั้งแต่ 0-255 เท่านั้น หากเขตข้อมูลนั้น
จําเป็นต้องเก็บข้อมูลที่มีค่าน้อยกว่า 0 หรือมากกว่า 255 ก็ไม่สามารถทําได้ หากกําหนดชนิดของการ
เก็บตัวเลขเป็น Byte ข้อดีของการกําหนดชนิดตัวเลขเป็นแบบ Byte คือ ใช้เนื้อที่ในการจัดเก็บข้อมูล
จริงเพียง 1 Byte เท่านั้น
5.1.4.2 ตัวแปรประเภทตัวเลขจานวนเต็มแบบอินทิเจอร์ (Integer) ชนิดของ
ตัวเลขแบบ Integer นี้สามารถเก็บตัวเลขจํานวนเต็มเช่นเดียวกับ Byte แต่ขยายขอบเขตของค่าตัว
เลขที่ เก็ บได้ให้มี ช่วงกว้างขึ้น กล่าวคือ Integer ใช้สําหรับ เก็บ ค่า จํานวนเต็ม ตั้ง แต่ -32,768 ถึง
+32,767 โดยความต้องการใช้พื้นที่ในการเก็บข้อมูลคือ 2 ไบต์
5.1.4.3 ตั ว แปรประเภทตั ว เลขจ านวนเต็ ม แบบลองอิ น ทิ เ จอร์ (Long
Integer) หากต้องการเก็บตัวเลขจํานวนเต็มที่มีค่ามากเกินกว่า Integer จะสามารถรับค่านั้นได้ ก็
สามารถกําหนดชนิดของตัวเลขให้เป็น Long Integer ซึ่งใช้สําหรับจํานวนเต็มตั้งแต่ -2,147,483,648
ถึง +2,147,483,647 โดยมีความต้องการเนื้อที่เก็บข้อมูลจํานวน 4 ไบต์ นอกจากนั้นชนิดของตัวเลข
Long Integer นี้ยังสามารถกําหนดเป็น Foreign Key เพื่อสร้างความสัมพันธ์ระหว่างเขตข้อมูลกับ
เขตข้อมูลคีย์หลักที่เป็นชนิด Auto Number ของตารางอื่นได้อีกด้วย2
5.1.4.4 ตั วแปรประเภทตัว เลขทศนิย มแบบซิ ง เกิ้ล (Single) หากมี ความ
จําเป็นต้องเก็บตัวเลขซึ่งมีจุดทศนิยมแล้ว ชนิดของตัวเลข Single เป็นชนิดของตัวเลขสําหรับเก็บ
ข้อมูลที่ใช้พื้นที่ในการเก็บน้อยที่สุด และใช้ สําหรับค่าตัวเลขที่มีจุดทศนิยมตั้ง แต่ -3.4 x 1038 ถึง
+3.4 x 1038 และมีเลขนัยสําคัญได้ถึง 7 หลัก โดย Single นี้ มีความต้องการใช้พื้นที่ในการเก็บ
ข้อมูล จํานวน 4 ไบต์
5.1.4.5 ตัวแปรประเภทตัวเลขทศนิยมแบบดับเบิ้ล (Double) สําหรับค่าตัว
เลขที่มีจุดทศนิยมตั้งแต่ -1.797 x 10308 ถึง +1.797 x 10308 และมีเลขนัยสําคัญได้ถึง 15 หลัก
ความต้องการพื้นที่ในการเก็บข้อมูล คือ 8 ไบต์
5.1.4.6 ตัวแปรประเภทตัวเลขทศนิยมแบบดิซิมอล (Decimal) สําหรับค่า
ตัวเลขตั้งแต่ -9.999... x 1027 ถึง +9.999... x 1027 โดยมีความต้องการพื้นที่ในการเก็บเท่ากับ 12
ไบต์3
108

5.1.5 วันที่/เวลา (Date/Time) การเก็บข้อมูลที่เป็นวันที่และเวลาที่ไม่เหมาะสมนั้น


อาจจะทําให้ข้อมูลที่เก็บเกิดความผิดพลาดได้ เนื่องจากรูปแบบในการเก็บวันที่และเวลานั้นมีอยู่อย่าง
หลากหลาย เช่ น เช่ น รู ป แบบยุ โ รป (28.11.2006 หรื อ 28-11-2006) รู ป แบบเอเชี ย ใต้
(28/11/2006) หรือ รู ป แบบสหรัฐอเมริก า (11/28/2006) หรือแม้ แต่รูป แบบการเก็ บ วั นที่ ของ
ประเทศไทยเองก็ ยัง มี หลายรูป แบบ แต่ห ากมี ก ารกํ าหนดชนิดของข้อมู ล เป็น Date/Time แล้ว
สามารถมั่นใจได้ว่าไม่ว่าผู้ใช้จะกรอกข้อมูลวันที่มาด้วยรูปแบบใดก็ตาม เขตข้อมูล Date/Time จะ
เก็บข้อมูลวันที่และเวลาเป็นตัวเลขทศนิยมที่มีความแม่นยําสูง เป็นระบบที่เรียกว่า วันที่ลําดับ 4 โดย
ชนิดข้อมูลนี้จะใช้พื้นที่ในการเก็บข้อมูลจํานวน 8 Byte5
5.1.6 ตัวเลขทางการเงิน (Currency) เป็นชนิดข้อมูลที่ใช้เก็บข้อมูลตัวเลขทางการเงิน
ซึ่งสามารถกําหนดรูปแบบให้มีสัญลักษณ์ทางการเงิน เครื่องหมายคั่นหลักพัน หรือจุดทศนิยมได้ โดย
ชนิดข้อมูลนี้จะใช้พื้นที่ในการเก็บข้อมูลจํานวน 8 Byte
5.1.7 ค่าทางตรรกศาสตร์ (Yes/No) เป็นชนิดข้อมูลที่ใช้เก็บค่าเพียงสองค่าทางตรรกะ
คือค่าจริง กับเท็จ หรืออาจกล่าวได้ว่าเก็บค่า ใช่ กับไม่ใช่ ก็ได้ โดยชนิดข้อมูลประเภทนี้จะใช้พื้นที่ใน
การเก็บข้อมูล จํานวน 1 Byte ตัวอย่างเขตข้อมูลที่กําหนดชนิดข้อมูลประเภทนี้ได้แก่ ข้อมูลการชําระ
เงิน ซึ่ง สามารถมี ค่าได้แค่สองค่า คือชําระแล้วอาจจะกํ าหนดให้เป็นค่า Yes และ ยังค้างชําระอยู่
อาจจะกําหนดให้เป็นค่า No
ส่วนชนิดข้อมู ลอื่ นๆ ที่ยัง ไม่ ได้ก ล่าวถึง ในที่นี้อาจจะมี คุณสมบัติพิเศษเช่น ลิงค์ไปยัง
คุณสมบัติของโปรแกรมอื่นๆ ซึ่งอาจจะเป็นคุณสมบัติเฉพาะของ Microsoft Access หรือผลิตภัณฑ์
ของ Microsoft เท่านั้น จากรายละเอียดของชนิดข้อมูลที่กล่าวมาข้างต้นอาจจะสรุปให้อยู่ในรูปแบบ
ของตารางเพื่อให้ง่ายต่อการทําความเข้าใจมากยิ่งขึ้นได้ดังตารางต่อไปนี้

ตารางที่ 5.1  ชนิดข้อมูล (Data Type) ของ Microsoft Access


ที่มา : https://support.office.com/en-us/article/Introduction-to-data-types-and-field-properties-30ad644f-946c-442e-8bd2-be067361987c

ชนิดข้อมูล ข้อมูลที่จัดเก็บ ขนาดข้อมูล


Text ข้อความ ไม่เกิน 255 ตัวอักษร
Memo ข้อความหมายเหตุ ไม่เกิน 64,000 ตัวอักษร
Number ตัวเลข 1-8 ไบต์
Date/Time วันที่/เวลา 8 ไบต์
Currency ตัวเลขทางการเงิน 8 ไบต์
109

ชนิดข้อมูล ข้อมูลที่จัดเก็บ ขนาดข้อมูล


AutoNumber ตัวนับจํานวนอัตโนมัติ จะเพิ่มค่าตามเรคอร์ด 4 ไบต์
Yes/No ข้อมูลตรรกะ 1 ไบต์
OLE Object ข้อมูลภาพ เสียง หรือ Object ที่สนับสนุน OLE2
Hyperlink ชนิ ด ข้ อ มู ล ที่ เ ก็ บ อยู่ ข องไฟล์ ใ นระบบเครื อ ข่ า ย
อินเตอร์เน็ต หรืออินทราเน็ต
Lookup ใช้เชื่อมโยงไปยังส่วนที่ใช้เก็บข้อมูลที่ได้จากการค้นหา
Wizard
เมื่ อ รู้จัก กับ ชนิดของข้อมู ลใน Microsoft Access แล้ว ในขั้นตอนต่อไปจะกล่าวถึง
วิธีการสร้างฐานข้อมูล และตารางข้อมูลด้วย Microsoft Access จาก ตัวอย่าง ER-Diagram ต่อไปนี้

ภาพที่ 5.2  แสดง ER-Diagram ของระบบทะเบียนและตารางสอน

2
OLE ย่อมาจาก Object Linking and Embedding เป็นเทคนิคของ แอพพลิเคชั่น (Application)
บนระบบปฏิบัติการ Windows ที่ใช้ในการแลกเปลี่ยนข้อมูลระหว่างกัน เช่น สามารถนํารูปภาพจาก
โปรแกรม Paintbrush มาใช้ใน Microsoft Access ได้
110

จากภาพที่ 5.2 ซึ่งเป็น ER-Diagram ที่ได้วิเคราะห์ไว้ เมื่อได้ ER-Diagram แล้ว ขั้นตอน


ต่อไปจะต้อง Mapping ให้เป็นรีเลชัน ซึ่งจะได้ผลลัพธ์เป็นรีเลชัน ดังต่อไปนี้

นักศึกษา (รหัสนักศึกษา, คํานําหน้า, ชื่อ, สกุล, สาขา, คณะ)


วิชา (รหัสวิชา, ชื่อวิชา, หน่วยกิต)
อาจารย์ (รหัสอาจารย์, คํานําหน้า, ชื่อ, สกุล, เบอร์มือถือ, เบอร์ภายใน)
ลงทะเบียน (เลขที่ใบลงทะเบียน, ภาคเรียน, วันที่ลงทะเบียน, จํานวนเงินที่ต้องชําระ,
รหัสนักศึกษา, รหัสวิชา)
ตารางสอน (ลําดับตาราง, วันที่สอน, เวลาเริ่ม, เวลาเลิก, กลุ่มเรียน, รหัสอาจารย์,
รหัสวิชา)
จากการพิจารณาแต่ละรีเลชัน แล้วไม่ปรากฏ Partial Dependency และ Transitive
Dependency แต่ในรีเลชัน ลงทะเบียนนั้นมี คีย์หลัก ร่วมเป็น Composite Key เป็นถึง 3 แอตทริ
บิวต์ ซึ่งหากพิจารณาแล้วสามารถที่จะใช้ แอตทริบิวต์ เลขที่ใบลงทะเบียน ร่วมกับรหัสวิชา ก็สามารถ
ที่จะกําหนดความแตกต่างให้กับข้อมูลในแต่ละแถวได้แล้ว จึงได้ผลลัพธ์ของรีเลชัน ใหม่ ดังนี้
นักศึกษา (รหัสนักศึกษา, คํานําหน้า, ชื่อ, สกุล, สาขา, คณะ)
วิชา (รหัสวิชา, ชื่อวิชา, หน่วยกิต)
อาจารย์ (รหัสอาจารย์, คํานําหน้า, ชื่อ, สกุล, เบอร์มือถือ, เบอร์ภายใน)
ลงทะเบียน (เลขที่ใบลงทะเบียน, ภาคเรียน, วันที่ลงทะเบียน, จํานวนเงินที่ต้องชําระ,
รหัสนักศึกษา, รหัสวิชา)
ตารางสอน (ลําดับตาราง, วันที่สอน, เวลาเริ่ม, เวลาเลิก, กลุ่มเรียน, รหัสอาจารย์,
รหัสวิชา)
เมื่อได้รีเลชัน ที่พร้อ มในการสร้างเป็นฐานข้อมูล โดยระบบจัดการฐานข้อมูล แล้ว ก็
สามารถนํามาออกแบบก่อนนําไปสร้างในระบบจัดการฐานข้อมูลจริง ได้ดังต่อไปนี้
111

ชื่อฐานข้อมูล : StudentRegis3
ชื่อตาราง : Student ใช้ในการเก็บข้อมูลนักศึกษา
ชื่อเขตข้อมูล ชนิดข้อมูล ขนาด คําอธิบาย
(Field Name) (Data Type)
St_ID Text 13 รหัสนักศึกษา (PK)4
ST_Title Text 25 คํานําหน้านาม
ST_Name Text 30 ชื่อ
ST_Lastname Text 30 สกุล
ST_Dept Text 25 สาขา
ST_Faculty Text 25 คณะ

ชื่อตาราง : Subject ใช้ในการเก็บข้อมูลรายวิชา


ชื่อเขตข้อมูล ชนิดข้อมูล ขนาด คําอธิบาย
(Field Name) (Data Type)
Subj_id Text 7 รหัสวิชา (PK)
Subj_Name Text 30 ชื่อวิชา
Subj_Credit Number Byte จํานวนหน่วยกิต

ชื่อตาราง : Teacher ใช้เก็บข้อมูลอาจารย์


ชื่อเขตข้อมูล ชนิดข้อมูล ขนาด คําอธิบาย
(Field Name) (Data Type)
Teac_ID Text 13 รหัสประจําตัวอาจารย์ (PK)
Teac_Title Text 15 คํานําหน้าชื่ออาจารย์ หรือตําแหน่งทางวิชาการ
Teac_Name Text 50 ชื่อ – สกุล อาจารย์
ชื่อตาราง : Teacher ใช้เก็บข้อมูลอาจารย์ (ต่อ)

3
ชื่อของฐานข้อมูลควรตัง้ เป็นภาษาอังกฤษ ถึงแม้ว่าระบบจัดการฐานข้อมูลบางตัวจะอนุญาตให้ตั้ง
เป็นภาษาไทยก็ตาม และชื่อฐานข้อมูลควรขึ้นต้นด้วยตัวอักษรภาษาอังกฤษ ไม่ใช่สัญลักษณ์พเิ ศษ
ประกอบในการตั้งชื่อ
4
PK เป็นอักษรย่อของ Primary Key ซึ่งเป็นคีย์หลักของตาราง
112

ชื่อเขตข้อมูล ชนิดข้อมูล ขนาด คําอธิบาย


(Field Name) (Data Type)
Teac_MobileNo Text 10 หมายเลขโทรศัพท์มือถืออาจารย์
Teac_ExtNo Text 4 หมายเลขโทรศัพท์ภายใน (เบอร์ต่อ)

ชื่อตาราง : Regis ข้อมูลการลงทะเบียน


ชื่อเขตข้อมูล ชนิดข้อมูล ขนาด คําอธิบาย
(Field Name) (Data Type)
Regis_no Auto Number Long Integer เลขลําดับการลงทะเบียน (PK)
Regis_Term Text 6 ภาคเรียน เช่น 2/2560
Regis_Date Date/Time วันที่ลงทะเบียน
Regis_Fee Currency ยอดค่าใช้จ่ายในการลงทะเบียน
St_id Text 13 รหัสนักศึกษาที่ลงทะเบียนรายการนี้ (FK)

ชื่อตาราง : Regis_Details รายละเอียดการลงทะเบียน


ชื่อเขตข้อมูล ชนิดข้อมูล ขนาด คําอธิบาย
(Field Name) (Data Type)
Regis_No Number Integer เลขลําดับการลงทะเบียน (PK)(FK)
Subj_id Text 7 รหัสวิชา (PK)(FK)
Teac_id Text 13 รหัสประจําตัวอาจารย์ (FK)
Class_Day Text 8 วันในสัปดาห์ที่สอน
Class_Start Date/Time เวลาเริ่ม
Class_Finish Date/Time เวลาเลิก
Class_Section Text 2 กลุ่มเรียนของรายวิชานี้
113

5.2 การสร้างฐานข้อมูลด้วย Microsoft Access 2010


เมื่ อ เปิดโปรแกรม Microsoft Access 2010 จะเห็นมุ มมอง Microsoft Office
Backstage ซึ่งจะสามารถเรียกใช้ข้อมูลเกี่ยวกับฐานข้อมูลปัจจุบนั สร้างฐานข้อมูลใหม่ เปิดฐานข้อมูล
ที่มีอยู่ และดูเนื้อหาพิเศษจาก Office.com

ภาพที่ 5.3  หน้าต่างโปรแกรม Microsoft Access 2010


นอกจากนี้มุมมอง Backstage ยังมีคําสั่งอื่นๆ จํานวนมากที่สามารถใช้ในการปรับ ปรุง
บํารุงรักษา หรือ ใช้ฐานข้อ มูล ร่วมกันได้ โดยทั่ วไปแล้ว คําสั่ง ต่างๆ ในมุมมอง Backstage จะถูก
นําไปใช้กับฐานข้อมูลทั้งฐานข้อมูล ไม่ใช่กับวัตถุภายในฐานข้อมูล
การสร้างฐานข้อมูลด้วย Microsoft Access 2010
1. เริ่มโปรแกรม Access
2. บนแท็บ สร้าง ในมุมมอง Backstage ให้คลิก ฐานข้อมูลเปล่า หรือ ฐานข้อมูลเว็บเปล่า
3. ทางด้านขวา ให้พิมพ์ชื่อสําหรับฐานข้อมูลของคุณในกล่อง ชื่อแฟ้ม
4. เมื่อต้องการเปลี่ยนแปลงตําแหน่งที่ตงั้ ที่คุณจะสร้างแฟ้ม ให้คลิก เรียกดู ที่อยู่ถัดจากกล่อง ชื่อ
ไฟล์ จากนั้นเรียกดูและเลือกตําแหน่งที่ตงั้ ใหม่ แล้วคลิก ตกลง
5. คลิก สร้าง
114

ภาพที่ 5.4  ลาดับการสร้างฐานข้อมูลในโปรแกรม Microsoft Access 2010

6. Access สร้างฐานข้อมูล แล้วเปิดตารางเปล่า (ชื่อ Table1) ใน มุมมองแผ่นข้อมูล


7. Access จะวางเคอร์เซอร์ในเซลล์ที่ว่างเซลล์แรกในคอลัมน์ คลิกเพือ่ เพิม่ ของตารางใหม่

ภาพที่ 5.5  ตารางเปล่าในโปรแกรม Microsoft Access 2010


115

8. มุมมองเริ่มต้นในการสร้างตารางข้อมูลนั้น Microsoft Access จะให้มาเป็นมุมมองข้อมูล (Data


Sheet View) หากต้องการสร้างตารางข้อมูลโดยสามารถกําหนดค่าต่างๆ ได้เองให้เลือกมุมมอง
ออกแบบ (Design View) ซึ่งจะได้ผลลัพธ์ดังนี้
ชื่อ ประเภท รายละเอียดฟิลด์
ฟิล ฟิลด์

คุณสมบัติ
ของฟิลด์

ภาพที่ 5.6  การสร้างฐานข้อมูลด้วยมุมมอง Design View ในโปรแกรม Microsoft Access


2010

จากหน้าจอการสร้างตารางข้อมูลแบบ Design View นั้น ในคอลัมน์ Field Name จะเป็น


การตั้งชื่อของฟิลด์โดยการตั้งชื่อฟิลด์ใน Microsoft Access นั้นควรจะเป็นตัวอักษรภาษาอังกฤษ
หากจะมีตัวเลขประกอบในชื่อฟิลด์ไม่ควรนําเอาตัวเลขมาขึ้นต้น ส่วนการใช้สัญลักษณ์พิเศษอื่นๆ
ประกอบเป็นชื่อฟิลด์นั้นหากจําเป็นก็ควรใช้เฉพาะสัญลักษณ์ (_) ขีดล่างเท่านั้นและจะต้องไม่นํามา
ขึ้นต้นชื่อฟิลด์ โดยหนึ่งแถวของหน้าต่างหมายถึงตารางนั้นมี 1 ฟิลด์ หากฟิลด์ใดที่ออกแบบไว้ให้เป็น
คีย์หลักหน้าต่างการสร้างตารางจะแสดงรูปกุญแจสีเหลืองไว้ด้านหน้าฟิลด์นั้น โดยการกําหนดคีย์หลัก
หรือนําการตั้งค่าคีย์หลักออกจากหน้าต่างนี้ทําได้โดยใช้เมาส์คลิกขวาที่ฟิลด์ดังกล่าวแล้วเลือกว่าจะให้
กําหนดเป็นคีย์หลัก หรือจะเอาการตั้งค่าคีย์หลักออก
116

ในคอลัม น์ถัดมาของหน้าต่างการสร้างตารางข้อมูล ใน Microsoft Access นั้น คือการ


กําหนดชนิดของข้อมูลให้กับฟิลด์นั้นๆ คือคอลัมน์ที่มีชื่อว่า Data Type ซึ่งชนิดของข้อมูลต่างๆ ได้
กล่าวถึงไปแล้วในตอนต้นของเนื้อหาในบทนี้ โดยการเลือกชนิดของข้อมูลที่ต้องการและกําหนดค่า
เพิ่มเติมต่างๆ ในส่วนด้านล่างคือส่วนของ Field Properties หรือคุณสมบัติของฟิลด์เพิ่มเติม ของ
หน้าต่างซึ่งจะแตกต่างกันออกไปขึ้นอยู่กับชนิดของฟิลด์ที่เลือกด้วย ดังนี้

ชนิดของฟิลด์ คุณสมบัติต่างๆ ตามชนิดของฟิลด์

Auto Number

Currency

Date Time

Memo
117

Number

Text

Yes/No

คอลัมน์สุดท้าย Description นั้น ผู้ใช้งานสามารถใส่รายละเอียดต่างๆ ของฟิลด์นั้นๆ เพื่อ


สื่อสารให้ผู้ใช้ฐานข้อมูลคนอื่นเข้าใจตรงกัน หรือบันทึกข้อมูลส่วนนี้ไว้เพื่อเตือนความจําโดยข้อมูล
ส่วนรายละเอียดนี้จะบันทึกเป็นภาษาอะไรก็ได้ และโดยปกติแล้วจะไม่นําไปอ้างในการเขียนโปรแกรม
หรือติดต่อกับโปรแกรมอื่นๆ
118

สรุปท้ายบท
เนื้อหาในบทนี้กล่าวถึงการนํารีเลชัน ที่ผ่านกระบวนการ Normalization มาสร้างด้วยระบบ
จัดการฐานข้อมู ลซึ่งเนื้อหาในบทนี้ได้ยกตัวอย่างโปรแกรมจัดการฐานข้อมูล Microsoft Access
เนื่องจากส่วนเชื่อมต่อผู้ใช้ของโปรแกรมนี้ง่ายต่อการทําความเข้าใจซึ่งเมื่ อทําความเข้าใจได้แล้วก็
สามารถจะประยุกต์ใช้กั บระบบจัดการฐานข้อมูล ชนิดอื่นได้เช่นกัน โดยผู้เรียนต้องทําความเข้าใจ
ประเภทของข้อมูลที่ใช้ในโปรแกรม (Data Type) ซึ่งระบบจัดการฐานข้อมูลต่างชนิดกันก็อาจจะมี
ประเภทของข้อมูลที่หลากหลายแตกต่างกัน แต่หากจะแบ่งประเภทของข้อมูลหลักๆ ก็ได้แก่ ข้อความ
ตัวเลข วันที่และเวลา ค่าทางตรรกะ ทั้งนี้ประเภทข้อมูลทีย่ กตัวอย่างมาข้างต้นจะแตกต่างกันไปตาม
ระบบจัดการฐานข้อมูล ซึ่งสร้างขึ้นมาโดยมีลัก ษณะเฉพาะตัวของแต่ล ะโปรแกรม โดยผู้ที่จะสร้าง
ฐานข้อมูลด้วยระบบจัดการฐานข้อมูลจะต้องออกแบบประเภทของข้อมูลได้อย่างเหมาะสมตามแต่
ชนิดของระบบจัดการฐานข้อมูล เมื่อเสร็จสิ้นกระบวนการออกแบบเนื้อหาในบทนี้ได้กล่าวถึงขั้นตอน
การนําฐานข้อมูล ที่ออกแบบไว้ไปสร้างด้วยระบบจัดการฐานข้อมูล Microsoft Access และการ
กําหนดค่าต่างๆ
119

คาถามท้ายบทที่ 5
1. หากต้องการเก็บข้อมูลต่างๆ ดังต่อไปนี้ สามารถกําหนดประเภทของข้อมูลเป็นอะไรได้บ้างหากใช้
ระบบจัดการฐานข้อมูล Microsoft Access
1.1 ตัวเลข
1.2 ตัวเลขผสมกับตัวอักษรในข้อมูลเดียวกัน
1.3 ตัวอักษร
1.4 วันที่
1.5 เวลา
1.6 ตําแหน่งที่ใช้ในการเก็บรูปภาพ (Path)
1.7 ตัวเลขซึ่งต้องการให้เป็นรันนิ่งนัมเบอร์
1.8 ข้อความยาวๆ ซึ่งไม่จําเป็นต้องนํามาใช้ในการอ้างอิง
2. จงออกแบบฐานข้อมูล เพื่อเก็บข้อมูลศิษย์เก่ าซึ่ง จะใช้เก็บ ข้อมูล เพื่อนๆ ในกลุ่ม เรียนในการใช้
ติดต่อกันหลังจากเรียนจบ แล้วนําฐานข้อมูลที่ออกแบบไว้มาสร้างด้วยระบบจัดการฐานข้อมูล
120

เอกสารอ้างอิงบทที่ 5

การอออกแบบตารางในฐานข้อมูล. (ม.ป.ป.). เรียกใช้เมื่อ 15 กรกฎาคม 2559 จาก


hppt://61.7.221.103/access-online/database/design.htm

บริษัท ไมโครซอฟต์ ประเทศไทย. (ม.ป.ป.). การตั้งค่าขนาดเขตข้อมูล. เรียกใช้เมื่อ 15 กรกฎาคม


2559 จาก https://support.office.com/th-th/article/การตั้งค่าขนาดเขตข้อมูล-
7df5f880-8613-4141-a643-3b27ee34961f

บริษัท ไมโครซอฟต์ ประเทศไทย. (ม.ป.ป.). การแทรก สร้าง หรือลบข้อมูลที่เก็บค่าวันที่. เรียกใช้เมื่อ


11 กรกฎาคม 2559 จาก https://support.office.com/th-th/article/การแทรก-สร้าง-
หรือลบเขตข้อมูลที่เก็บค่าวันที่
121

แผนบริหารการสอนประจาบทที่ 6
หัวข้อเนื้อหา
บทที่ 6 คําสั่ง SQL (Structure Query Language)
6.1 ประเภทของคําสั่ง SQL
6.2 การเขียนคําสั่ง SQL แต่ละประเภท

วัตถุประสงค์เชิงพฤติกรรม
วัตถุประสงค์ในบทที่ 6 นี้ เมื่อผู้เรียนได้ศึกษาเกี่ยวกับคําสั่ง SQL แล้ว ผู้เรียนจะมีพฤติกรรม
ที่พึงประสงค์ ดังนี้
1. แยกแยะคําสั่ง SQL แต่ละคําสัง่ ได้ว่าอยู่ในประเภทใด
2. เขียนคําสั่ง SQL เพื่อทํางานกับฐานข้อมูลได้

วิธีสอนและกิจกรรมการเรียนการสอนประจาบท
1. วิธีการสอน
1.1 บรรยายความรูเ้ กี่ยวกับคําสั่ง และ ประเภทของคําสั่ง SQL
1.2 สาธิตวิธีการเขียนคําสั่ง SQL แต่ละประเภท

2. กิจกรรมการเรียนการสอน
2.1 ผู้สอนบรรยายความรู้ต่างๆ เกี่ยวกับคําสั่ง SQL และประเภทของคําสั่ง SQL
2.2 ผู้สอนสาธิตวิธีการเขียนคําสั่ง SQL และผลลัพธ์ของแต่ล ะคําสั่ง พร้อมอธิบ าย
รายละเอี ยดของแต่ล ะคําสั่ง พร้อมแสดงผลลัพธ์ด้ว ยคอมพิ วเตอร์ จ ากการสั่ง ให้
ประโยคคําสั่งนั้นทํางาน
2.3 ผู้เรียนฝึกปฏิบัติการเขียนคําสั่ง SQL เมื่อผู้สอนสาธิตในแต่ละคําสั่งเสร็จ ผู้สอนจะตั้ง
โจทย์ในเรื่องเดียวกันให้ผู้เรียนทดลองปฏิ บัติด้วยการเขียนคําสั่ง SQL ตามโจทย์ที่
ผู้สอนกําหนดจากนั้นให้ผู้เรียนสั่งแสดงผลลัพธ์ หากมีข้อผิดพลาดให้ผู้เรียนพยามแก้
ด้วยตนเองโดยมีผู้สอนคอยให้คําแนะนํา
122

สื่อการเรียนการสอน
สื่อการเรียนการสอนในบทนี้ประกอบด้วย
1. เอกสารประกอบการสอนรายวิชาระบบฐานข้อมูล
2. เครื่องฉายภาพโปรเจ็คเตอร์
4. เครื่องไมโครคอมพิวเตอร์ทมี่ ีพอร์ตส่งออกภาพด้วยเครื่องฉายโปรเจ็คเตอร์ได้
5. ระบบปฏิบัติการ Microsoft Windows และ โปรแกรม Microsoft Access รุ่นที่รองรับ
กับระบบปฏิบัติการคอมพิวเตอร์
6. ฐานข้อมูลตัวอย่างทีม่ ีข้อมูลพอสมควรในการแสดงผลลัพธ์จากการสั่งให้คําสั่ง SQL
ทํางาน
7. แบบฝึกหัดท้ายบทที่ 6

การวัดผลและประเมินผล
การวัดผลและการประเมินผล ประกอบด้วยการวัดผลและการประเมินผล ดังนี้
1. สังเกตความสนใจในกิจกรรมการเรียนการสอนของผูเ้ รียน
2. สังเกตพฤติกรรมการมีส่วนร่วมในชั้นเรียน จากการฝึกปฏิบตั ิของผู้เรียนในแต่ละกรณี
3. วัดและประเมินผลเป็นรายบุคคลจากการส่งแบบฝึกหัดท้ายบทที่ 6 ซึ่งเป็นแบบฝึกหัด
ภาคปฏิบัติการเขียนคําสัง่ SQL
123

บทที่ 6 คาสั่ง SQL : Structure Query Language


SQL หรือ Structured Query Language เป็นภาษาที่ใช้ในการติดต่อกั บฐานข้อมู ล
หรือกล่าวคือ เป็นภาษาที่ใช้ในการสั่ง ให้ฐานฐานข้อมู ลกระทํ าการใดๆ ตามคําสั่ง ซึ่งในการติดต่ อ
ฐานข้อมูลนั้น ตัวอย่างเช่น SQL Server, Microsoft Access, MySQL, DB2 หรือแม้แต่ Oracle ก็
จะต้องใช้คําสั่งภาษา SQL ในการควบคุมทั้งสิ้น และผู้ที่ทํางานกับฐานข้อมูลจําเป็นต้องเรียนรูถ้ ึงคําสัง่
พื้นฐาน ของ SQL ที่จําเป็น
6.1 ประวัติและความเป็นมาของ SQL
SQL จัดเป็นภาษามาตรฐานบนระบบฐานข้อมูลเชิงสัมพันธ์ ซึ่งเป็นภาษาที่สามารถใช้
งานได้ในคอมพิวเตอร์ห ลายระดับด้วยกัน ทั้งคอมพิวเตอร์ขนาดใหญ่ ระดับเมนเฟรมคอมพิวเตอร์
จนถึง ระดับ ไมโครคอมพิวเตอร์ ดังนั้นในปัจ จุบันจะมี ผ ลิตภัณฑ์ ท างซอฟต์แวร์ร ะบบการจัดการ
ฐานข้อมูลซึ่งล้วนแล้วแต่สนับสนุนอยู่บนพื้นฐานของคําสั่ง SQL แทบทั้งสิ้น
ชุด คํ า สั่ ง หรื อ ภาษา SQL นั้ น ถู ก พั ฒ นาจากแนวความคิ ด ทางคณิ ต ศาสตร์ คื อ
Relational Algebra และ Relation Calculus ตามแนวคิดของเทคโนโลยีฐานข้อมูลเชิงสัมพันธ์ที่
E.F.Codd เป็นผู้คิดค้นขึ้นเมื่อปี ค.ศ. 1970 และต่อมาบริษัท IBM จึงเริ่มทําการวิจัยพัฒนาเมือ่ ปี ค.ศ.
1974 โดยใช้ชื่อว่า Structured English Query Language หรือ SEQUEL (ซีควอล) จากนั้นจึงมี
การปรับปรุงเวอร์ชั่นเป็น SEQUEL/2 เมื่อปี ค.ศ. 1976 และต่อมาก็ได้เปลี่ยนชื่อมาเป็น SQL อัน
เนื่องมาจากคําย่อเดิมนั้นไปซ้ํากับผลิตภัณฑ์อื่นที่ใช้มาก่อน ดังนั้นในปัจจุบันอาจจะได้ยินชื่อจากคน
บางกลุ่มที่มักจะเรียกชุดคําสั่งนี้ว่า “SEQUEL” แต่นั่นก็หมายถึง SQL นั่นเอง
หลัง จากปี ค.ศ. 1970 เป็นต้นมา ระบบฐานข้อมู ล ORACLE ซึ่ง ถูก พัฒนาโดยบริษัท
ORACLE Corporation และถือ เป็นก้าวแรกในเชิง พาณิชย์ สําหรับ การพัฒ นาระบบการจัดการ
ฐานข้อมูลเชิงสัมพันธ์ที่ตั้งอยู่บนพื้นฐานของ SQL และต่อมาก็มีผลิตภัณฑ์อื่นๆ พัฒนาตามมา
เมื่อมีผลิตภัณฑ์จากผู้ผลิตต่างๆ มากขึ้น จึงทําให้ SQL หลายๆ รูปแบบจากผลิตภัณฑ์
ต่างๆ ดังนั้นในราวปี ค.ศ. 1982 ทาง American National Standards Institute (ANSI) จึงได้
คิดค้นและร่างมาตรฐานของชุดคําสั่ง SQL เพื่อให้ผู้ผลิตรายต่างๆ สร้างชุดคําสั่งดังกล่าวให้อยู่ภายใต้
มาตรฐานเดียวกั น แต่ในปัจจุบันแต่ล ะผลิตภัณฑ์ ต่างก็มี การเพิ่มคุณสมบัติพิเ ศษเพิ่มเติมเพื่อให้มี
ประสิทธิภาพยิ่งขึ้น และถือเป็นจุดขายของผลิตภัณฑ์ แต่ทั้งนี้โดยหลักการแล้วชุดคําสั่งดังกล่าวยังคง
ตั้งอยู่บนพื้นฐานที่ทาง ANSI บัญญัติไว้ โดยปัจจุบันมีผลิตภัณฑ์ระบบการจัดการฐานข้อมูลต่างๆ เช่น
ORACLE, DB2, SYSBASE, Informix, MS-SQL, MS-Access, MySQL เป็นต้น (โอภาส เอี่ยมสิริวงศ์
การออกแบบและจัดการฐานข้อมูล หน้า 182)
124

6.2 ประเภทของคาสั่ง SQL


คําสั่ง SQL นั้นสามารถจัดประเภทคําสั่งอยู่ 3 ประเภท ด้วยกันดังนี้ คือ
6.2.1 ภาษานิยามข้อมูล (Data Definition Language : DDL) เป็นกลุ่มคําสั่งที่ใช้ใน
การสร้างฐานข้อมูล การกําหนดโครงสร้างข้อมูล ชนิดข้อมูล รวมไปถึงการจัดการด้านการ เพิ่ม แก้ไข
และลบฟิลด์ต่างๆ ในตาราง รวมถึงการสร้างคีย์หรือดัชนี
6.2.2 ภาษาจัดการข้อมูล (Data Manipulation Language : DML) เป็นประเภทของ
คําสั่งที่มีความสําคัญ โดยคําสั่งประเภทนี้จะใช้ในการปรับปรุงข้อมูลในตารางข้อมูล การเรียกข้อมูล
ตามเงื่อนไขต่างๆ ขึ้นมาแสดง การเพิ่มข้อมูลลงในตารางข้อมูล
6.2.3 ภาษาควบคุมข้อมูล (Data Control Language : DCL) เป็นกลุ่มคําสั่งที่ช่วยให้
ผู้บริห ารฐานข้อ มูลสามารถควบคุม ฐานข้อมูล เพื่อกําหนดสิท ธิการอนุญาต การยกเลิก การเข้าถึง
ข้อมูล ซึ่งเป็นกระบวนการด้านความปลอดภัยในฐานข้อมูล
ก่อนอื่นต้องทําความเข้าใจกับโครงสร้างของตารางข้อมูล ดังนี้ ฟิลด์ (Field) และ เรคค
อร์ด(Record) โดยขอใช้ภาพในการอธิบายโครงสร้างต่างๆ ที่จําเป็นดังนี้
6.3 ภาษานิยามข้อมูล (Data Definition Language : DDL)
ภาษานิยามข้อมูลในคําสั่ง SQL นั้นจะประกอบด้วยกลุ่มคําสั่งต่างๆ ดังต่อไปนี้
CREATE เป็นคําสั่งที่ใช้ในการสร้าง ซึ่งประกอบด้วย
CREATE TABLE เป็นคําสั่งที่ใช้ในการสร้างตาราง
CREATE INDEX เป็นคําสั่งที่ใช้ในการสร้างดัชนี
CREATE VIEW เป็นคําสั่งที่ใช้ในการสร้างวิว
DROP คําสั่งที่ใช้ในการลบ
DROP TABLE เป็นคําสั่งที่ใช้ในการลบตารางข้อมูล
DROP INDEX เป็นคําสั่งที่ใช้ในการลบดัชนี
DROP VIEW เป็นคําสั่งที่ใช้ในการลบวิว
ALTER คําสั่งที่ใช้ในการเปลี่ยนแปลงโครงสร้างตาราง
ซึ่งคําสั่งต่างๆ มีรายละเอียดและรูปแบบการใช้คําสั่งดังต่อไปนี้
6.3.1 การสร้างตาราง (CREATE TABLE)
ในการสร้ างตารางข้ อ มู ล นั้ น สามารถเขีย นคํา สั่ง เพื่อ สร้ า งตารางและกํ าหนด
รายละเอียดของฟิลด์ต่างๆ ที่อยู่ในตารางได้ดังนี้
125

ที่มา : http://www.thaicreate.com/tutorial/sql-create-table.html
TableName หมายถึง ชื่อตารางที่ต้องการสร้าง
ColumnName1 หมายถึงชื่อฟิลด์ที่ 1
DataType หมายถึง ชนิ ดของข้อมู ล ซึ่ง ขึ้นอยู่ กั บ ระบบจั ดการฐานข้อมู ล เช่ นหาก
กําหนดให้ฟิลด์นี้เป็นตัวอักษรและใช้ระบบจัดการฐานข้ อมูล MS Access จะต้องกําหนดชนิดเป็น
Text แต่หากใช้ระบบจัดการฐานข้อมูลอื่นอาจจะมีชนิดข้อมูลตัวอักษรให้เลือกมากขึ้นเช่น Varchar
โดยหากจะให้เห็นตัวอย่างการสร้างตารางและกํ าหนดฟิลด์ต่างๆ ในตาราง สามารถ
ศึกษาได้จากตัวอย่างต่อไปนี้

ที่มา : http://www.thaicreate.com/tutorial/sql-create-table.html
จากตัวอย่างเป็นคําสั่งที่ใช้ในการสร้างตารางชื่อ customer ซึ่งประกอบด้วยฟิลด์ดังนี้
CustomerID เป็นตัวอักษรไม่เกิน 4 ตัวอักษร และไม่อนุญาตให้เป็นค่าว่าง (NOT NULL)
Name เป็นตัวอักษรไม่เกิน 50 ตัวอักษร และไม่อนุญาตให้เป็นค่าว่าง
Email เป็นตัวอักษรไม่เกิน 50 ตัวอักษร และไม่อนุญาตให้เป็นค่าว่าง
CountryCode เป็นตัวอักษรไม่เกิน 2 ตัวอักษร และไม่อนุญาตให้เป็นค่าว่าง
Budget เป็นตัวเลขทศนิยมแบบ double และไม่อนุญาตให้เป็นค่าว่าง
Used เป็นตัวเลขทศนิยมแบบ double และไม่อนุญาตให้เป็นค่าว่าง
6.3.2 สร้างดัชนี (CREATE INDEX)
เป็น คําสั่ ง ที่ ใช้สํ าหรับ การสร้า ง Index โดยการ Index ข้อ มู ล ในฟิ ล ด์นั้ นตั ว
ฐานข้อมู ลจะให้ความสําคัญกับฟิ ลด์ที่เป็น Index โดยจะจัดเรียงต้นแบบเพื่อให้ง่ายต่อการเข้าถึง
ข้อมูลกลุ่มนั้นๆ ซึ่งการ Index จะเป็นประโยชน์ในการค้นหาข้อมูล ซึ่งมีรปู แบบการใช้คําสั่งดังต่อไปนี้
126

ที่มา : http://www.thaicreate.com/tutorial/sql-create-index.html
ในการสร้าง Index นั้นสามารถทําได้ 2 กรณี คือสามารถสร้าง Index ร่วมกับการสร้าง
ตาราง หรือสามารถสร้าง Index เพิ่มเติมหากมีตารางข้อมูลอยู่แล้วด้วยการใช้คําสั่ง ALTER TABLE
ตามรูปแบบการใช้คําสั่งข้างต้น
จากรูปแบบการใช้คําสั่งในกรณีที่สร้าง Index พร้อมกับการสร้างตารางข้อมูล สามารถ
ใช้คําสั่ง INDEX (ColumnName1, ColumnName2) โดยคําสั่งนี้จะสั่งให้ฟิลด์ที่ชื่อ ClumnName1
ตามด้วยฟิลด์ ColumnName2 เป็นฟิลด์ที่เป็น Index ของตารางตามลําดับ
ในกรณีที่มีตารางข้อมูลอยู่แล้วต้องการสร้าง Index ขึ้นมาในภายหลังสามารถใช้คําสั่ง
ALTER TABLE "TableName" ADD INDEX (Column1,Column2) ซึ่ง TableName หมายถึงชื่อ
ตารางที่ต้องการสร้าง Index และ Column1, Column2 คือชื่อฟิล ด์ที่ ต้องการให้เ ป็น Index
ตามลําดับ
6.3.3 การสร้าง View (CREATE VIEW)
การสร้าง View เป็นการสร้างโครงสร้างตารางที่ถูกจําลองขึ้นตามคําสั่ง SQL ที่เขียน
ขึ้น ซึ่งโดยปกติแล้วการคิวรี (Query) ข้อมูลจากตารางหากมีการ Join ข้อมูลหลายๆ ตารางแล้วได้ผล
ลัพธ์ที่ต้องการ เมื่อนําคิวรีนั้นไปงานงานบ่อยจะนิยมสร้าง View ขึ้นมาใช้งานแทน ดังตัวอย่างต่อไปนี้
CREATE VIEW StudentDetails
AS SELECT St_ID, ST_Name, ST_Dept
FROM Student

จากตัวอย่างเป็นการสร้างตารางจําลองขึ้นมาโดยให้มีชื่อว่า StudentDetails ซึ่ง


ตารางจําลองนี้จะดึงข้อมูลมาจากตารางชื่อ Student โดยนํามาเฉพาะบางฟิลด์ที่ต้องการ ในที่นี้คือ
รหัสนักศึกษา (ST_ID) ชื่อนักศึกษา (ST_Name) และ สาขาวิชา (ST_Dept) ซึ่งในความเป็นจริงแล้ว
ตารางข้อมูลนักศึกษาอาจจะมีข้อมูลมากกว่านี้ และตารางจําลองนี้จะสามารถเรียกข้อมูลได้เสมือนว่า
เป็นตารางข้อมูล
127

6.3.4 คาสั่งที่ใช้ในการลบ
การลบซึ่งสามารถลบ ตารางข้อมูล ดัชนี หรือแม้แต่วิว นั้น ต้องระมัดระวังเป็นอย่าง
มาก เนื่อ งจากข้อ มูล มี ความสําคัญ อีกทั้ ง คําสั่ง นี้ยัง เป็นการลบข้อมู ล ซึ่ง อาจจะมี ความสําคัญ ใน
ตารางข้อมูลออกทั้งตารางซึ่งรวมถึงข้อมูลที่อยู่ในตารางนั้นทั้งหมดด้วยเช่นเดียวกัน ซึ่งหากตรวจสอบ
จนมั่นใจแล้วว่ามี ความจําเป็นต้อ งลบตารางข้อมู ลออกจากฐานข้อมู ลจริงๆ โดยนอกจากการลบ
ตารางข้อมูลแล้วก็ยังสามารถลบ ดัชนี และ วิว ได้ด้วยเช่นกัน คําสั่งต่อไปนี้
DROP TABLE TableName

คําสั่ง DROP TABLE นี้ใช้ในการลบตารางข้อมูลทิ้ง โดย TableName หมายถึงชื่อ


ตารางข้อมูลที่ต้องการลบออกจากฐานข้อมูล
DROP INDEX IndexName

คําสั่ง DROP INDEX เป็นคําสั่งที่ใช้ในการลบดัชนีออกจากตารางข้อมูล โดยการใช้


คําสั่งนี้แล้วตามด้วยชื่อดัชนีที่ต้องการลบ โดยจากรูปแบบคําสั่งข้างต้น IndexName คือชื่อของดัชนีที่
ต้องการลบ
DROP VIEW ViewName

คําสั่ง DROP VIEW เป็นคําสั่งที่ใช้ในการลบวิวออกจากฐานข้อมูล โดยสามารถใช้


คําสั่งนี้แล้วตามด้วยชื่อของวิว ที่ต้องการลบ โดยจากรูปแบบคําสั่งข้างต้น ViewName คือชื่อของวิว
ที่ต้องการลบออกจากฐานข้อมูล
6.4 ภาษาจัดการข้อมูล (Data Manipulation Language : DML)
คําสั่ง SQL ในส่วนนี้จะประกอบด้วยกลุ่มคําสั่งที่เกี่ ยวกับการคิวรีข้อมูลในฐานข้อมู ล
การเพิ่มข้อมูลในตาราง การปรับปรุงข้อมูลในตาราง และการลบข้อมูลในตาราง
สําหรับตัวอย่างในบทนีจ้ ะมีตารางข้อมูลด้วยกัน 3 ตาราง ดังต่อไปนี้
1. Customer เป็นตารางซึ่งใช้ในการเก็บข้อมูลลูกค้า
2. Audit เป็นตารางซึ่งใช้ในการเก็บข้อมูลการใช้ยอดเงินลูกค้า
3. Country เป็นตารางซึ่งใช้เก็บข้อมูลประเทศ
128

ตารางที่ 6.1 ตารางข้อมูลลูกค้า (Customer)


ที่มา : http://www.thaicreate.com
CustomerID Name Email CountryCode Budget Used
C001 Win Weerachai win.weerachai@thaicreate.com TH 1000000 600000
C002 John Smith john.smith@thaicreate.com EN 2000000 800000
C003 Jame Born jame.born@thaicreate.com US 3000000 600000
C004 Chalee Angel chalee.angel@thaicreate.com US 4000000 100000

ตารางที่ 6.2 ตารางเก็บข้อมูลการใช้เงินของลูกค้า (Audit)


ที่มา : http://www.thaicreate.com
AuditID CustomerID Date Used
1 C001 2008-07-01 100000
2 C001 2008-07-05 200000
3 C001 2008-07-10 300000
4 C002 2008-07-02 400000
5 C002 2008-07-07 100000
6 C002 2008-07-15 300000
7 C003 2008-07-20 400000
8 C003 2008-07-25 200000
9 C004 2008-07-04 100000

ตารางที่ 6.3 ตารางเก็บข้อมูลประเทศ (Country)


ที่มา : http://www.thaicreate.com
CountryCode CountryName
TH Thailand
EN English
US United states

SELECT เป็นคําสั่งที่ใช้สําหรับการเรียกดูข้อมูลในตาราง โดยคําสั่ง SQL SELECT สามารถ


เรียกได้ทั้งตาราง หรือว่า สามารถระบุฟิลด์ที่ต้องการเรียกดูข้อมูลก็ได้ โดยมีรูปแบบคําสั่ง ดังนี้

Column1, Column2 หมายถึง ชื่อฟิลด์ต่างๆ ที่ต้องการเรียกดูข้อมูล


Table-Name หมายถึง ชื่อตารางข้อมูลที่ต้องการเรียกข้อมูล
129

จากรูปแบบการใช้คําสั่งจะระบุคําสั่ง SELECT ตามด้วย ชื่อคอลัมน์หรือชื่อฟิลด์ที่ต้องการ


เรียกดูข้อมูล หากต้องการเรียกข้อมูลมากกว่าหนึ่งฟิลด์ก็สามารถคั่นด้วยเครื่องหมาย , แล้วตามด้วย
ชื่อฟิลด์หรือชื่อคอลัมน์ถัดไปเรื่อยๆ จากนั้นเมื่อระบุชื่อคอลัมน์หรือฟิลด์ที่ต้องการเรียกดูจนครบถ้วน
แล้วจะต้องตามด้วยคําสั่ง FROM โดยหลังคําสั่งนี้จะตามด้วยชื่อตารางข้อมูลที่ต้องการเรียกดูข้อ มูล
ดังตัวอย่างต่อไปนี้

จากตารางข้อมูลพนักงาน (Customer) หากต้องการเขียนคําสั่ง SQL เพื่อเรียกข้อมูล รหัส


พนักงาน ชื่อพนักงาน อีเมล์ จากตารางพนักงาน สามารถเขียนคําสั่งได้ดังนี้

จากคําสั่งข้างต้น จะได้ผลลัพธ์ของข้อมูลตามคําสัง่ ดังนี้

แต่หากต้องการเลือกข้อมูลจากทุกๆ ฟิลด์ในตารางข้อมูลลูกค้าสามารถเครื่องหมายดอกจัน
(*) แทนชื่อคอลัมน์หรือชื่อฟิลด์ทั้งหมดในตารางดังต่อไปนี้
130

การเรียกข้อมูลทัง้ ตารางแบบนี้ใช้งานได้ง่ายเขียนคําสั่งสั้นก็จริงแต่ก็มีข้อควรระวัง เนื่องจาก


ตารางที่ใช้ในการเก็บข้อมูลบางตารางนั้นมีข้อมูลอยูเ่ ป็นจํานวนมาก หากใช้คําสั่งเรียกข้อมูลทัง้ ตาราง
แบบนี้พร้อมๆ กัน หรือโปรแกรมเมอร์เขียนคําสั่งเพื่อเรียกข้อมูลทัง้ ตารางแบบนี้ขึ้นมาบ่อยครั้งทัง้ ๆ ที่
ตารางนั้นมีข้อมูลอยูเ่ ป็นจํานวนมาก อาจจะทําให้ระบบทํางานหนักหรือหยุดทํางานไป หรือให้บริการ
งานอื่นไม่ทัน
WHERE เป็ น คํ า สั่ ง ที่ ใ ช้ สํ า หรั บ การระบุ เ งื่ อ นไขการเลื อ กข้ อ มู ล ในตาราง โดยคํ า สั่ ง
WHERE สามารถระบุเ งื่อนไขในการเลือกข้อมูลได้ 1 เงื่อนไข หรือมากกว่า 1 เงื่อนไข โดยคําสั่ง
WHERE มีรูปแบบการใช้คําสั่งดังนี้ โดยที่
Column1, Column2, Column3… หมายถึงชื่อฟิลด์ที่ต้องการเรียกดูข้อมูล
Table-Name หมายถึงชื่อตารางข้อมูลที่ต้องการเรียกดูข้อมูล
[Field] = ‘Value’ หมายถึงเงื่อนไขในการเรียกดูข้อมูลว่าเงื่อนไขในฟิลด์ที่ต้องการเรียกดูมี
ค่าอะไร

จากตารางข้อมูลพนักงานหากต้องการเขียนคําสั่ง SQL เพื่อเรียกดูข้อมูลโดยมีเงื่อนไขด้วย


การใช้คําสั่ง SELECT ร่วมกับคําสั่ง WHERE สามารถทําได้ดังตัวอย่างต่อไปนี้

จากตัวอย่างข้างต้นซึ่งแสดงวิธีระบุเงื่อนไขในคําสั่ง SQL ด้วยการใช้คําสั่ง WHERE แบบหนึ่ง


เงื่อนไขและมากกว่าหนึ่งเงื่อนไขซึ่งอธิบายได้ดังนี้
จากภาพการเขียนคําสั่ง SQL ที่ระบุเงื่อนไขหนึ่งเงื่อนไขอธิบายได้ว่า เป็นการเรียกดูข้อมูล
ทุกๆ ฟิลด์ จากตารางพนักงาน โดยมีเงื่อนไขว่าเรียกดูข้อมูลเฉพาะพนักงานที่มี CountryCode เป็น
us เท่านั้น ส่วนคําสั่งที่มีเงื่อนไขมากกว่าหนึ่งเงื่อนไขจากตัวอย่างจะเห็นได้ว่ามีการเชื่อมเงื่อนไขสอง
เงื่อนไขเข้าด้วยกันด้วย and ซึ่งข้อมูลที่จะแสดงจะต้องตรงกับเงื่อนไขทั้งสองเงื่อนไขเท่านั้น ซึ่งจาก
ภาพข้อมูลของพนักงานที่จะแสดงออกมาจะต้องมี CountryCode เป็น us และนอกจากนั้น ยังต้องมี
ค่าในฟิลด์ Budget เท่ากับ 4000000 ด้วย จึงจะแสดงข้อมูลตามเงื่อนไขนี้ออกมา แต่หากเปลี่ยนตัว
เชื่อมเงื่อนไขจาก and เป็น or ข้อมูลที่แสดงออกมาหากเข้าเงื่อนไขใดเงื่อนไขหนึ่งก็จะแสดงทั้งหมด
โดยผลลัพท์จากตัวอย่างคําสั่งข้างต้นโดยเรียงลําดับผลลัพท์ ดังนี้
131

จากตัวอย่างข้างต้นซึ่งใช้ตัวดําเนินการทางคณิตศาสตร์ (Operator) คือเครื่องหมายเท่ากั บ


(=) ในการระบุเ งื่อ นไขแล้ ว ยัง สามารถใช้ เ ครื่อ งหมายอื่น ๆ เป็น Operator ได้อี ก ด้ว ยเช่ น
เครื่องหมายไม่ เท่ ากับ (!=) เครื่องหมายมากกว่า (>) เครื่องหมายมากกว่าหรือเท่ากั บ (>=)
เครื่องหมายน้อยกว่า (<) เครื่องหมายน้อยกว่าหรือเท่ากับ (<=) เป็นต้น ทั้งนี้การใช้ Operator ใดๆ
นั้นจะต้อ งขึ้นอยู่กั บ ชนิดของฟิ ล ด์ที่ เ ก็ บ ด้วย เช่น หากใช้เ ครื่องหมายเท่ ากั บ เป็น Operator นั้น
สามารถใช้ได้กับทั้งตัวเลขและตัวอักษร แต่หากต้องการใช้เครื่องหมายเปรียบเทียบค่ามากกว่า น้อย
กว่า อาจจําเป็นต้องใช้สําหรับฟิลด์ที่มีชนิดเป็นตัวเลขเท่านั้น
นอกจากนั้นหากมีเงื่อนไขมากกว่า 1 เงื่อนไข สามารถใช้ตัวดําเนินการทางตรรกะ (Logical
Operator) ซึ่งได้แก่ AND หรือ OR เชื่อมระหว่างเงื่อนไขต่างๆ เข้าด้วยกันซึ่งหากใช้ตัวดําเนินการ
ทางตรรกะดังกล่าวเชื่อมเงื่อนไขซึ่งระบุไว้หลังคําสั่ง WHERE แล้วนั้นคําสั่งจะทํางานก็ ต่อเมื่อผลลัพธ์
ของเงื่อนไขนั้นเป็นจริง ซึ่งเงื่อนไขจะเป็นจริงได้หากใช้ตัวดําเนินการทางตรรกะ AND มีกรณีเดียว
เท่านั้นคือ ทุกเงื่อนไขต้องเป็นจริง แต่หากเชื่อมเงื่อนไขด้วยตัวดําเนินการทางตรรกะ OR เงื่อนไขนั้น
จะเป็นจริงได้หากเงื่อนไขใด เงื่อนไขหนึ่งเป็นจริงเท่านั้น ดังตารางสรุป

ตารางที่ 6.4 ผลลัพธ์ของตัวดาเนินการทางตรรกะ AND และ OR


ที่มา : ผู้เรียบเรียง

ผลของตัวดําเนินการทางตรรกะ AND
ผลลัพธ์จากเงือ่ นไขที่ 1 ผลลัพธ์จากเงือ่ นไขที่ 2 ผลลัพธ์ของเงื่อนไขทั้งหมด
จริง (True) จริง (True) จริง (True)
จริง (True) เท็จ (False) เท็จ (False)
เท็จ (False) เท็จ (False) เท็จ (False)
132

ผลของตัวดําเนินการทางตรรกะ OR
ผลลัพธ์จากเงือ่ นไขที่ 1 ผลลัพธ์จากเงือ่ นไขที่ 2 ผลลัพธ์ของเงื่อนไขทั้งหมด
จริง (True) จริง (True) จริง (True)
จริง (True) เท็จ (False) จริง (True)
เท็จ (False) เท็จ (False) เท็จ (False)

รูปแบบการใช้ตัวดําเนินการทางตรรกะร่วมกับคําสั่ง SQL สามารถทําได้ดังนี้

จากรูปแบบการใช้คําสั่งหากนํามาประยุกต์ใช้กับการเรียกข้อมูลด้วยคําสั่ง SQL สามารถทํา


ได้ดังตัวอย่างต่อไปนี้

จากตารางข้อมูลลูกค้า (Customer) หากต้องการเลือกข้อมูลลูกค้าที่มี CountryCode เป็น


US และ Used มี ค่ า เท่ า กั บ 100000 หรื อ อี ก ตั ว อย่ า งหนึ่ ง ต้ อ งการเลื อ กข้ อ มู ล ลู ก ค้ า ที่ มี
CountryCode เป็น TH หรือ EN สามารถเขียนคําสั่ง SQL ได้ดังต่อไปนี้
133

ซึ่งผลลัพธ์ของคําสั่งข้างต้นจะได้ดังนี้

ORDER BY เป็นคําสั่งที่ใช้สําหรับเรียงลําดับข้อมูลตามต้องการ ซึ่งการเรียงลําดับข้อมูลนั้น


สามารถทําได้สองวิธีใหญ่ๆ คือการเรียงลําดับจากค่าน้อยไปหาค่ามาก และการเรียงลําดับจากค่ามาก
ไปหาค่าน้อย โดยผลลัพธ์จากการเรียงลําดับนั้นขึ้นอยู่กับชนิดของข้อมูลในฟิลด์ที่เก็บด้วย เช่น หาก
ต้องการเรียงลําดับ ข้อ มูล ที่ชนิดของข้อมูล เป็นตัวเลขก็จ ะเรียงลําดับ จากค่าตัวเลขนั้น แต่ห ากสั่ง
เรียงลําดับข้อมูลทีเ่ ป็นตัวอักษรก็จะเรียงลําดับก่อนหลัง เช่น อักษร “A” เมื่อสั่งให้เรียงลําดับแล้วจะมี
ค่าน้อยกว่าอักษร “B” โดยหากต้องการใช้คําสั่ง ORDER BY มีรูปแบบการใช้คําสั่งดังนี้

Field หมายถึง ชื่อฟิลด์ที่ต้องการให้เรียงลําดับข้อมูล


ASC/DESC หมายถึง วิธีเรียงลําดับข้อมูล ซึ่ง ASC คือคําสั่งให้เรียงลําดับข้อมูลจากน้อยไป
หามาก และ DESC คือคําสั่งที่ใช้เรียงลําดับข้อมูลจากมากไปหาน้อย
โดยในการเรียงลําดับมากกว่าหนึง่ ฟิลด์ ก็สามารถใช้เครื่องหมายจุลภาค (“,”) คั่นและตาม
ด้วยฟิลด์ถัดไป
ตัวอย่างการใช้คําสั่ง ORDER BY จากตารางข้อมูลพนักงาน ดังนี้

จากตัวอย่าง ประโยคคําสั่งแรกอธิบายได้ว่า เลือกข้อมูลทุกฟิลด์จากตารางข้อมูล customer


โดยให้เรียงลําดับข้อมูลด้วย CustomerID จากน้อยไปหามาก
134

ในประโยคตัว อย่างคําสั่ง ที่ ส อง อธิบ ายได้ว่า เลือกข้อมู ล จากทุ ก ฟิ ล ด์จ ากตารางข้อมู ล


customer โดยให้เรียงลําดับข้อมูลจาก CustomerID จากมากไปหาน้อย
ตัวอย่างสุดท้าย อธิบายได้ว่า เลือกข้อมูลจากทุกฟิลด์จากตารางข้อมูล customer โดยให้
เรียงลําดับข้อมูล CountryCode จากมากไปหาน้อยเป็นลําดับแรก จากนั้นให้เรียงข้อมูลจากฟิลด์
CustomerID จากน้อยไปหามากเป็นลําดับที่สอง
โดยผลลัพธ์ที่ได้จากประโยคคําสั่งทั้งสามประโยคข้างต้น ดังภาพตามลําดับ

BETWEEN เป็นคําสั่งที่ใช้สําหรับการระบุเงือ่ นไขในการเลือกข้อมูลในตาราง โดยเงื่อนไขเป็น


เงื่อนไขที่ระบุช่วงข้อมูลที่เป็นตัวเลข โดยรูปแบบการใช้คําสั่งสามารถทําได้ดังนี้ โดย Value-Start คือ
ค่าเริ่มต้น และ Value-End คือค่าสุดท้าย โดยค่าเริ่มต้นจะต้องมีค่าน้อยกว่าค่าสุดท้ายเสมอ

จากรูปแบบการใช้คําสั่ง BETWEEN ข้างต้น ขอยกตัวอย่างการใช้คําสั่งดังนี้


135

จากประโยคคํา สั่ ง SQL ข้า งต้น อธิ บ ายได้ว่ า ต้ อ งการเลื อกข้ อมู ล ทุ ก ฟิ ล ด์ จ ากตาราง
customer โดยมีเงื่อนไขว่าข้อมูลในฟิลด์ Budget จะต้องมีค่าอยู่ระหว่าง 1000000 ถึง 3000000
ซึ่งผลลัพธ์ที่ได้จากการทํางานของประโยคคําสั่งดังกล่าวเป็นดังนี้

JOIN เป็นคําสั่งที่ใช้สําหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยเงื่อนไข


การ JOIN จะกระทําเมื่อมีข้อมูลตั้งแต่ 2 ตารางขึ้นไปโดยข้อมูลเหล่านั้นเป็นข้อมูลที่มีความสัมพันธ์
และเชื่อมโยงกับข้อมูลหลัก โดยมีรูปแบบการใช้คําสั่งดังต่อไปนี้

จากรูปแบบการใช้คําสั่งข้างต้นจะเป็นความแตกต่างในการอ้างชื่อฟิลด์ที่ต้องการเรียกดูข้อมูล
จากคําสั่งอื่นๆ ที่เคยกล่าวมาแล้วเนื่องจากเป็นการเรียกดูข้อมูลจากตารางมากกว่าหนึ่งตาราง ดังนั้น
ในการอ้างถึงชื่อฟิลด์ใดๆ จะต้องใช้รูปแบบการอ้างชื่อดังนี้ “ชื่อตารางข้อมูล.ชื่อฟิลด์ ” เพื่อให้ทราบ
ว่าแต่ละฟิลด์ที่อ้างถึงนั้นมาจากตารางข้อมูลใด โดยตัวอย่างการใช้คําสั่งเพื่อ JOIN ข้อมูลจากสอง
ตารางมีดังนี้
136

จากภาพแสดงข้อมูลจากตาราง Customer และ ตาราง audit โดยหากจําเป็นต้องเขียน


คําสั่งเพื่อเรียกข้อมูลมาจากสองตารางมาใช้งานร่วมกันด้วยการ JOIN เช่น ในตารางข้อมูล audit นั้น
มีรหัสลูกค้า (CustomerID) แต่ไม่มีรายละเอียดใดๆ ของลูกค้าหากจําเป็นต้องดึงข้อมูลใดๆ ของลูกค้า
มาแสดงผลหรือมาใช้งานร่วมกัน เช่น ต้องการแสดงชื่อ ลูกค้า สามารถเขียนคําสั่งได้ดังต่อไปนี้

จากตัวอย่างคําสั่งอธิบายได้ว่าคําสั่งนี้เขียนขึ้นเพื่อเรียกดูข้อมูลทุกฟิลด์จากตาราง customer
และตาราง audit โดยให้มีความสัมพันธ์ระหว่างตารางทั้งสองตารางด้วยฟิลด์ customerID ของทั้ง
สองตารางเข้าด้วยกัน ผลลัพธ์ที่ได้จะเป็นดังนี้
137

ในตัวอย่างต่อไปจะแสดงการใช้คําสั่งเพื่อ JOIN ข้อมูลของตารางสองตาราง อีกทั้งสามารถ


กําหนดเงื่อนไขในการแสดงข้อมูล ดังตัวอย่างการใช้คําสั่งต่อไปนี้

จากตัวอย่างคําสั่งข้างต้นอธิบายได้ว่า เป็นการเลือกดูข้อมูลทุกฟิลด์จากตาราง customer


และตาราง audit โดยเชื่อมความสัมพันธ์ของทั้งสองตารางเข้าด้วยกันด้วยฟิลด์ CustomerID จากฝั่ง
ตาราง Customer ไปหาฟิลด์ CustomerID ในฝั่งตาราง audit อีกทั้งยังมีเงื่อนไขในการแสดงข้อมูล
คือให้แสดงข้อมูลเฉพาะที่รหัส ลูกค้าฝั่ง ตาราง customer เป็น รหัส “C001” เท่านั้น โดยจะได้
ผลลัพธ์ในการกระทําตามชุดคําสั่งข้างต้นจะเป็นดังนี้

DISTINCT เป็นคําสั่งที่ใช้สําหรับการระบุข้อมูลจากตาราง โดยจะทําการเลือกข้อมูลที่มีซ้ํา


กันมาเพียงแถว (Record) เดียว เท่านั้น โดยมีรูปแบบการใช้คําสั่งดังต่อไปนี้

จากรูป แบบการใช้ คํา สั่ง DISTINCT ข้ างต้น หากยกตัว อย่ างตารางข้ อมู ล ลู ก ค้ า ซึ่ง มี
รายละเอียดของตารางข้อมูลดังนี้

จากตารางข้อมูลลูกค้าหากต้องการเลือกรหัสประเทศ (CountryCode) ออกมาด้วยคําสั่ง


Select จะเห็นได้ว่าจะมีข้อ มูลรหัสประเทศ “US” ซ้ํากัน 2 ครั้ง แต่หากใช้คําสั่ง DISTINCT ดัง
ตัวอย่าง ผลลัพธ์ที่ซ้ํากันในแต่ละแถวจะแสดงเพียงครั้งเดียว ดังนี้
138

ผลลัพธ์ที่ได้จากคําสั่ง เป็นดังนี้ ซึ่งจะเห็นว่าแถวของข้อมูลที่ซ้ํากันจะถูกแสดงเพียงครั้งเดียว

TOP เป็นคําสั่งที่ใช้สําหรับระบุจํานวนแถวของข้อมูลที่ ต้องการให้แสดงผล โดยสามารถ


กําหนดตัวเลขจํานวนแถวซึ่งจะเป็นตัวเลขจํานวนเต็มหลังคําสั่ง TOP โดยมีรูปแบบการใช้คําสั่งดังนี้

จากรูปแบบคําสั่งข้างต้นขอยกตัวอย่างการใช้คําสั่ง TOP กับตารางข้อมูลลูกค้า โดยใช้คําสั่ง


ดังต่อไปนี้

จากตัวอย่างอธิบายได้ว่า มีการเรียกดูข้อมูลโดยให้แสดงผลข้อมูลเพียง 2 แถว เท่านั้น โดย


ข้อมูล ที่เ รียกมาแสดงให้แสดงทุก ฟิล ด์ของตารางลูกค้า และให้เรียงลําดับข้อมูล ที่แสดงด้วยฟิล ด์
Budget จากมากไปหาน้อย ดังนั้นไม่ว่าข้อมูลที่ตรงตามเงื่อนไขในคําสั่งจะมีจํานวนกี่แถวก็แล้วแต่ แต่
มีการกําหนดการแสดงผลแถวข้อมูลไว้ด้วยคําสั่ง TOP 2 ดังนั้นผลลัพธ์ที่แสดงออกมาด้วยคําสั่งนี้จะมี
เพียงสองแถวเท่านั้น ดังภาพ

INSERT เป็นคําสั่งที่ใช้สําหรับเพิ่มข้อมูลลงในตาราง โดยการเพิ่มข้อมูลนี้สามารถทําได้แบบ


การเพิ่มทั้งแถวหรืออาจเพิ่มข้อมูลเพียงบางฟิลด์ก็ได้ โดยรูปแบบของการเขียนคําสั่งเพิ่มข้อมูลดังนี้
139

จากรูปแบบการใช้คําสั่ง INSERT ข้างต้นอธิบายได้ว่า ให้ใช้คําสั่ง INSERT ตามด้วย INTO


จากนั้นให้ระบุชื่อตารางที่ต้องการเพิ่มข้อมูล ตามด้วยการระบุชื่อฟิลด์ที่ต้องการเพิ่มข้อมูลโดยหาก
ต้องการเพิ่ ม ข้อ มู ลในหลายๆ ฟิ ลด์ก็ สามารถคั่นชื่อฟิล ด์ด้วยเครื่องหมายคอมม่ า (,) ไปได้เรื่อยๆ
หลังจากชื่อฟิลด์ให้ระบุคําสั่ง VALUES โดยต่อจากคําสั่งนี้จะเป็นค่าต่างๆ ที่ต้องการให้บันทึกลงใน
ฟิลด์ โดยการระบุค่าจะต้องเรียงลําดับตามฟิลด์หลังคําสั่ง INTO จากรูปแบบคําสั่ง INSERT INTO
ข้างต้น ฟิลด์ที่ชื่อ Column1 ก็จะมีการบันทึกข้อมูลจาก Value1 เช่นเดียวกับฟิลด์ Column2 จะถูก
แทนค่าด้วย Value2 เป็นลําดับกันไปตามที่ระบุในชุดคําสั่ง
ตัวอย่างการใช้คําสั่ง INSERT เพื่อเพิ่มข้อมูลลงในตาราง

จากตารางข้อมูลประเทศ ซึ่งประกอบด้วย รหัสประเทศและชื่อประเทศ หากต้องการเพิ่ม


ข้อมูลประเทศลงไปเพิ่มในตาราง สามารถทําได้โดยใช้คําสั่งดังนี้

จากตัวอย่าง จะเห็นได้ว่าสามารถเขียนคําสั่งได้ 2 แบบ โดยแบบแรกระบุเพียงชื่อตาราง


จากนั้นก็ระบุค่าที่ต้องการบันทึกลงตารางตามลําดับ และแบบที่สองจะเป็นว่ามีการระบุชื่อตารางที่
ต้องการเพิ่มข้อมูลรวมถึงมีการระบุชื่อฟิลด์ที่ต้องการเพิ่มข้อมูล และตามด้วยข้อมูลที่ต้องการเพิ่มคือ
ประเทศจี น โดยใช้ ร หั ส ประเทศ (CountryCode) “CH” ชื่ อ ชื่ อ ประเทศ (CountryName)
“Chaina” ลงในตาราง ประเทศ (Country) ซึ่งผลลัพธ์จากคําสั่งที่ได้จะเป็นดังนี้

UPDATE เป็นคําสั่งที่ใช้สําหรับแก้ไขข้อมูลในตารางโดยสามารถทําการแก้ไขได้หลายฟิลด์
และหลายระเบียน (Record) ภายในการใช้คําสั่งเพียง 1 คําสั่ง ทั้งนี้ขึ้นอยู่กับการใช้เงื่อนไขด้วยคําสั่ง
WHERE ร่วมในการระบุเงื่อนไขในการแก้ไขข้อมูลในตาราง โดยมีรูปแบบการใช้คําสั่งดังนี้
140

SET Column1= ‘Value1’ หมายถึงให้ฟิลด์ที่ชื่อ Column1 มีค่าเท่ากับ Value1


WHERE Clause หมายถึง เงื่อนไขที่ใช้ในการแก้ไขข้อมูล
จากรูปแบบการใช้คําสั่งอธิบายได้ว่าการใช้คําสั่ง UPDATE แล้วตามด้วยชื่อตารางข้อมูลที่
ต้องการแก้ไขข้อมูล ตามด้วยคําสั่ง SET หลังจากนั้นให้ระบุฟิลด์และการให้ค่า หากมีหลายฟิลด์ก็
สามารถคั่นด้วยเครื่องหมาย จุลภาค (,) ไปได้เรื่อยๆ เมื่อระบุฟิลด์ที่ต้องการแก้ไขข้อมูลครบถ้วนแล้ว
สามารถระบุเงื่อ นไขในการแก้ ไขข้อ มูล ด้วยคําสั่ง WHERE เพิ่มเติม ในตอนท้ ายประโยคคําสั่ง ดัง
ตัวอย่างต่อไปนี้

จากตารางข้อมูลประเทศ (Country) ข้างต้น หากต้องการแก้ไขข้อมูลในตารางดังกล่าวโดย


ใช้คําสั่ง UPDATE ดังนี้

จากตัวอย่างการใช้คําสั่งอธิบ ายได้ว่า มีก ารใช้คําสั่ง UPDATE เพื่อแก้ ไขข้อมู ล ในตาราง


Country โดยแก้ไข รหัสประเทศ (CountryCode) ใหม่จากข้อมูลเดิมเป็นรหัสประเทศ JP และแก้ไข
ชื่อประเทศ (CountryName) จากเดิมเป็นชื่อประเทศใหม่เป็น Japan โดยให้แก้เฉพาะระเบียน
(Record) ที่มีรหัสประเทศเป็น CH เท่านั้น เมื่อสั่งให้ประโยคคําสั่งนี้ทํางานผลลัพธ์ที่ได้จะเป็นดังภาพ
ต่อไปนี้
141

DELETE เป็นคําสั่งที่ใช้สําหรับระเบียนหรือแถวข้อมูลออกจากตาราง โดยสามารถทําการลบ


ได้หลายแถวภายในคําสั่งเดียว หรืออาจจะลบเพียงแถวเดียวนั้นก็ขึ้นอยู่กับ เงื่อนไขในการลบซึ่งเขียน
ด้วยคําสั่ง WHERE ไว้ท้ายประโยคคําสั่ง โดยรูปแบบของการใช้คําสั่ง DELETE มีดังนี้

จากรูปแบบคําสั่งข้างต้นการใช้คําสั่ง SQL เพื่อลบแถวของข้อมูลในตาราง สามารถใช้คําสั่ง


DELETE FROM ตามด้วยชื่อตารางที่ต้องการลบแถวข้อมูล จากนั้นใช้คําสั่ง WHERE เพื่อกําหนด
เงื่อนไขในการลบข้อมูล ดังตัวอย่างต่อไปนี้

จากตารางข้อ มู ล ประเทศข้า งต้น หากต้องการลบข้อมู ล ประเทศในแถวสุดท้ ายคือรหั ส


ประเทศ JP สามารถใช้คําสั่ง SQL เพื่อลบข้อมูลดังกล่าวได้ดังต่อไปนี้

คําสั่ง นี้เ ป็นคําสั่งเพื่อ ลบข้อมู ลจากตาราง country โดยมีเ งื่อนไขว่าข้อมูล ที่ ต้องการลบ
จะต้องมีค่าในฟิลด์ CountryCode เป็นคําว่า JP
เมื่อสั่งให้ประโยคคําสั่ง SQL นี้ทํางานผลลัพธ์ที่ได้จะเป็นดังภาพ
142

6.5 ภาษาควบคุมข้อมูล (Data Control Language : DCL)


DCL คือกลุม่ ของภาษา SQL ที่ใช้สําหรับการกําหนดสิทธิในการเข้าถึงข้อมูลทีจ่ ัดเก็บอยู่ใน
ตารางข้อมูล เช่น กําหนดให้ นาย A สามารถเข้าถึงเฉพาะตารางข้อมูลนี้โดยห้ามเข้าถึงตารางข้อมูล
อื่นๆ หรือ กําหนดให้ นาย B เข้าถึงได้เฉพาะ Field ที่ต้องการเป็นต้น โดยมีคําสั่งต่างๆ โดยสังเขป
ดังนี้
1. GRANT เป็นคําสั่ง SQL ในกลุ่มของ DCL ที่ใช้สําหรับการให้สิทธิกับบุคคลต่างๆ เพื่อ
เข้าถึงข้อมูลในระดับที่กําหนด โดยมีรปู แบบคําสั่ง ดังนี้

Privileges เป็นรายการสิทธิซึ่งต้องมีจลุ ภาคแบ่งรายการสิทธิ


Object คือ ฐานข้อมูลหรือตารางข้อมูลในการประยุกต์สิทธิใหม่ การให้สิทธิกั บฐานข้อมูล
ทั้งหมดโดยใช้ *.* ที่ Object เรียกว่า การให้สิทธิระดับ global การระบุ ตารางข้อมูลทั้งหมดใน
ฐานข้อมูลให้ ชื่อฐานข้อมูล.* หรือหากเป็นตารางข้อมูลเดียวใช้ ชื่อฐานข้อมูล.ชื่อตาราง
User เป็นชื่อผู้ใช้ที่ต้องการให้ระบบจัดการฐานข้อมูลดําเนินการตามคําสั่ง
With Grant Option เป็นตัวเลือกการยอมให้ผู้ใช้ที่ระบุสามารถโอนสิทธิให้กับคนอื่นได้
2. REVOKE เป็นคําสั่ง SQL ในกลุ่มของ DCL ที่ใช้สําหรับการยกเลิกสิทธิ์การเข้าถึงข้อมูล
ของบุคคลต่างๆ โดยมีรปู แบบคําสั่ง ดังนี้

โดย <privilege> คือสิทธิในการเข้าถึงข้อมูลของผู้ใช้ โดยสามารถระบุคําสั่งในกลุ่ม DML ลง


ไปได้ เช่น SELECT, UPDATE, DELETE และ INSERT
ส่วน <object> จากคําสั่ ง ข้างต้นหมายถึง ชื่อตารางข้ อมู ล ที่ ต้องการกํ า หนดสิ ท ธิและ
<user> คือชื่อผู้เข้าใช้งานฐานข้อมูล
143

สรุปท้ายบท
ในบทนี้ได้กล่าวถึงคําสั่ง SQL (Structure Query Language) ซึ่งเป็นคําสั่ง ที่ใช้สําหรับ
จัดการระบบฐานข้อมูลเชิงสัมพั นธ์ ซึ่งผู้ผลิตแต่ละรายก็ได้ออกผลิตภัณฑ์ที่ใช้จัดการฐานข้อมูล แต่
คําสั่ง SQL ก็ยังใช้เป็นภาษากลางที่ใช้ในการติดต่อระบบจัดการฐานข้อมูลเชิงสัมพันธ์ ซึ่งคําสั่ง SQL
นั้นสามารถแบ่งเป็นประเภทต่างๆ ได้ดังนี้ DDL (Data Definition Language) คําสั่งประเภทนี้ใช้ใน
การจัดการและนิยามโครงสร้างของฐานข้อมูล ซึ่งได้แก่ การสร้างฐานข้อมูล การแก้ไข หรือการลบ
ฐานข้อมูล ส่วนคําสั่งประเภท DCL (Data Control Language) เป็นกลุ่มของภาษา SQL ที่ใช้สําหรับ
กําหนดสิทธิในการเข้าถึงข้อมูลที่จัดเก็บอยู่ในระบบจัดการฐานข้อมูล ส่วนคําสั่งประเภทสุดท้ายคือ
คําสั่งประเภท DML (Data Manipulation Language) เป็นกลุ่มคําสั่งที่จัดได้ว่าเป็นแกนสําคัญของ
ภาษา SQL ซึ่งคําสั่งในกลุ่มนี้จะใช้ในการปรับปรุงข้อมูล เพิ่มข้อมูล การทํา Query ข้อมูล
144

คาถามทบทวนบทที่ 6
1. คําสั่ง SQL มีกี่ประเภทอะไรบ้าง และแต่ละประเภทมีลักษณะสําคัญในการทํางานอย่างไร
2. จงยกตัวอย่างคําสั่ง SQL แต่ละประเภท พร้อมทั้งอธิบายว่าแต่ละคําสั่งใช้เพื่อทําอะไร พร้อมทั้ง
ยกตัวอย่างการใช้คําสั่ง
3. จงเขียนคําสั่ง SQL เพื่อแสดงข้อมูลจากตารางข้อมูลมากกว่าหนึ่งตารางที่สัมพันธ์กัน
145

เอกสารอ้างอิงบทที่ 6

บริษัท ไทยครีเอท. (ม.ป.ป.). เอสคิวแอลดาต้าเบสและเทเบิล้ . เรียกใช้เมื่อ 8 กรกฎาคม 2560 จาก


http://www.thaicreate.com/tutorial/sql-database-introduction.html
146

1
การออกแบบตารางในฐานข้อมูล. [ออนไลน์]. เข้าถึงได้จาก http://61.7.221.103/access-
online/database/design.htm (วันที่ค้นข้อมูล 15 กรกฎาคม 2559)

3
บริษัทไมโครซอฟต์ ประเทศไทย. การตั้งค่าขนาดเขตข้อมูล. [ออนไลน์]. เข้าถึงได้จาก
https://support.office.com/th-th/article/การตั้งค่าขนาดเขตข้อมูล-7df5f880-8613-4141-
a643-3b27ee34961f (วันที่ค้นข้อมูล 15 กรกฎาคม 2559)
4 บริษัทไมโครซอฟต์ ประเทศไทย. การแทรก สร้าง หรือลบข้อมูลทีเ่ ก็บค่าวันที่. [ออนไลน์]. เข้าถึงได้
จาก https://support.office.com/th-th/article/การแทรก-สร้าง-หรือลบเขตข้อมูลทีเ่ ก็บค่าวันที่-
8a6900a4-72d8-4dbf-be09-f0aec8a86ed1?ui=th-TH&rs=th-TH&ad=TH (วันที่ค้นข้อมูล 15
กรกฎาคม 2559)
5
การออกแบบตารางในฐานข้อมูล. [ออนไลน์]. เข้าถึงได้จาก http://61.7.221.103/access-
online/database/design.htm (วันที่ค้นข้อมูล 15 กรกฎาคม 2559)

You might also like