SlideShare a Scribd company logo
1 of 29
Download to read offline
บทที่ 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)
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานขอมูล
1.1 บทนํา
ขอมูล (data) และสารสนเทศ (information) ในปจจุบันนี้มีอยูมากมายมหาศาล และเพิ่มจํานวนขึ้น
อยางรวดเร็วซึ่งเราไมสามารถปฏิเสธไดเลยวาขอมูลและสารสนเทศนั้นมีประโยชนมากมายสําหรับผูนําไปใช
ในแงขององคการตางๆ ก็ตระหนักถึงความสําคัญของขอมูลเปนอยางดี ซึ่งเราไดใหความสําคัญกับขอมูล
เปรียบเสมือนสินทรัพยอยางหนึ่งขององคการไปแลว การที่จะใชประโยชนจากขอมูลที่มีจํานวนมหาศาลและ
ซับซอนนี้ จําเปนที่จะตองอาศัยเครื่องมือเพื่อชวยอํานวยความสะดวกในการจัดการขอมูลตลอดจนการนํา
ขอมูลไปใชงานอยางมีประสิทธิภาพ มิฉะนั้นแลวคาใชจายในการจัดหาและการจัดการขอมูลจะมีมูลคาสูงเกิน
กวาประโยชนที่เราจะไดรับจากตัวขอมูล
ฐานขอมูล คือกลุมของขอมูล ซึ่งโดยทั่วไปเปนขอมูลที่เกี่ยวของกับคุณสมบัติ และกิจกรรมตางๆ ของ
ผูกระทํากิจกรรมนั้นๆ และมีความสัมพันธกัน
ตัวอยางของฐานขอมูล เชน ฐานขอมูลของมหาวิทยาลัยอาจจะประกอบไปดวยขอมูลดังนี้
• เอนทิตี (entity) เชน นักศึกษา อาจารย รายวิชา หองเรียน
• ความสัมพันธ (relationship) ระหวางเอนทิตี เชน นักศึกษาลงทะเบียนเรียนในรายวิชา
อาจารยสอนในรายวิชา และการใชงานหองตางๆ สําหรับแตละรายวิชา
ระบบจัดการฐานขอมูล (database management system – DBMS) คือซอฟตแวรที่ชวยในการจัดการและใช
งานกลุมของขอมูล
โดยเฉพาะการจัดการกับกลุมของขอมูลขนาดใหญหรือฐานขอมูลนั่นเอง ปจจุบันเราไดใชระบบ
จัดการฐานขอมูลกันเปนที่แพรหลายซึ่งเกือบเปนสิ่งหนึ่งที่ขาดไมไดในการบริหารจัดการองคการ
วัตถุประสงคของการศึกษารายวิชาการออกแบบและพัฒนาฐานขอมูลเนนที่การออกแบบพัฒนาและ
สามารถนําระบบฐานขอมูลที่พัฒนาไปใชอยางมีประสิทธิภาพ ทั้งนี้การที่จะบรรลุวัตถุประสงคดังกลาว เรามี
ความจําเปนที่จะตองเลือกใชระบบจัดการฐานขอมูลที่ถูกตองเหมาะสมกับการประยุกตใช ซึ่งการเลือกใช
ระบบจัดการฐานขอมูล ตลอดจนการออกแบบ และพัฒนาฐานขอมูลสําหรับระบบจัดการฐานขอมูลใดๆ เรามี
ความจําเปนอยางยิ่งที่จะตองเขาใจถึงการทํางานของระบบจัดการฐานขอมูล
ระบบจัดการฐานขอมูลที่ใชกันในปจจุบันมีหลายประเภท แตสําหรับรายวิชานี้จะเนนที่ระบบจัดการ
ฐานขอมูลเชิงสัมพันธ (relational database management systems – RDBMSs) ซึ่งเปนประเภทของระบบ
จัดการฐานขอมูลที่แพรหลายที่สุดในปจจุบัน สําหรับเรื่องที่จะศึกษาสามารถแบงออกเปนกลุมใหญๆ ได
ดังตอไปนี้
1) แนวคิดพื้นฐานเกี่ยวกับฐานขอมูล ไดแกเนื้อหาในบทนี้
2) การออกแบบฐานขอมูล หัวขอดังกลาวศึกษาเกี่ยวกับ แนวคิด ขั้นตอน และเครื่องมือที่ใชในการ
ออกแบบเพื่อใหไดมาซึ่งฐานขอมูลที่ถูกตองเหมาะสม ตลอดจนการศึกษาเกี่ยวกับการที่ผูใช
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 เปนหลัก แนวคิดอื่นๆ เรียบเรียงมาจากและอานเพิ่มเติมไดตาม
เอกสารอางอิง
แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 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)
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ตัวอยางแผนภูมิแทงแสดงยอดจําหนายสินคาแยกตามประเภท
แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 7
เราจะเห็นภาพชัดเจนถึงประเภทสินคาที่มียอดจําหนายสูงจากสารสนเทศที่ไดจากการประมวลผล ทํา
ใหการวางแผนการบริหารรานคาสามารถทําไดอยางมีกลวิธีและมีประสิทธิภาพเพิ่มขึ้น ในกรณีนี้รานคาควรที่
จะซื้อบะหมี่กึ่งสําเร็จรูปในปริมาณที่มากกวาสินคาอื่นๆ เพื่อใหเพียงพอตอการจําหนาย การจัดเก็บขอมูล
การนําขอมูลมาใชประโยชน ตลอดจนการประมวลผลขอมูลและนําสารสนเทศที่ไดมาใชประโยชนนั้นเรา
สามารถใชระบบสารสนเทศ (information system) มาจัดการได ซึ่งระบบสารสนเทศในปจจุบันอาศัยการ
จัดการขอมูลที่มีประสิทธิภาพจากระบบจัดการฐานขอมูล
1.3 วิวัฒนาการของฐานขอมูล (Ramakrishnan and Gehrke, 2004)
การจัดเก็บ แกไข และบริหารจัดการขอมูลเปนหัวขอการศึกษาและวิจัยที่สําคัญ ตลอดจนไดรับการ
พัฒนามาอยางตอเนื่อง ระบบจัดการฐานขอมูลสําหรับใชงานทั่วๆ ไประบบแรกไดรับการออกแบบโดยนาย
ชาลส แบคแมน (Charles Bachman) แหงบริษัทเจเนอรัลอิเล็กทริก ในตนทศวรรษ ค.ศ. 1960 ระบบดังกลาว
ถูกเรียกวา Integrated Data Store ซึ่งเปนรากฐานของการจัดเก็บขอมูลโดยใชแบบจําลองขอมูลแบบเครือขาย
(network data model) ทั้งนี้ระบบดังกลาวไดรับการยอมรับและกําหนดมาตรฐานขึ้นโดย The Conference on
DataSystemsLanguages(CODASYL)รูปแบบของการจัดเก็บขอมูลดังกลาวไดรับการยอมรับและมีอิทธิอยาง
มากตอรูปแบบของสถาปตยกรรมระบบจัดการฐานขอมูลในชวงทศวรรษ 1960 แบคแมนเปนบุคคลแรกที่
ไดรับ ACM’s Turing Award ดานการศึกษาฐานขอมูลในป 1973 ซึ่ง Turing Award นี้เปนรางวัลที่เปรียบได
กับรางวัลโนเบลในทางวิทยาการคอมพิวเตอร
ในชวงปลายทศวรรษที่ 1960 บริษัทไอบีเอ็มไดพัฒนาระบบจัดการฐานขอมูลในชื่อ Information
Management System (IMS) ซึ่งยังคงไดรับการใชงานอยูในปจจุบันสําหรับฐานขอมูลขนาดใหญ โดย IMS นี้
นําเสนอรูปแบบของการจัดการขอมูลดวยแบบจําลองขอมูลเชิงลําดับชั้น (hierarchical data model) ในชวง
เวลาเดียวกันระบบ SABRE ซึ่งเปนระบบสําหรับการจองตั๋วเครื่องบินที่บริษัทไอบีเอ็มพัฒนารวมกับอเมริกัน
แอรไลนสไดถูกพัฒนาขึ้น เพื่อใหสามารถใชงานผานเครือขายคอมพิวเตอรได ระบบดังกลาวมีความนาสนใจ
ตรงที่เปนระบบสําคัญสําหรับการจองตั๋วเครื่องบินในปจจุบัน เชนเว็บไซต Travelocity ยังคงใชงานระบบ
SABRE
ในป1970เอ็ดการ ค็อด(EdgarCodd)แหงหองปฏิบัติการวิจัยซานโฮเซของบริษัทไอบีเอ็ม ไดเสนอ
รูปแบบการจัดการขอมูลดวยแบบจําลองขอมูลเชิงสัมพันธ (relational data model) ซึ่งรูปแบบดังกลาวมีความ
เหมาะสมในการใชงานเปนอยางยิ่งและไดรับความนิยมแพรหลายอยางรวดเร็ว นอกจากนี้มีผูสนับสนุนและ
วิจัยเพื่อใหเกิดทฤษฎีมารองรับและประยุกตใชอยางเปนระบบ นอกจากจะไดรับความสนใจในแวดวงวิชาการ
โดยถือเปนศาสตรแขนงหนึ่งแลว ระบบจัดการฐานขอมูลเชิงสัมพันธยังมีผลกระทบตอแวดวงธุรกิจ การนํา
ระบบจัดการฐานขอมูลเชิงสัมพันธไปชวยในการบริหารองคการกอใหเกิดประโยชนอยางสูง ไดรับการ
ยอมรับ และถือเปนเครื่องมือมาตรฐานอยางหนึ่งที่ควรนํามาใชเพื่ออํานวยความสะดวกในการปฏิบัติงานและ
เพิ่มประสิทธิภาพขององคการ Codd ไดรับรางวัล Turing ในป 1981
ในชวงทศวรรษ 1980 แบบจําลองเชิงสัมพันธไดกลายเปนมาตรฐานหลักของระบบจัดการฐานขอมูล
และมีการใชระบบจัดการฐานขอมูลกันอยางแพรหลาย ภาษาที่ใชสําหรับจัดการฐานขอมูลเชิงสัมพันธที่ไดรับ
8 บทที่ 1
การยอมรับเปนมาตรฐานไดแกSQLซึ่งถูกพัฒนาขึ้นโดยบริษัทไอบีเอ็มภายใตโครงการIBM’sSystemRโดย
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 วิวัฒนาการที่สําคัญของฐานขอมูล
แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 9
ระบบจัดการฐานขอมูลทวีความสําคัญและประโยชนมากขึ้นเรื่อยๆ เนื่องจากมีการเรียกใชขอมูลและ
สารสนเทศผานทางเว็บมากขึ้นอยางไมหยุดยั้ง นอกจากขอมูลที่เปนภาพและตัวหนังสือแลว ปจจุบัน
ฐานขอมูลมัลติมีเดียถูกใชงานอยางแพรหลายเพื่อรองรับการดูภาพยนตร ทีวี วีดีทัศน ตลอดจนฟงเพลงและ
ขาวสารผานทางเครือขายคอมพิวเตอร การใชงานฐานขอมูลเพื่อรองรับหองสมุดดิจิทัล การใชงานเพื่อรองรับ
โครงการวิจัยทางวิทยาศาสตรขนาดใหญเชนแผนที่ยีนของมนุษย โครงการ Earth Observation System ของ
องคการนาซา การใชเพื่อรองรับกระบวนการตัดสินใจทางธุรกิจ การนํามาใชประกอบการขุดคนขอมูลที่
นาสนใจเพื่องานวิชาการและธุรกิจ ในแวดงวงธุรกิจตลาดของระบบจัดการฐานขอมูลยังมีขนาดที่ใหญเปน
อันดับตนๆ ทั้งหมดที่กลาวมานี้เปนเพียงตัวอยางบางสวนของบทบาทที่สําคัญของระบบจัดการฐานขอมูล
การศึกษาเกี่ยวกับฐานขอมูลจึงเปนสิ่งที่นาสนใจและมีประโยชนอยางกวางขวาง
1.4 ระบบไฟลและระบบจัดการฐานขอมูล
เพื่อใหเขาใจถึงความจําเปนในการใชงานระบบจัดการฐานขอมูล สามารถอธิบาย (Ramakrishnan
and Gehrke, 2003)ใหเห็นไดดังนี้ บริษัทแหงหนึ่งมีขอมูลอยูเปนจํานวนมากประมาณ500GB ซึ่งเปนขอมูล
ของพนักงาน แผนก สินคา การขาย ฯลฯ ขอมูลถูกใชงานโดยพนักงานหลายคนพรอมกัน การเรียกใชขอมูล
จะตองไดรับการตอบสนองอยางรวดเร็ว การเปลี่ยนแปลงขอมูลใดๆ โดยผูใชงานคนละคนจะตองยังคงความ
ถูกตองของขอมูล และจะตองมีการปองกันการเขาถึงขอมูลบางขอมูล เชน ขอมูลเงินเดือนของพนักงาน เปน
ตน
เราสามารถลองที่จะจัดการขอมูลดังกลาวโดยจัดเก็บขอมูลรูปแบบไฟลปกติที่ปฏิบัติกันมานานแลว
ซึ่งวิธีดังกลาวมีขอเสียที่เกิดขึ้นดังนี้
• เราไมสามารถจัดเก็บขอมูลไวในหนวยความจําหลักไดทั้ง500GB ขอมูลจะตองถูกจัดเก็บอยูบน
หนวยความจําสํารองไดแกฮารดดิสก หรือเทปแมเหล็ก เมื่อจําเปนจะตองใชงานขอมูลใดๆ
ขอมูลสวนที่เกี่ยวของจะถูกอานขึ้นสูหนวยความจําหลัก ซึ่งจะตองมีการเขียนโปรแกรมเพื่อ
รองรับกระบวนการนี้เปนพิเศษ
• การตอบคําถามจากขอมูล การจัดเก็บ การแกไขใดๆ จําเปนตองเขียนโปรแกรมเฉพาะกับขอมูล
ชุดนั้นๆ ซึ่งโปรแกรมจะมีความซับซอนเนื่องจากขนาดที่ใหญโตของขอมูล
• จะตองมีการปองกันความผิดพลาดในกรณีที่มีการแกไขขอมูลเดียวกันพรอมๆ กัน การจัดการ
เหตุการณดังกลาวในกรณีที่ใชระบบไฟลขอมูล ยิ่งทวีความซับซอนในการเขียนโปรแกรม
• ระบบตองรับประกันวาขอมูลจะคืนสูสภาพที่ควรจะถูกตองจากการแกไขครั้งสุดทายกอนเกิด
การลมเหลวของระบบ
• ปกติแลวระบบไฟลจะมีการปองกันการเขาถึงไฟลโดยการใชรหัสผานสําหรับผูใชกอนเขาใช
ระบบหรือใชรหัสผานเพียงรหัสเดียวสําหรับไฟลทั้งหมด ซึ่งวิธีการปองกันไฟลดังกลาวไม
เพียงพอตอการใชงานในรูปแบบของการอนุญาตใหผูใชแตละคนสามารถเขาถึงขอมูลชุดใดชุด
หนึ่งเทานั้นในชุดขอมูลที่มีอยูทั้งหมด
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 | …
แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 11
ทํางานไดชากวาหนวยความจําหลักอยางมาก นอกจากนี้ยังรวมถึงวิธีจัดการกับขอมูลเพื่อแสดง
ผลลัพธไดอยางรวดเร็วตามขอคําถาม (queries) ตางๆ
• บูรณภาพและความมั่นคงปลอดภัยของขอมูล (data integrity and security) ตราบเทาที่ผูใช
จะตองใชงานขอมูลผานระบบจัดการฐานขอมูล เราสามารถที่จะกําหนดขอกําหนดและควบคุม
ใหขอมูลมีบูรณภาพ ซึ่งหมายถึงการที่ขอมูลมีความถูกตองตรงตามสภาพที่ควรจะเปนในชีวิต
จริง เชน การทําการขึ้นเงินเดือนใหพนักงาน ระบบจะสามารถตรวจสอบไดวาเงินเดือนของ
พนักงานไมเกินไปจากงบประมาณของหนวยงานหรือการแกไขสถานะภาพสมรสของพนักงาน
คนใดๆ จะแกไขใหเปนหมายไมไดหากยังไมเคยแตงงาน เปนตน นอกจากนี้การเขาถึง
ฐานขอมูลโดยผานทางระบบจัดการฐานขอมูลเทานั้นยังอนุญาตใหมีการกําหนดระดับการเขาถึง
ขอมูลวาผูใชคนใดหรือกลุมใดสามารถมองเห็นขอมูลชุดใดหรือทํากิจกรรมใดๆกับฐานมูลนั้น
ไดบาง
• การบริหารขอมูล (data administrator) เมื่อผูใชหลายคน ใชงานขอมูลชุดเดียวกัน การจัดการ
ขอมูลโดยรวมศูนยจะทําใหการบริหารขอมูลมีประสิทธิภาพมากขึ้น ผูที่มีความชํานาญในการ
จัดการฐานขอมูลจะทราบวาจะปรับแตงฐานขอมูลอยางไรใหตรงตามความตองการขอมูลใช ใน
แงของการควบคุมการเขาถึงขอมูลชุดตางๆ ของผูใชอยางเหมาะสม การลดความซ้ําซอนของ
ขอมูลที่ใชงานรวมกัน ตลอดจนการปรับแตงฐานขอมูลเพื่อใหสามารถเรียกใชงานขอมูลได
รวดเร็วขึ้น
• การจัดการภาวะพรอมกันและการกูจากความลมเหลวของระบบ (concurrent access and crash
recovery) ระบบจัดการฐานขอมูลมีความสามารถในการจัดลําดับการทํางานของธุรกรรมที่เขา
มาพรอมๆ กันใหเสมือนหนึ่งวาฐานขอมูลมีการใชงานจากผูใชเพียงคนเดียวและการปรับปรุง
ขอมูลใดๆ มีความถูกตองอยูเสมอ ตลอดจนปองกันขอมูลสูญหายและผิดพลาดในกรณีที่ระบบ
ลมเหลว
• ลดเวลาในการพัฒนาระบบที่ใชงานฐานขอมูล(reducedapplicationdevelopmenttime) ระบบ
จัดการฐานขอมูลที่มีใหเลือกใชมีความสามารถในการรองรับการทํางานที่ใชกันโดยทั่วไป
ดังนั้นจึงมีเครื่องมือและรูปแบบการเรียกใชงานซึ่งมองไดวาเปนการเรียกใชงานฐานขอมูลใน
ระดับสูง เชนมีมาตรฐาน SQL ในการจัดการขอมูล ทําใหไมตองเขียนโปรแกรมเฉพาะที่ยุงยาก
ซับซอนสําหรับขอมูลแตละชุดเอง นอกจากนี้การจัดการขอมูลลงในอุปกรณจัดเก็บยังทํางาน
อยางถูกตองและมีประสิทธิภาพอยูแลวโดยระบบจัดการฐานขอมูล นักพัฒนาสามารถลดเวลาใน
การพัฒนาและแกไขขอผิดพลาดจากการพัฒนาลงไดอยางมาก
อยางไรก็ตาม แมวาระบบจัดการฐานขอมูลจะมีประโยชนมากมาย แตเราไมจําเปนตองใชระบบ
จัดการฐานขอมูลเสมอไป ในกรณีที่เราไมจําเปนตองใชความสามารถที่กลาวมาของระบบจัดการฐานขอมูล
เลย เชน ไมจําเปนตองใชการจัดการกรณีที่มีผูใชงานฐานขอมูลพรอมๆ กันหลายคน หรือมีผูใชหลายระดับ
เขาถึงขอมูล เปนตน นอกจากนี้การวิเคราะหขอมูลบางอยางที่ซับซอน อาจไมสามารถจัดเก็บไดในฐานขอมูล
และในบางกรณีเราอาจมีความตองการพิเศษในการใชงานขอมูล เชนจะตองมีความเร็วสูงกวาที่ระบบจัดการ
12 บทที่ 1
ฐานขอมูลจะสามารถทําได เราก็ไมจําเปนตองใชงานระบบจัดการฐานขอมูล กลาวโดยสรุปไดวาเราอาจจะไม
จําเปนตองใชงานระบบจัดการฐานขอมูลในกรณีที่เราไมตองการความสามารถที่สูงเกินความจําเปน ซึ่งอาจทํา
ใหการใชงานระบบจัดการฐานขอมูลไมคุมคากับคาใชจาย รวมถึงในกรณีที่เราไมสามารถใชงานระบบจัดการ
ฐานขอมูลไดในกรณีที่ขอมูลไมอยูในรูปแบบที่ระบบจัดการฐานขอมูลจัดการได รวมถึงความตองการพิเศษที่
เราจะตองพัฒนาระบบสําหรับจัดการกับขอมูลเอง แตในทางตรงกันขาม การจัดการขอมูลที่ซับซอนและมี
ขนาดใหญมักจะหลีกเลี่ยงไมไดที่จะตองใชงานระบบจัดการฐานขอมูล
1.6 การจัดเก็บขอมูลในระบบจัดการฐานขอมูลและสถาปตยกรรมฐานขอมูล
ผูใชขอมูลโดยทั่วไปจะมองขอมูลในมุมมองของการใชงานในชีวิตจริง ในขณะที่การจัดเก็บขอมูลลง
ในฐานขอมูลเปนวิธีในการที่จะทําอยางไรเพื่อจัดเก็บขอมูลในมุมมองนั้นๆ ลงในฐานขอมูลใหได เชน ใน
มหาวิทยาลัยจะประกอบไปดวยขอมูลที่เกี่ยวกับนักศึกษา อาจารย และรายวิชา ตลอดจนกิจกรรมตางๆ ที่
เกิดขึ้นในมหาวิทยาลัยที่จะตองจดบันทึกขอมูลไว ในขณะที่การจัดเก็บขอมูลลงในฐานขอมูลจะอยูในรูปของ
การมองผูกระทํากิจกรรมตางๆ เปนเอนทิตี การเก็บขอมูลที่อธิบายเอนทิตีตางๆ และจัดเก็บขอมูลดาน
ความสัมพันธตางๆ ของเอนทิตีไว
การที่จะจําลองมุมมองขอมูลในโลกแหงความเปนจริงมาเปนรูปแบบของการจัดเก็บขอมูลในเครื่อง
คอมพิวเตอรจําเปนตองแทนขอมูลและเชื่อมโยงกันโดยอาศัยแบบจําลองขอมูล (data model) ซึ่งแบบจําลอง
ขอมูลนี้ จะใชเปนเครื่องมือที่แทนรูปแบบของการจัดเก็บขอมูลในระดับสูง และจะซอนรายละเอียดอื่นๆ ที่
เกี่ยวของกับการจัดเก็บขอมูลในระดับลางที่เกี่ยวของกับการเก็บขอมูลลงในอุปกรณจัดเก็บจริงๆ ซึ่งใน
ปจจุบัน แบบจําลองขอมูลที่ใชกันแพรหลายที่สุดไดแกแบบจําลองขอมูลเชิงสัมพันธ(relational database) ซึ่ง
เปนแบบจําลองหลักที่ใชศึกษาในรายวิชา
อยางไรก็ตาม แมแบบจําลองขอมูลจะซอนรายละเอียดการจัดการกับอุปกรณจัดเก็บขอมูล แต
แบบจําลองขอมูลมีความใกลเคียงกับวิธีการจัดเก็บขอมูลของระบบจัดการฐานขอมูลมากกวาการมองขอมูลใน
โลกแหงความเปนจริง เราจึงตองอาศัยเครื่องมืออื่นไดแกแบบจําลองขอมูลเชิงความหมาย (semantic data
mode) ซึ่งเปนธรรมชาติใกลเคียงกับขอมูลในมุมมองของการใชงานในโลกแหงความเปนจริงมากขึ้น โดย
แบบจําลองขอมูลเชิงความหมายนี้จะใชเปนเครื่องมือเริ่มตนในการแทนกิจกรรมและผูเกี่ยวของตางๆใหอยูใน
รูปแบบแผนภาพ หรือรูปแบบอื่นๆ ที่จะสามารถจดบันทึกและแลกเปลี่ยนทําความเขาใจกันได แบบจําลอง
ขอมูลเชิงความหมายนี้สามารถแทนขอกําหนดตางๆของกิจกรรมในองคการได แตระบบจัดการฐานขอมูลไม
สามารถรองรับขอกําหนดนั้นๆ โดยตรง เพราะระบบจัดการฐานขอมูลเชิงสัมพันธใชแบบจําลองขอมูลเชิง
สัมพันธซึ่งตางจากแบบจําลองในระดับสูงอยางแบบจําลองขอมูลเชิงความหมาย อยางไรก็ตาม แบบจําลอง
ขอมูลทั้งสองมีความสัมพันธกัน และเราสามารถออกแบบใหสอดคลองกันไดเพื่อใหระบบจัดการฐานขอมูล
เชิงสัมพันธสามารถรองรับการใชงานขอมูลในกิจการขององคการไดอยางถูกตอง
รูปแบบของแบบจําลองขอมูลเชิงความหมายที่ไดรับการใชงานอยางกวางขวางมีชื่อวาแบบจําลอง
เอนทิตีและความสัมพันธ (entity-relationship model—ER model) แบบจําลองดังกลาวทําใหเราสามารถแทน
เอนทิตีและความสัมพันธของเอนทิตีตางๆ เปนแผนภาพ แบบจําลองเอนทิตีและความสัมพันธเปนเครื่องมือที่
แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 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 ดังนั้นเราสามารถมองไดวาสคีมาก็คือ
แมแบบขอมูลนั่นเอง
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
แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 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
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
แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 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
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 คนจะยังมีคาคงเดิมทําใหขอมูลนั้น
ขัดแยงกัน เปนตัวอยางหนึ่งของสคีมาระดับภายนอก ซึ่งคําวาภายนอกนั้นเปนมุมมองจากการมองโดยใช
ระบบจัดการฐานขอมูลเปนตัวตั้ง
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล

More Related Content

What's hot

ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลkruthanyaporn
 
ลักษณะของข้อมูลที่ดีและการจัดเก็บข้อมูล
ลักษณะของข้อมูลที่ดีและการจัดเก็บข้อมูลลักษณะของข้อมูลที่ดีและการจัดเก็บข้อมูล
ลักษณะของข้อมูลที่ดีและการจัดเก็บข้อมูลปิยะดนัย วิเคียน
 
ระบบฐานข้อมูล
ระบบฐานข้อมูลระบบฐานข้อมูล
ระบบฐานข้อมูลchanoot29
 
งานนำเสนอ การจัดการฐานข้อมุล
งานนำเสนอ การจัดการฐานข้อมุลงานนำเสนอ การจัดการฐานข้อมุล
งานนำเสนอ การจัดการฐานข้อมุลchanoot29
 
การจัดการฐานข้อมูลเชิงสัมพันธ์2
การจัดการฐานข้อมูลเชิงสัมพันธ์2การจัดการฐานข้อมูลเชิงสัมพันธ์2
การจัดการฐานข้อมูลเชิงสัมพันธ์2sunisa3112
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูลABELE Snvip
 
Data processing
Data processingData processing
Data processingchukiat008
 
การจัดการข้อมูล
การจัดการข้อมูลการจัดการข้อมูล
การจัดการข้อมูลWanphen Wirojcharoenwong
 
บทที่ 3 การวิเคราะห์ระบบและการออกแบบระบบ
บทที่ 3 การวิเคราะห์ระบบและการออกแบบระบบบทที่ 3 การวิเคราะห์ระบบและการออกแบบระบบ
บทที่ 3 การวิเคราะห์ระบบและการออกแบบระบบSarawut Panchon
 
ฐานข้อมูลเชิงสัมพันธ์ 2
ฐานข้อมูลเชิงสัมพันธ์ 2ฐานข้อมูลเชิงสัมพันธ์ 2
ฐานข้อมูลเชิงสัมพันธ์ 2kanjana Pongkan
 
05 ภาษาที่ใช้ในระบบการจัดการฐานข้อมูล
05 ภาษาที่ใช้ในระบบการจัดการฐานข้อมูล05 ภาษาที่ใช้ในระบบการจัดการฐานข้อมูล
05 ภาษาที่ใช้ในระบบการจัดการฐานข้อมูลNattipong Siangyen
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูลYongyut Nintakan
 

What's hot (20)

ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
 
ลักษณะของข้อมูลที่ดีและการจัดเก็บข้อมูล
ลักษณะของข้อมูลที่ดีและการจัดเก็บข้อมูลลักษณะของข้อมูลที่ดีและการจัดเก็บข้อมูล
ลักษณะของข้อมูลที่ดีและการจัดเก็บข้อมูล
 
Power Point
Power PointPower Point
Power Point
 
ระบบฐานข้อมูล
ระบบฐานข้อมูลระบบฐานข้อมูล
ระบบฐานข้อมูล
 
งานนำเสนอ การจัดการฐานข้อมุล
งานนำเสนอ การจัดการฐานข้อมุลงานนำเสนอ การจัดการฐานข้อมุล
งานนำเสนอ การจัดการฐานข้อมุล
 
การจัดการข้อมูลสารสนเทศ
การจัดการข้อมูลสารสนเทศการจัดการข้อมูลสารสนเทศ
การจัดการข้อมูลสารสนเทศ
 
Database
DatabaseDatabase
Database
 
งานนำเสนอ..
งานนำเสนอ..งานนำเสนอ..
งานนำเสนอ..
 
Chapter1
Chapter1Chapter1
Chapter1
 
การจัดการฐานข้อมูลเชิงสัมพันธ์2
การจัดการฐานข้อมูลเชิงสัมพันธ์2การจัดการฐานข้อมูลเชิงสัมพันธ์2
การจัดการฐานข้อมูลเชิงสัมพันธ์2
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 
Data management pub
Data management pubData management pub
Data management pub
 
Data processing
Data processingData processing
Data processing
 
การจัดการข้อมูล
การจัดการข้อมูลการจัดการข้อมูล
การจัดการข้อมูล
 
บทที่ 3 การวิเคราะห์ระบบและการออกแบบระบบ
บทที่ 3 การวิเคราะห์ระบบและการออกแบบระบบบทที่ 3 การวิเคราะห์ระบบและการออกแบบระบบ
บทที่ 3 การวิเคราะห์ระบบและการออกแบบระบบ
 
ฐานข้อมูลเชิงสัมพันธ์ 2
ฐานข้อมูลเชิงสัมพันธ์ 2ฐานข้อมูลเชิงสัมพันธ์ 2
ฐานข้อมูลเชิงสัมพันธ์ 2
 
05 ภาษาที่ใช้ในระบบการจัดการฐานข้อมูล
05 ภาษาที่ใช้ในระบบการจัดการฐานข้อมูล05 ภาษาที่ใช้ในระบบการจัดการฐานข้อมูล
05 ภาษาที่ใช้ในระบบการจัดการฐานข้อมูล
 
แนวการสอบ ม.4
แนวการสอบ ม.4แนวการสอบ ม.4
แนวการสอบ ม.4
 
ฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์ฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 

Viewers also liked

Building construction 5หลังคา
Building construction 5หลังคาBuilding construction 5หลังคา
Building construction 5หลังคาRungnapa Rungnapa
 
บทที่ 3 แนวความคิดพื้นฐาน
บทที่ 3 แนวความคิดพื้นฐานบทที่ 3 แนวความคิดพื้นฐาน
บทที่ 3 แนวความคิดพื้นฐานRungnapa Rungnapa
 
บทที่1ความรู้เบื้องต้น
บทที่1ความรู้เบื้องต้น บทที่1ความรู้เบื้องต้น
บทที่1ความรู้เบื้องต้น Rungnapa Rungnapa
 
Building construction 5หลังคา แบบฝึกหัด
Building construction 5หลังคา แบบฝึกหัดBuilding construction 5หลังคา แบบฝึกหัด
Building construction 5หลังคา แบบฝึกหัดRungnapa Rungnapa
 
Building construction 5หลังคา
Building construction 5หลังคาBuilding construction 5หลังคา
Building construction 5หลังคาRungnapa Rungnapa
 
Mac os x power point ฉบับสมบูรณ์ pdf
Mac os x power point ฉบับสมบูรณ์ pdfMac os x power point ฉบับสมบูรณ์ pdf
Mac os x power point ฉบับสมบูรณ์ pdfJane Jitpakan
 
เกมส์และเว็บไซต์ที่ชื่นชอบ วิชาปฏิสัมพันธ์ระหว่างมนุษย์
เกมส์และเว็บไซต์ที่ชื่นชอบ วิชาปฏิสัมพันธ์ระหว่างมนุษย์เกมส์และเว็บไซต์ที่ชื่นชอบ วิชาปฏิสัมพันธ์ระหว่างมนุษย์
เกมส์และเว็บไซต์ที่ชื่นชอบ วิชาปฏิสัมพันธ์ระหว่างมนุษย์Arrat Krupeach
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลGatesiree G'ate
 
Peer visit with SECI Model
Peer visit with SECI ModelPeer visit with SECI Model
Peer visit with SECI Modelburin rujjanapan
 
คู่มือการบันทึกคะแนน
คู่มือการบันทึกคะแนนคู่มือการบันทึกคะแนน
คู่มือการบันทึกคะแนนArrat Krupeach
 
Mac os x power point ฉบับสมบูรณ์
Mac os x power point ฉบับสมบูรณ์Mac os x power point ฉบับสมบูรณ์
Mac os x power point ฉบับสมบูรณ์Jane Jitpakan
 
Book sru
Book sruBook sru
Book sruphochai
 
ฐานข้อมูลนะสอน
ฐานข้อมูลนะสอนฐานข้อมูลนะสอน
ฐานข้อมูลนะสอนsariya25
 
รายงานประชุมศิษย์เก่าอัสสัมชัญลำปาง 19#19
รายงานประชุมศิษย์เก่าอัสสัมชัญลำปาง 19#19รายงานประชุมศิษย์เก่าอัสสัมชัญลำปาง 19#19
รายงานประชุมศิษย์เก่าอัสสัมชัญลำปาง 19#19burin rujjanapan
 

Viewers also liked (20)

Slide3
Slide3Slide3
Slide3
 
Building construction 5หลังคา
Building construction 5หลังคาBuilding construction 5หลังคา
Building construction 5หลังคา
 
Ch10
Ch10Ch10
Ch10
 
บทที่ 3 แนวความคิดพื้นฐาน
บทที่ 3 แนวความคิดพื้นฐานบทที่ 3 แนวความคิดพื้นฐาน
บทที่ 3 แนวความคิดพื้นฐาน
 
บทที่1ความรู้เบื้องต้น
บทที่1ความรู้เบื้องต้น บทที่1ความรู้เบื้องต้น
บทที่1ความรู้เบื้องต้น
 
Ch9
Ch9Ch9
Ch9
 
Building construction 5หลังคา แบบฝึกหัด
Building construction 5หลังคา แบบฝึกหัดBuilding construction 5หลังคา แบบฝึกหัด
Building construction 5หลังคา แบบฝึกหัด
 
Building construction 5หลังคา
Building construction 5หลังคาBuilding construction 5หลังคา
Building construction 5หลังคา
 
Mac os x power point ฉบับสมบูรณ์ pdf
Mac os x power point ฉบับสมบูรณ์ pdfMac os x power point ฉบับสมบูรณ์ pdf
Mac os x power point ฉบับสมบูรณ์ pdf
 
เกมส์และเว็บไซต์ที่ชื่นชอบ วิชาปฏิสัมพันธ์ระหว่างมนุษย์
เกมส์และเว็บไซต์ที่ชื่นชอบ วิชาปฏิสัมพันธ์ระหว่างมนุษย์เกมส์และเว็บไซต์ที่ชื่นชอบ วิชาปฏิสัมพันธ์ระหว่างมนุษย์
เกมส์และเว็บไซต์ที่ชื่นชอบ วิชาปฏิสัมพันธ์ระหว่างมนุษย์
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
 
Peer visit with SECI Model
Peer visit with SECI ModelPeer visit with SECI Model
Peer visit with SECI Model
 
คู่มือการบันทึกคะแนน
คู่มือการบันทึกคะแนนคู่มือการบันทึกคะแนน
คู่มือการบันทึกคะแนน
 
Mac os x power point ฉบับสมบูรณ์
Mac os x power point ฉบับสมบูรณ์Mac os x power point ฉบับสมบูรณ์
Mac os x power point ฉบับสมบูรณ์
 
Book sru
Book sruBook sru
Book sru
 
ระบบปฏิบัติการ
ระบบปฏิบัติการระบบปฏิบัติการ
ระบบปฏิบัติการ
 
Ch5 database system
Ch5 database systemCh5 database system
Ch5 database system
 
ฐานข้อมูลนะสอน
ฐานข้อมูลนะสอนฐานข้อมูลนะสอน
ฐานข้อมูลนะสอน
 
