บทที่ 1...

29
บทที1 แนวคิดทั่วไปเกี่ยวกับฐานขอมูล วัตถุประสงค สามารถอธิบายแนวคิดทั่วไปเกี่ยวกับระบบจัดการฐานขอมูล (database management system – DBMS) ได อยางถูกตอง สามารถอธิบายแนวคิดของระบบจัดการฐานขอมูลเชิงสัมพันธไดอยางถูกตอง สามารถอธิบายถึงความจําเปนในการใชงานระบบจัดการฐานขอมูลได สามารถอธิบายในเบื้องตนวาขอมูลที่นํามาใชประโยชนถูกจัดเก็บไวในระบบจัดการฐานขอมูลอยางไร สามารถอธิบายในเบื้องตนวาการคนคืนและแกไขขอมูลในระบบจัดการฐานขอมูลทําไดอยางไร สามารถอธิบายในเบื้องตนวาระบบจัดการฐานขอมูลรองรับการใชงานของผูใชหลายๆ คนพรอมๆ กันได อยางไร สามารถอธิบายในเบื้องตนถึงวิธีการที่ระบบจัดการฐานขอมูลใชปองกันขอมูลผิดพลาดในกรณีที่ระบบ ลมเหลว สามารถอธิบายองคประกอบหลักของระบบจัดการฐานขอมูล สามารถระบุผูที่มีสวนเกี่ยวของกับการใชงานระบบจัดการฐานขอมูล คําสําคัญ: ขอมูล (data); สารสนเทศ (information); การจัดการฐานขอมูล (database management); ความเปน อิสระของขอมูล (data independence); การออกแบบฐานขอมูล (database design); แบบจําลองขอมูล (data model); ฐานขอมูลเชิงสัมพันธและขอคําถาม (relational database and queries); สคีมา (schema); ระดับของ ฐานขอมูลเชิงนามธรรม (levels of database abstraction); ธุรกรรม/รายการเปลี่ยนแปลง (transaction); ภาวะ พรอมกันและการปดกั้น (concurrency and locking); การกูและการลงบันทึก (recovery and logging); โครงสรางของระบบจัดการฐานขอมูล (DBMS structure); ผูดูแลฐานขอมูล (database administrator—DBA); โปรแกรมเมอร (programmer); ผูใช (end user)

Upload: rungnapa-rungnapa

Post on 23-Jun-2015

91 views

Category:

Economy & Finance


0 download

DESCRIPTION

บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

TRANSCRIPT

Page 1: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

บทท่ี 1 แนวคิดท่ัวไปเก่ียวกับฐานขอมูล วัตถุประสงค • สามารถอธิบายแนวคิดท่ัวไปเกี่ยวกับระบบจัดการฐานขอมูล (database management system – DBMS) ได

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

อยางไร • สามารถอธิบายในเบ้ืองตนถึงวิธีการท่ีระบบจัดการฐานขอมูลใชปองกันขอมูลผิดพลาดในกรณีท่ีระบบ

ลมเหลว • สามารถอธิบายองคประกอบหลกัของระบบจัดการฐานขอมูล • สามารถระบุผูท่ีมีสวนเกี่ยวของกับการใชงานระบบจัดการฐานขอมูล คําสําคัญ: ขอมูล (data); สารสนเทศ (information); การจัดการฐานขอมูล (database management); ความเปนอิสระของขอมูล (data independence); การออกแบบฐานขอมูล (database design); แบบจําลองขอมูล (data model); ฐานขอมูลเชิงสัมพันธและขอคําถาม (relational database and queries); สคีมา (schema); ระดับของฐานขอมูลเชิงนามธรรม (levels of database abstraction); ธุรกรรม/รายการเปลี่ยนแปลง (transaction); ภาวะพรอมกันและการปดกั้น (concurrency and locking); การกูและการลงบันทึก (recovery and logging); โครงสรางของระบบจัดการฐานขอมูล (DBMS structure); ผูดูแลฐานขอมูล (database administrator—DBA); โปรแกรมเมอร (programmer); ผูใช (end user)

Page 2: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
Page 3: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

บทท่ี 1 แนวคิดท่ัวไปเก่ียวกับฐานขอมูล 1.1 บทนํา

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

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

ตัวอยางของฐานขอมูล เชน ฐานขอมูลของมหาวิทยาลัยอาจจะประกอบไปดวยขอมูลดังนี้ • เอนทิตี (entity) เชน นักศึกษา อาจารย รายวิชา หองเรียน • ความสัมพันธ (relationship) ระหวางเอนทิตี เชน นักศึกษาลงทะเบียนเรียนในรายวิชา

อาจารยสอนในรายวิชา และการใชงานหองตางๆ สําหรับแตละรายวิชา

ระบบจัดการฐานขอมูล (database management system – DBMS) คือซอฟตแวรท่ีชวยในการจัดการและใชงานกลุมของขอมูล

โดยเฉพาะการจัดการกับกลุมของขอมูลขนาดใหญหรือฐานขอมูลนั่นเอง ปจจุบันเราไดใชระบบจัดการฐานขอมูลกันเปนท่ีแพรหลายซึ่งเกือบเปนสิ่งหนึ่งท่ีขาดไมไดในการบริหารจัดการองคการ

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

ระบบจัดการฐานขอมูลท่ีใชกันในปจจุบันมีหลายประเภท แตสําหรับรายวิชานี้จะเนนท่ีระบบจัดการฐานขอมูลเชิงสัมพันธ (relational database management systems – RDBMSs) ซึ่งเปนประเภทของระบบจัดการฐานขอมูลท่ีแพรหลายท่ีสุดในปจจุบัน สําหรับเรื่องท่ีจะศึกษาสามารถแบงออกเปนกลุมใหญๆ ไดดังตอไปนี้

1) แนวคิดพ้ืนฐานเก่ียวกับฐานขอมูล ไดแกเนื้อหาในบทนี้ 2) การออกแบบฐานขอมูล หัวขอดังกลาวศึกษาเกี่ยวกับ แนวคิด ขั้นตอน และเครื่องมือท่ีใชในการ

ออกแบบเพ่ือใหไดมาซึ่งฐานขอมูลท่ีถูกตองเหมาะสม ตลอดจนการศึกษาเกี่ยวกับการท่ีผูใช

Page 4: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

4 บทท่ี 1

อธิบายกิจกรรมตางๆ ตลอดจนสิ่งท่ีเกี่ยวของกับกิจกรรมนั้นๆ ขององคการ ท้ังในรูปสิ่งของท่ีเปนรูปธรรมและนามธรรม รวมถึงบุคคลตางๆ อยางไร ในแงของการจัดเก็บเปนขอมูลในระบบจัดการฐานขอมูล ปจจัยใดบางท่ีควรคํานึงถึงในการจัดการและจัดเก็บขอมูล (บทท่ี 2-5)

3) การพัฒนาฐานขอมูล การพัฒนาระบบฐานขอมูล การพัฒนาโปรแกรมประยุกตหรือระบบสารสนเทศท่ีใชงานระบบจัดการฐานขอมูลนั้นทําอยางไร (บทท่ี 6-8 และ 10)

4) การวิเคราะหและใชงานขอมูล ผูใชจะสามารถตอบคําถามเกี่ยวกับองคการในแงตางๆ ไดอยางไร โดยการใชขอคําถาม (queries) กับระบบจัดการฐานขอมูล (บทท่ี 8)

5) การจัดการธุรกรรมและความม่ันคงปลอดภัย ระบบจัดการฐานขอมูลรองรับการใชงานของผูใชหลายๆ คนพรอมกันไดอยางไร รวมท้ังระบบจัดการฐานขอมูลทําอยางไรในการปองกันความผิดพลาดของขอมูลในกรณีท่ีระบบลมเหลว ตลอดจนการรักษาความม่ันคงปลอดภัยของฐานขอมูล (บทท่ี 9)

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

สําหรับในหัวขอท่ี 1.6 นั้น ไดอธิบายวาเราจะมีวิธีการอยางไรในการจัดเก็บขอมูลและสารสนเทศขององคการลงในระบบจัดการฐานขอมูล ผูใชจะมองฐานขอมูลในระดับสูง กลาวคือมองในเชิงการใชงานจริงในสภาพแวดลอมจริง ในขณะท่ีระบบจัดการฐานขอมูลจะจัดเก็บขอมูลในรูปของขอมูลดิจิตอลเปนบิตลงในอุปกรณจัดเก็บ ท้ังนี้จะพบวาระหวางระดับของขอมูลในระดับท่ีผูใชมองเห็นกับระดับจัดเก็บขอมูลลงในฮารดแวรจะถูกขั้นและจัดการดวยระดับตางๆ ซึ่งเราเรียกวาระดับเชิงนามธรรม (levels of abstraction) ซึ่งถูกสรางขึ้นมาเพ่ือเอื้ออํานวยตอการจัดการฐานขอมูลอยางมีประสิทธิภาพ

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

โครงสรางของบท และหัวขอท่ี 1.3-1.9 ตลอดจนสคีมาตัวอยางของมหาวิทยาลัย ดัดแปลงและเรียบเรียงจาก Ramakrishnan and Gehrke, 2003 เปนหลัก แนวคิดอื่นๆ เรียบเรียงมาจากและอานเพ่ิมเติมไดตามเอกสารอางอิง

Page 5: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

แนวคิดท่ัวไปเกี่ยวกับฐานขอมูล 5

1.2 ขอมูลและสารสนเทศ

ขอมูล คือ ขอเท็จจริงเกี่ยวกับสิ่งตางๆ

สารสนเทศ คือ ขอมูลท่ีผานการประมวลผล

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

เราสามารถยกตัวอยางความแตกตางระหวางขอมูลและสารสนเทศ ตลอดจนการนําสารสนเทศไปใช

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

ตารางท่ี 1-1 ตัวอยางขอมูลการขายและรายละเอียดสินคา

รหัสสินคา ช่ือสินคา ประเภทสินคา จํานวนท่ีขาย วันท่ี 00001 มามารสหมูสับ บะหม่ีกึ่งสําเร็จรูป 5 1/09/2007 00002 ยํายํารสหมูสับ บะหม่ีกึ่งสําเร็จรูป 5 5/09/2007 00001 มามาตมยํากุง บะหม่ีกึ่งสําเร็จรูป 3 10/09/2007 00005 ชาเขียวโออิชิรสขาวญี่ปุน เครื่องด่ืม 1 10/09/2007 00010 แชมพูแพนทีน 500 มล. เครื่องสําอาง 1 17/09/2007 00001 มามารสหมูสับ บะหม่ีกึ่งสําเร็จรูป 4 18/09/2007 00098 โคกซีโรกระปอง 325 มล. เครื่องด่ืม 12 20/09/2007 00209 เธอกับฉัน กันยายน 2550 หนังสือ 1 22/09/2007 00005 ชาเขียวโออิชิรสขาวญี่ปุน เครื่องด่ืม 2 28/09/2007 00112 ขายหัวเราะ กันยายน 2550 หนังสือ 1 29/09/2007

ขอมูล (data) ประมวลผล (process) สารสนเทศ (information)

Page 6: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

6 บทท่ี 1

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

ตารางท่ี 1-2 ขอมูลการขายสินคาเรียงตามลําดับจํานวนท่ีขายได

รหัสสินคา ช่ือสินคา ประเภทสินคา จํานวนท่ีขาย 00098 โคกซีโรกระปอง 325 มล. เครื่องด่ืม 12 00001 มามารสหมูสับ บะหม่ีกึ่งสําเร็จรูป 9 00002 ยํายํารสหมูสับ บะหม่ีกึ่งสําเร็จรูป 5 00001 มามาตมยํากุง บะหม่ีกึ่งสําเร็จรูป 3 00005 ชาเขียวโออิชิรสขาวญี่ปุน เครื่องด่ืม 3 00010 แชมพูแพนทีน 500 มล. เครื่องสําอาง 1 00209 เธอกับฉัน กันยายน 2550 หนังสือ 1 00112 ขายหัวเราะ กันยายน 2550 หนังสือ 1

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

ภาพท่ี 1-1 ตัวอยางแผนภูมิแทงแสดงยอดจําหนายสินคาแยกตามประเภท

Page 7: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

แนวคิดท่ัวไปเกี่ยวกับฐานขอมูล 7

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

1.3 วิวัฒนาการของฐานขอมูล (Ramakrishnan and Gehrke, 2004)

การจัดเก็บ แกไข และบริหารจัดการขอมูลเปนหัวขอการศึกษาและวิจัยท่ีสําคัญ ตลอดจนไดรับการพัฒนามาอยางตอเนื่อง ระบบจัดการฐานขอมูลสําหรับใชงานท่ัวๆ ไประบบแรกไดรับการออกแบบโดยนายชาลส แบคแมน (Charles Bachman) แหงบริษัทเจเนอรัลอิเล็กทริก ในตนทศวรรษ ค.ศ. 1960 ระบบดังกลาวถูกเรียกวา Integrated Data Store ซึ่งเปนรากฐานของการจัดเก็บขอมูลโดยใชแบบจําลองขอมูลแบบเครือขาย (network data model) ท้ังนี้ระบบดังกลาวไดรับการยอมรับและกําหนดมาตรฐานขึ้นโดย The Conference on Data Systems Languages (CODASYL) รูปแบบของการจัดเก็บขอมูลดังกลาวไดรับการยอมรับและมีอิทธิอยางมากตอรูปแบบของสถาปตยกรรมระบบจัดการฐานขอมูลในชวงทศวรรษ 1960 แบคแมนเปนบุคคลแรกท่ีไดรับ ACM’s Turing Award ดานการศึกษาฐานขอมูลในป 1973 ซึ่ง Turing Award นี้เปนรางวัลท่ีเปรียบไดกับรางวัลโนเบลในทางวิทยาการคอมพิวเตอร

ในชวงปลายทศวรรษท่ี 1960 บริษัทไอบีเอ็มไดพัฒนาระบบจัดการฐานขอมูลในชื่อ Information Management System (IMS) ซึ่งยังคงไดรับการใชงานอยูในปจจุบันสําหรับฐานขอมูลขนาดใหญ โดย IMS นี้นําเสนอรูปแบบของการจัดการขอมูลดวยแบบจําลองขอมูลเชิงลําดับชั้น (hierarchical data model) ในชวงเวลาเดียวกันระบบ SABRE ซึ่งเปนระบบสําหรับการจองต๋ัวเครื่องบินท่ีบริษัทไอบีเอ็มพัฒนารวมกับอเมริกันแอรไลนสไดถูกพัฒนาขึ้น เพ่ือใหสามารถใชงานผานเครือขายคอมพิวเตอรได ระบบดังกลาวมีความนาสนใจตรงท่ีเปนระบบสําคัญสําหรับการจองต๋ัวเครื่องบินในปจจุบัน เชนเว็บไซต Travelocity ยังคงใชงานระบบ SABRE ในป 1970 เอ็ดการ ค็อด (Edgar Codd) แหงหองปฏิบัติการวิจัยซานโฮเซของบริษัทไอบีเอ็ม ไดเสนอรูปแบบการจัดการขอมูลดวยแบบจําลองขอมูลเชิงสัมพันธ (relational data model) ซึ่งรูปแบบดังกลาวมีความเหมาะสมในการใชงานเปนอยางยิ่งและไดรับความนิยมแพรหลายอยางรวดเร็ว นอกจากนี้มีผูสนับสนุนและวิจัยเพ่ือใหเกิดทฤษฎีมารองรับและประยุกตใชอยางเปนระบบ นอกจากจะไดรับความสนใจในแวดวงวิชาการโดยถือเปนศาสตรแขนงหนึ่งแลว ระบบจัดการฐานขอมูลเชิงสัมพันธยังมีผลกระทบตอแวดวงธุรกิจ การนําระบบจัดการฐานขอมูลเชิงสัมพันธไปชวยในการบริหารองคการกอใหเกิดประโยชนอยางสูง ไดรับการยอมรับ และถือเปนเครื่องมือมาตรฐานอยางหนึ่งท่ีควรนํามาใชเพ่ืออํานวยความสะดวกในการปฏิบัติงานและเพ่ิมประสิทธิภาพขององคการ Codd ไดรับรางวัล Turing ในป 1981 ในชวงทศวรรษ 1980 แบบจําลองเชิงสัมพันธไดกลายเปนมาตรฐานหลักของระบบจัดการฐานขอมูล และมีการใชระบบจัดการฐานขอมูลกันอยางแพรหลาย ภาษาท่ีใชสําหรับจัดการฐานขอมูลเชิงสัมพันธท่ีไดรับ

Page 8: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

8 บทท่ี 1

การยอมรับเปนมาตรฐานไดแก SQL ซึ่งถูกพัฒนาขึ้นโดยบริษัทไอบีเอ็มภายใตโครงการ IBM’s System R โดย SQL ดังกลาวไดถูกกําหนดมาตรฐานขึ้นในปลายทศวรรษท่ี 1980 โดย SQL เริ่มจากการกําหนดและรองรับใหเปนมาตรฐานโดย American National Standards Institute (ANSI) จน International Organization for Standardization (ISO) กําหนดใหเปนมาตรฐานในระดับนานาชาติในท่ีสุด การคิดคนสําคัญอีกอยางหนึ่งของ SQL ก็คือการออกแบบ SQL เพ่ือใหรองรับการใชงานฐานขอมูลโดยผูใชฐานขอมูลหลายคน และธุรกรรมท่ีเกิดขึ้นพรอมๆ กันได โดยเขียนคําสั่งเสมือนมีผูใชงานฐานขอมูลไมพรอมกัน แตระบบจัดการฐานขอมูลสามารถรองรับการใชงานฐานขอมูลพรอมจากผูใชหลายคนได เจมส เกรย (James Gray) ไดรับรางวัล Turing สําหรับการศึกษาท่ีเปนประโยชนตอการจัดการธุรกรรมของฐานขอมูล ปรากฏการณท่ีนาสนใจของการจัดการฐานขอมูลในปจจุบันไดแกการกําเนิดของระบบจัดการทรัพยากรองคการ (enterprise resource planning – ERP) ซึ่งเปนรูปแบบสมัยใหมของการใชงานระบบจัดการฐานขอมูล โดยสวนใหญองคการธุรกิจจะประกอบไปดวยหนวยงานยอยๆ ท่ีคลายคลึงกันแบงตามหนาท่ีทางธุรกิจ (business functions) เชนฝายทรัพยากรมนุษย ฝายการเงินและบัญชี ฝายผลิต ฝายขาย และฝายบริหารเปนตน ซึ่งโดยปกติหนวยงานทางธุรกิจเหลานี้มีระบบสารสนเทศของตนเองและจัดเก็บขอมูลลงในระบบจัดการฐานขอมูล นอกจากขอมูลท่ีจัดเก็บในระบบจัดการฐานขอมูลของหนวยงานยอยๆ จะมีความคลายคลึงกันในแตละบริษัทแลว กระบวนการทางธุรกิจอื่นๆ ก็มีความคลายคลึงเชนเดียวกัน จึงมีผูพัฒนา ERP ขึ้นเพ่ือเชื่อมโยงขอมูลของหนวยงานยอยของบริษัทเขาดวยกัน ตลอดจนนําเสนอโปรแกรมประยุกตท่ีอํานวยความสะดวกในกระบวนการธุรกิจมาพรอมกับระบบจัดการฐานขอมูลดวย บริษัทผูนําดานซอฟตแวร ERP ไดแก Baan Oracle PeopleSoft SAP และ Siebel เปนตน ชุด ERP แตละชุดสามารถปรับแตงเพ่ือใหเขากับองคการธุรกิจใดๆ ไดโดยเฉพาะ จึงเปนการประหยัดเวลาและคาใชจายในการพัฒนาระบบสารสนเทศเพ่ือชวยในการดําเนินการและบริหารองคการ วิวัฒนาการท่ีสําคัญอยางยิ่งยวดของระบบจัดการฐานขอมูลไดแกความสามารถของการใชงานฐานขอมูลผานอินเตอรเน็ต ในยุคแรกของอินเตอรเน็ต หนาเว็บตางๆ เปนไฟลท่ีมีเนื้อหาคงท่ีตามท่ีไดสรางขึ้นโดย HTML แตในปจจุบันเราสามารถสรางเว็บไซตท่ีสามารถตอบสนองตามการรองขอของผูใชท่ีแตกตางกันจากฟอรมของเว็บ คนคืนขอมูลจากฐานขอมูล ประมวลผลและนําเสนอในรูปแบบของเอกสาร HTML เพ่ือสามารถแสดงผลบนเว็บบราวเซอรได การประยุกตใชงานดังกลาวเปนท่ีนิยมแพรหลาย ผูผลิตระบบจัดการฐานขอมูลทุกรายไดเพ่ิมความสามารถดานการใชงานฐานขอมูลบนเว็บใหกับผลิตภัณฑของตนเอง

ภาพท่ี 1-2 วิวัฒนาการท่ีสําคัญของฐานขอมูล

Page 9: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

แนวคิดท่ัวไปเกี่ยวกับฐานขอมูล 9

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

เพ่ือใหเขาใจถึงความจําเปนในการใชงานระบบจัดการฐานขอมูล สามารถอธิบาย (Ramakrishnan and Gehrke, 2003) ใหเห็นไดดังนี้ บริษัทแหงหนึ่งมีขอมูลอยูเปนจํานวนมาก ประมาณ 500 GB ซึ่งเปนขอมูลของพนักงาน แผนก สินคา การขาย ฯลฯ ขอมูลถูกใชงานโดยพนักงานหลายคนพรอมกัน การเรียกใชขอมูลจะตองไดรับการตอบสนองอยางรวดเร็ว การเปลี่ยนแปลงขอมูลใดๆ โดยผูใชงานคนละคนจะตองยังคงความถูกตองของขอมูล และจะตองมีการปองกันการเขาถึงขอมูลบางขอมูล เชน ขอมูลเงินเดือนของพนักงาน เปนตน

เราสามารถลองท่ีจะจัดการขอมูลดังกลาวโดยจัดเก็บขอมูลรูปแบบไฟลปกติท่ีปฏิบัติกันมานานแลว ซึ่งวิธีดังกลาวมีขอเสียท่ีเกิดขึ้นดังนี้

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

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

• จะตองมีการปองกันความผิดพลาดในกรณีท่ีมีการแกไขขอมูลเดียวกันพรอมๆ กัน การจัดการเหตุการณดังกลาวในกรณีท่ีใชระบบไฟลขอมูล ยิ่งทวีความซับซอนในการเขียนโปรแกรม

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

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

Page 10: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

10 บทท่ี 1

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

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

ระบบจัดการฐานขอมูลมีขอดีดังตอไปนี้ • ความเปนอิสระของขอมูล (data independence) ความเปนอิสระของขอมูลหมายถึงการท่ี

รูปแบบของขอมูลไมผูกติดกับสิ่งใดสิ่งหนึ่งในกระบวนใชงานฐานขอมูล เชน การท่ีนักพัฒนาระบบจะพัฒนาระบบสารสนเทศหรือโปรแกรมประยุกตใดๆ เพ่ือใชประโยชน ชุดคําสั่งของโปรแกรมไมควรผูกติดอยูกับรูปแบบของการจัดเก็บขอมูลในระดับฮารดแวร แตควรมีกลไกในการขั้นกลางระหวางการจัดเก็บขอมูลกับการใชงานขอมูลในระดับสูง ซึ่งสามารถสรางเปนระดับๆ ของกลไกไดโดยเรียกวาระดับเชิงนามธรรมของฐานขอมูล (level of database abstractions)

• การเขาถึงขอมูลอยางมีประสิทธิภาพ (efficient data access) ระบบจัดการฐานขอมูลใชเทคนิคท่ีซับซอนและชาญฉลาดท่ีจะจัดเก็บขอมูลและเรียกใชขอมูลอยางมีประสิทธิภาพและรวดเร็ว เทคนิคดังกลาวจําเปนอยางยิ่งโดยเฉพาะสําหรับการจัดการขอมูลท่ีอยูในหนวยความจําสํารองท่ี

รหัสพนักงาน | ช่ือพนักงาน | แผนก | เงินเดือน | 00001 | นายสมชาย จดปลายเทา | ฝายขาย | 30000 | 00002 | นางสาวสมศร ี จดปลายเทา | ฝายบุคคล | 12000 | …

รหัสพนักงาน | ช่ือพนักงาน | ยอดขาย | 00001 | นายสมชาย จดปลายเทา | 300000 | 00004 | นางสาวสมหญิง จดปลายเทา | 250000 | …

Page 11: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

แนวคิดท่ัวไปเกี่ยวกับฐานขอมูล 11

ทํางานไดชากวาหนวยความจําหลักอยางมาก นอกจากนี้ยังรวมถึงวิธีจัดการกับขอมูลเพ่ือแสดงผลลัพธไดอยางรวดเร็วตามขอคําถาม (queries) ตางๆ

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

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

• การจัดการภาวะพรอมกันและการกูจากความลมเหลวของระบบ (concurrent access and crash recovery) ระบบจัดการฐานขอมูลมีความสามารถในการจัดลําดับการทํางานของธุรกรรมท่ีเขามาพรอมๆ กันใหเสมือนหนึ่งวาฐานขอมูลมีการใชงานจากผูใชเพียงคนเดียวและการปรับปรุงขอมูลใดๆ มีความถูกตองอยูเสมอ ตลอดจนปองกันขอมูลสูญหายและผิดพลาดในกรณีท่ีระบบลมเหลว

• ลดเวลาในการพัฒนาระบบท่ีใชงานฐานขอมูล (reduced application development time) ระบบจัดการฐานขอมูลท่ีมีใหเลือกใชมีความสามารถในการรองรับการทํางานท่ีใชกันโดยท่ัวไป ดังนั้นจึงมีเครื่องมือและรูปแบบการเรียกใชงานซึ่งมองไดวาเปนการเรียกใชงานฐานขอมูลในระดับสูง เชนมีมาตรฐาน SQL ในการจัดการขอมูล ทําใหไมตองเขียนโปรแกรมเฉพาะท่ียุงยากซับซอนสําหรับขอมูลแตละชุดเอง นอกจากนี้การจัดการขอมูลลงในอุปกรณจัดเก็บยังทํางานอยางถูกตองและมีประสิทธิภาพอยูแลวโดยระบบจัดการฐานขอมูล นักพัฒนาสามารถลดเวลาในการพัฒนาและแกไขขอผิดพลาดจากการพัฒนาลงไดอยางมาก

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

Page 12: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

12 บทท่ี 1

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

ผูใชขอมูลโดยท่ัวไปจะมองขอมูลในมุมมองของการใชงานในชีวิตจริง ในขณะท่ีการจัดเก็บขอมูลลงในฐานขอมูลเปนวิธีในการท่ีจะทําอยางไรเพ่ือจัดเก็บขอมูลในมุมมองนั้นๆ ลงในฐานขอมูลใหได เชน ในมหาวิทยาลัยจะประกอบไปดวยขอมูลท่ีเกี่ยวกับนักศึกษา อาจารย และรายวิชา ตลอดจนกิจกรรมตางๆ ท่ีเกิดขึ้นในมหาวิทยาลัยท่ีจะตองจดบันทึกขอมูลไว ในขณะท่ีการจัดเก็บขอมูลลงในฐานขอมูลจะอยูในรูปของการมองผูกระทํากิจกรรมตางๆ เปนเอนทิตี การเก็บขอมูลท่ีอธิบายเอนทิตีตางๆ และจัดเก็บขอมูลดานความสัมพันธตางๆ ของเอนทิตีไว การท่ีจะจําลองมุมมองขอมูลในโลกแหงความเปนจริงมาเปนรูปแบบของการจัดเก็บขอมูลในเครื่องคอมพิวเตอรจําเปนตองแทนขอมูลและเชื่อมโยงกันโดยอาศัยแบบจําลองขอมูล (data model) ซึ่งแบบจําลองขอมูลนี ้ จะใชเปนเครื่องมือท่ีแทนรูปแบบของการจัดเก็บขอมูลในระดับสูง และจะซอนรายละเอียดอื่นๆ ท่ีเกี่ยวของกับการจัดเก็บขอมูลในระดับลางท่ีเกี่ยวของกับการเก็บขอมูลลงในอุปกรณจัดเก็บจริงๆ ซึ่งในปจจุบัน แบบจําลองขอมูลท่ีใชกันแพรหลายท่ีสุดไดแกแบบจําลองขอมูลเชิงสัมพันธ (relational database) ซึ่งเปนแบบจําลองหลักท่ีใชศึกษาในรายวิชา อยางไรก็ตาม แมแบบจําลองขอมูลจะซอนรายละเอียดการจัดการกับอุปกรณจัดเก็บขอมูล แตแบบจําลองขอมูลมีความใกลเคียงกับวิธีการจัดเก็บขอมูลของระบบจัดการฐานขอมูลมากกวาการมองขอมูลในโลกแหงความเปนจริง เราจึงตองอาศัยเครื่องมืออื่นไดแกแบบจําลองขอมูลเชิงความหมาย (semantic data mode) ซึ่งเปนธรรมชาติใกลเคียงกับขอมูลในมุมมองของการใชงานในโลกแหงความเปนจริงมากขึ้น โดยแบบจําลองขอมูลเชิงความหมายนี้จะใชเปนเครื่องมือเริ่มตนในการแทนกิจกรรมและผูเกี่ยวของตางๆ ใหอยูในรูปแบบแผนภาพ หรือรูปแบบอื่นๆ ท่ีจะสามารถจดบันทึกและแลกเปลี่ยนทําความเขาใจกันได แบบจําลองขอมูลเชิงความหมายนี้สามารถแทนขอกําหนดตางๆ ของกิจกรรมในองคการได แตระบบจัดการฐานขอมูลไมสามารถรองรับขอกําหนดนั้นๆ โดยตรง เพราะระบบจัดการฐานขอมูลเชิงสัมพันธใชแบบจําลองขอมูลเชิงสัมพันธซึ่งตางจากแบบจําลองในระดับสูงอยางแบบจําลองขอมูลเชิงความหมาย อยางไรก็ตาม แบบจําลองขอมูลท้ังสองมีความสัมพันธกัน และเราสามารถออกแบบใหสอดคลองกันไดเพ่ือใหระบบจัดการฐานขอมูลเชิงสัมพันธสามารถรองรับการใชงานขอมูลในกิจการขององคการไดอยางถูกตอง รูปแบบของแบบจําลองขอมูลเชิงความหมายท่ีไดรับการใชงานอยางกวางขวางมีชื่อวาแบบจําลองเอนทิตีและความสัมพันธ (entity-relationship model—ER model) แบบจําลองดังกลาวทําใหเราสามารถแทนเอนทิตีและความสัมพันธของเอนทิตีตางๆ เปนแผนภาพ แบบจําลองเอนทิตีและความสัมพันธเปนเครื่องมือท่ี

