710 likes | 1.09k Views
บทที่ 1. ความรู้เบื้องต้นเกี่ยวกับฐานข้อมูล. วิชาการจัดการฐานข้อมูล อ . เพียรทิพย์ ศรีสุธรรม thiplovely@hotmail.com 084-6824218. หัวข้อการบรรยาย. แนวคิดเกี่ยวกับการจัดเก็บข้อมูล 1.1 การจัดการข้อมูล (Data Management) 1.2 โครงสร้างแฟ้มข้อมูล 1. 3 การจัดการแฟ้มข้อมูล
E N D
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับฐานข้อมูล วิชาการจัดการฐานข้อมูล อ.เพียรทิพย์ ศรีสุธรรม thiplovely@hotmail.com 084-6824218
หัวข้อการบรรยาย • แนวคิดเกี่ยวกับการจัดเก็บข้อมูล • 1.1 การจัดการข้อมูล (Data Management) • 1.2 โครงสร้างแฟ้มข้อมูล • 1.3 การจัดการแฟ้มข้อมูล • 2. การประมวลผลข้อมูลในระบบสารสนเทศ • 2.1 ระบบแฟ้มข้อมูล • 2.2 ระบบฐานข้อมูล
1.1 การจัดการข้อมูล (Data Management) การจัดการข้อมูลมีมาช้านาน เปลี่ยนไปตามยุคสมัยและเทคโนโลยี เริ่มจาก • บันทึกข้อมูลลงในกระดาษ หรือสมุด • บันทึกข้อมูลและจัดเก็บในแฟ้มเอกสาร แยกแฟ้มตามประเภท • ทำดัชนีให้กับแฟ้มเอสารเพื่อนำแฟ้มเอกสารไปจัดเก็บในตู้จัดเก็บเอสาร • นำเอกสารที่จัดเก็บในแฟ้มเอสาร(ตู้จัดเก็บเอสาร)เปลี่ยนเป็นเก็บเป็นไฟล์ในเครื่องคอมพิวเตอร์แทน • จากเก็บเป็นไฟล์ในเครื่องคอมพิวเตอร์ พัฒนาเป็นการจัดทำเป็นฐานข้อมูล
1.1การจัดการข้อมูล (Data Management) แสดงพัฒนาการของการจัดการข้อมูล
หรือ ไฟล์ (File) =เป็นหน่วยของข้อมูลที่มีการนำเรคอร์ด(ระเบียน)ที่มีความสัมพันธ์มารวมกัน เช่นในแฟ้มประวัติ นศ. จะประกอบด้วย เรคอร์ด ของ นศ.ทั้งหมดที่อยู่ใน มหาวิทยาลัย หรือ ระเบียน (Record) =เป็นหน่วยของข้อมูลที่มีหลายเขตข้อมูล(ฟิลด์)ที่มีความสัมพันธ์ หรือเกี่ยวข้องกันมารวมกัน เช่น เรคอร์ดของประวัติ นศ. จะประกอบด้วยฟิลด์ รหัสนศ. ชื่อ-สกุล นศ. วันเกิด ที่อยู่ จังหวัด เบอร์โทรศัพท์ เป็นต้น หรือเขตข้อมูล (Field) =เป็นการนำตัวอักขระตั้งแต่หนึ่งตัวขึ้นไปมารวมกันเพื่อให้เกิดเป็นคำที่มีความหมาย เช่น รหัสนิสิต ชื่อ-นามสกุลนิสิต คณะ สาขา เป็นต้น 2. ไบต์ (Byte) =หน่วยของข้อมูลที่นำหลายบิตมาเรียงต่อกันเป็นไบต์ เพื่อใช้แทนตัวอักขระแต่ละตัว โดย 1 ตัวอักขระจะแทนด้วย 8 บิต (1 ไบต์) เช่น ตัวอักษร A เมื่อเก็บอยู่ในคอมพิวเตอร์จะเก็บเป็น 10000001 เป็นต้น จึงทำให้สามารถสร้างรหัสแทนข้อมูลขึ้นมา เพื่อใช้สำหรับแทนตัวอักขระที่แตกต่างกันได้ถึง 256 ตัวด้วยกัน 1. บิต (Bit) =เป็นหน่วยของข้อมูลที่มีขนาดเล็กที่สุดที่เก็บในหน่วยความจำของคอมพิวเตอร์ ซึ่งประกอบด้วยเลขฐานสอง (Binary Digit) ซึ่งมีค่าได้เพียงสองสถานะเท่านั้นคือ 0 หรือ 1 1.2 โครงสร้างแฟ้มข้อมูล
1.3 การจัดการแฟ้มข้อมูล 1.การสร้างแฟ้มข้อมูล (file creating) = การสร้างแฟ้มข้อมูลเพื่อนำมาใช้ในการประมวลผล ส่วนใหญ่จะสร้างจากเอกสารเบื้องต้น โดยเริ่มจากการพิจารณากำหนดสื่อข้อมูลการออกแบบฟอร์มของระเบียน การกำหนดโครงสร้างการจัดเก็บแฟ้มข้อมูลบนสื่ออุปกรณ์ (การสร้างแฟ้มข้อมูล) 2.การปรับปรุงรักษาแฟ้มข้อมูล (การสืบค้น และการปรับเปลี่ยนข้อมูล) 2.1 การค้นคืนระเบียนในแฟ้มข้อมูล (retrieving) คือ การค้นหาข้อมูลที่ต้องการเพื่อนำมาใช้งานใดงานหนึ่ง โดยการเลือกคีย์ฟิลด์ เป็นตัวกำหนดเพื่อที่จะนำไปค้นหาระเบียนที่ต้องการในแฟ้มข้อมูล เช่น ต้องการหาว่า พนักงานที่ชื่อสมชายมีอยู่กี่คน (การค้นหาข้อมูล) 2.2 การปรับเปลี่ยนข้อมูล (updating) = เช่น การเพิ่มบางระเบียนเข้าไป, แก้ไขเปลี่ยนแปลงหรือลบบางระเบียนออกไป (การแก้ไข หรือเปลี่ยนแปลงข้อมูล = add, modified=change, delete)
2. การประมวลผลข้อมูลในระบบสารสนเทศ 1.ระบบแฟ้มข้อมูล Order Filling System DBMS Program A ฐานข้อมูล Program B 2.ระบบฐานข้อมูล Program C Customer Master File Inventory Master File Program A Invoicing System Back Order File Program B Inventory pricing File Payroll System Program A Employee Master File Program B
1.ระบบแฟ้มข้อมูล • เป็นระบบการประมวผลผลแบบเก่าที่ตอนนี้ไม่เป็นที่นิยมแล้วในปัจจุบัน เนื่องจากมีปัญหาหลายอย่าง • แฟ้มข้อมูลคอมพิวเตอร์จะถูกสร้างขึ้นโดยการเขียนโปรแกรมด้วยภาษาการเขียนโปรแกรม (เช่น ภาษา PHP, ASP, C, PASCAL, JAVA เป็นต้น) • เพื่อสร้างโครงสร้างที่จำเป็นเพื่อใช้ในการจัดเก็บข้อมูล พร้อมทั้งโปรแกรมประยุกต์เพื่อใช้ในการจัดการข้อมูลและทำรายงานต่าง ๆ ตามที่ผู้ใช้ต้องการ
ตัวอย่างโปรแกรมที่เขียนขึ้นในระบบแฟ้มข้อมูล • ส่วนการประกาศโครงสร้างของแฟ้มข้อมูลทุกแฟ้มที่โปรแกรมนี้ต้องการใช้งาน จากตัวอย่างแสดง 2 แฟ้ม คือ • แฟ้มนักศึกษา (STUDENT FILE) • แฟ้มรายวิชา (COURSE FILE)
โปรแกรม ยืม คืน หนังสือ โปรแกรมการประมวลผลการเรียนแต่ละเทอม โปรแกรม การลงทะเบียน โปรแกรม จัดการสมาชิก โปรแกรม จัดการหนังสือ ระบบทะเบียนนักศึกษา ระบบห้องสมุด แฟ้มนักศึกษา แฟ้มรายวิชา แฟ้มการลงทะเบียน แฟ้มแจ้งผลการเยนประจำเทอม แฟ้มนักศึกษา แฟ้ม ยืม-คืน แฟ้ม หนังสือ แฟ้ม การลงทะเบียน • โปรแกรมการลงทะเบียน ใช้ แฟ้มการลงทะเบียนแฟ้มนักศึกษา และแฟ้มรายวิช • โปรแกรมประมวลผลการเรียน ใช้ แฟ้มการลงทะเบียน แฟ้มผลการเรียนประจำเทอม แฟ้มนักศึกษา และแฟ้มรายวิชา • โปรแกรมการจัดการข้อมูลสมาชิกใช้แฟ้มนักศึกษา • โปรแกรมยืม-คืนหนังสือ ใช้ทุกแฟ้ม • โปรแกรมจัดการหนังสือ ใช้ แฟ้มหนังสือ
ข้อดีของระบบแฟ้มข้อมูล ข้อดีของระบบแฟ้มข้อมูล 1.การประมวลผลทำได้รวดเร็ว (processing speed) = เนื่องจากการประมวลผลข้อมูล สามารถกำหนดแฟ้มที่เกี่ยวข้องจากโปรแกรมประยุกต์ที่เขียนไว้โดยตรง ผลก็คือ โปรแกรมจะทำงานด้วยความรวดเร็ว 2.ค่าลงทุนเบื้องต้นต่ำ = เนื่องจากไม่จำเป็นต้องใช้คอมพิวเตอร์ที่มีความประสิทธิภาพสูงก็สามารถประมวลผลได้ 3.โปรแกรมประยุกต์แต่ละโปรแกรมสามารถควบคุมการใช้งานข้อมูลในแฟ้มของตัวเองได้ = เนื่องจากข้อมูลถูกกำหนดโครงสร้างและการใช้งานในโปรแกรมประยุกต์แต่ละตัวที่เขียนขึ้น
ข้อจำกัดของระบบแฟ้มข้อมูลข้อจำกัดของระบบแฟ้มข้อมูล ซอร์สโค๊ดของโปรแกรม • 1.มีการขึ้นต่อกันระหว่างโปรแกรมและข้อมูล (Program-Data Dependency) • เนื่องจากต้องกำหนดโครงสร้างของแฟ้มข้อมูลไว้ในซอร์สโค๊ดของโปรแกรม • ถ้าเราต้องการเปลี่ยนโครงสร้างของแฟ้มข้อมูล จะต้องไปแก้โปรแกรมทุกครั้ง • ส่วนการประกาศโครงสร้างของแฟ้มข้อมูลทุกแฟ้มที่โปรแกรมนี้ต้องการใช้งาน จากตัวอย่างแสดง 2 แฟ้ม คือ • แฟ้มนักศึกษา (STUDENT FILE) • แฟ้มรายวิชา (COURSE FILE)
ข้อจำกัดของระบบแฟ้มข้อมูลข้อจำกัดของระบบแฟ้มข้อมูล 2.ข้อมูลมีความซ้ำซ้อน (duplication of data/data redundancy)ทำให้เกิดปัญหา 3 ลักษณะ คือ -กรณีที่ 1 ข้อผิดพลาดจากการเพิ่มข้อมูล (insertion anomalies)เช่น หากเพิ่มชื่อที่แฟ้มพนักงานขาย แต่ไม่เพิ่มที่แฟ้มพนักงาน ทำให้เกิดความผิดพลาดได้ หากเพิ่มชื่อที่แฟ้มพนักงานขาย แต่ไม่เพิ่มที่แฟ้มพนักงาน ทำให้เกิดความผิดพลาดได้
ตัวอย่างความผิดพลาดของการเปลี่ยนแปลงข้อมูลตัวอย่างความผิดพลาดของการเปลี่ยนแปลงข้อมูล
ข้อจำกัดของระบบแฟ้มข้อมูลข้อจำกัดของระบบแฟ้มข้อมูล 2.ข้อมูลมีความซ้ำซ้อน (duplication of data/data redundancy) -กรณีที่ 2 ข้อผิดพลาดจากการลบข้อมูล (deletion anomalies) ตัวอย่างความขัดแย้งของการลบข้อมูลในวิธีแฟ้มข้อมูล เช่น ในแฟ้มพนักงานลบชื่อออกแล้ว แต่ในแฟ้มพนักงานขาย ยังไม่ลบออก ทำให้เกิดความผิดพลาดของข้อมูล ในแฟ้มพนักงานลบชื่อออกแล้ว แต่ในแฟ้มพนักงานขาย ยังไม่ลบออก ทำให้เกิดความผิดพลาดของข้อมูล
ข้อจำกัดของระบบแฟ้มข้อมูลข้อจำกัดของระบบแฟ้มข้อมูล 2.ข้อมูลมีความซ้ำซ้อน (duplication of data/data redundancy) -กรณีที่ 3 ข้อผิดพลาดจากการเปลี่ยนแปลงข้อมูล (modification anomalies) ตัวอย่าง ความขัดแย้งของการเปลี่ยนแปลงข้อมูลในวิธีแฟ้มข้อมูล กรณี นส.นงนุช เปลี่ยนชื่อเป็นณิชกานต์ และแจ้งที่ฝ่ายบุคคล คือแฟ้มพนักงาน แต่ไม่ได้แจ้งที่ฝ่ายพนักงานขาย ทำให้เกิดความผิดพลาดของข้อมูล
ข้อจำกัดของระบบแฟ้มข้อมูลข้อจำกัดของระบบแฟ้มข้อมูล • 3.ข้อจำกัดในการใช้ข้อมูลร่วมกัน • เนื่องจากการพัฒนาโปรแกรมประยุกต์ใช้ภาษาที่ต่างกัน • เมื่อมีการต้องการใช้ข้อมูลร่วมกันทำให้เกิดความยุ่งยากในการเรียกใช้แฟ้มข้อมูลที่มีรูปแบบแฟ้มข้อมูลต่างกันตามภาษาที่พัฒนาโปรแกรมประยุกต์ที่ใช้กำหนดโครงสร้างของข้อมูล
ข้อจำกัดของระบบแฟ้มข้อมูลข้อจำกัดของระบบแฟ้มข้อมูล 4.มีรูปแบบที่ไม่ตรงกัน = โครงสร้างข้อมูลถูกเขียนด้วยโปรแกรมประยุกต์ โครงสร้างก็จะขึ้นอยู่กับภาษาของโปรแกรมประยุกต์นั้น เช่น โครงสร้างถูกสร้างด้วยภาษา COBOL อาจมีความแตกต่างจากโครงสร้างของไฟล์ข้อมูลที่สร้างขึ้นด้วยภาษา C และเป็นการยากสำหรับการนำไฟล์ทั้งสองมาประมวลผลร่วมกัน 5.รายงานต่างๆถูกกำหนดไว้อย่างจำกัด = ระบบแฟ้มข้อมูล มีความขึ้นอยู่กับโปรแกรมประยุกต์เป็นอย่างมาก เนื่องจากรายงานหรือคิวรีถูกเขียนโดยโปรแกรมเมอร์ และถูกกำหนดรูปแบบรวมทั้งรายงานต่างๆ ที่แน่นอนลงในโปรแกรมเรียบร้อยแล้ว ดังนั้น หากผู้ใช้งานต้องการรายงานเพิ่มเติมก็จำเป็นต้องว่าจ้างโปรแกรมเมอร์ให้เขียนโปรแกรมใหม่ นั่นหมายถึง ต้องเสียค่าใช้จ่ายเพิ่มขึ้น 6.ความไม่สอดคล้องกันของข้อมูล (Data inconsistency)เช่น ไฟล์เก็บไว้หลายที่ ทำให้ข้อมูลที่ผิดอีกที่หนึ่ง แต่ไม่ผิดอีกที่หนึ่ง ก็เป็นได้
2.ระบบฐานข้อมูล • ฐานข้อมูล และ ระบบจัดการฐานข้อมูล • ข้อดี ของระบบฐานข้อมูล • ข้อเสีย ของระบบฐานข้อมูล • ส่วนประกอบของระบบฐานข้อมูล
ฐานข้อมูลและระบบจัดการฐานข้อมูลฐานข้อมูลและระบบจัดการฐานข้อมูล • ความหมายของฐานข้อมูล • การเก็บรวบรวมข้อมูลที่มีความสัมพันธ์กันไว้ด้วยกัน • โดยจะมีระบบจัดการฐานข้อมูลอย่างเป็นระบบเพื่อการจัดเก็บและเรียกใช้งานข้อมูลที่ทันสมัยได้อย่างรวดเร็วและมีประสิทธิภาพ • ข้อมูลที่ถูกเก็บในฐานข้อมูลประกอบด้วย 2 ส่วน • ข้อมูลที่ผู้ใช้สามารถนำไปประมวลผล • คำอธิบายข้อมูล (Metadata) อธิบายโครงสร้างและความสัมพันธ์ของข้อมูลในฐานข้อมูล • ในระบบการประมวลผลฐานข้อมูล จะมีองค์ประกอบหนึ่งที่แตกต่างจากระบบการประมวลผลแฟ้มข้อมูล คือระบบจัดการฐานข้อมูล DBMS (Database management System)
ระบบฐานข้อมูล โปรแกรมประยุกต์ สำหรับระบบทะเบียนนักศึกษา ฐานข้อมูล Metadata งานทะเบียน ข้อมูลนักศึกษา ข้อมูลรายวิชา ข้อมูลหนังสือ โปรแกรมประยุกต์ สำหรับระบบห้องสมุด DBMS ห้องสมุด
ฐานข้อมูลและระบบจัดการฐานข้อมูลฐานข้อมูลและระบบจัดการฐานข้อมูล หน้าที่ของระบบการจัดการฐานข้อมูล (Database Management System : DBMS) ภาษานิยามข้อมูล(DDL) CREAT = สร้างALTER = เปลี่ยนโครงสร้างDROP = ยกเลิก ภาษาจัดการข้อมูล(DML) SELECT = ค้นระเบียนUPDATE = ปรับปรุงระเบียนINSERT = เพิ่มระเบียนDELETE = ลบระเบียน ภาษาควบคุมข้อมูล(DCL) GRANT = กำหนดสิทธิ์REVOKE = ยกเลิกสิทธิ์ 3. สามารถควบคุมการเข้าถึงข้อมูล - ความปลอดภัยของระบบ = กำหนดสิทธิ์การเข้าใช้งาน โดยให้สิทธิ์ที่ต่างกัน- ความคงสภาพของระบบ = ทำให้เกิดความถูกต้องตรงกันในการจัดเก็บข้อมูล - มีระบบควบคุมการเข้าถึงข้อมูลพร้อมกัน จัดการกับปัญหาเมื่อมีข้อผิดพลาดกับข้อมูลเกิดขึ้น- สามารถกู้คืนข้อมูลระบบ ในกรณีที่ HW หรือ SW เกิดความเสียหาย 1. อนุญาตให้ผู้ใช้งานสามารถกำหนดหรือสร้างฐานข้อมูล เพื่อกำหนดโครงสร้างข้อมูล ชนิดข้อมูล รวมทั้งอนุญาตให้ข้อมูลที่กำหนดขึ้น สามารถบันทึกลงในฐานข้อมูลได้ 2. อนุญาตให้ผู้ใช้งานสามารถทำการเพิ่ม ปรับปรุง ลบ และเรียกใช้ข้อมูลจากฐานข้อมูลได้ 4. เปรียบเสมือนตัวกลาง ที่ดูแลการใช้งานระหว่างผู้ใช้งานกับแฟ้มข้อมูล หรือโปรแกรมจัดการข้อมูล - ระบบการจัดการฐานข้อมูล (Database Management System : DBMS)= โปรแกรมที่ใช้เป็นเครื่องมือในการจัดการฐานข้อมูล ประกอบด้วยฟังก์ชั่นหน้าที่ต่างๆในการจัดการฐานข้อมูล รวมทั้งภาษาที่ใช้ทำงานกับข้อมูล
ตัวอย่างซอฟต์แวร์ระบบจัดการฐานข้อมูลที่นิยมใช้ในปัจจุบัน(Database Management system : DBMS) • ออราเคิล (Oracle) • ไอบีเอ็ม ดีบีทู (IBM DB2) • ไมโครซอฟท์ ซีควลเซิร์ฟเวอร์ (Microsoft SQL Server) • ไซเบส (Sybase) • แคเช่ (Cache') • PostgreSQL • Progress • มายเอสคิวแอล (MySQL) • Interbase • Firebird • Pervasive SQL • แซพ ดีบี (SAP DB) • ไมโครซอฟท์ แอคเซส (Microsoft Office Access)
ข้อดีระบบฐานข้อมูล • 1. ความเป็นอิสระระหว่างโปรแกรมประยุกต์และข้อมูล >> โปรแกรมประยุกต์ที่เขียนขึ้นไม่จำเป็นต้องนิยามโครงสร้างของข้อมูล เพราะโครงสร้างข้อมูลและข้อมูลทั้งหมดได้ถูกนิยามและจัดเก็บในฐานข้อมูลไว้แล้วก่อนที่จะมีการพัฒนาโปรแกรมประยุกต์โดยจะมีตัว DBMS เป็นตัวประสานระหว่าง โปรแกรมประยุกต์และการจัดการข้อมูลในฐานข้อมูล • 2. ลดความซ้ำซ้อนและความขัดแย้งกันของข้อมูล >> ข้อมูลที่เก็บไว้ในฐานข้อมูลเพียงที่เดียว ทำให้ประหยัดเนื้อที่ในฮาร์ดดิสก์ การแก้ไขเปลี่ยนแปลงข้อมูลก็ทำกับข้อมูลเพียงที่เดียวเท่านั้น • 3. ข้อมูลมีการเก็บรวมกันและสามารถใช้ข้อมูลร่วมกันได้ >> ในระบบฐานข้อมูล ข้อมูลทั้งหมดจะถูกเก็บไว้ที่เดียวกันคือ ฐานข้อมูล โปรแกรมประยุกต์แต่ละระบบสามารถใช้งานข้อมูลภายในฐานข้อมูลร่วมกันได้ โดยออกคำสั่งผ่าน DBMS
ข้อดีระบบฐานข้อมูล • 4. การควบคุมความคงสภาพของข้อมูล (ความถูกต้อง คล้องจอง สมเหตุสมผล ของข้อมูล)เนื่องจากข้อมูลเก็บไว้ที่เกียวกันเมื่อแก้ไขก็แก้ที่เดียวก็พอ ต่างจากระบบแฟ้มข้อมูลที่มีการเก็บข้อมูลไว้หลายที่ เวลาจะแก้ต้องตามแก้ไขให้ครบทุกที่ • 5. การจัดการข้อมูลในฐานข้อมูลจะทำได้ง่าย >> การเพิ่ม ลบ ค้นหา แก้ไข ข้อมูลทำได้ง่าย เนื่องจาก DBMS จะรับผิดชอบโดยผู้พัฒนาโปรแกรมประยุกต์ไม่ต้องสนใจว่า ข้อมูลจะเก็บในฮาร์ดดิสก์ด้วยวิธีใด เพียงแค่ออกคำสั่งง่าย ๆ ในการเรียกใช้ข้อมูล เพิ่มข้อมูล ลบข้อมูล แก้ไขข้อมูล ผ่านทาง DBMS แทน • 6. การควบคุมการใช้งานฐานข้อมูลของผู้ใช้งานหลายคน >>ในระบบฐานข้อมูลจะมีผู้บริหารฐานข้อมูล (DBA) เป็นคนกำหนดสิทธิ์การใช้งานฐานข้อมูลให้กับผู้ใช้งานผ่านทาง DBMS ซึ่งสามารถกำหนดได้ว่า ผู้ใช้คนไหนสามารถเข้าใช้ฐานข้อมูลได้ในระดับใด เช่น เรียกดูข้อมูลได้อย่างเดียว หรือ เรียกดูและแก้ไขฐานข้อมูล เพื่อป้องกันไม่ให้ผู้เกี่ยวข้องเข้าไปก่อความเสียหายให้แก่ข้อมูลได้
ข้อเสียของระบบฐานข้อมูลข้อเสียของระบบฐานข้อมูล • 1.ค่าใช้จ่ายในการติดตั้งระบบจัดการฐานข้อมูลสูง เนื่องจาก • ราคาของ DBMS โดยทั่วไปจะมีราคาแพง • ต้องใช้ฮาร์ดแวร์ที่มีประสิทธิภาพสูง เช่น มีความเร็วสูง ฮาร์ดดิสก์มีความจุสูง • ต้องใช้บุคลากรที่มีความเชี่ยวชาญมากกว่าระบบแฟ้มข้อมูล • 2.ค่าใช้จ่ายระหว่างการดำเนินงาน เนื่องจากหลังการติดตั้งระบบงานแล้ว ระบบฐานข้อมูลต้องได้รับการดูแลอย่างสม่ำเสมอ เช่น • ทำการสำรองข้อมูลและกู้คืนข้อมูล (Backup and Restore) เพื่อป้องกันและแก้ไขปัญหาข้อมูลเสียหาย
องค์ประกอบของระบบฐานข้อมูลองค์ประกอบของระบบฐานข้อมูล 1 ฮาร์ดแวร์ Hardware 2 ซอฟต์แวร์ Software 3 ข้อมูล Data 4 กระบวนการ (Procedure) 5 บุคลากร People
องค์ประกอบของระบบฐานข้อมูลองค์ประกอบของระบบฐานข้อมูล 1.ฮาร์ดแวร์ (Hardware) = คอมพิวเตอร์ และอุปกรณ์รอบข้างที่จำเป็นสำหรับระบบฐานข้อมูล ทั้งนี้ฮาร์ดแวร์จะเป็นรูปแบบใดนั้น ขึ้นอยู่กับความต้องการขององค์กรหรือหน่วยงานเป็นหลัก 2.ซอฟต์แวร์ (Software) = โปรแกรมหรือชุดคำสั่งที่เขียนขึ้นเพื่อสั่งให้คอมพิวเตอร์ทำงาน เช่น ซอฟต์แวร์ระบบปฏิบัติการ ซอฟต์แวร์การจัดการฐานข้อมูล รวมทั้งโปรแกรมและโปรกรมยูทิลิตี้ต่างๆ
องค์ประกอบของระบบฐานข้อมูลองค์ประกอบของระบบฐานข้อมูล 3.ข้อมูล (Data) = ข้อมูลของระบบงานสมัยใหม่จะถูกจัดเก็บไว้ในฐานข้อมูล (แทนที่จะเป็นแฟ้มข้อมูล) ดังรายละเอียดต่อไปนี้ข้อมูลพื้นฐานที่เล็กที่สุดภายในฐานข้อมูลคือ บิท บิท (Binary digit) เป็นหน่วยข้อมูลพื้นฐานที่เก็บอยู่ในหน่วยความจำภายในคอมพิวเตอร์ จะแสดงได้ 2 สถานะคือ 0 หรือ 1 เท่านั้น ตัวอักขระ(Character) หรือ ไบต์ (byte)แต่ละตัว เช่น ตัวอักขระ(A B ก ขค..) หรือสัญลักษณ์พิเศษ (& $..)เมื่อเก็บอยู่ในคอมพิวเตอร์จะต้องถูกแปลงให้อยู่ในรูปของบิต หลายๆ บิต มาเรียงต่อกัน จำนวน 7 หรือ 8 บิต เรียกว่า 1 ไบต์ เช่น อักขระ A เมื่อเก็บอยู่ในคอมพิวเตอร์จะเก็บเป็น 1000001 เขตข้อมูล (Field) =เป็นการนำตัวอักขระตั้งแต่หนึ่งตัวขึ้นไปมารวมกันเพื่อให้เกิดเป็นคำที่มีความหมายขึ้น เช่น รหัสนิสิต ชื่อ-นามสกุลนิสิต คณะ สาขา เป็นต้น ระเบียน (Record)=เป็นหน่วยของข้อมูลที่มีหลายเขตข้อมูล(ฟิลด์)ที่มีความสัมพันธ์ หรือเกี่ยวข้องกันมารวมกัน เช่น เรคอร์ดของประวัติ นศ. จะประกอบด้วยฟิลด์ รหัสนศ. ชื่อ-สกุล นศ. วันเกิด ที่อยู่ จังหวัด เบอร์โทรศัพท์ เป็นต้น
องค์ประกอบของระบบฐานข้อมูลองค์ประกอบของระบบฐานข้อมูล 4.โพรซีเยอร์ (Procedure) = ขั้นตอนการปฏิบัติงานที่เกี่ยวข้องกับชุดคำสั่ง กฎเกณฑ์ในการออกแบบและการใช้งานฐานข้อมูล ประกอบด้วยชุดคำสั่งและขั้นตอนที่ใช้ในการปฏิบัติงาน 5.บุคลากร (People) = จำเป็นต้องเกี่ยวข้องกับระบบอยู่ตลอดเวลา ประกอบด้วยบุคลากรที่ทำหน้าที่ในการจัดการฐานข้อมูลต่างๆกัน เช่น ผู้บริหารและจัดการฐานข้อมูล (Data and Database administrators : DBA) - จัดการกับข้อมูลและระบบจัดการฐานข้อมูล - ควบคุมระบบรักษาความปลอดภัยของฐานข้อมูล - วางแผนป้องกันเมื่อเกิดความเสียหายขึ้นกับระบบฐานข้อมูล นักออกแบบฐานข้อมูล (Database designers) - ออกแบบโครงสร้างทางกายภาพของฐานข้อมูลเช่น ฐานข้อมูลประกอบด้วยตารางใด แต่ละตารางประกอบด้วยคอลัมย์ใด มีชนิดข้อมูลเป็นแบบใด ขนาดเท่าไหร่ เป็นต้น นักวิเคราะห์ระบบ (System Analyst)วิเคราะห์ระบบและออกแบบโปรแกรมประยุต์ นักเขียนโปรแกรม (Programmer) เขียนหรือสร้างโปรแกรมประยุกต์ ผู้ใช้งาน (End Users) แบ่งเป็นผู้ปฏิบัติงาน และผู้บริหาร ซึ่งจะใช้งานฐานข้อมูลผ่านทางโปรแกรมประยุกต์ที่เขียนขึ้น เช่น ค้นหาข้อมูล เพิ่ม ลบ แก้ไข ข้อมูลตามสิทธิ์ที่ถูกกำหนดไว้ ข้อมูล ฮาร์ดแวร์ ซอฟต์แวร์ กระบวนการจัดการ บุคลากร เครื่องมือ ตัวเชื่อม มนุษย์
ความสัมพันธ์ระหว่างองค์ประกอบของระบบฐานข้อมูลความสัมพันธ์ระหว่างองค์ประกอบของระบบฐานข้อมูล ผู้บริหาร
ตัวอย่างภาษาโปรแกรม • ภาษาจาวา (Java) • JavaScript • Perl • PHP • ภาษาไพทอน (Python) • ภาษาโปรล็อก (Prolog) • ภาษาอ็อบเจกทีฟ-ซี (Objective-C) • Ruby • AJAX • ภาษาซี (C) • ภาษาซีพลัสพลัส (C++) • ภาษาซีชาร์ป (C#) • (COBOL) • ภาษาปาสกาล (Pascal) • ภาษาเบสิก (BASIC) • ภาษาฟอร์แทรน (FORTRAN)
กิจกรรมประจำบทเรียน • ให้นักศึกษาแบ่งกลุ่มอธิบาย การทำงานของเว็บบอร์ดที่อาจารย์ยกตัวอย่างให้ดูในชั้นเรียน • อธิบายลักษณะของระบบแฟ้มข้อมูล • อธิบายลักษณะของระบบฐานข้อมูล • ระบบการจัดการฐานข้อมูล (Database Management System : DBMS) คืออะไร • องค์ประกอบของระบบฐานข้อมูลมีอะไรบ้าง • ผู้บริหารฐานข้อมูลมีหน้าที่อะไรบ้าง
บทที่ 2 สถาปัตยกรรมฐานข้อมูล (Database Architecture)
หัวข้อในการบรรยาย • สถาปัตยกรรมฐานข้อมูล • ประโยชน์ของสถาปัตยกรรม 3 ระดับ • แบบจำลองข้อมูล • แบบจำลองฐานข้อมูล
สถาปัตยกรรมระบบฐานข้อมูลสถาปัตยกรรมระบบฐานข้อมูล • ระบบฐานข้อมูลจะมีประโยชน์ก็ต่อเมื่อผู้ใช้สามารถเข้าถึงหรือจัดการกับข้อมูลได้อย่างมีประสิทธิภาพ เนื่องจากผู้ใช้ส่วนใหญ่ไม่ใช่ผู้เชี่ยวชาญคอมพิวเตอร์ • ในการออกแบบฐานข้อมูลจึงได้มีการซ่อนรายละเอียดที่ซับซ้อนต่าง ๆ ไว้ภายใน • โดยผู้ใช้จะเห็นข้อมูลในรูปแบบเชิงนามธรรมเท่านั้น และสามารถมองเห็นได้ในมุมมองที่แตกต่างกันตามสิทธิและความต้องการที่ต่างกัน • จึงเป็นที่มาของสถาปัตยกรรมฐานข้อมูล ซึ่งถูกกำหนดโดย American National Standard Institute (ANSI)
วัตถุประสงค์หลักของการแบ่งโครงสร้างฐานข้อมูล 3 ระดับ 1. ผู้ใช้งานไม่จำเป็นต้องสนใจในรายละเอียดเกี่ยวกับโครงสร้างการจัดเก็บข้อมูล ไม่ว่าจะเป็นโครงสร้างการจัดเก็บข้อมูลจะเป็นแบบเรียงลำดับ หรือแบบดัชนี จะปล่อยให้เป็นหน้าที่ของ DBMS เป็นตัวจัดการ 2. ผู้ใช้งานแต่ละคนสามารถเข้าถึงข้อมูลชุดเดียวกัน แต่อาจมีความต้องการนำเสนอข้อมูลหรือแสดงมุมมองของข้อมูลที่แตกต่างกัน รวมทั้งการแสดงข้อมูลก็จะแสดงข้อมูลเพียงบางส่วนเท่าที่จำเป็นต่อการใช้งานเท่านั้น โดยไม่มีความจำเป็นที่จะต้องแสดงข้อมูลให้ดูทั้งหมด 3. ความอิสระของข้อมูล คือ ไม่ต้องทำการแก้ไขโปรแกรมทุกครั้ง เมื่อมีการเปลี่ยนแปลงโครงสร้างของข้อมูล
สถาปัตยกรรมฐานข้อมูล • ระดับภายนอก • ระดับแนวคิด • ระดับภายใน
การลงทะเบียนนักศึกษา รหัส น.ศ.____ ชื่อ____ปี/เทอม_ การลงทะเบียนนักศึกษา รหัส น.ศ.____ ชื่อ____ปี/เทอม_ ระดับภายนอก TABLE ENROLL EN_YEAR SMALLINT, EN_TERM CHARACTER(1) EN_SJID CHARACTER(7) EN_STID CHARACTER(9) EN_GRD CHARACTER(2) TABLE SUBJECT SUD_ID CHARACTER(7) SUD_NAME CHARACTER(15) SUB_UNIT SMALLINT ระดับแนวคิด ระดับภายใน
ผู้ออกแบบฐานข้อมูลตรรกะผู้ออกแบบฐานข้อมูลตรรกะ ผู้ออกแบบฐานข้อมูลทางกายภาพ ผู้ใช้งานทั่วไป ระดับภายใน ระดับภายนอก ระดับตรรกะ
1.ระดับภายนอก (external level) หรือระดับวิว (User view level) • เป็นระดับที่มีการนำข้อมูลจากฐานข้อมูลไปใช้งาน • ตามความต้องการของผู้ใช้แต่ละคน • ซึ่งต้องการข้อมูลต่างกัน • โดยผ่านทางวิว (VIEW) • วิว คือ คำสั่งที่เขียนขึ้นเพื่อกำหนดข้อมูลที่ต้องการดึงออกจากฐานข้อมูลให้ผู้ใช้แต่ละคนดู
2.ระดับแนวคิด (conceptual level) • เป็นระดับของการออกแบบฐานข้อมูล โดยนักออกแบบฐานข้อมูล โดยจะอยู่ในรูปของแผนภาพ • แผนภาพที่ออกแบบมานั้นจะบอกว่า • ฐานข้อมูลประกอบด้วยเอนติตี้อะไรบ้าง • แต่ละเอนติตี้ประกอบด้วยเขตข้อมูล (Filed)ใดมีชนิดข้อมูลเป็นอะไรขนาดเท่าไร • ความสัมพันธ์ระหว่างเอนติตี้เป็นอย่างไร • การกระทำหรือการปฏิบัติการใดๆ ในโปรแกรมจากผู้ใช้งานจะปฏิบัติบนโครงสร้างข้อมูลในระดับนี้เท่านั้น • บุคคลที่สามารถเข้าไปแก้ไขโครงสร้างข้อมูลในระดับนี้ คือ DBA หรือ โปรแกรมเมอร์
3. ระดับภายใน (internal level) หรือ ระดับภายภาพ (Physical Level) • เป็นข้อมูลระดับล่างสุด ใช้ในการอธิบายว่าข้อมูลต่าง ๆ ที่ถูกจัดเก็บจริงๆ ในฐานข้อมูลอย่างไร ข้อมูลเก็บอยู่ในตำแหน่งใดของฮาร์ดดิสก์ • ผู้ใช้งานฐานข้อมูลทั่วไปจะไม่ต้องยุ่งเกี่ยวกับการจัดการข้อมูลในระดับนี้ • ผู้รับผิดชอบคือผู้ออกแบบฐานข้อมูลระดับกายภาพ (Physical Database Designer) เลือกใช้อุปกรณ์ที่ใช้ในการจัดเก็บวิธีเข้าถึงข้อมูลวิธีการบำรุงรักษาและการเพิ่มประสิทธิภาพของฐานข้อมูล
ประโยชน์ของสถาปัตยกรรม 3 ระดับ สถาปัตยกรรมของฐานข้อมูล 3 ระดับ แต่ละระดับจะมี DBMSทำหน้าที่แปลระดับข้อมูล (Mapping) จากระดับหนึ่งเป็นอีกระดับหนึ่ง ซึ่งได้แก่ระดับภายนอกกับระดับตรรกะ และระดับตรรกะกับระดับภายใน การแปลระดับข้อมูล (Mapping) จะทำให้เกิดประโยชน์ด้านต่าง ๆ ดังนี้ • ด้านมุมมองของผู้ใช้งาน • ด้านความเป็นอิสระกันของข้อมูล
ประโยชน์ของสถาปัตยกรรม 3 ระดับ มุมมองข้อมูลของผู้ใช้งาน (View of End User) • - ระดับภายนอกกับระดับตรรกะ (External/Conceptual Mapping) ทำให้ผู้ใช้ฐานข้อมูลมีมุมมองที่แตกต่างกันได้ โดย DBMS ทำการแปล (map) ชื่อข้อมูลให้ระดับภายนอกและระดับตรรกะ ให้สามารถเข้าใจว่าคือข้อมูลตัวเดียวกัน • - ระดับตรรกะและภายใน (Conceptual/Internal Mapping) ผู้ใช้ฐานข้อมูลไม่จำเป็นต้องทราบว่าข้อมูลที่ต้องการใช้ถูกจัดเก็บอย่างไรในดิสก์ โดย DBMS จะดูว่าข้อมูลที่ผู้ใช้ต้องการนั้นเก็บ ณ ตำแหน่งใด
ประโยชน์ของสถาปัตยกรรม 3 ระดับ ด้านความเป็นอิสระกันของข้อมูล • - ระดับภายนอกกับระดับตรรกะ(External/Conceptual Mapping) การเปลี่ยนแปลงฐานข้อมูลในระดับตรรกะจะไม่มีผลกระทบต่อโปรแกรมประยุกต์ที่ใช้ในระดับภายนอก เช่น สร้างตารางใหม่ เปลี่ยนชื่อฟิลด์ เปลี่ยนขนาดของฟิวด์ เว้นแต่ ถ้าลบตารางหรือฟิวด์ที่โปรแกรมดึงไปใช้งาน ต้องแก้ในโปรแกรมด้วย • - ระดับตรรกะและภายใน (Conceptual/Internal Mapping) การเปลี่ยนแปลงฐานข้อมูลในระดับภายใน ได้แก่เปลี่ยนแปลงวิธีการจัดเก็บในดิสก์แบบดัชนีเป็นแบบสุ่ม เมื่อมีการสร้างตารางใด ๆ ในระดับตรรกะจะไม่มีผลกระทบหรือไม่ต้องรับรู้การเปลี่ยนแปลงดังกล่าว และไม่มีผลกระทบต่อโปรแกรมประยุกต์ที่เขียนขึ้น
User A User B User C External Conceptual ตารางนักเรียน ตารางอาจารย์ ผู้ใช้ 3 คนเห็นข้อมูลไม่เหมือนกัน
Conceptual Internal Index ภาพที่เรามองการจัดเก็บข้อมูล จะแตกต่างจากวิธีเก็บข้อมูลจริง
Index Conceptual Internal 11 4 X ระดับภายในเป็นระดับที่ใกล้ชิดกับดิสก์มากที่สุด
การเชื่อมโยงข้อมูลแต่ละระดับด้วยการแปลง (Mapping) ระดับภายนอก External/Conceptual Mapping + + ฯลฯ + ระดับตรรกะ Conceptual/Internal Mapping ระดับภายใน จัดเก็บไว้ Database Database