Ch20
Ch20Ch20
Ch20
 
รายงานประชุมศิษย์เก่าอัสสัมชัญลำปาง 19#19
รายงานประชุมศิษย์เก่าอัสสัมชัญลำปาง 19#19รายงานประชุมศิษย์เก่าอัสสัมชัญลำปาง 19#19
รายงานประชุมศิษย์เก่าอัสสัมชัญลำปาง 19#19
 

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

การพัฒนาเอกสารออนไลน์ขั้นสูง Intro
การพัฒนาเอกสารออนไลน์ขั้นสูง Introการพัฒนาเอกสารออนไลน์ขั้นสูง Intro
การพัฒนาเอกสารออนไลน์ขั้นสูง IntroJenchoke Tachagomain
 
สถาปัตยกรรมฐานข้อมูล
สถาปัตยกรรมฐานข้อมูลสถาปัตยกรรมฐานข้อมูล
สถาปัตยกรรมฐานข้อมูลskiats
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูลYongyut Nintakan
 
บทที่ 1
บทที่ 1บทที่ 1
บทที่ 1nunzaza
 
Database system
Database systemDatabase system
Database systemIris Depp
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลIsareeya Keatwuttikan
 
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูลบทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูลniwat50
 
บทที่ 8
บทที่ 8บทที่ 8
บทที่ 8nunzaza
 
บทที่ 10
บทที่ 10บทที่ 10
บทที่ 10056777777
 
บทที่ 10
บทที่ 10บทที่ 10
บทที่ 10nunzaza
 
Database basic new
Database basic newDatabase basic new
Database basic newQoo Kratai
 
Database basic new
Database basic newDatabase basic new
Database basic newQoo Kratai
 
การรวบรวมความต้องการ
การรวบรวมความต้องการการรวบรวมความต้องการ
การรวบรวมความต้องการskiats
 
01 ฐานข้อมูลและคลังข้อมูล
01 ฐานข้อมูลและคลังข้อมูล01 ฐานข้อมูลและคลังข้อมูล
01 ฐานข้อมูลและคลังข้อมูลpop Jaturong
 
ประวัติความเป็นมาและการพัฒนาของระบบเทคโนโลยีสารสนเทศ
ประวัติความเป็นมาและการพัฒนาของระบบเทคโนโลยีสารสนเทศประวัติความเป็นมาและการพัฒนาของระบบเทคโนโลยีสารสนเทศ
ประวัติความเป็นมาและการพัฒนาของระบบเทคโนโลยีสารสนเทศtaenmai
 

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

การพัฒนาเอกสารออนไลน์ขั้นสูง Intro
การพัฒนาเอกสารออนไลน์ขั้นสูง Introการพัฒนาเอกสารออนไลน์ขั้นสูง Intro
การพัฒนาเอกสารออนไลน์ขั้นสูง Intro
 
สถาปัตยกรรมฐานข้อมูล
สถาปัตยกรรมฐานข้อมูลสถาปัตยกรรมฐานข้อมูล
สถาปัตยกรรมฐานข้อมูล
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 
บทที่ 1
บทที่ 1บทที่ 1
บทที่ 1
 
การจัดการหน่วยความจำ
การจัดการหน่วยความจำการจัดการหน่วยความจำ
การจัดการหน่วยความจำ
 
Database system
Database systemDatabase system
Database system
 
บท1
บท1บท1
บท1
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
 
บท1
บท1บท1
บท1
 
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูลบทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
 
บทที่1
บทที่1บทที่1
บทที่1
 
บทที่ 8
บทที่ 8บทที่ 8
บทที่ 8
 
บทที่ 10
บทที่ 10บทที่ 10
บทที่ 10
 
บทที่ 10
บทที่ 10บทที่ 10
บทที่ 10
 
Database basic new
Database basic newDatabase basic new
Database basic new
 
Chapter003
Chapter003Chapter003
Chapter003
 
Database basic new
Database basic newDatabase basic new
Database basic new
 
การรวบรวมความต้องการ
การรวบรวมความต้องการการรวบรวมความต้องการ
การรวบรวมความต้องการ
 
01 ฐานข้อมูลและคลังข้อมูล
01 ฐานข้อมูลและคลังข้อมูล01 ฐานข้อมูลและคลังข้อมูล
01 ฐานข้อมูลและคลังข้อมูล
 
ประวัติความเป็นมาและการพัฒนาของระบบเทคโนโลยีสารสนเทศ
ประวัติความเป็นมาและการพัฒนาของระบบเทคโนโลยีสารสนเทศประวัติความเป็นมาและการพัฒนาของระบบเทคโนโลยีสารสนเทศ
ประวัติความเป็นมาและการพัฒนาของระบบเทคโนโลยีสารสนเทศ
 

More from Rungnapa Rungnapa

บทที่2ความเสี่ยงภัยและการจัดการความเสี่ยง
บทที่2ความเสี่ยงภัยและการจัดการความเสี่ยง บทที่2ความเสี่ยงภัยและการจัดการความเสี่ยง
บทที่2ความเสี่ยงภัยและการจัดการความเสี่ยง Rungnapa Rungnapa
 
บทที่ 1 การจัดการประกันภัย
บทที่ 1 การจัดการประกันภัยบทที่ 1 การจัดการประกันภัย
บทที่ 1 การจัดการประกันภัยRungnapa Rungnapa
 
บทที่ 5 good corporate governance2
บทที่ 5 good corporate governance2บทที่ 5 good corporate governance2
บทที่ 5 good corporate governance2Rungnapa Rungnapa
 
บทที่ 4 บรรษัทภิบาล
บทที่ 4 บรรษัทภิบาลบทที่ 4 บรรษัทภิบาล
บทที่ 4 บรรษัทภิบาลRungnapa Rungnapa
 
บทที่ 3 แนวปฏิบัติที่ดี
บทที่ 3 แนวปฏิบัติที่ดีบทที่ 3 แนวปฏิบัติที่ดี
บทที่ 3 แนวปฏิบัติที่ดีRungnapa Rungnapa
 
บทที่ 2 corporate social responsibility
บทที่ 2 corporate social responsibilityบทที่ 2 corporate social responsibility
บทที่ 2 corporate social responsibilityRungnapa Rungnapa
 
บทที่ 1 ความรู้ทั่วไป
บทที่ 1 ความรู้ทั่วไปบทที่ 1 ความรู้ทั่วไป
บทที่ 1 ความรู้ทั่วไปRungnapa Rungnapa
 
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูลบทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูลRungnapa Rungnapa
 
บทที่ 10 การบริหารโครงการ
บทที่ 10 การบริหารโครงการบทที่ 10 การบริหารโครงการ
บทที่ 10 การบริหารโครงการRungnapa Rungnapa
 
บทที่ 9 การควบคุมการผลิต
บทที่ 9 การควบคุมการผลิตบทที่ 9 การควบคุมการผลิต
บทที่ 9 การควบคุมการผลิตRungnapa Rungnapa
 
บทที่ 8 การจัดการสินค้าคงคลัง
บทที่ 8 การจัดการสินค้าคงคลังบทที่ 8 การจัดการสินค้าคงคลัง
บทที่ 8 การจัดการสินค้าคงคลังRungnapa Rungnapa
 
บทที่ 7 การจัดการซัพพลายเชน
บทที่ 7 การจัดการซัพพลายเชนบทที่ 7 การจัดการซัพพลายเชน
บทที่ 7 การจัดการซัพพลายเชนRungnapa Rungnapa
 
บทที่ 6 การออกแบบงาน มาตรฐานแรงงาน และเทคโนโลยีการผลิต
บทที่  6 การออกแบบงาน มาตรฐานแรงงาน และเทคโนโลยีการผลิตบทที่  6 การออกแบบงาน มาตรฐานแรงงาน และเทคโนโลยีการผลิต
บทที่ 6 การออกแบบงาน มาตรฐานแรงงาน และเทคโนโลยีการผลิตRungnapa Rungnapa
 

More from Rungnapa Rungnapa (20)

Ch8
Ch8Ch8
Ch8
 
Ch7
Ch7Ch7
Ch7
 
Ch5
Ch5Ch5
Ch5
 
Ch6 new
Ch6 newCh6 new
Ch6 new
 
Ch1 3
Ch1 3Ch1 3
Ch1 3
 
Ch1 3
Ch1 3Ch1 3
Ch1 3
 
บทที่2ความเสี่ยงภัยและการจัดการความเสี่ยง
บทที่2ความเสี่ยงภัยและการจัดการความเสี่ยง บทที่2ความเสี่ยงภัยและการจัดการความเสี่ยง
บทที่2ความเสี่ยงภัยและการจัดการความเสี่ยง
 
บทที่ 1 การจัดการประกันภัย
บทที่ 1 การจัดการประกันภัยบทที่ 1 การจัดการประกันภัย
บทที่ 1 การจัดการประกันภัย
 
บทที่ 5 good corporate governance2
บทที่ 5 good corporate governance2บทที่ 5 good corporate governance2
บทที่ 5 good corporate governance2
 
บทที่ 4 บรรษัทภิบาล
บทที่ 4 บรรษัทภิบาลบทที่ 4 บรรษัทภิบาล
บทที่ 4 บรรษัทภิบาล
 