Page 13: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

แนวคิดท่ัวไปเกี่ยวกับฐานขอมูล 13

ใชในการออกแบบฐานขอมูลขั้นตนกอนท่ีจะปรับแผนภาพเอนทิตีและความสัมพันธไปเปนแบบจําลองเชิงสัมพันธ และจัดการในรูปแบบของฐานขอมูลเชิงสัมพันธในท่ีสุด การออกแบบฐานขอมูลดวยแบบจําลองเอนทิตีและความสัมพันธนั้นจะกลาวถึงในบทท่ี 3 1.6.1 แบบจําลองเชิงสัมพันธ (relational model)

ในหัวขอนี้จะแนะนําแบบจําลองเชิงสัมพันธโดยยอ โครงสรางท่ีเปนหลักของแบบจําลองเชิงสัมพันธไดแก ตารางความสัมพันธ/รีเลชัน (relation) ซึ่งรีเลชันนี้สามารถเปรียบไดกับชุดของระเบียน (records)

ในแบบจําลองขอมูลนั้นจะมีการนิยามหรืออธิบายขอมูลตางๆ ไว ซึ่งเราเรียกการนิยามขอมูลในแบบจําลองขอมูลนี้วาเคาราง/สคีมา (schema) ซึ่งสคีมาในแบบจําลองเชิงสัมพันธประกอบไปดวยชื่อของความสัมพันธ ชื่อของเขตขอมูล หรือลักษณะประจํา หรือสดมภ (field or attribute or column ซึ่งจะใชคําวาฟลด แอททริบิวต และคอลัมนตามลําดับแทนเนื่องจากสามารถเขาใจไดงายกวา และสามารถใชแทนกันไดตามความเหมาะสม) ซึ่งท้ังฟลด แอททริบิวต และคอลัมน ตางก็คือการนิยามขอมูลในรีเลชันเชนเดียวกัน นอกจากนี้สคีมาในแบบจําลองเชิงสัมพันธยังประกอบไปดวยชนิดของขอมูลแตละฟลด ตัวอยางตอไปนี้แสดงรีเลชัน ของขอมูลตัวอยางของนักศึกษาในมหาวิทยาลัย (Ramakrishnan and Gehrke, 2003) ซึ่งรีเลชันมีสคีมาดังตอไปนี้

Student (sid: string, name: string, login: string, age: integer, gpa: real)

Student แสดงถึงความสัมพันธของนักศึกษา sid คือฟลดรหัสนักศึกษามีชนิดเปนสตริงหรือสายอักขระ name คือชื่อจรงิของนักศึกษา login คือชื่อท่ีใชในการเขาใชงานระบบ age เปนอายุซึ่งเปนขอมูลชนิดจํานวนเต็ม และ gpa คือเกรดเฉลี่ยของนักศึกษามีชนิดของขอมูลเปนจํานวนจริง ท้ังนี้ในทางปฏิบัติแลวเราไมควรออกแบบฐานขอมูลโดยมีฟลดท่ีสามารถเปลี่ยนแปลงขอมูลไปตามกาลเวลาเชนอายุ เนื่องจากในปถัดไปอายุของนักศึกษาจะเพ่ิมขึ้นได เราจึงควรกําหนดฟลดดังกลาวเปนวันเดือนปเกิด แตเพ่ือความสะดวกตอการอธิบายและยกตัวอยาง จึงใชฟลดท่ีเปนอายุประกอบตัวอยาง

กรณีตัวอยาง (instance) ของขอมูล 5 ตัวอยางจากสคีมา Student สามารถแสดงไดดังนี้ sid name login age gpa B5075666 สมชาย somchai@it 18 3.44 B5075688 สมศรี somsri@com 18 3.21 B5075650 สมศรี somsri@it 19 3.82 B5075831 สมศักด์ิ somsak@med 11 1.80 B5075832 สมน้ําหนา somnamna@math 12 2.00

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

Page 14: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

14 บทท่ี 1

เราสามารถท่ีจะนิยามหรือระบุขอกําหนดตางๆ ของขอมูลนักศึกษาใหเฉพาะเจาะจงไดอีกโดยการกําหนดเง่ือนไขบังคับบูรณภาพ (integrity constraints) ซึ่งใชในการกําหนดเงื่อนไข ขอบังคับ หรือกฎเกณฑท่ีขอมูลในระเบียนนั้นตองเปนไปตามกฎ เชนตองไมมีรหัสนักศึกษาท่ีซ้ํากัน การกําหนดเงื่อนไขดังกลาวควรท่ีจะสามารถระบุไดในแบบจําลองขอมูล

1.6.2 แบบจําลองขอมูลแบบอ่ืนๆ

นอกจากแบบจําลองขอมูลเชิงสัมพันธซึ่งใชในระบบจัดการฐานขอมูล IBM DB2, Oracle, Microsoft Access, Microsoft SQL Server, MySQL ฯลฯ แลว ยังมีแบบจําลองขอมูลอื่นๆ ท่ีใชประโยชนบางในปจจุบันแตไมแพรหลายเทียบเทาแบบจําลองเชิงสัมพันธ ซึ่งสามารถใชงานไดดีในงานบางประเภทรวมถึงอาจเปนระบบท่ีมีขนาดใหญโตและใชมานานแลว แบบจําลองขอมูลท่ีสําคัญท่ีควรกลาวถึง ไดแก แบบจําลองเชิงเครือขาย (network model) ซึ่งใชใน IDS และ IDMS แบบจําลองเชิงลําดับชั้น (hierarchical model) ซึ่งประยุกตใชโดย IBM IMS แบบจําลองเชิงวัตถุ (object-oriented model) มีใชใน Objectstore Versant ฯลฯ แบบจําลองเชิงวัตถุ-สัมพันธรองรับโดย IBM DB2, Oracle, Microsoft SQL Server ฯลฯ ตอไปนี้จะเปนการแนะนําฐานขอมูลเชิงเครือขายและเชิงลําดับชั้นเบ้ืองตน

แบบจําลองฐานขอมูลเชิงเครือขาย

ภาพท่ี 1-3 ตัวอยางขอมูลแบบจําลองเชิงเครือขาย แบบจําลองขอมูลเชิงเครือขายนั้นมีขอมูลจัดเก็บเปนระเบียนดังตัวอยาง ซึ่งขอมูลจะมีการเชื่อมโยง

กับขอมูลท่ีเกี่ยวของในลักษณะเซตของความสัมพันธ เราอาจกําหนดเซตของความสัมพันธในคอลัมนใหมเชนคอลัมนท่ีกําหนดสาขาวิชาท่ีนักศึกษาแตละคนสังกัด ตัวอยางขอมูลนั้นเปนตัวอยางจํานวนนอย ถาขอมูลมีจํานวนมาก รูปแบบของการเชื่อมโยงขอมูลจะอยูในรูปของเครือขาย หรือท่ีเรียกวาโครงสรางขอมูลกราฟ ขอมูลแตละระเบียนเปนโหนด (nodes) ของกราฟ (graph) และการเชื่อมโยงระหวางระเบียนคือขอบ (edges)

D423 สาขาวิชาวิศวกรรมคอมพิวเตอร สํานักวิชาวิศวกรรมศาสตร B5005688 สมศรี somsri@com 18 3.21 D423 D609 สาขาวิชาแพทยศาสตร สํานักวิชาแพทยศาสตร B5001092 สมควร somkuan@com 18 3.98 D423 D204 สาขาวิชาเทคโนโลยีสารสนเทศ สํานักวิชาเทคโนโลยีสังคม B5075831 สมศักดิ์ somsak@med 11 1.80 D609 D102 สาขาวิชาเคมี สํานักวิชาวิทยาศาสตร B5075699 สมหญิง somying@it 18 4.00 D204 D205 สาขาวิชาเทคโนโลยีการจัดการ สํานักวิชาเทคโนโลยีสังคม B5075666 สมชาย somchai@it 18 3.44 D204

