ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
ประมวลรายวิชา (Course Syllabus)
(20
1
การจัดการฐานข้อมูลและฐานข้อมูลภูมิสารสนเทศ
Database and Geo-database Management
60 ชัว่ โมง (บรรยาย 30 ชัว่ โมง, ปฎิบตั ิการ 30 ชัว่ โมง )
6)
104333
3 (2-2-5)
ยั น
เร ศ
วร
รหัสวิชา (Subject Code):
จานวนหน่ วยกิต (Course Credit):
ชื่ อวิชา (Course Title)
ภาษาไทย (Thai Version):
ภาษาอังกฤษ (English Version):
จานวนชั่วโมงทีส่ อน (Hours):
มห
าวทิ
ยาล
คาอธิบายรายวิชา (Course Description):
ความหมายและความแตกต่างระหว่างระบบฐานข้ อมูล และระบบฐานข้ อมูลทางภูมิศาสตร์ ประเภท
ข้ อมูล การจัดเก็บ การออกแบบและจัดการฐานข้ อมูล รูปแบบการเชื่อมโยงฐานข้ อมูล ความสัมพันธ์ของข้ อมูล
ทางภูมิศาสตร์ มาตรฐานโครงสร้ างข้ อมูลสารสนเทศภูมิศาสตร์ ในชันฐานข้
้
อมูลต่างๆ การป้ องกันฐานข้ อมูล
ภาษาคอมพิวเตอร์ ทใี่ ช้ ในการจัดการฐานข้ อมูลและฐานข้ อมูลทางภูมิศาสตร์ รวมถึงการใช้ โปรแกรมประยุกต์
เพื่อการจัดการฐานข้ อมูลทางภูมศิ าสตร์
Definitions and differentiation of database and geo-database systems,geographical data
types, collection , relationships and manipulation for Geographic InformationSystems, geo-database
design methods, management and utilization of relationaldatabase, layer structure, data protection
and geo-database application software
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
วัตถุประสงค์ (Objectives):
1. เล็งเห็นความสาคัญของฐานข้อมุลที่มีต่อธุรกิจใจยุคปั จจุบนั
2. แสดงความรู ้เกี่ยวกับชนิดของข้อมูลและชนิดของแฟ้มข้อมูลได้
3. บอกวัตถุประสงค์ของการจัดโครงสร้างแฟ้มข้อมูลได้
4. แสดงความรู ้เกี่ยวกับส่วนประกอบด้านสภาพแวดล้อมของ DBMS ได้
5. มีความรู ้ความเข้าใจในแนวคิดและความสาคัญของสภาปั ตยกรรมระบบฐานข้อมูล
6. สามารถนาความรู ้ไปประยุกต์ใช้งานฐานข้อมูลได้อย่างเหมาะสม
7. อธิบายความหมาย ส่วนประกอบและประเทภของแบบจาลองข้อมูลได้
8. มีความรู ้พ้นื ฐานในการสร้างแบบจาลองข้อมูล
9. บอกข้อดีและข้อเสี ยของแบบจาลองฐานข้อมูลแต่ละชนิดได้
10. อธิบายรายละเอียดเกี่ยวกับโครงสร้างข้อมูลเชิงสัมพันธ์ได้
11. อธิบายกฏ 12 ข้อบนฐานข้อมูลเชิงสัมพันธ์ที่บญั ญัติโดยคอดด์ได้
12. อธิบายคุณสมบัติของรี เลชันได้อย่างถูกต้อง
13. เห็นความสาคัญของคียแ์ ละสามารถกาหนดคียใ์ ห้กบั รี เลชันต่างๆได้อย่างเหมาะสม
14. บอกส่วนประกอบของแบบจาลอง E-R และสัญลักษณ์ต่างๆที่นามาใช้เขียนแผนภาพได้
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
15. เข้าใจเทคนิคการสร้างแผนภาพ E-R
16. สามารถวาดแผนภาพ E-R ด้วยมือ หรื อสร้างด้วยโปรแกรม MS-Visio ได้
17. สามารถแก้ไขปั ญหาเกี่ยบกับกับดักการเชื่อต่อ (Connection Traps) ที่เกิดขึ้นบนแผนภาพ E-R ได้
18. เรี ยนรู ้การสร้างแผนภาพE-R ผ่านกรณี ศึกษา เพื่อฝึ กฝนการวิเคราะห์และสามารถสร้างแผนภาพ E-R ได้
อย่างถูกต้อง
19. เพื่อศึกษาความหมายของระบบฐานข้อมูลทางภูมิศาสตร์ (ฐานข้อมูลเชิงพื้นที่)
20. สามารถติดตั้ง ออกแบบและสร้างฐานข้อมูลทางด้านภูมิศาสตร์ดว้ ยโปรแกรม PostgreSQL/PostGIS
21. เข้าใจความหมายของโครงสร้างภาษา SQL
22. สามารถใช้คาสัง่ พื้นฐานจากภาษา SQL ในการสร้างตาราง และการจัดการฐานข้อมูลต่างๆได้
23. เพื่อศึกษาความหมายของระบบฐานข้อมูลทางภูมิศาสตร์ (ฐานข้อมูลเชิงพื้นที่)
24. อธิบายความหมายของ GIS และฐานข้อมูลประเภทต่างๆได้
25. สามารถใช้คาสัง่ จาก PostGIS ในการทางานด้าน Geoprocessing ได้
26. สามารถแสดง แก้ไข ฐานข้อมูลบนเว็บได้โดยใช้โปรแกรม PHP
27. เพื่อศึกษาการวิเคราะห์และคานวนหาระยะทางบนโครงข่ายถนนจริ งด้วยชุดคาสัง่ Network Analysis
28. เรี ยนรู ้ภาษาในการจัดการฐานข้อมูลและการประยุกต์ใช้ในการสร้างฐานข้อมูลจริ ง
เนื้อหาสาระของรายวิชา
เนื้อหาที่สาคัญโดยสรุ ปของรายวิชา 104333 การจัดการฐานข้อมูลและฐานข้อมูลภูมิสารสนเทศ มีดงั ต่อไปนี้
ความรู ้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
แบบจาลองข้อมูล (Data Models)
แบบจาลอง E-R (The Entity-Relationship Model)
การติดตั้งและใช้งาน PostgreSQL/PostGIS
การจัดการฐานข้อมูลเชิงพื้นที่ (Spatial Database Management)
pgRouting (Network Analysis)
การทางานกับข้อมูลด้วยภาษา PHP และ SQL
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
บทที่ 1
บทที่ 2
บทที่ 3
บทที่ 4
บทที่ 5
บทที่ 6
บทที่ 7
แผนการสอน
สัปดาห์ ที่
ความรู ้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
ข้อมูลและสารสนเทศ (Data and Information)
โครงสร้างแฟ้มข้อมูล(File Structure)
ชนิดของข้อมูลและการจัดการข้อมูล (Type of
data and data management)
ระบบฐานข้อมูล (Database System)
การจัดการฐานข้อมูล (Database Management
Systems: DBMS)
ส่วนประกอบทางสภาพแวดล้อมของ DBMS
สถาปั ตยกรรมระบบฐานข้อมูล (Database
System Architecture)
ขอบเขตของการประยุกต์ใช้ฐานข้อมูล (The
Range of Database Applications)
แบบจาลองข้อมูล (Data Models)
ความหมายและส่วนประกอบของแบบจาลอง
ข้อมูล
พื้นฐานการสร้างแบบจาลองข้อมูล
แบบจาลองฐานข้อมูล (Database Model)
โครงสร้างข้อมูลเชิงสัมพันธ์ (Relational Data
Structure)
แบบจาลองเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์
คุณสมบัติของรี เลชัน่ (Properties of Relations)
คีย ์ (Keys)
8
- บรรยายพร้อมแสดงตัวอย่าง
- ถามคาถามให้นิสิตมีส่วนร่ วมแสดงความคิดเห็น
- สื บค้นออนไลน์และบทความ
ยาล
ยั น
เร ศ
วร
(20
1
6)
กิจกรรมการเรียนการสอน/สื่ อทีใ่ ช้
8
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
สัปดาห์ที่
3-4
(บทที่ 2)
จานวน
ชั่วโมง
มห
าวทิ
สัปดาห์ที่
1-2
(บทที่ 1)
หัวข้ อและรายละเอียด
สัปดาห์ที่
5
(บทที่ 3)
สัปดาห์ที่
6-7
(บทที่ 4)
แบบจาลอง E-R (The Entity-Relationship Model)
4
การติดตั้งและใช้งาน PostgreSQL/PostGIS
PostgreSQL/PostGIS คืออะไร
การติดตั้ง PostgreSQL และ PostGIS ลงบน
ระบบปฏิบตั ิการ WIN32
ชนิดของข้อมูลในภาษา SQL
4
-บรรยายและอภิปรายในชั้นเรี ยน
- ถามคาถามให้นิสิตมีส่วนร่ วมแสดงความคิดเห็น
- สื บค้นออนไลน์และบทความ
-ปฏิบตั ิการ
จานวน
ชั่วโมง
สรุ ป
ทบทวนเนื้อหา
สอบกลางภาค
ยาล
2
ฐานข้อมูลเชิงพื้นที่ (Spatial Database)
ประเภทของข้อมูลในระบบสารสนเทศ
ภูมิศาสตร์
การใช้งาน PostGIS
การนาเข้าข้อมูลเชิงพื้นที่ (Sample Spatial SQL)
Well-know-text (WKT)
4
สัปดาห์ที่
10-11
(บทที่ 5)
8
-บรรยายและอภิปรายในชั้นเรี ยน
-ปฏิบตั ิการ
8
-บรรยายและอภิปรายในชั้นเรี ยน
-ปฏิบตั ิการ
8
-บรรยายและอภิปรายในชั้นเรี ยน
การทางานกับฐานข้อมูลเชิงพื้นที่
การนาเข้า Shape file เข้าสู่ PostgreSQL โดยใช้
โปรแกรม QGIS
การใช้ QGIS ในการจัดการฐานข้อมูล
การแสดงผลลัพธ์จากภาษา SQL ในรู ปแบบ
JSON format เพื่อแสดงในโปรแกรม QGIS
การแปลงค่าพิกดั โดยใช้ PostGIS
pgRouting (Network Analysis)
การทางานกับ pgRouting algorithm ในการ
ค้นหาเส้นทาง (Network analysis)
การแสดงผลลัพธ์เชื่อมโยงกันระหว่าง
PostgreSQL/Postgis + pgRouting และ
โปรแกรม QGIS
การทางานกับข้อมูลด้วยภาษา PHP และ SQL
ดร
.สิท
ธิช
ัย
สัปดาห์ที่
12-13
(บทที่ 6)
สัปดาห์ที่
-บรรยายและอภิปรายในชั้นเรี ยน
-ปฏิบตั ิการ
มห
าวทิ
สัปดาห์ที่
9
(บทที่ 5)
ชูส
ำโร
ง
สัปดาห์ที่
8
6)
ภาษา SQL และการทางานกับข้อมูล
การเริ่ มใช้งาน PostgreSQL
- การสร้างฐานข้อมูล Createdb
- การเพิ่มข้อมูล INSERT
- การสอบถามและแสดงข้อมูล SELECT
- การสอบถามและแสดงข้อมูล แบบมี
เงื่อนไข
- การแก้ไข UPDATE
- การลบ DELETE
กิจกรรมการเรียนการสอน/สื่ อทีใ่ ช้
(20
1
หัวข้ อและรายละเอียด
ยั น
เร ศ
วร
สัปดาห์ ที่
2
มห
าวทิ
การประเมินผล (Evaluation Criteria):
แบ่งสัดส่วนคะแนน ดังนี้
- ทดสอบปฏิบตั ิการ
- รายงาน
- สอบกลางภาค
- สอบปลายภาค
-ปฏิบตั ิการ
6)
การสร้างฐานข้อมูล Createdb บนเว็บ
การเพิ่มข้อมูล INSERT บนเว็บ
การดึง SELECT มาแสดงบนเว็บ
การลบ DELETE บนเว็บ
การแก้ไข UPDATE บนเว็บ
ทบทวนเนื้อหา
สอบวัดผลปลายภาค
กิจกรรมการเรียนการสอน/สื่ อทีใ่ ช้
(20
1
สัปดาห์ที่
16
จานวน
ชั่วโมง
ยั น
เร ศ
วร
14-15
(บทที่ 7)
หัวข้ อและรายละเอียด
30 %
10%
30 %
30 %
ยาล
สัปดาห์ ที่
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
เกณฑ์ การประเมิน:
การประเมินผลการเรี ยนถือคะแนนรวมที่นิสิตทาสอบได้ โดยกาหนดเกณฑ์การให้ระดับตามระดับ
คะแนน T โดยการประเมินแบบอิงกลุ่ม และแบบอิงเกณฑ์ ตามความเหมาะสมของอาจารย์ผสู ้ อน
คำนำ
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
เอกสารประกอบการสอนรายวิชา 104333 การจัดการฐานข้อมูลและฐานข้อมูลภูมิสารสนเทศ
3(2-2-5) เล่มนี้ เรียบเรียงขึ้นเพื่อใช้เป็นคู่มือและแนวทางในการจัดการเรียนการสอนสาหรับนิสิตปริญญา
ตรีหลักสูตรวิทยาศาสตรบันฑิต สาขาวิชาภูมิศาสตร์ ฉบับปรับปรุง พ.ศ. 2555 เพื่อให้นิสิตสามารถใช้เป็น
ความรู้ ทฤษฎีและเทคโนโลยีที่พัฒนาอย่างต่อเนื่องทางด้านระบบการจัดการฐานข้อมูลและฐานข้อมูลเชิง
พื้นที่ รวมถึงนิสิตสามารถใช้เป็นเครื่องมือ เทคนิค และวิธีการในการพัฒนาต่อไปในระดับสูงขึ้น เช่น การ
จัดการข้อมูลผ่านระบบอินเตอร์เน็ต หรือการทา Web Map GIS ซึ่งล้วนแล้วจะต้องใช้ความรู้พื้นฐาน
ทางด้านการจัดการฐานข้อมูลเชิงพื้นที่เข้ามาช่วย
เอกสารประกอบการสอนรายวิชา 104333 การจัดการฐานข้อมูลและฐานข้อมูลภูมิสารสนเทศ
เล่มนี้ ใช้สาหรับการสอนของนิสิตชั้นปีที่ 3 หลักสูตรวิทยาศาสตรบันฑิต สาขาวิชาภูมิศาสตร์ ซึ่งได้รวบรวม
หลักการ แนวคิด ทฤษฎีและเทคนิคต่างๆที่สาคัญทางด้านระบบฐานข้อมูลและฐานข้อมูลเชิงพื้นที่ โดย
นาเสนอเป็น 7 บท ที่ครอบคลุมเนื้อหาที่สาคัญ ประกอบด้วยบทแรกกล่าวถึงประวัติความเป็นมาของ
ระบบการจัดการฐานข้อมูลรวมถึงความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล บทที่ 2 กล่าวถึงแบบจาลอง
ข้อมูล การออกแบบฐานข้อมูล โครงสร้างและส่วนประกอบที่สาคัญของระบบฐานข้อมูล บทที่ 3 กล่าวการ
ออกแบบโครงสร้าง E-R บทที่ 4 เชื่อมโยงความรู้ความเข้าใจเกี่ยวกับการออกแบบฐานข้อมูลที่ได้ศึกษา
มาแล้วในบทที่ 1-3 ให้นิสิตได้ลองออกแบบและสร้างฐานข้อมูลจริงด้วยโปรแกรม pgAdmin3 บทที่ 5
เข้าปรเด็นสาคัญคือ การออกแบบและจัดการฐานข้อมูลเชิงพื้นที่ ซึ่งเป็นหัวใจหลักของการเรียนการสอน
ในสาขาวิชาภูมิศาสตร์ บทที่ 6 อธิบายเกี่ยวกับการทา Network Analysis ด้วยซอฟแวร์รหัสเปิด
pgRouting เพื่อให้นิติได้ฝึกทักษาการจัดการฐานข้อมูลเชิงพื้นมากยิ่งขึ้น และบทสุดท้ายนาเสนอการ
จัดการฐานข้อมูลบนอินเทอร์เน็ตเพื่อเป็นการปูพื้นฐานให้นิสิตที่สนใจและต้องการพัฒนาตนเองต่อไปใน
การทา Web Map Application
เอกสารประกอบการสอนฉบับนี้เรียบเรียงโดยเน้นการใช้แผนภาพและตัวอย่าง วิธีการจากผลงาน
ที่ผ่านของผู้เขียนและข้อมูลที่สร้างขึ้นเอง เพื่อให้นิสิตสามารถทาความเข้าใจในประเด็นต่างๆ ได้ง่ายใน
ระบบฐานข้อมูล
สิทธิชัย ชูสาโรง
ตุลาคม 2558
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล (Introduction to Database Systems) ............. 1
(20
1
1.1 ประวัติความเป็นมาของระบบการจัดการฐานข้อมูล ...................................................................... 2
6)
สารบัญ
1.2 ตัวอย่างการใช้ระบบฐานข้อมูลในปัจจุบัน ..................................................................................... 3
ยั น
เร ศ
วร
1.3 โครงสร้างแฟ้มข้อมูล (File Structure) ......................................................................................... 6
1.4 ชนิดของข้อมูล (Type Of Data) ................................................................................................. 7
1.5 การจัดการข้อมูล(Data Management) ....................................................................................... 9
1.6 ระบบฐานข้อมูล (Database System) ....................................................................................... 10
1.7 ระบบจัดการฐานข้อมูล (Database Management Systems : DBMS ) ................................. 11
ยาล
1.8 รูปแบบของระบบฐานข้อมูล ...................................................................................................... 13
1.8.1 ฐานข้อมูลเชิงสัมพันธ์ (Relational Database) ................................................................... 13
มห
าวทิ
1.8.2 ฐานข้อมูลแบบลาดับชั้น (Hierarchical Database) ............................................................ 14
1.8.3 ฐานข้อมูลแบบเครือข่าย (Network Database).................................................................. 14
1.9 ส่วนประกอบของสภาพแวดล้อมของ DBMS (Component of the DBMS Environment) .. 15
ชูส
ำโร
ง
1.10 สถาปัตยกรรมระบบฐานข้อมูล (Database System Architecture) ....................................... 18
1.10.1 สถาปัตยกรรม 3 ระดับ (The Three-Schema Architecture) ........................................ 19
1.11 ขอบเขตของการประยุกต์ใช้ฐานข้อมูล ...................................................................................... 24
1.12 ข้อดีของวิธีฐานข้อมูล (Advantages of Database Approach ) ........................................ 29
ดร
.สิท
ธิช
ัย
1.13 ข้อเสียของวิธีฐานข้อมูล (Disadvantages of Database Approach) ..................................... 33
สรุปท้ายบทที1่ .................................................................................................................................. 35
บทที่ 2 แบบจาลองข้อมูล (Date Models) ........................................................................................ 39
2.1 ความหมายและส่วนประกอบของแบบจาลองข้อมูล .................................................................... 40
2.2 พื้นฐานการสร้างแบบจาลองข้อมูล .............................................................................................. 40
สารบัญ (ต่อ)
6)
2.3 แบบจาลองฐานข้อมูล (Database Model) ............................................................................... 42
(20
1
2.4 โครงสร้างข้อมูลเชิงสัมพันธ์ (Relational Data Structure) ....................................................... 51
2.5 แบบจาลองเชิงสัมพันธ์ (The Relation Model)........................................................................ 53
2.6 ฐานข้อมูลเชิงสัมพันธ์ (Database Relations) ........................................................................... 55
ยั น
เร ศ
วร
2.7 คุณสมบัติของรีเลชัน (Properties of Relations) .................................................................... 60
สรุปท้ายบทที่ 2 ................................................................................................................................ 62
บทที่ 3 แบบจาลอง E-R (The Entity-Relationship Model) ....................................................... 65
ยาล
3.1 ส่วนประกอบของแบบจาลอง E-R (Component of The Entity-Relationship Model)........ 66
3.1.1 เอ็นติตี้ (Entity)................................................................................................................... 66
มห
าวทิ
3.1.2 แอตตริบิวต์ (Attributes) .................................................................................................... 68
3.1.3 ความสัมพันธ์ (Relationship) ............................................................................................. 73
3.1.4 ข้อบังคับบนชนิดความสัมพันธ์ (Constraints on Relationship Types) ........................... 75
ชูส
ำโร
ง
3.2 โครงสร้างข้อบังคับ (Structural Constraints) .......................................................................... 75
3.2.1 Cardinality Constraints ................................................................................................... 76
3.2.2 ข้อบังคับของการมีส่วนร่วม (Participation Constraints).................................................. 81
3.3 ปัญหาเกี่ยวกับแบบจาลอง ER (Problem with E-R Model) .................................................... 82
ดร
.สิท
ธิช
ัย
สรุปท้ายบทที่ 3 ................................................................................................................................ 87
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL ........................................................................................ 89
4.1 PostgreSQL คืออะไร?............................................................................................................... 90
4.2 PostGIS คืออะไร?...................................................................................................................... 91
4.3 ติดตั้ง PostgreSQL และ PostGIS บนระบบปฏิบัติการ Windows ........................................... 91
4.4 ภาษา SQL และการทางานกับข้อมูล .......................................................................................... 98
สารบัญ (ต่อ)
(20
1
4.4.2 ประเภทของคาสั่ง SQL......................................................................................................100
6)
4.4.1 ลักษณะการใช้งานของภาษา SQL ....................................................................................... 99
4.4.3 ชนิดของข้อมูลในภาษา SQL .............................................................................................103
4.5 การใช้งาน PostgreSQL ...........................................................................................................104
ยั น
เร ศ
วร
4.5.1 การสร้างเทเบิล (Create Table) .......................................................................................107
4.5.2 การปรับแก้โครงสร้างเทเบิล (Alter Table) .......................................................................111
4.5.3 การลบเทเบิล (Drop Table) .............................................................................................112
4.5.4 การเพิ่มข้อมูลเข้าสู่ฐานข้อมูล (INSERT) ............................................................................113
ยาล
4.5.5 การเรียกข้อมูลจากฐานข้อมูลมาแสดง (SELECT) ..............................................................118
4.5.6 การแก้ไขข้อมูลในเทเบิล (UPDATE) ..................................................................................129
มห
าวทิ
4.4.5 การลบข้อมูลในเทเบิล (DELETE).......................................................................................130
สรุปท้ายบทที่ 4 ...............................................................................................................................132
ชูส
ำโร
ง
แบบฝึกหัดบทที่ 4............................................................................................................................133
บทที่ 5 ฐานข้อมูลเชิงพื้นที่ (Spatial Database) ............................................................................135
5.1 ประเภทของข้อมูลในระบบสารสนเทศภูมิศาสตร์ ......................................................................136
5.2 ฐานข้อมูลเชิงพื้นที่: Spatial Database ....................................................................................136
ดร
.สิท
ธิช
ัย
5.3 รู้จักกับ Well Known Text .....................................................................................................138
5.4 การนาเข้าข้อมูลเชิงพื้นที่ (SAMPLE SPATIAL SQL) ................................................................139
5.5 การใช้งาน PostGIS ..................................................................................................................141
1.5.1 นาเข้าข้อมูล Shape file สู่ระบบฐานข้อมูล SQL ...........................................................142
5.6 การใช้ QGIS ในการจัดการฐานข้อมูล .......................................................................................145
5.7 ตัวอย่างการใช้งานฟังก์ชั่น PostGIS ในการจัดการฐานข้อมูลเชิงพื้นที่.......................................147
5.7.1 นับจานวนข้อมูลจุดที่มีอยู่ ..................................................................................................147
สารบัญ (ต่อ)
6)
5.7.2 วัดขนาดพื้นที่และเส้นรอบรูปของอาคาร ........................................................................... 148
(20
1
5.7.3 การหาระยะทางระหว่างแต่ละอาคาร ................................................................................ 149
5.7.4 หาระยะทางรวมของข้อมูล main road ............................................................................ 149
5.7.5 หาจุดศูนย์กลางของอาคาร ................................................................................................ 150
ยั น
เร ศ
วร
5.7.6 จุดศูนย์กลางของอาคาร แม้ว่าจุดศูนย์กลางจะมีความเว้า ความนูน .................................. 151
5.7.7 จุดที่อยู่นอกอาคารที่เลือก? ............................................................................................... 152
5.7.8 อาคารที่ใกล้เคียงที่สุดจากจุดที่กาหนด .............................................................................. 153
5.7.9 อาคารที่ไม่มีข้อมูลจุดอยู่ภายในบริเวณอาคาร ................................................................... 154
ยาล
5.7.10 หาจุดตัดระหว่าง multilinestring 2 layers .................................................................. 154
5.7.11 จุดชื่ออะไรบ้างที่มีอยู่ในแต่ละอาคาร? ............................................................................. 155
มห
าวทิ
5.7.12 พื้นที่ของแม่น้าที่ตัดกับสวนสาธารณะ มีขนาดเท่าไร? ..................................................... 156
5.7.13 การหาอาคารที่ตั้งอยู่ในสวนสาธารณะ? .......................................................................... 157
5.7.14 การหาจานวนจุดที่อยู่ในอาคารแต่ละหลัง ....................................................................... 157
ชูส
ำโร
ง
5.7.15 หาจุดที่อยู่ใกล้กับแม่น้าที่อยู่ในรัศมีที่กาหนด .................................................................. 158
5.7.16 เส้นที่สร้างขึ้นจากจุด ....................................................................................................... 159
5.7.17 อาคารใดบ้างที่ตัดกับเส้นที่เชื่อมต่อระหว่างจุดสองจุด..................................................... 160
5.7.18 วิธีการปัดเศษขึ้นตาแหน่งของจุด (Table point) กับตัวเลขหลังเครื่องหมายจุลภาค ...... 160
ดร
.สิท
ธิช
ัย
สรุปท้ายบทที่ 5 .............................................................................................................................. 161
แบบฝึกหัดท้ายบทที่ 5 .................................................................................................................... 162
บทที่ 6 pgRouting (Network Analysis) ...................................................................................... 163
6.1 การวิเคราะห์โครงข่าย (Network Analysis) ............................................................................ 164
6.2 การหาพื้นที่ให้บริการบนโครงข่าย ............................................................................................ 169
6.3 เริ่มใช้งาน pgRouting .............................................................................................................. 170
สารบัญ (ต่อ)
(20
1
6.3.2 การเชื่อมต่อข้อมูลระหว่าง โปรแกรม QGIS เข้าโปรแกรม pgAdmin lll ...........................174
6)
6.3.1 Import และ SAVE ข้อมูล Shapefile ในโปรแกรม QGIS ................................................171
6.3.3 การจัดเตรียม road data ในโปรแกรม pgAdmin lll........................................................176
6.4 การใช้คาสั่ง SQL เพื่อให้ pgRouting แสดงผลลัพธ์เพื่อแสดงใน QGIS/Web Service............179
ยั น
เร ศ
วร
สรุปท้ายบทที่ 6 ...............................................................................................................................182
บทที่ 7 PHP และ PostgreSQL ........................................................................................................183
7.1 ขั้นตอนการเข้าถึงฐานข้อมูล PostgreSQL จาก PHP ...............................................................187
ยาล
7.2 การสร้างเทเบิลใหม่ด้วยภาษา PHP ..........................................................................................194
7.3 การเรียก (Select) ฐานข้อมูลมาแสดงบนเว็บ ...........................................................................196
มห
าวทิ
สรุปท้ายบทที่ 7 ...............................................................................................................................198
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
เอกสารอ้างอิง .....................................................................................................................................199
สารบัญรูปภาพ
บทที่ 1
บทที่ 2
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
ภาพที่ 1.1 โครงสร้างแฟ้มข้อมูล............................................................................................................... 6
ภาพที่ 1.2 แฟ้มนิสิต ซึ่งประกอบด้วยฟิลด์และเรคอร์ดของนิสิตในมหาวิทยาลัย ...................................... 7
ภาพที่ 1.3 ระบบฐานข้อมูล................................................................................................................... 10
ภาพที่ 1.4 ระบบจัดการฐานข้อมูล (DBMS) ......................................................................................... 11
ภาพที่ 1.5 การโต้ตอบกับ DBMS เพื่อเข้าถึงฐานข้อมูลในรูปแบบต่างๆ ............................................... 12
ภาพที่ 1.6 ตารางและการเชื่อมโยงข้อมูล .............................................................................................. 13
ภาพที่ 1.7 ฐานข้อมูลแบบลาดับชั้น ...................................................................................................... 14
ภาพที่ 1.8 ฐานข้อมูลแบบเครือข่าย ...................................................................................................... 14
ภาพที่ 1.9 สภาพแวดล้อมของระบบการจัดการฐานข้อมูล .................................................................... 15
ภาพที่ 1.10 สถาปัตยกรรม 3 ระดับของ ANSI-SPARC......................................................................... 19
ภาพที่ 1.11 ความแตกต่างของระดับทั้งสาม ......................................................................................... 23
ภาพที่ 1.12 ฐานข้อมูลเวิร์กกรุ๊ปบนเครือข่ายแลน ................................................................................. 25
ภาพที่ 1.13 ตัวอย่างฐานข้อมูลระดับเอ็นเตอร์ไพรส์และคลังข้อมูลของศูนย์เวชกรรมขนาดใหญ่ ........... 27
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
ภาพที่ 2.1 ความสัมพันธ์แบบ one-to-one.......................................................................................... 41
ภาพที่ 2.2 ความสัมพันธ์แบบ one-to-many....................................................................................... 41
ภาพที่ 2.3 ความสัมพันธ์แบบ many-to-many.................................................................................... 42
ภาพที่ 2.4 ตัวอย่างฐานข้อมูลภายใต้โครงสร้างแบบจาลองฐานข้อมูลลาดับชั้น ..................................... 43
ภาพที่ 2.5 แบบจาลองฐานข้อมูลเครือข่าย ........................................................................................... 45
ภาพที่ 2.6 ตัวอย่างฐานข้อมูลภายใต้โครงสร้างแบบจาลองฐานข้อมูลเครือข่าย ..................................... 45
ภาพที่ 2.7 ตัวอย่างฐานข้อมูลภายใต้โครงสร้างแบบจาลองฐานข้อมูลเชิงสัมพันธ์ .................................. 47
ภาพที่ 2.8 แบบจาลองฐานข้อมูล (Database Model) ....................................................................... 50
ภาพที่ 2.9 ตัวอย่างรีเลชันของ 2 ลีเลชัน ............................................................................................... 52
ภาพที่ 2.10 ตัวอย่างการกาหนดโดเมนของรีเลชัน ................................................................................ 52
ภาพที่ 2.11 ศัพท์เทคนิคต่างๆ ที่ใช้ในฐานข้อมูล ................................................................................... 55
บทที่ 3
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
ภาพที่ 3.1 ตัวอย่างเอ็นติตี้พนักงาน (EMPLOYEE) และสาขา (BRANCH) ............................................. 67
ภาพที่ 3.2 เปรียบเทียบเอ็นติตี้แบบ Strong และแบบ Weak ............................................................... 68
ภาพที่ 3.3 เอ็นติตี้ที่ประกอบด้วยแอตตริบิวต์ empNo (คีย์หลัก), empName และ position ....... 68
ภาพที่ 3.4 ตัวอย่างการเขียนแอตตริบิวต์แบบวงรีและสี่เหลี่ยม .............................................................. 69
ภาพที่ 3.5 การนาเสนอเอ็นติตี้แบบเต็มหรือแบบย่อ .............................................................................. 69
ภาพที่ 3.6 เปรียบเทียบความแตกต่างระหว่าง Simple Attribute และ Composite Attribute ......... 70
ภาพที่ 3.7 Single-Valued และ Multivalued Attribute ................................................................. 71
ภาพที่ 3.8 แสดงการแตก Multivalued Attribute ไปเป็นแอตตริบิวต์ใหม่ .......................................... 71
ภาพที่ 3.9 แสดงการแตก Multivalued Attribute ไปเป็นเอ็นติตี้ใหม่ ................................................. 72
ภาพที่ 3.10 Derived Attribute (age) ที่เกิดจากการคานวณ............................................................... 72
ภาพที่ 3.11 การกาหนดความสัมพันธ์ระหว่างเอ็นติตี้ ............................................................................ 73
ภาพที่ 3.12 ควาสัมพันธ์แบบ Unary .................................................................................................... 73
ภาพที่ 3.13 ความสัมพันธ์แบบ Binary .................................................................................................. 74
ภาพที่ 3.14 ความสัมพันธ์แบบ Ternay ................................................................................................ 74
ภาพที่ 3.15 Cardinality Ratios ........................................................................................................... 76
ภาพที่ 3.16 Semantic Net Model กับชนิดความสัมพันธ์แบบ one-to-one .................................... 76
ภาพที่ 3.17 ความสัมพันธ์แบบ zero or one ...................................................................................... 77
ภาพที่ 3.18 Multiplicity ของพนักงาน <ดูแล> สาขาในรูปแบบหนึ่งต่อหนึ่ง ....................................... 77
ภาพที่ 3.19 Semantic Net Model กับชนิดความสัมพันธ์แบบ one-to-many .................................. 78
ภาพที่ 3.20 ความสัมพันธ์แบบ 1:M ตามข้อบังคับของ zero or one และ zero or more ........... 78
ภาพที่ 3.21 แผนภาพ E-R แสดงความสัมพันธ์แบบ (0.1),(0..*) ในรูปแบบ UML.................................. 79
ภาพที่ 3.22 Semantic Net Model กับชนิดความสัมพันธ์แบบ many-to-many ............................... 79
ภาพที่ 3.23 ความสัมพันธ์แบบ M:M ตามข้องบังคับของ zero or more และ one or more ............ 80
ภาพที่ 3.24 แผนภาพ E-R แสดงความสัมพันธ์แบบ (0..*),(1..*) ในรูปแบบ UML ................................. 80
ภาพที่ 3.25 สัญลักษณ์ข้อบังคับบนความสัมพันธ์ในรูปแบบต่างๆ (Cardinality Notations) ................ 80
ภาพที่ 3.26 การมีส่วนร่วมในความสัมพันธ์ของเอ็นติตี้ BRANCH <has> EMPLOYEE ......................... 81
ภาพที่ 3.27 ข้อบังคับการมีส่วนร่วมในความสัมพันธ์ของเอ็นติตี้ BRANCH <has> EMPLOYEE ........ 82
ภาพที่ 3.28 ตัวอย่างปัญหาของ Fan Traps ในแบบจาลอง E-R ........................................................... 83
6)
สารบัญรูปภาพ (ต่อ)
สารบัญรูปภาพ (ต่อ)
ยั น
เร ศ
วร
(20
1
6)
ภาพที่ 3.29 รายละเอียด Semantic Net Model จากแผนภาพ E-R รูปที่ 3.28 ................................. 83
ภาพที่ 3.30 แบบจาลอง E-R ที่ปรับโครงสร้างใหม่ เพื่อขจัดปัญหา Fan Traps .................................... 83
ภาพที่ 3.31 แสดงแผนภาพภายหลังจากปรับโครงสร้างและขจัดปัญหา Fan Traps ............................. 84
ภาพที่ 3.32 ตัวอย่างปัญหา Chasm Traps ในแบบจาลอง E-R............................................................ 84
ภาพที่ 3.33 รายละเอียดปัญหา Chasm Traps ที่นาเสนอด้วย Semantic Net Model .................... 84
ภาพที่ 3.34 การเพิ่มความสัมพันธ์ <offers> เพื่อขจัดปัญหา Chasm Traps......................................85
ภาพที่ 3.35 แสดงแผนภาพหลังจากเพิ่มการเชื่อมโยงความสัมพันธ์ <offers> ให้กับเอ็นติตี้................. 85
ภาพที่ 3.36 บทสรุปสัญลักษณ์ที่ใช้งานในแผนภาพ E-R ....................................................................... 86
มห
าวทิ
ยาล
บทที่ 4
ภาพที่ 4.1 แสดงโครงสร้างอย่างง่ายของ PostgreSQL ......................................................................... 90
ภาพที่ 4.2 การทางานของภาษา SQL กับฐานข้อมูล ............................................................................. 99
บทที่ 5
ภาพที่ 5.1 Geometry type .............................................................................................................. 139
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
บทที่ 6
ภาพที่ 6.1 การวิเคราะห์โครงข่ายหาเส้นทางสั้นที่สุด และเส้นทางดีที่สุด ............................................ 165
ภาพที่ 6.2 การคานวนเส้นทางใหม่เมื่อมีข้อจากัดในการเดินทางของเส้นทาง ...................................... 166
ภาพที่ 6.3 การคานวนเส้นทางใหม่กรณีที่ต้องการใช้เวลาในการเดินทางน้อยที่สุด .............................. 166
ภาพที่ 6.4 การคานวนเส้นทางใหม่เมื่อมีน้าท่วมถนน .......................................................................... 166
ภาพที่ 6.5 การค้นหาเส้นทางแบบ A to B and B to C และการค้นหาจุดสาคัญที่อยู่ตามเส้นทาง ..... 167
ภาพที่ 6.6 การประยุกต์ใช้งานด้านการคนหาเส้นทางในระบบการแพทย์ฉุกเฉิน ................................. 167
ภาพที่ 6.7 แสดงตัวอย่างการหาเส้นทางและโรงพยาบาลที่เหมาะสม .................................................. 168
ภาพที่ 6.8 ตัวอย่างผลของการวิเคราะห์หาเส้นทางที่สั้นที่สุดด้วย dijkstra algorithm ....................... 169
ภาพที่ 6.9 เขตบริการบนโครงข่ายเปรียบเทียบกับพื้นที่กันชน ............................................................ 169
บทที่ 7
ภาพที่ 7. 1 การทางานของระบบ DBMS บนเว็บ ................................................................................ 187
บทที่ 2
(20
1
ตารางที่ 2. 1 คาศัพท์เฉพาะที่ใช้ในระบบฐานข้อมูลเชิงสัมพันธ์ ............................................................. 63
6)
สารบัญตาราง
ยั น
เร ศ
วร
บทที่ 5
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
ตารางที่ 5. 1 Geometry type in WKT-format................................................................................138
เล็งเห็นความสาคญของงาานออ งมลลี่มม่่ง
ธลรกิจในยลคปญจจลบนญ
2.
แสดงความรูอเก่มยวกญบชนิดองงออ งมูลและ
ชนิดองงแฟอมออ งมูลไดอ
3.
บงกวญ่ถลประสงค์องงการจญดโครงสรอ าง
แฟอมออ งมูลไดอ
4.
แสดงความรูอเก่มยวกญบสวนประกงบดอ าน
(20
1
1.
6)
วัตถุประสงค์การเรี ยนรู ้ (Learning
Objectives)
สภาพแวดลอ งมองง DBMS ไดอ
ม่ความรูอความเออ าใจในแนวคิดและ
ความสาคญของงสภาปญ่ยกรรมระบบ
ยั น
เร ศ
วร
5.
าานออ งมูล
สามารถนาความรูอไปประยลก่์ใชอ งาน
าานออ งมูลไดอ งยางเหมาะสม
ยาล
บทที่ 1
มห
าวทิ
ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
ชูส
ำโร
ง
(Introduction to Database Systems)
ดร
.สิท
ธิช
ัย
6.
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
การจัดการฐานข้อมูลเริ่มต้นจากการที่องค์การบริหารการบินและอวกาศสหรัฐอเมริกา หรือ
นาซาได้ว่าจ้างบริษัทไอบีเอ็ม (IBM) ประเทศสหรัฐอเมริกา ให้ออกแบบระบบเก็บรวบรวมข้อมูลที่ได้
จากการสารวจดวงจันทร์ในโครงการอะพอลโล (โครงการอะพอลโลเป็นโครงการสารวจอวกาศอย่าง
จริงจัง และมีการส่งมนุษย์ขึ้นบนดวงจันทร์ได้สาเร็จด้วยยานอะพอลโล 11) ได้พัฒนาระบบการดูแล
ข้อมูลเรียกว่า ระบบ GUAM (Generalized Upgrade Access Method) ซึ่งถือเป็นต้นกาเนิดของ
ระบบการจัดการฐานข้อมูล ต่อมาบริษัท ไอบีเอ็ม ได้พัฒ นาระบบการจัดการฐานข้อมูลขึ้นมาใหม่
เพื่ อให้ ใช้งานกับ ธุรกิจ ทั่ ว ๆ ไปได้ เรี ย กว่า 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 เป็นต้น
6)
1.1 ประวัติความเป็นมาของระบบการจัดการฐานข้อมูล
สาหรับในยุคปัจจุบัน การใช้งานฐานข้อมูลก็มิได้ถูกจากัดให้ใช้งานเฉพาะฐานข้อมูลภายในอีก
ต่อไป แต่จะมีการเชื่อมโยงเข้ากับฐานข้อมูลภายนอกอื่นๆ เข้าด้วยกัน จนกลายเป็นฐานข้อมูลขนาด
ใหญ่ ที่ เรี ย กว่ า “คลั งข้ อ มู ล (Data Warehouse)”ซึ่ ง ภายใต้ ข้ อ มู ล กองโตขนาดมหึ ม าเหล่ า นี้ เรา
สามารถนาเครื่องมือมาสกัดเอาเฉพาะข้อมูลสาคัญๆที่อยู่ในคลัง จนก่อเกิดเป็นสารสนเทศและองค์
ความรู้อันทรงคุณค่า เพื่อนาไปใช้วิเคราะห์แนวโน้มในทางธุรกิจหรือใช้ในการศึกษาในสิ่งที่ ต้องการมุ่ง
ประเด็นได้ต่อไป
ดร
.สิท
ธิช
ัย
2
ด้วยขอบเขตการใช้ฐานข้อมูลที่ครอบคลุมแทบทุกภาคส่วนขององค์กร จึงทาให้ทั้งหน่วยงาน
ภาครัฐและภาคธุรกิจเอกชน ต่างตื่น ตัวในการพัฒ นาระบบฐานข้อมูลขึ้นมาเพื่อใช้งาน ไม่ว่าจะมี
จุดประสงค์เพื่อใช้งานภายในองค์กร การเชื่อมตัวระหว่างองค์กร หรือ เพื่อบริการแก่ลูกค้า รวมถึงการ
แสดงศักยภาพทางเทคโนโลยีสารสนเทศผ่านการพัฒนาเทคโนโลยีขั้นสูงเพื่อประจักษ์แก่คู่แข่งขัน ซึ่ง
ถือเป็นการชิงความได้เปรียบในทางธุรกิจ และด้วยผู้คนรุ่นใหม่ ซึ่งต่างมีความรู้และมีศักยภาพในการ
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
ใช้เทคโนโลยี เป็ น อย่างดี จึ งทาให้ พวกเขามีโอกาสเลื อกบริโภคสิ น ค้าหรือเลื อกใช้บ ริการต่างๆได้
หลากหลายช่องทางมากขึ้น โดยเฉพาะการบริการผ่านช่องทางของเทคโนโลยีเครือข่ายที่มุ่งเน้นความ
สะดวกและรวดเร็ว ดังนั้น องค์การต่างๆ จึงพยายามหันมาปรับปรุงรูปแบบการดาเนินธุรกิจของตนให้
ทั น เทคโนโลยี จนก่ อ เกิ ด เทคโนโลยี ต่ า งๆ(เช่ น อี ค อมเมิ ร์ ซ ) ที่ ห ลั่ ง ไหลเข้ า มาเป็ น ส่ ว นหนึ่ ง ใน
ชีวิตประจาวันของผู้ คนในยุคนี้มากขึ้น จนทาให้ เทคโนโลยีฐานข้อมูล กลายเป็นสิ่งสาคัญในการใช้
ติดต่อเพื่อธุรกรรม เพื่อการเข้าถึงและเรียกดูข้อมูลที่ต้องการได้ทันที จนมีประโยคหนึ่งที่กล่าวไว้อย่าง
น่ าสนใจคื อ “หากหน่ ว ยงานใดได้ นาเทคโนโลยีฐ านข้อมู ล มาใช้ ย่อ มได้เปรียบในเชิ งแข่งขั นทาง
การค้า”นั่นหมายความว่าหน่วยงานใดก็ตาม หากได้พัฒนาฐานข้อมูลเพื่อใช้ในองค์กร ด้วยการจัดทา
อย่างเป็นระบบและจัดเก็บลงในฐานข้อมูล ย่อมนาไปใช้ให้เกิดประโยชน์ได้อย่างหลากหลาย ไม่ว่าจะ
เป็ น การเข้าถึงฐานข้อมูล เพื่ อเรีย กดูข้อมูล /สารสนเทศได้ทันที การพิ มพ์ รายงานตามเงื่อนไขได้
ทันท่วงที การจัดการกับระบบความปลอดภัยในฐานข้อมูล และการนาข้อมูลมาวิเคราะห์แนวโน้ม
เพื่อให้ผู้บริหารสามารถนามาใช้ประกอบการตัดสินใจทางธุรกิจได้ในขณะเดียวกัน ก็สามารถนาเอา
เทคโนโลยีนี้ มาเชื่อมโยงเข้ากับ ฐานข้อมูล ลู กค้าเพื่อสร้างปฏิสั มพัน ธ์ระหว่างกัน ไม่ว่าจะเป็นเรื่อง
อานวยความสะดวกในการใช้บ ริ การ การให้ คาแนะนาต่างๆ ซึ่งเป็ น หนทางหนึ่ งในการเชื่อมโยง
ความสัมพันธ์ระหว่างกันให้แน่นแฟ้นมากยิ่งขึ้น จนก่อเกิดเป็นมิตรภาพและความภักดีของลูกค้า ที่มี
ต่อองค์กรหรือตัวสินค้า/บริการมากขึ้น
3
ชูส
ำโร
ง
1.2 ตัวอย่างการใช้ระบบฐานข้อมูลในปัจจุบัน
การซื้อสินค้าในซุปเปอร์มาร์เก็ต
ดร
.สิท
ธิช
ัย
เมื่อได้ซื้อสินค้าในซุปเปอร์มาร์เก็ต ธุรกรรมดังกล่าวได้
เกี่ย วข้องกับ ฐานข้อมูล เข้าแล้ ว โดยสั งเกตจากการชาระเงิน ที่
แคชเชี ย ร์ พนั ก งานจะน าเครื่ อ งอ่ า นบาร์ โ ค้ ด มายิ งบนฉลาก
บาร์โค้ดที่ติดอยู่บนตัวบรรจุภัณฑ์ ซึ่งการกระทาดังกล่าวจะมีการ
เชื่อมโยงผ่านโปรแกรม โดยโปรแกรมจะนารหัสสินค้า(ที่อ่านจาก
ฉลากบาร์ โค้ ด ) ไปเป็ น คี ย์ เพื่ อ ค้ น หารหั ส สิ น ค้ า ในฐานข้ อ มู ล
(Product Database)จากนั้นก็จะลดยอดปริมาณสินค้าในสต็อก
ฯลฯ
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
กรณี ก ารซื้ อ สิ น ค้ า แล้ ว ช าระเงิ น
ด้วยบัตรเครดิต พนักงานจะนาบัตรเครดิต
ของลูกค้ามาเสียบหรือรูดเข้ากับเครื่องอ่าน
บัตร ซึ่งเครื่องดังกล่าวจะมีการเชื่อมต่อเข้า
กั บ โปรแกรมระบบผ่ า นการเชื่ อ มโยงกั บ
เครื อ ข่ า ยและสายโทรศั พ ท์ เ พื่ อ สื่ อ สาร
ระยะไกลในการเข้าถึงฐานข้อมูลบัตรเครดิต
ของธนาคารและดึ งข้ อ มู ล ลู ก ค้ า ที่ จ ะเป็ น
ออกมาเพื่ อตรวจสอบวงเงิน ส าหรั บ กรณี
อนุมัติวงเงิน(ตอบรับแบบอัตโนมัติ ) ก็จะเพิ่มยอดหนี้และลดยอดวงเงินลงจากนั้นข้อมูลการชาระเงิน
ของลูกค้าก็จะถูกบันทึกเพิ่มลงในฐานข้อมูล ซึ่งประกอบด้วยข้อมูลลูกค้า ยอดชาระผ่านบัตรเครดิต
วันที่/เวลาที่ทาธุรกรรม และชื่อร้านค้า ซึ่งอาจรวมถึงการเพิ่มแต้มสะสมยอดการใช้บัตรเครดิตและ
อื่นๆจนกระทั่งเมื่อครบรอบการชาระเงิน ทางธนาคารก็จะส่งใบแจ้งหนี้ซึ่งจะแสดงรายการข้อมูลการ
ใช้จ่ายผ่านบัตรเครดิตมายังลูกค้าเพื่อให้ลูกค้าชาระหนี้แก่ธนาคารตามกาหนดต่อไป
6)
การชาระเงินผ่านบัตรเครดิต
การใช้บริการห้องสมุดในสถาบันการศึกษา
ชูส
ำโร
ง
ก า ร ใ ช้ บ ริ ก า ร ห้ อ ง ส มุ ด ใ น
สถาบันการศึกษา จัดเป็นกิจกรรมหนึ่งที่ทาให้
นั ก ศึ ก ษาได้ ม องเห็ น ภ าพของการเข้ า ถึ ง
ฐ า น ข้ อ มู ล ไ ด้ ง่ า ย ขึ้ น ซึ่ ง ต า ม ป ก ติ
สถาบันการศึกษามักนาระบบสารสนเทศมาใช้
เพื่ อ บั น ทึ ก ข้ อ มู ล หนั ง สื อ และบริ ก ารทาง
ห้องสมุดต่างๆ ไม่ว่าจะเป็น ระบบการยื ม/คืน
หนังสือด้วยบาร์โค้ด การจองหนังสือ และการ
สื บ ค้ น ท รั พ ย าก รใน ห้ อ งส มุ ด เป็ น ต้ น
โดยเฉพาะ การสืบค้นหนังสือ ยังสามารถสืบค้น
หมายเลข ISBN,ชื่อหนังสือ,คาสาคัญ หรือชื่อผู้
แต่ง ซึ่งสิ่ งเหล่ านี้ ล้ วนเกี่ย วข้องกับ ฐานข้อมูล
ทั้งสิ้น
ดร
.สิท
ธิช
ัย
4
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
5
การใช้อินเทอร์เน็ต
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
ปั จ จุ บั น เว็ บ ไซ ต์
หลายแห่งได้นาฐานข้อมูลมา
ป ร ะ ยุ ก ต์ เ พื่ อ ใ ช้ ง า น
ตัวอย่างเช่น เว็บไซต์ซื้อขาย
ร ถ ย น ต์ มื อ ส อ ง ไ ด้ น า
ฐานข้อมูล รถยนต์ที่บ รรจุไป
ด้ ว ยรายละเอี ย ดต่ า งๆ เช่ น
ยี่ ห้ อ รุ่ น ปี ที่ ผ ลิ ต ความจุ
เครื่องยนต์ และรูป ภาพของ
รถยนต์ รุ่ น ดั ง กล่ า ว ดั ง นั้ น
เมื่อมีการประกาศขายรถรุ่น
ใดก็ตาม หากลูกค้าไม่มีรูปรถ
หรือรายละเอียดรถส่งมาก็สามารถดึงข้อมูลพร้อมรูปภาพของรถยนต์รุ่นนั้นๆ จากฐานข้อมูลเพื่อนามา
ประกอบการซื้ อ ขายบนเว็ บ ได้ ทั น ที น อกจากนี้ ยั งสามารถประเมิ น ราคากลางที่ ซื้ อ ขายกั น จาก
ฐานข้อมูลซื้อขายรถยนต์รุ่นนั้น ๆ ว่าราคาที่ประกาศขายนั้นสูงหรือต่ากว่าราคาตลาด ซึ่งการกระทา
ดังกล่ าว ต่างก็ ต้อ งใช้ ป ระโยชน์ จ ากฐานข้อ มู ล จากภาพเป็ น ตั ว อย่างการน าระบบฐานข้ อมู ล มา
ประยุกต์ใช้กับเว็บซื้อขายโน๊ตบุ๊ค
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
การศึกษาในมหาวิทยาลัย
ถ้าคุณศึกษาอยู่ใน
มหาวิทยาลัย
ทาง
มหาวิทยาลัยก็จะจัดเก็บ
ข้อมูลประวัติของคุณเอาไว้
ในฐานข้อมูล ไม่ว่าจะเป็น
ประวัติส่วนตัว รายวิชาที่
ลงทะเบียนเรียนพร้อมผล
การเรียนแต่ละวิชา ทาง
มหาวิทยาลัยนอกจากมี
ฐานข้อมูลนักศึก ษาแล้ว
ยังมีฐานข้อมูลของบุคลากร เช่น อาจารย์ และ เจ้าหน้าที่ที่ทางานอยู่ในมหาวิทยาลัยด้วย
จากรายละเอียดข้างต้น
เป็นเพียงตัวอย่างเพื่อให้เห็นภาพการนาเทคโนโลยีฐานข้อมูลมา
ประยุกต์ใช้ในแต่ละแห่ง ที่เราสามารถพบเห็นได้ไม่ทางตรงก็ทางอ้อม แต่ความจริงแล้ว ยังมีตัวอย่าง
ดร.สิทธิชัย ชูสาโรง
1.3 โครงสร้างแฟ้มข้อมูล (File Structure)
ยั น
เร ศ
วร
(20
1
งานอื่นๆ อีกมากมายที่เกี่ยวข้องกับฐานข้อมูล เช่น การดาเนินการธุรกรรมการฝาก/ถอนเงินใน
ธนาคาร การจองตั๋วสายการบิน การเช่าภาพยนตร์ และการซื้อสินค้าผ่านเว็บหรืออีคอมเมิร์ช เป็นต้น
ซึ่งกิจกรรมเหล่านี้ล้วนเกี่ยวข้องกับการนาเทคโนโลยีฐานข้อมูลมาประยุกต์ใช้งานแทบทั้งสิ้น ภาพ
ข้างล่างเป็นตัวอย่างการนาระบบฐานข้อมูลมาใช้ในการลงทะเบียนและการทางานของนิสิตอาจารย์
มหาวิทยาลัยนเรศวร
6)
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
มห
าวทิ
ยาล
โครงสร้างแฟ้มข้อมูล ประกอบด้วยโครงสร้างพื้นฐานที่ลาดับจากหน่วยเล็กที่สุด แล้วนามา
รวมเข้าด้วยกันเพื่อกลายเป็นหน่วยใหญ่ตามลาดับ ดังรูปที่1.1
ภาพที่ 1.1 โครงสร้างแฟ้มข้อมูล
ดร
.สิท
ธิช
ัย
6
บิต(Bit)
บิตเป็นหน่วยข้อมูลที่เล็กที่สุด ประกอบด้วยเลขฐานสองที่มีเพียงหนึ่งในสองสถานะ
เท่านั้น คือ 0 หรือ 1 นามาใช้แทนสัญญาณไฟฟ้า On หรือ Off ดังนั้นปิดจึงไม่สามารถแทนค่าข้อมูล
ได้หลายตัว
ไบต์(Byte)
เมื่อบิตไม่สามารถใช้แทนค่าข้อมูลได้หลายตัว เพราะมีเพียงสองสถานะเท่านั้น จึงมี
การนาหลายๆบิต ตัวมาเรียงกันเป็นไบต์ ซึ่งปกติ 1ไบต์จะมี8 บิตด้วยกัน ดังนั้น จึงทาให้หนึ่งไบต์
สามารถสร้างรหั สแทนข้อมูล ขึ้น มาเพื่อใช้แทนตัวอักขระให้แตกต่างกันได้ถึง2 8 หรือ 256 อักขระ
ด้วยกัน
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
(20
1
6)
ฟิลด์ Field)
แม้ว่าไบต์จะสามารถแทนตัวอักขระหนึ่งตัว ให้แตกต่างกันได้ถึง256 ตัวก็ตาม แต่
ไบต์ก็ยังไม่สามารถสื่อข้อมูลได้อย่างมีความหมาย จึงนาหลายๆไบต์มารวมเข้าด้วยกันจนกลายเป็น
ฟิ ล ด์ ท าให้ ส ามารถอ้ างฟิ ล ด์ เพื่ อ แทนความหมายข้ อ มู ล หนึ่ ง ๆ ได้ เช่ น ฟิ ล ด์ name ใช้ แ ทนชื่ อ
พนักงาน และ ฟิลด์ address ใช้เก็บที่อยู่ของพนักงาน เป็นต้น
7
ยาล
ยั น
เร ศ
วร
เรคอร์ด(Record)
เรคอร์ดคือกลุ่มของฟิลด์ที่มีความสัมพันธ์ ตัวอย่างเช่น เรคอร์ดของพนักงาน
ประกอบด้วยฟิลด์ empNo, fName, IName, postion, sex, birthDate, address, telephone
และ salary ซึ่งตามปกติ ภายในเรคอร์ดหนึ่งๆ จะมีฟิลด์ตัวหนึ่ง (หรือหลายตัว) ที่ถูกนามาอ้างอิง
ความสามารถเฉพาะของเรคอร์ดนั้นๆ ที่เรียกว่าคีย์ฟิลด์ และจากตัวอย่างเรคอร์ดพนักงาน คีย์ฟิลด์ที่
เหมาะสมคือ empNo ซึ่งเป็นรหัสพนักงานที่สามารถนามาอ้างอ้งความเป็นเฉพาะของเรคอร์ด
พนักงานผู้นั้นได้ ที่สาคัญรหัสพนักงานที่ใช้เป็นคีย์ฟิลด์นั้นจะมีค่าไม่ซ้ากัน
Fields
ชูส
ำโร
ง
File
มห
าวทิ
ไฟล์(File)
ไฟล์คือกลุ่มของเรคอร์ดที่สัมพันธ์กัน ตัวอย่างเช่น แฟ้มพนักงานที่ประกอบไปด้วยเร
คอร์ดของนิสิตต่างๆในมหาวิทยาลัย ดังนั้น ไฟล์หนึ่งไฟล์จะต้องมีอย่างน้อยหนึ่งเรคอร์ดเพื่อใช้สาหรับ
อ่านเรคอร์ดข้อมูลนั้นๆขึ้นมาใช้งาน
ดร
.สิท
ธิช
ัย
Record
ภาพที่ 1.2 แฟ้มนิสิต ซึ่งประกอบด้วยฟิลด์และเรคอร์ดของนิสิตในมหาวิทยาลัย
1.4 ชนิดของข้อมูล (Type Of Data)
ข้อมูลที่จัดเก็บลงในแฟ้มข้อมูลหรือฐานข้อมูล นอกจากจะเป็นแบบข้อความแล้ว ในปัจ จุบัน
ยังมีข้อมูลชนิดอื่นๆ ที่สามารถนามาใช้ประกอบร่วมกัน ตัวอย่างเช่น ข้อมูลแบบข้อความที่ใช้อธิบาย
รายละเอียดเกี่ย วกับ ผลิ ตภัณ ฑ์ ชิ้น หนึ่ง ในขณะเดียวกันก็มีรูปภาพของผลิ ตภัณ ฑ์นั้น พร้อมเสี ยง
ประกอบคาบรรยายตัวผลิตภัณฑ์ เป็นต้น โดยชนิดของข้อมูลแบ่งออกเป็นรูปแบบต่างๆ อันได้แก่
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
1.ข้อมูลชนิดข้อความ
2.ข้อมูลที่เป็นรูปแบบ
(20
1
6)
3.ข้อมูลรูปแบบ
4.ข้อมูลชนิดเสียง
ยั น
เร ศ
วร
ข้อมูลชนิดข้อความ(Text)
เป็นข้อมูลที่ประกอบด้วยตัวอักขระ (เช่น ตัวอักษร และตัวเลข) ต่างๆ นามารวมกัน
เป็นคาหรือประโยคเพื่อใช้สื่อความหมายแทนสิ่งๆหนึ่ง โดยไม่มี รูปแบบที่ชัดเจนและแน่นอน ข้อมูล
ชนิดนี้จะมีความหมายในตัวเอง โดยไม่จาเป็นต้องมาตีความหมายใดๆ อีก เช่น ชื่อพนักงาน และที่อยู่
ปัจจุบันของพนักงาน เป็นต้น
มห
าวทิ
ยาล
ข้อมูลที่เป็นรูปแบบ(Formatted Data)
ข้อมูลชนิดนี้จะมีความแตกต่างกับแบบแรก กล่าวคือ เป็นข้อมูลที่ประกอบด้วยตัวอักขระ
ต่ า งๆ ที่ ถู ก ก าหนดรู ป แบบแน่ น อนเอาไว้ ซึ่ ง ปกติ มั ก ก าหนดในรูป ของรหั ส ข้ อ ดี ก็ คื อ ท าให้ ไม่
สิ้นเปลืองเนื้อที่ในการจัดเก็บ และลดโอกาสการกรอกคาสะกดข้อมูลแบบผิดๆ รวมถึงความสะดวกต่อ
การนาไปใช้อ้างอิง แต่ข้อมูลชนิดนี้ จาเป็นต้องนาไปตีความหมายตามรายละเอี ยดที่กาหนดเอาไว้
ตัวอย่างเช่น รหัสสาขา “CS” ใช้แทนสาขาวิทยาการคอมพิวเตอร์ หรือรหัสสาขา “IT” ใช้แทนสาขา
เทคโนโลยีสารสนเทศ หรือรหัสวิชา “CS104” คือวิชาระบบฐานข้อมูล เป็นต้น
ชูส
ำโร
ง
ข้อมูลรูปภาพ(Images)
ด้วยเทคโนโลยีของอุปกรณ์อย่างกล้องดิจิตอล เครื่องสแกนเนอร์ และโปรแกรมช่วย
สร้างภาพต่างๆดังนั้น การแทนข้อมูลด้วยรูปภาพในยุคปัจจุบันจึงเป็นเรื่องที่ง่ายขึ้นมาก ข้อมูลรูปภาพ
นิ ย มน ามาใช้เสริ มร่ว มกัน กับ ข้อมูล แบบข้อความเพื่ อให้ มีความสมบูรณ์ ยิ่งขึ้น เช่น ข้อมูล ประวัติ
นักศึกษา ที่นอกจากมีข้อมูลเป็นข้อความแล้ว ยังมีรูปถ่า ยนักศึกษา หรือข้อมูลสินค้าที่มีรายละเอียด
พร้อมภาพถ่าย เป็นต้น อย่างไรก็ตาม แม้ว่าข้อมูลรูปภาพส่วนใหญ่จาเป็นต้องใช้เนื้อที่ในการจัดเก็บ
มากกว่าข้อมูลชนิดแบบข้อความก็ตาม แต่ด้วยสื่อจัดเก็บข้อมูลในยุคปัจจุบันก็ได้พัฒ นาขึ้นมาก มี
ความจุสูงและมีขีดความสามารถในจัด เก็บข้อมูลในปริมาณมาก ดังนั้น ข้อมูลรูปภาพจึ่งมิใช่ปัญหา
ใหญ่สาหรับในยุคปั จจุบัน แล้ว เพียงแต่ขอให้เลือกใช้ชนิดไฟล์ภ าพให้เหมาะสมกับงาน(เช่น BMP,
JPG,TIFF,GIF และ PNG) เพราะไฟล์ ภ าพแต่ ล ะสกุ ล จะเก็ บ รายละเอี ย ดภาพที่ แ ตกต่ า งกั น นั่ น
หมายถึงมีขนาดความจุที่แตกต่างกันด้วย
ดร
.สิท
ธิช
ัย
8
ข้อมูลชนิดเสียง(Audio/Sound)
เป็น ไฟล์ข้อมูลชนิ ดหนึ่ งที่ใช้จัดเก็บเสียงแบบดิจิตอล เช่น การแปลงเสียงพูดของ
มนุษย์หรือเสียงดนตรีซึ่งเป็นแบบแอนะล็อก ให้กลายเป็นไฟล์ดิจิตอลที่สามารถคลิกเพื่อเปิดฟังผ่าน
ลาโพงที่เชื่อมต่อกับคอมพิวเตอร์ได้ ตัวอย่างเช่น ไฟล์ประเภท MIDI หรือไฟล์ดิจิตอลออดิโอทั่วๆไป
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
9
(20
1
6)
และจากข้อมูลชนิดต่างๆตามที่ได้กล่าวมา เรายังสามารถนาข้อมูลเหล่านี่มาใช้งานร่วมกันได้
เช่น งานด้านมัลติมีเดีย หรือสื่อประสมที่นาข้อมูลชนิดต่างๆมาประกอบเข้าด้วยกัน อันได้แก่ ข้อความ
ภาพนิ่ง คลิปวีดีโอ กราฟิกแอนนิเ มชัน ซึ่งเหมาะกับงานสร้างสื่อโฆษณา ภาพยนตร์ รวมถึงงานด้าน
วิทยาศาสตร์และการแพทย์
ยั น
เร ศ
วร
1.5 การจัดการข้อมูล(Data Management)
ชูส
ำโร
ง
มห
าวทิ
ยาล
แนวคิดการจัดการข้อมูลได้เกิด
ขึ้นมาตั้งแต่อดีตกาล
ซึ่งเป็นไปตาม
เทคโนโลยีของแต่ละยุคสมัย สาหรับ
การจัดการข้อมูลตามวิธีพื้นฐานที่สุด ก็
คือการบันทึกข้อมูลลงในสมุด และหาก
ต้องการค้นหาข้อมูลที่เคยบันทึกไว้ก็จะ
พลิกหน้าหนังสือไปยังเลขหน้าที่
ต้องการเพื่อดูรายละเอียดในแต่ละ
หัวข้อของข้อมูลนั้นๆ ซึ่งไม่ได้มีรูปแบบ
การจดบันทึกมูลที่แน่นอน จนกระทั่ง
ต่อมา เริ่มมีข้อมูลในปริมาณมากขึ้นจึงพัฒนารูปแบบการจัดเก็บข้อมูลให้เป็นระบบระเบียบและมี
มาตรฐานยิ่งขึ้น ด้วยการบันทึกข้อมูลลงในเอกสาร และจัดเก็บลงในแฟ้มเอกสารที่ถูกจัดเรียงไว้อย่าง
เป็นหมวดหมู่ มีการจัดทาสารบัญและดัชนี เพื่อให้การค้นหาข้อมูลมีความรวดเร็วยิ่งขึ้น ใน
ขณะเดียวกัน แฟ้มเอกสารเหล่านี้ก็จะถูกรวบรวมนาไปเก็บไว้ในตู้เอกสารเพื่อความปลอดภัย
ดร
.สิท
ธิช
ัย
การจั ดเก็บ ข้อมู ล หรื อเอกสารต่างๆ ที่ รวบรวมไว้ในแฟ้ม เอกสารและนาไปจัด เก็บไว้ในตู้
เอกสารอย่างมิดชิดและปลอดภัยนั้น ยังคงเป็นวิธีการจัดเก็บข้อมูลที่ทากันมานานจนถึงปัจจุบัน แต่
การจัดเก็บในรูปแบบนี้จะต้องเพิ่มจานวนตู้หรือสร้างชั้นเก็ บเอกสารขึ้นตามจานวนเอกสารที่นับวันจะ
เพิ่มพูนมากขึ้นเรื่อยๆ และอาจจะต้องเตรียมห้องขนาดใหญ่เพื่อจะจัดเก็บเอกสารเหล่านั้น ประกอบ
กับหากต้องการการค้นหาเอกสารใดๆ ก็จะต้องใช้เวลาค้นหา เนื่องจากเป็นการค้นหาด้วยมือภายใต้
เอกสารจานวนมากที่กองไว้สูงท่วมหัว
ครั้งเมื่อนาเทคโนโลยีคอมพิวเตอร์มาใช้เพื่อการจัดเก็บข้อมูล จึงช่วยลดจานวนเอกสารลง
ได้มากเนื่ องจากสื่ อบั น ทึ กข้อมูล ในปัจจุบั นสามารถจัด เก็บข้อ มูล ได้ อย่างมหาศาลอย่างไม่น่ าเชื่ อ
สามารถนาข้อมูลกระดาษจานวนมหาศาลมาเก็บลงในฮาร์ดดิสก์เพียงตัวเดียว หรือบันทึกลงในแผ่น
ซีดีเพี ย งไม่ กี่แผ่น และยั งช่วยให้ การค้นหาข้อมูล เป็นไปด้วยความสะดวกและรวดเร็ว นอกจากนี้
ข้ อ มู ล ที่ จั ด เก็ บ ลงในคอมพิ ว เตอร์ จ ะเป็ น ข้ อ มู ล แบบดิ จิ ต อล ซึ่ ง จะไม่ ล บเลื อ นไปตามกาลเวลา
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
1.6 ระบบฐานข้อมูล (Database System)
ยั น
เร ศ
วร
(20
1
อย่างไรก็ตาม ในการที่จะให้คอมพิวเตอร์สามารถประมวลผลข้อมูลหรือค้นหาข้อมูลให้เราได้
นั้น ข้อมูลที่จัดเก็บ จาเป็นต้องถูกจัดรูปแบบแล้วบันทึกลงในแฟ้มข้อมูลเพื่อให้คอมพิวเตอร์สามารถ
อ่านเรคอร์ดข้อมูลต่างๆจากแฟ้มข้อมูลเหล่านั้นได้ ดังนั้น เพื่อให้เกิดความเข้าใจยิ่งขึ้ น จึงจาเป็นต้อง
เข้าใจถึงโครงสร้างแฟ้มข้อมูลเสียก่อน
6)
เหมือนกับกระดาษ ที่เนื้อกระดาษและข้อมูลที่บันทึกจะไม่คงสภาพจะไม่คงสภาพเดิมตามกาลเวลาที่
ผ่านไป
ชูส
ำโร
ง
มห
าวทิ
ยาล
จากข้อจากัดต่างๆ ของระบบแฟ้มข้อมูลที่กล่าวไว้แล้วในข้างต้น คงทาให้ได้เข้าใจถึงปัญหา
ต่างๆ นานาที่เกิดจากการประมวลผลด้วยวิธีนี้ ไม่ว่าจะเป็นปัญหาด้านความซ้าซ้อนในข้อมูล ความไม่
ยืดหยุ่น และความไม่คล่องตัวในหลายๆด้าน จนกระทั่งต่อมา ได้เกิดเทคโนโลยีการจัดระบบข้อมูล
ใหม่ ที่ เรี ย กว่า “ระบบฐานข้ อมู ล ” ซึ่ งแนวคิ ดดั งกล่ าวสามารถน ามาแก้ ไขปั ญ หาที่ เกิ ดขึ้ นจากวิธี
แฟ้มข้อมูลได้เป็นอย่างดี
ตามปกติระบบแฟ้มข้อมูล ข้อมูลจะถูกจัดเก็บแบบกระจายไปตามหน่วยงานหรือแผนกต่างๆ
ซึ่งแต่ละแผนกต่างก็มีกระบวนการจัดเก็บแฟ้มข้อมูลเป็นของตนเอง และหากมีผู้หนึ่งผู้ใดในแผนก
กาลังเข้าถึงข้อมูลเพื่อใช้งานในขณะนั้น บุคคลอื่นๆ ในแผนกจะไม่สามารถเข้าถึงข้อมูลชุดเดียวกันนี้
ในช่วงเวลาดังกล่าวได้ แต่สาหรับแนวคิดของระบบฐานข้อมูล จะตรงกันข้ามกับระบบแฟ้มข้อมูลโดย
สิ้นเชิง
ภาพที่ 1.3 ระบบฐานข้อ มูล : ข้อมู ลต่างๆ
จะเก็บรวบรวมในฐานข้อมูลชุดเดียว โดยจะ
มีซอฟแวร์จัดการฐานข้อมูล (DBMS) คอย
ควบคุมและจัดการการเข้าถึงข้อมูลของผู้ใช้
ตามแต่ละแผนก ด้วยการแบ่งปันข้อมูลชุด
เดี ย วกั น นี้ ส ามารถใช้ ง านร่ ว มกั น ภายใน
องค์กรได้อย่างไม่มีปัญหา โอภาส เอี่ยมสิริ)
วงศ์, 2558)
ดร
.สิท
ธิช
ัย
10
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
11
ฐานข้อมูล (Database)
ยั น
เร ศ
วร
(20
1
6)
ฐานข้ อมูล ถือเป็ น ส่ ว นหนึ่ งของระบบฐานข้อมูล หมายถึง ที่ส าหรับจัด เก็บ ข้อมู ล รวมทั้ ง
ความมสั ม พั น ธ์ ข องข้ อ มู ล เหล่ า นั้ น ด้ ว ย ตั ว ยอ่ า งคววามสั ม พั น ธ์ ข องข้ อ มู ล เช่ น “วาสนา” กั บ
“250/14” มีความสัมพันธ์กันโดยที่ “วาสนา” เป็นชื่อของคนๆ หนึ่ง และ “250/14” เป็นบ้านเลขที่
ของคนชื่อ “วาสนา”
ฐานข้ อ มู ล เป็ น ศู น ย์ ร วมของข้ อ มู ล ต่ า งๆ ที่ มี ค วามสั ม พั น ธ์ กั น โดยจะมี ก ระบวนการจั ด
หมวดหมู่ข้อมูลอย่างมีระเบียบแบบแผน ก่อให้เกิดฐานข้อมูลที่เป็นแหล่งรวมข้อมูลจากแผนกต่างๆ ที่
ถูกนามาจัดเก็บรวมกันไว้ภายใต้ฐานข้อมูลเพียงชุดเดียว โดยผู้ใช้ทั่วไปสามารถเข้าถึงข้อมูลส่วนกลาง
นี้ได้ ซึ่งศูนย์กลางข้อมูลแห่งนี้จะทาหน้าที่แบ่งปันข้อมูลแก่ผู้ใช้ตามหน่วยงานต่างๆ เพื่อนาไปใช้งาน
ร่วมกันได้อย่างไม่มีปัญหา และการที่มีเพียงข้อมูลเพียงชุด เดียวนี้เอง จึงช่วยแก้ปัญหาความซ้าซ้อน
ของข้อมูลได้อย่างดี ข้อมูลจึงมีความทันสมัยอยู่เสมอและที่สาคัญ ข้อมูลที่บรรจุอยู่ในฐานะข้อมูลจะ
มีอิสระ ไม่ผูกติดกับโปรแกรมเหมือนวิธีแฟ้มข้อมูล
ยาล
1.7 ระบบจัดการฐานข้อมูล (Database Management Systems : DBMS )
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ระบบจั ดการฐานข้อมูล หรือเรียกย่อๆ ว่า DBMS คือซอฟแวร์จัดการฐานข้อมูลที่นามาใช้
เป็นเครื่องมือเพื่อให้ผู้ใช้สามารถโต้ตอบกับฐานข้อมูลได้ ตัวซอฟแวร์จัดการฐานข้อมูลจะประกอบไป
ด้วยฟังก์ชั่นหน้าที่ต่างๆเพื่อนามาจัดการกับฐานข้อมูล รวมทั้งภาษาที่ใช้สั่งงานซึ่งส่วนใหญ่คือ ภาษา
SQL เพื่อให้ผู้ใช้สามารถเขียนชุดคาสั่งเพื่อโต้ตอบกับฐานข้อมูล ไม่ว่าจะเป็นการสร้างฐานข้อมูล การ
เรียกดูข้อมูล การอัปเดตข้อมูล และการบารุงรักษาฐานข้อมูล นอกจากนี้ DBMS ยังผนวกฟังก์ชันเพื่อ
การรักษาความปลอดภัยของข้อมูล เพื่อป้องกันผู้ไม่มีสิทธิ์ใช้งานถึงฐานข้อมูล รวมถึงการสารองและ
การกู้คืนฐานข้อมูล ในกรณีข้อมูลเกิดความเสียหาย
ภาพที่ 1.4 ระบบจัดการฐานข้อมูล (DBMS) เป็นตัวกลางในการโต้ตอบระหว่างผู้ใช้
กับฐานข้อมูล (โอภาส เอี่ยมสิริวงศ์, 2558)
ดร.สิทธิชัย ชูสาโรง
ยาล
ยั น
เร ศ
วร
(20
1
จึงกล่าวโดยสรุปว่า DBMS เป็นซอฟแวร์ที่นามาใช้จัดการฐานข้อมูล ทาหน้าที่เป็นตัวกลางใน
การโต้ตอบระหว่างผู้ใช้กับฐานข้อมูล ทั้งนี้ผู้ใช้สามารถโต้ตอบกับฐานข้อมูลได้โดยผ่านชุดคาสั่ง SQL
หรือน าชุดคาสั่ง SQL ไปผนวกลงในโปรแกรมประยุกต์เพื่อใช้งานร่วมกับโปรแกรมที่เขียนขึ้นก็ได้
ตัวอย่างเช่น ได้เขียนโค้ดโปรแกรมด้วยภาษา Visual Basic หรือ PHP ซึ่งภายในโปรแกรมมีโมดูล
ประมวลผลต่างๆ พร้อมกับโมดูลที่ใช้โต้ตอบกับฐานข้อมูลด้วยชุดคาสั่งภาษา SQL ซึ่งเป็นไปดังรูปที่
1.5
6)
เอกสารประอบการสอน รายวิชา 104333
มห
าวทิ
ภาพที่ 1.5 การโต้ตอบกับ DBMS เพื่อเข้าถึงฐานข้อมูลในรูปแบบต่างๆ
DBMS จะถูกใช้เป็นเครื่องมืออานวยความสะดวกต่อผู้ใช้ ตามรายละเอียดดังนี้
ชูส
ำโร
ง
1. อนุญาตให้ผู้ใช้สร้างฐานข้อมูลผ่านชุดคาสั่ง Data Definition Language(DDL)โดย DDL
อนุ ญ าตให้ ผู้ ใ ช้ ส ามารถเข้ า ไปก าหนดชนิ ด ข้ อ มู ล และโครงสร้ า ง รวมถึ ง ข้ อ บั ง คั บ
(Constraints) ในข้อมูลที่จะจัดเก็บลงในฐานข้อมูล
2. เมื่อฐานข้อมูลถูกสร้างและได้กาหนดโครงสร้างและชนิดข้อมูลเป็นที่เรียบร้อยแล้ว ฐานข้อมูล
ก็ พ ร้อ มที่ จ ะใช้ บั น ทึ ก ข้ อ มู ล โดยผู้ ใช้ ส ามารถเพิ่ ม ปรับ ปรุ ง ลบ และเรี ย กดู ข้ อ มู ล จาก
ฐานข้อมูล ได้ด้วยการเรียกใช้ผ่ านชุดคาสั่ ง Data Manipulation Language (DML) ซึ่ง
ปกติ ชุดค าสั่ งทั้ งในกลุ่ ม DDL และ DML มั กเขียนด้ว ยภาษา SQL (ภาษายุคที่ 4 ) โดยมี
ลักษณะเป็นภาษาสอบถามข้อมูล (Query Language) ที่ผู้ใช้ทั่วไปสามารถเรียนรู้และสร้าง
ขึ้น ได้ ไม่ ย าก (อาจสร้ างด้ ว ยเครื่ อ งมื อ ช่ ว ยสร้างอย่ าง QBE ก็ ได้ ) ท าให้ ผู้ ใช้ งานสามารถ
สอบถามหรือสร้างรายงานเพิ่มเติมได้ด้วยตนเอง ซึ่งแตกต่างจากวิธีแฟ้มข้อมูลที่ต้องพึ่งพา
โปรแกรมเมอร์ให้เขียนโปรแกรมใหม่ทุกครั้งไป
3. เพื่อควบคุมการเข้าถึงฐานข้อมูล ผ่านชุดคาสั่ง Data Control Language(DCL) อันได้แก่
ดร
.สิท
ธิช
ัย
12
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
การควบคุมความปลอดภัยของระบบ ด้วยการกาหนดสิทธิ์การใช้งานแก่ผู้ใช้ในระดับ
ต่างๆ ดังนั้นผู้ที่ไม่มีสิทธิ์เข้าถึง ก็ไม่สามารถเข้าถึงข้อมูลภายในได้ ในขณะเดียวกัน
ผู้มีสิทธ์ก็อาจถูกจากัด สิทธิ์ให้ใช้งานตามขอบเขตที่ระบุไว้เท่านั้น
เพื่อความคงสภาพของระบบ (Integrity System ) โดยจะบ ารุงรักษาข้อมูล ให้ มี
ความถูกต้องตรงกัน
เพื่อความสมดุล สภาวะการทางานพร้อมกัน (Concurrency Control) เพื่อให้ ผู้ ที่
เข้าถึงก่อนได้ปฏิบัติข้อมูลก่อน ครั้นเมื่อใช้งานเสร็จสิ้น ระบบก็จะปลดล็อคเพื่อให้
ผู้ใช้รายอื่นๆ สามารถเข้าถึงได้ในลาดับถัดไป
การกู้คืนระบบ คือความสามารถในการติดตามเพื่อกู้คืนฐานข้อมูลให้กลับมาใช้งาน
ได้ ต ามปกติ ในกรณี ที่ ฮ าร์ ด แวร์ ห รื อ ซอฟแวร์ เกิ ด ความเสี ย หาย และส่ ง ผลให้
ฐานข้อมูลเกิดความเสียหายตามมา
อนุ ญ าตให้ ผู้ ใช้ ส ามารถเข้ า ถึ ง ตารางข้ อ มู ล ซึ่ ง เป็ น แหล่ ง เก็ บ รายละเอี ย ดของ
ฐานข้อมูลในระบบ (System Catalog) ไม่ว่าจะเป็นชื่อฐานข้อมูล,ตารางต่างๆ และ
ชื่อแอตตริบิวต์
เป็นต้น
13
ชูส
ำโร
ง
1.8 รูปแบบของระบบฐานข้อมูล มีอยู่ด้วยกัน 3 ประเภทคือ
ดร
.สิท
ธิช
ัย
1.8.1 ฐานข้อมูลเชิงสัมพันธ์ (Relational Database) เป็นการเก็บข้อมูลในรูปแบบที่เป็น
ตาราง (Table) หรื อ เรี ย กว่ า รี เ ลชั่ น (Relation) มี ลั ก ษณ ะเป็ น 2 มิ ติ คื อ เป็ น แถวและเป็ น
คอลัมน์ การเชื่อมโยงข้อมูลระหว่างตารางจะเชื่อมโยงโดยใช้แอททริบิวต์ (Attribute) หรือคอลัมน์ที่
ภาพที่ 1.6 แสดงลักษณะตารางและการเชื่อมโยงข้อมูล
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ยาล
ยั น
เร ศ
วร
(20
1
1.8.2 ฐานข้อมูลแบบลาดับชั้น (Hierarchical Database) ฐานข้อมูลแบบลาดับชั้น เป็น
โครงสร้ า งที่ จั ด เก็ บ ข้ อ มู ล ในลั ก ษณะความสั ม พั น ธ์ แ บบพ่ อ – ลู ก หรื อ เป็ น โครงสร้ า งรู ป แบบ
ต้นไม้ Tree ข้อมูลที่จัดเก็บในที่นี้ คือ ระเบียน Record ซึ่งประกอบด้วยค่าของเขตข้อมูล Field ของ
เอนทิตี้หนึ่งๆ นั่นเอง
6)
เหมือนกันทั้งสองตารางเป็นตัวเชื่อมโยงข้อมูล เช่น
มห
าวทิ
ภาพที่ 1.7 แสดงลักษณะฐานข้อมูลแบบลาดับชั้น
ชูส
ำโร
ง
1.8.3 ฐานข้อมูลแบบเครือข่าย (Network Database) ฐานข้อมูลแบบเครือข่าย จะเป็น
การรวมระเบียนต่างๆ และความสัมพันธ์ระหว่างระเบียนแต่จะต่างกับฐานข้อมูลเชิงสัมพันธ์คือ ใน
ฐานข้อมูลเชิงสัมพันธ์จะแฝงความสัมพันธ์เอาไว้ โดยระเบียนที่มีความสัมพันธ์กัน จะต้องมีค่าของ
ข้อมูลในแอททริบิวต์ในแอททริบิวต์หนึ่งเหมือนกันแต่ฐานข้อมูลแบบเครือข่าย จะแสดงความสัมพันธ์
อย่างชัดเจน โดยแสดงไว้ในโครงสร้าง เช่น
ดร
.สิท
ธิช
ัย
14
ภาพที่ 1.8 แสดงลักษณะฐานข้อมูลแบบเครือข่าย
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
15
6)
1.9 ส่วนประกอบของสภาพแวดล้อมของ DBMS (Component of the DBMS
Environment)
4. ขั้นตอนการทางาน
5. บุคลากร
ชูส
ำโร
ง
มห
าวทิ
ยาล
1. ฮาร์ดแวร์
2. ซอฟแวร์
3. ข้อมูล
ยั น
เร ศ
วร
(20
1
เป็ น ที่ ทราบในเบื้ องต้ น แล้ วว่า ระบบจัดการฐานข้อมูล หรือ DBMS นั้น คือซอฟแวร์ที่ท า
หน้ าที่ เป็ น ตั ว กลาง ให้ ผู้ ใช้ ส ามารถติด ต่ อกั บ ฐานข้อ มู ล เพื่ อ ท าการสร้าง เรีย กดู และบ ารุงรักษา
ฐานข้อมูล รวมถึงการจัดการควบคุมการเข้าถึงของข้อมูล แต่ในขณะเดียวกัน ก็ยังมีส่วนประกอบของ
สภาพแวดล้อมอื่น ๆ ที่เกี่ยวข้องกับระบบจัดการฐานข้อมูลอยู่ห ลายส่วนด้วยกัน ซึ่งส่ วนประกอบ
เหล่านี้จะทาให้ระบบจัดการฐานข้อมูลมีความสมบูรณ์ ยิ่งขึ้น สาหรับส่วนประกอบของสภาพแวดล้อม
ของระบบการจัดการฐานข้อมูล จะประกอบด้วย 5 ส่วนด้วยกันคือ
ภาพที่ 1.9 สภาพแวดล้อมของระบบการจัดการฐานข้อมูล
ฮาร์ดแวร์ (Hardware)
ดร
.สิท
ธิช
ัย
การท างานของ DBMS และโปรแกรมต่ างๆ ล้ ว นจ าเป็ น ต้ อ งใช้ อุ ป กรณ์ ฮ าร์ ด แวร์ โดย
ฮาร์ดแวร์สามารถเป็นทั้งคอมพิวเตอร์แบบซีพี เมนเฟรมคอมพิวเตอร์ ที่อาจเชื่อมโยงเป็นเครือข่าย
คอมพิวเตอร์ก็ได้ การที่จะเลือกใช้ฮาร์ดแวร์แบบใดนั้น ย่อมขึ้นอยู่กับความต้องการขององค์กรและ
DBMS ที่ใช้งาน โดย DBMS บางตัวจะรันอยู่บนสภาพแวดล้อมของฮาร์ดแวร์หรือระบบปฏิบัติการที่
ได้รับการออกแบบมาโดยเฉพาะ ในขณะที่ DBMS ที่นิยมใช้กันอย่างแพร่หลาย มักมีความยืดหยุ่นกว่า
สามารถติดตั้งและรันภายใต้อุปการณ์ฮาร์ดแวร์และระบบปฏิบัติการที่ค่อนข้างหลากหลายได้ อย่างไร
ก็ตาม ซอฟแวร์จัดการฐานข้อมูลจากค่ายต่างๆ มักมีระบุถึงสเปกขั้นต่าที่ตัวโปรแกรมสามารถรันได้
เช่น รุ่นซีพียูที่แนะนา,ขนาดหน่วยความจาหลักขั้นต่า และต้องมีพื้นที่บนฮาร์ดดิสก์อย่างน้อยจานวน
เท่าไหร่ เป็นต้น
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
(20
1
แน่นอนว่า ลาพังเพียงฮาร์ ดแวร์คงไม่สามารถทางานใดๆ ได้หากปราศจากซอฟแวร์เข้าไป
ควบคุมอุป กรณ์ ฮาร์ดแวร์เหล่ านั้ น ให้ ทางาน โดยซอฟแวร์ในที่นี้ก็คือ ซอฟแวร์ระบบปฏิบัติการ
(Operating System) ซอฟแวร์จัดการฐานข้อมูล (DBMS Software), โปรแกรมประยุกต์ทั่วไป
และโปรแกรมยูทิลิตี้ต่างๆ ซึ่งสามารถอธิบายลายละเอียดได้ตามหัวข้อต่างๆ ดังนี้
6)
ซอฟต์แวร์ (Software)
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
ระบบปฏิบัติการ (Operating Systems) เป็นซอฟแวร์ระบบที่ทาหน้าที่ควบคุมการทางาน
ทั้งหมดของระบบคอมพิวเตอร์ รวมถึงการจัดสรรทรัพยากรในระบบที่มีอยู่อย่างจากัดให้
สามารถทางานได้อย่ างมีป ระสิทธิภาพ คอมพิวเตอร์ทุกเครื่องจาเป็น ต้องติดตั้งโปรแกรม
ระบบปฏิบัติการก่อน จึงสามารถปลุกชีวิตให้เครื่องคอมพิวเตอร์สามารถทางานตามที่เราสั่ง
ได้ อย่างไรก็ตาม ระบบปฏิบัติการกับซีพียูหรือฮาร์ดแวร์ หรือสิ่งที่ต้องนามาพิจารณาควบคู่
กัน เพราะระบบปฏิบัติการบางค่าย ถูกออกแบบเพื่อใช้งานบนอุปกรณ์ฮาร์ดแวร์โดยเฉพาะ
ตัว อย่ างระบบปฏิ บั ติก ารที่ นิ ย มใช้ บ นคอมพิ ว เตอร์แ บบซีพี ทั่ ว ไป เช่ น ระบบปฏิ บั ติก าร
Windows จากค่ายไมโครซอฟต์
โปรแกรมจั ด การฐานข้ อมู ล (DBMS Software) เมื่ อ ผู้ ใช้ ต้อ งการโต้ ต อบกั บ ฐานข้อ มู ล
จะต้ อ งด าเนิ น งานผ่ าน DBMS เท่ านั้ น โดย DBMS จะเป็ น ตั ว กลางเพื่ อ ให้ ผู้ ใช้ ส ามารถ
โต้ตอบกับฐานข้อมูล นอกจากนี้ DBMS ยังช่วยอานวยความสะดวกต่อผู้ใช้ ด้วยการเตรียม
เครื่องมือให้ผู้ใช้สามารถสั่งงานเพื่อเรียกดูข้อมูลตามที่ต้องการ โดยไม่จาเป็นต้องมีความรู้
ความเชี่ยวชาญก็สามารถดาเนินการเองได้ ซึ่งปกติมักใช้ชุดคาสั่ง SQL ในการจัดเก็บกับ
ฐานข้อมูล และการเตรียมซอฟต์แวร์เพื่อการสอบถามข้อมูลตัวอย่าง QBE เป็นต้น
โปรแกรมประยุกต์ และโปรแกรมยูทิลิตี้ต่างๆ โปรแกรมประยุกต์ ก็คือโปรแกรมที่พัฒนาขึ้น
มาเพื่อนามาประมวลผล โดยปกติโปรแกรมประยุกต์มักถูกสร้างด้วยภาษาระดับสูงซึ่งเป็น
ภาษายุคที่ 3 เช่น COBOL, Pascal, C, C++, JAVA และ Visual Basic ตัวอย่างเช่น ระบบ
ธนาคารที่เขียนด้วยภาษา COBOL ซึ่งโปรแกรมเมอร์จะสร้างโปรแกรมขึ้นมาให้ผู้ใช้นาไป
ปฏิบัติงานประจาวันตามส่วนงานที่เกี่ยวข้อง ในขณะเดียวกัน ภายในโปรแกรมดังกล่าว ก็
อาจผนวกภาษายุคที่ 4 เข้าไป (Embedded SQL) เพื่อติดต่อหรือจัดการกับฐานข้อมูล ซึ่ง
ภาษายุคที่4 จะช่วยให้เราสามารถพัฒนาโปรแกรมได้อย่างรวดเร็ว เนื่องจากมีตัวช่วยสร้าง
ต่างๆ เช่น ตัวช่วยสร้างแบบฟอร์มกรอก Utility ที่ช่วยอานวยความสะดวกในไฟล์ข้อความ
(Text Files/Sequential Files) ถ่ายโอนลงในโครงสร้างไฟล์บนฐานข้อมูล หรือโอนข้อมูล
จาก DBMS หนึ่ ง ลงในอี ก DBMS หนึ่ ง นอกจากนี้ ยั ง มี ยู ทิ ลิ ตี้ ส าหรั บ ส ารองข้ อ มู ล ซึ่ ง
โปรแกรมยูทิลิตี้ดังกล่าว อาจผนวกรวมอยู่ในชุดของ DBMS มาให้เลย หรือเป็นซอฟต์แวร์
แยกต่างหากก็ได้
ดร
.สิท
ธิช
ัย
16
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
17
ข้อมูล (Data)
ยั น
เร ศ
วร
(20
1
6)
ข้อมูล ถือเป็น ส่วนประกอบส าคัญในสภาพแวดล้ อมของ DBMS ก็ว่าได้ เมื่อพิจารณารูปที่
1.22 แล้ ว จะพบว่ า ข้ อ มู ล เปรี ย บเสมื อ นสะพานเชื่ อ มโยงระหว่ า งส่ ว นประกอบของเครื่อ งจั ก ร
(Machine ) และมนุ ษ ย์ (Human) เข้ าด้ ว ยกั น ท าให้ ม นุ ษ ย์ เราสามารถติ ด ต่ อ เครื่อ งจั ก รเพื่ อ สั่ ง
ประมวลผลข้อมูลตามที่ต้องการได้ สาหรับข้อมูลที่บั นทึกอยู่ในฐานข้อมูลนั้น จะได้รับการออกแบบ
อย่างมีแบบแผน ตัวอย่างเช่น ฐานข้อมูลสัมพันธ์ (Relation Database) จะประกอบด้วยกลุ่มตาราง
ต่างๆ ที่เกี่ยวข้อง โดยแต่ละตารางจะมีการเชื่อมโยงความสัมพันธ์กันด้วยคีย์ ซึ่งตารางข้อมูลเหล่านี้
ยังสามารถแชร์ใช้งานให้กับผู้ใช้ได้หลายๆ คน ตามแต่ละผู้ใช้ว่าจะวิวดูข้อมูลด้วยมุมมองในรูปแบบใด
ชูส
ำโร
ง
มห
าวทิ
ยาล
ขั้นตอนการทางาน (Procedures)
ขั้นตอนการทางาน เกี่ยวข้องกับชุดคาสั่งและกฎระเบียบที่ถูกกาหนดขึ้นมาโดยเฉพาะ ปกติ
จะถูกจัดทาขึ้นในรูปแบบของคู่มือเอกสารที่นามาใช้อธิบายขั้นตอนการใช้งานต่างๆ ว่ าจะต้องปฏิบัติ
อย่างไร เพื่อให้ระบบหรือโปรแกรมทางานตามที่เราสั่งได้อย่างถูกต้อง ซึ่งผู้ปฏิบัติหรือผู้ที่เกี่ยวข้อง
จะต้องปฏิบัติตามขั้นตอนอย่างเคร่งครัด และต่อไปนี้เป็นตัวอย่างขั้นตอนการทางาน เช่น
ขั้นตอนการล็อกอินเพื่อเข้าสู่โปรแกรมจัดการฐานข้อมูล
ขั้น ตอนการใช้เครื่องมืออานวยความสะดวกต่างๆ ของ DBMS หรือการใช้งานโปรแกรม
ประยุกต์
ขั้นตอนการเริ่มใช้งาน และจบการทางานของ DBMS ที่ถูกต้อง
ขั้นตอนการสารองฐานข้อมูล
ขั้นตอนการแก้ปัญหาเบื้องต้น กรณีมีอุปกรณ์ฮาร์ดแวร์หรือซอฟต์แวร์บางอย่างเกิดความ
เสียหายหรือใช้งานไม่ได้ ครั้นเมื่อรู้สาเหตุของปัญหาแล้ว อาจติดต่อกับเจ้าหน้าที่ส่วนงาน
ไอทีเพื่อขอคาแนะนาในการซ่อมแซมที่เสียหายให้กลับมาใช้งานได้ตามปกติ
ขั้นตอนการเปลี่ยนแปลงโครงสร้างของตาราง การปรับปรุงอุปกรณ์ให้ มีสมรรถนะสูงขึ้น
เช่น การเพิ่มความจุดิสก์ และความจาหลักจะต้องปฏิบัติอย่างไร
ดร
.สิท
ธิช
ัย
บุคลากร (People)
ส าหรั บ ส่ วนประกอบสุ ด ท้ ายที่ จ ะกล่ าวถึงก็คื อ บุ คลากร ซึ่ งก็คื อผู้ ใช้ งานระดั บ ต่างๆ ที่
เกี่ ย วข้ องกั บ ระบบฐานข้ อ มู ล โดยมั ก จาแนกความรับ ผิ ดชอบออกเป็ น ต าแหน่ งต่ างๆ ซึ่งแต่ ล ะ
ตาแหน่งก็จะมีภาระหน้าที่รับผิดชอบที่แตกต่างกันออกไป โดยบทบาทของบุคลากรในตาแหน่งต่างๆ
จะขอกล่าวในหัวข้อถัดไป
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ยั น
เร ศ
วร
(20
1
เมื่อกล่าวถึงคาว่า “สถาปัตยกรรม” หลายคนมักมโนภาพถึงสถาปัตยกรรมที่เกี่ยวข้องกับ
สิ่ ง ก่ อ สร้ า ง ไม่ ว่ า จะเป็ น ตึ ก อาคารหรื อ สะพานข้ า มแม่ น้ าที่ อ อกแบบโดย สถาปนิ ก แต่ ใ นเชิ ง
คอมพิวเตอร์ศาสตร์ ความหมายของสถาปัตยกรรมจะเป็นการศึกษาโครงสร้างองค์ประกอบหลักของ
ระบบและหน้ าที่ ของแต่ ล ะองค์ป ระกอบ รวมถึงการติดต่อสื่ อสารกับส่ ว นอื่น ๆที่เกี่ยวข้อง ดังนั้ น
สถาปัตยกรรมระบบฐานข้อมูล จึงหมายถึงการอธิบายเกี่ยวกับโครงสร้างและส่วนประกอบหลักที่
นามาประกอบรวมกันเป็นฐานข้อมูลนี่เอง
6)
1.10 สถาปัตยกรรมระบบฐานข้อมูล (Database System Architecture)
ยาล
การทาความเข้าใจเกี่ยวกับแบบจาลองเชิงนามธรรมของข้อมูลถือเป็นสิ่งสาคัญ เนื่องจากจะ
อธิบายถึงสถาปัตยกรรมระบบฐานข้อมูล กล่าวคือ แม้ว่างานออกแบบในสถาปัตยกรรมจะเป็นเพียง
แบบจาลองเชิงนามธรรมที่ไม่ได้ลงลึกในระดับรายละเอียดภายในก็ตาม แต่ก็นับว่ามีความสาคัญต่อ
การทาความเข้าใจในขั้นพื้นฐานเพื่อนาไปสู่การนาไปใช้ และได้มาซึ่งผลงสนที่สามารถทางานได้อย่าง
ครบถ้วนตามที่ต้องการ
ชูส
ำโร
ง
มห
าวทิ
สถาปัตยกรรมระบบฐานข้อมูลเป็นแนวคิดที่นาเสนอเกี่ยวกับโครงสร้างและส่วนประกอบ
ต่ างๆ ที่ น ามาประกอบเข้ าด้ ว ยกั น เป็ น ระบบฐานข้ อ มู ล จากเอกสารดั้ งเดิ ม ได้ มี ก ารบั น ทึ ก ไว้ว่ า
สถาปัตยกรรมระบบฐานข้อมูลได้เกิดขึ้นเมื่อราว ค.ศ. 1971 โดยกลุ่มคณะทางาน DBTG (Data Base
Task Group) ซึ่งได้รับการแต่งตั้งขึ้นโดยคณะกรรมการที่ประกอบด้วยผู้เชี่ยวชาญด้านการพิจารณา
มาตรฐานการประมวลผลและฐานข้อมูล (Conference on Data Systems and Languages หรือ
CODASYL, 1971) โดยคณะท างาน DBTG ได้ กาหนดสถาปั ต ยกรรมระบบฐานข้อ มู ล ไว้ 2 ระดั บ
ด้ ว ย กั น คื อ ส คี ม า (Schema) ซึ่ งเป็ น มุ ม ม อ งร ะ บ บ (System Views) แ ล ะ ซั บ ส คี ม า
(Subschema) ซึ่งเป็นมุมมองผู้ใช้งาน (User Views)
ต่อ มาในราวปี ค.ศ. 1975 ทางสถาบั น มาตรฐานแห่ งชาติ ของสหรัฐ อเมริกา (American
National Standards Institute) และคณะกรรมการมาตรฐานการวางแผนและความต้ อ งการ
(Standards Planning and Requirements Committee) ได้ ก าหนดมาตรฐานการออกแบบเชิ ง
นามธรรมสาหรับ ระบบจัดการฐานข้อมูล ที่ มีลักษณะคล้ายคลึงกันโดยใช้ชื่อว่า ANSI-SPARC ซึ่ง
ประกอบไปด้วยสถาปัตยกรรม 3 ระดับด้วยกัน โดยข้อมูลเหล่านี้ถูกเผยแพร่ผ่านข้อมูลที่จัดทาขึ้นโดย
บริษัทไอบีเอ็มที่ได้มุ่งเน้นประเด็นเรื่องความจาเป็นต่อการสร้างระดับชั้นเพื่อให้เกิดความอิสระใน
ข้อมูล เพื่อมิให้โปรแกรมผูกติดข้อมูลด้วยการแยกโปรแกรมกับข้อมูลออกจากกัน อย่างไรก็ตาม แม้ว่า
แบบจาลอง ANSI-SPARC จะมิได้ถูกแปรสภาพมาเป็นมาตรฐานก็ตาม แต่ก็มีความเชื่อว่าแบบจาลอง
ANSI-SPARC ทาให้เราทราบถึงหน้าที่การทางานในแต่ละส่วนของระบบจัดการฐานข้อมูลได้ชัดเจน
และเข้าใจง่ายยิ่งขึน้
ดร
.สิท
ธิช
ัย
18
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
1.10.1 สถาปัตยกรรม 3 ระดับ (The Three-Schema Architecture)
ANSI-SPARC เป็ น แบบจ าลองแสดงระดั บ ขั้ น ของสถาปั ต ยกรรม 3 ระดั บ ประกอบด้ว ย
ระดับภายใน ระดับแนวคิด และระดับภายนอก ดังรูปที่ 1.10 โดยผู้ใช้ทั่วไปจะมองเห็นข้อมูลแค่เพียง
ระดับภายนอก ในขณะที่ DBMS และโปรแกรมระบบปฏิบัติการจะมองเห็นข้อมูลใน ระดับภายใน
ซึ่ งเป็ น ข้ อ มู ล แท้ จ ริ งที่ ถู ก จั ด เก็ บ และถู ก จั ด ระเบี ย บไว้ ในโครงสร้ างไฟล์ (File Organization) ใน
ขณะเดียวกัน ระดับแนวคิด จะทาการแปลงรูป (Mapping) ส่วนทั้งสอง ซึ่งระดับแนวคิดนี้จะมีความ
เป็นอิสระ (Independence) ในข้อมูล ระหว่างภายในและภายนอก
19
ดร
.สิท
ธิช
ัย
ภาพที่ 1.10 สถาปัตยกรรม 3 ระดับของ ANSI-SPARC
รายละเอียดของสถาปัตยกรรมทั้ง 3 ระดับ สามารถอธิบายได้ตามรายละเอียดดังนี้
ระดับภายใน (Internal Level)
ระดั บ ภายในจะมี โครงร่ างภายใน (Internal Schema) ที่ อ ธิ บ ายเกี่ ย วกั บ โครงสร้ างการ
จัดเก็บข้อมูลกายภาพ (Physical) ของระบบฐานข้อมูล ว่ามีการจัดโครงสร้างข้อมูลเพื่อการจัดเก็บ
ข้อมูลอย่างไร (How) เช่น รูปแบบและที่สาคัญ โครงสร้างข้อมูลภายในยังส่งผลโดยตรงเกี่ยวกับเรื่อง
ของประสิทธิภาพ (ความเร็วในการเข้าถึงข้อมูล) และยังเกี่ยวข้องกับสิ่งต่อไปนี้
การจัดการพื้นที่เพื่อจัดเก็บข้อมูล และการจัดเรียงข้อมูลตามลาดับดัชนี
ดร.สิทธิชัย ชูสาโรง
การจัดเก็บรายละเอียดของเรคอร์ด
การจัดวางตาแหน่งของเรคอร์ด
การบีบอัดข้อมูล และเทคนิคการเข้ารหัสข้อมูล
ระดับแนวคิด (Conceptual Level)
ยั น
เร ศ
วร
(20
1
อย่างไรก็ตาม โครงสร้างข้อมูลระดับภายใน ในมุมมองของผู้ใช้ฐานข้อ มูล จะไม่สามารถเห็น
รายละเอียดทางกาบภาพในระดับนี้ได้เลย เพราะรายละเอียดข้อมูลในระดับนี้จะถูกซ่อนไว้ทั้งหมด
นอกจากผู้ บ ริห ารฐานข้อมูล ที่ ส ามารถเข้าไปเปลี่ ยนแปลงรูปแบบโครงสร้างข้อมูล เหล่ านี้ได้ โดย
จุดประสงค์หลักของการจัดโครงสร้างข้อมูลในระดับนี้ ก็เพื่อให้การปฏิ บัติการกับข้อมูลเป็นไปอย่างมี
ประสิทธิภาพ ดังนั้น ระดับภายในจึงเป็นส่วนที่นามาพิจารณาถึงความเร็วในการปฏิบัติกับข้อมูล
6)
เอกสารประอบการสอน รายวิชา 104333
มห
าวทิ
ยาล
ระดับแนวคิดจะมีโครงร่างแนวคิด (Conceptual Schema) ซึ่งถือเป็นโครงสร้างข้อมูลระดับ
ตรรกะ (Logical) ระดับ นี้จัดเป็ นโครงสร้างหลั กของระบบโดยรวม ที่มุ่งเน้นความสัมพันธ์ระหว่าง
ข้อมูลเป็นสาคัญ หรือที่รู้จักกันในนามว่า แบบจาลองข้อมูล (Data Model) ดังนั้นการกระทาหรือ
การปฏิบัติการใดๆ ในโปรแกรมของผู้ใช้ ขณะปฏิบัติบนโครงสร้างข้อมูลในระดับนี้เท่านั้น โครงสร้าง
ระดับ แนวคิด จะแจ้ งให้ เราทราบว่ามี ข้อ มูล อะไรบ้ าง (What) ที่ จัด เก็ บ อยู่ ในฐานข้ อมู ล ด้ ว ยการ
น าเสนอออกมาในรู ป แบบของความสั ม พั น ธ์ ระหว่า งข้ อ มู ล ในระบบ ซึ่ งผู้ ที่ ส ามารถเข้ าไปแก้ ไข
โครงสร้างข้อมูลระดับคอดนี้ได้คือผู้บริหารฐานข้อมูล และโปรแกรมเมอร์ ในระดับแนวคิดยังเกี่ยวข้อง
กับสิ่งต่อไปนี้
ชูส
ำโร
ง
จานวนเอ็นติตี้ที่มีอยู่ทั้งหมด โดยจะมีแอตตริบิวต์อธิบายรายละเอียดเกี่ยวกับคุณสมบัติของ
แต่ละเอ็นติตี้ และยังรวมถึงความสัมพันธ์ระหว่างเอ็นติตี้
กฎเกณฑ์หรือข้อบังคับในข้อมูล (Constraints)
รายละเอียดที่เกี่ยวข้องกับคาอธิบายข้อมูล
ความปลอดภัยและความคงสภาพของข้อมูล (Integrity)
ดร
.สิท
ธิช
ัย
20
โครงสร้างแนวคิดหรือระดับ ตรรกะ นอกจากจะแสดงความสัมพันธ์ระหว่างข้อมูลให้เรา
ทราบแล้วยังมีจุดประสงค์เพื่อให้เกิดความอิสระในโครงสร้าง (Structured Independent) กับระดับ
ภายในด้วย โดยแบบจาลองข้อมูลที่อยู่ในระดับนี้ จะมีจุดมุ่งหมายเพื่อแสดงความสัมพันธ์ระหว่าง
ข้อมูลเท่านั้น ดังนั้น ไม่ว่าจะให้แบบจาลองเครือข่ายที่มีพอยน์เตอร์เป็นตัวชี้ หรือใช้แบบจาลองเชิง
สัมพันธ์ที่มีคีย์เป็นตัวเชื่อมโยงระหว่างตาราง สิ่งทั้งหลายเหล่านี้ ล้วนไม่ได้เกี่ยวข้องกับประสิทธิภาพ
ในการเข้าถึงข้อมูลใดๆ ทั้งสิ้น เป็นเพียงแค่การแสดงความสัมพันธ์ระหว่างข้อมูลเท่านั้น
การนาเสนอข้อมูลในระดับแนวคิด ข้อมูลจะถูกแสดงอยู่ในรูปของตารางหรือรีเลชัน (กรณีที่
ใช้ฐานข้อมูลเชิงสัมพันธ์ ) ซึ่งมุมมองของผู้ใช้ที่กาลังปฏิบัติงานกับข้อมูลนั้นๆ จะถูกนาเสนอผ่านทาง
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
ระดับภายนอก (External Level)
ยั น
เร ศ
วร
(20
1
6)
ตาราง (Table) และในความเป็นจริง ตารางข้อมูลต่างๆ ที่เราเห็นและกาลังปฏิบัติอยู่ แท้จริงแล้วอาจ
เป็นข้อมูลที่ถูกสร้างขึ้นจากโครงสร้างข้อมูลชนิดอื่นๆ เช่น B-Tree หรือ Indexed Sequential ก็ได้
แต่การน าเสนอเป็ นรูปแบบของตารางในฐานข้อมูลเชิงสัมพันธ์ ก็เพื่อสื่อสารกับผู้ใช้ได้อย่างเข้าใจ
นอกจากนี้ กรณี มี ก ารเปลี่ ย นแปลงสื่ อ จั ด เก็ บ ข้ อ มู ล จากแบบหนึ่ งไปเป็ น อี ก แบบหนึ่ ง เช่น จาก
ฮาร์ดดิสก์ มาเป็ น SSD (Solid State Drive) หรืออาจเปลี่ยนแปลงรูปแบบโครงสร้างข้อมูล ระดับ
ภายในใหม่ ก็จะไม่ส่งผลกระทบต่อการใช้งานในระดับนี้ ผู้ใช้ยังคงสามารถปฏิบัติกับข้อมูลในลักษณะ
แบบตารางได้เหมือนเดิ
21
ชูส
ำโร
ง
มห
าวทิ
ยาล
ระดับ ภายนอกประกอบไปด้วยจานวนโครงร่างภายนอก (External Scheme) ต่างๆ ของ
ฐานข้อมูล ซึ่งเป็นมุมมองของผู้ใช้และจัดเป็นระดับบนสุดที่มีความใกล้ชิดกับผู้ใช้มากที่สุด ในความ
เป็นจริงแล้ว โครงสร้างข้อมูลระดับภายนอกก็คือบางส่ วนของโครงร่างแบบแนวคิดนั่นเอง กล่าวคือ
โครงร่างระดับแนวความคิดถือเป็นโครงสร้างหลักของระบบทั้งหมด แต่ผู้ใช้ไม่มีความจาเป็นไม่มีความ
จาเป็นต้องเห็นโครงสร้างทั้งหมดของระบบ เพียงแค่ต้องการข้อมูลบางส่วนที่จาเป็นต่อการใช้งาน
เท่านั้ น เช่น เอ็นติตี้นักศึกษา ประกอบด้ วยแอตตริบิวต์มากมาย แต่ผู้ ใช้ทั่วไปก็ไม่จาเป็นต้องเห็ น
โครงสร้างข้อมูลทั้งหมดของเอ็นติตี้นักศึกษา ผู้ใช้บางคนอาจต้องการเพียงรหัสนักศึกษา, ชื่อ -สกุล,
คณะและสาขาที่ สั ง กั ด เท่ า นั้ น ซึ่ ง แต่ ล ะคนก็ จ ะมี ค วามถู ก ต้ อ งของข้ อ มู ล ที่ แ ตกต่ า งกั น ทั้ ง นี้
ตารางข้อมูลนักศึกษาจะมีการเชื่อมโยงความสัมพันธ์กับตารางคณะและสาขา เพื่อจะได้ดึงชื่อคณะ
และสาขาออกมาได้ ซึ่งการเชื่อมโยงความสัมพันธ์ระหว่างตาราง ถือเป็นส่วนหนึ่งของระดับแนวคิด
ดังนั้น ระดับภายนอกจึงเป็นการนาข้อมูลบางส่วนจากระดับแนวคิดมาแสดงนั้นเอง
ดร
.สิท
ธิช
ัย
ด้วยมุมมองการใช้งานข้อมูลของผู้ใช้แต่ละรายที่สามารถแตกต่างกันได้ แม้ว่าผู้ใช้เหล่านั้นจะ
เรีย กใช้ข้อมูลจากชุดเดีย วกันก็ตาม เช่น แอตตริบิวต์ BirthDate คือวันเกิดของนักศึกษา มุมมอง
ข้อ มูล ของผู้ ใช้ค นแรก อาจน าวัน เกิดที่ จัด เก็บอยู่ในฐานข้อมูล นั้น มาใช้ได้ ทันที ซึ่งมีรูป แบบเป็ น
dd/mm/yyyy แต่ในขณะเดียวกัน มุมมองการใช้ข้อมูลของผู้ใช้คนที่สอง อาจนาเสนอข้อมูลวันที่เป็น
อี ก รู ป แบบหนึ่ ง คื อ yy/mm/dd ก็ ได้ นอกจากนี้ ผู้ ใช้ บ างคนอาจน าวั น ที่ ปั จ จุ บั น กั บ วั น เกิ ด ไป
คานวณหาอายุและจัดเก็บลงอีกแอตตริบิวต์หนึ่ง (Derived Attribute) และการกระทากับข้อมูลของ
ผู้ใช้ภายนอกนี้ จะไม่ส่งผลกระทบต่อโครงร่างในระดับก่อนหน้านี้ใดๆ ทั้งสิ้น
จากสถาปัตยกรรม 3 ระดับที่อธิบายไว้ข้างต้น จะพบว่าการแบ่งสถาปัตยกรรมฐานข้อมูล
ออกเป็นหลายระดับเพื่อต้องการให้มุมมองของผู้ใช้ฐานข้อมูล แยกออกจากฐานข้อมูลระดับภายใน
โดยมีวัตถุประสงค์เพื่อ
1. เพื่อให้ผู้ ใช้แต่ละคนสามารถเข้าถึงข้อมูลชุดเดียวกัน แต่อาจจะมีความแตกต่างในข้อมูลที่
น าเสนอต่อผู้ ใช้แต่ล ะคนได้ กล่าวคือ ผู้ ใช้แต่ล ะคนสามารถเข้าไปกาหนดมุมมองของตน
ดร.สิทธิชัย ชูสาโรง
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
(Users View) ได้ ต ามความต้ อ งการจากไฟล์ ข้ อ มู ล ชุ ด เดี ย วกั น นี้ ในขณะเดี ย วกั น การ
เปลี่ยนแปลงมุมมองของข้อมูลของผู้ใช้แต่ละคน จะไม่ส่งผลต่อข้อมูลหลักใดๆ รวมไปถึงไม่
ส่งผลกระทบต่อผู้ใช้คนอื่นๆ ด้วย
2. ผู้ใช้ไม่จ าเป็ น ต้องปฏิบั ติงานโดยตรงกับ ฐานข้อมูล ระดับภายใน ซึ่งอยู่ขั้น ระดับ กายภาพ
กล่าวคือ ผู้ใช้ไม่จาเป็นต้องสนใจรายละเอียดเกี่ยวกับโครงสร้างการจัดเก็บข้อมูลจริงๆ ใน
ฐานข้อมูล ว่าจะเป็นแบบเรียงลาดับ แบบเรียงลาดับดัชนี หรือแบบแฮชก็ตาม ปล่อยให้เป็น
หน้าที่ของ DBMS เป็นตัวจัดการแทน ผู้ใช้เพียงระบุว่าต้องการข้อมูลอะไรเท่านั้น
3. ผู้ บ ริ ห ารฐานข้ อ มู ล (DBA) เป็ น ผู้ ส ามารถเข้ า ไปเปลี่ ย นโครงสร้ า งการจั ด เก็ บ ข้ อ มู ล ใน
ฐานข้อมูลได้ โดยการดาเนินการดังกล่าว จาไม่ส่งผลกระทบใดๆ ต่อมุมมองของผู้ใช้แต่อย่าง
ใด กล่าวคือ แม้ว่าจะมีการเปลี่ยนโครงสร้างการจัดเก็บข้อมูลจากแบบเดิมที่เป็นเรียงลาดับ
ดัช นี มาใช้ แบบบี ท รี (B-Tree) ผู้ ใช้ ยังสามารถเรียกดึ งข้ อมู ล ออกมาใช้ ผ่ านตารางข้ อ มู ล
เหมือนเช่นเดิม
4. กรณีมีการเปลี่ยนแปลงอุปกรณ์หรือสื่อจัดเก็บข้อมูล จะไม่ส่งผลกระทบต่อโครงสร้างภายใน
พื้นฐาน
5. ผู้ บ ริ ห ารฐานข้อ มู ล หรื อ โปรแกรมเมอร์ สามารถเข้ าไปเปลี่ ย นโครงสร้างข้อ มู ล ในระดั บ
แนวความคิด ซึ่งการเปลี่ยนแปลงดังกล่าว จะไม่ส่งผลต่อผู้ใช้ใดๆ ทั้งสิ้น เช่น หากมีการเพิ่ม
แอตตริบิวต์ หรือเปลี่ยนขนาดความกว้างของข้อมูล ก็จะไม่ส่งผลกระทบต่อโปรแกรมเดิมที่
เคยใช้งาน นั่นเป็นคุณสมบัติของความเป็นอิสระในข้อมูลที่โปรแกรมและข้อมูลไม่ได้ผูกติด
เหมือนระบบแฟ้มข้อมูลนั่นเอง
6)
เอกสารประอบการสอน รายวิชา 104333
สคีมา การแปลงรูป และอินสแตนซ์(Schema, Mapping and Instances)
คาอธิบ ายเกี่ย วกับ ภาพรวมของฐานข้อมูล เราเรียกว่า โครงร่า งฐานข้ อมูล (Database
Schema) โดยโครงร่างหรือสคีมานั้นเปรียบเสมือนแบบพิมพ์เขียวทางเทคนิคของฐานข้อมูล และ
โครงร่างฐานข้อมูลก็ยังแบ่งออกเป็น 3 ชนิดแตกต่างกันดังรูปที่ 1.11 ที่ผ่านมา โดยระดับบนสุดจะ
เป็น โครงร่างภายนอก (External Schemas) ที่สามารถนาเสนอข้อมูลได้หลายมุมมองตามความ
ต้องการของผู้ใช้แต่ละคน โครงร่างภายนอกยังอาจเรียกอีกชื่อหนึ่งว่า “ซับสคีมา (Subschema)”
ส่ ว นระดั บ ถั ด ลงมาก็ คื อ โครงร่ า งแนวคิ ด (Conceptual Schema) ซึ่ งจะเกี่ ย วข้ อ งกั บ เอ็ น ติ ตี้
แอตตริบิวต์และความสัมพันธ์ และระดับถัดลงมาล่างสุดก็คือ โครงร่างภายใน (Internal Schema)
ซึ่งเกี่ยวข้องกับข้อมูลจริงๆ ที่ถูกจัดเก็บลงในสื่ อจัดเก็บข้อมูล และจากโครงร่างฐานข้อมูล ตามรูป
ดังกล่าว จะพบว่า ระบบฐานข้อมูลหนึ่งๆ จะมีเพียงหนึ่งโครงร่างแนวคิดและหนึ่งโครงร่างภายใน
ในขณะที่โครงร่างภายนอกสามารถมีหลายๆ โครงร่างได้
DBMS จะรับรับผิดขอบหน้าที่ของการแปลงรูป (Mapping) ระหว่างโครงร่างหรือสคีมาทั้ง
สาม นอกจากนี้ยังต้องตรวจสอบโครงร่างต่างๆ เพื่อให้มีความถูกต้องตรงกัน กล่าวคือ DBMS จะต้อง
ดร
.สิท
ธิช
ัย
22
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
ตรวจสอบโครงร่างภายนอกแต่ละตัวที่ได้มาจากโครงร่างแนวคิด ซึ่งจะนาข้ อมูลโครงร่างแนวคิดไป
แปลงรูประหว่างโครงร่างภายนอกและโครงร่างภายใน ทั้งนี้โครงร่างแนวคิดจะเกี่ยวข้องกับโครงร่าง
ภายในผ่าน Conceptual/internal Mapping เพื่อให้ DBMS สามารถค้นหาข้อมูลตริงๆ หรือเป็น
ข้อมูลที่เกิดจากการรวมกันของเรคอร์ดในสื่อจัดเก็บข้อมูลทางกายภาพเพื่อประกอบเป็นลอจิคัลใน
โครงร่างแนวคิด รวมถึงข้อบังคับใดๆ ที่ใช้ดาเนินการกับลอจิคัลเรคอร์ดเหล่านั้น และท้ายสุด แต่ละ
โครงร่ า งภายนอกก็ จ ะเกี่ ย วข้ อ งกั บ โครงร่ า งแนวคิ ด ผ่ า น External/conceptual Mapping ที่
อนุ ญ าตให้ DBMS แปลงรู ป ข้อ มู ล บางส่ ว นจากโครงร่างแนวคิด กลายเป็ น โครงร่างภายนอกเพื่ อ
นาเสนอข้อมูลมุมมองของผู้ใช้แต่ละคนต่อไป
23
ชูส
ำโร
ง
ภาพที่ 1.11 ภาพแสดงความแตกต่างของระดับทั้งสาม (โอภาส เอี่ยมสิริวงศ์, 2558)
ดร
.สิท
ธิช
ัย
พิจารณารูปที่ 1.11 ได้แสดงถึงความแตกต่างของแต่ละระดับ มีการนาเสนอมุมมองภายนอก
ของผู้ใช้สองคนที่แตกต่างกัน ซึ่งประกอบด้วยมุมมองภายนอกของผู้ใช้ที่หนึ่งและคนที่สอง ที่ได้วิว
ข้อมูลบนชุดเดียวกันภายใต้โครงร่างระดับแนวคิด ซึ่งก็คือโครงร่างข้อมูลพนักงาน (EMPLOYEE) โดย
มุมมองภายนอกของผู้ใช้คนแรกจะประกอบด้วยฟิลด์empCode, fName, lName, age และ salary
ส่วนผู้ใช้คนที่สองจะประกอบด้วยฟิลล์ empNO, fName, branchNo ซึ่งการแปลงรูประหว่างระดับ
ภายนอกกับระดับแนวคิดนี้ จะพบว่ามุมมองของผู้ใช้คนแรกที่เห็นได้อย่างชัดเจนก็คือฟิลล์ age ซึ่งได้
จากการน าฟิ ล ล์ birthDate มาประยุ ก ต์ ใช้ และมี ก ารถ่ า ยถอดฟิ ล ล์ empCode ซึ่ ง เป็ น มุ ม มอง
ภายนอกกับ empNo ซึ่งเป็นฟิลล์จริงๆ ที่ใช้อ้างอิงในระดับแนวคิดทั้งนี้ระดับแนวคิดจะแปลงรูปไป
ยังระดับภายในซึ่งเป็นรายละเอียดทางกายภาพของโครงสร้างที่จัดเก็บข้อมูลจริงๆ เพื่อดึงข้อมูลจาก
ระดับภายในนี้ส่งผ่านมายังเรคอร์ดบนระดับแนวคิด และในระดับนี้เอง เราจะเห็นนิยามโครงสร้าง
ภาษาระดับสูง (จากรูปเป็นภาษา C) ที่ใช้ตัวแปรชนิดโครงสร้างในการจัดเก็บเรคอร์ดข้อมูลพร้อมทั้ง
เชื่อมโยงข้อมูลแต่ล ะเรคอร์ดผ่ านตัวแปรพอยน์เตอร์ โดยมีการจัดเรียงดัช นีข้อมูล ตามล าดับรหั ส
พนั กงานและรหัส สาขา ซึ่งจะพบว่าลาดับชื่อฟิลด์ในระดับภายในจะมีการล าดับที่ แตกต่างกันเมื่อ
ดร.สิทธิชัย ชูสาโรง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
เทียบกับระดับ แนวคิด เช่นเดียวกัน DBMS ก็จะทาการแปลงรูปร่างระดับระดับแนวคิดและระดับ
ภายใน
เป็ น สิ่ ง ส าคั ญ สิ่ ง เดี ย ว กั บ การแยกความแตกต่ า งระหว่ า งค าอธิ บ ายฐานข้ อ มู ล และตั ว
ฐานข้อมูล โดยคาอธิบายฐานข้อมูลก็คือโครงร่างฐานข้อมูล ซึ่งโครงร่างหรือสคีมาจะถู กกาหนดขึ้นใน
ระหว่างกระบวนการออกแบบฐานข้อมูล ซึ่งปกติจะไม่ค่อยมีการเปลี่ยนแปลงบ่อยนัก แต่ในทาง
ตรงกันข้าม ข้อมูลจริงๆ ในฐานข้อมูลกลับมีการเปลี่ยนแปลงทุกครั้งเมื่อมีการเพิ่มสมาชิกของพนักงาน
คนใหม่, การลบหรือการอัปเดตข้อมูลบ้านเช่าต่างๆ ซึ่งเหตุการณ์เหล่านี้สามารถเกิดขึ้นได้ตลอดเวลา
ดังนั้น Instance จึงเปรียบเสมือนโปรแกรม หรือตัวแปรที่กาลังทางานอยู่ภายในความจาของระบบ
คอมพิวเตอร์ ณ ขณะใดขณะหนึ่ง ที่สามารถเปลี่ยนแปลงได้ตลอดจากการเพิ่ม ลบ หรืออัปเดตใน
ฐานข้อมูล และจากตัวอย่างที่ผ่านมา เมื่อมีการเพิ่มสมาชิกของพนักงานคนใหม่เข้าไป รายการข้อมูล
ในฐานข้ อมู ล ที่ ท างานอยู่ ในหน่ ว ยความจ าในช่ ว งเวลาขณะนั้ น จะเรีย กว่า Database Instance
ดังนั้น หลายๆ Database Instance ก็ยังสามารถโต้ตอบอยู่บนโครงร่างฐานข้อมูลชุดเดียวกัน โดย
โครงร่างหรือสคีมานั้น ในบางครั้งอาจเรียกว่าเป็น Intention ของฐานข้อมูล ในขณะที่ Instance
อาจเรียกว่าเป็น Extension หรือ State ของฐานข้อมูล
6)
เอกสารประอบการสอน รายวิชา 104333
1.11 ข อบ เข ต ข องก ารป ระยุ ก ต์ ใช้ ฐาน ข้ อ มู ล (The Range of Database
Applications)
ชูส
ำโร
ง
ขอบเขตการประยุกต์ใช้งานฐานข้อมูล ถูกออกแบบให้ครอบคลุมการใช้งานตั้งแต่ระดับผู้ใช้
คนเดียวด้วย คอมพิวเตอร์ระดับเมนเฟรมที่มีการเชื่อมต่อไปยังยูสเซอร์ต่างๆนับพันคน ดังนั้น จึงมี
การจัดแบ่งการประยุกต์ใช้ฐานข้อมูลออกเป็น 5 ประเภท
1. ฐานข้อมูลส่วนบุคคล
2. ฐานข้อมูลระดับเวิร์กกรุ๊ป
3. ฐานข้อมูลระดับแผนก
4. ฐานข้อมูลระดับเอ็นเตอร์ไพร์ส
5. ฐานข้อมูลอินเทอร์เน็ต
ดร
.สิท
ธิช
ัย
24
ฐานข้อมูลส่วนบุคคล (Personal Databases)
ฐานข้อมูลส่วนบุคคล ถูกออกแบบเพื่อสนับสนุนผู้ใช้เพียงหนึ่งคน สามารถพบได้จากการใช้
งานบนคอมพิวเตอร์แบบพีซี โน้ตบุ๊กคอมพิวเตอร์ และอุปกรณ์พกพา (เช่น เครื่องพีทีดี,แท็บเล็ตและ
สมาร์ โฟน)ซึ่งอุป กรณ์ พ กพาสมัย ใหม่ก็ ไม่ต่ างจากคอมพิ ว เตอร์ขนาดเล็ ก ที่พ กติด ตัวได้ กล่ าวคื อ
อุปกรณ์พกพาเหล่านี้จะมีหน่วยประมวลผลที่มีขีดความสามารถสูงพอตัว อีกทั้งยังสามารถเชื่อมตัว
อิน เทอร์ เน็ ต ได้ ดั งนั้ น ฐานข้ อ มู ล ส่ ว นบุ ค คลจึ งถู ก ใช้ งานอย่ างแพร่ห ลายตามรูป แบบของสั งคม
สมัยใหม่ (โดยเฉพาะเครือข่ายสังคมหรือโซเซียลเน็ตเวิร์ก ) และอุปกรณ์เหล่านี้ยังมีห น่วยความจา
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
ฐานข้อมูลระดับเวิร์กกรุ๊ป (Workgroup Database)
ยั น
เร ศ
วร
(20
1
6)
เพียงพอต่อการนาไปใช้เพื่อจัดเก็บข้อมูลและสื่อสารผ่านเว็บต่างๆ ด้วยระบบไร้สายได้ในทุกแห่งหน
ตัวอย่างเช่น พนักงานขายได้จัดเก็บข้อมูลลูกค้าและบันทึกตารางนัดหมายลงในสมาร์ทโฟนหรือเครื่อง
พีดีเอ (Personal Digital Assistants), การเข้าถึงเว็บไซต์องค์กรของพนักงานขายที่อยู่นอกสถานที่
ผ่านอุปกรณ์แท็บเล็ตเพื่อติดต่องานหรือขอเอกสารเพิ่มเติมผ่านระบบออนไลน์ ซึ่งไม่มีส่วนช่วยเพิ่ม
ยอดขายและเพิ่มผลิตภาพ (Productivity) หรือในกรณี ของแม่บ้านใช้คอมพิวเตอร์แบบพีซีในการ
จัดเก็บฐานข้อมูลส่วนบุคคลเพื่อบันทึกบัญชีรายรับและรายจ่ายประจาวันของครอบครัวเป็นต้น
25
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
คาว่าเวิร์กกรุ๊ป หมายถึงเครือข่ายคอมพิวเตอร์ขนาดเล็ก ที่มีผู้ใช้เชื่อมโยงกันสูงสุดไม่ควร
เกิน โครงการเดียวกันผ่านระบบเครื่อง มีจุดประสงค์เพื่อให้ทีมงานสามารถทางานร่วมกันภายใต้ 25
เครือข่าย มีการแชร์ทรัพยากรข้อมูลและอุปกรณ์ร่วมกันบนเครือข่าย สาหรับวิธีการแชร์ข้อมูล ใน
ฐานข้อมูลระดับเวิร์กกรุ๊ปแสดงไว้ดังรูปที่1.12 โดยสมาชิกแต่ละกรุ๊ปจะมีคอมพิวเตอร์แบบตั้งโต๊ะไว้ใช้
งานประจาตัว และคอมพิวเตอร์เหล่านี้จะมีการเชื่อมโยงกันเป็นเครือข่ายท้องถิ่น (LAN) มีฐานข้อมูล
ศู น ย์ ก ลางที่ เรี ย กว่าดาต้ าเบสเซิ ร์ ฟ เวอร์ (Database Server) ทั้ งนี้ ส มาชิ ก แต่ ล ะคนบนเวิร์ก กรุ๊ ป
สามารถเข้าถึงข้อมูลร่วมกันได้ แต่ละคนอาจมีระดับสิทธิ์ในการเข้าถึงข้อมูลส่วนกลางได้แตกต่างกัน
เช่น บั ญ ชีสมาชิกของผู้ จัดการโครงการสามารถเข้าไปแก้ไขข้อมูล ในฐานข้อมูลได้ ในขณะที่บัญ ชี
สมาชิกของเจ้าหน้าที่ทั่วไปอาจสามารถวิวดูข้อมูลได้เท่านั้น
ภาพที่ 1.12 ฐานข้อมูลเวิร์กกรุ๊ปบนเครือข่ายแลน
อย่างไรก็ตาม การสร้างฐานข้อมูลระดับเวิร์กกรุ๊ป องค์กรจะต้องตอบคาถามเหล่านี้ให้ได้ก่อน
จะออกแบบฐานข้อมูลอย่างไร เพื่อตอบสนองความต้องการอันหลากหลายของทีมงานใน
เวิร์กกรุ๊ปได้อย่างเหมาะสม
จะวิธีป้องกันข้อมูลเพื่อมิให้สูญเสียความคงสภาพได้อย่างไร กรณีที่สมาชิกในทีมงานมีการ
เข้าถึงเพื่อใช้ข้อมูลชุดเดียวกัน
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
การประมวลผลฐานข้อมูล จะดาเนินงานบนเครื่องลูกข่ายและจะประมวลผลบนเครื่องเซิร์ฟ
ด้วยหรือไม่
(20
1
6)
ฐานข้อมูลระดับแผนก (Department Database)
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
แผนกคื อ ส่ ว นงานหนึ่ ง ที่ รั บ มอบหมายให้ รั บ ผิ ด ชอบฟั งก์ ชั น การท างานในส่ ว นของตน
ตัว อย่ างองค์กรโดยทั่ วไป มักแบ่ งส่ วนงานออกเป็น แผนกบุ คลากร แผนกขาย แผนกการผลิ ต
แผนกไอที และแผนกบัญชี ฯลฯ ซึ่งตามปกติ แผนกจะมีขนาดใหญ่กว่าเวิร์กกรุ๊ป รองรับจานวนคน
ได้ตั้งแต่ คน 100-25
ฐานข้อมูลระดับแผนก ถูกออกแบบมาเพื่อสนับสนุนกิจกรรมและการทางานต่างๆ ของแผนก
โดยฐานข้อมูลระดับแผนกสามารถพบเห็นได้มากที่สุดในแวดวงธุรกิจ เมื่อเปรียบเทียบกับฐานข้อมูล
ประเภทอื่ น ๆ ตั ว อย่ างเช่ น ฐานข้ อ มู ล บุ ค ลากร ที่ ได้ รั บ ออกแบบมาเพื่ อ ติ ด ตามข้ อ มู ล เกี่ ย วกั บ
พนักงาน, ลักษณะงาน, ทักษะความรู้ และ การมอบหมายงาน เมื่อมีการนาข้อมูลเหล่านี้จัดเก็บลงใน
ฐานข้อมูล ผู้จัดการฝ่ายบุคคลก็จะสามารถสอบถามข้อมูลต่างๆ จากฐานข้อมูลนี้ อันได้แก่
การจัดหมวดหมู่ของงาน ช่วยให้ทราบถึงตาแหน่งงานที่องค์กรต้องการจริงๆ ทาให้
ล่วงรู้ว่า ตาแหน่งงานใด ที่ยังขาดแคลนอยู่
สาหรับงานที่อยู่ในหมวดหมู่เดียวกัน จะต้องมีทักษะความรู้อะไรบ้าง
ความรู้ ทักษะอะไร ที่พ นั กงานพึ งมี เช่น พนักงานฝ่ ายไอที จะต้องมีความรู้การ
โปรแกรมภาษา C และภาษา SQL
ได้ ม อบหมายงานพิ เศษเป็ น การเฉพาะให้ กั บ พนั ก งานคนใด ซึ่ ง เราสามารถ
ตรวจสอบประวิติ การท างานของพนั กงานผู้ นั้ น ได้ เพื่ อพิ จ ารณาผลตอบแทนที่
เหมาะสม
พนักงานผู้นั้น อยู่ภายใต้ความดูแลของผู้จัดการแผนกใด
และต่ อ ไปนี้ คือ ตั ว อย่ างค าถามทั่ ว ไปที่ เราต้ อ งรู้คาตอบ เมื่ อ มี ก ารออกแบบและน า
ฐานข้อมูลมาใช้กับแผนก
จะออกแบบฐานข้อมูลภายใต้สภาพแวดล้อมใด ให้มีประสิทธิภาพเพียงพอต่อการ
รองรับจานวนผู้ใช้และธุรกรรมจานวนมากๆได้
มีวิธีการใดที่ส ามารถป้ องกันและรักษาความปลอดภัย กับกรณี ผู้ ที่ไม่ได้รั บ สิท ธิ์
พยายามเข้าถึงข้อมูลสาคัญๆเพื่อลับลอบนาไปเผยแพร่
ภายใต้สภาพแวดลอมอันซับซ้อนเหล่านี้ ควรใช้ฐานข้อมูลอะไร และใช้เครื่องมือใด
ในการพัฒนาโปรแกรม
มีวิธีป้ องกัน ความซ้าซ้อนของข้อมูลในแต่ละแผนกได้อย่างไร และมีวิธีใดที่ทาให้
ข้อมูลของแต่ละแผนกมีความถูกต้องตรงกัน
การเข้ าถึ งฐานข้ อ มู ล ของผู้ ใช้ รายต่ างๆ โดยเฉพาะผู้ ใช้ ที่ ก ระจายอยู่ ต ามแต่ ล ะ
ประเทศ ซึ่งจะต้องมีระบบรองรับการเติบโตของฐานข้อมูลพร้อมกับระบบความ
ดร
.สิท
ธิช
ัย
26
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
27
ฐานข้อมูลระดับเอ็นเตอร์ไพรส์ (Enterprise Database)
(20
1
6)
ปลอดภัย โดยสมควรที่จะนาระบบจัดการฐานข้อมูลแบบกระจาย (DDBMS) มาใช้
งานหรือไม่
ฐานข้ อ มู ล ที่ ใช้ งานบนเว็ บ สมควรน ามารวมเข้ ากั น ด้ ว ยกั บ สภาพแวดล้ อ มของ
เครือข่ายอินทราเน็ตหรือไม่
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
ฐานข้อมูลระดับเอ็นเตอร์ไพรส์ เป็นฐานข้อมูลที่สนับสนุนทั้งส่วนงานเชิงปฏิบัติการและงาน
ด้านการตัดสินใจบนองค์กรขนาดใหญ่ ระบบสารสนเทศที่พัฒนาขึ้นเพื่ อรองรับฐานข้อมูลระดับเอ็น
เตอร์ไพรส์จะเรียกว่า ระบบวางแผนทรัพยากรทางธุรกิจแบบทั่วองค์กร (Enterprise Resource
Planning : ERP Systems) ซึ่งเป็นการบูรณาการชุดซอฟแวร์ที่นามาใช้เพื่อสนับสนุนกระบวนการ
ทางธุรกิจขององค์กร ด้วยการรวมงานหลักต่างๆ ที่เกี่ยวข้องกับการปฏิบัติทางธุรกิจในทุกส่วนของ
องค์กรเข้าด้ว ยกัน เป็ น หนึ่ งเดียว เช่น ระบบการผลิ ต ระบบการขาย ระบบขนส่ ง ระบบบัญ ชี
ระบบเงิน ระบบการตลาด และระบบจัด การทรัพ ยากรมนุ ษ ย์ ส่ งผลให้ ระบบงานเหล่ านี้ มี ก าร
เชื่อมโยงถึงกันทั่วทั้งองค์กร ก่อให้เกิดการประมวลผลแบบเรียลไทม์ ทาให้องค์กรสามารถติดตาม
ทรัพยากรทางธุรกิจ (เช่น เงินสด วัตถุดิบ และความสามารถในการผลิต) และสามารถปิดยอดบัญชี
ประจ าวั น ได้ ทั น ที ท าให้ ผู้ บ ริ ห ารทราบถึ งต้ น ทุ น การด าเนิ น งานของส่ ว นงานต่ า งๆ เพื่ อ น าไป
ประกอบการตัดสินใจทางธุรกิจได้อย่างทันท่วงที
และต่อไปนี้คือคาถามต่างๆ ที่มักถูกตั้งขึ้นในบริบทของฐานข้อมูลระดับเอ็นเตอร์ไพรส์
จะต้องดาเนินการอย่างไรกับข้อมูลที่กระจายอยู่ตามสาขาต่างๆ ขององค์กร
มีวิธีการใดที่องค์กรสามารถพัฒนาและสร้างมาตรฐานเกี่ยวกับงานบารุงรักษาที่เกี่ยวกับการ
ตั้งชื่อข้อมูล การนิยามความหมาย การกาหนดรูปแบบข้อมูล และปัญหาอื่นๆ ที่เกี่ยวข้อง
มีกิ จ กรรมอะไรบ้ างที่ ต้อ งด าเนิ น การเกี่ ยวกั บ ขั้ น ตอนการรวมหลายๆ ระบบเข้ าด้ว ยกั น
รวมถึงการนาข้อมูลจากระบบเดิมที่ใช้งานอยู่ก่อนแล้ว มาวิเคราะห์ร่วมกัน โดยเฉพาะการ
พัฒนาคลังข้อมูล เพื่อนาข้อมูลมาวิเคราะห์ทางธุรกิจ เช่น การค้นหาโอกาสใหม่ๆ ในการ
ขยายธุรกิจ เป็นต้น
ภาพที่ 1.13 ตัวอย่างฐานข้อมูลระดับเอ็นเตอร์ไพรส์และคลังข้อมูลของศูนย์เวชกรรมขนาดใหญ่ ซึ่ง
ประกอบด้วยฐานข้อมูลโรงพยาบาล คลินิก และศูนย์พยาบาลสาขาต่างๆ ที่มีการเชื่อมโยงระหว่างกัน
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
ผลกระทบต่ อ สภาพแวดล้ อ มของฐานข้ อ มู ล ที่ เกิ ด ขึ้ น เมื่ อ ไม่ น านมานี้ ก็ คื อ เทคโนโลยี
อินเทอร์เน็ต(Internet) ซึ่งเป็นเครือข่ายที่มีการเชื่อมโยงใยถึงกันทั่วโลก ดังนั้น ฐานข้อมูลบนเว็บ
(Web-Enabled Database) จึ งเป็ นเทคโนโลยีฐานข้อมู ลที่สาคัญ สาหรับในยุคนี้ และเป็นที่มา
ของรู ป แบบการท าธุ ร กิ จ แบบอี ค อมเมิ ร์ ช ไม่ ว่ าจะเป็ น อี ค อมเมิ ร์ ช แบบภาคธุ ร กิ จ กั บ ผู้ บ ริ โภค
(Business to Consumer : B2C) หรื อ อี ค อมเมิ ร์ ช ระหว่ า งภาคธุ ร กิ จ ด้ ว ยกั น (Business to
Business : B2B) ซึ่งแต่ละองค์กรได้ลงทุนกับเทคโนโลยี เพื่ออานวยความสะดวกในการติดต่อสื่อสาร
และยั งช่ว ยประหยั ดต้น ทุน การดาเนิ น งานลงได้ม าก ดังจะเห็ น ได้จากปั จจุบัน มีห ลายบริษั ทน า
เทคโนโลยีอินเทอร์เน็ตมาเชื่อมโยงกับฐานข้อมูลในองค์กร จนก่อเป็น อินทราเน็ต (Intranet) และ
ยังเชื่อมโยงเชื่อมโยงฐานข้อมูลเข้าคู่ค้าทางธุรกิ จจนเป็นที่มาของ เอ็กซ์ทราเน็ต (Extranet) อย่างไรก็
ตาม แม้ว่าอินทราเน็ตและเอ็กซ์ทราเน็ตจะใช้มาตรฐานเดียวกันกับอินเทอร์เน็ตก็ตาม รวมถึงยังใช้
ช่อ งทางการสื่ อ สารภายใต้ โครงข่ายอิ น เทอร์เน็ ต แต่ ด้ ว ยระบบสื่ อสารที่ น่ าเชื่ อถื อ ที่ มี ก ารสร้าง
เครือข่ายเสมือนตัว (Virtual Private Networks : VPN ) ขึ้นมาด้วยการเข้ารหัสลงในไอพีแพ็กเก็ต
ก่อนที่จะนาส่งผ่านเครือข่ายอินทราเน็ตของแต่ละองค์กร รวมถึงความสามารถของอุปกรณ์ไฟร์วอลล์
(Firewall) ที่ติตตั้งอยู่ บ นเครือข่ายอิน ทราเน็ตของแต่ล ะองค์กร จะเป็นระบบความปลอดภั ยอีก
ชั้น หนึ่ ง คอยท าหน้ าที่ ส กั ดกั้น หมายเลขไอพี ที่ ไม่เกี่ยวข้องเพื่ อป้ อ งกัน ผู้ ไม่ ห วังดีพ ยายามเข้ าถึ ง
ฐานข้อมูลภายในองค์กรโดยมิชอบ
และต่อไปนี้คือคาถามต่างๆ ที่มักถูกตั้งขึ้นในบริบทของฐานข้อมูลบนเว็บ อันได้แก่
จะใช้เทคโนโลยีใด (มิดเดิลแวร์, โพรโทคอล และอื่นๆ) ในการเชื่อมโยงใช้งานเว็บแอปพลิเค
ชันไปยังฐานข้อมูลของลูกค้า
จะต้องนามาตรการพิเศษใด เพื่อนามาใช้ป้องกันความปลอดภัยและความเป็นส่วนตัวของ
ข้อมูลที่อยู่ภายในสภาพแวดล้อมดังกล่าว
องค์ก รจะมี วิธีการใด เพื่อ จั ดการกั บรายการข้อมู ล จานวนมากที่ ถูกสร้างขึ้น จากการท า
ธุรกรรมทางอินเทอร์เน็ต
มีวิธีการใด ที่องค์กรสามารถบารุงรักษาคุณภาพข้อมูล กับกรณีที่ข้อมูลจานวนมากส่วนใหญ่
ถูกสร้างขึ้นจากภายนอกองค์กรซึ่งมักไม่มีโครงสร้างที่แน่นอนชัดเจน
และจากตารางดังรูปที่ ต่อไปนี้ เป็นบทสรุปของการประยุกต์ใช้ฐานข้อมูล 1.25
6)
ฐานข้อมูลอินเทอร์เน็ต (Internet Database)
ดร
.สิท
ธิช
ัย
28
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
29
1.12 ข้อดีของวิธีฐานข้อมูล (Advantages of Database Approach )
ยั น
เร ศ
วร
(20
1
6)
การจัดการข้อมูลด้วยวิธีฐานข้อมูลนั้น มีข้อดีอยู่หลายประการ ดังนี้
1. ความอิสระของโปรแกรมและข้อมูล
6. ความเป็นมาตรฐานเดียวกัน
2. ลดความซ้าซ้อนในข้อมูล
7. ข้อมูลมีคุณภาพยิ่งขึ้น
3. ข้อมูลมีความสอดคล้องตรงกัน
8. การเข้าถึงและการตอบสนองข้อมูลดีขึ้น
4. การใช้ข้อมูลร่วมกัน
9. ช่วยลดงานบารุงรักษาโปรแกรม
5. เพิ่มผลิตภาพในการพัฒนาโปรแกรม
10. สนับสนุนการตัดสินใจที่ดีขึ้น
ความอิสระของโปรแกรมและข้อมูล (Program – Data Independence )
มห
าวทิ
ยาล
การแยกข้อมูลออกจากโปรแกรมประยุกต์ ก็คือความอิสระในข้อมูล (Data Independence)
ทาให้ข้อมูลที่ถูกจัดเก็บมิได้ผูกติดกับโปรแกรมอีกต่อไป และด้วยวิธีฐานข้อมูลนี้เอง ข้อมูลต่างๆ จะ
ถูกจัดเก็บไว้ในศูนย์กลางข้อมูลในระบบหรือที่เรียกว่า Repository โดยคุณสมบัติของระบบฐานข้อมูล
จะอนุญาตให้มีการเปลี่ยนแปลง หรือปรับปรุงโครงสร้างข้อมูลได้โดยไม่ส่งผลกระทบต่อโปรแกรมที่
น ามาประมวลผล ตัว อย่ างเช่ น กรณี มีก ารปรับ เปลี่ ย นโครงสร้างข้ อมู ล ตัว อย่างเช่ น กรณี มีก าร
ปรับเปลี่ยนโครงสร้างข้อมูล ไม่ว่าจะเป็นการเพิ่มหรือลบบางฟิลด์ออกไป การเปลี่ยนขนาดความ
กว้างของฟิลด์ซึ่งจะไม่ส่งผลกระทบใดๆ ต่อโปรแกรม โดยตัวโปรแกรมยังสามารถประมวลผลข้อมูล
ได้ตามปกติ ซึ่งแตกต่างจากระบบแฟ้มข้อมูล ที่จะต้องปรับปรุงโครงสร้างข้อมูลในโปรแกรมต่างๆ ที่
เกี่ยวข้องแทบทั้งหมด
ชูส
ำโร
ง
ลดความซ้าซ้อนในข้อมูล (Minimal Data Redundancy)
ดร
.สิท
ธิช
ัย
เป้าหมายของการออกแบบฐานข้อมูลก็คือ ต้องการขจัดความซ้าซ้อ นในข้อมูลที่มีการเก็บ
แยกจากกัน ให้นามาอยู่รวมกันภายใต้ศูนย์กลางข้อมูลแห่งเดียว จะทาให้ควบคุมข้อมูลได้ง่าย ดังนั้น
การปรับปรุงหรือแก้ไขข้อมูลก็จะแก้ไขที่ศูนย์กลางข้อมูลแห่งนี้เท่านั้น นั้นหมายความว่า ข้อมูลจะมี
ความทันสมัยอยู่เสมอ
ความสอดคล้องตรงกันของข้อมูลดียิ่งขึ้น (Improved Data Consistency)
หากเราสามารถควบคุมความซ้าซ้อนในข้อมูลได้ ก็ย่อมแก้ปัญหาความไม่ถูกต้องตรงกันของ
ข้อมูลได้ ตัวอย่างเช่น เมื่อที่อยู่ของลูกค้าถูกจัดเก็บลงในฐานข้อมูลแห่งนี้ นั้นหมายความว่า หากมี
การเปลี่ยนแปลงข้อมูลใดๆ ที่เกี่ยวกับข้อมู ลลูกค้า ก็จะแก้ไขที่จุดเดียว ดังนั้น ข้อมูลดังกล่าวจึง
ถูกต้องและนาไปใช้งานได้ทันที ผิดกับวิธีแฟ้มข้อมูลที่มีการจัดเก็บข้อมูลที่ซ้าซ้อน ทาให้มั่นใจได้ว่า
ข้อมูลชุดใดเป็นข้อมูลที่ถูกต้องหรืออัปเดตที่สุด
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
(20
1
ฐานข้อมูลถูกออกแบบมาเพื่อแบ่งปันการใช้ทรัพยากรร่วมกัน กล่าวคือ แม้ว่าข้อมูลจะถูกเก็บ
ไว้ที่ศูนย์กลางเพียงแห่งเดียว แต่มุมมองการใช้งานของผู้ใช้ จะเสมือนว่าข้อมูลเหล่านั้นอยู่ที่แผนก
ของตน แม้ว่าจะมีการเรียกใช้ข้อมูลจากแผนกอื่นๆ ด้วยก็ตาม ซึ่งในความเป็นจริงนั้น ข้อมูลเพียงแค่
ชุดเดียว แต่สามารถแชร์ใช้งานร่วมกันได้ต่างหาก ดังนั้น ไม่ว่าผู้ใช้จะอยู่แผนกใดก็ตาม ก็สามารถ
เข้าถึงข้อมูลในแผนกของตน รวมถึงการดึงข้อมูลจากแผนกอื่นๆ มาใช้งานร่วมกัน
6)
การแบ่งปันข้อมูลเพื่อใช้งานร่วมกันดียิ่งขึ้น (Improved Data Sharing)
ยั น
เร ศ
วร
เพิ่ ม ผลิ ต ภาพในการพั ฒ นาโปรแกรม (Increased Productivity of Application
Development)
ชูส
ำโร
ง
มห
าวทิ
ยาล
สิ่งสาคัญประการหนึ่งของการประมวลผลข้อมูลด้วยวิธีฐานข้อมูลก็คือ ช่วยลดต้นทุนและลด
เวลาในการพัฒนาโปรแกรม โดยมีเหตุผลยืนยันอยู่ 2ประการที่ช่วยให้การสร้างโปรแกรมสามารถ
เสร็จได้อย่างรวดเร็ว
สมมติว่าฐานข้อมูลถูกสร้างขึ้นมาและนามาใช้งานอยู่ก่อนแล้ว ครั้นเมื่อโปรแกรมเมอร์ต้อง
สร้างโปรแกรมใหม่เพื่อใช้งานเพิ่มเติม ก็สามารถมุ่งประเด็นการประมวลผลโปรแกรมที่จะ
สร้างใหม่ได้ทันที โดยไม่ต้องกังวลในรายละเอียดว่า จะต้องออกแบบไฟล์เพื่อจัดเก็บข้อมูล
ภายในอย่างไร เหมือนกับระบบแฟ้มข้อมูลที่ต้องกาหนดแฟ้มนั้นๆ ว่ามีรูปแบบการเข้าถึง
แบบเรียงลาดับหรือแบบสุ่ม ในขณะที่ระบบฐานข้อมูลนั้น ซอฟแวร์ DBMS จะเป็นตัวจัดการ
ให้ ทั้ งหมด ผู้ ใช้ส นใจเพี ย งแค่ ก าหนดโครงสร้าง และรู้วิธี การดึ งข้ อ มู ล ออกมาใช้ งานก็
เพียงพอ ทาให้สะดวกต่อการบารุงรักษา
ซอฟต์แวร์ DBMS ปกติจะเตรียมเครื่องมือสนับสนุนการทางานต่างๆ มาให้มากมาย เช่น
เครื่องมือช่วยสร้างแบบฟอร์มป้อนข้อมูล เครื่องมือการสร้างรายงาน การสอบถามข้อมูล
ผ่ านคิ ว รี ที่ ส ามารถสร้ างขึ้ น ได้ ด้ ว ยระยะเวลาอั น สั้ น จึ งมี ส่ ว นช่ ว ยให้ เราสามารถสร้า ง
โปรแกรมให้เสร็จได้รวดเร็วยิ่งขึ้น
มีความเป็นมาตรฐานเดียวกัน (Enforcement of Standards)
ดร
.สิท
ธิช
ัย
30
เมื่อฐานข้อมูลถูกพัฒ นาขึ้นเพื่อน าไปใช้สนับสนุนการบริห ารจัดการอย่างเต็มรูปแบบแล้ว
หน้าที่ของผู้บริหารฐานข้อมูลก็คือ จะกาหนดฟังก์ชันการทางานพร้อมสิทธิ์การใช้งานที่จุดเดียว และ
นาไปบังคับใช้เพื่อเป็นมาตรฐาน ซึ่งมาตรฐานเหล่านี้ประกอบด้วย การตั้งชื่อ, มาตรฐานคุณภาพของ
ข้อมูล และขั้นตอนการทางานที่มีรูปแบบเดียวกัน ไม่ว่าจะเป็นเรื่องของการเข้าถึงข้อมูล การอัปเดต
และการป้องกันข้อมูล ซึ่งศูนย์รวมข้อมูลแห่งนี้จะเตรียมชุดเครื่องมือที่พรั่งพร้อมและมีประสิทธิภาพ
เพื่ อ ให้ ผู้ บ ริ ห ารข้ อ มู ล สามารถน าไปพั ฒ นาและสร้างกฎเกณฑ์ ข้ อ บั งคั บ การใช้ งานต่ า งๆให้ เป็ น
มาตรฐานเดียวกัน
ข้อมูลมีคุณภาพยิ่งขึ้น (Improved Data Quality )
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
ยาล
ยั น
เร ศ
วร
(20
1
6)
ต้องเข้าใจว่า รายงานทางสารสนเทศที่น่าเชื่อถือ จะต้องมาจากแหล่งข้อมูลที่น่าเชื่อถือด้วย
และด้ว ยวิธีการประมวลผลข้อมูล แบบฐานข้อมูล นี้ เอง ที่ มีเครื่องมือจานวนมากที่ส ามารถน าไป
ประมวลผลข้อมูลเพื่อให้เกิดคุณภาพและความน่าเชื่อถือ โดยที่นี้จะขอกล่าวใน กรณีด้วยกันคือ 2
นั ก ออกแบบฐานข้ อ มู ล สามาใช้ DBMS ในการก าหนดกฎความคงสภาพในข้ อ มู ล
(Integrity) ผ่ านการสร้ างกฎข้อ บังคับไว้ว่า ไม่อนุ ญ าตให้ ผู้ ใช้ เข้าไปแก้ไขข้อมูล ในขณะที่
ข้อมูลเหล่านั้นยังมีการนาไปใช้โดยไฟล์อื่นๆ อยู่ รวมถึงการรับประกันในข้อมูลที่บันทึกว่าจะ
ถูกต้องตรงกัน นั่นหมายถึง มีระบบควบคุมความถูกต้องในข้อมูลก่อนที่จะมีการบันทึกข้อมูล
ลงในฐานข้อมูล ซึ่งสะท้อนถึงคุณภาพของข้อมูล
หนึ่งในวัตถุประสงค์ของคลังข้อมูล ก็สามารถสกัดข้อมูลที่มีให้มีคุณภาพ ด้วยการกาจัดข้อมูล
ที่เป็นขยะหรือนาข้อมูลที่ไม่มีประโยชน์ออกไป ก่อนที่จะกลั่นกรองเอาเฉพาะข้อมูลที่ต้องการ
และถูกต้องเข้าไปจัดเก็บไว้ในคลัง ดังนั้น เมื่อข้อมูลในคลังเต็มไปด้วยสิ่งที่มีคุณค่า ย่อมส่ งผล
ให้การพยากรณ์ข้อมูลทางธุรกิจเพื่อมุ่งประเด็นในสิ่งที่ต้องการตัดสินใจ ย่อมมีความแม่นยา
มากขึ้นเท่านั้น
31
ชูส
ำโร
ง
มห
าวทิ
การเข้ า ถึ ง และการตอบสนองข้ อ มู ล ดี ยิ่ ง ขึ้ น (Improved Data Accessibility and
Responsiveness)
ฐานขอมูลเชิงสัมพันธ์ จะอานวยความสะดวกต่อผู้ใช้ในการดึงข้อมูลออกมาแสดงผลได้ตามที่
ต้องการ โดยไม่ต้องเขียนโปรแกรม แตกต่างจากระบบแฟ้มข้อมูลที่ต้องพึ่งพาโปรแกรมเมอร์ทุกครั้ง
ไป ตัวอย่างเช่น หากต้องการแสดงรายชื่อพนักงานทั้งหมดที่สังกัดแผนกที ซึ่งหากเขียนด้วย
ภาษาคอมพิวเตอร์ยุคที่ เช่น ภาษา 3COBOL จะเป็นสิ่งที่ยุ่งยากมากและต้องเขียนชุดคาสั่งหลาย
บรรทัด ในขณะที่ DBMS ส่วนใหญ่จะสนับสนุนชุดคาสั่ง SQL ซึ่งเป็นภาษายุคที่ 4(NonProcedural) สามารถทาได้ด้วยการเขียนชุดคาสั่งเพียงไม่กี่ประโยค ก็สามารถดึงข้อมูลที่ต้องการ
ออกมาได้แล้ว ดังตัวอย่างต่อไปนี้
ดร
.สิท
ธิช
ัย
SELECT empNo, name FROM Employees Where demartment = “IT”;
ผลลัพธ์ที่ได้จากประโยคคาสั่งข้างต้น เป็นการแสดงข้อมูลพนักงานทั้งหมดที่สังกัดอยู่ใน
แผนกไอที และถ้าต้องการแสดงข้อมูลเรียงลาดับตามชื่อ ก็สามารถเขียนชุดคาสั่งเพิ่มเติมต่อท้าย
อีกเล็กน้อย ดังนี้
SELECT empNo, name FROM Employees Where demartment = “IT” ORDER BY name;
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
กาหนดรายละเง่ยดโปรแกรม ชืมงผูอเอ่ยนใน IDENTIFICATION DIVISION
2. ประกาศไฟล์พนญกงานและรู ปแบบการเออ าถึงไฟล์อองมูลี่ม ENVIRONMENT DIVISION
3. ประกาศ่ญวแปรี่มเก่มยวออ งงใน DATA DIVISION
4. เปิ ดไฟล์พนญกงานี่ม PROCEDURE DIVISION
4.1 งานออ งมูลี่ละเรคงร์ ด
4.2 เปร่ ยบเี่ยบเงืมงนไอวาสญงกญดแผนกไงี่หรื งไม ถอ าใช ใหอ พิมพ์รหญสและชืมงพนญกงาน ถอ าไมใช
ไปีาออ งี่ม 4.3
4.3 กลญบไปี่มอองง 4.1 จนกระีญงม จบไฟล์
5. ปิ ดแฟอมออ งมูล
6. จบการีางาน
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
1.
6)
จะพบว่าการเขียนชุดคาสั่ง SQL นั้น เป็นอะไรที่สะดวกและประหยัดเวลามาก ถ้าเป็นการ
เขียนโปรแกรมด้วยภาษา COBOL ก็จะต้องเขียนโปรแกรมตัวอย่างอัลกอริทึมต่อไปนี้
ชูส
ำโร
ง
จากอัลกอริทึมข้างต้น จะพบว่า กว่าจะได้รายงานดังกล่าว ต้องเขียนโปรแกรมยืดยาวและ
ต้องคอมไพล์ให้เป็นภาษาเครื่อง จึงจะสั่งประมวลผลได้ และถ้าต้องการแสดงผลเรียงลาดับตามชื่อ
พนักงานแล้ว ก็จะต้องเขียนโปรแกรมเพื่อจัดเรียงข้อมูลอีกต่างหาก ดังนั้น การดาเนินงานดังกล่าว
จึงจาเป็นต้องพึ่งพาโปรแกรมเมอร์ที่มีความเชี่ยวชาญในภาษาเท่านั้น
แม้ว่าจะเป็นรายงานที่ไม่
ซับซ้อนก็ตาม
ช่วยลดงานบารุงรักษาโปรแกรม (Reduced Program Maintenance )
จากข้อดีของระบบฐานข้อมูลในเรื่องความเป็นอิสระของโปรแกรมและข้อมูล จึงช่วยให้งาน
บารุงรักษา โปรแกรมเป็นเรื่องง่ายและสะดวกมากขึ้น เนื่องจากตัวโปรแกรมมิได้ผูกติดกับข้อมูล
ดร
.สิท
ธิช
ัย
32
สนับสนุนการตัดสินใจที่ดีขึ้น (Improved Decision Support)
ส าหรั บ ฐานข้อ มู ล บางชนิ ด ถู กออกแบบขึ้ น มาเพื่ อสนั บ สนุ น งานตั ดสิ น ใจของผู้ บ ริห าร
โดยเฉพาะ ตัวอย่าง เช่น ฐานข้อมูลจัดการลูกค้าสัมพันธ์ , ฐานข้อมูลเพื่องานวิเคราะห์การเงิน และ
ฐานข้อมูลเพื่อการจัดการโซ่อุปทานซึ่งฐานข้อมูลเหล่านี้ล้วนจาเป็นต่อการนาไปใช้เพื่อสนับสนุนการ
ตัดสินใจของผู้บริหาร และมักถูกนาไปใช้ตามองค์กรขนาดใหญ่หรือตามภาคธุรกิจต่างๆในยุคปัจจุบัน
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
33
1.13 ข้อเสียของวิธีฐานข้อมูล (Disadvantages of Database Approach)
ยั น
เร ศ
วร
(20
1
6)
วิธีฐานข้อมูลก็มีข้อเสียอยู่เช่นกัน แต่เมื่อเปรียบเทียบกับข้อดีที่มีอยู่ทั้งหมด ทาให้ข้อเสีย
เหล่านี้บางเบาลงแทบไม่ได้คานึงถึง อีกทั้งข้อเสียเหล่านี้ ส่วนใหญ่มักมีการแก้ไขและวิธีป้องกัน โดย
ข้อเสียของวิธีฐานข้อมูล ประกอบด้วย
1. ความซับซ้อน
5. ต้นทุนการแปลงข้อมูล
2. ต้องใช้ความจุเพิ่มมากขึ้น
6. สมรรถนะการทางาน
3. ต้นทุน DBMS ค่อนข้างสูง
7. ผลกระทบต่อความล้มเหลวมีสูง
4. ต้นทุนเกี่ยวกับอุปกรณ์เพิ่มมากขึ้น
ความซับซ้อน (Complexity)
มห
าวทิ
ยาล
ต้ อ งยอมรั บ ว่ า เทคโนโลยี ฐ านข้ อ มู ล นั้ น มี ค วามซั บ ซ้ อ นมากกว่ าเทคโนโลยี แ ฟ้ ม ข้ อ มู ล
โดยเฉพาะ DBMS ที่มีประสิทธิภ าพสูง มักจะมีความซับซ้อนสูงตามมาเช่นกัน ดังนั้น ในด้านของ
ทีมงาน ไม่ว่าจะเป็นนักออกแบบฐานข้อมูล โปรแกรมเมอร์ ผู้บริหารฐานข้อมูล และผู้ใช้ จะต้อง
ทาความเข้าใจกับบทบาทหน้าที่ในส่วนงานของตนที่ต้องรับผิดชอบอย่างเคร่งครัด ต้องเรียนรู้ขั้นตอน
ปฏิบัติที่ถูกต้อง และใช้ประโยชน์จากซอฟต์แวร์จัดการฐานข้อมูล เพื่อก่อเกิดประโยชน์สูงสุดแก่องก์
กร
ต้องใช้ความจุเพิ่มมากขึ้น (Size)
ชูส
ำโร
ง
เมื่อประสิทธิภาพของ DBMS มีมากขึ้น ย่อมทาให้ความจุของซอฟต์แวร์เพิ่มมากขึ้น จึงต้อง
เตรียมพื้นที่ว่างในฮาร์ดดิสก์ และขนาดหน่วยความจาหลักให้เพียงพอตามข้อกาหนดที่แนะนาไว้ใน
ชุดผลิตภัณฑ์ทิ้งนี้ก็เพื่อให้ระบบสามารถรันงานได้อย่างเต็มประสิทธิภาพ
ต้นทุน DBMS ค่อนข้างสูง (Cost of DBMS)
ดร
.สิท
ธิช
ัย
ต้ น ทุ น ของซอฟต์ แ วร์ จั ด การฐานข้ อ มู ล หรื อ DBMS นั้ น จะมี ปั จ จั ย หลายอย่ า งเข้ า มา
เกี่ย วข้อง ซึ่งขึ้น อยู่ กับ ภายใต้ส ภาพแวดล้ อมของลั กษณะงานที่แตกต่ างกัน ออกไป ตัว อย่างเช่ น
DBMS ที่นามาใช้งานบนเครื่องพีซีทั่วไป อาจมีราคาเพียงไม่กี่พันบาท แต่ถ้าเป็น DBMS บนเครื่อง
เมนเฟรมคอมพิวเตอร์ ที่รองรับการทางานแบบมัลติยูสเซอร์ และบริการเครื่องลูกข่ายได้มากกว่า
ยูสเซอร์ อาจมีราคาหลายล้านบาท นอกจากนี้ยังมีต้นทุนด้านการบารุงรักษาที่สูงด้วย 100
ต้นทุนเกี่ยวกับอุปกรณ์เพิ่มมากขึ้น (Additional Hardware Cost)
ด้วยประสิ ท ธิภ าพและความซั บซ้อนของ DBMS ทาให้ ต้องมีรายจ่ายเกี่ยวกับต้น ทุน ด้าน
อุ ป กรณ์ เพิ่ ม มากขึ้ น ไม่ ว่ า จะเป็ น การเพิ่ ม พลั ง การประมวลผลของซี พี ยู เพิ่ ม ความจุ ใ ห้ กั บ
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ต้นทุนการแปลงข้อมูล (Cost of Conversion)
ยาล
สมรรถนะในการทางาน (Performance)
ยั น
เร ศ
วร
(20
1
ในบางครั้ง ต้นทุนของ DBMS และอุปกรณ์ฮาร์ดแวร์ อาจไม่สาคัญเท่าเมื่อเทียบกับต้นทุน
การแปลงข้อมูลจากระบบเก่าให้มาอยู่บนสภาพแวดล้อมของ DBMS ตัวใหม่ภายใต้อุปกรณ์ฮาร์ดแวร์
ที่ทันสมัยมากกว่าเดิม ซึ่งต้นทุนเหล่านี้ ยังรวมถึงต้นทุนการฝึกอบรมการใช้งานของทีมงานที่จะต้อง
ปฏิบัติกับระบบใหม่ โดยจะมีการจ้างทีมงานที่มีความเชี่ยวชาญเฉพาะ เข้ามาช่วยแปลงข้อมูลจาก
ระบบเดิม มายั งระบบใหม่ ต้น ทุ น เหล่ านี้ น อกจากมี ค่าใช้จ่ายสู งแล้ ว ยังสร้างความวิตกกังวลแก่
เจ้าขององค์กร ต่อความรู้สึกที่มีต่อข้อมูลในระบบเดิมว่าจะไม่สามารถถูกแปลงเข้ามาทางานอยู่บน
เทคโนโลยีฐานข้อมูลที่ทันสมัยกว่าได้ โดยเฉพาะองค์กรที่ยังคงใช้ระบบเก่าในการทางานและเป็น
เทคโนโลยีที่ล้าสมัยมากๆ
6)
หน่ ว ยความจ าหลั ก และต้ อ งจั ด ซื้ อ อุ ป กรณ์ จั ด เก็ บ ข้ อ มู ล ที่ มี ค วามจุ สู งมาใช้ ทั้ งนี้ ก็ เพื่ อ เตรี ย ม
สภาพแวดล้อมทางอุปกรณ์ฮาร์ดแวร์ให้เหมาะสมกับการประมวลผลที่มีประสิทธิภาพ
มห
าวทิ
ตามปกติแล้ว โปรแกรมที่ใช้ในระบบแฟ้มข้อมูล มักถูกสร้างขึ้นเพื่อใช้กับงานใดงานหนึ่ง
เป็ นการเฉพาะ เช่น การพิมพ์อิน วอยซ์ และการพิมพ์เช็ค เป็นต้น ซึ่งผลการดาเนินงานดังกล่าว
โดยทั่วไปมักตอบสนองการทางานค่อนข้างดีและรวดเร็ว แต่อย่างไรก็ตาม ระบบฐานข้อมูลที่ใช้
DBMS เป็ น ตัวจั ดการข้อมูลนั้ น มักนาไปใช้เพื่ อรองรับงานมากกว่าหนึ่งงาน จึงอาจส่งผลต่อบาง
โปรแกรมที่อาจประมวลผลได้ไม่รวดเร็วนักตามที่ควรจะเป็น
ชูส
ำโร
ง
ผลกระทบต่อความล้มเหลวมีสูง (Higher Impact of a Failure)
แม้ว่าการมีศูนย์กลางข้อมูลอยู่เพียงแห่งเดียว จะช่วยลดความซ้าซ้อนและลดความไม่ถูกต้อง
ตรงกันของข้อมูลได้ก็ตาม แต่ก็อาจกลายเป็นจุดอ่อนได้ โดยเฉพาะในเรื่องของ “Single point
of failure” เพราะถ้าศูนย์กลางข้อมูลแห่งนี้เกิดความเสียหายขึ้นมา ย่อมส่งผลให้ระบบงานต่างๆ ที่
มีการเชื่อมโยงเข้ากับ ฐานข้อมูล แห่ งนี้ ต้ องหยุดชะงักไปในทัน ที ไม่ส ามารถดาเนิ นการต่อ ไปได้
จนกว่าจะมีการกู้คืนหรือซ่อมแซมเพื่อให้กลับมาใช้งานได้ตามปกติ
ดร
.สิท
ธิช
ัย
34
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
35
6)
สรุปท้ายบทที่1
ยาล
มห
าวทิ
ชนิดของข้อมูล ยังถูกแบ่งออกเป็น
1. ข้อมูลชนิดข้อความ
2. ข้อมูลที่เป็นรูปแบบ
3. ข้อมูลรูปภาพ
4. ข้อมูลชนิดเสียง
ยั น
เร ศ
วร
(20
1
ข้อมูล หมายถึง ข้อเท็จจริง วัตถุ หรือเหตุการณ์ที่เกิดขึ้น ซึ่งถือเป็นข้อมูลดิบที่ยังไม่ได้ผ่าน
กาประมวลผล
สารสนเทศ หมายถึงข้อมูลที่ผ่านการประมวลมาแล้ว โดยมักสรุปเป็นรายงานทางสารสนเทศ
ในรูปแบบต่างๆ ที่สามารถนาไปใช้ประกอบการตัดสินใจด้านใดด้านหนึ่ง
โครงสร้างแฟ้มข้อมูล ประกอบด้วยโครงสร้างพื้นฐานที่ลาดับจากหน่วยที่เล็กที่สุด แล้วนามารวมเข้า
ด้วยกันเพื่อกลายเป็นหน่วยที่ใหญ่ขึ้นตามลาดับ ซึ่งประกอบด้วย บิต ไบต์ ฟิลด์ เรคอร์ด และไฟล์
ชูส
ำโร
ง
ชนิดของแฟ้มข้อมูล แบ่งออกเป็น ชนิดด้วยกัน คือ 6
1. แฟ้มข้อมูลหลัก
2. แฟ้มรายการเปลี่ยนแปลง
3. แฟ้มเอกสาร
4. แฟ้มประวัติ
5. แฟ้มตารางอ้างอิง
6. แฟ้มตรวจสอบ
ดร
.สิท
ธิช
ัย
การจัดโครงสร้างแฟ้มข้อมูล เป็นเทคนิคทางกายภาพที่นามาใช้จัดการกับเรคอร์ดต่างๆ ใน
แฟ้มข้อมูลที่บันทึกอยู่ในสื่อจัดเก็บข้อมูลอย่างฮาร์ดดิสก์ หรือเทป ผู้ใช้แทบไม่ต้องยุ่งเกี่ยว เนื่องจาก
ซอฟต์แวร์จัดการฐานข้อมูลยุคใหม่จะเป็นตัวจัดการแทนเรา ผู้ใช้เพียงกาหนดเพียงว่าต้องการข้อมูล
อะไรเท่านั้น ส่วนข้อมูลที่บันทึกจะถูกจัดระเบียบด้วยโครงสร้างรูปแบบจะถูกซ่อนไว้ ทั้งนี้ หากเป็น
ระบบแฟ้มข้อมูล เช่น ภาษาCOBOL โปรแกรมเมอร์จะต้องระบุโครงสร้างที่ใช้จัดกับแฟ้มข้อมูลลงใน
โปรแกรมด้ ว ย เช่ น ระบุ ไ ว้ ว่ า แฟ้ ม ข้ อ มู ล แฟ้ ม นี้ มี รู ป แบบเข้ า ถึ ง แบบ Sequential ,Directed,
Indexed Sequential
วัตถุประสงค์ของการจัดโครงสร้างแฟ้มข้อมูล
1. เพื่อเข้าถึงข้อมูลได้รวดเร็วขึ้น
2. ช่วยให้ปริมาณงานที่คอมพิวเตอร์ประมวลผลได้ต่อหน่วยเวลา (Throughput) มีอัตราที่ดีขึ้น
3. เพื่อใช้พื้นที่บนสื่อจัดเก็บข้อมูลได้อย่างมีประสิทธิภาพ
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
การจั ด โครงสร้ า งแฟ้ ม ข้ อ มู ล แบบเรี ย งล าดั บ เป็ น การจั ด เก็ บ ข้ อ มู ล แบบเรี ย งล าดั บ
ต่อเนื่องกัน ตามลาดับคีย์ฟิลด์ ซึ่งอาจเรียงลาดับจากน้อยไปมากหรือมากไปน้อยก็ได้ สาหรับการ
เข้าถึงเข้ามูลบนแฟ้มแบบเรียงลาดับ เช่น การค้นหาข้อมูล จะเริ่มจากต้นเรคอร์ดเพื่อเปรียบเทียบ
ข้อมูลที่ค้นหาไปเรื่อยๆ จนพบหรือไม่พบ จะกระโดดข้ามข้อมูลไม่ได้
การจั ด โครงสร้ า งแฟ้ ม ข้ อ มู ล แบบเข้ า ถึ ง โดยตรง สามารถเข้ า ถึ ง ต าแหน่ ง ข้ อ มู ล ใน
หน่วยความจาโดยตรงผ่านการกาหนดคีย์ฟิลด์ที่ใช้ระบุตาแหน่งข้อมูลด้วยฟังก์ชันแฮช ซึ่งทาหน้าที่
แปลงคี ย์ ให้ เป็ น ต าแหน่ งแอดเดรสในหน่ ว ยความจ า ครั้น เมื่ อ ได้ ต าแหน่ งแอดเดรสแล้ ว ก็ จ ะน า
แอดเดรสนี้ไปชี้ตาแหน่งข้อมูลในหน่วยความจาเพื่อนาข้อมูลออกมาใช้งานได้ทันที
การจัดโครงสร้างแฟ้มข้อมูลแบบเรียงลาดับดัชนี เป็นการนาจุดเด่นของโครงสร้างแฟ้มข้อมูล
แบบเรียงลาดับกับแบบเข้าถึงโดยตรงมาประยุกต์รวมเข้าด้วยกัน ซึ่งนอกจากจะช่วยให้เข้าถึงข้อมูลได้
อย่างรวดเร็วผ่านดัชนีแล้ว ยังสามารถประมวลผลแบบเรียงลาดับได้อีกด้วย
ข้อจากัดของวิธีแฟ้มข้อมูล
1. ข้อมูลเก็บแยกออกจากกัน
2. ข้อมูลมีความซ้าซ้อน
3. ข้อมูลมีความขึ้นต่อกัน
4. มีรูปแบบไม่ตรงกัน
5. รายงานต่างๆ มีความคงที่และตายตัว
6)
4. ป้องกันความเสียหาย หรือความสูญเสียของข้อมูล
5. เพื่อรองรับอัตราการเติบโตของข้อมูลที่เพิ่มขึ้นในอนาคต
6. เพื่อความปลอดภัยจากผู้ที่ไม่มีสิทธิ์ใช้งาน
ฐานข้อมูล เป็ น ศูน ย์ รวมของข้อมูล ต่างๆ ที่มีความสัมพั นธ์กัน โดยจะมีกระบวนการจัด
หมวดหมู่ข้อมูลหลายอย่างมีระเบียบแบบแผน ก่อให้เกิดฐานข้อมูลที่เป็นแหล่งรวมข้อมูลจากแผนก
ต่างๆ ที่ถูกนามาจัดเก็บรวบรวมกันไว้ภายใต้ฐานข้อมูลเพียงชุดเดียว โดยผู้ใช้ต่างๆ สามารถเข้าถึง
ข้อมูลส่วนกลางนี้เพื่อนาข้อมูลไปประมวลผลร่วมกันได้
ดร
.สิท
ธิช
ัย
36
ระบบจัดการฐานข้อมูล หรือ DBMS คือซอฟต์แวร์จัดการฐานข้อมูลที่ทาหน้าที่เป็นตัวกลาง
ในการโต้ตอบระหว่างผู้ใช้กับฐานข้อมูล โดยผู้ใช้สามารถโต้ตอบสื่อสารกับฐานข้อมูลได้โดยตรงผ่าน
ชุดคาสั่ง SQL หรือชุดคาสั่ง SQL ไปผนวกลงในโปรแกรมประยุกต์เพื่อใช้งานร่วมกันกับโปรแกรมที่
เขียนขึ้นก็ได้
ภาษาที่จัดอยู่ในกลุ่ม DDL จะนามาใช้เพื่อสร้างฐานข้อมูล กาหนดโครงสร้างและชนิดข้อมูล
ภาษาที่จัดอยู่ในกลุ่ม DML จะนามาใช้เพื่อจัดการกับข้อมูลในฐานข้อมูล ไม่ว่าจะเป็นการ
เพิ่ม การปรับปรุง การลบ และการเรียกดูข้อมูล
ภาษาที่จัดอยู่ในกลุ่ม DCL จะนามาใช้ควบคุมฐานข้อมูล เช่น คาสั่งกาหนดสิทธิ์หรือยกเลิก
สิทธิ์ในการเข้าถึงฐานข้อมูล
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
ชูส
ำโร
ง
มห
าวทิ
ข้อเสียของวิธีฐานข้อมูล
1. ความซับซ้อน
2. ต้องใช้ความจุเพิ่มมากขึ้น
3. ต้นทุน DBMS ค่อนข้างสูง
4. ต้นทุนเกี่ยวกับอุปกรณ์เพิ่มมากขึ้น
5. ต้นทุนการแปลงข้อมูล
6. สมรรถนะการทางาน
7. ผลกระทบต่อความล้มเหลวมีสูง
ยาล
บุคลากรที่เกี่ยวข้องกับระบบฐานข้อมูล
1. ผู้บริหารข้อมูลหรือผู้บริหารฐานข้อมูล
2. นักออกแบบฐานข้อมูล
3. นักพัฒนาโปรแกรม
4. ผู้ใช้ปลายทาง
ยั น
เร ศ
วร
(20
1
6)
ส่วนประกอบของสภาพแวดล้มของระบบจัดการฐานข้อมูล ประกอบด้วยกัน 5 ส่วนคือ
1. ฮาร์ดแวร์
2. ซอฟต์แวร์
3. ข้อมูล
4. ขั้นตอนการทางาน
5. บุคลากร
37
ดร
.สิท
ธิช
ัย
เมื่อใดที่ไม่ต้องใช้ DBMS เป็นเรื่องราวของระบบงานที่อยู่ภายใต้สภาพแวดล้อมที่เห็นสมควรว่า
ยังคงใช้ระบบแฟ้มข้อมูลเหมือนเดิม โดยไม่ต้องใช้ DBMS ให้สิ้นเปลืองค่าใช้จ่าย ดังเหตุการณ์ต่อไปนี้
1. แฟ้มข้อมูลต่างๆ และโปรแกรมมีรูปแบบที่ง่าย ถูกกาหนดไว้ดีอยู่แล้ว และไม่คิดว่าจะต้อง
เปลี่ยนแปลง
2. มีความเข้มงวดในเรื่องประมวลผลในเรื่องเฉพาะ ที่ต้องการรวดเร็วแบบทันทีทันใด
3. การเข้าถึงข้อมูลพร้อมกันของผู้ใช้หลายๆคน เป็นสิ่งไม่จาเป็น
สถาปัตยกรรม ในเชิงคอมพิวเตอร์ศาสตร์ เป็นการศึกษาโครงสร้างองค์ประกอบหลักของระบบและ
หน้าที่ของแต่ละองค์ประกอบ รวมถึงการติดต่อสื่อสารกับส่วนอื่นๆ ที่เกี่ยวข้อง
สถาปัตยกรรมระบบฐานข้อมูล เป็นการอธิบายเกี่ยวกับโครงสร้างและส่วนประกอบหลักที่
นามาประกอบรวมกันเป็นระบบฐานข้อมูล
สถาปัตยกรรม 3 ระดับ ประกอบด้วย ระดับภายใน ระดับแนวคิด และระดับภายนอก โดย
ผู้ใช้ทั่ว ไปจะมองเห็ น ข้อมูล เพี ย งระดับนอก ในขณะที่ DBMS และโปรแกรมระบบปฏิบัติการจะ
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
วัตถุประสงค์ของการแบ่งสถาปัตยกรรมฐานข้อมูลออกเป็นหลายระดับ
1. เพื่อ ให้ ผู้ ใช้ แต่ล ะคนสามารถเข้าถึงข้อมูล ชุดเดียวกัน แต่อ าจมีความแตกต่างในข้อมูล ที่
นาเสนอต่อผู้ใช้แต่ละคนได้
2. ผู้ใช้ไม่จาเป็นต้องปฏิบัติงานโดยตรงกับฐานข้อมูลระดับภายในซึ่งชั้นระดับกายภาพ ปล่อยให้
เป็นหน้าที่ของ DBMS เป็นตัวแทน โดยตัวจัดการแทน โดยผู้ใช้เพียงระบุว่าต้องการข้อมูล
อะไรเท่านั้น
3. ผู้บริหารฐานข้อมูล (DBA) สามารถเข้าไปเปลี่ยนโครงสร้างการจัดเก็บข้อมูลในฐานข้อมูลได้
โดยการดาเนินการดังกล่าว จะไม่ส่งผลกระทบใดๆ ต่อมุมมองของผู้ใช้แต่อย่างใด
4. กรณีมีการเปลี่ยนแปลงอุปกรณ์หรือสื่อจัด เก็บข้อมูล จะไม่ส่งผลกระทบต่อโครงสร้างภายใน
ฐานข้อมูล
5. การเปลี่ยนแปลงโครงสร้างข้อมูลในระดับแนวคิด เช่น การเพิ่มหรือเปลี่ยนขนาดความกว้าง
ของแอตตริบิวต์จะไม่ส่งผลต่อผู้ใช้ใดๆ ทั้งสิ้น นั้นเป็นเพราะคุณสมบัติของความเป็นอิสระใน
ข้อมูลที่โปรแกรมและข้อมูลไม่ได้ผูกติดกันเหมือนดับระบบแฟ้มข้อมูล
6)
มองเห็นข้อมูลในระดับภายใน ซึ่งเป็นข้อมูลแท้จริง ส่วนระดับแนวคิดจะทาการแปลงรูปส่วนทั้งสอง
ให้ แก่ ร ะดั บ ภายนอกและภายใน ซึ่ งระดับ แนวคิ ด นี้ จะมีค วามเป็ น อิส ระในข้ อมู ล ระหว่างระดั บ
ภายนอกและภายใน
ชูส
ำโร
ง
ความเป็นอิสระของข้อมูล แบ่งออกเป็น 2 ชนิดด้วยกันคือ
1. ความเป็นอิสระของข้อมูลเชิงตรรกะ
2. ความเป็นอิสระของข้อมูลเชิงกายภาพ
ส่วนประกอบของระบบจัดการฐานข้อมูล ประกอบด้วย
1. โมดูลส่วนประกอบของ DBMS
DDL Compiler
Query Compiler
2. โปรแกรมยูทิลิตี้สาหรับระบบฐานข้อมูล
โปรแกรมโหลดดิ้ง
โปรแกรมสาหรับสารองข้อมูล
โปรแกรมปรับโครงสร้างไฟล์
โปรแกรมคอยตรวจสอบสมรรถนะการทางาน
3. เครื่องมือช่วยพัฒนาโปรแกรมและสื่อสาร
ดร
.สิท
ธิช
ัย
38
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
2.
มีความรู้พื ้นฐานในการสร้ างแบบจาลอง
ข้ อมูล
3.
บอกข้ อดีและข้ อเสียของแบบจาลอง
ฐานข้ อมูลแต่ละชนิดได้
4.
อธิบายรายละเอียดเกี่ยวกับโครงสร้ าง
ข้ อมูลเชิงสัมพันธ์ได้
5.
อธิบายกฏ 12 ข้ อบนฐานข้ อมูลเชิงสัมพันธ์
ที่บญ
ั ญัติโดยคอดด์ได้
6.
อธิบายคุณสมบัติของรี เลชันได้ อย่างถูกต้ อง
7.
เห็นความสาคัญของคีย์และสามารถ
กาหนดคีย์ให้ กบั รี เลชันต่างๆได้ อย่าง
เหมาะสม
(20
1
อธิบายความหมาย ส่วนประกอบและ
ประเภทของแบบจาลองข้ อมูลได้
ยั น
เร ศ
วร
1.
6)
วัตถุประสงค์การเรี ยนรู ้ (Learning
Objectives)
ยาล
บทที่ 2
มห
าวทิ
แบบจำลองข้อมูล
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
(Date Models)
เอกสารประอบการสอน รายวิชา 104333
(20
1
แบบจาลองข้อมูล (Data Model) คือ เครื่องมือในเชิงแนวความคิดที่ใช้ในการอธิบายข้อมูล,
โครงสร้างข้อมูล, ความสัมพันธ์ของข้อมูล, ความหมายของข้อมูล และเงื่อนไขบังคับความสอดคล้อง
กันของข้อมูล
แบบจาลองข้อมูลยังแบบออกเป็นส่วนประกอบต่างๆ 3 ส่วนด้วยกันคือ
6)
2.1 ควำมหมำยและส่วนประกอบของแบบจำลองข้อมูล
มห
าวทิ
2.2 พื้นฐำนกำรสร้ำงแบบจำลองข้อมูล
ยาล
ยั น
เร ศ
วร
1. ส่วนโครงสร้ำง (Structural Part)
ประกอบด้วยชุดกฎเกณฑ์ที่นามานิยามหรือกาหนดว่าสร้างฐานข้อมูลอย่างไร
2. ส่วนปรับปรุง (Manipulative Part)
เป็นส่วนกาหนดประเภทของการดาเนินงาน (Operations/Transactions) ที่นามา
ประกอบข้อมูล ไม่ว่าจะเป็นการอัปเดตหรือดึงข้อมูล และการเปลี่ยนแปลงโครงสร้างฐานข้อมูล
3. ส่วนกฎควำมคงสภำพ (Integrity Rules)
เป็นชุดของกฎเกณฑ์ที่นามาใช้เพื่อควบคุมความถูกต้องของข้อมูล เพื่อความมั่นใจในความถูก
ต้องของข้อมูลที่บันทึกลงไป
การสร้างแบบจาลองข้อมูล โดยทั่วไปจะเกี่ยวข้องกับเอ็นติตี้ แอตตริบิวต์ ความสัมพันธ์ และ
ข้อบังคับ ตามรายละเอียดต่อไปนี้
ชูส
ำโร
ง
เอ็นติตี้ (Entities)
เอ็นติตี้หรือทุกๆสิ่ง ไม่ว่าจะเป็นบุคคล สถานที่ สิ่งของ หรือเหตุการณ์ที่เกี่ยวข้องกับข้อมูลที่
ได้รวบรวมและจัดเป็นเอาไว้ เอ็นติตี้ถือเป็นตัวแทนของวัตถุในโลกแห่งความเป็นจริง และยังอาจใช้
แทนวัตถุทางกายภาพจริงๆก็ได้ ตัวอย่างเช่น ลูกค้า หรือสินค้า นอกจากนี้แล้ว เอ็นติตี้ยังอาจแทน
สิ่งของที่เป็นนามธรรม (Abstractions) เช่น เที่ยวบิน เป็นต้น
ดร
.สิท
ธิช
ัย
40
แอตตริบิวต์ (Attributes)
แอตตริบิวต์คือลักษณะเฉพาะของเอ็นติตี้ ตัวอย่างเช่น เอ็นติตี้ลูกค้า ประกอบด้วยแอตตริ
บิวต์ต่างๆที่นามาใช้อธิบายลักษณะเฉพาะของเอ็นติตี้ อันได้แก่ รหัสลูกค้า ชื่อ- นามสกุล ที่อยู่
โทรศัพท์ วงเงินเครดิต ทั้งนี้แอตตริบิวต์ก็คือฟิลด์ ที่ใช้งานในระบบไฟล์นั่นเอง
ควำมสัมพันธ์ (Relationships)
ความสัมพันธ์ ถูกนามาใช้เพื่อกาหนดความสัมพันธ์ของเอ็นติตี้ ตัวอย่างเช่น ความสัมพันธ์
ระหว่างลูกค้า กับบัญชีธนาคาร เช่นลูกค้าสามารถเปิดบัญชีธนาคารได้หลายบัญชี โดยแบบจาลอง
ข้อมูลจะมีความสัมพันธ์ อยู่ 3 ชนิดด้วยกันคือ ความสัมพันธ์แบบหนึ่ง ต่อ หนึ่ง ความสัมพันธ์แบบ
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 2 แบบจาลองข้อมูล
41
หนึ่งต่อกลุ่ม และความสัมพันธ์แบบกลุ่มต่อกลุ่ม ซึ่งนักออกแบบฐานข้อมูลมักใช้ลักษณ์แทน คือ 1:1 ,
1:M และ M:N ตามลาดับ
ยั น
เร ศ
วร
(20
1
6)
ควำมสัมพันธ์แบบหนึ่งต่อหนึ่ง (1:1) เป็นความสัมพันธ์ที่แต่ละรายการของเอ็นติตี้ x มีความสัมพันธ์
กับข้อมูล y เพียงหนึ่งรายการ ตัวอย่างเช่น นักศึกษามีรหัสประจาตัวได้เพียงหนึ่งรหัส และรหัส
นักศึกษาเพียงหนึ่งรหัส ก็นาไปอ้างอิงนักศึกษาได้เพียงหนึ่งคนเท่านั้น
ภาพที่ 2. 1 ความสัมพันธ์แบบ one-to-one
ชูส
ำโร
ง
มห
าวทิ
ยาล
ควำมสัมพันธ์แบบหนึ่งต่อกลุ่ม (1:M) เป็นความสัมพันธ์ที่แต่ละรายการของเอ็นติตี้ X
มีความสัมพันธ์กับเอ็นติตี้ y มากกว่าหนึ่งรายการ โดยแต่ละรายการของเอ็นติตี้ y จะมี
ความสัมพันธ์กับเอ็นติตี้ x ได้เพียงหนึ่งรายการเท่านั้น ตัวอย่างเช่น คณะหนึ่ง มีหลาย
สาขาวิชา ในขณะที่แต่ละวิชาจะต้องสังกัดเพียงหนึ่งคณะ
ดร
.สิท
ธิช
ัย
ภาพที่ 2. 2 ความสัมพันธ์แบบ one-to-many
จากรูปที่ 2.2 อธิบายได้ว่า คณะเกษตรศาสตร์ ประกอบด้วยหลายสาขาด้วยกัน คือสาขาวิชา
ภูมิศาสตร์ ประมง อุตสาหกรรมเกษตร และเทคโนโลยีอาหารสัตว์ ในขณะที่สาขาต่างๆ เหล่านี้จะ
สังกัดอยู่ในคณะหนึ่งๆเท่านั้น นั่นก็คือคณะเกษตรศาสตร์
ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (M:N) เป็นความสัมพันธ์ที่แต่ละรายการของเอ็นติตี้ x มี
ความสัมพันธ์กับข้อมูล มากกว่าหนึ่งรายการ ในขณะที่ แต่ละรายการของเอ็นติตี้ y ก็มี
ความสัมพันธ์กับข้อมูล x ได้มากกว่าหนึ่งรายการ เช่นกัน ตัวอย่างเช่น นักศึกษาหลาย
คน ลงทะเบียนเรียนได้หลายวิชา
ดร.สิทธิชัย ชูสาโรง
ยั น
เร ศ
วร
ภาพที่ 2. 3 แสดงความสัมพันธ์แบบ many-to-many (โอภาส เอีย่ มสิริวงศ์, 2558)
(20
1
6)
เอกสารประอบการสอน รายวิชา 104333
ข้อบังคับ (Constraints)
ยาล
จากรู ป ที่ 2.3 อธิ บ ายได้ ว่า มานะได้ ล งทะเบี ย นเรีย นครบทุ ก วิช า ซึ่ งประกอบด้ ว ยรหั ส
CS101 CS102 CS103 CS104 และ CS105 ในขณะที่ ร หั ส วิ ช า CS103 ได้ มี นั ก ศึ ก ษาหลายคน
ลงทะเบียนเรียน ซึ่งประกอบด้วยมานะ,มานี ,มีนา และมารุต
ชูส
ำโร
ง
มห
าวทิ
ข้อบังคับในที่นี้หมายถึง กฎเกณฑ์หรือข้อจากัดต่างๆ ที่มีต่อข้อมูล โดยข้อบังคับถือเป็นสิ่ง
สาคัญ เพราะจะช่วยควบคุมความถูกต้องของข้อมูล (Data lntegrity) ตัวอย่าง
เงินเดือนพนักงานจะต้องอยู่ในช่วง 15,000– 80,000
เกรดเฉลี่ยสะสมจะต้องอยู่ช่วงระหว่าง 4.00 – 0.00
แต่ละภาคการศึกษา นักศึกษาสามารถลงทะเบียนได้หลายหน่วยกิต แต่ต้องไม่เกิน 21
หน่วยกิต
2.3 แบบจำลองฐำนข้อมูล (Database Model)
แบบจาลองฐานข้อมูล คือสถาปัตยกรรมที่มีความสาคัญต่อระบบจัดการฐานข้อมูล (DBMS)
ในการนามาใช้จัดเก็บข้อมูล/วัตถุลงในฐานข้อมูลและกาหนดความสัมพันธ์ระหว่างข้อมูลต่างๆที่
เกี่ยวข้อง ซึ่งเทคโนโลยีฐานข้อมูลแต่ละชนิด ต่างก็มีวิธีเชื่อมโยงความสัมพันธ์เพื่อเข้าถึงข้อมูลใน
รูปแบบที่แตกต่างกันดังนั้น กระบวนการคัดสรร DBMS เพื่อใช้งาน (ในขั้นตอนการออกแบบ
ฐานข้อมูล) จึงจาเป็นต้องสอดคล้องกับแบบจาลองข้อมูลที่สร้างขึ้นจากระยะการวิเคราะห์ด้วย
รูปแบบโครงสร้างการจัดการฐานข้อมูลและคลังข้อมูล มีอยู่หลายรูปแบบด้วยกัน แต่ละ
รูปแบบต่างก็มีคุณสมบัติและโครงสร้างที่แตกต่างกัน โดยรายละเอียดการจัดการข้อมูล (หรือคลัง
บังคับ) จะต้องได้รับการสนับสนุนใต้พื้นฐานของแบบจาลองฐานข้อมูล 1 ใน 5 รูปแบบ (บางรูปแบบ
ถูกยกเลิกและไม่ได้ใช้งานในปัจจุบันแล้ว) ซึ่งประกอบด้วย
1. แบบจาลองฐานข้อมูลลาดับชั้น
2. แบบจาลองฐานข้อมูลเครือข่าย
ดร
.สิท
ธิช
ัย
42
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 2 แบบจาลองข้อมูล
43
(20
1
แบบจำลองฐำนข้อมูลลำดับชั้น (Hierarchical Database Model)
6)
3. แบบจาลองฐานข้อมูลเชิงสัมพันธ์
4. แบบจาลองฐานข้อมูลเชิงวัตถุ
5. แบบจาลองฐานข้อมูลหลายมิติ
มห
าวทิ
ยาล
ยั น
เร ศ
วร
แบบจาลองชนิดนี้ ไฟล์ข้อมูลจะถูกจัดลงในโครงสร้างแบบลงล่าง (Top-Down) คล้ายกับ
ต้นไม้หรือแผนผังสืบทอดวงศ์วงตระกูลที่ถูกกาหนดความสัมพันธ์ในรูปแบบหนึ่งต่อกลุ่ม (one-tomany) โดยไฟล์ ร ะดั บ บนสุ ด จะเรี ย กว่ า โหนดราก หรื อ Root node (ในบางครั้ ง อาจเรี ย กว่ า
Segment ก็ได้) และไฟล์ระดับ ล่างสุ ดจะเรียกว่าโหนดใบ (Leaves Node) ส่ วนไฟล์ ที่อยู่ระหว่าง
กึ่งกลางจะเป็นไฟล์ที่มีเพียงพ่อเดียว และไฟล์หนึ่งๆสามารถมีไฟล์ลูกได้หลายไฟล์ด้วยกัน
โครงสร้ างข้อ มู ล แบบล าดับ ชั้น แต่ ล ะเซ็ก เม็ น ต์ (โหนด) เปรีย บเสมื อ นเรคอร์ด ในระบบ
แฟ้มข้อมูลซึ่งแต่ละเรคอร์ดจะถูกเชื่อมโยงด้วยพอยน์เตอร์ (Pointer) ในระดับกายภาพ สาหรับเร
คอร์ดหรือเซ็กเม็น ต์ต่า งๆที่อยู่ ล าดับล่ างลงไปก็คือลูกของเซ็กเม็นต์ที่อยู่ล าดับก่อนหน้า และด้ว ย
หลั กการนี้ แบบจาลองฐานข้อมูลชนิดนี้จึงมีความสัมพันธ์แบบ one-to-many กล่ าวคือ โหนดพ่อ
สามารถแตกสาขาออกเป็นโหนดลูกได้หลายโหนด ในขนะที่โหนดลูกจะมีเพียงพ่อเดียวเท่านั้น จึงไม่
รับรองความสัมพันธ์แบบ many-to-many
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
พิ จ ารณารู ป ที่ 3.4 เป็ น ตั ว อย่างสคี ม าของฐานข้อ มู ล Dream Home ที่ อ อกแบบภายใต้
แบบจาลองฐานข้อมูลแบบลาดับชั้น จะพบว่า Dream Home ซึ่งเป็นโหนดราก ได้มีการแตกออกเป็น
สาขาต่ างๆ อั น ได้ แ ก่ สาขา B002, B003, B004, B005, และ B007 ดั งนั้ น หากต้ อ งการรายงาน
พนักงานทั้งหมดที่สังกัดอยู่สาขา B003 ก็จะต้องเริ่มต้นค้นหา ตั้งแต่โหนดราก ซึ่งอยู่ละดับบนสุด แล้ว
ค่อยๆ ไต่ลาดับ ลงมา ครั้น เมื่อพบโหนดสาขา B003 แล้ว ก็จะดึงเรคอร์ดข้อมูล ที่เกี่ยวข้องออกมา
ทั้งหมด
ภาพที่ 2. 4 ตัวอย่างฐานข้อมูล Dream Home ภายใต้โครงสร้างแบบจาลองฐานข้อมูลลาดับชั้น
(โอภาส เอี่ยมสิริวงศ์, 2558)
ดร.สิทธิชัย ชูสาโรง
ยาล
สาหรับข้อดีข้อเสียของแบบจาลองฐานข้อมูลชนิดนี้ คือ
ยั น
เร ศ
วร
(20
1
แบบจาลองฐานข้อมูลลาดับชั้น จัดเป็นสถาปัตยกรรมข้อมูลที่เก่าแก่ที่สุดในบรรดาทั้งหลาย
และเนื่องจากเป็นแบบจาลองที่มีโครงสร้างความสัมพันธ์แบบพ่อลูก ดังนั้น ความถูกต้ องในข้อมูลย่อมี
ความคงสภาพสูง แม้ว่าในปัจจุบัน จะไม่นิยมใช้แบบจาลองประเภทนี้แล้วก็ตาม แต่ยังอาจพบเห็นได้
ในองค์กร ขนาดใหญ่สาหรับเทคโนโลยีนี้ใช้งานได้ดีบนแบบจาลองบนแบบจาลองข้อมูลที่ใช้โครงสร้าง
แบบทรีและการเข้าถึงข้อมูลส่วนใหญ่เริ่มต้อนจากแฟ้มเดียวกัน (Root Node) แบบจาลองฐานข้อมูล
ลาดับชั้นเหมาะกับการประมวลผลธุรกรรมขนาดใหญ่ ทุกวันนี้ยังคงมีองค์กรเก่าแก่เพียงบางแห่ ง
เท่านั้นที่ใช้งานอยู่ ตัวอย่างซอฟต์แวร์จัดการฐานข้อมูลบนแบบจาลองชนิดนี้คือ IMS (Information
Management System) ของบริษัท IBM แต่ด้วยแนวโน้มระบบฐานข้อ มูลในยุคปัจจุบัน ล้วนสร้าง
ขึ้น ล้วนสร้างขึ้นภายใต้แบบจาลองฐานข้อมูลเชิงสัมพันธ์แทบทั้งสิ้น ดังนั้น ทางบริษัท IBM จึงได้
เตรียมชุดซอฟต์แวร์สาหรับใช้เป็นเครื่องมือในการดเคลื่อนย้าย (Migration) จากฐานข้อมูลบน IMS
มาเป็ น DB2 เพื่ อรองรั บ ลู กค้ าของพวกเขา (DB2 เป็ น ผลิ ต ภั ณ ฑ์ ซ อฟต์แ วร์จัด การฐานข้ อมู ล เชิ ง
สัมพันธ์ของบริษัท IBM)
6)
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
มห
าวทิ
ข้อดี
เป็นโครงสร้างที่ง่ายต่อการทาความเข้าใจ มีลักษณะเหมือนกับโครงสร้างต้นไม้
เป็ นโครงสร้างที่มีความซับ ซ้อนน้อยที่สุด เหมาะกับข้อมูล ที่มีความสัมพันธ์แบบ one-tomany
การป้องกันความปลอดภัยในข้อมูลค่อนข้างดี เนื่องจากต้องอ่านข้อมูลที่เป็นต้นกาเนิดก่อน
ทาให้ความถูกต้องของข้อมูลในฐานข้อมูลมีสูง (มีความคงสภาพสูง)
เหมาะกับข้อมูลที่มีการเรียงลาดับแบบต่อเนื่อง
ข้อเสีย
ยากต่อการพัฒ นา ผู้พัฒ นาต้องมีความรู้ความเข้าใจเกี่ยวกับโครงสร้างทางกายภาพของ
ข้อมูลที่จัดเก็บอยู่ภายในฐานข้อมูลเป็นอย่างดี
มีข้อจากัดด้านการนาไปใช้งาน โดยเฉพาะการไม่รองรับความสัมพันธ์แบบ one-to-many
เมื่อมีการเปลี่ยนแปลงในโครงสร้าง แอปพลิเคชันโปรแกรมทั้งหมดต้องเปลี่ ยนแปลงตาม
เนื่องจากขาดอิสระในโครงสร้าง
ในการเรียกใช้ข้อมูลจาเป็นต้องผ่านโหนดรากเสมอ ดังนั้นหากต้องการค้นหาข้อมูลซึ่งอยู่ใน
ระดับต่างๆ ก็จะต้องค้นหาทั้งแฟ้ม
ไม่มีภาษามาตรฐานที่นาไปใช้จัดการกับข้อมูล
ขาดมาตรฐานการรองรับที่ชัดเจน
ดร
.สิท
ธิช
ัย
44
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 2 แบบจาลองข้อมูล
45
แบบจำลองฐำนข้อมูลเครือข่ำย (Network Database Model)
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
แบบจาลองฐานข้อมูลเครือข่าย สามารถรองรับความสัมพันธ์ข้อมูลที่มีความซับซ้อนยิ่งขึ้น
และมีประสิทธิภาพสูงกว่าแบบแรก แต่ยังมีโครงสร้างที่คล้ายคลึงกับแบบลาดับชั้นอยู่ดี คือมีลาดับชั้น
แบบบนล่าง แต่จะแตกต่างตรงที่ นอกจากแต่ละโหนดจะมีความสัมพันธ์กับโหนดอื่นๆ ได้หลายโหนด
แล้ว แต่ละโหนดยังสามารถมีหลายพ่อได้
ชูส
ำโร
ง
ภาพที่ 2. 5 แบบจาลองฐานข้อมูลเครือข่าย ที่สื่อให้เห็นถึงโครงสร้างที่โหนดลูกสามารถมีหลายพ่อได้
ดร
.สิท
ธิช
ัย
ความสัมพันธ์ระหว่างข้อมูลในแบบจาลองฐานข้อมูลเครือข่ายจะเรียกว่าเซต (Set) แต่ละเซต
อย่างน้อยประกอบด้วยเรคอร์ด 2 ชนิดด้วยกัน คือ Owner Record ที่เปรียบเสมือนกับโหนดพ่อ
และ Member Record ที่ Owner Record และ Member Record ได้ ต ามโครงสร้ า งแบบเมช
(Mesh Structure)
ภาพที่ 2. 6 ตัวอย่างฐานข้อมูล DreamHome ภายใต้โครงสร้างแบบจาลองฐานข้อมูลเครือข่าย
ดร.สิทธิชัย ชูสาโรง
ยั น
เร ศ
วร
(20
1
ปั จ จุ บั น แบบจ าลองชนิ ด นี้ ยั ง คงมี ใ ช้ ง านอยู่ บ นเครื่ อ งคอมพิ ว เตอร์ ร ะดั บ เมนเฟรม
โดยเฉพาะโปรแกรมจั ด การฐานข้ อ มู ล IDMS (Integrated Database Management System)
ของบริษัท Computer Associates (ปัจจุบันคือบริษัท CA Technologies) ซึ่งได้รับความนิยมมาก
ภายใต้การใช้งานบนโครงสร้างแบบจาลองดังกล่าวและในทานองเดียวกัน โครงสร้างแบบจาลอง
ฐานข้อมูลแบบเครือข่ายยังคงใช้พอยน์เตอร์หรือตัวชี้ในการเชื่อมโยงความสัมพันธ์ระหว่างเรคคอร์ดใน
ระดั บ กายภาพ โดยสนั บ สนุ น ความสั ม พั น ธ์ ได้ ทั้ ง แบบ one-to-many และ many-to-many
สาหรับข้อดีและข้อเสียของแบบจาลองฐานข้อมูลชนิดนี้ คือ
6)
เอกสารประอบการสอน รายวิชา 104333
มห
าวทิ
ยาล
ข้อดี
มีหลักการที่ง่าย คล้ายกับแบบจาลองฐานข้อมูลลาดับชั้น
สนับสนุนความสัมพันธ์ได้ทั้งแบบ one-to-many และ many-to-many
การเข้าถึงข้อมูลที่ความยืดหยุ่นสูงกว่าแบบลาดับชั้น เหมาะกับแฟ้มข้อมูล ที่มีความสัมพันธ์
กันในรูปแบบของเครือข่าย
ความสัมพันธ์แบบ Owner/Member Relationship ทาให้ข้อมูลมีความคงสภาพที่ดี
มีภาษานิยามข้อมูล (DDL) และภาษาจัดการข้อมูล (DML) ใน DBMS
มีมาตรฐานเพื่อนาไปปฏิบัติชัดเจน (ตามกรอบมาตรฐานของ CODASYL)
ชูส
ำโร
ง
ข้อเสีย
ระบบโดยรวมมีความซับซ้อน อีกทั้งยังมีข้อจากัดด้านประสิทธิภาพ
ยากต่อการนาไปใช้ ทั้งในด้านการพัฒนาแอปพลิเคชัน และการจัดการ
หากโครงสร้างมีการเปลี่ยนแปลง โปรแกรมประยุกต์ทั้งหมดต้องเปลี่ยนตาม เนื่องจากขาด
อิสระในโครงสร้าง
แบบจำลองฐำนข้อมูลเชิงสัมพันธ์ (Relational Database Model)
ดร
.สิท
ธิช
ัย
46
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ จัดเป็นแบบจาลองที่นิยมใช้มากที่สุด ระบบใหม่ๆ ใน
ปัจจุบันล้วนถูกสร้างขึ้นภายใต้แบบจาลองชนิดนี้แทบทั้งสิ้น ผ่านการนาเสนอมุมมองในรูปแบบของ
ตาราง(Table) สองมิติที่สามารถสื่อสารได้อย่างเข้าใจ โดยตารางหนึ่งๆ จะประกอบด้วยแถวและ
คอลัมน์ ข้อมูลที่จัดเก็บอยู่ในตารางสามารถเชื่อมโยงความสัมพันธ์กับตารางอื่นๆ ได้ ไม่ว่าจะเป็น
ความสัมพันธ์แบบ one-to-many หรือแบบ many-to-many โดยมีคีย์เป็นตัวเชื่อมโยงเข้ากับตาราง
อื่น ๆ ซึ่งประกอบด้วยคีย์ห ลักและคีย์น อก รวมถึงการกาหนดล าดับดัช นีให้ กับคี ย์กลั กและคีย์รอง
เพื่อให้การเข้าถึงข้อมูลมีความรวดเร็วยิ่งขึ้น นอกจากนี้ยังมีเครื่องมือสนับสนุนอื่นๆ ที่สาคัญไม่ว่าจะ
เป็นภาษา SQL และเครื่องมือสร้างคิวรี (QBE) เป็นต้น
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
47
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
บทที่ 2 แบบจาลองข้อมูล
ภาพที่ 2. 7 ตัวอย่างฐานข้อมูล Dreamhome ภายใต้โครงสร้างแบบจาลองฐานข้อมูลเชิงสัมพันธ์
ชูส
ำโร
ง
ปัจจุบันมีโปรแกรมประยุกต์มากมายที่พัฒนาเพื่อใช้งานบนแบบจาลองฐานข้อมูลเชิงสัมพันธ์
ซอฟต์แวร์จัดการฐานข้อมูล (DBMS) ส่วนใหญ่ล้วนสนับสนุนการทางานของแบบจาลองดังกล่าว ด้วย
การใช้คาสั่ง SQL ในการจัดการกับฐานข้อมูล สาหรับข้อดีและข้อเสียของแบบจาลองฐานข้อมูลชนิด
นี้
ดร
.สิท
ธิช
ัย
ข้อดี
มีค วามเป็ น อิ ส ระในโครงสร้าง หากมี การเปลี่ ยนแปลงโครงสร้างตาราง จะไม่ ส่ งผลต่ อ
โปรแกรมที่ใช้งาน
การนาเสนอข้อมูลในรูปแบบตาราง ก่อให้เกิดมโนภาพถึงลักษณะข้อมูลที่สามารถจับต้องได้
ง่ายจ่อการทาความเข้าใจ ช่ว ยในการออกแบบฐานข้อ มูล การนาไปใช้และการจัดการ
สะดวกขึ้นมาก
การเรียกดูข้อมูล สามารถเรียกใช้งานผ่านชุดคาสั่ง SQL ซึ่งเป็นภาษายุคที่ 4
มีระบบความปลอดภัยที่ดี เนื่องจากโครงสร้างการจัดเก็บข้อมูลทางกายภาพ ผู้ใช้ทั่วไปไม่
สามารถรับรู้ได้เนื่องจากถูกซ่อนอยู่ภายใน
DBMS ยุคใหม่ที่ใช้งานในปัจจุบัน ล้วนรองรับเทคโนโลยีฐานข้อมูลเชิงสัมพันธ์แทบทั้งสิ้น
ดร.สิทธิชัย ชูสาโรง
ยั น
เร ศ
วร
(20
1
ข้อเสีย
ค่าใช้ จ่ ายเกี่ย วกั บ ระบบค่ อ นข้ างสู ง เนื่ อ งจากจาเป็ น ต้ อ งใช้ ท รัพ ยากรทั้ งฮาร์ด แวร์แ ละ
ซอฟต์ แ วร์ ที่ มี ค วามสามารถสู ง รวมถึ ง ต้ น ทุ น ของตั ว DBMS ก็ จ ะสู ง ขึ้ น ตามระดั บ
ความสามารถ
เนื่องจากแนวคิดฐานข้อมูลเชิงสัมพันธ์ในภาพรวมนั้นง่ายต่อการนาไปใช้งาน ดังนั้น บุคคลที่
ไม่ได้รับการฝึกอบรมหรือเป็นผู้ที่มีความรู้ไม่ดีพอ ได้นาเครื่องมือไปใช้หรือออกแบบผิดๆ
ทาให้ระบบที่ดีต้องกลับแย่ลง และหากไม่ได้รับการตรวจสอบ อาจก่อให้เกิดความช้าช้อนใน
ข้อมูลได้เช่นเดียวกับระบบแฟ้มข้อมูล
6)
เอกสารประอบการสอน รายวิชา 104333
ยาล
เนื่องจากฐานข้อมูลเชิงสัมพันธ์มีเครื่องมือสนับสนุนมากมายที่สามารถนามาใช้เพื่อพัฒ นา
ระบบด้วยระยะเวลาอันสั้น ดังนั้น อาจเกิดปัญหากับกรณีมีพนักงานบางคน อยากลองวิชา
หรือทดลองศึกษาด้วยการลักลอบพัฒนาแอปพลิเคชันเพื่อใช้งานเองในทางที่ผิดหรือกระทา
โดยไม่ได้รับอนุญาตซึ่งอาจส่งผลกระทบต่อฐานข้อมูลองค์กรไม่ทางใดก็ทางหนึ่ง
แบบจำลองฐำนข้อมูลเชิงวัตถุ (Object-Oriented Database Model)
ชูส
ำโร
ง
มห
าวทิ
แบบจาลองชนิดนี้ถือเป็นเทคโนโลยีใหม่ของการจัดการฐานข้อมูลเชิงวัตถุ ซึ่งเกิดจากแนวคิด
การเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Program: OOP) ด้วยการมองทุกสิ่งเป็นวัตถุ โดยแต่
ละวั ต ถุ จ ะเป็ น แหล่ ง รวมของข้ อ มู ล โอเปอเรชั น (Data and Operation) มี ค ลาส (Class) เป็ น
ตัวกาหนดคุฯสมบัติหรือรายละเอียดของวัตถุ รวมทั้งคุณสมบัติห่อหุ้ม (Encapsulation) ที่การเข้าถึง
ข้อมูล (วัตถุอื่นๆ ได้ส่งเมสเสจร้องเข้ามา) จะต้องได้รับการตอบรับจากเมธอด ในวัตถุนั้นว่าจะอนุญาต
ให้เข้าถึงข้อมูลตนหรือไม่ ข้อดีของแบบจาลองฐานข้อมูลเชิงวัตถุนี้ก็คือ สามารถจัดการกับข้อมูลชนิด
ต่างๆ ที่มีความซับซ้อนได้เป็นอย่างดี ไม่ว่าจะเป็นข้อมูลประเภท กราฟิก วีดีโอ และเสียง นอกจากนี่
ยังสนับสนุนคุณสมบัติการนากลับมาใช่ใหม่ (Reusable) ทั้งนี้แบบจานองฐานข้อมูลเชิงวัตถุ ถือเป็น
เทคโนโลยี ใหม่ ข อง DBMS ที่ มั ก น าไปใช้ กั บ หน่ ว ยงานขนาดใหญ่ ส าหรั บ ข้ อ ดี แ ละข้ อ เสี ย ของ
แบบจาลองฐานข้อมูลชนิดนี้ คือ
ดร
.สิท
ธิช
ัย
48
ข้อดี
คุณสมบัติด้านการสืบทอด (Inheritance) ทาให้ข้อมูลมีความคงสภาพสูง
มีคุณสมบัติในการนากลับมาใช้ใหม่
การนาเสนอข้อมูลรูปแบบวิชวล (Visual) ทาให้เข้าใจความหมายได้ดี
ข้อเสีย
ต้องพึงพาผู้เชียวชาญโดยเฉพาะ และมีค่าใช้จ่ายเกี่ยวกับระบบค่อนข้างสู.
ยั งไม่ มี ม าตรฐานรองรั บ ที่ ชั ด เจนเมื่ อ เที ย บกั บ แบบจ าลองฐานข้ อ มู ล เชิ งสั ม พั น ธ์ อี ก ทั้ ง
ผลิตภัณฑ์ DBMS ที่ใช้งานบนแบบจาลองฐานข้อมูลเชิงสัมพันธ์ ได้พัฒนาขีดความสามารถก้าว
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 2 แบบจาลองข้อมูล
49
(20
1
แบบจำลองฐำนข้อมูลหลำยมิติ (Multidimensional Database Model)
6)
ไปอี ก ขั้ น หนึ่ ง ด้ ว ยการผนวกเทคโนโลยี เชิ ง วั ต ถุ เข้ า ไปด้ ว ย ที่ เรี ย กว่ า Object-Relational
Database
ผู้เชี่ยวชาญส่วนใหญ่คุ้นเคยกับเทคโนโลยีฐานข้อมูลเชิงสัมพันธ์มากกว่า
มห
าวทิ
ยาล
ยั น
เร ศ
วร
แบบจาลองชนิดนี้ใช้งานกับคลังข้อมูล (Data Warehousuing )โดยนาเสนอข้อมูลได้หลาย
มิติทาให้สามารถวิวข้อมูลได้มากกว่าหนึ่งมุมมอง เพื่อให้ผู้บริหารสามารถมองเห็นปัญหาทางธุรกิจ
และสร้างวิธีแก้ปัญหาได้ดียิ่งขึ้ น กล่าวคือ แบบจาลองฐานข้อมูลหลายมิติจะนาข้อมูลธุรกรรมทาง
ธุรกิจมาจัดรูปแบบให้อยู่ในรูปมิติ เช่น การนาข้อมูลผลิตภัณฑ์สินค้า (Product) กับข้อมูลพื้นที่การ
ขาย (Market) มาประมวลเป็นตารางในรูปแบบหลายมิติ ทาให้ผู้ใช้สามารถตัดขวางหรือแบ่งข้อมูล
ออกเป็นส่วนๆ (Data Cube) มาวิเคราะห์ใช้งานได้ตามต้องการตัวอย่างแบบจาลองฐานข้อมูลหลาย
มิ ติ ที่ ถู ก สร้ า งเพื่ อ ใช้ ง านในฐานข้ อ มู ล เชิ ง สั ม พั น ธ์ คื อ Star Schema ซึ่ ง จะมี Fact Table เป็ น
ศูนย์กลางในการบรรจุแอตตริบิวต์ทั้งหมดที่ถูกวัดหรือวิเคราะห์ (จะคีย์ตามคอลัมน์ต่างๆที่เชื่อมโยงไป
ยังตารางมิติ) ส่วนตารางมิติ (Dimension Tables) ก็คือตารางแกนต่างๆ ที่จะเชื่อมโยงเข้ากับตาราง
Fact ผ่านคีย์ สาหรับข้อดีและข้อเสียของแบบจาลองฐานข้อมูลชนิดนี้ คือ
ชูส
ำโร
ง
ข้อดี
สามารถนามาประยุกต์ใช้เพื่อวางแผนกลยุทธ์ และสร้างวิธีแก้ไขปัญหาธุรกิจได้
ข้อมูลที่นาเสนอสามารถนาเสนอมุมมองได้หลายมิติ
ดร
.สิท
ธิช
ัย
ข้อเสีย
ใช้เงินลงทุนสูง ทั้งด้านฮาร์ดแวร์และซอฟต์แวร์ที่นามาใช้เพื่อการวิเคราะห์
คลังข้อมูลต้องได้รับการออกแบบที่ดี มิฉะนั้นอาจะไม่สามารถนามาใช้ประโยชน์ได้อย่าง
คุ้มค่า
ผู้เชี่ยวชาญเฉพาะด้าน มีจานวนน้อย
เหมาะกับธุรกิจขนาดใหญ่
ดร.สิทธิชัย ชูสาโรง
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
เอกสารประอบการสอน รายวิชา 104333
ดร
.สิท
ธิช
ัย
50
ภาพที่ 2. 8 แบบจาลองฐานข้อมูล (Database Model) (โอภาส เอีย่ มสิริวงศ์, 2558)
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 2 แบบจาลองข้อมูล
51
2.4 โครงสร้ำงข้อมูลเชิงสัมพันธ์ (Relational Data Structure)
6)
รีเลชัน (Relation)
แอตตริบิวต์ (Attribute)
ยั น
เร ศ
วร
(20
1
ระบบจั ด การฐานข้ อ มู ล เชิ ง สั ม พั น ธ์ (Relational Database Management Systems:
RDBMS) จะนาเสนอข้อมูลต่างๆ ให้ผู้ใช้รับรู้ในรูปแบบของตาราง อย่างไรก็ตาม ตารางต่างๆที่เราเห็น
นั้น เป็นเพียงโครงสร้างเชิงตรรกะของฐานข้อมูลเท่านั้น (ข้อมูลจริงๆที่จัดเก็บจะไม่ใช่เป็นตารางอย่าง
ที่เราเห็น) ซึ่งแป็นไปตามสถาปัตยกรรม ANSI-SPARC ในระดับแนวคิดและระดับภายนอกตามที่ได้
กล่ าวไว้ ในบทที่ 2 ทั้ ง นี้ โครงสร้ างทางกายภาพของฐานข้ อ มู ล ที่ เก็ บ ข้ อ มู ล จริง ๆ อาจสร้ างด้ ว ย
โครงสร้างแฟ้มข้อมูลแบบ B-Tree หรือ Indexed Sequential ก็ได้
มห
าวทิ
ยาล
ในแบบจาลองเชิงสัมพันธ์ รีเลชันถูกนาไปใช้จัดเก็บข้อมูลและวัตถุต่ างๆ ที่เกี่ยวข้องเพื่อเป็น
ตัวแทนในฐานข้อมูล ผ่านการแสดงผลในรูปแบบของตารางสองมิติที่ประกอบไปด้วยแถว ซึ่งก็คือเร
คอร์ดหนึ่งๆ ส่วนคอลัมน์ในตารางก็คือแอตตริบิวต์ (ฟิลต์) โดยพิจารณาจากรูป 2.9 จะพบว่ารีเลชัน
BRANCH ประกอบด้วยแอตตริบิวต์ branchNo, street, city, postcode ส่วนรีเลชัน EMPLOYEE
ป ร ะ ก อ บ ด้ ว ย แ อ ต ต ริ บิ ว ต์ empNo, empName, position, sex, birthdate, salay แ ล ะ
branchNo ซึ่งทั้งสองตารางจะมีการเชื่อมโยงความสัมพันธ์ผ่านแอตตริบิวต์ branchNo
โดเมน (Domain)
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
โดเมนจัดเป็นลักษณะที่มีประสิทธิภาพอย่างมากของแบบจาลองเชิงสั มพันธ์ โดยทุกๆ แอตต
ริบิวต์ในรีเลชันจะถูกกาหนดให้อยู่ในโดเมน ซึ่งรายละเอียดของโดเมนอาจแตกต่างกันในแต่ละแอตตริ
บิวต์ ในขณะที่แต่ละแอตตริบิวต์อาจถูกกาหนดด้วยโดเมนเดียวกัน รูปที่ 2.10 แสดงถึงโดเมนสาหรับ
บางแอตตริ บิ ว ต์ บ นรี เลชั น BRANCH และ EMPLOYEE โดยแอตตริบิ ว ต์ branchNo ถู ก ก าหนด
โดเมนภายใต้เงื่อนไขว่า “รหัสสาขาจะต้องอยู่ในช่วงระหว่าง B001 – B999” ซึ่งหมายความว่ารหัส
สาขานี้ จะต้องเป็ น ค่าที่อยู่ ในช่วงที่กาหนดเท่านั้น ในขณะที่แอตตริบิวต์ sex ได้ถูกกาหนดโดเมน
ภายใต้เงื่อนไขว่า “รหัวเพศจะต้องเป็นค่า M หรือ F เท่านั้น” สาหรับแนวความคิดโดเมนยังอนุญาต
ให้ผู้ใช้กาหนดขึ้นมา เพื่อหลีกเลี่ยงการป้อนข้อมูลผิดพลาดได้เช่นนั้น แต่อย่างไรก็ตาม โดเมนก็ใช่ว่า
จะเหมาะกับการนาไปใช้กับทุกๆ แอตตริบิวต์ เพราะการกาหนดโดเมนให้กับค่าข้อมูลในบางกรณีแลดู
ไม่เหมาะสม เช่น ชื่อถนน เบอร์โทรศัพท์ ซึ่งเป็นสิ่ งที่ยากต่อการกาหนดโดเมนให้ กับแอตตริบิว ต์
เหล่านั้นได้อย่างเฉพาะเจาะจง จึงทาได้แค่เพียงกาหนดโดเมนว่าให้กรอกข้อความที่มีความยาวตามที่
กาหนดไว้เท่านั้น โดยตัวอย่างการกาหนดโดเมนให้กับรีเลชันแสดงไว้ดังรูปที่ 2.10
ดร.สิทธิชัย ชูสาโรง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
ภาพที่ 2. 9 ตัวอย่างรีเลชัน BRANCH และ EMPLOYEE
ดร
.สิท
ธิช
ัย
52
ภาพที่ 2. 10 ตัวอย่างการกาหนดโดเมนของรีเลชัน BRANCH และ EMPLOYEE (โอภาส เอี่ยมสิริวงศ์, 2558)
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 2 แบบจาลองข้อมูล
53
ทัปเพิล (Tuple)
street
143 ถ.วิภาวดีรังสิต
ดีกรี (Degree)
City
กรุงเทพ
Postcode
10110
ยั น
เร ศ
วร
BranchNo
B003
(20
1
6)
สมาชิกของรีเลชันก็คือแถว แต่ละแถวในรีเลชันจะเรียกเรคอร์ดหรือทัปเพิล ครั้นเมื่อ
พิจารณารีเลชัน BRANCH จะพบว่าแต่ละแถวได้บรรจุข้อมูลไว้ 4 ค่าด้วยกัน โดยทัปเพิลของภาษา
003 จะประกอบด้วยข้อมูลดังนี้
คำร์ดินัลลิตี้ (Cardinality)
ยาล
จาก รีเลชัน BRANCH จะมีอยู่ 4 แอตตริบิวต์ หรือเรียกว่ามี 4 ดีกรี ซึ่งหมายความว่าในแต่
ละแถวของตาราง BRANCH จะประกอบไปด้วย 4 ดีกรีบรรจุค่าข้อมูล 4 ค่าด้วยกัน
มห
าวทิ
ในทางตรงกันข้าม จานวนทัปเพิลจะเรียกว่าคาร์ดินัลลิตี้ของรีเลชัน ซึ่งจานวนคาร์ดินัลลิตี้
สามารถเปลี่ยนแปลงได้จากการเพิ่มหรือลบทัปเพิลในรีเลชันนั้นๆ
2.5 แบบจำลองเชิงสัมพันธ์ (The Relation Model)
ชูส
ำโร
ง
แบบจ าลองเชิ ง สั ม พั น ธ์ เป็ น ผลงานวิ จั ย ของ Dr. E.F. Codd ที่ ถู ก น ามาเผยแพร่ เมื่ อ ปี
ค.ศ.1970 ในหั วข้อ เรื่อง “A Relation model of data for large shared data banks” ซึ่ง
ผลงานวิจัยนี้เอง ที่ทาให้มีการนาไปพัฒนาเป็นแบบจาลองเชิงสัมพันธ์จนได้รับความนิยมจนถึงปัจจุบัน
ดร
.สิท
ธิช
ัย
ความจริงแล้ ว แบบจ าลองเชิงสัมพันธ์ ตั้งอยู่บนสองแนวความคิดด้วยกันคือ รีเลชันและ
ตาราง ซึ่งทั้งสองมีความหมายที่แตกต่างกัน แต่ก็มีความเกี่ยวข้องกันอย่างใกล้ชิด กล่าวคือ แนวคิด
ของค าว่ า รี เลชั น (Relation) นั้ น แลดู มี รู ป แบบที่ เป็ น ทางการมากกว่ า เพราะสื บ สานมาจาก
แนวความคิด ทางคณิ ตศาสตร์ ในเรื่องทฤษฎี ความสั ม พั น ธ์ข องเขต ในขณะที่แ นวคิ ดของ ตำรำง
(Table) นั้นแลดูง่ายเนื่องจากมีมโนภาพในตัวเองซึ่งก็คือตารางสองมิติที่ประกอบไปด้วยแถวและ
คอลัมน์ จึงทาให้ทุกวันนี้ มักใช้คาว่า “ตาราง”เป็นตัวแทนในการนาเสนอข้อมูล เนื่องจากผู้ใช้มองเห็น
ภาพได้ง่ายกว่า ทาให้สามารถน าไปสื่อสารได้สะดวก ดังนั้น ในเรื่องราวของฐานข้อมูลเชิงสัมพันธ์
ผู้อ่านจึงมักพบเห็นคาว่า “รีเลชัน” และ “ตาราง” ที่ถูกนามาใช้อ้างอิงเสมอ ซึ่งสองคานั้นสามารถใช้
แทนความหมายเดียวกันได้
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ยั น
เร ศ
วร
ดังนั้นผลคูรคาร์ทีเชียน (Cartesian Product) ของทั้งสองเซต สามารถเขียนได้เป็น
(20
1
6)
เพื่อให้ได้เข้าใจความหมายที่แท้จริงของคาว่า “รีเลชัน” เราจึงขอทบทวนแนวคิดบางอย่าง
จากทฤษฎีคณิ ตศาสตร์เชิงสัมพัน ธ์ (Mathematical Relations) ตัวอย่างเช่น สมมุติว่ามีเซตอยู่ 2
เซต ด้วยกันคือ D1 และ D2 โดยเซตทั้งสองประกอบด้วยสมาชิกดังต่อไปนี้
ยาล
ซับเซตใดๆของผลคูณคาร์ทีเชียนก็คือ รีเลชัน ตัวอย่างเช่น หากต้องการสร้างความสัมพันธ์ของ R
ตามนี้คือ
ชูส
ำโร
ง
มห
าวทิ
เราอาจจะต้องระบุคู่ลาดับ (Ordered Pairs) ที่อยู่ในรีเลชัน ด้วยในเงื่อนไขบางอย่างเพื่อให้
ได้มาซึ่งผลลัพธ์ตามที่ต้องการ โดยสามารถสังเกตได้จากคู่ลาดับแต่ละคู่ โดยเฉพาะอิลิเมนต์ตัวที่สอง
ของแต่ละคู่แต่ละคู่ลาดับจะมีค่าเท่ากับ 1 ดังนั้นจึงต้องมีการสร้างเงื่อนไขเพื่อให้ได้มาซึ่งความสัมพันธ์
ดังกล่าว ด้วยการเขียนรีเลชัน R ดังต่อไปนี้
ผลลัพธ์ที่ได้คือ R = {(2,1),(4,1)} ตามที่ต้องการ และในทานองเดียวกัน จากสมาชิกต่างๆ
ของเซตเดียวกันนี้ หากต้องการรีเลชัน s ที่อิลิเมนต์ตัวแรก มีค่าเป็นสองเท่าของอิลิเมนต์ตัวที่สอง ก็
สามารถเขียนรีเลชัน s ได้ดังนี้
ดร
.สิท
ธิช
ัย
54
ก็จะได้ผลลัพธ์ ดังรีเลชันต่อไปนี้
จะพบว่ามีเพียงคู่ลาดับเดียวเท่านั้นในผลคูณคาร์ทีเชียนที่ตรงตามเงื่อนไข คราวนี้เราลองมาขยาย
ความคิดของรีเลชันจากเซตสามชุด อันประกอบด้วย D1,D2 และ D3 ซึ่งผลคูณคาร์ทีเชียนของเซตทั้ง
สามจะเขียนได้เป็น D1 * D2 * D3 โดยสมมุติว่าได้กาหนดให้แต่ละเซตมีสมาชิกดังต่อไปนี้
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
55
6)
บทที่ 2 แบบจาลองข้อมูล
ยาล
และโดยปกติ มักจะเขียนในรูปแบบดังนี้
ยั น
เร ศ
วร
ผลคูณคาร์ทีเชียนก็จะเขียนนิยามได้ดังนี้
(20
1
โดยมีซับเซตใดๆ ของลาดับทั้งสาม (Ordered Triples) ก็คือรีเลชัน เราจึงสามารถขยายเซตทั้งสาม
และกาหนดความสัมพันธ์บน n โดเมน โดยที่ D1,D2,…Dn คือ n เซต ดังนั้น
ทั้งนี้เซตใดๆของ n ทัปเพิลจากผลคูณคาร์ทีเชียนก็คือรีเลชัน บน n เซต และต้องเข้าใจว่า ในการกาหนด
มห
าวทิ
ความสัมพันธ์เหล่านี้ เราจึงต้องระบุชื่อเซตหรือโดเมน (Domains) ตามที่เราเลือกค่าไว้
2.6 ฐำนข้อมูลเชิงสัมพันธ์ (Database Relations)
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
ฐานข้อมูลเชิงสัมพันธ์ประกอบด้วยรีเลชันต่างๆที่ได้รับการผูกความสัมพันธ์ระหว่างตารางไว้
อย่างเหมาะสม ภายหลังจากการเรียนรู้โครงสร้างข้อมูลเชิงสัมพันธ์แล้ว จะพบว่า ศัพท์เทคนิคที่
นามาใช้เกี่ยวกับฐานข้อมูล จะมีชื่อเรียกแตกต่างไปจากศัพท์พื้นฐานที่เราคุ้นเคยกัน แต่ก็สามารถใช้
แทนความหมายเดียวกันได้ เช่น แต่ละแถวของรีเลชันจะเรียกว่า “Tuple” ซึ่งก็คือ “Row” หรือ
“Record” นั่นเอง ในขณะที่แต่ละสดมภ์ จะเรียกว่า “Column” หรือ “Attribute” ซึ่งก็คือ
“Field” นั่นเอง
ภาพที่ 2. 11 ศัพท์เทคนิคต่างๆ ทีใ่ ช้ในฐานข้อมูล
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ยั น
เร ศ
วร
(20
1
กาหนดให้ A1,A2,…An คือแอตตริบิวท์ที่มาพร้อมกับโดเมน D1,D2,…Dn แล้วเซต {A1 : D1
, A2 : D2 , … An : Dn} คือรีเลชันสคีมา โดยรีเลชัน R ที่ถูกนิยามขึ้นจากรีเลชันสคีมา S ก็คือเซตของ
การแปลงรูปจากชื่อแอตตริบิวต์กับโดเมนที่เกี่ยวข้อง ดังนั้น รีเลชัน R ก็คือ เซตของ n ทัปเพิล
6)
จากแนวคิดที่กล่าวไว้ข้างต้น เมื่อนาไปประยุกต์กับฐานข้อมูล เราจึงสามารถนิยามรีเลชัน
สคีมา ตามรายละเอียดดังนี้
ยาล
แต่ละอิลิเมนต์ใน n ทัปเพิลประกอบด้วยแอตตริบิวต์พร้อมค่าที่บรรจุอยู่ในแต่ละแอตตริบิวต์
ซึ่งโดยปกติถ้าเราเขียนรีเลชันออกมาในรุปแบบของตาราง เราจะกาหนดชื่อแอตตริบิวต์ลงในแต่ละ
คอลั มน์ และแต่ล ะแถวก็คือทั ป เพิล ซึ่งเป็ น ไปในรูป แบบ (d1,d2,…dn) ซึ่ งแต่ล ะค่าจะเป็น ไปตาม
โดเมนที่กาหนดไว้อย่างเหมาะสม และด้วยวิธีการดังกล่าวนี้เอง เราจึงสามารถคิดค้นความสัมพันธ์ใน
แบบจาลองเชิงสัมพันธ์ทานองเดียวกันกับซับเซตใดๆของผลคูณคาร์ทีเชียนของโดเมนของแอตตริบิวต์
ดังนั้นตารางจึงเป็นเพียงตัวแทนกายภาพของความสัมพันธ์ดังกล่าว
ชูส
ำโร
ง
มห
าวทิ
ตัวอย่างที่เราจะกล่าวถึงดังต่อไปนี้ จะอ้างอิงถึงรีเลชัน BRANCH จากรูปที่ 3.9ที่ผ่านมา ซึ่ง
ประกอบด้วยแอตตริบิวต์ branchNo , street,city and postcode โดยค่าที่บรรจุลงในแต่ละแอตต
ริบิวต์จะเป็นไปตามโดเมนที่กาหนด ทั้งนี้รีเลชัน BRANCH คือซับเซตใดๆ ของผลคูณคาร์ทีเชียนของ
โดเมน และต่อไปนี้คือสคีมาของทัปเพิลหนึ่งๆ ที่บรรจุอยู่ในตารางซึ่งในที่นี้เป็นข้อมูลของรหัส B005
ดร
.สิท
ธิช
ัย
56
ดังนั้นถ้า A1 , A2 , .. An คือ แอตตริบิวต์
R = (A1,A2,..An) คือ รีเลชันสคีมา
ก็จะได้
BRANCH-SCHEMA = ( branchNo,street,city,postcode)
และให้ r(R) รีเลชันบนรีเลชันสคีมา R
ก็จะได้
BRANCH (BRANCH-SCHEMA)
และท้ายสุด เราก็สามารถเขียนรีเลชันสคีมาได้ในรูปแบบดังนี้
BRANCH( branchNo,street,city,postcode)
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 2 แบบจาลองข้อมูล
57
(20
1
6)
ฐานข้อมูลเชิงสัมพันธ์ประกอบด้วยรีเลชันต่างๆ ที่ได้รับการจัดรูปแบบให้เป็นบรรทัดฐาน
(Normalization) โดยสคีมาบางส่วนของฐานข้อมูล DreamHome ที่นามาใช้กรณีศึกษาในหนังสือ
เล่มนี้ ได้แสดงไว้ในกรณีศึกษาที่ 3.12 แต่อย่างไรก็ตาม ก่อนที่จะเข้าสู่รายละเอียดดังกล่าว เรา
สามารถทาความเข้าใจถึงภูมิหลังของบริษัท DreamHome กันเสียก่อน
ยั น
เร ศ
วร
DreamHome เป็นบริษัททาธุรกิจบริการบ้านเช่าเพื่อพักอาศัย โดยทางบริษัทจะทาหน้าที่เป็นตัวแทน
บริการบ้านเช่าเพื่อการพักอาศัยให้แก่ลูกค้า โดยมีบ้านพักกระจายให้ เช่าอยู่ตามจังหวัดต่างๆ ทั่ว
ประเทศ
มห
าวทิ
ยาล
DreamHome ได้เปิดสานักงานตามสาขาต่างๆ กระจายอยู่ทั่วภูมิภาคของประเทศไทย โดยบ้านเช่า
เหล่านี้เป็นของเหล่าเจ้าบ้านตามจังหวัดต่างๆ ที่ได้นาบ้านของตนเองเข้าร่วมโครงการกับทางบริษัท
โดยมอบหมายสิทธิ์ให้ DreamHome เป็นผู้ดูแลจัดการ ( เจ้าของบ้านจะได้รับผลตอบแทนตามที่ได้
ตกลงไว้ในสัญญา) ดังนั้นลูกค้ารายใดก็ตามที่ต้องการบ้านเช่า ก็เพียงติดต่อเข้ามายังสานักงานสาขา
ใกล้บ้าน แล้วแจ้งความจานงต่อเจ้าหน้าที่ว่าต้องการบ้านเช่าเพื่อพักอาศัยในจังหวัดใด เป็นบ้านพัก
แบบไหน งบประมาณค่ าเช่าต่อวันเท่าไร จากนั้น ทางเจ้าหน้าที่ก็จะค้นหาพร้อมแจ้งรายละเอียด
ข้อมูลต่างๆ เกี่ยวกับบ้านพักอาศัยให้ลูกค้าทราบ เพื่อให้ลูกค้านาไปประกอบการพิจารณาเพื่อการเช่า
พักอาศัยต่อไป
ชูส
ำโร
ง
และต่อไปนี้คือรีเลชันสคีมาเพียงบางส่วนของฐานข้อมูลเชิงสัมพันธ์ของบริษัท DreamHome โดย
แอดตริบิวต์ที่ขีดเส้นใต้หมายถึงแอตตริบิวต์ที่ถูกกาหนดให้เป็นคีย์หลัก
ดร
.สิท
ธิช
ัย
BRANCH
สาขา
EMPLOYEE
พนักงาน
PROPERTY_FOR_RENT
บ้านเช่า
CLIENT
ลูกค้า
PRIVATE_OWNER
เจ้าของบ้านเช่า
VIEWING
รายการเยี่ยมชมบ้าน
(branchNo, street, city, postcode)
(รหัสสาขา, ถนน, จังหวัด, รหัสไปรษณีย)์
(empNo, empName, position, sex, birthdate, salary, branchNo)
(รหัสพนักงาน, ชื่อ, ตาแหน่ง, เพศ, วันเกิด, เงินเดือน, รหัสสาขา)
(propertyNo, street, city, postcode, type, rooms, rent, ownerNo, empNo,
branchNo)
(รหัสบ้านเช่า, ถนน, จังหวัด, รหัสไปรษณีย,์ ชนิดบ้าน, จานวนห้อง, ค่าเช่าต่อวัน, รหัส
เจ้าของบ้าน,รหัสพนักงาน,รหัสสาขา)
(clientNo, clientName, telNo, prefType, maxRent)
(รหัสลูกค้า, ชื่อ, เบอร์โทร, ชนิดบ้านที่ต้องการ, ค่าเช่าสูงสุดที่รับได้)
(ownerNo, ownerName, address, telNo)
(รหัสเจ้าของบ้าน, ชื่อ, ที่อยู่, เบอร์โทรศัพท์)
(clientNo, propertyNo, viewDate, comment)
(รหัสลูกค้า, รหัสบ้านเช่า, วันที่เยี่ยมชม, คาติชม)
ดร.สิทธิชัย ชูสาโรง
(20
1
คือสาขาต่างๆ ของบริษัท DreamHome
คือพนักงานของบริษัท
คือบ้านเช่า
คือลูกค้า
คือเจ้าของบ้านเช่า
คือรายละเอียดของลูกค้าที่เข้ามาเยี่ยมชมบ้านพร้อมคาแนะนา
ติชม
ยั น
เร ศ
วร
โดยที่
BRANCH
EMPLOYEE
PROPERTY_FOR_RENT
CLIENT
PRIVATE_OWNER
VIEWING
street
21 ถ.ห้วยแก้ว
city
เชียงใหม่
postcode
50300
B007
56 ถ.พหลโยธิน
พิษณุโลก
65150
B003
340 ถ.มอนอ
สุโขทัย
B004
212 ถ.ริมกว๊าน
พะเยา
B002
15 ถ.แสนตอ
64000
มห
าวทิ
56000
อุตรดิตถ์
ชูส
ำโร
ง
empNo
ยาล
BRANCH
branchNo
B005
EMPLOYEE
53110
empName
position
sex
birthDate
salary
branchNo
สิทธิชยั ชูสาโรง
ผู้ช่วย
M
21/09/2524
9000
B005
ตะวัน ฉายแสง
ผู้จดั การ
M
28/02/2523
30000
B007
SA09
เตชิน มามาหิต
ผู้ช่วย
M
05/02/2558
9000
B003
SL37
ซาเรอิน คริ สเตรี ยน
ผู้ช่วย
F
02/09/2524
12000
B003
SG14
อุไร ใจดี
ซูเปอร์ ไวเซอร์
F
08/02/2505
18000
B002
SG05
แดง แรงฤทธิ์
ผู้จดั การ
M
17/22/2498
24000
B003
SL41
SL21
6)
เอกสารประอบการสอน รายวิชา 104333
ดร
.สิท
ธิช
ัย
58
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 2 แบบจาลองข้อมูล
59
PROPERTY_FOR_RENT
proper
tyNo
Street
City
post
code
type
rooms
rent
PA14
56 ถ.พหลโยธิน
พิษณุโลก
65000
บ้าน
6
650
CO46
SA09
PL94
21 ถ.ห้วยแก้ว
เชียงใหม่
50310
อพาร์เมนต์
4
400
CO87
SL41
PG04
3 ถ.พ่อขุน
สุโขทัย
64000
อพาร์เมนต์
3
350
CO40
PG36
45 ถ.แม่ยม
สุโขทัย
64110
อพาร์เมนต์
3
375
CO93
PG21
68 ถ.ตะเพา
สุโขทัย
64120
บ้าน
5
600
CO87
SG37
B003
PG16
21 ถ.ท่านาง
สุโขทัย
64130
อพาร์เมนต์
4
450
CO93
SG14
B003
prefType
maxRent
CR76
ยามาดะ มิเอะ
02-1112432
อพาร์ตเมนต์
425
CR56
คากะวะ โอเบะ
081-4322435
อพาร์ตเมนต์
350
CR74
นางามะ อาเมะ
091-4567812
บ้าน
750
098-1239876
อพาร์ตเมนต์
600
มห
าวทิ
telNo
ชูส
ำโร
ง
6)
(20
1
SG37
ClientName
ชิโรอิ จุนโกะ
B007
B005
B003
clientNo
CR62
branchNo
B003
ยั น
เร ศ
วร
ยาล
CLIENT
ownerNo empNo
ดร
.สิท
ธิช
ัย
PRIVATE_OWNER
ownerNo
ownerName
address
telNo
CO46
อิเคดะ ซูจิ
พิษณุโลก
098-1236543
CO87
นาระฮิโตะ โยชิดะ
กรุงเทพฯ
099-5551123
CO40
นากามุระ ชิโร่
กรุงเทพฯ
087-6622441
CO93
มิซาเอะ เยบิสึ
กรุงเทพฯ
099-9879876
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
propertyNo
viewDate
Comment
CR56
PA14
21/09/2558
พื้นที่ขนาดเล็ก
CR76
PG04
02/09/2558
ระยะทางไกลเกิน
CR56
PG04
24/10/2558
CR62
PA14
28/10/2558
CR56
PG36
31/10/2558
(20
1
clientNo
6)
VIEWING
ยาล
ยั น
เร ศ
วร
ไม่มีห้องนั่งเล่น
มห
าวทิ
2.7 คุณสมบัติของรีเลชัน (Properties of Relations)
คุณสมบัติของรีเลชัน ประกอบด้วย
ชูส
ำโร
ง
1. รีเลชันต้องมีชื่อกากับ และแต่ละรีเลชันต้องมีชื่อแตกต่างกัน ซ้ากันไม่ได้
2. แต่ละแอตตริบิวต์ของรีเลชันจะบรรจุค่าเพียงค่าเดียว (Atomic) กล่าวคือ ค่าที่บรรจุนั้นจะไม่
สามารถแบ่งย่อยได้อีก
3. แต่ละแอตตริบิวต์ในรีเลชันนั้นๆ ต้องมีชื่อที่แตกต่างกัน จะมีชื่อแอตตริบิวต์ซ้ากันได้
4. ค่าต่างๆ ทั้งหมดที่บรรจุลงในแอตตริบิวต์หนึ่งๆ ต้องเป็นไปตามข้อกาหนดของโดเมนเดียวกัน
5. แต่ละทัปเพิลต้องมีข้อมูลแตกต่างกัน ซ้ากันไม่ได้
6. ลาดับของแต่ละแอตตริบิวต์ ไม่มีความสาคัญใดๆ
7. ในเชิงทฤษฎี การจัดเรียงลาดับของทัปเพิล ไม่มีความสาคัญใดๆ (แต่มุมมองเชิงปฏิบัติแล้ว
การจัดเรียงลาดับของทัปเพิลส่งผลต่อประสิทธิภาพในการเข้าถึงข้อมูล)
ดร
.สิท
ธิช
ัย
60
คีย์ (Keys)
ข้อมูลที่จัดเก็บอยู่ในฐานข้อมูลเชิงสัมพันธ์ จะถูกนาเสนอออกมาในรูปแบบของตาราง 2 มิติ
ที่ประกอบไปด้วยแถวและคอลัมน์ และด้วยคุณสมบัติของรีเลชันตามที่ได้กล่าวไว้แล้วในข้อที่ 5 คือ
“แต่ละทัปเพิลต้องมีข้อมูลแตกต่างกัน ซ้ากันไม่ได้ ” ดังนั้นจึงจาเป็นต้องมีการกาหนดแอตตริบิวต์
หรือกลุ่มของแอตตริบิวต์ที่เรียกว่า “คีย์” เพื่อนาไปใช้ระบุความเป็นเอกลักษณ์ (Uniquely) ของแต่
ละทัปเพิลได้ (คีย์จะซ้ากันไม่ได้) กล่าวคือ การกาหนดคีย์ให้กับรีเลชัน ทาให้เราสามารถนาคีย์เหล่านี้
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 2 แบบจาลองข้อมูล
61
ไประบุทัปเพิลในรีเลชันตามที่เราต้องการได้นั่นเอง โดยคีย์ที่ใช้งานในฐานข้อมูล ประกอบด้วยคีย์ชนิด
ต่างๆ ดังต่อไปนี้
6)
ซูเปอร์คีย์ (Superkey)
ยั น
เร ศ
วร
(20
1
ซูเปอร์คีย์ คือแอตตริบิวต์หรือกลุ่มของแอตตริบิวต์ที่ใช้ระบุถึงความเป็นเอกลักษณ์ในแต่ละ
ทัปเพิลของรีเลชันนั้นๆ ได้ ดังนั้น ในรีเลชันหนึ่งๆ จึงสามารถมีซูปเปอร์คีย์ได้หลายตัว ยกตัวอย่างเช่น
รีเลชัน EMPLOYEE ที่ประกอบไปด้วยแอตตริบิวต์ต่างๆ ดังต่อไปนี้
EMPLOYEE (empNo, empName, position)
และจากนิยามของซูเปอร์คีย์ เราจึงสามารถกาหนดซูเปอร์คีย์ให้กับรีเลชัน EMPLOYEE เพื่อใช้ระบุ
ความแตกต่างหรือความเป็นเอกลักษณ์ของแต่ละทัปเพิลได้ดังนี้
คีย์คู่แข่ง (Candidate Key: CK)
มห
าวทิ
ยาล
ในรีเลชันหนึ่งๆ อาจมีคีย์คู่แข่งได้หลายตัว โดยคีย์คู่แข่งก็คือซูเปอร์คีย์ที่มีขนาดเล็กที่สุด ที่
สามารถระบุความแตกต่างในแต่ละทัปเพิลรีเลชันได้ กล่าวคือซูเปอร์คีย์ที่ไม่มีซับเซตของตัวเองที่
นามาใช้เป็นซูเปอร์คีย์นั่นเอง ดังนั้น กลุ่มของแอตตริบิวต์ (empNo, empName) คีย์เหล่านี้จึงไม่ถือ
ว่าเป็นคีย์คู่แข่งเนื่องจากมีซับเซตเป็นคีย์คู่แข่ง ดังนั้น รีเลชัน EMPLOYEE จึงมีแอตตริบิวต์ที่เหลือคือ
empNo และ empName ที่สามารถนามาใช้เป็นคีย์คู่แข่งได้
ชูส
ำโร
ง
คีย์หลัก (Primary Key: PK)
ดร
.สิท
ธิช
ัย
คีย์หลักคือคีย์คู่แข่งที่ถูกคัดเลือกให้เป็นคีย์หลัก เพื่อนาไปอ้างอิงความเป็นเอกลักษณ์ของแต่
ละทั ป เพิ ล ในรีเลชัน นั้ น ๆได้ คีย์ ห ลั กต้ องไม่ บรรจุค่ าว่าง (Null) โดยในที่ นี้ได้คัดเลื อกแอตตริบิ ว ต์
empNo เป็ น คี ย์ ห ลั ก ดั งนั้ น คี ย์ คู่ แ ข่ งที่ ไม่ ได้ ผ่ า นการคั ด เลื อ ก ก็ จะเรีย กว่า คี ย์ ร อง (Aternate
Key/Secondary Key) ซึ่งคีย์รองเมื่อนาไปค้นหาข้อมูลจากความสัมพันธ์ อาจได้ทัป เพิลมากกว่า
หนึ่ ง เรคอร์ ด นั่ น เป็ น เพราะว่ าคี ย์ ร องนั้ น ไม่ มี ค วามเป็ น เอกลั ก ษณ์ ตั ว อย่ า งเช่ น ให้ แ อตตริ บิ ว ต์
empName เป็นคีย์รอง ดังนั้น ในตารางพนักงานอาจมีพนักงานที่มีชื่อเหมือนกันก็ได้
คีย์นอก (Foreign Key:FK)
คีย์ประกอบด้วยแอตตริบิวต์หรือกลุ่มของแอตตริบิวต์ในรีเลชันหนึ่งที่มีคุณสมบัติเป็นคีย์หลัก
และไปปรากฏในอีกรีเลชันหนึ่งเพื่อใช้สาหรับเชื่อมโยงระหว่างกัน คีย์นอกจัดเป็นคีย์ที่มีความสาคัญ
มากในฐานข้อมูลเชิงสัมพันธ์ เนื่ องจากเป็นคีย์ที่ถูกนาไปใช้เพื่อการเชื่อมโยงความสัมพันธ์ระหว่าง
ตาราง โดยพิจ ารณารูป ที่ 3.9 ที่ผ่านมา รีเลชัน BRANCH จะมีคีย์หลั กคือแอตตริบิวต์ branchNo
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
(20
1
นอกจากนี้ ยังมีคีย์ที่ประกอบด้วยกลุ่มของแอตตริบิวต์ ที่เรียกว่า คีย์รวม (Composite Key) ซึ่งคีย์
ดังกล่าวยังสามารถเรียกได้อีกหลายชื่อด้วยกัน เช่น Concatenated Key หรือ Compound Key
6)
ในขณะที่รีเลชัน EMPLOYEE จะมีแอตตริบิวต์ branchNo เช่นกัน แต่ถูกกาหนดเป็นคีย์นอกเพื่อใช้
เชื่อมโยงไปยังรีเลชัน BRANCH นั่นเอง
ยั น
เร ศ
วร
สรุปท้ำยบทที่ 2
แบบจำลองข้อมูล เป็นตัวแทนความต้องการข้อมูลที่จาเป็นขององค์กร เพื่อนามาสนับสนุน
กระบวนการทางธุรกิจภายในขอบเขตของระบบสารสนเทศในองค์กร ผ่านการนาเสนอภาพรวมของ
ข้อมูลที่เกี่ยวข้องพร้อมกาหนดความสัมพันธ์ระหว่างข้อมูล
ยาล
ส่วนประกอบของแบบจำลองข้อมูล แบ่งออกเป็น 3ส่วนด้วยกันคือ
ชูส
ำโร
ง
มห
าวทิ
1. ส่วนโครงสร้าง
2. ส่วนปรับปรุง
3. ส่วนกฎความคงสภาพ
ประเภทของแบบจำลองข้อมูล แบ่งออกเป็น 2 ประเภทด้วยกันคือ
1. แบบจาลองระดับแนวคิด
2. แบบจาลองระดับพัฒนา
กำรสร้ำงแบบจำลองข้อมูล เกี่ยวข้องกับเอ็นติตี้ แอตตริบิวต์ ความสัมพันธ์ และข้อบังคับ
ความสัม
ความสัมพันธ์ ถูกนามาใช้เพื่อกาหนดความสัมพันธ์ระหว่างเอ็นติตี้ โดยจะมีความสัมพันธ์อยู่ 3 ชนิด
ด้วยกันคือ ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (1:1), ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (1:M) และ
ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (M:N)
ดร
.สิท
ธิช
ัย
62
แบบจำลองฐำนข้อมูล ประกอบด้วย
1. แบบจาลองฐานข้อมูลลาดับชั้น
2. แบบจาลองฐานข้อมูลเครือข่าย
3. แบบจาลองฐานข้อมูลเชิงสัมพันธ์
4. แบบจาลองฐานข้อมูลเชิงวัตถุ
5. แบบจาลองฐานข้อมูลหลายมิติ
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 2 แบบจาลองข้อมูล
63
6)
โครงสร้ำงข้อมูลเชิงสัมพันธ์ ประกอบด้วย
1. รีเลชัน
2. แอตตริบิวต์
3. โนเมน
4. ทัปเพิล
5. ดีกรี
6. คาร์ดินัลลิตี้
7. ฐานข้อมูลเชิงสัมพันธ์
ยาล
ยั น
เร ศ
วร
(20
1
ระบบฐำนข้อมูลเชิงสัมพันธ์ (Relational Database) เป็นฐานข้อมูลที่ใช้โมเดลเชิงสัมพันธ์
(Relational Database Model) ซึ่งผู้คิดค้นโมเดลเชิงสัมพันธ์นี้คือ Dr. E.F. Codd โดยใช้หลัก
พื้นฐานทางคณิตศาสตร์ เนื่องด้วยแนวคิดของแบบจาลองแบบนี้มีลักษณะที่คนใช้กันทั่วกล่าวคือมีการ
เก็บเป็นตาราง ทาให้ง่ายต่อการเข้าใจและการประยุกต์ใช้งาน ด้วยเหตุนี้ ระบบฐานข้อมูลแบบนี้จึงที่
ได้รับความนิยมมากที่สุด ในแง่ของ entity แบบจาลองแบบนี้คือ แฟ้มข้อมูลในรูปตาราง และ
attribute ก็เปรียบเหมือนเขตข้อมูล ส่วนความสัมพันธ์คือความสัมพันธ์ระหว่าง entity
ฐำนข้อมูลเชิงสัมพันธ์ คือ การเก็บข้อมูลในรูปของตาราง (Table) หลายๆตารางที่มี
ความสัมพันธ์กัน ในแต่ละตารางแบ่งออกเป็นแถวๆ และในแต่ละแถวจะแบ่งเป็นคอลัมน์ (Column)
ในทางทฤษฎีจะมีคาศัพท์เฉพาะแตกต่างออกไป
เนื่องจากแบบจาลองแบบนี้เกิดจากทฤษฎีทาง
คณิตศาสตร์เรื่องเซ็ท (Set) ดังนั้น เราจะมีคาศัพท์เฉพาะดังตารางที่ 2.1
มห
าวทิ
ตารางที่ 2. 1 คาศัพท์เฉพาะที่ใช้ในระบบฐานข้อมูลเชิงสัมพันธ์
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
ศัพท์เฉพำะ
รีเลชั่น (Relation)
ทูเปิล (Tuple)
แอททริบิวท์ (Attribute)
คาร์ดินัลลิติ้ (Cardinality)
ดีกรี (Degree)
คีย์หลัก (Primary key)
โดเมน (Domain)
ศัพท์ทั่วไป
ตาราง (Table)
แถว (Row) หรือ เรคคอร์ด (Record) หรือ ระเบียน
คอลัมน์ (Column) หรือฟิลด์ (Field)
จานวนแถว (Number of rows)
จานวนแอททริบิวท์ (Number of attribute)
ค่าเอกลักษณ์ (Unique identifier)
ขอบข่ายของค่าของข้อมูล (Pool of legal values)
ส่วนต่างๆ ของตาราง (Table) หรือ รีเลชั่น (Relation)
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
(20
1
รีเลชัน เป็นคาที่สืบสานมาจากแนวคิดทางคณิตศาสตร์ในเรื่องทฤษฎีความสัมพันธ์ของเซต
6)
ผลิตภัณฑ์ชุดซอฟต์แวร์จัดการฐานข้อมูล ผู้ผลิตจะต้องสร้างชุดซอฟต์แวร์เหล่านี้ให้เป็นไป
ตามกฎ 12 ข้อบนฐานข้อมูลเชิงสัมพันธ์ที่ Codd ได้บัญญัติเอาไว้ เพื่อให้ตรงตามมาตรฐานขั้นต่า
ตำรำง คือตารางสองมิติที่ประกอบไปด้วยแถวและคอลัมน์ที่ผู้ใช้ทั่วไปสามารถมองเห็นภาพ
ได้อย่างเข้าใจ ดังนั้น จึงมักอ้างอิงคาว่าตารางแทนรีเลชัน ซึ่งสามารถใช้แทนความหมายเดียวกันได้
มห
าวทิ
ยาล
ยั น
เร ศ
วร
คุณสมบัติของรีเลชัน ประกอบด้วย
1. รีเลชันต้องมีชื่อกากับ และแต่ละรีเลชันต้องมีชื่อแตกต่างกัน ซ้ากันไม่ได้
2. แต่ละแอตตริบิวต์ของรีเลชันจะบรรจุค่าเพียงค่าเดีนส
3. แต่ละแอตตริบิวต์ในรีเลชันนั้นๆ ต้องมีชื่อแตกต่างกัน
4. ค่าต่างๆ ทั้งหมดที่บรรจุลงในแอตตริบิวต์หนึ่งๆ ต้องเป็นไปตามข้อกาหนดของโดเมนเดียวกัน
5. แต่ละทัปเพิลต้องมีข้อมูลแตกต่างกัน ซ้ากันไม่ได้
6. ลาดับของแต่ละแอตตริบิวต์ ไม่มีความสาคัญใดๆ
7. การจัดเรียงลาดับของทิปเพิล ไม่มีความสาคัญใด้ๆ
ซู เปอร์ คี ย์ (Superkey) คื อ แอตตริ บิ ว ต์ ห รือ กลุ่ ม ของแอตตริบิ ว ต์ ที่ ใช้ ร ะบุ ถึ งความเป็ น
เอกลักษณ์ในแต่ละทิปเพิปของรีเลชั้นนั้นๆ ได้
ชูส
ำโร
ง
คีย์คู่แข่ง (Candidate Key) คือซุปเปอร์คีย์ที่มีขนาดเล็กที่สุด ที่สามารถระบุความแตกต่าง
ในแต่ลพทัปเพิลบนรีเลชันได้ ซึ่งรีเลชันหนึ่งๆ สามารถมีคีย์แข่งได้หลายตัว
คีย์หลัก (Primary Key) คือคีย์คู่แข่งที่ถูกคัดเลือกให้เป็นคีย์หลัก เพื่อนาไปอ้างอิงความ
เป็นเอกลักษณ์ของแต่ละทับเพิลในรีเลชันนั้นๆ ได้
คีย์รอง (Alternate Key/Secondary Key ) คือคีย์คู่แข่งที่ไม่ได้ผ่านการคัดเลือกให้เป็น
คีย์หลัก ซึ่งเมื่อมีการนาคีย์รองไปค้นหาข้อมูลจากความสัมพันธ์ อาจะได้ทัปเพิลมากกว่าหนึ่งเรคอร์ด
ดร
.สิท
ธิช
ัย
64
คีย์นอก (Foreign Key : FK) คือแอตตริบิวต์หรือกลุ่มของแอตตริบิวต์ในรีเลชันหนึ่งที่ มี
คุณสมบัติเป็นคีย์หลัก และไปปรากฏในอีกรีเลชันหนึ่งเพื่อไปใช้สาหรับเชื่อมโยงระหว่างกัน คีย์นอก
จัดเป็นคีย์ที่มีความสาคัญมากในฐานข้อมูลเชิงสัมพันธ์ เนื่องจากคีย์ที่ถูกนามาไปใช้เพื่อการเชื่อมโยง
ความสัมพันธ์ระหว่างตาราง
คีย์รวม(Composite Key) คือคีย์ที่ประกอบด้วยกลุ่มของแอตตริบิวต์ ซึ่งยังสามารถเรียก
ได้อีกหลายชื่อด้วยกัน เช่น Concatenated Key หรือ Compound Key
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
วัตถุประสงค์การเรี ยนรู ้ (Learning
Objectives)
1.
บอกส่วนประกอบของแบบจำลอง E-R
และสัญลักษณ์ต่ำงๆที่นำมำใช้ เขียน
เข้ ำใจเทคนิคกำรสร้ ำงแผนภำพ E-R
3.
เรี ยนรู้กำรสร้ ำงแผนภำพE-R ผ่ำน
กรณีศึกษำ เพื่อฝึ กฝนกำรวิเครำะห์และ
(20
1
2.
6)
แผนภำพได้
สำมำรถสร้ ำงแผนภำพ E-R ได้ อย่ำง
ยั น
เร ศ
วร
ถูกต้ อง
ยาล
บทที่ 3
มห
าวทิ
แบบจำลอง E-R
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
(The Entity-Relationship Model)
เอกสารประอบการสอน รายวิชา 104333
ยั น
เร ศ
วร
(20
1
แผนภำพ E-R (The Entity-Relationship Diagram) ถูกนามาใช้เป็นตัวแทนของ
แบบจาลองเชิงแนวคิด เพื่อสื่อถึงเรื่องราวเกี่ยวกับข้อมูลและความสัมพันธ์ระหว่างข้อมูลบนระบบงาน
หนึ่งๆ โดยจุดประสงค์หลักของแบบจาลองชนิดนี้ก็คือ ต้องการสื่อความหมายตรงกันระหว่าง
ผู้ออกแบบกับผู้ใช้
ซึ่งก็ถูกตอบรับถึงการใช้งานเป็นอย่างดี
เนื่องจากเป็นแผนภาพี่ปราศจาก
รายละเอียดทางเทคนิคทาให้สื่อสารกับผู้ใช้ได้อย่างเข้าใจ
6)
ย้อนความกลับไปยังบทที่ 2 ที่ผ่านมา ได้กล่าวถึงแบบจาลองฐานข้อมูลชนิดต่างๆ และด้วย
เนื้อหาของบทนี้ที่มุ่งเน้นถึงแบบจาลองฐานข้อมูลเชิงสัมพันธ์เป็นหลัก ดังนั้น เครื่องมือที่นามา ใช้
ออกแบบฐานข้อมูลเชิงแนวความคิดภายใต้ระบบฐานข้อมูลเชิงสัมพันธ์ก็คือ แผนภาพ E-R
ยาล
การสร้างแผนภาพ E-R เป็นการออกแบบฐานข้อมูลด้วยวิธีบนลงล่าง (Top-Down
Approach) โดยเราจะเริ่มต้นสร้างแผนภาพจากการระบุข้อมูล (เอ็นติตี้) ที่สาคัญๆ และกาหนด
ความสัมพันธ์ระหว่างเอ็นติตี้ลงในแบบจาลอง
จากนั้นเราจะเพิ่มรายละเอียดให้กับแต่ละเอ็นติตี้
(แอตตริบิวต์) พร้อมกับข้อบังคับ (Constraintnts) ใดๆบนเอ็นติตี้, ความสัมพันธ์ และแอตตริบิวต์
มห
าวทิ
3.1 ส่วนประกอบของแบบจำลอง E-R (Component of The Entity-Relationship
Model)
ชูส
ำโร
ง
ปี ค.ศ. 1976 Peter Chen ได้พัฒนาแบบจาลอง E-R ขึ้นมาเพื่อใช้สาหรับออกแบบ
ฐานข้อมูล และนับจากนั้นเป็นต้นมา แผนภาพ E-R ก็นามาไปใช้งานอย่างกว้างขวาง โดยมีการพัฒนา
รูปแบบที่หลากหลาย แต่ยังคงตั้งอยู่บนพื้นฐานแนวความคิดเดียวกัน โดยในเบื้องต้นเราขอกล่าวถึง
แผนภาพ E-R แบบดั้งเดิมก่อน (Peter Chen Model) เนื่องจากเป็นระดับพื้นฐานที่ง่ายต่อการเรียนรู้
และทาความเข้าใจ
แผนภาพ E-R ถูกสร้างขึ้นด้วยสัญลักษณ์ต่างๆ ที่ประกอบรวมเข้าด้วยกันจนกลายมาเป็น
แบบจาลองขึ้นมาอันได้แก่ เอ็นติตี้ แอตตริบิวต์ ความสัมพันธ์ และข้อบังคับ ดังนั้น ก่อนที่เราจะสร้าง
แผนภาพนี้ได้ จาเป็นต้องเรียนรู้ถึงสัญลักษณ์ต่างๆ ที่เกี่ยวข้องก่อน
ดร
.สิท
ธิช
ัย
66
3.1.1 เอ็นติตี้ (Entity)
เอ็นติตี้คือสิ่งที่เราสนใจ เป็นได้ทั้งบุคคล สถานที่ วัตถุ เหตุการณ์ หรือแนวคิดต่างๆ ที่
ก่อให้เกิดกลุ่มของข้อมูลที่ต้องการ และต่อไปนี้เป็นตัวอย่างของเอ็นติตี้ต่างๆสัญลักษณ์เอ็นติตี้จะแทน
ด้วยรูปสี่เหลี่ยมผืนผ้าดังรูปที่ 3.1 ซึ่งประกอบด้วยเอ็นติตี้ EMPLOYEE และ BRANCH โดยเอ็นติตี้ทั้ง
สองจะถูกใช้เป็นตัวแทนของตารางหรือรีเลชันในฐานข้อมูล เพื่อบรรลุข้อมูลต่างๆ สาหรับกฎการตั้ง
ชื่อให้กับเอ็นติตี้ จะต้องใช้ “คานาม” และปกติมักจะเขียนด้วย “ตัวพิมพ์ใหญ่”
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 3 แบบจำลอง E-R
ภาพที่ 3.1 ตัวอย่างเอ็นติตี้พนักงาน (EMPLOYEE) และสาขา (BRANCH)
: EMPLOYEE, STUDENT, PATIENT
(พนักงาน, นักศึกษา, ผูป้ ่ วย)
สถานที่
: STORE, WAREHOUSE, STATE
(ร้านค้า, คลังสิ นค้า, สถานี)
: MACHINE, BUILDING, AUTOMOBILE
ยาล
วัตถุ
ยั น
เร ศ
วร
บุคคล
6)
BRANCH
(20
1
EMPLOYEE
มห
าวทิ
(เครื่ องจักร, อาคาร, เครื่ องยนต์)
เหตุการณ์
: SALE, REGISTRATION, RESERVATION
(การขาย, การลงทะเบียน, การจองห้องพัก)
: ACCOUNT, COURSE, WORE CENTER
ชูส
ำโร
ง
แนวคิด
67
ดร
.สิท
ธิช
ัย
(บัญชี , หลักสู ตร, ศูนย์การทางาน)
เอ็นติตี้ยังสามารถแบ่งออกเป็น 2 ประเภทด้วยกันคือ
Strong Entity
หรืออาจเรียกในอีกชื่อหนึ่งว่า Regular Entity เป็นเอ็นติตี้ที่มีคีย์หลักเป็นของตัวเอง (แอตตริ
บิวต์ที่ถูกกาหนดเป็นคีย์หลักเป็นแอตตริบิวต์ที่มีอยู่ในเอ็นติตี้นั้นๆอยู่แล้ว) จัดเป็นเอ็นติตี้ที่ไม่ขึ้นกับ
เอ็นติตี้ใด สัญลักษณ์ที่ใช้คือรูปสี่เหลี่ยมผืนผ้า
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
EMPLOYEE
ยั น
เร ศ
วร
(20
1
คือเอ็นติตี้แบบอ่อน ไม่มีคีย์หลักเป็นของตัวเอง และไม่สามารถเกิดขึ้นได้ตามลาพัง การ
กาหนดคีย์ให้กับเอ็นติตี้ชนิดนี้
จะต้องใช้แอตตริบิวต์จากเอ็นติตี้อื่นร่วมด้วยพร้อมกับคีย์หลักของ
Strong Entity โดยชีวิตของมันจะขึ้นอยู่กับเอ็นติตี้หลัก และจะถูกกาจัดออกไปเมื่อเอ็นติตี้หลักถูกลบ
สัญลักษณ์ที่ใช้คือรูปสี่เหลี่ยมผืนผ้าเช่นกัน แต่จะเป็นเส้นคู่
6)
Weak Entity
NEXT_OF_KIN
ภาพที่ 3.2 เปรียบเทียบเอ็นติตี้แบบ Strong และแบบ Weak
มห
าวทิ
ยาล
รูปที่ 3.2 เอ็นติตี้ EMPLOYEE (พนักงาน) เป็น Strong Entity ส่วนเอ็นติตี้ NEXT_OF_KIN
(ญาติ) เป็น Weak Entity ทั้งนี้ เอ็นติตี้ NEXT_OF_KIN จะไม่สามารถปรากฏอยู่บนแบบจาลองได้
หากปราศจากเอ็นติตี้ EMPLOYEE ซึ่งสามารถอธิบายได้ว่า พนักงานจะต้องระบุข้อมูลของญาติที่
สามารถติดต่อได้ ดังนั้น เอ็นติตี้ NEXT_OF_KIN จึงขึ้นอยู่กับเอ็นติตี้ EMPLOYEE ครั้นเมื่อเอ็นติตี้
EMPLOYEE ถูกลบออกไป เอ็นติตี้ NEXT_OF_KIN ก็จะถูกกาจัดออกไปด้วย
ชูส
ำโร
ง
3.1.2 แอตตริบิวต์ (Attributes)
แอตตริบิวต์คือคุณสมบัติของเอ็นติตี้ สัญลักษณ์คือรูปวงรี สาหรับแอตตริบิวต์ที่ถูกกาหนด
เป็นคีย์หลักจะขีดเส้นใต้กากับไว้ พิจารณารูปที่ 3.3 จะพบว่าเอ็นติตี้ EMPLOYEE ประกอบด้วยแอตต
ริบิวต์ empNo, empName และ position โดยกาหนดให้ empNo เป็นคีย์หลัก ซึ่งหากนาไปเขียน
ในรูปแบบของรีเลชันสคีมาก็สามารถเขียนดังนี้
ดร
.สิท
ธิช
ัย
68
EMPLOYEE (empNO, empName, position)
E
empName
position
empNo
EMPLOYEE
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
ภาพที่ 3.3 เอ็นติตี้
EMPLOYEE ประกอบด้วย
แอตตริบิวต์ empNo
(คีย์หลัก), empName
และ position
บทที่ 3 แบบจำลอง E-R
empName
empNo
position
empName
position
EMPLOYEE
(b)
ยั น
เร ศ
วร
(a)
6)
EMPLOYEE
(20
1
empNo
ภาพที่ 3.4 ตัวอย่างการเขียนแอตตริบิวต์แบบวงรีและสี่เหลี่ยม
(a) แอตตริบิวต์ที่อยู่ภายในสัญลักษณ์วงรี
มห
าวทิ
ยาล
(b) แอตตริบิวต์ที่อยู่ในสัญลักษณ์กล่องสี่เหลี่ยม
EMPLOYEE
EMPLOYEE
ชูส
ำโร
ง
EmpNo
empName
empNo
EMPLOYEE
position
ดร
.สิท
ธิช
ัย
(a)
69
(b)
(c)
ภาพที่ 3.5 การนาเสนอเอ็นติตี้แบบเต็มหรือแบบย่อ
(a) เอ็นติตี้ที่บรรจุแอตตริบิวต์ทุกตัว
(b) เอ็นติตี้ที่ระบุเพียงแอตตริบิวต์ที่ใช้เป็นคีย์หลัก
(c) เอ็นติตี้ที่แสดงเฉพาะชื่อเอ็นติตี้เท่านั้น
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
แอตตริบิวต์ยังสามารถแบ่งออกเป็นหลายชนิดด้วยกัน คือ
(20
1
เป็นการกาหนดขอบเขตค่าข้อมูลและชนิดของข้อมูลให้กับแอตตริบิวต์ กล่าวคือโดเมนจะเป็น
ตัวกาหนดถึงความเป็นไปได้ของข้อมูลในแอตตริบิวต์นั้นๆ ตัวอย่างแอตตริบิวต์โดเมนของแอตตริบิวต์
sex ค่าที่เป็นไปได้ก็คือ ‘M’ หรือ ‘F’ เป็นต้น
6)
Attribute Domain
ยั น
เร ศ
วร
Simple Attribute และ Composite Attribute
ชูส
ำโร
ง
มห
าวทิ
ยาล
Simple Attribute คือแอตตริบิวต์ที่มีองค์ประกอบเดียว ไม่สามารถแตกเป็นข้อมูลย่อยได้
อีก ตัวอย่างเช่น แอตตริบิวต์ age, sex และ salary ในบางครั้งเราสามารถเรียก Simple Attribute
ได้อีกชื่อหนึ่งว่า Atomic Attribute ในขณะที่ Composite Attribute เป็นแอตตริบิวต์ที่มี
องค์ประกอบอยู่หลายตัว มีข้อมูลย่อยหลายตัวภายในแอตตริบิวต์นั้น ตัวอย่างเช่น แอตตริบิวต์
address ที่ภายในประกอบด้วยแอตตริบิวต์ street, city และ postcode ดังรูปที่ 3.6(b)
ภาพที่ 3.6 เปรียบเทียบความแตกต่างระหว่าง Simple Attribute และ Composite Attribute
ดร
.สิท
ธิช
ัย
70
Single-Valued Attribute และ Multivalued Attribute
Single-Valued Attribute คือแอตตริบิวต์ที่บรรจุค่าเพียงค่าเดียว ตัวอย่างเช่น พนักงาน
ต้องทางานอยู่สาขาที่ตนสังกัด ดังนั้น แอตตริบิวต์ branchNo ในเอ็นติตี้ EMPLOYEE จึงสามารถ
นาไปอ้างอิงข้อมูลสาขาได้เพียงหนึ่งสาขาเท่านั้น แต่อย่างไรก็ตาม Single-Valued Attribute ไม่
จาเป็นต้องเป็น Simple Attribute เสมอไป ตัวอย่างเช่น รหัสสินค้าหมายเลข SE-08-02-189935
คือ Single-Valued Attribute แต่แท้จริงแล้วคือ Composite Attribute เพราะว่าสามารถแบ่งย่อย
ข้อมูลออกไปได้อีก โดยสมมติว่า SE แทนรหัสประเภทสินค้า, 08 แทนรหัสโรงงานที่ผลิตสินค้า, 02
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 3 แบบจำลอง E-R
71
ยาล
ยั น
เร ศ
วร
(20
1
6)
แทนรหัสคลังสินค้า และ 189935 คือเลขรหัสสินค้า เป็นต้น ในขณะที่ Multivalued Attribute คือ
แอตตริบิวต์ที่สามารถมีหลายค่าได้ ตัวอย่างเช่น พนักงานคนหนึ่งสามารถมีวุฒิการศึกษาได้หลาย
ระดับ หรือภายในครอบครัวหนึ่งสามารถมีเบอร์โทรศัพท์ได้หลายเบอร์ โดยสัญลักษณ์ Multivalued
Attribute นั้น เส้นวงรีจะเป็นคู่
มห
าวทิ
ภาพที่ 3.7 Single-Valued และ Multivalued Attribute
ชูส
ำโร
ง
แนวทางในการแก้ไขปัญหา Multivalued Attribute สามารถดาเนินการได้ 2 แนวทาง
ด้วยกัน โดยในที่นี้จะใช้แอตตริบิวต์ degree เป็นตัวอย่าง ซึ่งพนักงานแต่ละคนสามารถมีหลายวุฒิ
การศึกษา
ดร
.สิท
ธิช
ัย
ที่เอ็นติตี้หลัก ให้สร้างแอตตริบิวต์เพิ่มเติมขึ้นมาใหม่ เช่น bachelorDegree ใช้แทนวุฒิ
ปริญญาตรี, masterDegree ใช้แทนวุฒิปริญญาโท และ phdDegree ใช้แทนวุฒิปริญญา
เอก จึงสามารถเขียนใหม่ได้ดังรูปที่ 3.8
ภาพที่ 3.8 แสดงการแตก Multivalued Attribute ไปเป็นแอตตริบิวต์ใหม่
ดร.สิทธิชัย ชูสาโรง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
อย่างไรก็ตาม เมื่อพิจารณาเพียงผิวเผิน วิธีดังกล่าวดูเหมือนว่าเป็นแนวทางแก้ปัญหาได้ดี แต่หาก
พิจารณาในรายละเอียดแล้วจะพบความจริงว่า บางคนอาจจบวุฒิปริญญาตรีหลายใบก็ได้ นั้น
หมายความว่า กรณีดังกล่าวจะบันทึกวุฒิปริญญาตรีใบที่สองไม่ได้ ในขณะที่พนักงานที่จบวุฒิ
ปริญญาตรีเพียงวุฒิเดียว แอตตริบิวต์วุฒิการศึกษาระดับปริญญาโทและเอกก็จะเป็นค่าว่าง
ทาให้ สิ้นเปลืองเนื้อที่โดยใช่เหตุ
สร้างเอ็นติตี้ใหม่ขึ้นมาคือ EMP_DEGREE และกาหนดความสัมพันธ์ในรูปแบบ one-tomany ดังรูปที่ 3.9 นั่นหมายความว่า พนักงานหนึ่งคนสามารถมีวุฒิการศึกษาได้หลายระดับ
และจะจบปริญญากี่ใบก็ได้ กล่าวคือ สามารถบันทึกจานวนวุฒิการศึกษาต่างๆ ได้ตามความ
เป็นจริงของแต่ละบุคคล
6)
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
ภาพที่ 3.9 แสดงการแตก Multivalued Attribute ไปเป็นเอ็นติตี้ใหม่
Derived Attribute
คือแอตตริบิวต์ที่เกิดขึ้นจากการคานวณ (Computed Attribute) เช่น แอตตริบิวต์ age
(อายุ) ที่เกิดจากคานวณ โดยนาปีปัจจุบันมาหักลบด้วยปีเกิด ก็จะได้แอตตริบิวต์ age ขึ้นมา
สัญลักษณ์ของแอตตริบิวต์ชนิดนี้จะเป็นรูปวงรีที่เป็นเส้นประ
ดร
.สิท
ธิช
ัย
72
ภาพที่ 3.10 Derived Attribute (age) ที่เกิดจากการคานวณ
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 3 แบบจำลอง E-R
73
3.1.3 ควำมสัมพันธ์ (Relationship)
ยั น
เร ศ
วร
(20
1
6)
ความสัมพันธ์ในที่นี้ หมายถึงความสัมพันธ์ระหว่างเอ็นติตี้ โดยแต่ละความสัมพันธ์อาจระบุ
ชื่อไว้เพื่อสื่อความหมายให้เกิดความเข้าใจยิ่งขึ้น ซึ่งปกติจะใช้สัญลักษณ์สี่เหลี่ยมขนมเปียกปูน ( )
ที่ภายในจะระบุคากริยาไว้เพื่ออธิบายความสัมพันธ์ ตัวอย่างเช่น “อาจารย์ <สอน> หนังสือได้หลาย
วิชา” เป็นต้น
ยาล
ภาพที่ 3.11 การกาหนดความสัมพันธ์ระหว่างเอ็นติตี้
มห
าวทิ
นอกจากนี้แล้ว ความสัมพันธ์ยังเกี่ยวข้องกับ “ดีกรีของควำมสัมพันธ์ (Relationship
Degree)” ซึ่งเป็นตัวแสดงถึงจานวนเอ็นติตี้ที่มีความสัมพันธ์ระหว่างกัน โดยมีอยู่ 3 รูปแบบด้วยกัน
คือ
ควำมสัมพันธ์แบบยูนำรี (Unary Relationships)
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
เป็นความสัมพันธ์ระหว่างเอ็นติตี้เดียว ตัวอย่างเช่น “ผู้จัดการ <ดูแล> พนักงานที่อยู่ภายใต้
การควบคุมของเขาได้หลายคน” (ผู้จัดการก็คือพนักงานคนหนึ่ง) ซึ่งกรณีดังกล่าวจะเป็นความสัมพันธ์
ที่อยู่ภายใต้เอ็นติตี้เดียวกันในรูปแบบเจ้านายกับลูกน้องภายใต้เอ็นติตี้ EMPLOYEE ดังรูปที่ 3.12
สาหรับความสัมพันธ์แบบยูนารีนี้ก็คือ ความสัมพันธ์แบบรีเคอร์ชีพ (Recursive)
ภาพที่ 3.12 ควาสัมพันธ์แบบ Unary
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ยั น
เร ศ
วร
(20
1
ความสัมพันธ์ชนิดนี้ จะมีเอ็นติตี้ที่เกี่ยวข้องกัน 2 เอ็นติตี้ด้วยกัน ยังจัดเป็นความสัมพันธ์ที่
สามารถพบเห็นได้บ่อย ตัวอย่างเช่น “คณะ <ประกอบด้วย> หลายสาขา” ดังรูปที่ 3.13
6)
ควำมสัมพันธ์แบบไบนำรี (Binary Relationships)
ภาพที่ 3.13 ความสัมพันธ์แบบ Binary
ยาล
ควำมสัมพันธ์แบบเทอร์นำรี (Ternary RElationships)
ชูส
ำโร
ง
มห
าวทิ
เป็นความสัมพันธ์ที่มีเอ็นติตี้เข้ามาเกี่ยวข้อง 3 เอ็นติตี้ด้วยกัน ดังตัวอย่างรูปที่ 3.14
ดร
.สิท
ธิช
ัย
74
ภาพที่ 3.14 ความสัมพันธ์แบบ Ternay
จากรูปที่ 3.14 แต่ละเอ็นติตี้ ประกอบด้วย
แพทย์,ใบสั่งยา, ผู้ป่วย และ ยา
ซึ่งอธิบายได้ว่า
แพทย์หนึ่งคน <เขียน> ใบสั่งยาได้หลายรายการ
ผู้ป่วยหนึ่งคน <รับ> ใบสั่งยาได้หลายใบ
ใบสั่งยาหนึ่งใบ <ระบุ> ชื่อยาได้หลายชนิด
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 3 แบบจำลอง E-R
75
3.1.4 ข้อบังคับบนชนิดควำมสัมพันธ์ (Constraints on Relationship Types)
3.2 โครงสร้ำงข้อบังคับ (Structural Constraints)
(20
1
6)
ชนิดความสัมพันธ์ ปกติมักจะมีข้อบังคับบางอย่างเข้ามามีส่วนร่วมในการเป็นข้อจากัดในเรื่อง
ความสัมพันธ์ระหว่างเอ็นติตี้ ซึ่งรายละเอียดเหล่านี้จะขอกล่าวในหัวข้อถัดไป
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
ข้อบังคับในข้อมูลจะสะท้อนถึงข้อจากัดต่างๆ บนความสัมพันธ์ และใช้เป็นกฎเกณฑ์เพื่อมิให้
เกิดความพยายามฝ่าฝืนข้อบังคับที่สร้างขึ้น ซึ่งตามปกติข้องบังคับใดๆ สามารถเกิดขึ้นได้เสมอบนโลก
แห่งความเป็นจริง จึงกล่าวโดยสรุปว่า ข้อบังคับ (Constraints) เป็นกระบวนการนาความสัมพันธ์ละ
กฎเกณฑ์ทางธุรกิจ (Business Rules) มาบังคับใช้เพื่อเป็นเงื่อนไขการจัดเก็บข้อมูลในฐานข้อมูลให้
เป็นไปอย่างเหมาะสมและถูกต้อง ตัวอย่างเช่น
มหาวิทยาลัยแห่งหนึ่ง มีกฎข้อบังคับไว้ว่า อาจารย์ผู้สอนจะต้องสอนหนังสืออย่างน้อย 1 วิชา
และสอนได้ไม่เกิน 3 วิชา
นักศึกษาต้องลงทะเบียนเรียน 3 หน่วยกิตต่อภาคการศึกษา และไม่สามารถลงทะเบียนเรียน
เกิน 21 หน่วยกิตต่อภาคการศึกษา
ห้างสรรพสินค้าแห่งหนึ่ง ไม่อนุญาตให้พนักงานภายในห้างซื้อสินค้าจัดรายการ
สาขาของสานักงาน จะต้องมีพนักงานบรรจุอย่างน้อย 5 คน
สิ่งหล่านี้ล้วนถือเป็นกฎเกณฑ์ทางธุรกิจที่สามารถนามาปรับใช้กับระบบงานจริง ดังนั้น นัก
ออกแบบฐานข้อมูลจึงสามารถนาข้อบังคับใช้บนแบบจาลองตามความจาเป็นและความเหมาะสม แต่
อย่างไรก็ตาม กฎเกณฑ์ทางธุรกิจที่นามาใช้เป็นข้อบังคับ คงไม่อาจนามาแสดงบนแบบจาลอง E-R ได้
ทั้งหมด เนื่องจาก DBMS ใช่ว่าจะสนับสนุนเพื่อสร้างเงื่อนไขข้อบังคับได้อย่างครบถ้วน ดังนั้น
โปรแกรมเมอร์จะต้องเขียนโปรแกรมเพิ่มเติมเพื่อควบคุมข้อบังคับเหล่านี้เฉพาะงานไป
ข้ อสั งเกต
กฎเกณฑ์ทางธุรกิจ (Business Rules) คือถ้อยแถลงที่กาหนดขึ้นมา ซึ่งเกี่ยวข้องกับกฎเกณฑ์ขอ้ บังคับทางธุรกิจ โดยมี
จุดมุ่งหมายเพื่อการรักษา ควบคุม และบังคับใช้ให้เป็ นไปตามโครงสร้างและพฤติกรรมของงานนั้นๆ และโดยปกติ
แล้วกฎเกณฑ์ทางธุรกิจสามารถนามาปฏิบตั ิตามผ่านกระบวนการทางานของพนักงานที่ปฏิบตั ิหน้าที่อยูเ่ ป็ นประจา
หรื ออาจถูกกาหนดไว้ในโปรแกรมประยุกต์ก็เป็ นได้
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
3.2.1 Cardinality Constraints
ยั น
เร ศ
วร
(20
1
ตามปกติแล้วดีกรีของความสัมพันธ์ ส่วนใหญ่มักเป็นในรูปแบบไบนารี และ Cardinality
Ratios, สาหรับความสัมพันธ์แบบไบนารีจะประกอบด้วยความสัมพันธ์แบบ one-to-one (1:1),
one-to-many (1:M) และ many-to-many (M:N) ดังรูปที่ 3.15
6)
ข้อบังคับบนความสัมพันธ์ จะมีอยู่ 2 ชนิดด้วยกัน คือ Cardinality Constraints และ
Participation Constraints
1
1
M
ยาล
1
M
มห
าวทิ
M
ภาพที่ 3.15 Cardinality Ratios
ข้ อสั งเกต
ชูส
ำโร
ง
Cardinality Ratio เป็ นการอธิบายถึงจานวนความสัมพันธ์ที่เป็ นไปได้ของแต่ละเอ็นติต้ ี
และเพื่อให้เกิดความเข้าใจมากขึ้น เราจะใช้ Semantic Net Model ในการอธิบาย
ความสัมพันธ์ในระดับรายละเอียด
ควำมสัมพันธ์แบบหนึ่งต่อหนึ่ง (one-to-one Relationships)
ดร
.สิท
ธิช
ัย
76
ภาพที่ 3.16 Semantic Net Model กับชนิดความสัมพันธ์แบบ one-to-one (โอภาส เอี่ยมสิริวงศ์, 2558)
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 3 แบบจำลอง E-R
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
พิจารณาจากรูปที่ 3.16 ได้แสดงความสัมพันธ์ “Manages” ที่เกี่ยวข้องกับเอ็นติตี้
EMPLOYEE และ BRANCH โดยเป็นความสัมพันธ์แบบ one-to-one ซึ่งอธิบายได้ว่า “พนักงานหนึ่ง
คน <จัดการ> หนึ่งสาขา”
กล่าวคือ พนักงานที่เป็นหัวหน้าหรือผู้จัดการ จะต้องบริหารจัดการสาขาที่ตนรับผิดชอบ (หนึ่งสาขา)
ในขณะที่แต่ละสาขาก็จะมีผู้จัดการคอยดูแลอยู่หนึ่งคน โดยที่
พนักงานรหัส SG05 <จัดการ> สาขา B003
พนักงานรหัส SL21 <จัดการ> สาขา B005
พนักงานรหัส SG37 เป็นพนักงานทั่วไป ซึ่งโดยตาแหน่งแล้วจะไม่มีอานาจหน้าที่ในการดูแล
สาขาใด
จึงกล่าวโดยสรุปว่า “พนักงานหนึ่งคนจะ <จัดการ> หนึ่งสาขาหรือไม่ก็ได้” ซึ่งเป็นไปใน
ลักษณะ zero or one (0.1) ในขณะที่ “แต่ละสาขาจะถูก <จัดการ> โดยพนักงานหนึ่งคน” ดังนั้น
ความสัมพันธ์ดังกล่าวจึงเขียนใหม่ได้ตามแผนภาพ E-R ดังรูปที่ 3.17 กล่าวคือ แต่ละสำขำจะถูกดูแล
จัดกำรโดยพนักงำนหนึ่งคน ในขณะที่พนักงำนแต่ละคนจะถูกมอบหมำยให้ดูแลสำขำหรือไม่ก็ได้
ซึ่งข้อบังคับดังกล่าวจะทาให้รายละเอียดด้านความสัมพันธ์มีความชัดเจนยิ่งขึ้น
แต่อย่างไรก็ตาม
ความสัมพันธ์แบบ zero or one ก็คือความสัมพันธ์แบบ 1:1 ตามรูปแบบดั้งเดิมนั่นเอง
77
ภาพที่ 3.17 ความสัมพันธ์แบบ zero or one
ดร
.สิท
ธิช
ัย
นอกจากนี้ เรายังสามารถเขียนแผนภาพ E-R ในรูปแบบแผนภาพ UML ได้ดังรูปที่ 3.18
อย่างไรก็ตามข้อบังคับที่ระบุอยู่ในแผนภาพ UML ที่เป็น 1.1 และ 0.1 จะเรียกว่า Multiplicity
ภาพที่ 3.18 Multiplicity ของพนักงาน <ดูแล> สาขาในรูปแบบหนึง่ ต่อหนึ่ง (1:1) (โอภาส เอี่ยมสิริวงศ์, 2558)
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
พิจารณารูปที่ 3.19 ได้แสดงความสัมพันธ์ “oversees” ที่เกี่ยวข้องกับเอ็นติตี้ EMPLOYEE
และ PROPERTY_FOR_RENT โดยเป็นความสัมพันธ์แบบ one-to-many ซึ่งอธิบายได้ว่า “พนักงาน
หนึ่งคน <ดูแล> บ้านเช่าได้หลายหลัง” โดยที่
พนักงานรหัส SG37 <ดูแล> บ้านเช่ารหัส PG21 และ PG36
พนักงานรหัส SA09 <ดูแล> บ้านเช่ารหัส PA14
พนักงานรหัส SG05 ไม่ได้<ดูแล> บ้านเช่าใดๆ เลย
บ้านเช่ารหัส PG04 ไม่ได้รับการ <ดูแล> จากพนักงานคนใดเลย
6)
ควำมสัมพันธ์แบบหนึ่งต่อกลุ่ม (one-to-many Relationship)
ภาพที่ 3.19 Semantic Net Model กับชนิดความสัมพันธ์แบบ one-to-many (โอภาส เอี่ยมสิริวงศ์, 2558)
จึงกล่าวโดยสรุปว่า “พนักงานหนึ่งคนสามารถ <ดูแล> บ้านเช่าได้หลายหลัง” ในขณะที่
พนักงานบางคนอาจไม่ได้รับมอบหมายให้ดูแลบ้านเช่าใดๆ เลย ซึ่งเป็นไปในลักษณะ zero or more
ส่วน “บ้านเช่าหลังหนึ่งๆ จะถูก <ดูแล> โดยพนักงานหนึ่งคนหรือไม่ได้รับการดูแลก็ได้” ซึ่งเป็นไปใน
ลักษณะ Zero or one ดังนั้น ความสัมพันธ์ดังกล่าวจึงสามารถนามาเขียนใหม่ด้วยแผนภาพ E-R ดัง
รูปที่ 3.20
ดร
.สิท
ธิช
ัย
78
ภาพที่ 3.20 ความสัมพันธ์แบบ one-to-many ตามข้อบังคับของ zero or one และ zero or more
เอี่ยมสิริวงศ์, 2558)
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
(โอภาส
79
ยั น
เร ศ
วร
(20
1
6)
บทที่ 3 แบบจำลอง E-R
ภาพที่ 3.21 แผนภาพ E-R แสดงความสัมพันธ์แบบ (0.1),(0..*) ในรูปแบบ UML (โอภาส เอี่ยมสิริวงศ์, 2558)
ควำมสัมพันธ์แบบกลุ่มต่อกลุ่ม (many-to-many Relationship)
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
พิจารณาจากรูปที่ 3.22 ได้แสดงความสัมพันธ์ “advertises” ที่เกี่ยวข้องกับเอ็นติตี้
NEWSPAPER และ PROPERTY_FOR_RENT โดยเป็นความสัมพันธ์แบบ many-to-many ซึง่
อธิบายได้ว่า “หนังสือพิมพ์หลายฉบับสามรถ <โฆษณา> บ้านเช่าได้หลายหลัง” โดยที่
หนังสือพิมพ์ The Nation <โฆษณา> บ้านเช่ารหัส PG21 และ PG36
หนังสือพิมพ์ Daily News <โฆษณา> บ้านเช่ารหัส PG36
หนังสือพิมพ์ Bangkok Post <โฆษณา> บ้านเช่ารหัส PA14
บ้านเช่ารหัส PG04 ไม่ได้ลง <โฆษณา> ในหนังสือพิมพ์ใดๆ เลย
ภาพที่ 3.22 Semantic Net Model กับชนิดความสัมพันธ์แบบ many-to-many
ดร.สิทธิชัย ชูสาโรง
ยั น
เร ศ
วร
(20
1
จึงกล่าวโดยสรุปว่า “หนังสือพิมพ์แต่ละฉบับ <โฆษณา> บ้านเช่าได้หนึ่งหลังหรือมากกว่า”
ซึ่งเป็นไปในลักษณะ one or more ในขณะที่ “บ้านเช่าหลังหนึ่งๆ สามารถ <โฆษณา> ใน
หนังสือพิมพ์ได้หลายฉบับหรือไม่ได้โฆษณาลงในหนังสือพิมพ์เล่มใดเลยก็ได้” ซึ่งเป็นไปในลักษณะ
zero or more ดังนั้น ความสัมพันธ์ดังกล่าวจึงเขียนใหม่ได้ตามแผนภาพ E-R ดังรูปที่ 3.23
6)
เอกสารประอบการสอน รายวิชา 104333
มห
าวทิ
ยาล
ภาพที่ 3.23 ความสัมพันธ์แบบ many-to-many ตามข้องบังคับของ zero or more และ one or more
(โอภาส เอี่ยมสิริวงศ์, 2558)
ชูส
ำโร
ง
ภาพที่ 3.24 แผนภาพ E-R แสดงความสัมพันธ์แบบ (0..*),(1..*) ในรูปแบบ UML (โอภาส เอี่ยมสิริวงศ์, 2558)
ดร
.สิท
ธิช
ัย
80
ภาพที่ 3.25 สัญลักษณ์ข้อบังคับบนความสัมพันธ์ในรูปแบบต่างๆ (Cardinality Notations)
(โอภาส เอี่ยมสิริวงศ์, 2558)
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 3 แบบจำลอง E-R
81
3.2.2 ข้อบังคับของกำรมีส่วนร่วม (Participation Constraints)
ยั น
เร ศ
วร
(20
1
6)
ข้อบังคับของการมีส่วนร่วมจะแสดงให้เห็นถึงความสัมพันธ์ของข้อมูลระหว่างเอ็นติตี้ที่ข้อมูล
ทั้งหมดของเอ็นติตี้หนึ่งต้องมีความสัมพันธ์กับข้อมูลของอีกเอ็นติตี้หนึ่ง หรือมีข้อมูลเพียงบางส่วนของ
เอ็นติตี้หนึ่งไปมีความสัมพันธ์กับข้อมูลของอีกเอ็นติตี้หนึ่งก็ได้ ทั้งนี้ข้อบังคับของการมีส่วนร่วมยังแบ่ง
ออกเป็น 2 ชนิดด้วยกันคือ Total Participation และ Partial Participation โดยการมีส่วนร่วม
แบบ Total เป็นความสัมพันธ์เชิงบังคับ ในขณะที่มีการมีส่วนร่วมแบบ Partial นั้นเป็นความสัมพันธ์
แบบมีทางเลือก
ยาล
ตัวอย่างข้อบังคับแบบ Total ที่ข้อมูลทั้งหมดของเอ็นติตี้หนึ่ง “จะต้อง” มีความสัมพันธ์กับ
ข้อมูลของอีกเอ็นติตี้หนึ่งตามประเภทความสัมพันธ์ที่กาหนดไว้ ดังเช่น สานักงานสาขาแต่ละแห่ง
จะต้องมีพนักงานสังกัด โดยสานักงานสาขาจะไม่สามารถถูกจัดตั้งขึ้นมาได้เลยหากไม่มีพนักงาน ดัง
รูปที่ 3.26 ซึ่งเป็นตัวอย่างข้อบังคับของการมีส่วนร่วมในความสัมพันธ์ระหว่างเอ็นติตี้ BRANCH
<has> EMPLOYEE อย่างไรก็ตาม คาว่า Total และ Partial ยังสามารถนาไปใช้อ้างอิงตรงกับคาว่า
Mandatory และ Optional นั่นหมายความว่า
มห
าวทิ
Total Participation หรือ Mandatory คือความสัมพันธ์แบบบังคับ
Partial Participation หรือ Optional คือความสัมพันธ์แบบมีทางเลือก
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
ทั้งนี้การมีส่วนร่วมในแต่ละความสัมพันธ์จะทาการเชื่อมโยงด้วยเส้น โดยเส้นเดี่ยวหมายถึง
การมีส่วนร่วมแบบ Partial (Optional) ในขณะที่เส้นคู่หมายถึงการมีส่วนร่วมแบบ Total
(Mandatory)
ภาพที่ 3.26 การมีส่วนร่วมในความสัมพันธ์ของเอ็นติตี้ BRANCH <has> EMPLOYEE โดยสาขาจะต้องมีพนักงาน
สังกัดอยู่หลายคน (โอภาส เอี่ยมสิริวงศ์, 2558)
นอกจากนี้ ยังมีอีกแนวหนึ่งที่สามารถนามาใช้กับข้อบังคับในความสัมพันธ์ด้วยการแสดงค่า
ต่าสุด, สูงสุด (min, max) ตัวอย่างดังรูปที่ 3.27 ที่แสดงให้เห็นว่า ในการจัดตั้งสานักงานสาขาขึ้นมา
ได้นั้น จาเป็นต้องมีพนักงานสังกัดอยู่สาขานั้นๆ อย่างน้อย 5 คน (min = 5) โดยไม่จากัดจานวน
พนักงานสูงสุด (max = N) ในขณะที่ค่าตัวเลข (0,1) บนเส้นความสัมพันธ์ฝั่งเอ็นติตี้ EMPLOYEE
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ยั น
เร ศ
วร
(20
1
6)
นัน้ หมายความว่าพนักงานบางคนอาจไม่ได้ประจาอยูใ่ นสาขาใดๆ (min = 0) กับพนักงานประจา
ทั่วไปที่ต้องสังกัดอยู่ในสานักงานสาขาของคน (max =1) ซึ่งรายละเอียดข้อมูลเหล่านี้จะไม่สามารถ
กาหนดลงไปได้เลย หากยังคงใช้คาร์ดินัลลิตี้แบบ 1, M หรือ N
ภาพที่ 3.27 ข้อบังคับการมีส่วนร่วมในความสัมพันธ์ของเอ็นติตี้ BRANCH <has> EMPLOYEE ด้วยการระบุ
ข้อบังคับที่ประกอบด้วยค่าต่าสุดและค่าสูงสุด (min, max) (โอภาส เอี่ยมสิริวงศ์, 2558)
ยาล
3.3 ปัญหำเกี่ยวกับแบบจำลอง ER (Problem with E-R Model)
ชูส
ำโร
ง
Fan Traps
มห
าวทิ
เนื้อหาส่วนนี้จะขอยกตัวอย่างถึงปัญหาต่างๆ ที่อาจเกิดขึ้นในระหว่างการออกแบบจาลอง
ข้อมูลเชิงแนวความคิด ซึ่งปัญหาเหล่านี้เรียกว่า “กับดักกำรเชื่อมต่อ (Connection Traps)” และ
โดยปกติมักเกิดขึ้นจากการเข้าใจผิดในเรื่องความหมายของความสัมพันธ์บางอย่าง โดยกับดักการ
เชื่อมต่อในที่นี้จะขอกล่าวใน 2 ประเด็นหลักๆ ด้วยกันคือ ปัญหาของ Fan Traps และ Chasm
Traps
เป็นปัญหาที่มักพบบนความสัมพันธ์แบบ one-to-many ที่มีการกระจายออกมาจากเอ็นติตี้
เดียวกัน ปัญหาดังกล่าวเป็นไปตามแผนภาพดังรูปที่ 3.28 ทั้งนี้จะเป็นเรื่องที่ดีมากหากปัญหาที่ซ่อน
เร้นเหล่านี้สามารถค้นพบได้ในระยะของการออกแบบแบบจาลอง เนื่องจากแก้ไขได้ง่ายด้วยการปรับ
โครงสร้างแบบจาลองเสียใหม่ให้ถูกต้อง แต่ถ้าค้นพบปัญหานี้จากระยะการนาไปใช้ ก็จะส่งผลกระทบ
ต่อการเรียกดูข้อมูลที่ผิดพลาดได้
ดร
.สิท
ธิช
ัย
82
เมื่อพิจารณาจากรูปที่ 3.28 แล้ว อธิบายได้ว่า
ฝ่ายงานหนึ่งๆ สามารถ <ทาการ> อยู่ในสาขาต่างๆ ได้หลายสาขา
ฝ่ายงานหนึ่งๆ จะ <มี> พนักงานสังกัดอยู่หลายคน
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
(20
1
ภาพที่ 3.28 ตัวอย่างปัญหาของ Fan Traps ในแบบจาลอง E-R (โอภาส เอี่ยมสิริวงศ์, 2558)
มห
าวทิ
ยาล
คำตอบ B003 หรือ B007
ยั น
เร ศ
วร
และจากรายละเอียด Semantic Net Model ดังรูปที่ 3.29 จะพบปัญหาที่ซ่อนเร้นอยู่คือ
คำถำม พนักงานรหัส SG37 ทางานอยู่สาขาใด
83
6)
บทที่ 3 แบบจำลอง E-R
ชูส
ำโร
ง
ภาพที่ 3.29 รายละเอียด Semantic Net Model จากแผนภาพ E-R รูปที่ 3.28 (โอภาส เอี่ยมสิริวงศ์, 2558)
ดร
.สิท
ธิช
ัย
จากคาถามดังกล่าว เราอาจไม่ได้คาตอบที่แน่ชัดได้ ดังนั้น ข้อผิดพลาดนี้จึงต้องได้รับการ
แก้ไขด้วยการปรับโครงสร้างใหม่ผ่านการจัดเรียงความสัมพันธ์ของเอ็นติตี้ใหม่ให้ถูกต้องดังรูปที่ 3.30
ภาพที่ 3.30 แบบจาลอง E-R ที่ปรับโครงสร้างใหม่ เพื่อขจัดปัญหา Fan Traps
สาหรับรายละเอียดข้อมูลใน Semantic Net Model ที่ได้ปรับโครงสร้างใหม่แล้วดังรูปที่
3.31 จะทาให้เราได้คาตอบแล้วว่า พนักงานรหัส G37 ทางานอยู่สาขา B003 และสังกัดอยู่ในฝ่ายงาน
D1 นั่นเอง
ดร.สิทธิชัย ชูสาโรง
(20
1
ภาพที่ 3.31 ภายหลังจากปรับโครงสร้างและขจัดปัญหา
Fan Traps ออกไปแล้ ว ท าให้ ท ราบว่ าพนั ก งานแต่ ล ะ
คนท างานอยู่ ส าขาใด และปฏิ บั ติ งานสั งกั ด อยู่ ฝ่ า ยใด
(โอภาส เอี่ยมสิริวงศ์, 2558)
6)
เอกสารประอบการสอน รายวิชา 104333
Chasm Traps
มห
าวทิ
ยาล
ยั น
เร ศ
วร
เป็นปัญหาอีกรูปแบบหนึ่งที่สามารถเกิดขึ้นบนแผนภาพ E-R ได้ จากการไม่ได้โยง
ความสัมพันธ์ระหว่างเอ็นติตี้ จึงส่งผลให้ความสัมพันธ์นั้นขาดหายไป สาหรับปัญหาดังกล่าวมักจะ
ปรากฏบนความสัมพันธ์แบบมีส่วนร่วมในบางส่วน(Partial Participation) ที่เป็นส่วนหนึ่งของ
เส้นทางระหว่างเอ็นติตี้ที่เกี่ยวข้อง พิจารณารูปที่ 3.32 เป็นแผนภาพ E-R ที่เกิดปัญหา Chasm
Traps
โดยจากรูปจะมีความสัมพันธ์ระหว่างเอ็นติตี้
BRANCH,
EMPLOYEE
และ
PROPERTY_FOR_RENT เท่านั้น
ภาพที่ 3.32 ตัวอย่างปัญหา Chasm Traps ในแบบจาลอง E-R (โอภาส เอี่ยมสิริวงศ์, 2558)
ชูส
ำโร
ง
จากรูปที่ 3.32 สามารถอธิบายได้ว่า
สาขาหนึ่งต้อง <มี> พนักงานหลายคน
พนักงานบางคน <ดูแล> บ้านเช่า
และจากการมีส่วนร่วมบนความสัมพันธ์ในครั้งนี้ จะพบว่า ใช่ว่าพนักงานทุกคนต้องดูแลบ้าน
เช่า และใช่ว่าบ้านเช่าทุกหลังต้องได้รับการดูแลโดยพนักงาน
ดร
.สิท
ธิช
ัย
84
ภาพที่ 3.33 รายละเอียดปัญหา Chasm Traps ที่นาเสนอด้วย Semantic Net Model
(โอภาส เอี่ยมสิริวงศ์, 2558)
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 3 แบบจำลอง E-R
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
จากรายละเอียดข้อมูลดังรูปที่ 3.33 จะพบปัญหาที่ซ่อนเร้นคือ
คำถำม บ้านเช่ารหัส PA14 อยู่สาขาใด และพนักงานคนใดเป็นผู้ดูแล
คำตอบ ไม่สามารถตอบได้
ซึ่งในความเป็นจริง แม้ว่าบ้านเช่าอาจไม่ได้รับการดูแลจากพนักงานคนใดก็ได้ แต่บ้านเช่า
จะต้องมีสาขาสังกัดอยู่ และนี่ก็คือปัญหาที่ซ่อนเร้นอยู่ในรูปของ Chasm Traps โดยการมีส่วนร่วม
แบบ Partial ของเอ็นติตี้ EMPLOYEE และ PROPERTY_FOR_RENT ในความสัมพันธ์ <oversees>
หมายความว่า บ้านเช่าบางหลังไม่สามารถเชื่อมโยงกับสาขาผ่านการดูแลโดยพนักงานได้ ดังนั้น
วิธีการแก้ปัญหานี้ก็คือ ให้เชื่อมโยงความสัมพันธ์ <offers> ระหว่างเอ็นติตี้ BRANCH และ
PROPERTY_FOR_RENT เข้าด้วยกันดังรูปที่ 3.34 ซึ่งเป็นโครงสร้างที่ได้รับการปรับเปลี่ยนแล้ว
85
ภาพที่ 3.34 การเพิ่มความสัมพันธ์ <offers> ระหว่างเอ็นติตี้ BRANCH และ PROPERTY_FOR_RENT เพื่อขจัด
ปัญหา Chasm Traps (โอภาส เอีย่ มสิริวงศ์, 2558)
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
และจากรูปที่ 3.35 นี้เอง ทาให้เรารับรู้ได้แล้วว่า บ้านเช่ารหัส PA14 สังกัดอยู่สาขา B007
นั่นเอง โดยบ้านหลังนี้ยังไม่มีใครเป็นผู้ดูแล
ภาพที่ 3.35 ภายหลังจากเพิ่มการเชื่อมโยงความสัมพันธ์ <offers> ให้กับเอ็นติตี้ BRANCH และ
PROPERTY_FOR_RENT ทาให้ทราบว่าบ้านเช่าแต่ละหลังสังกัดอยูส่ าขาใด และมีพนักงานคนใดเป็นผู้ดูแล
(โอภาส เอี่ยมสิริวงศ์, 2558)
ดร.สิทธิชัย ชูสาโรง
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
เอกสารประอบการสอน รายวิชา 104333
ดร
.สิท
ธิช
ัย
86
ภาพที่ 3.36 บทสรุปสัญลักษณ์ที่ใช้งานในแผนภาพ E-R (โอภาส เอีย่ มสิริวงศ์, 2558)
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 3 แบบจำลอง E-R
87
สรุปท้ำยบทที่ 3
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
แผนภำพ E-R เป็นแบบจาลองเชิงแนวคิดเพื่อสื่อถึงเรื่อราวเกี่ยวกับข้อมูลและความสัมพันธ์
ระหว่างข้อมูลบนระบบงานหนึ่งๆ โดยจุดประสงค์หลักของแบบจาลองชนิดนี้ก็คือ ต้องการสื่อ
ความหมายเพื่อให้เกิดความเข้าใจตรงกันระหว่างผู้ออกแบบกับผู้ใช้
ส่วนประกอบของแบบจำลอง E-R ประกอบด้วยเอ็นติตี้, แอตตริบิวต์, ความสัมพันธ์ และ
ข้อบังคับ
Entity คือสิ่งที่เราสนใจ ซึ่งอาจเป็นได้ทั้งบุคคล สถานที่ วัตถุ เหตุการณ์ หรือแนวคิดต่างๆ
ที่ก่อให้เกิดกลุ่มของข้อมูลที่ต้องการ
Strong Entity หรือ Regular Entity เป็นเอ็นติตี้ที่มีคีย์หลักเป็นของตังเอง จัดเป็นเอ็นติตี้
ทีไ่ ม่ขึ้นกับเอ็นติตี้ใด สัญลักษณ์ที่ใช้คือรูปสี่เหลี่ยมผืนผ้า
Weak Entity คือเอ็นติตี้แบบอ่อน ไม่มีคีย์หลักเป็นของตัวเอง และไม่สามารถเกิดขึ้นได้ตาม
ลาพัง และจะถูกกาจัดออกไปเมื่อเอ็นติตี้หลักถูกลบ สัญลักษณ์ที่ใช้คือรูปสี่เหลี่ยมผืนผ้าเช่นกัน แต่จะ
เป็นเส้นคู่
Attribute คือคุณสมบัติของเอ็นติตี้ สัญลักษณ์ที่ใช้คือรูปวงรี สาหรับแอตตริบิวต์ที่ถูก
กาหนดเป็นคีย์หลักจะถูกขีดเส้นใต้กากับไว้
Attribute Domain เป็นการกาหนดขอบเขตค่าข้อมูลและชนิดของข้อมูลให้กับแอตตริบิวต์
โดยโดแมนจะเป็นตัวกาหนดถึงความเป็นไปได้ของข้อมูลในแอตตริบิวต์นั้นๆ
Simple Attribute คือแอตตริบิวต์ที่มีองค์ประกอบอยู่หลายตัว ไม่สามารถแตกเป็นข้อมูล
ย่อยได้อีก
Composite Attribute เป็นแอตตริบิวต์ที่มีองค์ประกอบอยู่หลายตัว มีข้อมูลย่อยหลายตัว
ภายในแอตตร้บิวต์นั้น
Single-Valued Attribute คือแอตตริบิวต์ที่บรรจุค่าเพียงค่าเดียว
Multivalued Attribute คือแอตตริบิวต์ที่สามารถมีหลายค่าได้
Relationship หมายถึงความสัมพันธ์ระหว่างเอ็นติตี้
ควำมสัมพันธ์แบบ Unary เป็นความสัมพันธ์ระหว่างเอ็นติตี้เดียว หรือความสัมพันธ์แบบรี
เคอร์ชีพ
ควำมสัมพันธ์แบบ Binary เป็นความสัมพันธ์ระหว่างสองเอ็นติตี้
ควำมสัมพันธ์แบบ Ternay เป็นความสัมพันธ์ที่มีเอ็นติตี้เข้ามาเกี่ยวข้อง 3 เอ็นติตี้ด้วยกัน
ข้อบังคับ (Comstraints) เป็นกระบวนการนาความสัมพันธ์และกฎเกณฑ์ทางธุรกิจมา
บังคับใช้เพื่อเป็นเงื่อนไขการจัดเก็บข้อมูลในฐานข้อมูลให้เป็นไปอย่างเหมาะสมและถูกต้อง
ดร.สิทธิชัย ชูสาโรง
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
กฎเกณฑ์ทำงธุรกิจ (Business Rules) คือถ้อยแถลงที่กาหนดขึ้นมา ซึ่งเกี่ยวข้องกับ
กฎเกณฑ์ข้อบังคับทางธุรกิจ โดยมีจุดมุ่งหมายเพื่อรักษา ควบคุม และบังคับใช้ให้เป็นไปตาม
โครงสร้างและพฤติกรรมของงานนั้นๆ
ข้อบังคับบนควำมสัมพันธ์ เกี่ยวข้องกับ Cardinality Constraints และ Participation
Constraints
Cardinality Constraints เป็นความสัมพันธ์ระหว่างเอ็นติตี้ที่สามารถเป็นได้ทั้งแบบ 1:1,
1:M, และ M:N
Participation Constraints คือข้อบังคับของการมีส่วนร่วม มีอยู่ 2 ชนิดคือ Total
Participation และ Partial Participation
Total Participation หรือ Mandatory คือความสัมพันธ์แบบบังคับ แทนด้วยเส้น
ความสัมพันธ์แบบเส้นคู่
Partial Participation หรือ Optional คือความสัมพันธ์แบบมีทางเลือก แทนด้วยเส้น
ความสัมพันธ์แบบเส้นเดี่ยว
กับดักกำรเชื่อมต่อ เกิดขึ้นจากการเข้าใจผิดในเรื่องความหมายของความสัมพันธ์บางอย่าง
ซึ่งจะมีทั้งปัญหาแบบ Fan Traps และ Chasm Traps
Fan Traps เป็นปัญหาที่มักพบบนความสัมพันธ์แบบ one-to-many สามารถแก้ไขได้ด้วย
การปรับโครงสร้างแบบจาลองเสียใหม่ให้ถูกต้อง
Chasm Traps เป็นปัญหาที่เกิดขึ้นบนแผนภาพ E-R ด้วยการไม่ได้โยงความสัมพันธ์ระหว่าง
เอ็นติตี้จึงส่งผลให้ความสัมพันธ์นั้นขาดหายไป วิธีแก้ไขก็คือ ให้เชื่อความสัมพันธ์ให้กับเอ็นติตี้เหล่านั้น
เข้าด้วยกัน
กระบวนกำรออกแบบฐำนข้อมูล มักจะเป็นรูปแบบทวนซ้า (lteration) ที่สามารถย้อนกลับ
ไปทบทวนหรือปรับปรุงแก้ไขส่วนที่ผิดพลาดของขั้นตอนก่อนหน้าได้ มากกว่าจะเป็นไปตามลาดับ
ขั้นตอนแบบเชิงเส้น
6)
เอกสารประอบการสอน รายวิชา 104333
ดร
.สิท
ธิช
ัย
88
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
1.
เพื่อศึกษาความหมายของระบบฐานข้ อมูล
ทางภูมิศาสตร์ (ฐานข้ อมูลเชิงพื ้นที่)
2.
สามารถติดตัง้ ออกแบบและสร้ าง
ฐานข้ อมูลทางด้ านภูมิศาสตร์ ด้วยโปรแกรม
(20
1
ยาล
ฐานข้ อมูลต่างๆได้
ยั น
เร ศ
วร
SQL
สามารถใช้ คาสัง่ พื ้นฐานจากภาษา SQL
ในการสร้ างตาราง และการจัดการ
บทที่ 4
มห
าวทิ
การติดตั้งและใช้งาน PostgreSQL
ดร
.สิท
ธิช
ัย
4.
PostgreSQL/PostGIS
เข้ าใจความหมายของโครงสร้ างภาษา
ชูส
ำโร
ง
3.
6)
วัตถุประสงค์การเรี ยนรู ้ (Learning
Objectives)
(20
1
ในบทนี้จะอธิบายการลงโปรแกรม PostgreSQL/PostGIS สาหรับฐานข้อมูล และการลง
โปรแกรม QGIS สาหรับการออกแบบ จัดการ แก้ไข ฐานข้อมูลด้าน GIS ตลอดจนอธิบายการทางาน
กับภาษา SQL โดยใช้โปรแกรม PostgreSQL/PostGIS และโปรแกรม PgAdmin3 ที่มาพร้อมกับการ
ติดตั้ง PostgreSQL คุณจะได้เรียนรู้การสร้างฐานข้อมูล การสร้างบัญชีผู้ใช้ และการกาหนดสิทธิให้แก่
บัญชีผู้ใช้และการสร้างเทเบิล
6)
เอกสารประอบการสอน รายวิชา 104333
ยั น
เร ศ
วร
4.1 PostgreSQL คืออะไร?
ยาล
โพสต์เกรสคิวเอล (PostgreSQL) หรือนิยมเรียกว่า โพสต์เกรส (Postgres) เป็นระบบจัดการ
ฐานข้อมูลในลักษณะของซอฟต์แวร์เสรีภายใต้สัญญาอนุญาตบีเอสดี ชื่อเดิมของซอฟต์แวร์คือ โพสต์
เกรส ซึ่งต่อมาได้ถูกเปลี่ยนเป็นโพสต์เกรสคิวเอล โดยประกาศออกมาจากทีมหลักในปี 2550 ชื่อของ
โพสต์เกรสมาจากชื่อ post-Ingres ซึ่งหมายถึงตัวซอฟต์แวร์ที่พัฒนาต่อจากซอฟต์แวร์ชื่ออินเกรส ทา
หน้าที่เป็นตัวกลางสื่อสารข้อมูลส่งภาษาให้ฐานข้อมูล เพื่อจัดการและควบคุมความถูกต้อง ความ
ซับซ้อน และความสัมพันธ์ระหว่างข้อมูลต่างๆภายในฐานข้อมูล
ชูส
ำโร
ง
มห
าวทิ
PostgreSQL คือ ระบบจัดการฐานข้อมูลเชิงวัตถุ-สัมพันธ์ เป็นโปรแกรม OpenSource ที่
สามารถนาไปใช้งานได้โดยไม่มีค่าใช้จ่ายใดๆ
เป็นจัดการฐานข้อมูลแบบ object-relational
database management system หรือ (ORDBMS) ซึ่งมีต้นแบบระบบฐานข้อมูลPOSTGRES
4.2 ของมหาวิทยาลัยแคลิฟอร์เนีย วิทยาลัยเขตเบอร์กเลย์ (UC Berkeley) ตั้งแต่ปี ค.ศ. 1977
จัดเป็น Open Source Software ที่มีประวัติยาวนานมากที่สุดตัวหนึ่ง
ดร
.สิท
ธิช
ัย
90
ภาพที่ 4. 1 แสดงโครงสร้างอย่างง่ายของ PostgreSQL
ยของ PostgreSQL
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
4.2 PostGIS คืออะไร?
ยั น
เร ศ
วร
(20
1
6)
PostgreSQL เป็นระบบจัดการฐานข้อมูลแบบ ORDBMS มีความสามารถ ACID และ
สนับสนุน SQL92 และ SQL99 โดยมีชนิดข้อมูลหลายประเภทรวมถึงมีชนิดข้อมูลแบบ user
define ซึ่งผู้ใช้กาหนดขึ้น
ทางานในหลายแพลทฟอร์มได้แก่ Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X,
Solaris, Tru64), และ Windows
เป็นซอฟต์แวร์ใช้ได้ฟรีโดยมีลิขสิทธิ์แบบ BSD
91
มห
าวทิ
ยาล
PostGIS คือส่วนขยายเพิ่มเติมที่ทาให้ฐานข้อมูล PostgreSQL สามารถรองรับข้อมูลด้าน
สารสนเทศรูมิศาสตร์ (GIS) คือสนับสนุนข้อมูลที่สัมพันธ์เชิงพื้นที่ (Spatial) มีการเพิ่มเติมในส่วน
ฐานข้อมูลเชิงวัตถุสัมพันธ์ (object – reletionnal database system) ของ PostgreSQL ให้มี
การรองรับระบบสารสนเทศภูมิศาสตร์ (GIS Object) เข้ามาเก็บไว้ในฐานข้อมูล (Database)
PostGIS สนับสนุน GiST indexs กับ R-tree indexs และฟังก์ชัน เพื่อใช้เป็นพื้นฐานในการ
วิเคราะห์ GIS Object
ชูส
ำโร
ง
ทาไมต้องใช้ PostGIS
• เป็นฐานข้อมูลเชิงพื้นที่ (Spatial database) ที่เป็น open source ที่ดี ในเชิงการค้าจะมี
ราคาสูงมาก
• มี spatial function ที่เป็น open source
• มีการจัดการกับข้อมูล ทาให้มองเห็นภาพและวิเคราะห์ได้ง่ายอย่างที่ไม่เคยมีมาก่อน
ดร
.สิท
ธิช
ัย
4.3 ติดตั้ง PostgreSQL และ PostGIS บนระบบปฏิบัติการ Windows
ขั้นตอนการติดตั้งจะคล้ายๆกับการติดตั้งโปรแกรมอื่นๆทั่วไปของระบบปฎิบัติการวินโดว์ ซึ่ง
เวอร์ชั่นที่จะทาการติดตั้งของโปรแกรมทั้ง 2 คือ
- PostgreSQL Version 9.4.4
- PostGIS Version 2.1.3
(ทั้ง PostgreSQL/PostGIS เป็นเวอร์ชั่นล่าสุด ณ วันที่ 22/7/2015)
สามารถดาวน์มาติดตั้งได้ตามเว็บไซต์นี้ http://www.enterprisedb.com/products-servicestraining/pgdownload#windows (จะเลือก 32 หรือ 64 bit ขึ้นอยู่กับเครื่องคอมพิวเตอร์ที่เราใช้)
ดร.สิทธิชัย ชูสาโรง
ยั น
เร ศ
วร
(20
1
6)
เอกสารประอบการสอน รายวิชา 104333
มห
าวทิ
ยาล
หลังจากดาวน์โหลดโปรแกรมมาแล้ว
The PostgreSQL installation package is postgresql-9.4.4-3-windows.exe
Step1: ลงโปรแกรม postgreSQL
ชูส
ำโร
ง
1.Double-click the file
ดร
.สิท
ธิช
ัย
92
Click Next
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
เลือก Path C:\Program Files\PostgreSQL\9.4
93
ยั น
เร ศ
วร
(20
1
6)
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
มห
าวทิ
ยาล
เลือก Data Directory C:\Program Files\PostgreSQL\9.4\data จากนั้นตั้งรหัสผ่านของระบบ
ฐานข้อมูล
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
ตั้งค่า Port = 5432
เลือก [Default locale]
คลิก next เพื่อทาการลงโปรแกรม
ดร.สิทธิชัย ชูสาโรง
มห
าวทิ
ยาล
Steps2: ติดตั้งส่วนเสริม PostGIS
ยั น
เร ศ
วร
(20
1
คลิก check box เพื่อทาการรันคาสั่ง Lunch
Stack Builder จากนั้นคลิก Finish เพื่อเป็น
การเสร็จสิ้นการลงโปรแกรม PostgreSQL
ก่อนที่จะมีหน้าต่างขึ้นมาสาหรับทาการติดตั้ง
ส่วนเสริม PostGIS
6)
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
(1) หลังจากปรากฏหน้าต่าง Stack Builder ให้เลือก PostgreSQL 9.4(x64) on port 5432 และ
คลิก next
(2) เลือก PostGIS 2.1 ใน Spatial Extensions menu จากนั้นคลิก next
ดร
.สิท
ธิช
ัย
94
คลิก next รอให้ระบบทาการดาวน์โหลดโปรแกรม จากนั้นคลิก next
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
95
ยั น
เร ศ
วร
(20
1
6)
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
มห
าวทิ
ยาล
คลิก I Agree และคลิก check box ที่ Create spatial database จากนั้นคลิก next
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
เลือก path ไปโฟลเดอร์เดียวกับที่ได้ลงโปรแกรม PostgreSQL เอาไว้ จากนั้นคลิก Next และใส่ชื่อผู้
เข้าใช้และรหัสผ่านที่ได้กาหนดไว้ในขั้นตอนการลงโปรแกรม PostgerSQL
หากรหัสผ่านถูกต้อง โปรแกรมจะทาการสร้างฐานข้อมูลชื่อ postgis_21_sample ให้เปลี่ยน
ชื่อเป็น my_first_postgis จากนั้นให้คลิก install และคลิก Yes
ดร.สิทธิชัย ชูสาโรง
ยั น
เร ศ
วร
(20
1
6)
เอกสารประอบการสอน รายวิชา 104333
มห
าวทิ
ยาล
คลิก Yes เมื่อมีหน้าต่างใหม่ปรากฏขึ้นมาอีก 2 ครั้ง
ชูส
ำโร
ง
คลิก Finish เพื่อเป็นการเสร็จสิ้นการติดตั้งโปรแกรม PostgreSQL/PostGIS
Step3: การกาหนดค่า path System Variables เพื่อที่จะสามารถกาหนดการเข้าถึง
PostgreSQL ได้จากทุก path บนคาสั่ง command line
ดร
.สิท
ธิช
ัย
96
คลิกขวาที่ไอคอน My
Computer/Properties และคลิกที่
Advanced system settings
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
97
3
2
ยั น
เร ศ
วร
(20
1
6)
1
4
พิมพ์
มห
าวทิ
ยาล
เลือก Advanced Environment Variables. ในหน้าต่าง Environment Variables คลิกที่
Path ในช่อง System variables ตามรูปเพื่อให้เกิด highlight สีน้าเงิน จากนั้นคลิก Edit
ชูส
ำโร
ง
;C:\Program Files\PostgreSQL\9.4\bin
;C:\Program Files\PostgreSQL\9.4\lib
ดร
.สิท
ธิช
ัย
ต่อจากตัวอักษรสุดท้ายเดิมที่มีอยู่ (ในคู่มือนี้ใช้
PostgreSQL version 9.4 จึงพิมพ์ ;C:\Program Files\PostgreSQL\9.4\ ซึ่งบางเครื่องอาจจะไม่
เหมือนกันขึ้นอยู่กับเวอร์ชั่นที่เราใช้ สามารถตรวจสอบได้โดยเข้าไปที่ part ;C:\Program
Files\PostgreSQL\ แล้วเช้คดูว่ามีโฟลเดอร์ชื่อหมายเลขอะไร ดังรูป (ข้อควรระวัง: ต้องใส่
เครื่องหมาย ; ไว้ที่หน้า C:\ (;C:\.....))
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ทดสอบใน Command Prompt
ยาล
ยั น
เร ศ
วร
(20
1
6)
1. คลิกที่ Start Menu
2. พิมพ์ cmd (Enter)
ชูส
ำโร
ง
มห
าวทิ
3. พิมพ์คาสั่ง SQL สาหรับเรียกดูฐานข้อมูลทั้งหมด จากนั้นใส่รหัสผ่านของฐานข้อมูลที่ตั้งไว้ตอนลง
โปรแกรม
สังเกตุได้ว่า สามารถเรียกฐานข้อมูลทั้งหมดที่มีอยู่มาแสดงได้
psql –U postgres -l
ถึงแม้ว่าจะไม่ได้รันคาสั่งในโฟลเดอร์ที่ติดตั้งโปรแกรม
PostgreSQL ก็ตาม
4.4 ภาษา SQL และการทางานกับข้อมูล
ภาษาเอสคิวแอล (Structure Query Language, SQL) ภาษา SQL คือภาษามาตรฐาน
สาหรับทางานกับฐานข้อมูลเชิงสัมพันธ์ ภาษานี้มีใช้ในระบบฐานข้อมูลยอดนิยมทั้งหลายไม่ว่าจะเป็น
MySQL, Oracle, Microsoft SQL, PostgreSQL หรือ Sybase
ดร
.สิท
ธิช
ัย
98
SQL เป็นภาษาสอบถามเชิงโครงสร้างหรือเรียกว่า SEQUEL ออกเสียงว่า ซีเควล เป็นภาษา
สาหรับใช้ในซอฟต์แวร์ระบบจัดการฐานข้อมูลที่เป็นชนิดฐานข้อมูลเชิง สัมพันธ์ ซึ่งเดิมบริษัทไอบีเอ็ม
ได้สร้างขึ้นมาใช้กับ System R ในปี พ.ศ. 2513 เมื่อปี พ.ศ. 2523 ได้เปลี่ยนชื่อเป็น เอสคิวแอล แต่
ยังคงเรียกว่า
ซีเควลเหมือนเดิม แต่ ในปัจจุบันนิยมเรียกว่า เอสคิวแอล ภาษาเอสคิวแอล เป็น
ภาษาที่เขียน ง่าย ๆ มีประโยคเหมือนภาษาพูดทาให้ผู้เขียนคาสั่ง เขียนได้ง่าย และง่ายในการทา
ความเข้าใจ ซอฟต์แวร์สาหรับระบบจัดการฐาน ข้อมูลที่มีมาตรฐาน ANSI เหมือนกันสามารถนา
คาสั่งเหล่านี้ใช้ด้วยกันได้ เช่น Oracle9i ของบริษัท Oracle หรือ SQL Server ของบริษัท
ไมโครซอฟต์ เป็นต้น
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
99
ยั น
เร ศ
วร
(20
1
6)
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
ภาพที่ 4. 2 การทางานของภาษา SQL กับฐานข้อมูล
ยาล
4.4.1 ลักษณะการใช้งานของภาษา SQL
มห
าวทิ
ภาษา SQL เป็นส่วนประกอบหนึ่งของ DBMS มักพบใน DBMS เชิงสัมพันธ์หลายตัวและเป็น
ที่นิยมใช้ในปัจจุบัน ภาษา SQL ง่ายต่อการเรียนรู้ การใช้งานในภาษา SQLแบ่งเป็น 2 ลักษณะ คือ
ภาษา SQL ที่โต้ตอบได้ (interactive SQL) และภาษา SQL ที่ฝังในโปรแกรม (embedded SQL)
ชูส
ำโร
ง
4.4.1.1 ภาษา SQL ที่โต้ตอบได้ ใช้เพื่อปฏิบัติงานกับฐานข้อมูลโดยตรง เป็นการใช้คาสั่ง
ภาษา SQLสั่งงานบนจอภาพ โดยเรียกดูข้อมูลได้โดยตรงในขณะที่ทางาน เพื่อให้ได้ผลลัพธ์ที่นาไปใช้
ได้ ตัวอย่างเช่น ต้องการเรียกดูข้อมูลในคอลัมน์ S_NAME และ S_CLASS จากตาราง STUDENTS
จะใช้คาสั่งของภาษา SQL ดังนี้
ตัวอย่าง
กาหนดให้ตาราง STUDENTS มีรายละเอียดของตารางดังนี้
ดร
.สิท
ธิช
ัย
S_ID
560
561
562
563
564
S_NAME
Sittichai
Bomp
Shinji
Salein
Mamahit
S_ADDRESS
Bangkok
Uttatadit
Nampad
Manado
Phitsanulok
S_CLASS
1
1
2
3
3
จากนั้นใช้คาสั่ง
SELECT S_NAME, S_CLASS FROM STUDENTS;
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ผลของคาสั่งจะแสดงผลลัพธ์ดังนี้ทันที
6)
1
1
2
3
3
(20
1
Sittichai
Bomp
Shinji
Salein
Mamahit
(รายละเอียดจะได้ศึกษาต่อไป)
S_CLASS
ยั น
เร ศ
วร
S_NAME
มห
าวทิ
ยาล
4.4.1.2 ภาษา SQL ที่ฝังในโปรแกรม เป็นภาษา SQL ที่ประกอบด้วยคาสั่งต่าง ๆ ของ
ภาษา SQL ที่ใส่ไว้ในโปรแกรมที่ส่วนมากแล้วเขียนด้วยภาษาอื่น เช่น โคบอล ปาสคาล ภาษาซี
ลักษณะของคาสั่ง SQL จะแตกต่างจากภาษาอื่นๆ ในแง่ที่ว่า SQL ไม่มีคาสั่งที่เกี่ยวกับการควบคุม
(control statement)เหมือนภาษาอื่น เช่น if..then…else for…do หรือ loop หรือ while ทาให้มี
ข้อจากัดในการเขียนชุดคาสั่งงาน การใช้ภาษา SQL ฝังในโปรแกรมอื่นจะทาให้ภาษา SQL มี
ความสามารถและมีประสิทธิภาพมากยิ่งขึ้น ผลลัพธ์ของคาสั่งที่เกิดจากภาษา SQL ที่ฝังในโปรแกรม
จะถูกส่งผ่านไปให้กับตัวแปรหรือพารามิเตอร์ที่ใช้ โดยโปรแกรมที่ภาษา SQL ไปฝังตัวอยู่
ชูส
ำโร
ง
ทั้งภาษา SQL ที่โต้ตอบได้และภาษา SQL ที่ฝังในโปรแกรมจะมีลักษณะของคาสั่งที่ใช้งาน
เหมือนกัน จะต่างกันแต่เพียงภาษา SQL ที่ฝังในโปรแกรมจะมีวิธีการเชื่อมโยงกับภาษาอื่น ๆ
4.4.2 ประเภทของคาสั่ง SQL
คาสั่งในภาษา SQL สามารถแบ่งออกตามลักษณะการใช้งานได้เป็น 3 กลุ่มคือ
1. คาสั่งที่ใช้กาหนดโครงสร้างข้อมูล (Data Definition Language: DDL)
2. คาสั่งที่ใช้จัดการข้อมูล (Data Manipulation Language: DML)
3. คาสั่งที่ใช้ควบคุมระบบฐานข้อมูล (Data Control Language: DCL)
ดร
.สิท
ธิช
ัย
100
4.4.2.1 คาสั่งที่ใช้กาหนดโครงสร้างข้อมูล (Data Definition Language)
คาสั่งในกลุ่มนี้ใช้สาหรับสร้าง ลบ หรือเปลี่ยนแปลงโครงสร้างของตาราง วิว (View) และ อิน
เด็กซ์ (Index) โดยถ้าผู้ใช้ทั่วๆไป จะใช้คาสั่งในกลุ่มนี้ก็เพื่อใช้ในการจัดการกับตารางและวิวของ
ตัวเองเท่านั้น การจัดการกินเด็กซ์มักจะเป็นหน้าที่ผู้ดูแลระบบฐานข้อมูล
Data Definition Language (DDL) มีอยู่ทั้งหมด 3 คาสั่งคือ CREATE, ALTER และ DROP ซึง่
แต่ละคาสั่งมีหน้าที่ดังนี้
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
101
6)
คาสั่ง CREATE เป็นคาสั่งที่ใช้สร้างตารางขึ้นมาโดยกาหนดชื่อของตาราง กาหนด
โครงสร้างของตารางว่ามีคอลัมน์อะไรบ้าง และกาหนดว่าแต่ละคอลัมน์นั้นใช้เก็บ
ข้อมูลชนิดใด การสร้างตารางด้วยคาสั่งนี้จะได้ตารางเปล่าๆ ที่พร้อมจะนามาใช้เก็บ
ข้อมูลต่อไป
(20
1
เช่น
ยั น
เร ศ
วร
การสร้างตารางในภาษา SQL จะใช้คาสร้าง CREATE TABLE ซึ่งเป็นคาสั่งที่ใช้ในการสร้าง
ตารางขึ้นมาใหม่ คาสั่ง CREATE TABLE จะกาหนดชื่อตารางและกาหนดลักษณะข้อมูลเป็นคอลัมน์
ต่างๆที่ตั้งขึ้นในตารางรวมไปถึงชนิดของข้อมูลของแต่ละคอลัมน์นั้น ในโครงสร้างของคาสั่งการสร้าง
ตารางมีรูปแบบไวยากรณ์ดังต่อไปนี้
มห
าวทิ
ยาล
CREATE TABLE<table name>
(<column name>< >[<size>][[ constraint <constraint_name>]constraint_type]
[,<column name>data type>[<size>],………]);
ชูส
ำโร
ง
CREATE TABLE เป็นคาสั่งที่ต้องมีทุกครั้งที่ต้องการสร้างตาราง
table name ชื่อตารางที่ต้องการสร้าง
column name ชื่อของคอลัมน์แต่ละคอลัมน์
data type ชนิดข้อมูลของคอลัมน์นั้นๆ
constraint ข้อกาหนดของคอลัมน์
constraint_name ชื่อของข้อกาหนดที่ต้องการสร้างให้กับคอลัมน์
constraint_type ประเภทของข้อกาหนด
ดร
.สิท
ธิช
ัย
ตัวอย่าง การสร้างตารางพนักงานขาย
CREATE TABLE SALESTAB
(SALENO integer,
SALENAME char (10),
ADDRESS char (10),
SALECOM decimal);
จากคาสั่งจะทาให้ได้ตารางพนักงานขายที่มีคอลัมน์ SALENO มีชนิดข้อมูลเป็น integer
คอลัมน์ SALENAME มีชนิดข้อมูลเป็น char มีความยาว 10 ตัวอักษร คอลัมน์ ADDRESS มีชนิด
ข้อมูลเป็น char มีความยาว 10 ตัวอักษร และคอลัมน์ SALECOM มีชนิดข้อมูลเป็น decimal
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ผลของคาสั่งการสร้างตารางจะได้ตารางพนักงานขายที่ยังไม่มีข้อมูลใดๆ
ของตารางเท่านั้นดังนี้
ADDRESS
SALECOM
6)
SALENAME
ยั น
เร ศ
วร
(20
1
SALENO
เป็นเพียงแต่โครง
ยาล
คาสั่ง ALTER หลังจากสร้างตารางขึ้นมาแล้วถ้าเราต้องการเปลี่ยนแปลงโครงสร้าง
ตารางเช่น การลบคอลัมน์และการเพิ่มคอลัมน์ใหม่เข้าไปในตาราง ก็ทาได้ด้วยคาสั่งนี้
คาสั่ง DROP ใช้ลบตารางที่ไม่ต้องการออกจากระบบฐานข้อมูล
4.4.2.2 คาสั่งที่ใช้ในการจัดการข้อมูล (Data Manipulation Language)
มห
าวทิ
Data Manipulation Language (DML) เป็นกลุ่มคาสั่งที่มีการใช้งานมากที่สุด คาสั่งกลุ่มนี้
แยกเป็นกลุ่มย่อยได้อีก 2 กลุ่มคือ คาสั่งที่ใช้เรียกดูข้อมูล (Retrieval Operation) และคาสั่ที่ใช้อัฟ
เดทข้อมูล (Update Operation)
ชูส
ำโร
ง
คาสั่งที่ใช้เรียกดูข้อมูลมีเพียงคาสั่งเดียวคือ คาสั่ง SELECT ซึ่งใช้ในการค้นหาข้อมูลที่
ต้องการขึ้นมาใช้งาน คาสั่ง SELECT เป็นคาสั่งที่มีความสาคัญมากถ้าเราต้องการนาข้อมูลที่เก็บอยู่ใน
ฐานข้อมูลมาใช้ เรียกว่าแค่รู้คาสั่งนี้คาสั่งเดียวก็สามารถทางานกับ Relational Database ได้เป็น
อย่างดี
สาหรับคาสั่งอีกกลุ่มหนึ่งที่ใช้อัฟเดตข้อมูลนั้นประกอบด้วย 3 คาสั่งดังนี้
คาสั่ง INSERT คาสั่งนี้ใช้สาหรับเก็บข้อมูลลงไปในตารางโดยจะมีการสร้างแถวขึ้นมา
ใหม่เพื่อให้เก็บข้อมูลเข้าไปในคอลัมน์ต่างๆ ที่เหมาะสม ดังนั้นหลังจากใช้คาสั่งนี้ จานวน
แถวในตารางจึงเพิ่มขึ้น
คาสั่ง UPDATE เป็นคาสั่งที่ใช้แก้ไขค่าของข้อมูลที่เก็บอยู่ในตาราง
คาสั่ง DELETE เป็นคาสั่งที่ใช้ลบแถวในตารางที่เราไม่ต้องการใช้งานข้อมูลแถวนั้นๆแล้ว
ดร
.สิท
ธิช
ัย
102
4.4.2.3 คาสั่งที่ใช้ในการควบคุมระบบฐานข้อมูล (Data Control Language)
คาสั่งใน Data Control Language (DCL) เป็นคาสั่งที่เกี่ยวข้องกับการกาหนดสิทธิของผู้ใช้
ในการเข้าถึงทรัพยากรของระบบฐานข้อมูล (เช่น ตาราง) โดยผู้ดูแลระบบฐานข้อมูลจะใช้คาส่งใน
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
103
กลุ่มนี้กาหนดสิทธิให้กับผู้ใช้แต่ละคน หรือผู้ใช้จะกาหนดสิทธิเพื่ออนุญาตให้ผุ้อื่นมาใช้ทรัพยากรที่
ตนเองเป็นเจ้าของก็ได้ คาสั่งที่ใช้กาหนดสิทธิในการใช้งานมี 2 คาสั่ง ได้แก่
4.4.2.4 สรุปประเภทของคาสั่งต่างๆใน SQL
ใช้ได้กับ
เทเบิล,ฟีลด์
INSERT
UPDATE
DELETE
INDEX
ALTER
เทเบิล,ฟีลด์
เทเบิล,ฟีลด์
เทเบิล
เทเบิล
เทเบิล
CREATE
DROP
ฐานข้อมูล, เทเบิล
ฐานข้อมูล, เทเบิล
คาอธิบาย
คาสั่งสาหรับคัดเลือกเรคอร์ดจากเทเบิล(อ่านหรือดึงแถวข้อมูลมา
ใช้งาน
ใช้เพิ่มเรคอร์ดเข้าสู่เทเบิลได้
คาสั่งแก้ไขค่าเรคอร์ดที่มีอยู่แล้ว
คาสั่งลบเรคอร์ดในเทเบิล
คาสั่งสาหรับทาหรือยกเลิกการทาดัชนี (Index) ให้กับเทเบิล
คาสั่งแก้ไขโครงสร้างของเทเบิล เช่น พิมพ์ฟีลด์ (คอลัมน์)ใหม่,
เปลี่ยนชื่อฟีลด์หรือชื่อเทเบิล, เปลี่ยนชนิดของฟีลด์ เป็นต้น
คาสั่งสร้างฐานข้อมูลหรือเทเบิลใหม่
คาสั่งลบฐานข้อมูลหรือเทเบิล
ชูส
ำโร
ง
มห
าวทิ
ยาล
สิทธิ
SELECT
ยั น
เร ศ
วร
(20
1
6)
คาสั่ง GRANT เป็นคาสั่งที่ใช้กาหนดสิทธิให้กับผู้ใช้คนอื่นเพื่อให้สามารถใช้งาน
ทรัพยากรที่จาเป็นได้
คาสั่ง REVOKE เป็นคาสั่งที่ใช้ยกเลิกหรือเรียกคืนสิทธิที่เคยให้ไว้ กาให้ผู้ใช้ที่ถูกยกเลิก
ไม่สามารถใช้งานทรัพยากรเดิมได้อีก
ดร
.สิท
ธิช
ัย
4.4.3 ชนิดของข้อมูลในภาษา SQL
เมื่อสร้างเทเบิล คุณจะต้องกาหนดชนิดของข้อมูลให้กับฟีลด์ต่างๆ ตารางนี้แสดงชนิดของ
ข้อมูลของ SQL ที่ใช้บ่อย
ชนิดข้อมูล
INT
FLOAT[(M,D)]
CHAR(M)
คาอธิบาย
เลขจานวนเต็มตั้งแต่ -231 ถึง 231-1 หรือ 0 ถึง 232-1 (กรณีระบุ
UNSINGED)
เลขจานวนทศนิยม โดย M คือจานวนตัวเลขทั้งหมดที่ให้เก็บได้, D คือ
จานนตัวเลขหลังจุดทศนิยมที่ยอมให้เก็บได้ (เครื่องหมาย [] ที่ครอบ
(M,D) หมายความว่าส่วนนี้จะมีหรือไม่มีก็ได้
ข้อความแบบ fixed-length ที่มีความยาวสูงสุด M ตัวอักษร
ดร.สิทธิชัย ชูสาโรง
DATE
TIME
DATETIME
(20
1
TEXT หรือ BLOB
4.5 การใช้งาน PostgreSQL
ยั น
เร ศ
วร
VARCHAR(M)
(M มีค่าตั้งแต่ 0 - 255)
ข้อความแบบ variable-length ที่มีความยาวสูงสุด M ตัวอักษร
(M มีค่าตั้งแต่ 0 - 65353)
ข้อความหรือข้อมูลไบนารี (Binary Data) เช่นข้อมูลภาพ ขนาดสูงสุด
65,353 ไบต์
วัน เดือน ปี รูปแบบ “YYYY-MM-DD”
เวลา รูปแบบ “HH:MM:SS”
วัน เดือน ปี และเวลา รูปแบบ “YYYY-MM-DD HH:MM:SS”
6)
เอกสารประอบการสอน รายวิชา 104333
มห
าวทิ
ยาล
1. เริ่มการใช้งานโปรแกรม PgAdmin III
PgAdmin III คือ โปรแกรมสาหรับช่วยในการเขียน SQL กับฐานข้อมูล PostgreSQL
Navigate to the PostgreSQL menu item and run PgAdmin III.
ชูส
ำโร
ง
Double click ที่คาว่า “PostgreSQL 9.4 (localhost:5432)”. จะปรากฏหน้าต่าง
Connect to Server ให้ใส่ Password ตอนที่ลงโปรแกรมไปเพื่อทาการเชื่อต่อกับ
ฐานข้อมูล
ดร
.สิท
ธิช
ัย
104
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
105
คลิกที่ “Edit New Object New Database” เพื่อทาการสร้างฐานข้อมูล
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
ขึ้นมาใหม่
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
สร้างฐานข้อมูลใหม่ชื่อ “NU”, Owner= “postgres” , Template= “template0” ,
Encoding= UTF8 ดังรูป
ดร.สิทธิชัย ชูสาโรง
ยาล
ยั น
เร ศ
วร
(20
1
6)
เอกสารประอบการสอน รายวิชา 104333
คลิกที่ฐานข้อมูล “NU” ที่สร้างขึ้นมาใหม่ จากนั้นคลิกที่ SQL tool.
ชูส
ำโร
ง
มห
าวทิ
หน้าต่างสาหรับการพิมพ์คาสั่งภาษา SQL
ดร
.สิท
ธิช
ัย
106
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
เพื่อเปิด
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
107
4.5.1 การสร้างเทเบิล (Create Table)
(20
1
6)
ตาราง หรือ Table เป็นสิ่งที่จะต้องสร้างขึ้นมาก่อนจึงจะเก็บข้อมูลได้ ดังนั้น คาสั่ง SQL
คาสั่งแรกที่เราจะศึกษากันคือ คาสั่ง Create Table ซึง่ เป็นคาสั่งที่ใช้สร้างตารางขึ้นมานั่นเอง โดย
กาหนดชื่อของตาราง กาหนดโครงสร้างตารางว่ามีคอลัมน์อะไรบ้าง และกาหนดว่าแต่ละคอลัมน์นั้น
ใช้เก็บข้อมูลชนิดใด การจัดการอินเด็กซ์มักจะเป็นหน้าที่ของผู้ดูแลระบบ
Id
s_id
s_name
birthday
sub_id
ยาล
Students
register
year
มห
าวทิ
s_id
ยั น
เร ศ
วร
ตอนนี้ฐานข้อมูล NU ยังไม่มีเทเบิลใดๆ ดังนั้นขั้นต่อไปเราจะสร้างเทเบิลต่างๆขึ้นมาตาม
Schema ที่ออกแบบไว้ในบทที่แล้วดังรูป
class
advisor
score
grade
credit
book
club
subject
sub_name
teacher
ชูส
ำโร
ง
sub_id
1. สร้างเทเบิล students สาหรับเก็บข้อมูลนิสิต
ดร
.สิท
ธิช
ัย
CREATE TABLE students (
id numeric(100,0) NOT NULL,
s_id numeric(100,0) NOT NULL,
s_name text,
birthday date,
class numeric(100,0),
advisor text,club text )
WITH (OIDS=FALSE);
ALTER TABLE students OWNER TO postgres;
ALTER TABLE students ADD CONSTRAINT studentid_pkey PRIMARY KEY (s_id);
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
เมื่อพิมพ์คาสั่งนี้เรียบร้อยแล้วให้คลิกที่
2. สร้างเทเบิล subject สาหรับเก็บข้อมูลรายวิชาที่ลงทะเบียนเรียน
CREATE TABLE subject (
sub_id numeric(100,0) NOT NULL,
sub_name text,
credit numeric(100,0),
book text,
teacher text
)
WITH ( OIDS=FALSE);
ALTER TABLE subject OWNER TO postgres;
ALTER TABLE subject ADD CONSTRAINT subjectid_pkey PRIMARY KEY (sub_id)
ดร
.สิท
ธิช
ัย
108
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
109
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
ตอนนี้ในฐานข้อมูล NU มีข้อมูลอยู่ 2 เทเบิลและในแต่ละเทเบิลก็มีข้อมูล columns ที่ถูกสร้างขึ้นมา
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
6)
3. สร้างเทเบิล register สาหรับเก็บข้อมูล คะแนน และเกรดของแต่ละรายละวิชาในแต่ละปี
โดยให้มีฟีลด์ดังต่อไปนี้
(20
1
s_id numeric(100,0) NOT NULL, sub_id numeric(100,0) NOT NULL, term numeric(100,0),
year numeric(100,0), score numeric(100,0), grade text);
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
จะเห็นว่าตอนนี้ฐานข้อมูล NU มีเทเบิลอยู่ภายในจานวน 3 เทเบิลที่เราต้องการแล้ว
ดร
.สิท
ธิช
ัย
110
ความหมายของคีย์เวิร์ด (keyword) ต่างๆในการสร้างเทเบิล
NOT NULL กาหนดว่าฟีลด์นั้นต้องมีค่า (ห้ามมีค่า NULL)
PRIMARY KEY เมื่อใช้ตามหลังชื่อฟีลด์จะกาหนดฟีลด์ที่เป็น PRIMARY KEY ของเทเบิล คี
เวิร์ดนี้จะระบุไว้หลังชื่อฟีลด์ได้เพียงฟีลด์เดียวเท่านั้น
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
111
4.5.2 การปรับแก้โครงสร้างเทเบิล (Alter Table)
(20
1
6)
หลังจากสร้างตารางขึ้นมาแล้วถ้าเราต้องการเปลี่ยนแปลงโครงสร้างของตาราง หรือ ถ้าเรามี
ความจาเป็นต้องแก้ไขตาราง เช่น อาจจะมีการควบคุมความถูกต้องของข้อมูลด้วย Foreign key
เพิ่มเติมให้กับบางคอลัมน์ หรือ อาจจะมีการการลบหรือเพิ่มคอลัมน์ใหม่เข้าไปในตาราง ก็ทาได้ด้วย
คาสั่งนี้
ยั น
เร ศ
วร
ตัวอย่าง การเพิ่มคอลัมน์
ชูส
ำโร
ง
มห
าวทิ
ยาล
ALTER TABLE students ADD COLUMN tel numeric;
ดร
.สิท
ธิช
ัย
เทเบิลเก่า
เทเบิลใหม่หลังจากใช้คาสี่ง ALTER TABLE เพิ่มคอลัมน์เบอร์โทรศัพท์เข้ามา
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
การลบคอลัมน์
(20
1
6)
ALTER TABLE students DROP COLUMN tel;
การกาหนด Constraint ใหม่ให้กับตาราง
4.5.3 การลบเทเบิล (Drop Table)
ยั น
เร ศ
วร
ALTER TABLE students ADD CONSTRAINT studentid_pkey PRIMARY KEY (s_id);
ตัวอย่าง
ชูส
ำโร
ง
DROP TABLE students;
มห
าวทิ
ยาล
ถ้าไม่มีความจาเป็นที่จะต้องใช้เทเบิลใดแล้วเราสามารถลบเทเบิลดังกล่าวออกจากฐานข้อมูล
ได้ โดยการลบเทเบิลจะมีผลทันทีไม่ว่าจะมีข้อมูลอยู่ในเทเบิลหรือไม่ก็ตาม แต่ถ้าในเทเบิลดังกล่าวมี
การกาหนดความสัมพันธ์กับเทเบิลอื่นไว้ เช่น มี Foreign key จากตารางอื่นอ้างถึง เราจะไม่สามารถ
ลบเทเบิลดังกล่าวได้ถ้าไม่ได้ลบความสัมพันธ์ที่มีอยู่ออกไปเสียก่อน
ดร
.สิท
ธิช
ัย
112
จากคาสั่งนี้ จะเห็นว่าเทเบิลที่ชื่อ
students ในฐานข้อมูล NU จะหายไป
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
113
การจัดการข้อมูล (Data Manipulation)
4.5.4 การเพิ่มข้อมูลเข้าสู่ฐานข้อมูล (INSERT)
(20
1
ใช้สาหรับคิวรี่/เรียกดูข้อมูลในฐานข้อมูล
ใช้สาหรับเพิ่มข้อมูลลงในตาราง
ใช้สาหรับอัปเดตข้อมูลในตาราง
ใช้สาหรับลบข้อมูลในตาราง
ยั น
เร ศ
วร
SELECT
INSERT
UPDATE
DELETE
6)
ภาษาจัดการข้อมูลหรือคาสั่ง DML ใน SQL ประกอบด้วยกลุ่มคาสั่งต่างๆ ดังต่อไปนี้
มห
าวทิ
ยาล
หลังจากสร้างเทเบิลขึ้นมาแล้วเราจะได้เทเบิลเปล่าๆที่ยังไม่มีข้อมูลใดๆ อยู่เลย การนาเทเบิลไป
ใช้จะต้องมีการเก็บข้อมูลลงไปในเทเบิล ซึ่งปกติเมื่อสร้างเทเบิลเสร็จแล้วก็มักจะมีการเพิ่มข้อมูลให้กับ
เทเบิลนั้นๆ ทันที และเมื่อใช้งานเทเบิลไปแล้ว ก็อาจจะมีการเพิ่มข้อมูลใหม่ๆ ให้กับเทเบิลอยู่เรื่อยๆ
โดย คาสั่งในภาษา SQL ที่ใช้เพิ่มเรคอร์ดหรือแถวขอ้มูลเข้าสู่เทเบิลในฐานข้อมูลคือ INSERT ซึ่งมี
รูปแบบดังนี้
INSERT INTO เทเบิล [(ฟีลด์1, ฟีลด์2, ฟีลด์3, …)] VALUES (ค่า1, ค่า2, ค่า3, …);
ชูส
ำโร
ง
เช่นถ้าต้องการเรคอร์ดใหม่เข้าสู่เทเบิล students ในฐานข้อมูล NU
INSERT INTO students
VALUES (1,1345,'สมชาย ใจดี', '1990-08-30',3,'อาจารย์ เอ','ภูมิศาสตร์', 0815556489);
ดร
.สิท
ธิช
ัย
ตัวอย่างนี้จะเพิ่มข้อมูลลงในเทเบิล students จานวน 1 เรคอร์ด โดยกาหนดค่า 1,1345,'สมชาย ใจ
ดี', '1990-08-30',3,'อาจารย์ เอ' และ 'ภูมิศาสตร์' ตามลาดับ
ถ้าหากต้องการเพิ่มเรคอร์ดใหม่โดยกาหนดค่าเพียงบางฟีลด์ หรือกาหนดค่าของฟีลด์ต่างๆ
โดยใช้กาลับที่ไม่ตางกับลาดับของฟีลด์ในเทเบิล ให้ระบุชื่อฟีลด์ในคาสั่งด้วย เช่น
INSERT INTO students (s_name,class) VALUES (‘สมชาย ใจดี’, 3 );
คือการเพิ่มเรคอร์ดใหม่เข้าสู่เทเบิล students โดยกาหนดค่า ‘สมชาย ใจดี’ ลงในฟีลด์ s_name
และกาหนดค่า 3 ลงในฟีลด์ class สาหรับฟีลด์อื่นๆที่ไม่ได้ระบุนั้นจะเทียบเท่ากับกาหนดค่า NULL
ลงไป
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
การเพิ่มข้อมูลทีละหลายเรคอร์ด
ชูส
ำโร
ง
(20
1
มห
าวทิ
ยาล
ยั น
เร ศ
วร
insert into students(id,s_id,s_name,birthday,class,advisor,club,tel)
values (1,1345,'สมชาย ใจดี', '1990-08-30',3,'อาจารย์ เอ','ภูมิศาสตร์', 0815556489);
insert into students(id,s_id,s_name,birthday,class,advisor,club,tel)
values (2,1350,'บ่าววี สีสุข', '1990-07-13',3,'อาจารย์ เอ','สิ่งแวดล้อม', 0978945632);
insert into students(id,s_id,s_name,birthday,class,advisor,club,tel)
values (3,1322,'หลวงไก่ ไพเราะ', '1989-02-14',3,'อาจารย์ บี','ภูมิศาสตร์', 0872330222);
insert into students(id,s_id,s_name,birthday,class,advisor,club,tel)
values (4,1313,'กระแต แลรัก', '1990-09-21',3,'อาจารย์ บี','อนุรักษ์', 099852741);
insert into students(id,s_id,s_name,birthday,class,advisor)
values (5,1399,'ใบเตย เฉยเมย', '1990-01-10',3,'อาจารย์ ซี');
6)
คุณสามารถเพิ่มข้อมูลมากกว่า 1 เรคอร์ดได้ในคาสั่งเดียว คาสั่งต่อไปนี้จะเพิ่มข้อมูล
ตัวอย่าง การเพิ่มข้อมูลลงในเทเบิล students
ต่อไปทาการตรวจสอบข้อมูลที่นาเข้าไปในเทเบิลโดยคลิกที่ชื่อเทเบิล students และไปคลิกที่ View
the data in the selected object. ดังรูปที่แสดงอยู่ข้างล่าง
ดร
.สิท
ธิช
ัย
114
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
115
คาสั่ง เพิ่มข้อมูลลงในเทเบิล subject
ยั น
เร ศ
วร
(20
1
6)
ตารางแสดงรายละเอียดข้อมูลเทเบิลที่มีชื่อว่า students
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
insert into subject(id,sub_id,sub_name,credit,book,teacher) values
(1,104261,'ภูมิศาสตร์เมือง', 3,'Urban Geography','อาจารย์ บี'),
(2,104333,'ฐานข้อมูล', 3,'DBMS','อาจารย์ เอ'),
(3,104545,'สัมมนา', 6,'seminar','อาจารย์ ซี');
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ยั น
เร ศ
วร
--ข้อมูลการเรียนของ หลวงไก่ ไพเราะ
insert into register(s_id,sub_id,term,year,score,grade) values
(1322,104261,1,2557,60,'C'), (1322,104333,1,2557,75,'B'), (1322,104545,2,2558,89,'A');
(20
1
--ข้อมูลการเรียนของ กระแต แลรัก
insert into register(s_id,sub_id,term,year,score,grade) values (1313,104261,1,2557,80,'A');
insert into register(s_id,sub_id,term,year,score,grade) values (1313,104333,1,2557,90,'A');
insert into register(s_id,sub_id,term,year,score,grade) values (1313,104545,2,2558,70,'B');
6)
คาสั่ง เพิ่มข้อมูลลงในเทเบิล register
--ข้อมูลการเรียนของ สมชาย ใจดี
insert into register(s_id,sub_id,term,year,score,grade) values
(1345,104261,1,2557,71,'B'),(1345,104333,1,2557,56,'D'),(1345,104545,2,2558,67,'C');
ยาล
--ข้อมูลการเรียนของ บ่าววี สีสุข
insert into register(s_id,sub_id,term,year,score,grade) values
(1350,104261,1,2557,91,'A'), (1350,104333,1,2557,79,'B'), (1350,104545,2,2558,81,'A');
ชูส
ำโร
ง
มห
าวทิ
--ข้อมูลการเรียนของ ใบเตย เฉยเมย
insert into register(s_id,sub_id,term,year,score,grade) values
(1399,104261,1,2557,72,'B'),(1399,104333,1,2557,88,'A'), (1399,104545,2,2558,61,'C');
ดร
.สิท
ธิช
ัย
116
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
117
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
ถึงขึ้นตอนนี้ ในฐานข้อมูล NU จะมีเทเบิลอยู่ 3 เทเบิลพร้อมทั้งรายละเอียดดังนี้
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
(20
1
เราสามารถนาข้อมูลซึ่งเก็บอยู่ในฐานข้อมูลมาใช้ประโยชน์ได้มากมาย ไม่ว่าจะเป็นการนามา
ทาสถิติ ทารายงานหรือวิเคราะห์ปัญหาก็ตาม ตัวอย่างเช่น ในห้องสมุดที่มีการเก็บข้อมูลการยืม-คืน
หนังสือนั้นเราสามารถนาข้อมูลที่เก็บไว้มาทารายงานได้ว่ามีจานวนผู้ใช่ต่อช่วงเวลาหนึ่งๆ มากเพียงไร
และยังสามารถนามาใช้วิเคราะห์ได้ว่าควรจะจัดซื้อหนังสือเล่มใดเพิ่มหรือไม่ โดยดูจากสถิติว่าหนังสือ
เล่มใดบ้างที่ถูกยืมบ่อยครั้งหรือมีการจองต่อกันเป็นจานวนมาก
6)
4.5.5 การเรียกข้อมูลจากฐานข้อมูลมาแสดง (SELECT)
ยาล
ยั น
เร ศ
วร
ในการจาข้อมูลมาใช้ประโยชน์ดังที่กล่าวมาข้างต้นสามารถทาได้โดยคิวรี (Query) ข้อมูล
ขึ้นมาด้วยคาสั่ง SELECT ซึ่งเป็นหนึ่งในกลุ่มคาสั่ง Data Manipulation Language (DML) คาสั่ง
SELECT เป็นคาสั่งที่มีการใช้งานมากที่สุดในบรรดาคาสั่งที่มีอยู่ในภาษา SQL ถือได้ว่าเป็นหัวใจของ
ภาษา SQL ทีใ่ ช้ดึงข้อมูลจากฐานข้อมูลโดยการคัดเลือกเรคอร์ดที่มีเงือนไขหนึ่งๆจากเทเบิล คาสั่งนี้มี
รูปแบบการใช้งานหลากหลาย รูปแบบง่ายที่สุดจะใช้ดึงข้อมูลทุกเรคอร์ดจากเทเบิลอย่างไม่มีเงือนไข
แต่สามารถเลือกได้ว่าจะเอาข้อมูลในฟีลด์ใดบ้าง รูปแบบคือ
เช่นถ้าพิมพ์ว่า
มห
าวทิ
SELECT ฟีลด์ FROM เทเบิล;
ชูส
ำโร
ง
SELECT * FROM students; ( * หมายถึง ทั้งหมด )
คาสั่งนี้หมายความว่า เลือกทุกฟีลด์และทุกเรคอร์ดที่อยู่ในเทเบิล students มาแสดง
ดร
.สิท
ธิช
ัย
118
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
119
การเรียกฐานข้อมูลมาแสดงเพียงบางคอลัมน์
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
SELECT s_id, s_name FROM students;
( ระบุชื่อคอลัมน์ที่ต้องการเรียนมาแสดงไว้หลัง SELECT )
การเรียกฐานข้อมูลมาแสดงแบบมีเงื่อนไข
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
การสอบถามหรือการคิวรีข้อมูลจากคาสั่ง SELECT เป็นประโยคคาสั่งที่นามาใช้งานมากที่สุด
มีรูปแบบการใช้งานอยู่หลายรูปแบบไม่ว่าจะเป็นการสอบถามข้อมูลพื้นที่ฐานดังตัวอย่างที่ผ่านมา
หรือเป็นการสอบถามข้อมูลพร้อมเงื่อนไขประกอบ รวมทั้งการสอบถามเพื่อเรียกดูข้อมูลจากหลายๆ
ตารางซึ่งรูปแบบการใช้งานดังนี้
SELECT [ชื่อคอลัมน์หรือนิพจน์ หรือ ทั้งหมด]
FROM ชื่อเทเบิล
WHERE เงื่อนไขที่สร้างขึ้นเพื่อกลั่นกรองข้อมูลแต่ละแถวที่ต้องการ
GROUT BY รายการคอลัมน์ (จัดกลุ่มในแถวที่มีค่าคอลัมน์เดียวกัน)
ORDER BY รายการคอลัมน์ (กาหนดให้เรียงลาดับผลลัพ์ โดยที่ ASC คือการเรียงจากน้อยไป
มาก/ DESC คือการเรียงจากมากไปน้อย)
ในการดึงข้อมูลมาใช้งาน บ่อยครั้งเราไม่ได้ต้องการดึงมาทุกเรคอร์ด แต่อาจจะต้องการ
เฉพาะเรคอร์ดที่มีเงื่อนไขหนึ่งๆเท่านั้น รูปแบบของคาสั่ง SELECT ที่ใช้ดึงข้อมูลแบบมีเงื่อนไข คือ
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
6)
SELECT ฟีลด์ FROM เทเบิล WHERE เงื่อนไข;
(20
1
เช่นคาสั่งนี้จะดึงข้อมูลนิสิตที่มีอาจารย์ บี เป็นอาจารย์ที่ปรึกษา
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
SELECT * FROM students WHERE advisor='อาจารย์ บี';
นอกจากตัวดาเนินการ = ทีใช้เปรียบเทียบความเท่ากันแล้ว ภาษา SQL ยังมีตัวดาเนินการ
อื่นๆอีกมากมาย ตารางนี้แสดงตัวดาเนินการในภาษา SQL ที่ใช้บ่อย
ตัวดาเนินการ
=
>
<
>=
คาอธิบาย
เปรียบเทียบว่าค่าสองค่าเท่ากันหรือไม่
เปรียบเทียบว่าค่าหนึ่งมากกว่าอีกค่าหนึ่งหรือไม่
เปรียบเทียบว่าค่าหนึ่งน้อยกว่าอีกค่าหนึ่งหรือไม่
เปรียบเทียบว่าค่าหนึ่งมากกว่าหรือเท่ากับอีกค่า
หนึ่งหรือไม่
เปรียบเทียบว่าค่าหนึ่งน้อยกว่าหรือเท่ากับอีกค่า
หนึ่งหรือไม่
เปรียบเทียบว่าค่าสองค่าไม่เท่ากันใช่หรือไม่
ตรวจสอบว่าฟีลด์ไม่มีค่า (มีค่า NULL) ใช่หรือไม่
ตรวจสอบว่าค่านั้นอยู่ในช่วงที่ระบุหรือไม่
ดร
.สิท
ธิช
ัย
120
<=
!= หรือ <>
IS NULL
BETWEEN
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
ตัวอย่าง
Class=3
Score > 80
Score < 80
Score >= 80
Score <= 80
Score != 80
Club IS NULL
Score BETWEEN 70 AND
79
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
IN
มห
าวทิ
AND
ยั น
เร ศ
วร
OR
ยาล
NOT
(20
1
6)
LIKE
ตรวจสอบว่าค่านั้นตรงกับค่าในค่าหนึ่งในกลุ่มที่
Country IN
ระบุหรือไม่
(‘Phitsanulok’,’Uttaradit’)
ตรวจสอบว่าค่านั้นสอดคล้องกับรูปแบบหรือแพ
s_name LIKE ‘สม%’
ทเทิร์นที่กาหนดหรือไม่ โดยใช้การทา Pattern
Matching อย่างง่าย ซึ่งเครื่องหมาย % จะแทน
ตัวอักษรใดๆจานวนกี่ตัวก็ได้ และเครื่องหมาย _
(ขีดล่าง) จะแทนตัวอักษรใดๆจานวน 1 ตัว
ทาให้เงื่อนไขเป็นตรงข้อม เช่น NOT (students NOT
class = 3) หมายถึง “class ของ students ไม่ (students class = 3)
เท่ากับ 3” เทียบเท่ากับ students !=3 คุณอาจใช้
NOT ร่วมกัน IS NULL, BETWEEN, NOT IN และ
NOT LIKE ตามลาดับ
เชื่อมเงือนไข 2 ชุดเข้าด้วยตรรกะ “หรือ” (or)
(s_name LIKE ‘สม%’ or
(class=3)
เชื่อมเงือนไข 2 ชุดเข้าด้วยกันด้วยตรรกะ “และ” (s_name LIKE ‘สม%’ AND
(And)
(class=3)
121
ตัวอย่างการดึงข้อมูลแบบมีเงื่อนไข
ชูส
ำโร
ง
หารายวิชาที่มีหน่วยกิต (credit) น้อยกว่า 6 (ต้องการเฉพาะชื่อวิชา จึงเลือกฟีลด์
sub_name เพียงฟีลด์เดียว
ดร
.สิท
ธิช
ัย
SELECT sub_name FROM subject where credit <6;
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
หานิสิตที่ไม่มีได้เป็นสมาชิกชมรมใดๆ
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
SELECT * FROM students WHERE club IS NULL;
หาจานวนรายวิชาที่มีคะแนนอยู่ในช่วง 70-79 (มากกว่าหรือเท่ากับ 70 แต่ไม่เกิน 79)
ชูส
ำโร
ง
SELECT * FROM register WHERE score BETWEEN 70 AND 79;
ดร
.สิท
ธิช
ัย
122
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
123
หาข้อมูลนิสิตที่มีชื่อขึ้นต้นด้วยคาว่า “หลวง” หรือมีรหัสนิสิต = 1399
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
SELECT * FROM students WHERE s_name LIKE 'หลวง%' OR s_id=1399;
การกาหนดลาดับของเรคอร์ดที่ดึงมา
ชูส
ำโร
ง
คุณสามารถกาหนดลาดับของเรคอร์ดที่ดึงมาจากฐานข้อมูลได้โดยเพิ่มส่วนของ ORDER BY
ลงไปในคาสั่ง SELECT เช่น
SELECT * FROM students ORDER BY id;
ดร
.สิท
ธิช
ัย
คือการดึงข้อมูลนิสิตทุกคนจากเทเบิล students โดยให้เรียงลาดับตามรหัสนิสิต ผลลัพธ์คือ
ดร.สิทธิชัย ชูสาโรง
การจากัดเรคอร์ดที่ดึงมา
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
การเรียงลาดับจากน้อยไปหามาก (ascending order) คือไล่จาก a ไป z , สระ ไป
พยัญชนะ , เลขจากน้อยไปหามาก แต่ถ้าต้องการให้เรียงจากมากไปหาน้อย (descending order)
จะต้องระบุ DESC ต่อท้าย เช่น
SELECT * FROM students ORDER BY id DESC;
6)
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
คุณสามารถจากัดเรคอร์ดที่ดึงมาให้เหลือแค่เพียงบางส่วน ซึ่งจะมีประโยชน์มากสาหรับเว็บ
แอพพลิเคชั่น เพราะเราอาจแสดงเรคอร์ดที่ดึงมาจากฐานข้อมูลดดยแบ่งออกเป็นหลายๆหน้า แทนที่
จะแสดงทั้งหมดในหน้าเดียว เพื่อไม่ให้ผู้ใช้เสียเวลาโหลดเพจนานเกินไป
การจากัดเรคอร์ดให้ระบุ LIMIT m ลงไปในคาสั่ง SELECT โดย m คือหมายเลขของ
จานวนเรคอร์ดที่ต้องการ ตัวอย่างนี้จะจากัดผลลัพธ์ให้เหลือ 3 เรคอร์ด
SELECT * FROM students LIMIT 3;
ดร
.สิท
ธิช
ัย
124
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
125
การดึงข้อมูลจากหลายเทเบิล
(20
1
6)
การใช้คาสั่ง SELECT ที่ผ่านมาทั้งหมดเป็นการดึงข้อมูลจากเทเบิลเดียว แต่บ่อยครั้งเรา
ต้องการข้อมูลจากเทเบิลมากกว่า 1 เทเบิล เพื่อตอบคาถาม เช่น มีนิสิตชื่ออะไรบ้าง(หาชื่อนิสิต) ที่ได้
เกรด A วิชา ภูมิศาสตร์เมือง ซึ่งต้องใช้ข้อมูลจากเทเบิล register และเทเบิล students ประกอบกัน
เนื่องจากเทเบิล register เก็บแค่รหัสนิสิต แต่ไม่ได้เก็บชื่อนิสิต
ยั น
เร ศ
วร
การดึงข้อมูลจากหลายเทเบิลในคาสั่งเดียวนั้นจะต้องใช้คุณสมบัติของภาษา SQL ที่เรียกว่า
JOIN ซึ่งหมายถึงการนาข้อมูลจากเทเบิลตั้งแต่ 2 เทเบิลขึ้นไปมาเชื่อมกัน (join) เช่น
SELECT students.s_name,subject.sub_name FROM students, subject;
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
คือการนาข้อมูลในเทเบิล students มา Join โดยใช้สญ
ั ลักษณ์ (,) คั่นกลาง กับข้อมูลในเทเบิล
subject แล้วเลือกมาเฉพาะฟีลด์ student name กับ subject name
ดร.สิทธิชัย ชูสาโรง
(20
1
การ Join ในตัวอย่างแบบนี้เป็นรูปแบบที่เรียกว่า Full Join หรือ Cartesian Product ซึง่
PostgreSQL จะนาแต่ละเรคอร์ดในเทเบิลหนึ่งไปจับคู่กับแต่ละเรคอร์ดในอีกเทเบิลหนึ่ง หรือพูด
ง่ายๆคือจับคู่แบบพบกันหมด ดังนั้นถ้าเทเบิล A มี m เรคอร์ด และเทเบิล B มี n เรคอร์ด เราจะได้ว่า
จานวนเรคอร์ดใน A Join B = m x n (m คูณ n เรคอร์ด) จากตัวอย่างข้อมูลในเทเบิลมี 5 เรคอร์ด
และเทเบิล subject มี 3 เรคอร์ด ดังนั้นผลลัพธ์ที่ได้ดังที่แสดงในรูปคือ 15 เรคอร์ด
6)
เอกสารประอบการสอน รายวิชา 104333
ยาล
ยั น
เร ศ
วร
การทา Full Join นั้นแถวข้อมูลบางแถวในผลลัพธ์อาจจะไม่มีความหมาย ในตัวอย่างต่อไป
เราออกแบบให้เรคอร์ดในเทเบิล subject เชื่อมโยงกับเทเบิล register โดยใช้ฟีลด์ของ sub_id ของ
เทเบิลทั้งสองมาเป็นตัวเชื่อม ดังนั้นเมื่อนาสองเทเบิลนี้มา Join กันแล้ว แถวของข้อมูลที่มีค่าฟีลด์
sub_id จากเทเบิล subject ไม่เท่ากับ sub_id จากเทเบิล register ข้อมูลในแถวนั้นย่อมไม่มี
ความหมาย เพราะไม่ใช่ข้อมูลที่สัมพันธ์กัน เช่นหากดูแถวที่ 37-38, 40-41, 43-44 ในผลลัพธ์ในรูปที่
แสดงข้างล่างนี้จะเห็นว่าสองคอลัมน์แรกเป็นข้อมูลของรายวิชาที่มีรหัสวิชาสัมนาที่มีค่าเท่ากับ
104545 แต่ข้อมูลในคอลัมน์อื่นๆที่เหลือเป็นรายละเอียดของการลงทะเบียนที่มีรหัสของวิชาเท่ากับ
104333
ชูส
ำโร
ง
มห
าวทิ
SELECT subject.sub_id, subject.sub_name,register.* FROM subject , register;
ดร
.สิท
ธิช
ัย
126
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
127
6)
ด้วยเหตุนี้เมื่อจะนาข้อมูลจากการทา Full Join ไปใช้งาน เราจึงมักต้องระบุเงื่อนไขด้วย
เสมอ กรณีนี้เงื่อนไขที่ต้องระบุคือ subject.sub_id=register.sub_id หมายถึงการระบุให้คีย์หลัก
ของเทเบิลหนึ่งไปเท่ากับคีย์ร่วมของอีกเทเบิลหนึ่งที่ได้ออกแบบไว้ในตอนแรก ซึ่งจะได้ค่าที่สมบูรณ์คือ
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
SELECT subject.sub_id, subject.sub_name,register.* FROM subject , register WHERE
subject.sub_id=register.sub_id;
การ Join ตารางและกาหนดเงื่อนไขเพื่อเลือกข้อมูลบางถว
จากผลลัพธ์ก่อนหน้าถ้าเราเพื่อเงื่อนไขเข้าไปอีกเช่น ระบบว่า รายวิชา (sub_name=
ฐานข้อมูล) โปรแกรมก็จะทาการ Query คาตอบเฉพาะข้อมูลที่เป็นของรายวิชา ฐานข้อมูล
SELECT subject.sub_id, subject.sub_name,register.* FROM subject , register WHERE
subject.sub_id=register.sub_id and subject.sub_name='ฐานข้อมูล';
ดร.สิทธิชัย ชูสาโรง
ยาล
ยั น
เร ศ
วร
(20
1
6)
เอกสารประอบการสอน รายวิชา 104333
มห
าวทิ
ตัวอย่างการ Join จาก 3 เทเบิล ถ้าเราจะระบุลงไปอีกว่าจะหานิสิตที่สอบได้เกรด A ในรายวิชา
ภูมิศาสตร์เมือง จะใช้คาสั่ง
ชูส
ำโร
ง
select s_name,subject.sub_name,grade from subject,(select s.s_id, s.s_name, r.*
from students s, register r where s.s_id=r.s_id and r.grade='A') as abc where
subject.sub_id=abc.sub_id and subject.sub_name LIKE 'ภูมิศาสตร์%';
คือการนาข้อมูลในเทเบิล students กับ subject มา join กัน โดยให้แสดงชื่อนิสิต ชื่อวิชา เกรด
ของนิสิตที่ได้เกรด A ในรายวิชา ภูมิศาสตร์เมือง
ดร
.สิท
ธิช
ัย
128
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
129
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
select s.s_name,j.sub_name,r.grade from subject j, students s, register r
where s.s_id=r.s_id and r.grade='A' and j.sub_id=r.sub_id
and j.sub_name LIKE 'ภูมิศาสตร์%';
6)
หรื อใช้ คาสัง่
ชูส
ำโร
ง
4.5.6 การแก้ไขข้อมูลในเทเบิล (UPDATE)
การเปลี่ยนแปลงแก้ไขข้อมูลที่มีอยู่แล้วในเทเบิล เช่นเงินเดือนของพนักงานที่จะเปลี่ยนโดย
เพิ่มขึ้นทุกๆ ปี หรือแม้แต่ชื่อของนิสิตก็มีโอกาสเปลี่ยนได้ถ้านักศึกษาคนดังกล่าวไปเปลี่ยนชื่อมา
ดร
.สิท
ธิช
ัย
ภาษา SQL รองรับการเปลี่ยนแปลงค่าของข้อมูลที่อาจจะเกิดขึ้นได้โดยให้ใช้คาสั่ง UPDATE
ซึ่งมีรูปแบบดังนี้
UPDATE เทเบิล SET ฟีลด์1=ค่า1, ฟีลด์2=ค่า2, … [WHERE เงื่อนไข]
ตัวอย่างการแก้ไขข้อมูลในเทเบิล
นิสิตเรียนจบชั้นปีที่ 3 ขึ้นปี
4 จะทาการ
แก้ไขข้อมูลจาก class 3 เป็น class 4
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ยั น
เร ศ
วร
(20
1
6)
UPDATE students SET class=4;
ยาล
เมื่อแสดงข้อมูลทั้งหมดจากเทเบิล students จะสังเกตุได้ว่าข้อมูลในฟีลด์ class เปลี่ยนจาก 3 เป็น 4
นายสมชาย ใจดี ย้ายชมรมจากชมรมภูมิศาสตร์ เป็นชมรมดนตรี
มห
าวทิ
UPDATE students SET club='ดนตรี' WHERE s_name='สมชาย ใจดี';
ชูส
ำโร
ง
เมื่อแสดงข้อมูลทั้งหมดจากเทเบิล students จะสังเกตุได้ว่าข้อมูลในฟีลด์ club ของนิสิตที่ชื่อว่า
สมชาย ใจดี เปลี่ยนจาก ภูมิศาสตร์ เป็น ดนตรี
ดร
.สิท
ธิช
ัย
130
4.4.5 การลบข้อมูลในเทเบิล (DELETE)
เมื่อเวลาผ่านไปข้อมูลบางตัวก็อาจจะไม่มีความจาเป็นต้องจัดเก็บให้เปลืองเนื้อที่ของฐาน
ข้อมู ล อี กต่ อไป โดยตัว อย่ างของข้อ มูล เหล่ านี้ เช่น ข้อมู ล ของนิสิ ตซึ่ งลาออกไปแล้ ว ข้อ มูล ของ
รายวิชาที่ไม่เปิดสอนแล้ว หรือข้อมูลของอาจารย์ซึ่งย้ายไปสอนยังสถานศึกษาแห่งอื่น
การลบข้อมูลที่มีอยู่แล้วในเทเบิล ให้ใช่คาสั่ง DELETE ซึ่งมีรูปแบบดังนี้
DELETE FROM เทเบิล [WHERE เงื่อนไข]
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
131
6)
ถ้าไม่ระบุเงื่อนไขจะเป็นการลบเรคอร์ดทั้งหมดในเทเบิล จึงควรใช้คาสั่งอย่างรอบคอบ โดย
ปกติเราจะระบุเงื่อนไขของรึอร์ดที่ต้องการลบเสมอ เช่น
(20
1
DELETE FROM students WHERE s_id=1313;
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
จากคาสั่งนี้ คือการลบข้อมูลในฟีลด์ที่มีค่า s_id=1313 ดังนั้นเมื่อแสดงข้อมูลข้อมูลจากเท
เบิลทั้งหมดออกมา จึงได้ผลลัพธ์ดังนี้
ดร
.สิท
ธิช
ัย
จะเห็นว่าไม่มีข้อมูลของนิสิตรหัส 1313 ซึ่งถูกลบไปแล้ว
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
(20
1
SQL (Structured Query Language) คือภาษามาตรฐานที่ใช้งานกับระบบฐานข้อมูลเชิง
สัมพันธ์
6)
สรุปท้ายบทที่ 4
ยาล
การประยุกต์ใช้งานชุดคาสั่ง SQL มีอยู่ 2 ชนิดด้วยกันคือ
1. SQL แบบโต้ตอบ
2. SQL แบบฝังในตัวโปรแกรม
ยั น
เร ศ
วร
วัตถุประสงค์ของ SQL
1. เพื่อสร้างฐจานข้อมูลและโครงสร้างของรีเลชัน
2. สนับสนุนงานจัดการข้อมูลพื้นฐาน เช่น การเพิ่ม ปรับปรุง หรือ ลบข้อมูลจากรีเลชัน
3. สนับสนุนงานคิวรีข้อมูลทั้งในรูปแบบอย่างง่ายและซับซ้อน
มห
าวทิ
ประเภทของชุดคาสั่ง SQL แบ่งออกเป็น 3 ประเทภคือ
1. ภาษานิยามข้อมูล (Data Definition Language : DDL)
2. ภาษาจัดการข้อมูล (Data Manipulation Language: DML)
3. ภาษาควบคุมระบบฐานข้อมูล (Data Control Language: DCL)
ชูส
ำโร
ง
ภาษานิยามข้อมูล เป็นกลุ่มคาสั่งต่างๆที่นามาใช้กับงานต่อไปนี้
สร้าง/ลบฐานข้อมูล (CREATE/DROP Database)
สร้าง/ลบตาราง (CREATE/DROP Table)
เปลี่ยนแปลงโครงสร้างของตาราง (ALTER Table)
สร้าง/ลบดัชนี (CREATE/DROP Index)
สร้าง/ลบวิว (CREATE/DROP View)
ดร
.สิท
ธิช
ัย
132
ภาษาจัดการข้อมูล เป็นกลุ่มคาสั่งต่างๆที่นามาใช้กับงานต่อไปนี้
คาสั่ง INSERT INTO ใช้เพิ่มข้อมูลเข้าสู่ฐานข้อมูล
คาสั่ง SELECT ใช้ดึงข้อมูลจากฐานข้อมูลโดยสามารถกาหนดเงื่อนไขของข้อมูลที่ต้องการได้
คาสั่ง UPDATE ใช้แก้ไขข้อมูลที่มีอยู่แล้วในฐานข้อมูล
คาสั่ง DELETE FROM ใช้ลบข้อมูล (เรคอร์ด) ในฐานข้อมูล
ภาษาควบคุมข้อมูล เป็นกลุ่มคาสั่งต่างๆที่นามาใช้กับงานต่อไปนี้
กาหนดสิทธิ์การเข้าถึงข้อมูล (GRANT)
ยกเลิกสิทธิ์การเข้าถึงข้อมูล (REVOKE)
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 4 การติดตั้งและใช้งาน PostgreSQL
133
แบบฝึกหัดบทที่ 4
6)
SELECT…..
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
1. จงเลือกข้อมูลเฉพาะชื่อ นิสิต มาแสดงใน SQL
2. จงเลือกข้อมูลเฉพาะชื่อ นิสิต และ ชื่ออาจารย์ที่ปรึกษา มาแสดงใน SQL
3. จงเลือกข้อมูลเฉพาะชื่อ นิสิต และ ชื่ออาจารย์ที่ปรึกษา ที่อยู่ชมรม ภูมิศาสตร์ มาแสดงใน
SQL
4. จงเลือกข้อมูลเฉพาะชื่อ นิสิต และ ชื่ออาจารย์ที่ปรึกษา ที่อยู่ชมรม ภูมิศาสตร์ และ รหัส
นิสิตเท่ากับ 1322 มาแสดงใน SQL
5. จงเลือกข้อมูลเฉพาะชื่อ นิสิต ที่ชื่อมีคาว่า บ่าว มาแสดงใน SQL โดยใช้เงื่อนไข LIKE
6. จงเลือกข้อมูลเฉพาะชื่อ นิสิต และ ชื่ออาจารย์ที่ปรึกษา มาแสดงเพียง 1 ข้อมูล ( 1 คน)ใน
SQL
7. จงใช้คาสั่ง SQL ค้นหาว่านิสิตแต่ละคนลงทะเบียนเรียนวิชาอะไรบ้าง
8. จงใช้คาสั่ง SQL ค้นหาว่านิสิตแต่ละคนลงทะเบียนเรียนวิชาอะไรบ้าง และได้เกรดอะไรใน
รายวิชานั้นๆ
9. จงหาว่านิสิตคนใดบ้างที่มีคะแนนสอบมากกว่า 80 คะแนน
10. จงหาว่านิสิตคนใดบ้างที่มีคะแนนสอบมากกว่า 80 คะแนน ในรายวิชาภูมิศาสตร์เมือง
ชูส
ำโร
ง
UPDATE จงแก้ไขข้อมูลตามโจทย์ที่ให้
11. เมื่อเวลาผ่านไปหนึ่งเทอม นางสาวใบเตย เฉยเมย ได้สมัครเข้าอยู่ชมรมภูมิศาสตร์ และได้ซื้อ
โทรศัพท์ใหม่หมายเลข 0917671234
12. นิสิตรหัส 1350 เปลี่ยนอาจารย์ที่ปรึกษาเป็นอาจารย์ ดี
13. มีการเปิดสอนรายวิชาใหม่ รหัสวิชา 104553 Internet Mapping 3 หน่วยกิจ โดยอาจารย์
ผู้สอนคือ อาจารย์ดี และหนังสือที่ใช้สอนชื่อ Mapserver
ดร
.สิท
ธิช
ัย
DELETE
14. นิสิตรหัส 1345 พ้นสภาพการเป็นนิสิต ถูกถอนชื่อออกจากฐานข้อมูลนิสิต
15. จงสร้างเทเบิลชื่อ company โดยมีรายละเอียดดังภาพ
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
16. จงสร้ างฐานข้ อมู ล ชื่ อ staff โดยสร้า งคอลั ม น์ แ ละระบุ ป ระเภทของค่ าที่ จ ะเก็บ ในแต่ ล ะ
คอลัมน์และใส่ข้อมูลตามละเอียดดังภาพ
ดร
.สิท
ธิช
ัย
134
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
2.
อธิบายความหมายของ GIS และฐานข้อมูล
ประเภทต่างๆได้
สามารถใช้คาสั่งจาก PostGIS ในการทางาน
ด้าน Geoprocessing ได้
ยาล
บทที่ 5
มห
าวทิ
ฐานข้อมูลเชิงพื้นที่
ชูส
ำโร
ง
(Spatial Database)
ดร
.สิท
ธิช
ัย
3.
(20
1
เพื่อศึกษาความหมายของระบบฐานข้ อมูล
ทางภูมิศาสตร์ (ฐานข้ อมูลเชิงพื ้นที่)
ยั น
เร ศ
วร
1.
6)
วัตถุประสงค์การเรี ยนรู ้ (Learning
Objectives)
ยั น
เร ศ
วร
5.1 ประเภทของข้อมูลในระบบสารสนเทศภูมิศาสตร์
(20
1
ในบทนี้จะอธิบายการลงโปรแกรม QGIS สาหรับการออกแบบ จัดการ แก้ไข ฐานข้อมูลด้าน
GIS การเรียกใช้ส่วนเสริมจาก PostGIS สาหรับฐานข้อมูล ตลอดจนอธิบายการทางานกับภาษา SQL
โดยใช้โปรแกรม PostgreSQL/PostGIS และโปรแกรม PgAdmin3 ที่มาพร้อมกับการติดตั้ง
PostgreSQL คุณจะได้เรียนรู้การสร้างฐานข้อมูล การสร้างบัญชีผู้ใช้ และการกาหนดสิทธิให้แก่บัญชี
ผู้ใช้และการสร้างเทเบิล
ยาล
ระบบสารสนเทศทางภูมิศาสตร์นั้นมีข้อมูลอยู่ 2 รูปแบบ คือ Spatial data และ Nonspatial data ซึ่งได้เรียนรู้มาในบทแรกที่เกี่ยวข้องกับการนาเข้าข้อมูลประเภท Spatial data มาแล้ว
ในส่วนต่อมาที่ต้องเกี่ยวข้องกันคือ Non-spatial data หรือข้อมูลเชิงคุณลักษณะ ที่จะต้องสร้างขึ้น
เพิ่มเติม หรือค้นหามาจากแหล่งข้อมูลต่างๆ เพื่อจัดทาฐานข้อมูลระบบสารสนเทศทางภูมิศาสตร์ให้
สมบูรณ์ขึ้น
ชูส
ำโร
ง
มห
าวทิ
1. ข้อมูลเชิงพื้นที่ (spatial Data) เป็นข้อมูลที่สามารถอ้างอิงกับตาแหน่งทางภูมิศาสตร์ (Georeferenced) ซึ่งสามารถแสดงตาแหน่งของข้อมูลได้ว่าอยู่ที่ใดในระบบพิกัดทางภูมิศาสตร์
(Geo-positioning) เช่น มหาวิทยาลัยนเรศวร ตั้งอยู่บนพิกัดหนึ่งของโลก
2. ข้อมูลที่ไม่ใช่เชิงพื้นที่
(Non-spatial Data) เป็นข้อมูลที่อธิบายคุณลักษณะต่างๆ
(Attribute) ของข้อมูลกับพื้นที่นั้นๆ เช่น ข้อมูลประชากร การใช้ที่ดิน ข้อมูลชื่ออาคาร
สถานที่ ฯลฯ
5.2 ฐานข้อมูลเชิงพื้นที่: Spatial Database
ฐานข้อมูลเชิงพื้นที่เป็นฐานข้อมูลที่กาหนดชนิดข้อมูลเป็นพิเศษสาหรับวัตถุทางเรขาคณิต
และช่วยให้คุณสามารถจัดเก็บข้อมูลทางเรขาคณิต (โดยปกติจะมีลักษณะทางภูมิศาสตร์) ในตาราง
ฐานข้อมูลปกติ มันมีฟังก์ชั่นพิเศษและดัชนีสาหรับการสอบถามและจัดการข้อมูลที่ ใช้สิ่งที่ต้องการ
โครงสร้างภาษาของแบบสอบถาม (SQL) ในขณะที่มันมักจะใช้เป็นเพียงช่องเก็บข้อมูล เชิงพื้นที่ที่
สามารถทาได้มากกว่านั้น แม้ว่าฐานข้อมูลเชิงพื้นที่ไม่จาเป็นต้องสัมพันธ์ในธรรมชาติมากที่สุดของคน
ที่รู้จักกันดี
ฐานข้อมูลเชิงพื้นที่หรือ geodatabase เป็นฐานข้อมูลที่มีการเพิ่มประสิทธิภาพการจัดเก็บ
และค้นหาข้อมูลที่แสดงถึงวัตถุที่กาหนดไว้ในพื้นที่ทางเรขาคณิต ฐานข้อมูลเชิงพื้นที่ส่วนใหญ่อนุญาต
ให้เป็นตัวแทนของวัตถุทางเรขาคณิตง่ายๆเช่นจุดเส้นและรูปหลายเหลี่ยม บางฐานข้อมูลเชิงพื้นที่
จัดการกับโครงสร้างที่ซับ ซ้อนมากขึ้นเช่นวัตถุ 3 มิติ, topological coverages, เครือข่ายเชิงเส้น,
Tins ในขณะที่ฐานข้อมูลโดยทั่วไปได้รับ การออกแบบเพื่อจัดการกับชนิดของตัวเลขและตัวอักษร
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
6)
เอกสารประอบการสอน รายวิชา 104333
ดร
.สิท
ธิช
ัย
136
บทที่ 5 ฐานข้อมูลเชิงพื้นที่
ยั น
เร ศ
วร
(20
1
6)
ต่างๆของข้อมูลการทางานเพิ่มเติมจะต้องมีการเพิ่มฐานข้อมูลในการประมวลผลแบบข้อมูลเชิงพื้นที่
ได้อย่างมีประสิทธิ ภาพเหล่านี้มักจะถูกเรียกว่ารูปทรงเรขาคณิตหรือคุณลักษณะ เปิด Geospatial
Consortium สร้างข้อกาหนดคุณสมบัติที่เรียบง่ายและกาหนดมาตรฐานสาหรับการเพิ่มการทางาน
เชิงพื้นที่กับระบบฐานข้อมูล
ใช้ระบบฐานข้อมูลดัชนีได้อย่างรวดเร็ว และส่วนใหญ่วิธีการที่ฐานข้อมูลข้อมูลดั ชนีไม่ดีที่สุด
สาหรับการค้นหาเชิงพื้นที่ แต่ฐานข้อมูลเชิงพื้นที่ใช้ดัชนีเชิงพื้นที่เพื่อเพิ่มความเร็วในการดาเนินงาน
ฐานข้อมูล และดัชนีข้อมูลของฐานข้อมูลส่วนใหญ่ยังไม่ดีที่สุดสาหรับการค้นหาเชิงพื้นที่ แต่ฐานข้อมูล
เชิงพื้นที่ใช้ดัชนีเชิงพื้นที่เพื่อความรวดเร็วในการดาเนินงานด้านฐานข้อมูล
นอกเหนือจากแบบสอบถาม SQL ทั่วไป เช่น เลือกฐานข้อมูลเชิงพื้นที่สามารถดาเนินการ
ความหลากหลายของการดาเนินงานเชิงพื้นที่ดาเนินการต่อไปและอื่น ๆ อีกมากมายที่ระบุไว้โดยเปิด
มาตรฐาน Geospatial Consortium :
137
ชูส
ำโร
ง
มห
าวทิ
ยาล
การตรวจวั ด เชิ งพื้ น ที่ : ค านวณความยาวสายพื้ น ที่ รู ป หลายเหลี่ ย ม, ระยะห่ า ง
ระหว่างรูปทรงเรขาคณิตและอื่น ๆ
ฟังก์ชั่นเชิงพื้นที่: ปรับเปลี่ยนคุณสมบัติที่มีอยู่เพื่อสร้างใหม่ตัวอย่างเช่นโดยการให้
กันชนรอบตัว ฯลฯ
ทานายเชิงพื้นที่ : ช่วยบอกข้อเท็จ/จริง เกี่ยวกับความสัมพันธ์เชิงพื้นที่ระหว่างรูป
เรขาคณิต ได้แก่ "ทารูปหลายเหลี่ยม 2 รูปซ้อนกัน" หรือ "จะมีที่อยู่อาศัยอยู่ในพื้นที่
ไมล์ของเรากาลังวางแผนที่จะสร้างหลุมฝังกลบหรือไม่
ก่อสร้างเรขาคณิต: สร้างรูปทรงเรขาคณิตใหม่ โดยการระบุจุด (จุดหรือโหนด) ซึ่งใช้
กาหนดรูปร่าง
ฟังก์ชั่นสังเกตการณ์: แบสอบถามเกี่ยวกับข้อมูลเฉพาะ เกี่ยวกับคุณสมบัติดังกล่าว
เป็นศูนย์กลางของวงกลม
ดร
.สิท
ธิช
ัย
ระบบสารสนเทศทางภูมิศาสตร์นั้นจะมีรากฐานที่สาคัญมากที่สุดคือ ฐานข้อมูล (Database)
เพราะฉะนั้นในการเรียนรู้และทาความเข้าใจเทคโนโลยีระบบสารสนเทศทางภูมิศาสตร์ ถ้าเราไม่มี
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลเลยเราจะไม่สามารถที่จะเข้าใจและเรียนรู้ได้อย่างบรรลุถึงศาสตร์
ของระบบสารสนเทศทางภูมิศาสตร์
ปัจจุบันนี้ระบบการจัดการฐานข้อมูล (Database Management System -- DBMS) ที่มีอยู่
ทั่วไปก็สามารถสร้างระบบสารสนเทศทางภูมิศาสตร์ขึ้นมาได้
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
(20
1
Well-known text (WKT) is a text markup language for representing vector
geometry objects on a map, spatial reference systems of spatial objects and
transformations between spatial reference systems.
6)
5.3 รู้จักกับ Well Known Text
ตัวอย่าง Well Known Text
มห
าวทิ
ตารางที่ 5. 1 Geometry type in WKT-format
ยาล
ยั น
เร ศ
วร
oPOINT(6 10)
oLINESTRING(3 4,10 50,20 25)
oPOLYGON((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2))
oMULTIPOINT((3.5 5.6),(4.8 10.5))
oMULTILINESTRING((3 4,10 50,20 25),(-5 -8,-10 -8,-15 -4))
oMULTIPOLYGON(((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2)),((6 3,9 2,9 4,6
3)))
SQL Text Literal Representation
‘Point (10 10)’
‘LINESTRING (10 10, 20 20, 30 40)’
Polygon
‘POLYGON ((10 10,10 20, 20 20,20 15, 10 10))’
Multipoint
‘MULTIPOINT (10 10, 20 20)’
ชูส
ำโร
ง
Geometry
Type
Point
LineString
MultiLineString ‘MULTILINESTRING ((10 10, 20 20),(15 15, 30
ดร
.สิท
ธิช
ัย
138
15))’
MultiPolygon ‘MULTIPOLYGON (
(( 10 10, 10 20, 20 20, 20 15, 10 10 )),
((60 60, 70 70, 80 60, 60 60 ) ))’
GeomCollection ‘GEOMETRYCOLLECTION (POINT (10 10),
POINT (30 30), LINESTRING (15 15, 20 20 ))’
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
Comment
A Point
A LineString with 3
points
A Polygon with 1 exterior
ring and 0 interior ring
A MultiPoint with 2
points
A MultiLineString with 2
linestrings
A MultiPolygon with 2
polygons
A GeometryCollection
consisting of 2 point
values and a LineString
value
139
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
บทที่ 5 ฐานข้อมูลเชิงพื้นที่
ภาพที่ 5. 1 Geometry type
ชูส
ำโร
ง
5.4 การนาเข้าข้อมูลเชิงพื้นที่ (SAMPLE SPATIAL SQL)
ในตัวอย่างนี้เราจะสร้างเทเบิลที่ชื่อ points สาหรับเก็บข้อมูล จุด ที่มีฟีลด์ของข้อมูล
geometry และจาใส่ข้อมูลเชิงพื้นที่ (ค่าพิกัด) เข้าไปในเทเบิลนั้นด้วย
ดร
.สิท
ธิช
ัย
Create table points (point geometry, name varchar);
Insert into points values ('POINT (0 0) ', 'Origin' );
Insert into points values ('POINT (4 0) ', 'X Axis' );
Insert into points values ('POINT (0 3) ', 'Y Axis' );
Select name, ST_AsText(point), ST_Distance(point, 'POINT(4 3)') from points;
ดร.สิทธิชัย ชูสาโรง
ยาล
ยั น
เร ศ
วร
(20
1
6)
เอกสารประอบการสอน รายวิชา 104333
มห
าวทิ
จากคาสั่งในตัวอย่างข้างต้น เราได้ทาการสร้างเทเบิลที่ชื่อ points และเราได้นาเข้าค่าของ
ฟีลด์และคอลัมน์ต่างลงไปทั้งหมด 3 จุด (ตาแหน่งจุดสีแดงในรูปข้างล่าง) จากข้อมูลนี้เราใช้คาคานวน
ระยะทางจากจุดต่างๆไปยังจุดที่ (4,3) (ตาแหน่งจุดสีเขียวในรูปข้างล่าง) ดังที่แสดงในรูป.
Y
4
4,3
5
3
ชูส
ำโร
ง
0,3
0,0
ดร
.สิท
ธิช
ัย
140
4,0
X
สังเกตุ: ST_Distance() and ST_Astext(). Both functions expect geometry objects as
arguments.
- The ST_Distance() function calculates the minimum Cartesian distance
between two spatial objects.
- The ST_Astext() function turns geometry into a simple textual
representation, called “Well Known Text”.
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 5 ฐานข้อมูลเชิงพื้นที่
141
5.5 การใช้งาน PostGIS
(20
1
6)
เราได้ลงโปรแกรม PostGIS ในบทที่ 4 ไว้เรียบร้อยแล้ว ในบทที่ 4 เราได้รู้จักว่า PostGIS คือ
เป็นส่วนขยายเพิ่มเติมที่ทาให้ฐานข้อมูล PostgreSQL สามารถรองรับข้อมูลด้านสารสนเทศรูมิศาสตร์
(GIS) คือสนับสนุนข้อมูลที่สัมพันธ์เชิงพื้นที่ (Spatial) มีการเพิ่มเติมในส่วนฐานข้อมูลเชิงวัตถุสัมพันธ์
(object – reletionnal database system) ของ PostgreSQL เป็นฐานข้อมูลแผนที่ทางภูมิศาสตร์
ยั น
เร ศ
วร
ในหัวข้อนี้จะอธิบายพร้อมยกตัวอย่างการทางานของ PostgreSQL/PostGIS ในการสร้าง
ข้อมูลเชิงพื้นที่
สังเกตุ ก่อนที่จะใช้คาสั่ง CREARE EXTENSION
POSTGIS ข้อมูลใน my_first_postgis
Schemas public Functions(0) มีค่า
เท่ากับ 0 หมายความว่ายังไม่มฟี ังก์ชั่น PostGIS
ในฐานข้อมูลนี้ แต่หลังจากทาการ CREARE
EXTENSION POSTGIS จะเห็นได้ว่าข้อมูลใน
Functions(1050) คือมีการเพิ่มฟังก์ชั่น PostGIS
ทั้งหมด 1050 ฟังก์ชั่น พร้อมทั้งโปรแกรมจะสร้าง
ฐานข้อมูล spatial_ref_sys สาหรับเก็บค่าพิกดั
โค้ดของระบบพิกัดต่างๆบนพื้นโลก
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
CREATE EXTENSION POSTGIS;
ยาล
1. ทาการเชื่อมต่อกับ PostgreSQL โดยใช้โปรแกรม pgAdmin3
2. เปิดฐานข้อมูล ‘my_first_postgis’ โดยคลิกที่คาว่า ‘my_first_postgis’
3. คลิกที่ Query Tool or the button ( “SQL” icon).
4. เพิ่ม PostGIS functions เข้าไปในฐานข้อมูล ‘my_first_postgis’ โดยพิมพ์คาสั่ง
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
หรือ
ยั น
เร ศ
วร
(20
1
1. เปิดโปรแกรม PostGIS 2.0 Shapefile and DBF loader Exporter. (เปิดได้จาก 2 ทางคือ
เปิดจากโปรแกรม pgAdmin lll หรือ ค้นหาใน start menu)
6)
1.5.1 นาเข้าข้อมูล Shape file สู่ระบบฐานข้อมูล SQL
ยาล
คลิก View
details…
ชูส
ำโร
ง
มห
าวทิ
Username,
ดร
.สิท
ธิช
ัย
142
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
connection
จากนันใส่
้ ข้อมูล
Password
และ ชื่อDatabase
(User/Password
ใส่ตาม
ที่ตงไว้
ั ้ ตอนลงโปรแกร)
143
ยาล
ยั น
เร ศ
วร
(20
1
6)
บทที่ 5 ฐานข้อมูลเชิงพื้นที่
มห
าวทิ
หากทาการเชื่อมต่อฐานข้อมูลสาเร็จ จะปรากฏคาว่า Connection succeeded. ใน Log Window.
จากนั้นให้คลิกที่ Add File และไปเลือก shapefiles NU จากนั้นคลิก Open
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
2. แก้ไขค่า SRID จาก 0 เป็น 3857 (เนื่องจากว่าข้อมูลตัวอย่างครั้งนี้ใช้ค่าพิกัดแบบ WGS
84 / Pseudo Mercator จึงใช้ค่า SRID=3857 ) จากนั้นคลิก Import เพื่อทาการนาเข้า
ข้อมูล
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ดัง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
หากนาเข้าข้อมูลสาเร็จ จะแสดงคาว่า Shapefile import completed. ใน Log Window
ภาพ
ชูส
ำโร
ง
3. ตรวจสอบดูว่าในฐานข้อมูล my_first_postgis มีการสร้างเทเบิลใหม่ขึ้นมาหรือไม่ หาก
นาเข้าสาเร็จจะมีเทเบิลที่ถูกสร้างมาใหม่ดังภาพ
ดร
.สิท
ธิช
ัย
144
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 5 ฐานข้อมูลเชิงพื้นที่
145
5.6 การใช้ QGIS ในการจัดการฐานข้อมูล
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
1. เปิดโปรแกรม QGIS และคลิกที่ Add PostGIS Layers
2. เชื่อมต่อกับฐานข้อมูล my_first_postgis โดยคลิกที่ NEW และใส่รายละเอียดดังภาพ
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
ชื่อ..(ตังชื
้ ่ออะไรก็ได้ สาหรับสร้ างเป็ น
โปรเจ็กใช้ กบั QGIS)
เครื่ องแม่ขา่ ย = localhost
พอร์ ท = 5432 (หรื อแล้ วแต่เครื่ อง)
ฐานข้ อมูล = my_first_postgis ชื่อ
ต้ องสะกดตรงกับชื่อของฐานข้ อมูลที่
นาเข้ าข้ อมูล shape files เข้ าไป
ชื่อผู้ใช้ /รหัสผ่าน = ตามที่ตงไว้
ั้
จากนันคลิ
้ ก “ทดสอบการเชื่อมต่อ”
หากเชื่อมต่อสาเร็จคลิก OK
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
3. หลังจากคลิก OK จะเห็นว่าตอนนี้ชื่อโครงการ NU data มาปรากฏอยู่ในหน้าต่าง Add
PostGIS Table(s) จากนั้นให้คลิก “เชื่อมต่อ” เลือกข้อมูลทั้งหมดและคลิก “เพิ่ม”
ดร
.สิท
ธิช
ัย
146
ถึงขั้นตอนนี้ เราจะได้ฐานข้อมูลทั้งหมด 6 ฐานข้อมูล ซึ่งถูกเรียกมาจากระบบฐานข้อมูลมา
แสดงในโปรแกรม QGIS โดยที่เราสามารถแก้ไข อัฟเดท เพิ่ม ลบข้อมูลได้จากโปรแกรม QGIS แทน
การใช้คาสั่งภาษา SQL เหมือนที่ได้เรียนมาในบทก่อนหน้านี้
วิธีการตรวจสอบว่าชั้นข้อมูลที่แสดงอยู่นี้ ถูกเรียกมาจาก Shape files หรือ ฐานข้อมูล
สามารถทาได้โดยการคลิกขวาที่ชั้นข้อมูล Properties (คุณสมบัติ) ข้อมูลบรรยายข้อมูล ดัง
ภาพ
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
147
ยาล
ยั น
เร ศ
วร
(20
1
6)
บทที่ 5 ฐานข้อมูลเชิงพื้นที่
มห
าวทิ
5.7 ตัวอย่างการใช้งานฟังก์ชั่น PostGIS ในการจัดการฐานข้อมูลเชิงพื้นที่
5.7.1 นับจานวนข้อมูลจุดที่มีอยู่
o Function: Count ()
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
select count (*) from points
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
select namet, cast (st_area2d(geom) as decimal (15,2)) || ' square m' as ขนาดพื้นที่,
cast (st_perimeter(geom) as decimal (15,2)) || 'm' as ความยาวเส้นรอบพื้นที่
from nu_blds;
6)
5.7.2 วัดขนาดพื้นที่และเส้นรอบรูปของอาคาร
o Functions: area2d() , perimeter()
หรือเราสามารถใช้ฟังก์ชั่น: ST_Area () เพื่อหาพื้นที่เช่นกัน
Select namet, ST_Area(geom) ||' Square m' as ขนาดพื้นที่
from nu_blds where namet like '%NU-%';
ดร
.สิท
ธิช
ัย
148
การวัดพื้นที่ของ
NUsquaare
ด้วยโปรแกรม
Google Earth
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 5 ฐานข้อมูลเชิงพื้นที่
149
(20
1
มห
าวทิ
ยาล
ยั น
เร ศ
วร
select h.namet as building_1 ,t.namet as building_2 ,
cast(st_Distance(t.geom ,h.geom) as decimal (15 ,2))||' m'
as ระยะทาง from nu_blds t, nu_blds h where h.namet !=t.namet;
6)
5.7.3 การหาระยะทางระหว่างแต่ละอาคาร
o Function: Distance()
ชูส
ำโร
ง
5.7.4 หาระยะทางรวมของข้อมูล main road
o Functions: Sum(ST_Length())
ดร
.สิท
ธิช
ัย
Select sum(ST_Length(geom))||' เมตร' as ระยะทางทังหมด
้
From mainroad;
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
(20
1
SELECT namet AS "Building",st_AsText(st_Centroid(geom))
AS "Center",st_Distance(geom ,st_Centroid(geom))from nu_blds;
6)
5.7.5 หาจุดศูนย์กลางของอาคาร
o Functions: Centroid() , Distance()
ยั น
เร ศ
วร
คาสั่งนี้ SQL จะทาการสร้างเทเบิลใหม่สาหรับเก็บข้อมูลตาแหน่งของค่า centroid ที่ได้ ซึ่งจะ
สามารถไปเปิดดูผลลัพธ์ในโปรแกรม QGIS ได้
ชูส
ำโร
ง
มห
าวทิ
ยาล
drop table if exists point_centroid;
create table point_centroid (gid int4,namet character varying(100),distance text);
SELECT AddGeometryColumn( 'point_centroid', 'geom', 3857, 'POINT', 2 );
insert into point_centroid(namet,geom,distance)
SELECT namet ,(st_Centroid(geom))
AS "geom",st_Distance(geom ,st_Centroid(geom))from nu_blds;
ดร
.สิท
ธิช
ัย
150
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
151
ยั น
เร ศ
วร
(20
1
6)
บทที่ 5 ฐานข้อมูลเชิงพื้นที่
มห
าวทิ
ยาล
เนื่องจากว่าคณะสถาปัตย์ตึก 1 มีลักษณะที่เป็นช่องตรงกลาง ดังนั้นจุดกึ่งกลางของอาคารจึง
มีค่าเท่ากับ 5.18 ซึ่งหมายความว่าจุดกึ่งกลางของอาคารไม่ได้ตั้งอยู่ภายในอาคาร โดยอยู่ห่างออกไป
ประมาณ 5 เมตร
5.7.6 จุดศูนย์กลางของอาคาร แม้ว่าจุดศูนย์กลางจะมีความเว้า ความนูน
o It means all the points are existing on the polygon.
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
o Functions: PointOnSurface ()
SELECT namet AS "Building",st_AsText(st_PointOnSurface (geom))
AS "Point Found", st_Distance(geom , st_PointOnSurface (geom)) from
nu_blds;
แสดง PointOnSurface และ Center points ของอาคาร
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
select p.namep as Point_in_building
from points p ,nu_blds b
where st_within(p.geom ,b.geom) and b.namet = 'โรงพยาบาลมหาวิทยาลัยนเรศวร';
6)
5.7.7 จุดที่อยู่ในอาคารที่เลือก?
o Functions: within()
ดร
.สิท
ธิช
ัย
152
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 5 ฐานข้อมูลเชิงพื้นที่
153
และ
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
select q.namet from points z, nu_blds q where z.namep like 'shop14'
and st_distance(z.geom,q.geom) = (select min(foo.value)
from (select h.namet as nom, st_distance(t.geom,h.geom) as value
from points t, nu_blds h where t.namep like 'shop14') foo);
6)
5.7.8 อาคารที่ใกล้เคียงที่สุดจากจุดที่กาหนด
o Functions: Distance()
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
SELECT namet from( SELECT a.namet ,st_Distance(a.geom ,b.geom)
FROM nu_blds a,points b WHERE b.namep ='shop14'
ORDER BY st_distance ASC limit 1) as foo;
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
มห
าวทิ
ยาล
(20
1
ยั น
เร ศ
วร
select b.namet from nu_blds b, (select ST_Union(geom)
from points) gp where not st_intersects(gp.ST_Union ,b.geom);
6)
5.7.9 อาคารที่ไม่มีข้อมูลจุดอยู่ภายในบริเวณอาคาร
o Functions: intersects() and ST_Union()
5.7.10 หาจุดตัดระหว่าง smallroads และ main_roads
o Functions: Intersection ()
ดร
.สิท
ธิช
ัย
154
SELECT s.name as Small_Road,g.name as Main_Road,
ST_AsText(ST_Intersection(s.geom ,g.geom))
FROM smallroad s, mainroad g
WHERE ST_Intersects(s.geom ,g.geom)order by Small_Road
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
155
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
บทที่ 5 ฐานข้อมูลเชิงพื้นที่
5.7.11 จุดชื่ออะไรบ้างที่มีอยู่ในแต่ละอาคาร?
o Functions: intersects ()
select namep as point_name, namet as building_name
from points p, nu_blds b
where st_intersects(p.geom,b.geom)
ดร.สิทธิชัย ชูสาโรง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
เอกสารประอบการสอน รายวิชา 104333
5.7.12 พื้นที่ของแม่น้าที่ตัดกับสวนสาธารณะ มีขนาดเท่าไร?
o Functions: Intersection ()
ชูส
ำโร
ง
select cast(st_area2d(st_intersection (r.geom ,p.geom)) as decimal (15 ,1)) || '
ตารางเมตร ' as ขนาดพื ้นที่ from nu_water r,nu_park p where st_intersects(r.geom
,p.geom);
ดร
.สิท
ธิช
ัย
156
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 5 ฐานข้อมูลเชิงพื้นที่
157
5.7.13 การหาอาคารที่ตั้งอยู่ในสวนสาธารณะ?
o Functions: Contains ()
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
select b.namet from nu_blds b,nu_park p where st_Contains(p.geom
,b.geom);
ดร
.สิท
ธิช
ัย
5.7.14 การหาจานวนจุดที่อยู่ในอาคารแต่ละหลัง
o Functions: Contains (), Count ()
SELECT (SELECT Count (*) FROM points) - Count(p.namep) AS number_of_points
,b.namet as building FROM nu_blds b , points p WHERE NOT st_Contains(b.geom
,p.geom) GROUP BY b.namet ORDER BY b.namet;
ดร.สิทธิชัย ชูสาโรง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
5.7.15 หาจุดที่อยู่ใกล้กับแม่น้าที่อยู่ในรัศมี 100 เมตร?
o Functions: Buffer ()
ดร
.สิท
ธิช
ัย
158
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 5 ฐานข้อมูลเชิงพื้นที่
159
(20
1
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
select st_astext(st_makeline(a.geom ,b.geom)) from points a,points b
where a.namep='shop14' and b.namep='shop17';
6)
5.7.16 เส้นที่สร้างขึ้นจากจุด
o Function: Makeline ()
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
(20
1
มห
าวทิ
ยาล
ยั น
เร ศ
วร
select build.namet from nu_blds build where st_intersects(build.geom ,
(select st_makeline(a.geom ,b.geom) from points a,points b
where a.namep='shop14' and b.namep='shop17') );
6)
5.7.17 อาคารใดบ้างที่ตัดกับเส้นที่เชื่อมต่อระหว่างจุด 'Shop14' และ 'Shop14'
o Functions: Makeline (), Intersects()
5.7.18 วิธีการปัดเศษขึ้นตาแหน่งของจุด (Table point) กับตัวเลขหลังเครื่องหมายจุลภาค
o Functions: SnapToGrid()
SELECT namep ,st_astext(geom),st_astext(st_snaptogrid(geom ,0.1)) FROM
points;
ดร
.สิท
ธิช
ัย
160
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 5 ฐานข้อมูลเชิงพื้นที่
161
สรุปท้ายบทที่ 5
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
ฐานข้อมูลเชิงพื้นที่หรือ geodatabase เป็นฐานข้อมูลที่มีการเพิ่มประสิทธิภาพการจัดเก็บ
และค้นหาข้อมูลที่แสดงถึงวัตถุที่กาหนดไว้ในพื้นที่ทางเรขาคณิต ฐานข้อมูลเชิงพื้นที่ส่วนใหญ่อนุญาต
ให้เป็นตัวแทนของวัตถุทางเรขาคณิตง่ายๆเช่นจุดเส้นและรูปหลายเหลี่ยม บางฐานข้อมูลเชิงพื้นที่
จัดการกับโครงสร้างที่ซับ ซ้อนมากขึ้ นเช่นวัตถุ 3 มิติ, topological coverages, เครือข่ายเชิงเส้น,
Tins ในขณะที่ฐานข้อมูลโดยทั่วไปได้รับการออกแบบเพื่อจัดการกับชนิดของตัวเลขและตัวอักษร
ต่างๆของข้อมูลการทางานเพิ่มเติมจะต้องมีการเพิ่มฐานข้อมูลในการประมวลผลแบบข้อมูลเชิงพื้นที่
ได้อย่างมีประสิทธิภาพเหล่านี้มักจะถูกเรียกว่ารูปทรงเรขาคณิตหรือคุณลักษณะ เปิด Geospatial
Consortium สร้างข้อกาหนดคุณสมบัติที่เรียบง่ายและกาหนดมาตรฐานสาหรับการเพิ่มการทางาน
เชิงพื้นที่กับระบบฐานข้อมูล
GIS เป็นระบบข้อมูลข่าวสารที่เก็บไว้ในคอมพิวเตอร์ แต่สามารถแปลความหมายเชื่อมโยงกับ
สภาพภูมิศาสตร์อื่นๆ สภาพท้องที่ สภาพการทางานของระบบสัมพันธ์กับสัดส่วนระยะทางและพื้นที่
จริงบนแผนที่ ข้อแตกต่างระหว่าง GIS กับ MIS นั้นสามารถพิจารณาได้จากลักษณะของข้อมูล คือ
ข้อมูลที่จัดเก็บใน GIS มีลักษณะเป็นข้อมูลเชิงพื้นที่ (Spatial Data) ที่แสดงในรูปของภาพ (graphic)
แผนที่ (map) ที่เชื่อมโยงกับข้อมูลเชิงบรรยาย (Attribute Data) หรือฐานข้อมูล (Database)การ
เชื่อมโยงข้อมูลทั้งสองประเภทเข้าด้วยกัน จะทาให้ผู้ใช้สามารถที่จะแสดงข้อมูลทั้งสองประเภทได้
พร้อมๆ กัน เช่นสามารถจะค้นหาตาแหน่งของจุดอาคาร โดยการระบุชื่อจุด หรือในทางตรงกันข้าม
สามารถที่จะสอบถามรายละเอียดของ จุดอาคารจากตาแหน่งที่เลือกขึ้นมา
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
สร้าง Shape file Point, Line, Polygon โดยเลือกพื้นที่ศึกษามาหนึ่งพื้นที่ ที่มีข้อมูล
แสดงจุด อาคาร บ่อน้า ถนนหลัก ถนนรอง และสวนสาธารณะ
เช่น
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
1.
6)
แบบฝึกหัดท้ายบทที่ 5
นาเข้าข้อมูลจากข้อหนึ่งเข้าไปในฐานข้อมูล PostGIS
3. ใช้คาสั่ง PostGIS ตามตัวอย่างที่ 5.7.1 – 5.7.18 ประมานผลกับข้อมูลของตนเอง
4. หาคาสั่ง PostGIS เพิ่มคนละ 10 คาสั่งและประมวลผลกับข้อมูลตนเอง
2.
ดร
.สิท
ธิช
ัย
162
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
6)
วัตถุประสงค์การเรียนรู้ (Learning
Objectives)
ยาล
ยั น
เร ศ
วร
(20
1
1. เพื่ อ ศึ ก ษาการวิ เ คราะห์ แ ละ
คานวนหาระยะทางบนโครงข่าย
ถนนจริงด้วยชุดคาสั่ง Network
Analysis
บทที่ 6
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
pgRouting
(Network Analysis)
(20
1
pgRouting เป็นซอฟต์แวร์รหัสเปิด (Open Source) วัตถุประสงค์หลักของ pgRouting คือ
จั ด หาฟั งก์ ชั่ น ส าหรั บ การใช้ งานใน PostgreSQL/PostGIS. เพื่ อ สร้ างเครื่ อ งมื อ ในการค านวนหา
ระยะทาง ซึ่งจะคล้าย ๆ กับ ชุ ดคาสั่งในโปรแกรมบางโปรแกรมเช่น คาสั่งการค้นหาระยะทางที่ใกล้
ที่สุดในโปรแกรม ArcGIS หรือใน PostGIS และไม่เฉพาะในเรื่องของระยะทางบนถนนเท่านั้น แต่
สามารถใช้ได้กับ ข้อมูลอะไรก็ได้ที่เกี่ยวกับ ระยะทาง การสิ้นเปลืองเวลา น้ามัน เงิน เช่น เส้นทาง
เกี่ยวกับการเดินเรือ และระบบเน็ตเวิร์คแม่ข่ายบนอินเตอร์เน็ต เป็นต้น
6)
เอกสารประอบการสอน รายวิชา 104333
ยั น
เร ศ
วร
นอกจาก pgRouting สามารถคานวนหาระยะทางที่สั้นที่สุ ด เร็วที่สุดแล้ ว pgRouting ยัง
สามารถช่วยในการวางแผนการเดินทางในการจัดส่งสิ้นค้าหลาย ๆ ที่ในการเดินทางครั้งเดียวกัน เช่น
จะไปส่งของให้ลูกค้าทั้งหมด 4 ที่ โดยเริ่มต้นเดินทางจากโรงงานผู้ผลิด ควรจะไปส่งของให้ลูกค้าราย
ใดก่อนหลัง ตามลาดับ เพื่อช่วยในการประหยัดเวลา และน้ามัน เป็นต้น โดย ชุดคาสั่งหลัก ๆ ของ
pgRouting ที่ช่วยในการค้นหาเส้นทาง มีดังต่อไปนี้
ชูส
ำโร
ง
มห
าวทิ
ยาล
All Pairs Shortest Path, Johnson’s Algorithm
All Pairs Shortest Path, Floyd-Warshall Algorithm
Shortest Path A*
Bi-directional Dijkstra Shortest Path
Bi-directional A* Shortest Path
Shortest Path Dijkstra
Driving Distance
K-Shortest Path, Multiple Alternative Paths
K-Dijkstra, One to Many Shortest Path
Traveling Sales Person
Turn Restriction Shortest Path (TRSP)
Shortest Path Shooting Star
(http://pgrouting.org/)
ดร
.สิท
ธิช
ัย
164
6.1 การวิเคราะห์โครงข่าย (Network Analysis)
ในการวิเคราะห์โครงข่ายจะเป็นการวิเคราะห์ข้อมูลประเภทเส้น (Line) เท่านั้น โดยข้อมูล
ประเภทเส้นในระบบสารสนเทศภูมิศาสตร์ประกอบด้วยเส้นสมมติ เช่น เส้นรุ้ง เส้นแวง และเส้น
ขอบเขตการปกครอง ส่วนอีกประเภทหนึ่งเป็นข้อมูลประเภทเส้นที่ปรากฏอยู่จริง เช่น เส้นถนน เส้น
แม่น้า และเส้นทางสายไฟฟ้า ในการวิเคราะห์โครงข่ายจะวิเคราะห์เฉพาะข้อมูลเส้นที่ปรากฏอยู่จริง
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 6 pgRouting (Network Analysis)
(b) เส้นทางที่ดีที่สุด
มห
าวทิ
ยาล
(a) เส้นทางที่สั้นที่สุด
ยั น
เร ศ
วร
(20
1
6)
ส่วนใหญ่การวิเคราะห์โครงข่ายจะถูกนาไปประยุกต์ใช้กับเส้นทางคมนาคม เช่น การเดินทาง
จากบ้านไปที่ทางานต้องใช้เส้นทางใดจึงจะเป็นระยะทางที่สั้นที่สุด ในบางกรณีการหาระยะทางที่สั้น
ที่สุดไม่ใช่คาตอบที่ผู้วิเคราะห์ต้องการ แต่สิ่งที่ต้องการก็คือเส้นทางที่ดีที่สุดในการเดินทางจากบ้านไป
ที่ทางาน ในการหาคาตอบที่ดีที่สุดขึ้นอยู่กับปัจจัยที่ผู้วิเคราะห์ต้องการนามาพิจารณาร่วมด้วย เช่น
ระยะทางต้องสั้นที่สุด และใช้เวลาเดินทางน้อยที่สุด และประหยัดค่าใช้จ่ายมากที่สุด ดังนั้นการหา
เส้นทางจากบ้านไปยังที่ทางานโดยใช้เงื่อนไขระยะทางสั้นที่สุด กับเส้นทางที่ดีที่สุดอาจได้ผลจากการ
วิเคราะห์แตกต่างกัน ดังรูปที่ 6.1
165
ชูส
ำโร
ง
ภาพที่ 6.1 การวิเคราะห์โครงข่ายหาเส้นทางสั้นทีส่ ุด และเส้นทางดีที่สุด
ดร
.สิท
ธิช
ัย
ในการวิเคราะห์ เส้ น ทางคมนาคมอย่างมี ประสิ ทธิภ าพจาเป็ นต้องมีฐานข้อมูล ที่
ทันสมัย ไม่ว่าจะเป็นเส้นทางที่ตัดขึ้นมาใหม่ พื้นผิวถนน ประเภทถนน ข้อจากัดในการเดินทาง
และสภาพการจราจร ตลอดจนการน ากฎจราจรเข้ า มาร่ ว มพิ จ ารณาในการวิ เคราะห์ การ
วิเคราะห์ ในรู ป แบบนี้ จึ งต้องมีความละเอียดในการกาหนดปัจจัยเพื่ อให้ ได้ผ ลการวิเคราะห์ ที่
ถูกต้องและสามารถนาไปใช้ได้จริง ตลอดจนสามารถระบุจุดที่ห้ามผ่าน ห้ามเลี้ยว หรือเส้นทางที่
ขัดขวางการเดินทาง ซึ่งทาให้ต้องหลีกเลี่ยงเส้นทางนั้นๆ
ดร.สิทธิชัย ชูสาโรง
ยั น
เร ศ
วร
(20
1
6)
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
มห
าวทิ
ยาล
ภาพที่ 6.2 การคานวนเส้นทางใหม่เมื่อมีข้อจากัดในการเดินทางของเส้นทาง
ภาพที่ 6.3 การคานวนเส้นทางใหม่กรณีทตี่ ้องการใช้เวลาในการเดินทางน้อยที่สุด
ดร
.สิท
ธิช
ัย
166
ภาพที่ 6.4 การคานวนเส้นทางใหม่เมื่อมีน้าท่วมถนน
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 6 pgRouting (Network Analysis)
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
จะเห็นได้ว่าการหาเส้นทางที่เหมาะสมที่สุดนั้น ในบางกรณีมีประโยชน์และสาคัญมากกว่า
การหาเส้นทางที่สั้นที่สุดสาหรับผู้ที่ต้องการเพิ่มเติม เงื่อนไขในการเดินทางในเมืองที่มีโครงข่ายถนนที่
ซับซ้อน ซึ่ง pgRouting สามารถกาหนดเงื่อนไขต่างๆ ในการคานวนหาเส้นทางตามความต้องการของ
ผู้ใช้ สามารถวางแผนการขนส่งของเซลแมนที่ต้องเดินทางไปหลายๆจุด ตลอดจนสามารถค้นหา
จุดสาคัญต่างๆ ในเส้นทางที่ใช้ไม่ว่าจะเป็นการค้นหา ปั้มน้ามัน ร้านอาหาร เป็นต้น
167
ภาพที่ 6.5 การค้นหาเส้นทางแบบ A to B and B to C และการค้นหาจุดสาคัญที่ตั้งอยูต่ ามเส้นทางที่เดินทางผ่าน
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
การประยุ ก ต์ ใ ช้ เส้ น ทางที่ เหมาะสมที่ สุ ด นั้ น ยั ง สามารถระบุ เงื่ อ นไขการเดิ น ทางอื่ น
นอกเหนือจากสภาพการจราจรได้อีก เช่น การระบุเงื่อนไขของสถานที่ที่ต้องการเดินทางไป และการ
ระบุ ลั ก ษณะหรื อ ประเภทของรถที่ ใช้ ในการเดิ น ทาง ยกตั ว อย่ า งเช่ น การประยุ ก ต์ ใช้ ง านด้ า น
การแพทย์ฉุกเฉิน ดังที่แสดงในภาพที่ 6.6
ภาพที่ 6.6 การประยุกต์ใช้งานด้านการคนหาเส้นทางในระบบการแพทย์ฉุกเฉิน
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
168
ยาล
ยั น
เร ศ
วร
(20
1
ภาพที่ 6.7 แสดงตัวอย่างการหาเส้ นทางและโรงพยาบาลที่เหมาะสม โดยภาพที่ 6.7(a) ระบบจะทา
การแสดงเส้ นทางจากจุดเกิดอุบตั ิเหตุไปยังโรงพยาบาลทังหมดจากนั
้
นขั
้ นตอนตอไป
้
ภาพที่ 6.7(b) ระบบจะ
เลือกเส้ นทางที่เหมาะสมและโรงพยาบาลที่เหมาะสมตามเงื่อนไขที่ระบุโดยผู้ใช้
6)
จากภาพที่ 6.6 ในกรณีนี ้ การระบุเงื่อนไขในการเดินทางจะมีตงแต่
ั ้ การเลือกประเภทของรถฉุกเฉินให้
เหมาะกับอาการของคนไข้ การเลือกเส้ นทางที่จะถึงตัวคนไข้ ให้ เร็ วที่สดุ และการเลือกโรงพยาบาลที่เหมาะสมกับ
คนไข้ รายนันๆ
้ เช่น เลือกโรงพยาบาลที่มีแพทย์เชี่ยวชาญในโรคหรื ออาการของคนไข้ รายนัน้ เป็ นต้ น
มห
าวทิ
ภาพที่ 6.7 แสดงตัวอย่างการหาเส้นทางและโรงพยาบาลที่เหมาะสม
ชูส
ำโร
ง
หลักการวิเคราะห์โครงข่ายนัน้ มีพื ้นฐานมาจาก dijkstra algorithm 1 ซึง่ เป็ นการนาเอาทษฎีกราฟและจาลอง
แผนทีด่ ้ วยกราฟโดยใช้ จดุ ต่อ (nodes) และเส้ น (edges) แทนถนนที่เชื่อมต่อกัน กาหนดระบะห่างระหว่างจุด
เป็ นตัวเลขลงไปในกราฟ เรี ยกกราฟดังกล่าวว่ากราฟทีก่ าหนดน ้าหนัก (weighted graph) ซึง่ มีคา่ เป็ นจาจวน
จริ งที่ไม่เป็ นลบ จากสูตร
โครงข่าย G={V,E}
เมื่อ V(G) คือ เซตของจุดต่อ (node) ในกราฟ G, E(G) คือ เซตของเส้ น (edges) ในกราฟ G และ duv ใช้ แทน
ความยาวของเส้ น
ดร
.สิท
ธิช
ัย
ขันตอนวิ
้
ธีของ Dijkstra จะใช้ กบั เส้ น กราฟไม่ขาดตอนที่ระบุทิศทาง โดยน ้าหนักของทุกเส้ นจะต้ องมี
ค่าไม่น้อยกว่า 0 คือ w(u,v) > 0 ทุกๆ (u,v)E(G) กาหนดให้ S เป็ นเซตของจุดยอดโดยมีคา่ เริ่ มต้ นเป็ นเชตว่าง ,
d[V] เป็ นค่ของระยะทางจากจุดเริ่ มต้ นถึงจุดยอด v, Q เป็ นเซตของจุดยอด (vertex) ที่ยงั ไม่เข้ าวนซ ้า (loop)
โดยมีคา่ เริ่ มต้ นเป็ น V(G)
การเลือกจุด u ที่จะเข้ าวนซ ้า จะเลือกจากจุดที่อยูใ่ น Q ซึง่ มีคา่ d[u] ต่าที่สดุ เมื่อเลือกแล้ วจะลบจุดนี ้
ออกจาก Q และนาค่าไปใส่ใน S แทน ตรวจสอบทุกจุด v ที่มีเส้ นจาก u ไปถึงจุด v ว่า ถ้ า d[v] > d[u]/ w(u,v)
1
https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 6 pgRouting (Network Analysis)
169
ยาล
ยั น
เร ศ
วร
(20
1
6)
แล้ วจะต้ องเปลีย่ น d[v] = d[u] + w(u,v) แล้ วแก้ ตวั ชี ้ว่าจุดยอด v ต้ องมาจากจุด u วนซ ้าจนกระทัง้ Q เป็ นเซต
ว่าง จะได้ เส้ นทางที่สนที
ั ้ ่สดุ ตามต้ องการ (choosumrong et al., 2012)
ภาพที่ 6.8 ตัวอย่างผลของการวิเคราะห์หาเส้นทางที่สั้นที่จดุ จาก จุดเริ่มต้น A ไปยังจุดต่างด้วย dijkstra algorithm
มห
าวทิ
6.2 การหาพื้นที่ให้บริการบนโครงข่าย
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
พื้ น ที่ ให้ บ ริ การบนโครงข่าย คื อ พื้ น ที่ ที่ ส ร้างขึ้น บนระบบโครงข่าย โดยการค านวนจาก
ระยะทางหรือเวลาในการเดินทางจากจุดหนึ่ง ไปตามเส้นทางโครงข่าย เช่น ภาพที่ 6.8 เป็นตัวอย่าง
การหาพื้นที่ให้บริการในรัศมี 20 กิโลเมตรจากมหาวิทยาลัยนเรศวร ระบบจะทาการสร้างรูปปิดขึ้นมา
โดยคานวนระยะทางจริง 20 กิโลเมตรจากมหาวิทยาลัยนเรศวร ซึ่งจะมีลักษณะคล้ายกับการทาพื้นที่
กันชน หรือที่เรียกว่า buffer แต่ต่างกันตรงที่การทาพื้นที่กันชนจะวัดระยะทางออกไปแบบเส้นตรง
เป็นรัศมี)
ภาพที่ 6.9 เขตบริการบนโครงข่าย (พื้นที่รูปปิดวงใน) เปรียบเทียบกับพื้นที่กันชน (พื้นที่รูปปิดวงนอก)
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
จากนั้นให้เปลี่ยนช่อง Owner เป็น
ยั น
เร ศ
วร
2. เมื่อปรากฏหน้าจอนี้ ให้ตั้งชื่อฐานข้อมูลว่า pgPitlok
postgres แล้วคลิกที่Definition
(20
1
1. ให้ไปเปิดโปรแกรม pgAdmin III เพื่อสร้างฐานข้อมูลขึ้นมาให้คลิกขวาที่ Databases แล้วก้อ
เลือก New Object เสร็จแล้ว คลิกที่ New Database…….
6)
6.3 เริ่มใช้งาน pgRouting
ยาล
1
ชูส
ำโร
ง
มห
าวทิ
2
3. เมื่อปรากฏหน้าจอแบบนี้ ให้ตั้ง Template : Template 0 , Tablespace : pg_default ตาม
รูป แล้วคลิกที่ OK
ดร
.สิท
ธิช
ัย
170
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 6 pgRouting (Network Analysis)
171
6)
4. จากนั้นให้คลิกที่
แล้วทาการใส่คาสั่ง creat extension postgis; และคาสั่ง creat
extension pgrouting ;
ยาล
ยั น
เร ศ
วร
(20
1
แล้วทาการ run หรือคลิกที่ปุ่ม
มห
าวทิ
6.3.1 Import และ SAVE ข้อมูล Shapefile ในโปรแกรม QGIS
ชูส
ำโร
ง
1. เปิดโปรแกรม Qgis ขึ้นมา จากนั้น คลิกที่ Add Vector Layer จากนั้นคลิกที่ Browse
ดร
.สิท
ธิช
ัย
Add Vector Layer
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
2.จะปรากฏหน้าต่างขึ้นมาแบบนี้ ให้ทาการเลือก shapfile ที่ชื่อว่า roat_pitlok ขึ้นมา แล้วคลิกที่
Open
ชูส
ำโร
ง
3.ข้อมูลที่ชื่อว่า roat_pitlok จะปรากฏขึ้นมาแบบนี้ ดังภาพ
ดร
.สิท
ธิช
ัย
172
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 6 pgRouting (Network Analysis)
173
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
4.จากนั้นให้เราไป ที่ Layer แล้วคลิกที่ save as…
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
5.จะปรากฏหน้าจอแบบนี้ ให้กด Browse แล้วเลือกไฟล์ที่เราจะsaveไว้ และตั้งชื่อว่า ways.shp
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
6.3.2 การเชื่อมต่อข้อมูลระหว่าง โปรแกรมQGIS เข้าโปรแกรม pgAdmin lll
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
1.เราไปคลิกที่ Database >>> Spit >>> Import Shapefiles to PostgresSQL
ชูส
ำโร
ง
2. จากนั้นจะปรากฏหน้าต่างขึ้นมา ให้คลิกที่ NEW เพื่อทาการเชื่อมต่อระหว่าง Qgis กับฐานข้อมูล
ดร
.สิท
ธิช
ัย
174
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 6 pgRouting (Network Analysis)
175
(20
1
ยาล
ยั น
เร ศ
วร
Name : ways
Host : localhost
Port : 5432
Database : เป็นชื่อฐานข้อมูลที่อยู่ในโปรแกรม
pgAdmin III ที่เราจะทาการเชื่อมข้อมูลเข้าไป
ในที่นี่ชื่อว่า “pgPitlok”
Username : postgres
Password : xxxxxxxx
แล้วทาการคลิกที่ OK
6)
3..ให้เราทาการใส่ข้อมูล ดังรูป
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
4.จากนั้นคลิกที่ add แล้วเลือกshapefile ที่ชื่อว่า ways แล้ว Open
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
5.เมื่อเรา add ไฟล์เข้ามาแล้ว ให้เราทาการคลิกที่ Connect แล้ว OK จากนั้นให้ไปเปิดในโปรแกรม
pgAdmim lll
ชูส
ำโร
ง
6.3.3 การจัดเตรียม road data ในโปรแกรม pgAdmin lll เพื่อใช้ในการคานวนหาเส้นทางด้วย
pgRouting
1. การเพิ่มคอลัม source, target เข้าไปในเทเบิล ways
1.1 ให้คลิกที่
โดยใช้คาสั่ง
ALTER TABLE ways
ADD COLUMN source integer;
ALTER TABLE ways
ADD COLUMN target integer;
ดร
.สิท
ธิช
ัย
176
แล้วทาการรัน
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 6 pgRouting (Network Analysis)
177
2. การเพิ่มระยทางเข้าไปในเทเบิล ways
6)
โดย
(20
1
2.1 .ให้คลิกที่
ให้ใช้คาสั่ง
ยั น
เร ศ
วร
alter table ways add column
มห
าวทิ
ยาล
length double precision;
3.การคานวณหาระยะทาง สาหรับคอลัม length
โดยให้ใช้คาสั่ง update ชื่อเทเบิล set ชื่อคอลัมท์=st_length(ชื่อ
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
3.1 ให้คลิกที่
คอลัม geometry);
update ways set length=st_length(the_geom);
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
4. การคานวนหาค่า topology สาหรับเพิ่มค่า source, target
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
select pgr_createTopology('ways', 0.000001, 'the_geom', 'gid');
6)
โดยให้ใช้คาสั่ง
(20
1
4.1 ให้คลิกที่
5. เมื่อทาการเพิ่มข้อมูลทั้ง 4 ข้อด้านบนแล้ว มีรายละเอียดหัวตารางและค่าดังรูป
ดร
.สิท
ธิช
ัย
178
ทดลองรัน
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
คาสั่งหา
บทที่ 6 pgRouting (Network Analysis)
179
ยั น
เร ศ
วร
(20
1
6)
ระยะทางที่สั้นที่สุดด้วยคาสั่ง pgr_dijkstra()
มห
าวทิ
ยาล
ผลลัพธ์จากการคานวนจะแสดงอยู่ในรูปของตารางดังรูป
ชูส
ำโร
ง
6.4 การใช้คาสั่ง SQL เพื่อให้ pgRouting แสดงผลลัพธ์เพื่อแสดงใน QGIS/Web
Service
ดร
.สิท
ธิช
ัย
1. การสร้างตาราง shortest_path_pitlok เพื่อใช้ในการคานวณหาระยะทาง
โดยใช้คาสั่ง CREATE TABLE shortest_path_pitlok (gid int4) with oids;
** แต่ในกรณีที่เรามีตารางอยู่แล้ว ให้เพิ่มคาสั่ง
ไว้ด้านบน
DROP TABLE IF EXISTS shortest_path_pitlok;
ดร.สิทธิชัย ชูสาโรง
ยาล
ยั น
เร ศ
วร
(20
1
6)
เอกสารประอบการสอน รายวิชา 104333
ใช้คาสั่ง
มห
าวทิ
2. คาสั่งคานวนค่า the_geom ตาราง shortest_path_pitlok
ชูส
ำโร
ง
SELECT AddGeometryColumn( 'shortest_path_pitlok', 'the_geom', 4326,
'LINESTRING', 2 );
ดร
.สิท
ธิช
ัย
180
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 6 pgRouting (Network Analysis)
181
3.การเพิ่มค่า the_geom ลงตาราง shortest_path_pitlok
INSERT INTO shortest_path_pitlok (the_geom)
SELECT the_geom
ยั น
เร ศ
วร
FROM ways w,(SELECT seq, id1 AS node, id2 AS edge, cost FROM
(20
1
6)
ใช้คาสั่ง
pgr_dijkstra('SELECT gid AS id,source::integer,target::integer,
length::double precision AS cost
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
FROM ways',710,169, false, false) )as rt where w.gid=rt.edge ;
ดร.สิทธิชัย ชูสาโรง
สรุปท้ายบทที่ 6
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
5. เมื่อเพิ่มชั้นข้อมูลที่ชื่อ shortest_path_pitlok จากฐานข้อมูลเข้ามาในโปรแกรม QGIS
จะปรากฏระยะทางที่สั้นที่สุด(สีแดง)
6)
เอกสารประอบการสอน รายวิชา 104333
ชูส
ำโร
ง
pgRouting เป็นซอฟต์แวร์รหัสเปิด (Open Source) วัตถุประสงค์หลักของ pgRouting คือ
จั ด หาฟั งก์ ชั่ น ส าหรั บ การใช้ งานใน PostgreSQL/PostGIS. เพื่ อ สร้ างเครื่ อ งมื อ ในการค านวนหา
ระยะทาง ซึ่งจะคล้าย ๆ กับ ชุดคาสั่งในโปรแกรมบางโปรแกรมเช่น คาสั่งการค้นหาระยะทางที่ใกล้
ที่สุดในโปรแกรม ArcGIS หรือใน PostGIS และไม่เฉพาะในเรื่องของระยะทางบนถนนเท่านั้น แต่
สามารถใช้ได้กับ ข้อมูลอะไรก็ได้ที่เกี่ยวกับ ระยะทาง การสิ้นเปลืองเวลา น้ามัน เงิน เช่น เส้นทาง
เกี่ยวกับการเดินเรือ และระบบเน็ตเวิร์คแม่ข่ายบนอินเตอร์เน็ต เป็นต้น
ดร
.สิท
ธิช
ัย
182
งานท้ายบท
1. ให้นิสิตศึกษาเพิ่มเติมที่ http://docs.pgrouting.org/v2.1.0-rc3/doc/index.html พร้อม
ทั้งทาตัวอย่างแต่ละคาสั่งเป็นรายงานมาส่ง
2. หาตัวอย่างข้อมูลถนนมาหนึ่งพื้นที่พร้อมทั้งจัดทา pgRouting กับข้อมูลถนนชุดนั้น
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
วัตถุประสงค์การเรี ยนรู ้ (Learning
Objectives)
6)
สามารถแสดงผลข้ อมูลบนเว็บได้ โดยใช้
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
โปรแกรม PHP
บทที่ 7
ชูส
ำโร
ง
PHP และ PostgreSQL
ดร
.สิท
ธิช
ัย
1.
(20
1
ในบทที่ผ่านมา เราเข้าถึงระบบฐานข้อมูล PostgreSQL โดยใช้โปรแกรม pgAdmin lll ซึง่
เป็น Client Program ที่ให้มาพร้อมกับการติดตั้ง PostgreSQL สาหรับในบทนี้จะอธิบายการเข้าถึง
ระบบฐานข้อมูล PostgreSQL จาก PHP page คุณจะได้เรียนร็การเขียนโค้ด PHP เพื่อเชื่อมและ
ล๊อกอินสู่ PostgreSQL Server การสั่งคาสั่ง SQL ไปประมวลผลและนาผลลัพธ์กลับมาใช้ใน PHP
page
6)
เอกสารประอบการสอน รายวิชา 104333
ยั น
เร ศ
วร
หมายเหตุ ในบทนี้เราจะยังไม่ลงลึกมากเนื่องจากว่านิสิตยังไม่มีพื้นฐานภาษา PHP ทางผู้สอนจึง
จะทาการยกตัวการให้เห็นภาพหน้าตาการเชื่อมต่อระหว่างฐานข้อมูลและ PHP (จะได้ศึกษา
รายละเอียดต่อในรายวิชา 104323-3 Internet_Mapping ในภาคเรียนที่ 2)
PHP
PHP ย่อมาจาก PHP Hypertext Preprocessor แต่เดิมย่อมาจาก Personal Home Page Tools
PHP คือ ภาษาคอมพิวเตอร์ จาพวก scripting language ภาษาจาพวกนี ้คาสัง่ ต่างๆ จะเก็บอยู่ใน
มห
าวทิ
ยาล
ไฟล์ที่เรี ยกว่า script และเวลาใช้ งานต้ องอาศัยตัวแปรชุดคาสัง่ ตัวอย่างของภาษาสคริ ปต์ ได้ แก่
JavaScript, Perl เป็ นต้ น ลักษณะของ PHP ที่แตกต่างจากภาษาสคริ ปต์แบบอื่นๆ คือ PHP ได้ รับ
การพัฒนา และออกแบบมา เพื่อใช้ งานในการสร้ างเอกสารแบบ HTML โดยสามารถสอดแทรก
หรื อแก้ ไขเนื อ้ หาได้ โดยอัตโนมั ติ ดังนัน้ จึง กล่าวว่า PHP เป็ นภาษาที่ เรี ยกว่า server-side หรื อ
ชูส
ำโร
ง
HTML-embedded scripting language นั น้ คื อ ในทุ ก ๆ ครั ง้ ก่ อ นที่ เ ครื่ อ งคอมพิ ว เตอร์ ซึ่ ง
ให้ บริ การเป็ น Web server จะส่งหน้ าเว็บเพจที่เขียนด้ วย PHP ให้ เรา จะทาการประมวลผลตาม
คาสัง่ ที่มีอยูใ่ ห้ เสร็จเสียก่อน แล้ วจึงส่งผลลัพธ์ที่ได้ ให้ เรา ผลลัพธ์ที่ได้ ก็คือ เว็บเพจที่เราเห็นนัน่ เอง
ถื อได้ ว่า PHP เป็ นเครื่ อ งมื อที่ ความส าคัญ ชนิ ดหนึ่ง ที่ ช่วยให้ เราสามารถสร้ าง Dynamic Web
Pages (เว็บเพจที่มีการโต้ ตอบกับผู้ใช้ ) ได้ อย่างมีประสิทธิภาพ และมีลกู เล่นมากขึ ้น
PHP สามารถทางานร่วมกับฐานข้ อมูลได้ หลายชนิด ซึ่งฐานข้ อมูลส่วนหนึ่งที่รองรับ ได้ แก่ ออรา
เคิ ล dBase PostgreSQL IBM DB2 MySQL Informix ODBC โครงสร้ างของฐานข้ อมู ล แบบ
ดร
.สิท
ธิช
ัย
184
DBX ซึ่ง ท าให้ PHP ใช้ กับ ฐานข้ อ มู ล อะไรก็ ได้ ที่ รองรั บ รู ป แบบนี ้ และ PHP ยัง รองรั บ ODBC
(Open Database Connection) ซึ่ ง เป็ นมาตรฐานของการเชื่ อ มต่ อ ฐานข้ อมู ล ที่ ใ ช้ กั น อย่ า ง
แพร่หลายอีกด้ วย คุณสามารถเชื่อมต่อกับฐานข้ อมูลต่างๆ ที่รองรับมาตรฐานโลกนี ้ได้
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 7 PHP และ PostgreSQL
185
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
ก่อนที่ใช้งาน PHP ได้ ต้องทาการติดตั้ง Apache เพื่อจาลองเครื่องคอมพิวเตอร์เราให้เป็น
เครื่องแม่ข่ายก่อน โดยการติดตั้งจากโปรแกรม Application Stack Builder เลือกไปที่ Web
Development
ดร.สิทธิชัย ชูสาโรง
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
เอกสารประอบการสอน รายวิชา 104333
ดร
.สิท
ธิช
ัย
186
เมื่อติดตั้ง Web Development แล้วเท่ากับว่าคุณได้ติดตั้งโปรแกรมประเภทเซิร์ฟเวอร์ลง
ไปในเครื่องอีกตัวหนึ่ง นั่นก็คือ PostgreSQL Server ซึ้งทาหน้าที่เป็นผู้ให้บริการด้านฐานข้อมูล
(Database Server) โปรแกรมนี้จึงมีบทบาทเทียบเท่ากับ Apache เพราะอยู่ในฐานะผู้ให้บริการ
เหมือนกัน แต่ต่างกันตรงที่ Apache จะให้บริการเว็บ (World Wide Web) แก่โปรแกรมเว็บ
บราวเซอร์ในเครื่องผู้ใช้ ในขณะที่ MySQLServer (PostgreSQL Server) จะให้บริการฐานข้อมูลแก่
โปรแกรม PHP และ PHP page ของเรา
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
187
ยั น
เร ศ
วร
(20
1
6)
บทที่ 7 PHP และ PostgreSQL
ยาล
ภาพที่ 7. 1 การทางานของระบบ DBMS บนเว็บ
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ทดสอบว่าคอมพิวเตอร์เราอยู่ในสถานะที่ทาหน้าที่เป็นเครื่องแม่ข่ายแล้วหรือยังโดยการพิมพ์
http://localhost:8085 ในเว็บบร้าวเซอร์ หากเครื่องอยู่ในสถานะพร้อมใช้งาน PHP+Apache
Server จะปรากฏหน้าจอดังภาพ
7.1 ขั้นตอนการเข้าถึงฐานข้อมูล PostgreSQL จาก PHP
การเขียนโค้ด PHP เพื่อทางานกับฐานข้อมูล PostgreSQL จะมีขั้นตอนหลักๆดังนี้
1. เชื่อมต่อและล๊อกอินเข้าสู่ PostgreSQL Server
ขั้นตอนนี้เทียบกับการใช้คาสั่ง “ pgsql -h ชื่อเครื่อง -u ชื่อบัญชีผู้ใช้ –p รหัสผ่าน”ใน
วินโดว์ Command Prompt
ดร.สิทธิชัย ชูสาโรง
การเชื่อมต่อ PHP และ PostgresSQL
ยั น
เร ศ
วร
(20
1
2. เลือกฐานข้อมูลที่ต้องการใช้งาน
ขั้นตอนนี้เทียบได้กับการขอใช้ฐานข้อมูลด้วยคาสั่ง “USEชื่อฐานข้อมูล ” ใน pgAdmin lll
3. ส่งคาสั่ง SQL ไปประมวลผลยังฐานข้อมูล
ขั้นตอนนี้เทียบกับการพิมพ์คาสั่ง SQL ใน pgAdmin lll
4. อ่านผลลัพธ์มาใช้งาน โดยทั่วไปคือการแสดงออกมาในเพจ
ใน pgAdmin lll ผลลัพธ์จะแสดงบนหน้าจอโดยที่เราไม่ต้องทาอะไร แต่ใน PHP เราต้อง
เขียนโค้ดเพื่ออ่านผลลัพธ์มาแสดงเอง
5. ปิดการเชื่อมต่อ
ขั้นตอนนี้เทียบกับการใช้คาสั่ง QUIT ใน pgAdmin lll
6)
เอกสารประอบการสอน รายวิชา 104333
มห
าวทิ
ยาล
PHP ย่อมาจากคาว่า "Personal Home Page Tool" เป็น Server Side Script ที่มีการ
ทางานที่ฝั่งของเครื่องคอมพิวเตอร์ Server ซึ่งรูปแบบในการเขียนคาสั่งการทางานนั้นจะมีลักษณะ
คล้ายกับภาษา Perl หรือภาษา C และสามารถที่จะใช้ร่วมกับภาษา HTML ได้อย่างมีประสิทธิภาพ
ซึ่งจะทาให้รูปแบบเว็บเพจมีความสามารถเพิ่มขึ้นในด้านของการเขียนโปรแกรม ในการสร้างเว็บจะใช้
Script อยู่ 2 แบบด้วยกันคือ
- Server-Side Script เป็นลักษณะของภาษาที่ทางานบนเครื่อง Server เช่น CGI, ASP
ชูส
ำโร
ง
- Client-Side Script เป็นลักษณะของภาษาที่ทางานบนเครื่องผู้ใช้เช่น JavaScript, VBScript
ความสามารถของ PHP นั้น สามารถที่จะทางานเกี่ยวกับ Dynamic Web ได้ทุกรูปแบบ เหมือนกับ
CGI หรือ ASP ไม่ว่าจะเป็นการดูแลจัดการระบบฐานข้อมูล ระบบรักษาความปลอดภัยของเว็บเพจ
การรับ - ส่ง Cookies เป็นต้น
แต่ที่เป็นคุณสมบัติเด่นของ PHP ก็น่าจะเป็นการติดต่อกับโปรแกรมจัดการระบบฐานข้อมูล ที่มี
อยู่มากมาย ซึ่งฐานข้อมูลที่ PHP สนับสนุนมีดังนี้
ดร
.สิท
ธิช
ัย
188
Adabas D
InterBase Solid
Microsoft Access
dBase
mSQL
Sybase
Empress
MySQL
Velocis
FilePro
Oracle
Unix dbm
Informix
PostgreSQL
SQL Server
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 7 PHP และ PostgreSQL
ยั น
เร ศ
วร
(20
1
6)
ในปัจจุบัน Web Site ต่างๆได้มีการพัฒนาในด้านต่างๆ อย่างรวดเร็ว เช่น เรื่องของความ
สวยงามและแปลกใหม่ การบริการข่าวสารข้อมูลที่ทันสมัย เป็นสื่อกลางในการติดต่อ และสิ่งหนึ่งที่
กาลังได้รับความนิยม เป็นอย่างมากซึ่ง ถือได้ว่าเป็นการปฏิวัติรูปแบบการขายของก็คือ Ecommerce ซึ่งเจ้าของสินค้าต่างๆ ไม่จาเป็นต้องมีร้านค้าจริงและไม่จาเป็นต้องจ้างคนขายของอีก
ต่อไป ร้านค้าและตัวสินค้านั้น จะไปปรากฏอยู่บน Web Site แทน และการซื้อขายก็เกิดขึ้นบนโลก
ของ Internet แล้ว PHP ช่วยเราให้เป็นเจ้าของร้านบน Internet ได้อย่างไร PHP เป็นภาษาสคริปต์
ที่มีความสามารถสูง สาหรับการพัฒนา Web Site และความสามารถที่โดดเด่นอีกประการหนึ่งของ
PHP คือ database enabled web page ทาให้เอกสารของ HTML สามารถที่จะเชื่อมต่อกับระบบ
ฐานข้อมูล (database) ได้อย่างมีประสิทธิภาพและรวดเร็ว จึงทาให้ความต้องการในเรื่องการจัด
รายการสินค้าและรับรายการสั่งของตลอดจนการจัดเก็บ ข้อมูลต่างๆ ที่สาคัญผ่านทาง Internet
เป็นไปได้อย่างง่ายดาย
189
มห
าวทิ
ยาล
ในการเชื่อมต่อ PHP และ PostgreSQL มี 2 วิธี
PostgreSQL native function
PDO (PHP Data Objects)
ชูส
ำโร
ง
1. PostgreSQL native function
PHP มีฟังก์ชันที่เชื่อมต่อกับ PostgreSQL โดยฟังก์ชัน Native
1.1 ใช้โค๊ด PHP ต่อไปนี้เพื่อเชื่อมต่อ PostgreSQL และเลือกฐานข้อมูล เปลี่ยนชื่อผู้ใช้และ
รหัสผ่านของคุณ และ DBNAME ที่มีชื่อฐานข้อมูล
ดร
.สิท
ธิช
ัย
<?php
$db_connection = pg_connect("host=localhost dbname=DBNAME
user=USERNAME password=PASSWORD");
?>
1.2 หลังจากเชื่อมต่อกับ PostgreSQL และเลือกฐานข้อมูลที่สามารถเรียกใช้คาสั่ง SQL
และการดาเนินการอื่นๆได้ ตัวอย่างเช่น PHP จะสอบถาม SQL ว่าให้แยกชื่อจากตาราง
EMPLOYEES และเก็บผลลัพธ์ไว้ที่ $result variable
<?php
$result = pg_query($db_connection, "SELECT lastname FROM
EMPLOYEES");
?>
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ฟังก์ชัน PostgreSQL ในขั้นตอนก่อนหน้าสามารถใช้ได้กับฐานข้อมูล PostgreSQL เท่านั้น
ในส่วนของ PDO จะมาสสารถเข้าถึงข้อมูลและช่วยให้สามรถจัดการกับฐานข้อมูลที่แตกต่างกันได้
(20
1
2.1 ใช้โค๊ด PHP ต่อไปนี้เพื่อเชื่อมต่อ PostgreSQL และเลือกฐานข้อมูล เปลี่ยนชื่อผู้ใช้และ
รหัสผ่านของคุณ และ DBNAME ที่มีชื่อฐานข้อมูล
6)
2. PDO (PHP Data Objects)
ยาล
ยั น
เร ศ
วร
2.2 หลังจากเชื่อมต่อกับ PostgreSQL และเลือกฐานข้อมูลที่สามารถเรียกใช้คาสั่ง SQL
และการดาเนินการอื่นๆได้ ตัวอย่างเช่น PHP จะสอบถาม SQL ว่าให้แยกชื่อจากตาราง
EMPLOYEES และเก็บผลลัพธ์ไว้ที่ $result variable
ในบทนี้เราจะสารวจวิธีการต่างๆในการเข้าถึง PostgreSQL จาก PHP โดย PHP เป็นฝั่ง
เซิร์ฟเวอร์ภาษาสคริปต์ข้ามแพลตฟอร์มสาหรับการเขียนงานบนเว็บ จะช่วยให้คุณฝังตรรกะโปรแกรม
ในหน้าเว็บ HTML ซึ่งช่วยให้คุณสามารถที่จะให้บริการหน้าเว็บแบบไดนามิก PHP ช่วยให้เราสามารถ
สร้างส่วนติดต่อผู้ใช้บนเว็บที่มีปฏิสัมพันธ์กับ PostgreSQL
ชูส
ำโร
ง
มห
าวทิ
เพิ่ม PostgreSQL ที่สนับสนุน PHP
ก่อนที่คุณจะเริ่มต้นการพัฒนาสคริปต์ PHP ที่อินเตอร์เฟซที่มีฐานข้อมูล PostgreSQL, คุณ
จะต้องรวมถึงการสนับสนุนในการติดตั้ง PostgreSQL PHP ของคุณ
หากคุณไม่แน่ใจว่าการติดตั้ง PHP ของคุณที่มีอยู่แล้วได้รับการสนับสนุน PostgreSQL สร้าง
สคริปต์ง่ายชื่อ phpinfo.php (ซึ่งควรจะอยู่ในรากเอกสารเว็บเซิร์ฟเวอร์ของคุณ) ในตัวอย่างนี้ให้
สร้างไว้ที่
C:\ProgramFiles(x86)\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\phpifo.php
ที่มีบรรทัดต่อไปนี้:
ดร
.สิท
ธิช
ัย
190
ตรวจสอบการส่งออกของสคริปต์นี้ในเว็บเบราว์เซอร์ของคุณ
โดยการพิมพ์
http://localhost:8085/phpinfo.php หากการสนับสนุน PostgreSQL ได้รับการรวมการส่งออก
จะมีส่วนคล้ายกับต่อไปนี้:
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
191
การใช้ PHP API สาหรับ PostgreSQL
ยาล
ยั น
เร ศ
วร
(20
1
6)
บทที่ 7 PHP และ PostgreSQL
ชูส
ำโร
ง
มห
าวทิ
การเชื่อมต่อฐานข้อมูล ด้วย PHP
ก่อนที่คุณจะสามารถโต้ตอบกับฐานข้อมูลคุณต้องเปิดการเชื่อมต่อกับมัน การเชื่อมต่อแต่ละคน
เป็นตัวแทนจากตัวแปรเดียว (เราจะอ้างถึงตัวแปรนี้เป็นที่จับการเชื่อมต่อ) PHP ช่วยให้คุณมีการ
เชื่อมต่อหลายที่เปิดในครั้งเดียวในแต่ละที่มีการจัดการการเชื่อมต่อของตัวเอง
pg_connect()
การเชื่อมต่อฐานข้อมูลที่เปิดใช้ pg_connect () ฟังก์ชัน ฟังก์ชั่นนี้จะใช้เวลาสตริงการเชื่อมต่อ
เป็นอาร์กิวเมนต์เท่านั้นและผลตอบแทนที่จับเชื่อมต่อฐานข้อมูล นี่คือตัวอย่าง:
ดร
.สิท
ธิช
ัย
$db_handle = pg_connect("dbname=ชื่อฐานข้อมูล host=ชื่อserver port=หมายเลข
พอร์ท user=ชื่อผู้ใช้ password=รหัสผ่าน");
คุณสามารถสร้างชื่อผู้ใช้ของคุณเองและใช้ในการเชื่อมต่อกับฐานเป็นผู้ใช้ = <username>
หากคุณต้องการที่จะใช้ตัวแปร PHP, จาที่จะล้อมรอบสตริงการเชื่อมต่อในเครื่องหมายคาพูดคู่แทนที่
จะเป็นอัญประกาศเดียว:
$db_handle = pg_connect("dbname=$dbname user=$dbuser");
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ตัวอย่างการเชื่อมต่อ PHP กับฐานข้อมูล my_first_postgis
ชูส
ำโร
ง
มห
าวทิ
ยาล
1. สร้าง PHP ไฟล์ชื่อ db.php และทาการบันทึกไว้ใน
C:\Program Files (x86)\PostgreSQL\EnterpriseDB-ApachePHP\apache\
www\dbms\db.php
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
(20
1
ยั น
เร ศ
วร
Dbname: ฐานข้อมูลการเชื่อมต่อกับ (Default : $ PGDATABASE)
User: ชื่อผู้ใช้ที่จะใช้เมื่อการเชื่อมต่อ(Default : $ PGUSER)
Password: รหัสผ่านสาหรับผู้ใช้ที่ระบุ (Default : $ PGPASSWORD หรือไม่มี)
Host: ชื่อของเซิร์ฟเวอร์เพื่อเชื่อมต่อกับ (Default : $ PGHOST หรือ localhost)
Hostaddr: ที่อยู่ IP ของเซิร์ฟเวอร์เพื่อเชื่อมต่อกับ (Default : $ PGHOSTADDR)
Port: พอร์ต TCP / IP การเชื่อมต่อกับเซิร์ฟเวอร์ (Default : $ PGPORT หรือ 5432)
6)
ทุกพารามิเตอร์การเชื่อมต่อ PostgreSQL มาตรฐานที่มีอยู่ในสตริงการเชื่อมต่อตัวเลือกใช้กัน
มากที่สุดและความหมายของพวกเขาอยู่ด้านล่าง:
ดร
.สิท
ธิช
ัย
192
บทที่ 7 PHP และ PostgreSQL
193
db.php
ยั น
เร ศ
วร
(20
1
6)
<?php
//ชุดคาสั่งสาหรับขออนุญาติเชื่อมต่อกับฐานข้อมูล
$host = "host=localhost";//host ที่ใช้ในการติดต่อกับ Server
$port = "port=5432";//หมายเลข port ที่ใช้ (บางเครื่องอาจจะใช้ 5433 หรือเลขอื่น)
$dbname = "dbname=my_first_postgis";//ใส่ชื่อฐานข้อมูลที่ตอ้ งการทาการเชื่อมต่อ
$credentials = "user=postgres password=xxx";//ใส่ User, Password เดียวกับตอนที่เข้าใช้โปรแกรม
pgAdmin3
มห
าวทิ
ยาล
//โครงสร้างชุดคาสั่งทาหรับเชื่อมต่อกับฐานข้อมูล PostgreSQL
$db = pg_connect( "$host $port $dbname $credentials" );
if(!$db){
echo "ERROR Bompการเชื่อมต่อกับฐานข้อมูลไม่สาเร็จ\n"; }
else {
echo "ยินดีต้อนรับ Bomp คุณเชื่อมต่อกับฐานข้อมูลสาเร็จ";
}
pg_close($db)
?>
ชูส
ำโร
ง
ทดสอบรันคาสั่ง db.php โดยการพิมพ์ http://localhost:8085/dbms/db.php
ดร
.สิท
ธิช
ัย
หากการเชื่อมต่อสาเร็จ หรือ หากการเชื่อมต่อไม่สาเร็จจะแสดงข้อความดังภาพ
หากความพยายามในการเชื่อมต่อล้มเหลว pg_connect () ฟังก์ชันจะกลับเท็จ พยายามที่
ล้มเหลวในการเชื่อมต่อสามารถจึงถูกตรวจพบโดยการทดสอบค่าตอบแทน:
การปิดการเชื่อมต่อฐานข้อมูล
pg_close()
การเชื่อมต่อฐานข้อมูลสามารถปิด ด้วยการใช้ฟังก์ชัน pg_close () :
pg_close($db);
ดร.สิทธิชัย ชูสาโรง
(20
1
ถ้าจับการเชื่อมต่อให้ไม่ถูกต้อง pg_close () จะreturn false มิฉะนั้น pg_close () จะกลับ
จริงความสาเร็จ
6)
เอกสารประอบการสอน รายวิชา 104333
7.2 การสร้างเทเบิลใหม่ด้วยภาษา PHP
มห
าวทิ
ยาล
ยั น
เร ศ
วร
1. สร้างฐานข้อมูลใหม่ชื่อ test_php ในโปรแกรม pgAdmin lll
ชูส
ำโร
ง
2. สร้าง PHP ไฟล์ตั้งชื่อว่า createtable.php และบันทึกไว้ใน C:\Program Files
(x86)\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\\dbms\createtable.php
ในส่วนคาสั่งของ SQL ให้ใส่คาสั่งการสร้างเทเบิลเหมือนที่ใช้ตอนสร้างใน pgAdmin lll
$sql= <<< EDF
CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL,
ดร
.สิท
ธิช
ัย
194
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (50),
SALARY REAL)
EDF;
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
195
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
บทที่ 7 PHP และ PostgreSQL
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
หากการเชื่อมต่อฐานข้อมูลและสร้างเทเบิลสาเร็จ จะปรากฏข้อความดังรูป
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
ยั น
เร ศ
วร
(20
1
สร้าง PHP ไฟล์ตั้งชื่อว่า selecttable.php และบันทึกไว้ใน C:\Program Files
(x86)\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\dbms\selecttable.php
6)
7.3 การเรียก (Select) ฐานข้อมูลมาแสดงบนเว็บ
ชุดคาสั่ง HTML สาหรับการสร้างตาราง
ชุดคาสั่ง SQL ที่ใช้ในการเชื่อมต่อกับฐานข้อมูล
ยาล
ชุดคาสั่ง SQL ที่ใช้ในการเลือกข้อมูลมาแสดง
SELECT…..FROM…..
มห
าวทิ
คาสั่งเพิ่มผลลัพธ์เข้าไปในตาราง HTML ข้างบน โดยต้องระบุ
ชื่อให้ตรงกับชื่อ column ในฐานข้อมูล เช่น id, name, age
เป็นต้น (ตัวพิมพ์เล็ก ใหญ่ต้องใส่ให้เหมือนกัน)
ชูส
ำโร
ง
ชุดคาสั่ง SQL สาหรับสั่งให้แสดงผลลัพท์และจบการทางาน
ทดสอบโดยการพิมพ์ http://localhost:8085/dbms/selecttable.php ในเว็บ Browser
ดร
.สิท
ธิช
ัย
196
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
บทที่ 7 PHP และ PostgreSQL
197
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
<HTML>
<HEAD>
<TITLE> View Database Records</TITLE>
</HEAD>
<TABLE>
<BODY align="center">
<TABLE>
<DIV align="center">
<P>View Database Records</P>
<Table Border="1" align="center">
<TR>
<TH>ID</TH>
<TH>NAME</TH>
<TH>BIRTHDAY</TH>
<TH>CLASS</TH>
<TH>ADVISOR</TH>
</TR></DIV>
<?PHP
$db = pg_connect("host=localhost dbname=NU port=5432 user=postgres password=xxxx");
if(!$db){
echo "Bomp connection ERROR\n"; }
else {
echo "Welcome Bomp to DBMS";
}
$sql="select s_id,s_name,birthday,class,advisor,club,tel from students;";
$result = pg_Exec($db,$sql);
$num=pg_NumRows($result);
$i = 0;
while ($i < $num) {
6)
selecttable.php
ดร
.สิท
ธิช
ัย
echo "<TR><TD>";
echo pg_Result($result, $i, "s_id");
echo "</TD><TD>";
echo pg_Result($result, $i, "s_name");
echo "</TD><TD>";
echo pg_Result($result, $i, "birthday");
echo "</TD><TD>";
echo pg_Result($result, $i, "class");
echo "</TD><TD>";
echo pg_Result($result, $i, "advisor");
$i++;
}
pg_FreeResult($result);
pg_Close($db);
?>
ดร.สิทธิชัย ชูสาโรง
เอกสารประอบการสอน รายวิชา 104333
DATABASE
ไม่ว่าใช้อะไรจะเหมือนกันหมด
ยาล
คือ
1. สร้าง connect
2. ส่ง SQL COMMAND
3. ถ้ามีค่ากลับมาก็รับมาประมวลผลต่อ เช่น ส่ง SELECT เข้าไป
4. ปิดการเชื่อมต่อ
ไม่ว่า
ยั น
เร ศ
วร
การใช้ PHP ติดต่อกับ
MySQL,PostgreSQL,ORACLE, OBDC
(20
1
การสร้างเว็บแอพพลิเคชั่นขึ้นมานั้น แน่นอนว่าส่วนใหญ่แล้วเราจะต้องมีการเชื่อมต่อเข้ากับ
ฐานข้อมูล เพื่อไว้เก็บ "ข้อมูล" ซึ่งฐานข้อมูลก็มีมากมายเช่น PostgreSQL, MySQL เป็นต้น โดย
ตัวอย่างในบทนี้ใช้ฐานข้อมูลประเภท PostgreSQL เพราะเป็นฐานข้อมูลที่สามารถจัดการกับ
ฐานข้อมูลเชิงพื้นที่ที่คนนิยมใช้มากสุดในปัจจุบัน
มห
าวทิ
ส่วนที่สาคัญที่สุดคือการออกแบบฐานข้อมูล ไม่ใช้ออกแบบการเรียกใช้ฐานข้อมูล แต่ละตัวมี
ข้อดี ข้อด้อยไป คนละอย่างกัน
งานท้ายบท
ชูส
ำโร
ง
1. จงเพิ่มข้อมูลต่อไปนี้เข้าไปในเทเบิล company ด้วยภาษา PHP
2. จงเขียนคาสั่ง SELECT เพื่อเรียกข้อมูลของเทเบิล company มาแสดงบนหน้าเว็บ
อาจารย์สาขาวิชาภูมิศาสตร์และภูมิสารสนเทศ
มหาวิทยาลัยนเรศวร
6)
สรุปท้ายบทที่ 7
ดร
.สิท
ธิช
ัย
198
199
เอกสารอ้างอิง
(20
1
6)
พร้อมเลิศ หล่อวิจิตร, (2550), คู่มือเรียน PHP และ MySQL สาหรับผู้เริ่มต้น, กรุงเทพฯ:โปรวิขั่น,
464 หน้า. ISBN:978-974-9741-90-0
ยั น
เร ศ
วร
โอภาส เอี่ยมสิริวงศ์, (2558), ฐานข้อมูล (Database Systems), กรุงเทพฯ: ซีเอ็ดยูเคชั่น, 472
หน้า, ISBN:978-616-08-2235-5
Borden D.D., Cartography Thematic Map Design, McGraw-Hill, USA 1999
Burrough P.A. and McDonnell R.A., Principles of Geographical Information Systems,
Oxford University Press, UK 1998
ยาล
Chang K., Introduction to Geographic Information Systems, McGrawhill, Singapore
2004
มห
าวทิ
Craig Hilton and Jeff Willis, (2000), Building database applications on the web using
PHP3, Library of Congress Cataloging-in-Publication Data. QA76.9.D26 H56
2000.
Demers M.N., Fundamentals of Geographic Information Systems, Hamilton Printing
Co., USA 1997
ชูส
ำโร
ง
Fotheringham A.S. and et.al., Quantitative Geography, Sage Publication Ltd. USA
2000 Maguire D.J. and et.al., Geographical Information Systems Principles
and Application Volume 1 and 2, Longman, London 1991
Obe, R.O. and Hsu, L.S., PostGIS in Action, Manning Publication, Stanford 2011
ดร
.สิท
ธิช
ัย
Paolo Corti, Thomas J Kaft, Stephen Vincent Mather and Bborie Park (2014) PostGIS
CookBook. Published by Packt Publishing Ltd. 468 pages.
Choosumrong, S., Raghavan, V. and Bozon, N. (2012) Multi-Criteria Emergency Route
Planning Based on Analytical Hierarchy Process and pgRouting,
Geoinformatics, Vol.23, No. 4, 159-168
Star J. and Estes J., Geographic Information Systems An Introduction, Prentice Hall,
USA 1990
Terry A.S., Thematic Cartography and Visualization, Prentice-Hall Inc., 1999
ดร.สิทธิชัย ชูสาโรง
ดร
.สิท
ธิช
ัย
ชูส
ำโร
ง
มห
าวทิ
ยาล
ยั น
เร ศ
วร
(20
1
6)
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )