บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
Nächste SlideShare
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูลบทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
Wird geladen in ... 3
1 von 29

Más contenido relacionado

Presentaciones para ti(20)

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

Último(20)

บทที่ 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. บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 1.1 บทนํา ขอมูล (data) และสารสนเทศ (information) ในปจจุบันนี้มีอยูมากมายมหาศาล และเพิ่มจํานวนขึ้น อยางรวดเร็วซึ่งเราไมสามารถปฏิเสธไดเลยวาขอมูลและสารสนเทศนั้นมีประโยชนมากมายสําหรับผูนําไปใช ในแงขององคการตางๆ ก็ตระหนักถึงความสําคัญของขอมูลเปนอยางดี ซึ่งเราไดใหความสําคัญกับขอมูล เปรียบเสมือนสินทรัพยอยางหนึ่งขององคการไปแลว การที่จะใชประโยชนจากขอมูลที่มีจํานวนมหาศาลและ ซับซอนนี้ จําเปนที่จะตองอาศัยเครื่องมือเพื่อชวยอํานวยความสะดวกในการจัดการขอมูลตลอดจนการนํา ขอมูลไปใชงานอยางมีประสิทธิภาพ มิฉะนั้นแลวคาใชจายในการจัดหาและการจัดการขอมูลจะมีมูลคาสูงเกิน กวาประโยชนที่เราจะไดรับจากตัวขอมูล ฐานขอมูล คือกลุมของขอมูล ซึ่งโดยทั่วไปเปนขอมูลที่เกี่ยวของกับคุณสมบัติ และกิจกรรมตางๆ ของ ผูกระทํากิจกรรมนั้นๆ และมีความสัมพันธกัน ตัวอยางของฐานขอมูล เชน ฐานขอมูลของมหาวิทยาลัยอาจจะประกอบไปดวยขอมูลดังนี้ • เอนทิตี (entity) เชน นักศึกษา อาจารย รายวิชา หองเรียน • ความสัมพันธ (relationship) ระหวางเอนทิตี เชน นักศึกษาลงทะเบียนเรียนในรายวิชา อาจารยสอนในรายวิชา และการใชงานหองตางๆ สําหรับแตละรายวิชา ระบบจัดการฐานขอมูล (database management system – DBMS) คือซอฟตแวรที่ชวยในการจัดการและใช งานกลุมของขอมูล โดยเฉพาะการจัดการกับกลุมของขอมูลขนาดใหญหรือฐานขอมูลนั่นเอง ปจจุบันเราไดใชระบบ จัดการฐานขอมูลกันเปนที่แพรหลายซึ่งเกือบเปนสิ่งหนึ่งที่ขาดไมไดในการบริหารจัดการองคการ วัตถุประสงคของการศึกษารายวิชาการออกแบบและพัฒนาฐานขอมูลเนนที่การออกแบบพัฒนาและ สามารถนําระบบฐานขอมูลที่พัฒนาไปใชอยางมีประสิทธิภาพ ทั้งนี้การที่จะบรรลุวัตถุประสงคดังกลาว เรามี ความจําเปนที่จะตองเลือกใชระบบจัดการฐานขอมูลที่ถูกตองเหมาะสมกับการประยุกตใช ซึ่งการเลือกใช ระบบจัดการฐานขอมูล ตลอดจนการออกแบบ และพัฒนาฐานขอมูลสําหรับระบบจัดการฐานขอมูลใดๆ เรามี ความจําเปนอยางยิ่งที่จะตองเขาใจถึงการทํางานของระบบจัดการฐานขอมูล ระบบจัดการฐานขอมูลที่ใชกันในปจจุบันมีหลายประเภท แตสําหรับรายวิชานี้จะเนนที่ระบบจัดการ ฐานขอมูลเชิงสัมพันธ (relational database management systems – RDBMSs) ซึ่งเปนประเภทของระบบ จัดการฐานขอมูลที่แพรหลายที่สุดในปจจุบัน สําหรับเรื่องที่จะศึกษาสามารถแบงออกเปนกลุมใหญๆ ได ดังตอไปนี้ 1) แนวคิดพื้นฐานเกี่ยวกับฐานขอมูล ไดแกเนื้อหาในบทนี้ 2) การออกแบบฐานขอมูล หัวขอดังกลาวศึกษาเกี่ยวกับ แนวคิด ขั้นตอน และเครื่องมือที่ใชในการ ออกแบบเพื่อใหไดมาซึ่งฐานขอมูลที่ถูกตองเหมาะสม ตลอดจนการศึกษาเกี่ยวกับการที่ผูใช
  3. 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 เปนหลัก แนวคิดอื่นๆ เรียบเรียงมาจากและอานเพิ่มเติมไดตาม เอกสารอางอิง
  4. แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 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)
  5. 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ตัวอยางแผนภูมิแทงแสดงยอดจําหนายสินคาแยกตามประเภท
  6. แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 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 แบบจําลองเชิงสัมพันธไดกลายเปนมาตรฐานหลักของระบบจัดการฐานขอมูล และมีการใชระบบจัดการฐานขอมูลกันอยางแพรหลาย ภาษาที่ใชสําหรับจัดการฐานขอมูลเชิงสัมพันธที่ไดรับ
  7. 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 วิวัฒนาการที่สําคัญของฐานขอมูล
  8. แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 9 ระบบจัดการฐานขอมูลทวีความสําคัญและประโยชนมากขึ้นเรื่อยๆ เนื่องจากมีการเรียกใชขอมูลและ สารสนเทศผานทางเว็บมากขึ้นอยางไมหยุดยั้ง นอกจากขอมูลที่เปนภาพและตัวหนังสือแลว ปจจุบัน ฐานขอมูลมัลติมีเดียถูกใชงานอยางแพรหลายเพื่อรองรับการดูภาพยนตร ทีวี วีดีทัศน ตลอดจนฟงเพลงและ ขาวสารผานทางเครือขายคอมพิวเตอร การใชงานฐานขอมูลเพื่อรองรับหองสมุดดิจิทัล การใชงานเพื่อรองรับ โครงการวิจัยทางวิทยาศาสตรขนาดใหญเชนแผนที่ยีนของมนุษย โครงการ Earth Observation System ของ องคการนาซา การใชเพื่อรองรับกระบวนการตัดสินใจทางธุรกิจ การนํามาใชประกอบการขุดคนขอมูลที่ นาสนใจเพื่องานวิชาการและธุรกิจ ในแวดงวงธุรกิจตลาดของระบบจัดการฐานขอมูลยังมีขนาดที่ใหญเปน อันดับตนๆ ทั้งหมดที่กลาวมานี้เปนเพียงตัวอยางบางสวนของบทบาทที่สําคัญของระบบจัดการฐานขอมูล การศึกษาเกี่ยวกับฐานขอมูลจึงเปนสิ่งที่นาสนใจและมีประโยชนอยางกวางขวาง 1.4 ระบบไฟลและระบบจัดการฐานขอมูล เพื่อใหเขาใจถึงความจําเปนในการใชงานระบบจัดการฐานขอมูล สามารถอธิบาย (Ramakrishnan and Gehrke, 2003)ใหเห็นไดดังนี้ บริษัทแหงหนึ่งมีขอมูลอยูเปนจํานวนมากประมาณ500GB ซึ่งเปนขอมูล ของพนักงาน แผนก สินคา การขาย ฯลฯ ขอมูลถูกใชงานโดยพนักงานหลายคนพรอมกัน การเรียกใชขอมูล จะตองไดรับการตอบสนองอยางรวดเร็ว การเปลี่ยนแปลงขอมูลใดๆ โดยผูใชงานคนละคนจะตองยังคงความ ถูกตองของขอมูล และจะตองมีการปองกันการเขาถึงขอมูลบางขอมูล เชน ขอมูลเงินเดือนของพนักงาน เปน ตน เราสามารถลองที่จะจัดการขอมูลดังกลาวโดยจัดเก็บขอมูลรูปแบบไฟลปกติที่ปฏิบัติกันมานานแลว ซึ่งวิธีดังกลาวมีขอเสียที่เกิดขึ้นดังนี้ • เราไมสามารถจัดเก็บขอมูลไวในหนวยความจําหลักไดทั้ง500GB ขอมูลจะตองถูกจัดเก็บอยูบน หนวยความจําสํารองไดแกฮารดดิสก หรือเทปแมเหล็ก เมื่อจําเปนจะตองใชงานขอมูลใดๆ ขอมูลสวนที่เกี่ยวของจะถูกอานขึ้นสูหนวยความจําหลัก ซึ่งจะตองมีการเขียนโปรแกรมเพื่อ รองรับกระบวนการนี้เปนพิเศษ • การตอบคําถามจากขอมูล การจัดเก็บ การแกไขใดๆ จําเปนตองเขียนโปรแกรมเฉพาะกับขอมูล ชุดนั้นๆ ซึ่งโปรแกรมจะมีความซับซอนเนื่องจากขนาดที่ใหญโตของขอมูล • จะตองมีการปองกันความผิดพลาดในกรณีที่มีการแกไขขอมูลเดียวกันพรอมๆ กัน การจัดการ เหตุการณดังกลาวในกรณีที่ใชระบบไฟลขอมูล ยิ่งทวีความซับซอนในการเขียนโปรแกรม • ระบบตองรับประกันวาขอมูลจะคืนสูสภาพที่ควรจะถูกตองจากการแกไขครั้งสุดทายกอนเกิด การลมเหลวของระบบ • ปกติแลวระบบไฟลจะมีการปองกันการเขาถึงไฟลโดยการใชรหัสผานสําหรับผูใชกอนเขาใช ระบบหรือใชรหัสผานเพียงรหัสเดียวสําหรับไฟลทั้งหมด ซึ่งวิธีการปองกันไฟลดังกลาวไม เพียงพอตอการใชงานในรูปแบบของการอนุญาตใหผูใชแตละคนสามารถเขาถึงขอมูลชุดใดชุด หนึ่งเทานั้นในชุดขอมูลที่มีอยูทั้งหมด
  9. 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 | …
  10. แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 11 ทํางานไดชากวาหนวยความจําหลักอยางมาก นอกจากนี้ยังรวมถึงวิธีจัดการกับขอมูลเพื่อแสดง ผลลัพธไดอยางรวดเร็วตามขอคําถาม (queries) ตางๆ • บูรณภาพและความมั่นคงปลอดภัยของขอมูล (data integrity and security) ตราบเทาที่ผูใช จะตองใชงานขอมูลผานระบบจัดการฐานขอมูล เราสามารถที่จะกําหนดขอกําหนดและควบคุม ใหขอมูลมีบูรณภาพ ซึ่งหมายถึงการที่ขอมูลมีความถูกตองตรงตามสภาพที่ควรจะเปนในชีวิต จริง เชน การทําการขึ้นเงินเดือนใหพนักงาน ระบบจะสามารถตรวจสอบไดวาเงินเดือนของ พนักงานไมเกินไปจากงบประมาณของหนวยงานหรือการแกไขสถานะภาพสมรสของพนักงาน คนใดๆ จะแกไขใหเปนหมายไมไดหากยังไมเคยแตงงาน เปนตน นอกจากนี้การเขาถึง ฐานขอมูลโดยผานทางระบบจัดการฐานขอมูลเทานั้นยังอนุญาตใหมีการกําหนดระดับการเขาถึง ขอมูลวาผูใชคนใดหรือกลุมใดสามารถมองเห็นขอมูลชุดใดหรือทํากิจกรรมใดๆกับฐานมูลนั้น ไดบาง • การบริหารขอมูล (data administrator) เมื่อผูใชหลายคน ใชงานขอมูลชุดเดียวกัน การจัดการ ขอมูลโดยรวมศูนยจะทําใหการบริหารขอมูลมีประสิทธิภาพมากขึ้น ผูที่มีความชํานาญในการ จัดการฐานขอมูลจะทราบวาจะปรับแตงฐานขอมูลอยางไรใหตรงตามความตองการขอมูลใช ใน แงของการควบคุมการเขาถึงขอมูลชุดตางๆ ของผูใชอยางเหมาะสม การลดความซ้ําซอนของ ขอมูลที่ใชงานรวมกัน ตลอดจนการปรับแตงฐานขอมูลเพื่อใหสามารถเรียกใชงานขอมูลได รวดเร็วขึ้น • การจัดการภาวะพรอมกันและการกูจากความลมเหลวของระบบ (concurrent access and crash recovery) ระบบจัดการฐานขอมูลมีความสามารถในการจัดลําดับการทํางานของธุรกรรมที่เขา มาพรอมๆ กันใหเสมือนหนึ่งวาฐานขอมูลมีการใชงานจากผูใชเพียงคนเดียวและการปรับปรุง ขอมูลใดๆ มีความถูกตองอยูเสมอ ตลอดจนปองกันขอมูลสูญหายและผิดพลาดในกรณีที่ระบบ ลมเหลว • ลดเวลาในการพัฒนาระบบที่ใชงานฐานขอมูล(reducedapplicationdevelopmenttime) ระบบ จัดการฐานขอมูลที่มีใหเลือกใชมีความสามารถในการรองรับการทํางานที่ใชกันโดยทั่วไป ดังนั้นจึงมีเครื่องมือและรูปแบบการเรียกใชงานซึ่งมองไดวาเปนการเรียกใชงานฐานขอมูลใน ระดับสูง เชนมีมาตรฐาน SQL ในการจัดการขอมูล ทําใหไมตองเขียนโปรแกรมเฉพาะที่ยุงยาก ซับซอนสําหรับขอมูลแตละชุดเอง นอกจากนี้การจัดการขอมูลลงในอุปกรณจัดเก็บยังทํางาน อยางถูกตองและมีประสิทธิภาพอยูแลวโดยระบบจัดการฐานขอมูล นักพัฒนาสามารถลดเวลาใน การพัฒนาและแกไขขอผิดพลาดจากการพัฒนาลงไดอยางมาก อยางไรก็ตาม แมวาระบบจัดการฐานขอมูลจะมีประโยชนมากมาย แตเราไมจําเปนตองใชระบบ จัดการฐานขอมูลเสมอไป ในกรณีที่เราไมจําเปนตองใชความสามารถที่กลาวมาของระบบจัดการฐานขอมูล เลย เชน ไมจําเปนตองใชการจัดการกรณีที่มีผูใชงานฐานขอมูลพรอมๆ กันหลายคน หรือมีผูใชหลายระดับ เขาถึงขอมูล เปนตน นอกจากนี้การวิเคราะหขอมูลบางอยางที่ซับซอน อาจไมสามารถจัดเก็บไดในฐานขอมูล และในบางกรณีเราอาจมีความตองการพิเศษในการใชงานขอมูล เชนจะตองมีความเร็วสูงกวาที่ระบบจัดการ
  11. 12 บทที่ 1 ฐานขอมูลจะสามารถทําได เราก็ไมจําเปนตองใชงานระบบจัดการฐานขอมูล กลาวโดยสรุปไดวาเราอาจจะไม จําเปนตองใชงานระบบจัดการฐานขอมูลในกรณีที่เราไมตองการความสามารถที่สูงเกินความจําเปน ซึ่งอาจทํา ใหการใชงานระบบจัดการฐานขอมูลไมคุมคากับคาใชจาย รวมถึงในกรณีที่เราไมสามารถใชงานระบบจัดการ ฐานขอมูลไดในกรณีที่ขอมูลไมอยูในรูปแบบที่ระบบจัดการฐานขอมูลจัดการได รวมถึงความตองการพิเศษที่ เราจะตองพัฒนาระบบสําหรับจัดการกับขอมูลเอง แตในทางตรงกันขาม การจัดการขอมูลที่ซับซอนและมี ขนาดใหญมักจะหลีกเลี่ยงไมไดที่จะตองใชงานระบบจัดการฐานขอมูล 1.6 การจัดเก็บขอมูลในระบบจัดการฐานขอมูลและสถาปตยกรรมฐานขอมูล ผูใชขอมูลโดยทั่วไปจะมองขอมูลในมุมมองของการใชงานในชีวิตจริง ในขณะที่การจัดเก็บขอมูลลง ในฐานขอมูลเปนวิธีในการที่จะทําอยางไรเพื่อจัดเก็บขอมูลในมุมมองนั้นๆ ลงในฐานขอมูลใหได เชน ใน มหาวิทยาลัยจะประกอบไปดวยขอมูลที่เกี่ยวกับนักศึกษา อาจารย และรายวิชา ตลอดจนกิจกรรมตางๆ ที่ เกิดขึ้นในมหาวิทยาลัยที่จะตองจดบันทึกขอมูลไว ในขณะที่การจัดเก็บขอมูลลงในฐานขอมูลจะอยูในรูปของ การมองผูกระทํากิจกรรมตางๆ เปนเอนทิตี การเก็บขอมูลที่อธิบายเอนทิตีตางๆ และจัดเก็บขอมูลดาน ความสัมพันธตางๆ ของเอนทิตีไว การที่จะจําลองมุมมองขอมูลในโลกแหงความเปนจริงมาเปนรูปแบบของการจัดเก็บขอมูลในเครื่อง คอมพิวเตอรจําเปนตองแทนขอมูลและเชื่อมโยงกันโดยอาศัยแบบจําลองขอมูล (data model) ซึ่งแบบจําลอง ขอมูลนี้ จะใชเปนเครื่องมือที่แทนรูปแบบของการจัดเก็บขอมูลในระดับสูง และจะซอนรายละเอียดอื่นๆ ที่ เกี่ยวของกับการจัดเก็บขอมูลในระดับลางที่เกี่ยวของกับการเก็บขอมูลลงในอุปกรณจัดเก็บจริงๆ ซึ่งใน ปจจุบัน แบบจําลองขอมูลที่ใชกันแพรหลายที่สุดไดแกแบบจําลองขอมูลเชิงสัมพันธ(relational database) ซึ่ง เปนแบบจําลองหลักที่ใชศึกษาในรายวิชา อยางไรก็ตาม แมแบบจําลองขอมูลจะซอนรายละเอียดการจัดการกับอุปกรณจัดเก็บขอมูล แต แบบจําลองขอมูลมีความใกลเคียงกับวิธีการจัดเก็บขอมูลของระบบจัดการฐานขอมูลมากกวาการมองขอมูลใน โลกแหงความเปนจริง เราจึงตองอาศัยเครื่องมืออื่นไดแกแบบจําลองขอมูลเชิงความหมาย (semantic data mode) ซึ่งเปนธรรมชาติใกลเคียงกับขอมูลในมุมมองของการใชงานในโลกแหงความเปนจริงมากขึ้น โดย แบบจําลองขอมูลเชิงความหมายนี้จะใชเปนเครื่องมือเริ่มตนในการแทนกิจกรรมและผูเกี่ยวของตางๆใหอยูใน รูปแบบแผนภาพ หรือรูปแบบอื่นๆ ที่จะสามารถจดบันทึกและแลกเปลี่ยนทําความเขาใจกันได แบบจําลอง ขอมูลเชิงความหมายนี้สามารถแทนขอกําหนดตางๆของกิจกรรมในองคการได แตระบบจัดการฐานขอมูลไม สามารถรองรับขอกําหนดนั้นๆ โดยตรง เพราะระบบจัดการฐานขอมูลเชิงสัมพันธใชแบบจําลองขอมูลเชิง สัมพันธซึ่งตางจากแบบจําลองในระดับสูงอยางแบบจําลองขอมูลเชิงความหมาย อยางไรก็ตาม แบบจําลอง ขอมูลทั้งสองมีความสัมพันธกัน และเราสามารถออกแบบใหสอดคลองกันไดเพื่อใหระบบจัดการฐานขอมูล เชิงสัมพันธสามารถรองรับการใชงานขอมูลในกิจการขององคการไดอยางถูกตอง รูปแบบของแบบจําลองขอมูลเชิงความหมายที่ไดรับการใชงานอยางกวางขวางมีชื่อวาแบบจําลอง เอนทิตีและความสัมพันธ (entity-relationship model—ER model) แบบจําลองดังกลาวทําใหเราสามารถแทน เอนทิตีและความสัมพันธของเอนทิตีตางๆ เปนแผนภาพ แบบจําลองเอนทิตีและความสัมพันธเปนเครื่องมือที่
  12. แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 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 ดังนั้นเราสามารถมองไดวาสคีมาก็คือ แมแบบขอมูลนั่นเอง
  13. 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
  14. แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 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
  15. 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
  16. แนวคิดทั่วไปเกี่ยวกับฐานขอมูล 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
  17. 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 คนจะยังมีคาคงเดิมทําใหขอมูลนั้น ขัดแยงกัน เปนตัวอยางหนึ่งของสคีมาระดับภายนอก ซึ่งคําวาภายนอกนั้นเปนมุมมองจากการมองโดยใช ระบบจัดการฐานขอมูลเปนตัวตั้ง