B5075650 สมศรี somsri@it 19 3.82 D204

Page 15: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

แนวคิดท่ัวไปเกี่ยวกับฐานขอมูล 15

แบบจําลองฐานขอมูลเชิงลําดับช้ัน

ภาพท่ี 1-4 ตัวอยางขอมูลแบบจําลองเชิงลําดับชั้น แบบจําลองฐานขอมูลเชิงลําดับชั้นสามารถมองไดวาเปนแบบจําลองเชิงเครือขายท่ีมีรูปแบบเฉพาะ โดยมีรูปแบบของการเชื่อมตอเครือขายเปนลําดับชั้น หรือเปนโครงสรางขอมูลแบบตนไม (tree) จากตัวอยางขอมูลจะพบวาแบบจําลองเชิงลําดับชั้นจะอนุญาตใหมีโหนดท่ีเปนตนกําเนิดเพียงโหนดเดียว แบบจําลองฐานขอมูลท้ัง 2 แบบไดถูกพัฒนาและใชมากวา 10 ปกอนท่ีจะมีการเสนอแบบจําลองขอมูลเชิงสัมพันธขึ้น ฐานขอมูลท่ีใชแบบจําลองขอมูลท้ัง 2 ไดยกตัวอยางไวแลวในหัวขอ 1.3 แบบจําลองฐานขอมูลท้ัง 2 สามารถรองรับการทํางานของขอมูลไดดีระดับหนึ่งเนื่องจากทํางานโดยใชระเบียนและรองรับความสัมพันธระหวางระเบียนแตขอดอยสําคัญของแบบจําลองท้ัง 2 คือการขาดความสามารถในการจัดการขอมูลใหมีความถูกตองโดยขาดการรองรับเงื่อนไขบังคับบูรณภาพของขอมูล (integrity constraint) สําหรับแบบจําลองเชิงวัตถุนั้นรองรับขอกําหนดทางธุรกิจตางๆ แตการแทนขอมูลเพ่ือจัดเก็บลงในระบบจัดการฐานขอมูลนั้นไมมีรูปแบบท่ีชัดเจนและจะตองอางอิงการจัดการขอมูลเชิงระเบียนหรือเชิงสัมพันธ

D102 … สํานักวิชาวิทยาศาสตร D205 … สํานักวิชาเทคโนโลยีสังคม

D423 … สํานักวิชาวิศวกรรมศาสตร D204 … สํานักวิชาเทคโนโลยีสังคม D609 … สํานักวิชาแพทยศาสตร

B5005688 สมศรี somsri@com 18 3.21 D423

B5001092 สมควร somkuan@com 18 3.98 D423

B5075699 สมหญิง somying@it 18 4.00 D204

B5075666 สมชาย somchai@it 18 3.44 D204

B5075650 สมศรี somsri@it 19 3.82 D204

B5075831 สมศักดิ ์ somsak@med 11 1.80 D609

Page 16: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

16 บทท่ี 1

1.6.3 ระดับของฐานขอมูล ระดับชั้นของโครงสรางในฐานขอมูลสามารถแบงออกได 3 ระดับดังภาพท่ี 1-5 ระดับของฐานขอมูล

แตละระดับนั้นเปนระดับของการแทนการใชงานขอมูลจริงดวยรูปแบบตางๆ ท่ีเหมาะสมจนสามารถจัดการฐานขอมูลไดอยางมีประสิทธิภาพ แตละระดับบรรจุรายละเอียดของขอมูลและสคีมาประจําแตละระดับ ฐานขอมูลท้ัง 3 ระดับไดแก ระดับแนวคิด (conceptual level) ระดับกายภาพ (physical level) และระดับภายนอก (external level)

ภาษาท่ีใชในการนิยามขอมูล (data definition language—DDL) ใชสําหรับนิยามและสรางสคีมาในระดับภายนอกและระดับแนวคิด SQL เปนภาษาท่ีใชงานมากท่ีสุดในการนิยามและจัดการขอมูลซึ่งจะไดอธิบายถึงในบทท่ี 7 และ 8 ระบบจัดการฐานขอมูลเกือบท้ังหมดรองรับคําสั่ง SQL นอกจากนี้ยังใช SQL ในการจัดการขอมูลในระดับกายภาพดวย ตอไปนี้เปนการอธิบายถึงระดับของฐานขอมูล 3 ระดับ

ภาพท่ี 1-5 สถาปตยกรรม 3 ระดับของฐานขอมูล

1) สคีมาระดับแนวคิด (Conceptual Schema) สคีมาระดับแนวคิด ซึ่งในบางครั้งเรียกวาสคีมาระดับตรรกะ (logical schema) เปนระดับของการอธิบายขอมูลท่ีจะจัดเก็บใหมีรูปแบบสัมพันธกับแบบจําลองขอมูลของระบบจัดการฐานขอมูลโดยตรง ในระบบจัดการฐานขอมูลเชิงสัมพันธ สคีมาระดับแนวคิดอธิบายถึงความสัมพันธท้ังหมดท่ีจัดเก็บในฐานขอมูล ตัวอยางฐานขอมูลของมหาวิทยาลัยตอไปนี้บรรจุขอมูลเกี่ยวกับเอนทิตี เชน นักศึกษา (student) และอาจารย (faculty) และยังจัดเก็บความสัมพันธ (relationships) ของเอนทิตีตางๆ เชนนักศึกษาลงทะเบียนในรายวิชา (Course) เอนทิตีนักศึกษาทุกคนสามารถอธิบายขอมูลไดจากระเบียนท้ังหมดในรีเลชัน เราสามารถแทนชุดขอมูลของเอนทิตีและชุดขอมูลของความสัมพันธใดๆ ไดดวยรีเลชัน ซึ่งเราสามารถกําหนดสคีมาระดับแนวคิดของมหาวิทยาลัย (Ramakrishnan and Gehrke, 2003) ไดดังนี้

สคีมาภายนอก 1 สคีมาภายนอก 1 สคีมาภายนอก 1

สคีมาระดับแนวคิด

สคีมาระดับกายภาพ

Disk Level

User Level

Page 17: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

แนวคิดท่ัวไปเกี่ยวกับฐานขอมูล 17

Student (sid: string, name: string, login: string, age: integer, gpa: real) Faculty (fid: string, fname: string, sal: real) Course (cid: string, cname: string, credits: integer) Room (rno: integer, address: string, capacity: integer) Enrolled (sid: string, cid: string, grade: string) Teaches (fid: string, cid: string) Meets_In (cid: string, rno: integer, time: string) การเลือกท่ีจะเก็บขอมูลใดๆ และกําหนดขึ้นเปนรีเลชัน ตลอดจนจะตองจัดเก็บขอมูลฟลดใดบางในแตละรีเลชันนั้นไมชัดแจงและตายตัว เราสามารถสรางสคีมาเชิงแนวคิดท่ีสมบูรณดังท่ีไดอธิบายในการออกแบบฐานขอมูลในระดับแนวคิดในบทท่ี 2 และ 4

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

• จัดเก็บขอมูลเปนไฟลของระเบียนซึ่งไมจําเปนตองเรียงลําดับขอมูล นอกจากนี้อาจเปนไฟลหลายๆ ไฟลจัดเก็บขอมูลเปนชุดๆ

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

ขอมูลจริงไดรวดเร็ว จําเปนสําหรับขอมูลจํานวนมหาศาลในอุปกรณหนวยความจําสํารอง ซึ่งหลักการของ index จะไดกลาวถึงในการสราง index ดวย SQL ในบทท่ี 7 การไดมาซึ่งสคีมาทางกายภาพท่ีดีควรทําตามระเบียบวิธีในการออกแบบสคีมาระดับกายภาพ ซึ่งไดอธิบายไวในบทท่ี 2

Page 18: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

18 บทท่ี 1

3) สคีมาระดับภายนอก สคีมาระดับภายนอกหมายเปนการระบุหรืออธิบายขอมูลท่ีใชงานในเชิงแบบจําลองขอมูลเชนเดียวกัน

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

ตัวอยางท่ี 1.2 วิว (Ramakrishnan and Gehrke, 2003) สําหรับสคีมาระดับภายนอกนี้เราสามารถสรางไดหลายๆ สคีมาตามขอกําหนดท่ีไดรับจากการ

วิเคราะหความตองการการใชขอมูลของผูใช ดังตัวอยางรีเลชันขอมูลรายวิชา Course_info ท่ีสรางขึ้นจากวิวตอไปนี้

Course_info (cid: string, fname: string, enrollment: integer)

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

Enrolled (sid: string, cid: string, grade: string)

เราสามารถบันทึกการลงทะเบียนเรียนของนักศึกษาในรายวิชาโดยใชรหัสนักศึกษา sid รหัสวิชา cid และอาจบันทึกเกรดท่ีไดในภายหลังในรีเลชัน Enrolled พิจารณาปญหาวาเม่ือนักศึกษาคนใดคนหนึ่งลงทะเบียนในรายวิชาใดๆ ระเบียนจะถูกบันทึกเพ่ิมขึ้น 1 ระเบียน แตในถามีการสรางรีเลชัน Course_info จํานวนนักศึกษาท่ีลงทะเบียนใหมไมไดมีการแกไขขอมูลใหเพ่ิมขึ้นอีก 1 คนจะยังมีคาคงเดิมทําใหขอมูลนั้นขัดแยงกัน เปนตัวอยางหนึ่งของสคีมาระดับภายนอก ซึ่งคําวาภายนอกนั้นเปนมุมมองจากการมองโดยใชระบบจัดการฐานขอมูลเปนตัวต้ัง

Page 19: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