บทที่ 3 แนวปฏิบัติที่ดี
บทที่ 3 แนวปฏิบัติที่ดีบทที่ 3 แนวปฏิบัติที่ดี
บทที่ 3 แนวปฏิบัติที่ดี
 
บทที่ 2 corporate social responsibility
บทที่ 2 corporate social responsibilityบทที่ 2 corporate social responsibility
บทที่ 2 corporate social responsibility
 
บทที่ 1 ความรู้ทั่วไป
บทที่ 1 ความรู้ทั่วไปบทที่ 1 ความรู้ทั่วไป
บทที่ 1 ความรู้ทั่วไป
 
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูลบทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
 
บทที่ 1
บทที่ 1บทที่ 1
บทที่ 1
 
บทที่ 10 การบริหารโครงการ
บทที่ 10 การบริหารโครงการบทที่ 10 การบริหารโครงการ
บทที่ 10 การบริหารโครงการ
 
บทที่ 9 การควบคุมการผลิต
บทที่ 9 การควบคุมการผลิตบทที่ 9 การควบคุมการผลิต
บทที่ 9 การควบคุมการผลิต
 
บทที่ 8 การจัดการสินค้าคงคลัง
บทที่ 8 การจัดการสินค้าคงคลังบทที่ 8 การจัดการสินค้าคงคลัง
บทที่ 8 การจัดการสินค้าคงคลัง
 
บทที่ 7 การจัดการซัพพลายเชน
บทที่ 7 การจัดการซัพพลายเชนบทที่ 7 การจัดการซัพพลายเชน
บทที่ 7 การจัดการซัพพลายเชน
 
บทที่ 6 การออกแบบงาน มาตรฐานแรงงาน และเทคโนโลยีการผลิต
บทที่  6 การออกแบบงาน มาตรฐานแรงงาน และเทคโนโลยีการผลิตบทที่  6 การออกแบบงาน มาตรฐานแรงงาน และเทคโนโลยีการผลิต
บทที่ 6 การออกแบบงาน มาตรฐานแรงงาน และเทคโนโลยีการผลิต
 

