|
|
http://www.geocities.com/com2spu/oracle.html |
Welcome http://www. to website Oracle บทที่ 1 รู้จักกับฐานข้อมูล คอมพิวเตอร์เป็นเทคโนโลยีที่ทันสมัย และมีประโยชน์อย่างยิ่งสำหรับทุกองค์กร โดยเฉพาะถ้ากล่าวถึงการจัดเก็บข้อมูลแล้ว คอมพิวเตอร์มีบทบาทที่ทำให้เกิด ความสำเร็จในการดำเนินงานขององค์กรได้อย่างมากมาย การสร้างอินฟอร์เมชั่นจากข้อมูลที่มีอยู่อย่างถูกต้อง การบริหาร และจัดการกับข้อมูลอย่างมีประสิทธิภาพ และรวดเร็ว จะทำให้ได้อินฟอร์เมชั่นที่คุ้มค่าอันเป็นสิ่งสำคัญต่อการดำเนินงาน ดังนั้นองค์กรต่าง ๆ จึงสนใจการจัดเก็บข้อมูลเข้าสู่คอมพิวเตอร์ และการจัดเก็บข้อมูลทั้งหลายเข้าไว้เป็นแหล่งเดียวกันจึงเป็นที่มาของคำว่า ฐานข้อมูล (Database) ความหมายของฐานข้อมูล โดยทั่วไปเมื่อกล่าวถึงฐานข้อมูลจะนึกถึงการจัดเก็บข้อมูล หรือการรวบรวมข้อมูลที่จะใช้ร่วมกันเข้าด้วยกัน โดยเฉพาะเมื่อทำการจัดเก็บฐานข้อมูล ในคอมพิวเตอร์แล้ว ฐานข้อมูลไม่เป็นเพียงแต่แหล่งรวมข้อมูลเท่านั้น แต่ยังเก็บความสัมพันธ์ กฎเกณฑ์ต่าง ๆ รวมทั้งจัดเก็บโครงสร้างของข้อมูล ไว้ด้วย เปรียบเทียบไฟล์ (File) กับฐานข้อมูล (Database) ก่อนที่จะมีซอฟต์แวร์ฐานข้อมูลมาใช้ การจัดเก็บและรวบรวมข้อมูลภายในคอมพิวเตอร์จะถูกบันทึกไว้ในไฟล์หรือเรียกว่าแฟ้มข้อมูล การจัดการ ข้อมูล เช่น เพิ่ม แก้ไข ลบ หรือดึงข้อมูลมาใช้ จะต้องพัฒนาโปรแกรมเพื่อทำงานกับไฟล์ข้อมูลที่อยู่บนดิสก์โดยตรง และซอฟต์แวร์ที่นิยมใช้กันใน รุ่นแรก ๆ คือ COBOL, FORTRAN, BASIC เป็นต้น ส่วนปัจจุบันที่ใช้กัน ได้แก่ PASCAL, VISUAL BASIC เป็นต้น ทางด้านฐานข้อมูลก็มี ซอฟต์แวร์หลายชนิดเช่นกัน อย่างเช่น Oracle, SQL Server, DB2, Informix, Sybase, My SQL, Access เป็นต้น จุดประสงค์ที่เหมือนกัน ของทั้งไฟล์ และฐานข้อมูล คือเพื่อใช้เป็นที่สำหรับจัดเก็บข้อมูล แต่ถ้ามองถึงความแตกต่างแล้ว ไฟล์เองก็มีความแตกต่างจากฐานข้อมูลพอสมควร ดังรายละเอียดต่อไปนี้ การจัดเก็บข้อมูลของไฟล์ และฐานข้อมูล โครงสร้างแบบไฟล์ จะจัดเก็บข้อมูลเป็น เรคอร์ด (record) และ ฟิลด์ (field) ฐานข้อมูล จัดเก็บข้อมูลเป็น เทเบิล (table) แทนที่จะเป็นไฟล์ ส่วนเรคอร์ด และฟิลด์ เรียกชื่อแตกต่างกันไปเป็น แถว (row) และ คอลัมน์ (column) ตามลำดับ นอกจากนี้การจัดเก็บข้อมูลแบบไฟล์จะเห็นไฟล์ข้อมูลนั้นอยู่ในดิสก์โดยตรง โดยลักษณะนี้เรียกว่า physical file ซึ่งแตกต่างจากวิธีเก็บเทเบิลในฐานข้อมูล เพราะเทเบิลคือ logical file ซึ่งเป็นส่วนที่ผู้ใช้งานเข้าถึงและเห็นได้ภายในฐานข้อมูลเท่านั้น แต่จะไม่ เห็นเทเบิลอยู่ในไดเรกทอรี่ใด ๆ บนดิสก์ สำหรับผู้ที่เคยใช้ Access จะเห็นได้ชัดเจน คือ ฐานข้อมูล Access มีไฟล์นามสกุลเป็น .MDB ซึ่งเป็น physical file อยู่ในดิสก์ และเมื่อเปิด Access สามารถสร้างเทเบิลได้หลายเทเบิล ซึ่งเทเบิล คือ logical file ที่จะเห็นเฉพาะตอนเปิด Access เท่านั้น ข้อจำกัดของไฟล์ หลักในการประมวลผลข้อมูลจากไฟล์ไม่ว่าจะเป็นโปรแกรมภาษาใด ๆ ก็ตาม ยังมีข้อจำกัดอยู่มากพอสมควรจนทำให้เป็นจุดด้อยเมื่อเทียบกับ ฐานข้อมูล ซึ่งสรุปได้ดังนี้ 1. ต้องพัฒนาโปรแกรมเพื่อจัดการข้อมูล เนื่องจากการจัดการข้อมูลของไฟล์จะต้องพัฒนาโปรแกรมเสมอ ดังนั้นนอกจากต้องเรียน รู้การใช้คำสั่งของภาษาโปรแกรมนั้นแล้ว การพัฒนาโปรแกรมจะใช้เวลา และความสามารถค่อนข้างมาก การเขียนโปรแกรม สำหรับจัดการไฟล์หนึ่ง ๆ จะต้องประกอบด้วยกลุ่มโปรแกรมที่สร้างโครงสร้างข้อมูล เมื่อสร้างแล้วก็ต้องพัฒนาโปรแกรมต่างหากเพื่อทำหน้าที่เพิ่ม ข้อมูล ลบข้อมูล แก้ไขข้อมูล และออกรายงานด้วย ดังนั้นถ้ามีหลายไฟล์ก็ต้องพัฒนาโปรแกรมมากมาย เพราะแต่ละไฟล์มีโครงสร้างไม่เหมือนกัน นั่นย่อมแสดงว่าต้องเสียเวลาในการโปรแกรมมากทีเดียว 2. โปรแกรมมีความสัมพันธ์ที่ผูกติดอยู่กับโครงสร้างของไฟล์ ทุกโปรแกรมที่ทำงานกับไฟล์จะต้องใส่รายละเอียดโครงสร้างของไฟล์ที่จะเรียก ใช้ไว้ ดังนั้นถ้าปรับเปลี่ยนโครงสร้างไฟล์ย่อมมีผลกระทบต่อโปรแกรม เพราะต้องแก้ไขโครงสร้างที่ระบุไว้ในโปรแกรม แก้ไขคำสั่งต่าง ๆ ที่อ่าน หรือบันทึกข้อมูลด้วย ซึ่งทำให้ต้องคอมไพล์โปรแกรมใหม่ทุกครั้งที่การแก้ไขเกิดขึ้น 3. ความซ้ำซ้อนกันของข้อมูล (Data Redundancy) คือมีข้อมูลฟิลด์เดียวกันอยู่ในหลายไฟล์ ซึ่งเกิดจากไฟล์ไม่สามารถกำหนดสิทธิ์ในการ เข้าถึงข้อมูลบางเรคอร์ด หรือบางฟิลด์ได้ ทำให้ต้องสร้างไฟล์ใหม่ที่มีเฉพาะข้อมูลที่ต้องการเท่านั้น ผลที่ตามมาก็คือ ข้อมูลเดียวกันมีซ้ำซ้อนกัน เวลาแก้ไขข้อมูลก็ต้องแก้ไขให้ครบ ไม่เช่นนั้นก็จะทำให้เกิดความขัดแย้งกันของข้อมูล (Data Inconsistency) จุดเด่นของฐานข้อมูล จากข้อจำกัดและปัญหาของไฟล์ตามที่ได้กล่าวไปแล้ว นับเป็นปัจจัยสำคัญที่ทำให้ผู้ใช้งานหันมาเลือกฐานข้อมูลทั้งนี้เนื่องจากฐานข้อมูลมีจุดเด่น หลายประการ ดังนี้ 1. ลดความซับซ้อนและลดความขัดแย้งของข้อมูล เนื่องจากฐานข้อมูลสามารถสร้าง วิว (View) ซึ่งมีเพียงแต่โครงสร้างที่เลือกข้อมูลแถวใด หรือคอลัมน์ใดจากเทเบิลหลักได้ วิวไม่ได้เก็บข้อมูลจริง เมื่อใดมีการเรียกใช้วิว ระบบก็จะไปนำข้อมูลจริงมาจากเทเบิลหลัก ดังนั้นการทำสำเนา ข้อมูลเป็นหลาย ๆ แบบเพราะสิทธิ์ในการเข้าถึงข้อมูลไม่เท่ากัน ก็ถูกยกเลิกไป เพราะสามารถสร้างเป็นวิวและกำหนดสิทธิ์ผู้ใช้งานเหล่านั้นมาที่วิว แทน ดังนั้นจึงช่วยลดความซ้ำซ้อน และการที่ข้อมูลอยู่ที่เดียวกันจะช่วยลดความขัดแย้งไปด้วย 2. มีกฎเกณฑ์เพื่อควบคุมความถูกต้องของข้อมูล ทำให้ข้อมูลมีความถูกต้องมากขึ้น ฐานข้อมูลมีวิธีกำหนดกฎเกณฑ์เพื่อตรวจสอบ ความถูกต้องของข้อมูล ซึ่งช่วยลดภาระการตรวจสอบข้อมูลโดยผู้ใช้งานออกไปขอยกตัวอย่างกฎเกณฑ์บางประเภท ได้แก่ กฎเกณฑ์เพื่อตรวจสอบ ค่าข้อมูลในคอลัมน์ เช่น กำหนดคอลัมน์เงินเดือนของพนักงานมีค่าไม่เกิน 2 แสนบาท เป็นต้น 3. สามารถใช้ข้อมูลพร้อมกันได้ หมายถึงผู้ใช้งานสามารถเรียกใช้ หรือจัดการข้อมูลจากฐานข้อมูลในเวลาพร้อม ๆ กันได้ โดยใช้วิธีที่เรียกว่า การควบคุมการเข้าถึงข้อมูลพร้อมกัน (Concurrency Control) ซึ่งช่วยป้องกันไม่ให้แก้ไขข้อมูลซ้อนทับรายการอื่นที่ยังแก้ไขไม่เสร็จ หรือควบคุมไม่ให้มีการนำข้อมูลที่แก้ไขยังไม่เสร็จไปใช้งาน เช่น การสำรองที่นั่งสายการบิน ถ้าที่นั่งยังว่างอยู่ 10 ที่ คนที่หนึ่งส่ง คำสั่งมาสำรอง 8 ที่นั่ง ในระหว่างการสำรองที่มีขั้นตอนต่าง ๆ ยังไม่เสร็จสิ้นนี้ ระบบจะไม่ยอมให้คนอื่นทำการสำรองที่นั่งได้ ทั้งนี้เพื่อให้จำนวนที่นั่งคงเหลือถูกต้องคือ 2 ที่ เท่านั้น 4. ระบบมีความปลอดภัยสูงขึ้น ฐานข้อมูลมีวิธีการในการรักษาความปลอดภัย 2 ชั้น คือ ชั้นแรก ต้องมีรหัสเพื่อล็อกอินเข้าไปใช้งาน ชั้นสอง ควบคุมการเข้าถึงข้อมูลโดยผู้ใช้ต้องได้รับสิทธิ์ในการ เพิ่ม แก้ไข ลบ หรือดึงข้อมูล ซึ่งสามารถกำหนดความปลอดภัยในระดับที่จะให้เข้าถึงข้อมูล ในระดับแถว หรือคอลัมน์ได้ เช่น กำหนดให้ผู้จัดการแผนกบัญชีดึงข้อมูลพนักงานแผนกบัญชีทุกแถว ทุกคอลัมน์ได้ในขณะที่พนักงานอื่น ๆ ใน แผนกบัญชีจะดึงข้อมูลพนักงานแผนกบัญชีทุกแถว แต่ไม่เห็นคอลัมน์เงินเดือน เป็นต้น 5. สามารถทำแบ็กอัปและรีสโตร์ข้อมูลได้ แบ็กอัปในที่นี้จะหมายถึง การใช้ทูลของฐานข้อมูลเพื่อสำรองข้อมูลเช่น สำรองข้อมูลแต่ละเทเบิล หรือสำรองทั้งฐานข้อมูล เป็นต้น ซึ่งแตกต่างจากการแบ็กอัปโดยใช้ทูลของ OS (Operating System) ที่จะต้องแบ็กอัปโดยเลือกจากไฟล์ต่าง ๆ ที่อยู่บนดิสก์ ดังนั้นในแบบของฐานข้อมูลจึงมีประโยชน์เพื่อกู้ข้อมูลที่เสียหายไปบางส่วน เช่น เมื่อเผลอไปลบเทเบิลก็สามารถนำแบ็กอัปที่มีเทเบิลนั้น ๆ มาย้ายกลับ หรือเรียกว่ารีสโตร์ลงในฐานข้อมูลได้ ทำให้สามารถเรียกคืนเฉพาะเทเบิลที่ต้องการได้ (เนื่องจากถ้านำแบ็กอัปของ OS มาลงใหม่ จะไม่ได้คืนเฉพาะเทเบิลเดียว แต่จะเป็นข้อมูลเก่าของฐานข้อมูลทั้งหมด) 6. มีอินเตอร์เฟซ (Interface) หลายแบบ คำว่า อินเตอร์เฟซ ในที่นี้ หมายถึง โปรแกรมที่ใช้เพื่อเชื่อมต่อกับฐานข้อมูลโดยสามารถดึง หรือจัดการกับข้อมูลในฐานข้อมูลได้ อินเตอร์เฟซมี 2 ชนิด แบบแรก คือโปรแกรมที่มากับฐานข้อมูล เช่น SQL * Plus ของ Oracle และ Query Analyzer ของSQL Server แบบสอง คือโปรแกรมภาษาอื่น ๆ ที่เข้าถึงฐานข้อมูลได้ ในปัจจุบันมีอยู่หลายตัว เช่นVisual Basic, Delphi, ASP เป็นต้น โปรแกรมเหล่านี้มีคุณสมบัติพิเศษอีกอย่างหนึ่งที่สามารถเข้าถึงข้อมูลในฐานข้อมูลที่ใช้ซอฟต์แวร์คนละชนิดกัน ดังนั้นเมื่อ ต้องการข้อมูลจากระบบที่ต่างกัน ก็จะพัฒนาโปรแกรมเพื่อดึงดูดข้อมูลเหล่านั้นรวมกันได้ ในขณะที่ถ้าเป็นไฟล์ที่สร้างมาด้วยภาษาที่ต่างกันเช่น Visual Basic กับ Pascal จะไม่มีโปรแกรมใดสามารถนำข้อมูลจาก 2 ภาษานี้มารวมกันได้เลย 7. ระบบสามารถเปลี่ยนแปลงได้ง่าย เนื่องจากตำแหน่งที่จัดเก็บข้อมูลภายในสื่อคอมพิวเตอร์ และโครงสร้างของเทเบิลในฐานข้อมูลไม่ผูกติด กับคำสั่งที่จะนำข้อมูลไปใช้ ดังนั้นการปรับเปลี่ยนตำแหน่งที่เก็บข้อมูลในสื่อ หรือการแก้ไขโครงสร้างเทเบิลจึงทำได้อย่างอิสระ เพราะไม่มีผลกระทบ ต่อคำสั่ง และโปรแกรมต่าง ๆ ที่เรียกใช้ข้อมูลนั้น ๆ ระบบจัดการฐานข้อมูล (Database Management System หรือ DBMS) ระบบจัดการฐานข้อมูล หรือนิยมเรียกสั้น ๆ ว่า DBMS คือกลุ่มโปรแกรมย่อย ๆ มากมายที่ช่วยให้การทำงานกับฐานข้อมูลสะดวกและง่าย มากขึ้น โดย DBMS จะแฝงการจัดการที่ซับซ้อนไว้เอง ทำให้ผู้ใช้สามารถป้อนคำสั่งแบบง่าย ๆ แทนการต้องเขียนโปรแกรมและคำสั่งทุกอย่าง ด้วยตนเอง ในปัจจุบันมีหลายบริษัทที่พัฒนาซอฟต์แวร์มาเพื่อทำหน้าที่ต่าง ๆ ของ DBMS เช่น บริษัทไมโครซอฟท์ ก็มีซอฟต์แวร์ Access, SQL Server เวอร์ชั่น 7.0,2000 หรือบริษัทออราเคิล ได้แก่ Oracle เวอร์ชั่น 7,8,9 เป็นต้น นอกจากนี้ DBMS จะมีชื่อเรียกแตกต่างกันตาม ชนิดของฐานข้อมูล เช่น ถ้าเป็น DBMS สำหรับฐานข้อมูลเชิงสัมพันธ์จะเรียก RDBMS (Relational Database Management System) สำหรับฐานข้อมูลแบบกระจาย จะเรียก DDBMS (Distributed Database Management System)
|