แนวคิดท่ัวไปเกี่ยวกับฐานขอมูล 19

1.6.4 ความเปนอิสระของขอมูล ความเปนอิสระของขอมูล (data independence) เปนขอดีขอสําคัญของการใชงานระบบจัดการ

ฐานขอมูล เราไมจําเปนตองแกไขระบบสารสนเทศหรือโปรแกรมประยุกตท่ีเราพัฒนาขึ้นมาเรียกใชงานฐานขอมูลในกรณีท่ีมีการเปลี่ยนแปลงโครงสรางหรือการจัดการไฟลขอมูลบนอุปกรณหนวยความจําสํารอง ความเปนอิสระของขอมูลเกิดขึ้นไดจากประโยชนของการสถาปตยกรรม 3 ระดับของฐานขอมูล ซึ่งเราจะไดรับประโยชนอยางมากโดยเฉพาะจากสคีมาระดับแนวคิด และสคีมาระดับภายนอก ซึ่งสามารถทําใหเกิดความเปนอิสระของขอมูลเชิงตรรกะ (logical data independence) และความเปนอิสระของขอมูลเชิงกายภาพ (physical data independence) ดังตัวอยางตอไปนี้

ตัวอยางท่ี 1.3 ความเปนอิสระของขอมูลเชิงตรรกะ (Ramakrishnan and Gehrke, 2003) พิจารณาสคีมาระดับภายนอก Course_info แสดงขอมูลรายวิชาท่ีเกี่ยวกับการลงทะเบียนในตัวอยางท่ี 1.2 ถาเกิดกรณีท่ีมีการเปลี่ยนแปลงของรีเลชันท่ีวิว Course_info อางอิงถึง เชนจํานวนฟลดในรีเลชัน Faculty เพ่ิมขึ้น (Course_info อางอิงถึง fname จากรีเลชัน Faculty) ไดแกการเพ่ิมฟลดคํานําหนาหรือตําแหนงทางวิชาการ title ผูใชซึ่งเขาถึงขอมูลผานทางวิวจะไมมีผลกระทบใดๆ เนื่องจากเราไมจําเปนตองแกไขสคีมาภายนอกซึ่งในท่ีนี้คือวิว

สคีมาเดิม Course_info (cid: string, fname: string, enrollment: integer)

Faculty (fid: string, fname: string, sal: real)

สคีมาใหม Course_info (cid: string, fname: string, enrollment: integer)

Faculty (fid: string, fname: string, sal: real, title: string)

จากตัวอยาง พบวาวิว Course_info ไมตองไดรับการแกไขใดๆ เม่ือตารางFaculty เปลี่ยนแปลง รวมถึงการเรียกใชงาน Course_info ท่ีมีอยูเดิมจะไมไดรับผลกระทบ ตัวอยางท่ี 1.4 ความเปนอิสระของขอมูลเชิงตรรกะ (Ramakrishnan and Gehrke, 2003) พิจารณาสคีมาระดับภายนอก Course_info แสดงขอมูลรายวิชาท่ีเกี่ยวกับการลงทะเบียนในตัวอยางท่ี 1.2 ถาเกิดกรณีท่ีมีการเปลี่ยนแปลงของรีเลชันท่ีวิว Course_info อางอิงถึง ซึ่งซับซอนกวาในตัวอยางท่ี 1.3

Course_info (cid: string, fname: string, enrollment: integer) Faculty (fid: string, fname: string, sal: real)

สมมติวาเพ่ือเพ่ิมความเปนสวนตัวของขอมูลอาจารยอันไดแกขอมูลเงินเดือน (sal) เราสามารถแยกขอมูลของอาจารยออกเปน 2 รีเลชันดังนี้

Page 20: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

20 บทท่ี 1

Course_info (cid: string, fname: string, enrollment: integer) Faculty_public (fid: string, fname: string, office: integer) Faculty_private (fid: string, sal: real)

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

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

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

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

ภาพท่ี 1-6 สถาปตยกรรม 3 ระดับและความเปนอิสระของขอมูลซึ่งเปนไปตามมาตรฐาน ANSI-SPARC

สคีมาภายนอก 1 สคีมาภายนอก 1 สคีมาภายนอก 1

สคีมาระดับแนวคิด

สคีมาระดับกายภาพ

ความเปนอิสระเชิงตรรกะ

ความเปนอิสระเชิงกายภาพ

Disk Level

User Level

Page 21: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

แนวคิดท่ัวไปเกี่ยวกับฐานขอมูล 21

1.7 ขอคําถาม (queries) ในระบบจัดการฐานขอมูล ขอดีท่ีสําคัญยิ่งอีกประการหนึ่งของระบบจัดการฐานขอมูลนั้นคือระบบจัดการฐานขอมูลเชิงสัมพันธ

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

1) นักศึกษารหัส B5075666 ชื่ออะไร ตัวอยางการใชงาน ใชสําหรับใหคะแนนนักศึกษา

2) นักศึกษาคนใดบางท่ีลงทะเบียนเรียนในรายวิชา 204204 การออกแบบและพัฒนาฐานขอมูล ตัวอยางการใชงาน ใชสําหรับพิมพรายชื่อนักศึกษาเพ่ือการลงชื่อเขาเรียน

3) นักศึกษาท่ีลงทะเบียนรายวิชา 204204 มีจํานวนเทาใด ตัวอยางการใชงาน เพ่ือใหนักศึกษาสามารถเลือกลงทะเบียนในกลุมท่ียังวางอยู

4) เกรดเฉลี่ยท้ังหองเรียนของนักศึกษาในรายวิชา 204204 คือเทาใด ตัวอยางการใชงาน สําหรับพิจารณาปรับปรุงรูปแบบการเรียนการสอนเพ่ือเพ่ิมคุณภาพการศึกษา

5) นักศึกษาท่ีมีเกรดเฉลี่ยตํ่ากวา 2.00 คือนักศึกษาคนใดบาง ตัวอยางการใชงาน พิจารณาสถานะการเปนนักศึกษาของนักศึกษาวาควรสิ้นสภาพหรือไม

การสอบถามขอมูลท่ีสนใจเพ่ือนําไปใชประโยชนตามวัตถุประสงค และรองรับการทํางานขององคการใดๆ นั้นเราจะสรางขอคําถาม (queries) และปอนเขาสูระบบจัดการฐานขอมูล ระบบจัดการฐานขอมูลจะเปนผูจัดการขั้นตอนท่ีสลับซับซอนท้ังหมดในการประมวลผลเพ่ือใหไดมาซึ่งผลลัพธตามขอคําถาม ท้ังนี้ระบบจัดการฐานขอมูลจะรองรับขอคําถามท่ีมีโครงสรางท่ีแนนอน ซึ่งเปนภาษาคอมพิวเตอรภาษาหนึ่ง ระบบจัดการฐานขอมูลท่ีใชแบบจําลองขอมูลแตละแบบมักจะมีภาษาสอบถาม (query language) เฉพาะ สําหรับระบบจัดการฐานขอมูลเชิงสัมพันธนั้นเราใช SQL เปนภาษาหลักสําหรับขอคําถามในการเรียกแสดงขอมูล SQL เปนภาษาท่ีมีโครงสรางชัดเจน มีความสามารถและสิทธิภาพสูง ซึ่ง SQL มีพ้ืนฐานมาจากแคลคูลัสเชิงสัมพันธ (relational calculus) และพีชคณิตเชิงสัมพันธ (relational algebra) ซึ่งแคลคูลัสเชิงสัมพันธนั้นเปนการใชทฤษฎีทางตรรกะของคณิตศาสตรในขณะท่ีพีชคณิตเชิงสัมพันธอยูบนพ้ืนฐานของการใชงานตัวดําเนินการบนรีเลชัน คลายกับกับตัวดําเนินการบนตัวเลข เชนเครื่องหมายบวก ลบ ท่ีดําเนินการบนตัวเลข แตในกรณีนี้เรานํามาใชกับรีเลชัน เราสามารถใช SQL ในการแสดงขอมูลไดท้ัง SQL ท่ีมีพ้ืนฐานมาจากท้ังแคลคูลัสเชิงสัมพันธและพีชคณิตเชิงสัมพันธ เพ่ือใหเขาใจถึงหลักการสรางขอคําถาม SQL ท่ีถูกตอง การศึกษาแนวคิดและท่ีมาของ SQL จะทําใหการสราง SQL นั้นมีประสิทธิภาพ เราจึงจะกลาวถึงแคลคูลัสเชิงสัมพันธและพีชคณิตเชิงสัมพันธในบทท่ี 6

Page 22: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

22 บทท่ี 1

ตัวอยางท่ี 1.5 ขอคําถาม และ SQL พิจารณาขอคําถามตอไปนี้

ขอคําถาม: “นักศึกษารหัส B5075666 ชื่ออะไร” คําสั่ง SQL: SELECT name FROM student WHERE sid = ‘B5075666’

ตัวอยางดังกลาวเปนคําสั่ง SQL ท่ีแสดงชื่อของนักศึกษารหัส B5075666 ซึ่งเปนการแสดงฟลด name จากรีเลชัน Student สําหรับการสรางขอคําถามดวย SQL อธิบายไวโดยละเอียดในบทท่ี 8

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