บทที่ 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)
  • 2.
  • 3. บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 1.1 บทนํา ขอมูล (data) และสารสนเทศ (information) ในปจจุบันนี้มีอยูมากมายมหาศาล และเพิ่มจํานวนขึ้น อยางรวดเร็วซึ่งเราไมสามารถปฏิเสธไดเลยวาขอมูลและสารสนเทศนั้นมีประโยชนมากมายสําหรับผูนําไปใช ในแงขององคการตางๆ ก็ตระหนักถึงความสําคัญของขอมูลเปนอยางดี ซึ่งเราไดใหความสําคัญกับขอมูล เปรียบเสมือนสินทรัพยอยางหนึ่งขององคการไปแลว การที่จะใชประโยชนจากขอมูลที่มีจํานวนมหาศาลและ ซับซอนนี้ จําเปนที่จะตองอาศัยเครื่องมือเพื่อชวยอํานวยความสะดวกในการจัดการขอมูลตลอดจนการนํา ขอมูลไปใชงานอยางมีประสิทธิภาพ มิฉะนั้นแลวคาใชจายในการจัดหาและการจัดการขอมูลจะมีมูลคาสูงเกิน กวาประโยชนที่เราจะไดรับจากตัวขอมูล ฐานขอมูล คือกลุมของขอมูล ซึ่งโดยทั่วไปเปนขอมูลที่เกี่ยวของกับคุณสมบัติ และกิจกรรมตางๆ ของ ผูกระทํากิจกรรมนั้นๆ และมีความสัมพันธกัน ตัวอยางของฐานขอมูล เชน ฐานขอมูลของมหาวิทยาลัยอาจจะประกอบไปดวยขอมูลดังนี้ • เอนทิตี (entity) เชน นักศึกษา อาจารย รายวิชา หองเรียน • ความสัมพันธ (relationship) ระหวางเอนทิตี เชน นักศึกษาลงทะเบียนเรียนในรายวิชา อาจารยสอนในรายวิชา และการใชงานหองตางๆ สําหรับแตละรายวิชา ระบบจัดการฐานขอมูล (database management system – DBMS) คือซอฟตแวรที่ชวยในการจัดการและใช งานกลุมของขอมูล โดยเฉพาะการจัดการกับกลุมของขอมูลขนาดใหญหรือฐานขอมูลนั่นเอง ปจจุบันเราไดใชระบบ จัดการฐานขอมูลกันเปนที่แพรหลายซึ่งเกือบเปนสิ่งหนึ่งที่ขาดไมไดในการบริหารจัดการองคการ วัตถุประสงคของการศึกษารายวิชาการออกแบบและพัฒนาฐานขอมูลเนนที่การออกแบบพัฒนาและ สามารถนําระบบฐานขอมูลที่พัฒนาไปใชอยางมีประสิทธิภาพ ทั้งนี้การที่จะบรรลุวัตถุประสงคดังกลาว เรามี ความจําเปนที่จะตองเลือกใชระบบจัดการฐานขอมูลที่ถูกตองเหมาะสมกับการประยุกตใช ซึ่งการเลือกใช ระบบจัดการฐานขอมูล ตลอดจนการออกแบบ และพัฒนาฐานขอมูลสําหรับระบบจัดการฐานขอมูลใดๆ เรามี ความจําเปนอยางยิ่งที่จะตองเขาใจถึงการทํางานของระบบจัดการฐานขอมูล ระบบจัดการฐานขอมูลที่ใชกันในปจจุบันมีหลายประเภท แตสําหรับรายวิชานี้จะเนนที่ระบบจัดการ ฐานขอมูลเชิงสัมพันธ (relational database management systems – RDBMSs) ซึ่งเปนประเภทของระบบ จัดการฐานขอมูลที่แพรหลายที่สุดในปจจุบัน สําหรับเรื่องที่จะศึกษาสามารถแบงออกเปนกลุมใหญๆ ได ดังตอไปนี้ 1) แนวคิดพื้นฐานเกี่ยวกับฐานขอมูล ไดแกเนื้อหาในบทนี้ 2) การออกแบบฐานขอมูล หัวขอดังกลาวศึกษาเกี่ยวกับ แนวคิด ขั้นตอน และเครื่องมือที่ใชในการ ออกแบบเพื่อใหไดมาซึ่งฐานขอมูลที่ถูกตองเหมาะสม ตลอดจนการศึกษาเกี่ยวกับการที่ผูใช
  • 4. 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 เปนหลัก แนวคิดอื่นๆ เรียบเรียงมาจากและอานเพิ่มเติมไดตาม เอกสารอางอิง
  • 5. แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 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)
  • 6. 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ตัวอยางแผนภูมิแทงแสดงยอดจําหนายสินคาแยกตามประเภท
  • 7. แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 7 เราจะเห็นภาพชัดเจนถึงประเภทสินคาที่มียอดจําหนายสูงจากสารสนเทศที่ไดจากการประมวลผล ทํา ใหการวางแผนการบริหารรานคาสามารถทําไดอยางมีกลวิธีและมีประสิทธิภาพเพิ่มขึ้น ในกรณีนี้รานคาควรที่ จะซื้อบะหมี่กึ่งสําเร็จรูปในปริมาณที่มากกวาสินคาอื่นๆ เพื่อใหเพียงพอตอการจําหนาย การจัดเก็บขอมูล การนําขอมูลมาใชประโยชน ตลอดจนการประมวลผลขอมูลและนําสารสนเทศที่ไดมาใชประโยชนนั้นเรา สามารถใชระบบสารสนเทศ (information system) มาจัดการได ซึ่งระบบสารสนเทศในปจจุบันอาศัยการ จัดการขอมูลที่มีประสิทธิภาพจากระบบจัดการฐานขอมูล 1.3 วิวัฒนาการของฐานขอมูล (Ramakrishnan and Gehrke, 2004) การจัดเก็บ แกไข และบริหารจัดการขอมูลเปนหัวขอการศึกษาและวิจัยที่สําคัญ ตลอดจนไดรับการ พัฒนามาอยางตอเนื่อง ระบบจัดการฐานขอมูลสําหรับใชงานทั่วๆ ไประบบแรกไดรับการออกแบบโดยนาย ชาลส แบคแมน (Charles Bachman) แหงบริษัทเจเนอรัลอิเล็กทริก ในตนทศวรรษ ค.ศ. 1960 ระบบดังกลาว ถูกเรียกวา Integrated Data Store ซึ่งเปนรากฐานของการจัดเก็บขอมูลโดยใชแบบจําลองขอมูลแบบเครือขาย (network data model) ทั้งนี้ระบบดังกลาวไดรับการยอมรับและกําหนดมาตรฐานขึ้นโดย The Conference on DataSystemsLanguages(CODASYL)รูปแบบของการจัดเก็บขอมูลดังกลาวไดรับการยอมรับและมีอิทธิอยาง มากตอรูปแบบของสถาปตยกรรมระบบจัดการฐานขอมูลในชวงทศวรรษ 1960 แบคแมนเปนบุคคลแรกที่ ไดรับ ACM’s Turing Award ดานการศึกษาฐานขอมูลในป 1973 ซึ่ง Turing Award นี้เปนรางวัลที่เปรียบได กับรางวัลโนเบลในทางวิทยาการคอมพิวเตอร ในชวงปลายทศวรรษที่ 1960 บริษัทไอบีเอ็มไดพัฒนาระบบจัดการฐานขอมูลในชื่อ Information Management System (IMS) ซึ่งยังคงไดรับการใชงานอยูในปจจุบันสําหรับฐานขอมูลขนาดใหญ โดย IMS นี้ นําเสนอรูปแบบของการจัดการขอมูลดวยแบบจําลองขอมูลเชิงลําดับชั้น (hierarchical data model) ในชวง เวลาเดียวกันระบบ SABRE ซึ่งเปนระบบสําหรับการจองตั๋วเครื่องบินที่บริษัทไอบีเอ็มพัฒนารวมกับอเมริกัน แอรไลนสไดถูกพัฒนาขึ้น เพื่อใหสามารถใชงานผานเครือขายคอมพิวเตอรได ระบบดังกลาวมีความนาสนใจ ตรงที่เปนระบบสําคัญสําหรับการจองตั๋วเครื่องบินในปจจุบัน เชนเว็บไซต Travelocity ยังคงใชงานระบบ SABRE ในป1970เอ็ดการ ค็อด(EdgarCodd)แหงหองปฏิบัติการวิจัยซานโฮเซของบริษัทไอบีเอ็ม ไดเสนอ รูปแบบการจัดการขอมูลดวยแบบจําลองขอมูลเชิงสัมพันธ (relational data model) ซึ่งรูปแบบดังกลาวมีความ เหมาะสมในการใชงานเปนอยางยิ่งและไดรับความนิยมแพรหลายอยางรวดเร็ว นอกจากนี้มีผูสนับสนุนและ วิจัยเพื่อใหเกิดทฤษฎีมารองรับและประยุกตใชอยางเปนระบบ นอกจากจะไดรับความสนใจในแวดวงวิชาการ โดยถือเปนศาสตรแขนงหนึ่งแลว ระบบจัดการฐานขอมูลเชิงสัมพันธยังมีผลกระทบตอแวดวงธุรกิจ การนํา ระบบจัดการฐานขอมูลเชิงสัมพันธไปชวยในการบริหารองคการกอใหเกิดประโยชนอยางสูง ไดรับการ ยอมรับ และถือเปนเครื่องมือมาตรฐานอยางหนึ่งที่ควรนํามาใชเพื่ออํานวยความสะดวกในการปฏิบัติงานและ เพิ่มประสิทธิภาพขององคการ Codd ไดรับรางวัล Turing ในป 1981 ในชวงทศวรรษ 1980 แบบจําลองเชิงสัมพันธไดกลายเปนมาตรฐานหลักของระบบจัดการฐานขอมูล และมีการใชระบบจัดการฐานขอมูลกันอยางแพรหลาย ภาษาที่ใชสําหรับจัดการฐานขอมูลเชิงสัมพันธที่ไดรับ
  • 8. 8 บทที่ 1 การยอมรับเปนมาตรฐานไดแกSQLซึ่งถูกพัฒนาขึ้นโดยบริษัทไอบีเอ็มภายใตโครงการIBM’sSystemRโดย 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 วิวัฒนาการที่สําคัญของฐานขอมูล
  • 9. แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 9 ระบบจัดการฐานขอมูลทวีความสําคัญและประโยชนมากขึ้นเรื่อยๆ เนื่องจากมีการเรียกใชขอมูลและ สารสนเทศผานทางเว็บมากขึ้นอยางไมหยุดยั้ง นอกจากขอมูลที่เปนภาพและตัวหนังสือแลว ปจจุบัน ฐานขอมูลมัลติมีเดียถูกใชงานอยางแพรหลายเพื่อรองรับการดูภาพยนตร ทีวี วีดีทัศน ตลอดจนฟงเพลงและ ขาวสารผานทางเครือขายคอมพิวเตอร การใชงานฐานขอมูลเพื่อรองรับหองสมุดดิจิทัล การใชงานเพื่อรองรับ โครงการวิจัยทางวิทยาศาสตรขนาดใหญเชนแผนที่ยีนของมนุษย โครงการ Earth Observation System ของ องคการนาซา การใชเพื่อรองรับกระบวนการตัดสินใจทางธุรกิจ การนํามาใชประกอบการขุดคนขอมูลที่ นาสนใจเพื่องานวิชาการและธุรกิจ ในแวดงวงธุรกิจตลาดของระบบจัดการฐานขอมูลยังมีขนาดที่ใหญเปน อันดับตนๆ ทั้งหมดที่กลาวมานี้เปนเพียงตัวอยางบางสวนของบทบาทที่สําคัญของระบบจัดการฐานขอมูล การศึกษาเกี่ยวกับฐานขอมูลจึงเปนสิ่งที่นาสนใจและมีประโยชนอยางกวางขวาง 1.4 ระบบไฟลและระบบจัดการฐานขอมูล เพื่อใหเขาใจถึงความจําเปนในการใชงานระบบจัดการฐานขอมูล สามารถอธิบาย (Ramakrishnan and Gehrke, 2003)ใหเห็นไดดังนี้ บริษัทแหงหนึ่งมีขอมูลอยูเปนจํานวนมากประมาณ500GB ซึ่งเปนขอมูล ของพนักงาน แผนก สินคา การขาย ฯลฯ ขอมูลถูกใชงานโดยพนักงานหลายคนพรอมกัน การเรียกใชขอมูล จะตองไดรับการตอบสนองอยางรวดเร็ว การเปลี่ยนแปลงขอมูลใดๆ โดยผูใชงานคนละคนจะตองยังคงความ ถูกตองของขอมูล และจะตองมีการปองกันการเขาถึงขอมูลบางขอมูล เชน ขอมูลเงินเดือนของพนักงาน เปน ตน เราสามารถลองที่จะจัดการขอมูลดังกลาวโดยจัดเก็บขอมูลรูปแบบไฟลปกติที่ปฏิบัติกันมานานแลว ซึ่งวิธีดังกลาวมีขอเสียที่เกิดขึ้นดังนี้ • เราไมสามารถจัดเก็บขอมูลไวในหนวยความจําหลักไดทั้ง500GB ขอมูลจะตองถูกจัดเก็บอยูบน หนวยความจําสํารองไดแกฮารดดิสก หรือเทปแมเหล็ก เมื่อจําเปนจะตองใชงานขอมูลใดๆ ขอมูลสวนที่เกี่ยวของจะถูกอานขึ้นสูหนวยความจําหลัก ซึ่งจะตองมีการเขียนโปรแกรมเพื่อ รองรับกระบวนการนี้เปนพิเศษ • การตอบคําถามจากขอมูล การจัดเก็บ การแกไขใดๆ จําเปนตองเขียนโปรแกรมเฉพาะกับขอมูล ชุดนั้นๆ ซึ่งโปรแกรมจะมีความซับซอนเนื่องจากขนาดที่ใหญโตของขอมูล • จะตองมีการปองกันความผิดพลาดในกรณีที่มีการแกไขขอมูลเดียวกันพรอมๆ กัน การจัดการ เหตุการณดังกลาวในกรณีที่ใชระบบไฟลขอมูล ยิ่งทวีความซับซอนในการเขียนโปรแกรม • ระบบตองรับประกันวาขอมูลจะคืนสูสภาพที่ควรจะถูกตองจากการแกไขครั้งสุดทายกอนเกิด การลมเหลวของระบบ • ปกติแลวระบบไฟลจะมีการปองกันการเขาถึงไฟลโดยการใชรหัสผานสําหรับผูใชกอนเขาใช ระบบหรือใชรหัสผานเพียงรหัสเดียวสําหรับไฟลทั้งหมด ซึ่งวิธีการปองกันไฟลดังกลาวไม เพียงพอตอการใชงานในรูปแบบของการอนุญาตใหผูใชแตละคนสามารถเขาถึงขอมูลชุดใดชุด หนึ่งเทานั้นในชุดขอมูลที่มีอยูทั้งหมด
  • 10. 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 | …
  • 11. แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 11 ทํางานไดชากวาหนวยความจําหลักอยางมาก นอกจากนี้ยังรวมถึงวิธีจัดการกับขอมูลเพื่อแสดง ผลลัพธไดอยางรวดเร็วตามขอคําถาม (queries) ตางๆ • บูรณภาพและความมั่นคงปลอดภัยของขอมูล (data integrity and security) ตราบเทาที่ผูใช จะตองใชงานขอมูลผานระบบจัดการฐานขอมูล เราสามารถที่จะกําหนดขอกําหนดและควบคุม ใหขอมูลมีบูรณภาพ ซึ่งหมายถึงการที่ขอมูลมีความถูกตองตรงตามสภาพที่ควรจะเปนในชีวิต จริง เชน การทําการขึ้นเงินเดือนใหพนักงาน ระบบจะสามารถตรวจสอบไดวาเงินเดือนของ พนักงานไมเกินไปจากงบประมาณของหนวยงานหรือการแกไขสถานะภาพสมรสของพนักงาน คนใดๆ จะแกไขใหเปนหมายไมไดหากยังไมเคยแตงงาน เปนตน นอกจากนี้การเขาถึง ฐานขอมูลโดยผานทางระบบจัดการฐานขอมูลเทานั้นยังอนุญาตใหมีการกําหนดระดับการเขาถึง ขอมูลวาผูใชคนใดหรือกลุมใดสามารถมองเห็นขอมูลชุดใดหรือทํากิจกรรมใดๆกับฐานมูลนั้น ไดบาง • การบริหารขอมูล (data administrator) เมื่อผูใชหลายคน ใชงานขอมูลชุดเดียวกัน การจัดการ ขอมูลโดยรวมศูนยจะทําใหการบริหารขอมูลมีประสิทธิภาพมากขึ้น ผูที่มีความชํานาญในการ จัดการฐานขอมูลจะทราบวาจะปรับแตงฐานขอมูลอยางไรใหตรงตามความตองการขอมูลใช ใน แงของการควบคุมการเขาถึงขอมูลชุดตางๆ ของผูใชอยางเหมาะสม การลดความซ้ําซอนของ ขอมูลที่ใชงานรวมกัน ตลอดจนการปรับแตงฐานขอมูลเพื่อใหสามารถเรียกใชงานขอมูลได รวดเร็วขึ้น • การจัดการภาวะพรอมกันและการกูจากความลมเหลวของระบบ (concurrent access and crash recovery) ระบบจัดการฐานขอมูลมีความสามารถในการจัดลําดับการทํางานของธุรกรรมที่เขา มาพรอมๆ กันใหเสมือนหนึ่งวาฐานขอมูลมีการใชงานจากผูใชเพียงคนเดียวและการปรับปรุง ขอมูลใดๆ มีความถูกตองอยูเสมอ ตลอดจนปองกันขอมูลสูญหายและผิดพลาดในกรณีที่ระบบ ลมเหลว • ลดเวลาในการพัฒนาระบบที่ใชงานฐานขอมูล(reducedapplicationdevelopmenttime) ระบบ จัดการฐานขอมูลที่มีใหเลือกใชมีความสามารถในการรองรับการทํางานที่ใชกันโดยทั่วไป ดังนั้นจึงมีเครื่องมือและรูปแบบการเรียกใชงานซึ่งมองไดวาเปนการเรียกใชงานฐานขอมูลใน ระดับสูง เชนมีมาตรฐาน SQL ในการจัดการขอมูล ทําใหไมตองเขียนโปรแกรมเฉพาะที่ยุงยาก ซับซอนสําหรับขอมูลแตละชุดเอง นอกจากนี้การจัดการขอมูลลงในอุปกรณจัดเก็บยังทํางาน อยางถูกตองและมีประสิทธิภาพอยูแลวโดยระบบจัดการฐานขอมูล นักพัฒนาสามารถลดเวลาใน การพัฒนาและแกไขขอผิดพลาดจากการพัฒนาลงไดอยางมาก อยางไรก็ตาม แมวาระบบจัดการฐานขอมูลจะมีประโยชนมากมาย แตเราไมจําเปนตองใชระบบ จัดการฐานขอมูลเสมอไป ในกรณีที่เราไมจําเปนตองใชความสามารถที่กลาวมาของระบบจัดการฐานขอมูล เลย เชน ไมจําเปนตองใชการจัดการกรณีที่มีผูใชงานฐานขอมูลพรอมๆ กันหลายคน หรือมีผูใชหลายระดับ เขาถึงขอมูล เปนตน นอกจากนี้การวิเคราะหขอมูลบางอยางที่ซับซอน อาจไมสามารถจัดเก็บไดในฐานขอมูล และในบางกรณีเราอาจมีความตองการพิเศษในการใชงานขอมูล เชนจะตองมีความเร็วสูงกวาที่ระบบจัดการ
  • 12. 12 บทที่ 1 ฐานขอมูลจะสามารถทําได เราก็ไมจําเปนตองใชงานระบบจัดการฐานขอมูล กลาวโดยสรุปไดวาเราอาจจะไม จําเปนตองใชงานระบบจัดการฐานขอมูลในกรณีที่เราไมตองการความสามารถที่สูงเกินความจําเปน ซึ่งอาจทํา ใหการใชงานระบบจัดการฐานขอมูลไมคุมคากับคาใชจาย รวมถึงในกรณีที่เราไมสามารถใชงานระบบจัดการ ฐานขอมูลไดในกรณีที่ขอมูลไมอยูในรูปแบบที่ระบบจัดการฐานขอมูลจัดการได รวมถึงความตองการพิเศษที่ เราจะตองพัฒนาระบบสําหรับจัดการกับขอมูลเอง แตในทางตรงกันขาม การจัดการขอมูลที่ซับซอนและมี ขนาดใหญมักจะหลีกเลี่ยงไมไดที่จะตองใชงานระบบจัดการฐานขอมูล 1.6 การจัดเก็บขอมูลในระบบจัดการฐานขอมูลและสถาปตยกรรมฐานขอมูล ผูใชขอมูลโดยทั่วไปจะมองขอมูลในมุมมองของการใชงานในชีวิตจริง ในขณะที่การจัดเก็บขอมูลลง ในฐานขอมูลเปนวิธีในการที่จะทําอยางไรเพื่อจัดเก็บขอมูลในมุมมองนั้นๆ ลงในฐานขอมูลใหได เชน ใน มหาวิทยาลัยจะประกอบไปดวยขอมูลที่เกี่ยวกับนักศึกษา อาจารย และรายวิชา ตลอดจนกิจกรรมตางๆ ที่ เกิดขึ้นในมหาวิทยาลัยที่จะตองจดบันทึกขอมูลไว ในขณะที่การจัดเก็บขอมูลลงในฐานขอมูลจะอยูในรูปของ การมองผูกระทํากิจกรรมตางๆ เปนเอนทิตี การเก็บขอมูลที่อธิบายเอนทิตีตางๆ และจัดเก็บขอมูลดาน ความสัมพันธตางๆ ของเอนทิตีไว การที่จะจําลองมุมมองขอมูลในโลกแหงความเปนจริงมาเปนรูปแบบของการจัดเก็บขอมูลในเครื่อง คอมพิวเตอรจําเปนตองแทนขอมูลและเชื่อมโยงกันโดยอาศัยแบบจําลองขอมูล (data model) ซึ่งแบบจําลอง ขอมูลนี้ จะใชเปนเครื่องมือที่แทนรูปแบบของการจัดเก็บขอมูลในระดับสูง และจะซอนรายละเอียดอื่นๆ ที่ เกี่ยวของกับการจัดเก็บขอมูลในระดับลางที่เกี่ยวของกับการเก็บขอมูลลงในอุปกรณจัดเก็บจริงๆ ซึ่งใน ปจจุบัน แบบจําลองขอมูลที่ใชกันแพรหลายที่สุดไดแกแบบจําลองขอมูลเชิงสัมพันธ(relational database) ซึ่ง เปนแบบจําลองหลักที่ใชศึกษาในรายวิชา อยางไรก็ตาม แมแบบจําลองขอมูลจะซอนรายละเอียดการจัดการกับอุปกรณจัดเก็บขอมูล แต แบบจําลองขอมูลมีความใกลเคียงกับวิธีการจัดเก็บขอมูลของระบบจัดการฐานขอมูลมากกวาการมองขอมูลใน โลกแหงความเปนจริง เราจึงตองอาศัยเครื่องมืออื่นไดแกแบบจําลองขอมูลเชิงความหมาย (semantic data mode) ซึ่งเปนธรรมชาติใกลเคียงกับขอมูลในมุมมองของการใชงานในโลกแหงความเปนจริงมากขึ้น โดย แบบจําลองขอมูลเชิงความหมายนี้จะใชเปนเครื่องมือเริ่มตนในการแทนกิจกรรมและผูเกี่ยวของตางๆใหอยูใน รูปแบบแผนภาพ หรือรูปแบบอื่นๆ ที่จะสามารถจดบันทึกและแลกเปลี่ยนทําความเขาใจกันได แบบจําลอง ขอมูลเชิงความหมายนี้สามารถแทนขอกําหนดตางๆของกิจกรรมในองคการได แตระบบจัดการฐานขอมูลไม สามารถรองรับขอกําหนดนั้นๆ โดยตรง เพราะระบบจัดการฐานขอมูลเชิงสัมพันธใชแบบจําลองขอมูลเชิง สัมพันธซึ่งตางจากแบบจําลองในระดับสูงอยางแบบจําลองขอมูลเชิงความหมาย อยางไรก็ตาม แบบจําลอง ขอมูลทั้งสองมีความสัมพันธกัน และเราสามารถออกแบบใหสอดคลองกันไดเพื่อใหระบบจัดการฐานขอมูล เชิงสัมพันธสามารถรองรับการใชงานขอมูลในกิจการขององคการไดอยางถูกตอง รูปแบบของแบบจําลองขอมูลเชิงความหมายที่ไดรับการใชงานอยางกวางขวางมีชื่อวาแบบจําลอง เอนทิตีและความสัมพันธ (entity-relationship model—ER model) แบบจําลองดังกลาวทําใหเราสามารถแทน เอนทิตีและความสัมพันธของเอนทิตีตางๆ เปนแผนภาพ แบบจําลองเอนทิตีและความสัมพันธเปนเครื่องมือที่
  • 13. แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 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 ดังนั้นเราสามารถมองไดวาสคีมาก็คือ แมแบบขอมูลนั่นเอง
  • 14. 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
  • 15. แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 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
  • 16. 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
  • 17. แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 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
  • 18. 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 คนจะยังมีคาคงเดิมทําใหขอมูลนั้น ขัดแยงกัน เปนตัวอยางหนึ่งของสคีมาระดับภายนอก ซึ่งคําวาภายนอกนั้นเปนมุมมองจากการมองโดยใช ระบบจัดการฐานขอมูลเปนตัวตั้ง