ขอคําถามนั้นจัดอยูในกลุมของภาษาท่ีใชในการเพ่ิมขอมูล แกไข ลบ และแสดงขอมูล ซึ่งเราเรียกกลุมของภาษานี้วาภาษาท่ีใชในการจัดการขอมูล (data manipulation language—DML) DML เปนกลุมของภาษาท่ี SQL มีความสามารถในการรองรับ เราสามารถนํา SQL ท่ีใชในการจัดการขอมูลไปรวมกับภาษาคอมพิวเตอรอื่นๆ เชน C, C++, C#, Java, Visual Basic, ASP หรือ PHP ภาษาคอมพิวเตอรเหลานี้ความสามารถสูงในการจัดการสรางโปรแกรมประยุกตเพ่ือรองรับกิจการใดๆ ขององคการ การฝงคําสั่ง SQL เขากับภาษาหลักใดๆ นี้ทําใหเราสามารถสรางโปรแกรมประยุกตไดอยางรวดเร็วและมีประสิทธิภาพ เราเรียก SQL ในการประยุกตแบบนี้วาภาษายอย (sub language) และภาษาคอมพิวเตอรท่ี SQL ฝงอยูวาภาษาหลัก (host language) ตัวอยางการประยุกตใช SQL เปนภาษายอยเพ่ือประโยชนในการสรางระบบสารสนเทศหรือโปรแกรมประยุกต ในการสรางเว็บท่ีใชงานระบบจัดการฐานขอมูลซึ่งเปนรูปแบบท่ีกําลังไดรับความนิยมในปจจุบัน ไดอธิบายไวอยางละเอียดในบทท่ี 10 ฐานขอมูลบนเว็บ ซึ่งใช PHP เปนภาษาหลักและ SQL รวมกับ MySQL ในการใชงานฐานขอมูล รวมถึงตัวอยางในกรณีศึกษารานมือถือออนไลนในภาคผนวก ข

1.8 การจัดการธุรกรรม

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

Page 23: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

แนวคิดท่ัวไปเกี่ยวกับฐานขอมูล 23

การทํางานของระบบลดลง พิจารณาตัวอยางกรณีท่ีเรามีความจําเปนตองจัดการการทํางานพรอมกันของธุรกรรมทางการเงินดังนี้

ตัวอยางท่ี 1.6 ภาวะพรอมกัน Banking นายสมชายและนางสาวสมศรีเปนเจาของบัญชีเงินฝากรวมกันซึ่งแตละคนสามารถถอนเงินไดดวย

บัตร ATM หรือทําธุรกรรมท่ีธนาคารดวยตนเอง สมมติวานายสมชายตองการถอนเงินจากบัญชี โดยนายสมชายเรียกดูยอดเงินคงเหลือในบัญชีกอนการถอนเงิน มีเงินในบัญชี 5,000 บาท และตองการจะถอนเงินท้ังหมด ในขณะเดียวกันนางสาวสมศรีทําการถอนเงินจํานวน 5,000 บาทจากบัญชีเชนเดียวกันโดยทําธุรกรรมท่ีเคานเตอรท่ีสาขาของธนาคาร แตเปนเรื่องบังเอิญท่ีการถอนเงินนั้นทําในเวลาใกลเคียงกันมาก โดยระบบถอนเงินท่ีสาขาของธนาคารทํางานไดเร็วกวาและตัดยอดเงินในบัญชีไปแลว หากเครื่อง ATM ท่ีนายสมชายกําลังถอนเงินอยูนั้นอางอิงยอดเงินเกาท่ีไดแสดงไปแลวคือ 5,000 บาทและตัดยอดในบัญชีไดสําเร็จเชนเดียวกันโดยคิดวายังมียอดเงินในบัญชี 5,000 จะทําใหธนาคารไดรับความเสียหายเนื่องจากลูกคาไดรับเงินไปถึง 10,000 บาท จากท่ีมีเงินในบัญชีเพียง 5,000 บาท

ระบบจัดการฐานขอมูลจะตองปองกันการเกิดเหตุการณดังกลาวใหไดท้ังนี้เทคนิคท่ีนิยมใชกันในการ

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

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

ตัวอยางท่ี 1.7 ความขัดของของระบบ Airline Tickets

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

Page 24: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

24 บทท่ี 1

การกูของตัวเองนั้นระบบจัดการฐานขอมูลอาศัยเทคนิคท่ีสําคัญท่ีเรียกวาการลงบันทึกกิจกรรมของระบบ (log) ไว เพ่ือใหทราบวาระบบจัดการฐานขอมูลกําลังทํากิจกรรมใดๆ กับฐานขอมูลและอยูในขั้นตอนใดของธุรกรรม ในกรณีท่ีระบบขัดของ ระบบจัดการฐานขอมูลจะทําการอาน log เพ่ือตัดสินใจดําเนินการกับขอมูลตอไป ท้ังนี้การจัดการการกูของขอมูลยังเกี่ยวของกับการจัดการความม่ันคงปลอดภัยของขอมูล ซึ่งไดอธิบายเพ่ิมเติมในบทท่ี 9 1.9 โครงสรางของระบบจัดการฐานขอมูล (Ramakrishnan and Gehrke, 2003)

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

เราแบงผูใชออกเปน 2 กลุมใหญๆ คือกลุมผูใชท่ัวไปท่ีไมจําเปนตองมีความรูดานระบบจัดการฐานขอมูล (เชน ลูกคาท่ัวไป ตัวแทนจําหนายต๋ัวเครื่องบิน นักศึกษาผูใชงานระบบลงทะเบียน ฯลฯ) และกลุมผูใชท่ีมีความรูและทักษะเชิงเทคนิคในการจัดการฐานขอมูล (เชน โปรแกรมเมอร ผูบริหารฐานขอมูล ฯลฯ) ผูใชในกลุมแรกจะใชงานฐานขอมูลผานสวนติดตอกับผูใชท่ีเปนโปรแกรมประยุกตและระบบสารสนเทศตางๆ เชนเว็บฟอรม หนาจอของโปรแกรมฯลฯ สวนติดตอกับผูใชนั้นจะใชงานไดงายและอํานวยความสะดวกในการใชขอมูลของผูใชเชนระบบลงทะเบียนจะมีสวนติดตอกับผูใชแบบกราฟกเพ่ืออํานวยความสะดวกใหนักศึกษาคนหารายวิชาและลงทะเบียนเรียนในรายวิชาใดๆ โปรแกรมประยุกตจะนําขอมูลท่ีไดรับจากผูใชผานทางสวนติดตอกับผูใชไปสรางคําสั่ง SQL สําหรับสงเขาไปประมวลผลในระบบจัดการฐานขอมูลตอไป สําหรับผูใชงานระบบจัดการฐานขอมูลท่ีมีความเชี่ยวชาญเฉพาะดานฐานขอมูลอันไดแกโปรแกรมเมอร หรือผูบริหารฐานขอมูลสามารถเรียกใชงานขอมูลโดยสรางคําสั่ง SQL ดวนตนเอง จะกรอกคําสั่ง SQL ผานหนาจอรับคําสั่ง SQL ซึ่งหนาจอรับคําสั่งอาจมีความสามารถในการวิเคราะหประสิทธิภาพของรูปแบบของ SQL ตางๆ พรอมท้ังเสนอแนะใหผูบริหารฐานขอมูลเลือกใชขอคําสั่งท่ีเหมาะสม หรือแมแตการเปรียบเทียบประสิทธิภาพหากสรางไฟล index เพ่ิมเติม โปรแกรมเมอรจะใชหนาจอรับคําสั่ง SQL เพ่ือทดสอบ SQL ท่ีจะตองสรางขึ้นเพ่ือในไปฝงในโปรแกรมประยุกตใหผูใชท่ัวไปไดใชงาน

คําสั่ง SQL ท่ีไดจากสวนติดตอกับผูใชแบบตางๆ จะถูกสงเขาไปประมวลผลยังระบบจัดการฐานขอมูลโดยสวนประมวลผลขอคําถาม (query processor) เปนสวนประมวลขอคําถามโดยการแปลง SQL ใหเปนอยูในรูปแบบของแผนการกระทําการ (execution plan) ขอมูลโดยใชองคประกอบยอยท่ีเรียกวาตัวแจงสวน (parser) ซึ่งจะแจกแจงขอคําถามออกเพ่ือวิเคราะหและสรางแผนการกระทําการกับขอมูล แผนการกระทําการขอมูลมักจะอยูในรูปของตนไมตัวดําเนินการเชิงสัมพันธซึ่งจะไดกลาวถึงตัวดําเนินการเชิงสัมพันธในเรื่องของแคลคูลัสเชิงสัมพันธและพีชคณิตเชิงสัมพันธในบทท่ี 6 จากนั้นแผนของการเขาถึงขอมูลจะถูกสรางขึ้นหลายๆ รูปแบบและถูกเปรียบเทียบเพ่ือเลือกรูปแบบท่ีเหมาะสมกับขอมูลท่ีจัดเก็บอยูในหนวยความจําสํารอง

Page 25: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

แนวคิดท่ัวไปเกี่ยวกับฐานขอมูล 25

ดวยตัวทําใหเหมาะสมท่ีสุด (optimizer) และตัวประเมินขอคําถาม (query evaluator) แผนการกระทําการจะถูกดําเนินการตอไปดวยตัวกระทําการแผน (plan executor)

หลังจากท่ีเราไดแผนการกระทําการแสดงขอมูลท่ีอยูรูปแบบของตัวดําเนินการทางแบบจําลองขอมูล ตอไปจะเปนการเขาถึงขอมูลในอุปกรณจัดเก็บ ซึ่งจะอยูในรูปของไฟลท่ีมีโครงสรางเฉพาะของแตละระบบจัดการฐานขอมูล ท้ังนี้โดยท่ัวไปจะจัดเก็บในรูปของไฟลขอมูลท่ีเปนกลุมของระเบียนหลายๆ ไฟล ซึ่งระเบียนมักไมไดเรียงลําดับของมูลอยูเพราะระเบียนมีจํานวนมาก การเพ่ิมและลบระเบียนเกิดขึ้นอยูเสมอ ระเบียนตางๆ จึงไมไดเรียงลําดับ แตเรายังมีไฟลเสริมในการเขาถึงขอมูลไดรวดเร็วเชนไฟล index ท่ีเรียงลําดับเฉพาะฟลดขอมูลใดๆ เพ่ือระบุท่ีอยูของระเบียบไดอยางรวดเร็ว การจัดการระเบียนของระบบจัดการฐานขอมูลมักจะจัดการทีละกลุม ซึ่งใชแนวคิดของ block/page/space การเขาถึงขอมูลอยางรวดเร็วโดยกลวิธีทางไฟลตางๆ เปนหนาท่ีของ file and access methods

ขอมูลจะตองถูกอานจากหนวยความจําสํารองเขาสูหนวยความจําหลักเพ่ือประมวลผลและสรางผลลัพธ ตัวจัดการท่ีพักขอมูล/ตัวจัดการบัฟเฟอร (buffer manager) เปนผูจัดการเกี่ยวกับการนําขอมูลจากหนวยความจําสํารองเขาสูหนวยความจําหลักและ disk space manager เปนสวนท่ีใชในการควบคุมการจัดเก็บและอานขอมูลในระดับลางสุดหรือระดับฮารดแวรอันไดแกการจองเนื้อท่ีในอุปกรณจัดเก็บ การเขียนขอมูลลงอุปกรณจัดเก็บตามท่ีไดจองพ้ืนท่ีและจัดสรรตําแหนงไว การอานขอมูลจากอุปกรณจัดเก็บในระดับฮารดแวรและการคืนพ้ืนท่ีของอุปกรณจัดเก็บใหวางลง

เม่ือขอมูลในหนวยความจําหลักถูกประมวลผลตาม plan executor แลวผลลัพธท่ีไดจะถูกสงกลับไปยังสวนติดตอกับผูใชเพ่ือนําไปใชงานในท่ีสุด นอกเหนือจากกระบวนการโดยท่ัวไปของการใชงานระบบจัดการฐานขอมูลท่ีไดอธิบายมา ระบบจัดการฐานขอมูลยังมีสวนของตัวจัดการธุรกรรม (transaction manager) ท่ีอนุญาตใหผูใชงานใชฐานขอมูลพรอมกับไดหลายๆ คน การปองกันความผิดพลาดท่ีจะเกิดจากการดําเนินธุรกรรมพรอมๆ กันดวยตัวจัดการปดกั้น (lock manager) และตัวจัดการกูขอมูลในกรณีท่ีระบบเกิดการลมเหลวโดย recovery manager

ภาพท่ี 1-7 (Ramakrishnan and Gehrke, 2003) สถาปตยกรรมภายในระบบจัดการฐานขอมูล

Query

Evaluation Engine

Web Forms Application Client SQL Interface

Plan Executor Parser Operator Evaluator Optimizer

File and Access Methods

Buffer manager

Disk Space Manager

Recover Manager

Transaction Manager

Recover Manager

Data Files, Index Files

SQL Command

Database

DBMS

Page 26: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

26 บทท่ี 1

1.10 บุคคลท่ีเก่ียวของกับฐานขอมูล บุคคลซึ่งเกี่ยวของกับการพัฒนาและใชงานฐานขอมูลไดแกผูใช (end user) ผูสรางระบบจัดการ

ฐานขอมูล (database implementer/vendor) ผูบริหารฐานขอมูล (database administrator—DBA) นักวิเคราะหและออกแบบระบบ (system analyst) โปรแกรมเมอร (programmer)

1) ผูสรางระบบจัดการฐานขอมูล ผูสรางระบบจัดการฐานขอมูลไดแกบริษัทผูสรางระบบจัดการฐานขอมูล เชน ไอบีเอ็ม ไมโครซอฟต ออราเคิล ซึ่งเปนผูสรางระบบจัดการฐานขอมูล IBM DB/2, Microsoft SQL Server/Microsoft Access และ Oracle ตามลําดับ ผูสรางระบบจัดการฐานขอมูลนั้นมีความสําคัญในการประยุกตทฤษฎีและเทคโนโลยีตางๆ ท่ีเกี่ยวของและมีวิวัฒนาการอยูตลอดเวลา ในการจัดการฐานขอมูลเพ่ือสรางระบบจัดการฐานขอมูลท่ีเหมาะสมกับลักษณะการใชงานปจจุบัน อันเปนหัวใจสําคัญของการจัดการขอมูลอยางมีประสิทธิภาพ

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

3) นักวิเคราะหระบบ เปนผูทําหนาท่ีสํารวจ รวบรวม และวิเคราะหความตองการการใชงานของผูใช เพ่ือนํามาออกแบบมิใชเพียงฐานขอมูลเทานั้น แตเปนการออกแบบองคประกอบของระบบสารสนเทศหรือโปรแกรมประยุกตท่ีจะอํานวยความสะดวกในการทํางานและเรียกใชงานฐานขอมูล ในสวนของการออกแบบฐานขอมูล นักวิเคราะหระบบจะทําการวิเคราะหความตองการและออกแบบฐานขอมูลในรูปแบบจําลองขอมูลเชิงความหมาย ไดแกแผนภาพ ER สคีมาของฐานขอมูลระดับภายนอก โดยท่ัวไปนักวิเคราะหระบบยังเปนผูออกแบบสคีมาระดับแนวคิดและระดับกายภาพอีกดวย นอกจากนี้แลวนักวิเคราะหระบบยังออกแบบขั้นตอนการทํางานท้ังหมดของโปรแกรมอีกดวย

4) โปรแกรมเมอร โปรแกรมเมอรคือผูท่ีนําระบบท่ีไดจากการวิเคราะหและออกแบบมาเขียนโปรแกรมเพ่ือพัฒนาเปนระบบสานสนเทศหรือโปรแกรมประยุกตโดยเครื่องมือท่ีใชในการพัฒนาโปรแกรมตางๆ ใหออกมาเปนระบบท่ีสามารถใชงานได

Page 27: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

แนวคิดท่ัวไปเกี่ยวกับฐานขอมูล 27

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

• ออกแบบสคีมาระดับแนวคิดและระดับกายภาพ หนาท่ีของ DBA ในขอนี้คลายคลึงกับนักวิเคราะหระบบ แตมุงเนนท่ีการวิเคราะหและออกแบบฐานขอมูล และเนนท่ีการออกแบบสคีมาในระดับแนวคิดลงมา

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

• ดูแลใหการใชงานฐานขอมูลเปนไปโดยปกติและแกไขในกรณีท่ีระบบลมเหลว ทําการตรวจสอบความเปนปกติของการใชงานฐานขอมูลอยางสมํ่าเสมอ สํารองขอมูล และสามารถทําใหระบบคืนสูสภาพปกติไดโดยขอมูลมีความถูกตองในกรณีระบบเกิดการติดขัด หยุดชะงัก ลมเหลว

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

Page 28: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

28 บทท่ี 1

1.11 บทสรุป สารสนเทศคือขอมูลท่ีผานการประมวลผลเพ่ือใชประโยชนในการบริหารจัดการองคการ ท้ังขอมูล

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

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

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

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

Page 29: บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

แนวคิดท่ัวไปเกี่ยวกับฐานขอมูล 29

1.12 แบบฝกหัดทายบท 1. สารสนเทศตางจากขอมูลอยางไร ใหอธิบายและยกตัวอยาง 2. เหตุใดเราจึงจัดเก็บขอมูลดวยระบบจัดการฐานขอมูล แทนท่ีจะจัดเก็บดวยระบบไฟลขอมูลของ

ระบบปฏิบัติการ และมีกรณีใดหรือไมท่ีเราไมควรจัดเก็บขอมูลดวยระบบฐานขอมูล 3. จงระบุและอธิบายระดับของสถาปตยกรรมฐานขอมูล 3 ระดับมาโดยละเอยีด 4. ความเปนอิสระของขอมูลระดับตรรกะ และความเปนอิสระของขอมูลระดับกายภาพคืออะไร จง

อธิบาย 5. เหตุใดจึงมีความจําเปนตองอนุญาตใหผูใชฐานขอมูลใชงานพรอมๆ กันไดหลายๆ คน และจะ

กอใหเกิดปญหาอยางไร 6. ใหอธิบายสถาปตยกรรมของระบบจัดการฐานขอมูลพรอมท้ังอธิบายขั้นตอนการทํางานในภาพรวม 7. DBA มีหนาท่ีอยางไร เอกสารอางอิงประจําบท ชนวัฒน ศรีสอาน. (2542). เอกสารประกอบการบรรยายรายวิชา 204204 การออกแบบและพัฒนาฐานขอมูล.

นครราชสีมา : มหาวิทยาลัยเทคโนโลยีสุรนารี. รวิวรรณ เทนอิสสระ. (2543). ฐานขอมูลและการออกแบบ. กรุงเทพฯ : ซีเอ็ดยูเคชั่น. วราภรณ โกวิทวรางกูร. (2543). ระบบฐานขอมูลและการออกแบบ. กรุงเทพฯ : ศูนยหนังสือจุฬาลงกรณ

มหาวิทยาลัย. ศุภกฤษฏิ์ นิวัฒนากูล. (2547). เอกสารประกอบการบรรยายรายวิชา 204204 การออกแบบและพัฒนา

ฐานขอมูล. นครราชสีมา : มหาวิทยาลัยเทคโนโลยีสุรนารี. Connolly, T. and Begg, C. (2004). Database Systems: A Practical Approach to Design, Implementation

and Management, 4th ed. Boston : Addison-Wesley. Laudon, K. C. and Traver, C. G. (2007). E-Business. Singapore : Prentice Hall. Elmarsi, R. and Navathe, S. B. (2006). Fundamentals of Database Systems, 5th ed. Boston : Addison-

Wesley. Ramakrishnan, R. and Gehrke, J. (2003). Database Management Systems, 3rd ed. Singapore : McGraw-

Hill.