ความมั่นคงของฐานข้อมูล
ระบบฐานข้อมูลในอนาคตจะเป็นอย่างไร
การรวมกันของข้อมูลทำได้อย่างไร
ความมั่นคงของฐานข้อมูล


[ ขยายดูภาพใหญ่ ]

ข้อมูลที่นำมาจัดเก็บไว้ในระบบฐานข้อมูลนั้น อาจมีระดับของความสำคัญแตกต่างกันไป กลุ่มข้อมูลบางกลุ่มอาจเป็นความลับสุดยอด ห้ามเผยแพร่เด็ดขาด แต่ข้อมูลบางกลุ่มก็เป็นความรู้ทั่วไปที่เปิดเผยได้ ทั้งนี้ขึ้นกับความต้องการของแต่ละองค์กรต่อข้อมูลแต่ละชุด ดังนั้น จึงมีการพัฒนาเทคนิคที่นำมาใช้ในการให้ความมั่นคงและความปลอดภัยแก่ข้อมูลในระบบฐานข้อมูลที่มีผู้ใช้หลาย ๆ คน ระบบจัดการฐานข้อมูลต้องทำหน้าที่ดูแลว่า กลุ่มผู้ใช้กลุ่มใดได้รับอนุญาตให้เข้าใช้ข้อมูลส่วนใดบ้าง ตัวอย่างเช่น ข้อมูลเงินเดือนของพนักงาน ควรจะให้ดูได้เฉพาะผู้บริหารระดับสูง และฝ่าบริหารงานบุคคลบางคนเท่านั้น เป็นต้น

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

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

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


[ ขยายดูภาพใหญ่ ]

แนวทางการพัฒนาของวิทยากรในสาขาระบบฐานข้อมูลมีอยู่หลายทิศทาง แนวทางส่วนใหญ่จะถูกกำหนดขึ้นโดยอาศัยเทคโนโลยีการโปรแกรมเชิงวัตถุ (Object-Oriented Programming Technique) ข้อมูลแบบมัลติมีเดียหรือระบบต่าง ๆ ในเวิลด์ไวด์เว็บ (Word Wide Web) เป็นพื้นฐาน ส่วนทิศทางอื่นก็มักจะเป็นการประยุกต์ใช้งานแบบใหม่ๆ เช่น คลังข้อมูล (Data Warehousing) และเหมืองข้อมูล (Data Mining) เป็นต้น

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

ภาษาที่สนับสนุนโปรแกรมแบบนี้ ได้แก่ สมอลล์ทอล์ก (Smalltalk) ซีพลัสพลัส (C++) จาวา (JAVA) เป็นต้น แนวความคิดในการเขียนโปรแกรมเชิงวัตถุประกอบไปด้วยแนวคิดเกี่ยวกับชนิด (type) คลาส (Class) และวัตถุ (Object) สำหรับชนิด คือ กลุ่มของชนิดข้อมูล ซึ่งชนิดของข้อมูลพื้นฐาน ได้แก่ จำนวนเต็ม จำนวนจริง ค่าตรรกะ (Boolean) และกลุ่มอักษร (Character String) ผู้ใช้สามารถสร้างชนิดของข้อมูลชนิดใหม่ก็ได้ โดยใช้ตัวสร้างชนิด (Type Constructor) ซึ่งชนิดของข้อมูลที่สร้างได้คือ

๑. โครงสร้างแบบระเบียน (Record Structures) กำหนดรายการของชนิดข้อมูลจำนวน n ชนิด ได้แก่ T1,T2,...,Tn พร้อมทั้งระบุชื่อชนิดของข้อมูลแต่ละตัว ผู้ใช้สามารถสร้างชนิดของระเบียน ซึ่งประกอบด้วย n ตัว ได้ โดยองค์ประกอบที่ i เป็นชนิด Ti

๒. ชนิดของข้อมูลแบบกลุ่ม (Collection Types) ถ้าชนิดของข้อมูล T ถูกกำหนดขึ้น ผู้ใช้สามารถสร้างชนิดของข้อมูลชนิดใหม่ได้ โดยการระบุกลุ่มของชนิดข้อมูล T เช่น แถวลำดับ (Array) รายการ (List ) และเซต (Set) เป็นต้น

๓. ชนิดของข้อมูลแบบอ้างอิง (Reference Types) เป็นชนิดของข้อมูลที่อ้างอิงถึงชนิดของข้อมูล T อาจมองง่ายๆ ได้ว่า ชนิดข้อมูลแบบอ้างอิงถึงคือ ตัวชี้ (Pointer) ในภาษาซี และภาษาซีพลัสพลัส นั่นเอง เพียงแต่ว่าในทางระบบฐานข้อมูล ชนิดของข้อมูลแบบนี้จะต้องอ้างถึงหลาย ๆ สิ่ง ไม่ใช่เป็นเพียงแค่ตัวชี้ธรรมดาเท่านั้น นั่นคือ จะต้องอ้างถึงรายละเอียดของการจัดเก็บระเบียนหนึ่งๆ เช่น เลขที่ของจานบันทึก กลุ่มระเบียนภายในจานบันทึกนั้น พร้อมทั้งตำแหน่งภายในกลุ่มระเบียนนั้นด้วย

สำหรับคลาส (Class) คือ กลุ่มของชนิดข้อมูล ซึ่งอาจจะประกอบด้วยฟังก์ชัน หรือกระบวนการ (Procedure) ด้วย ส่วนวัตถุ (Object) ของคลาสหนึ่งๆ จะเป็นค่าชนิดของข้อมูล หรือตัวแปรซึ่งมีค่าเป็นชนิดของข้อมูลนั้น ๆ ก็ได้ เช่น คลาส N เป็นชนิดของกลุ่มข้อมูลจำนวนเต็ม ดังนั้น {1,2,3,4} เป็นวัตถุของคลาส N ขณะที่ตัวแปร n ถูกกำหนดให้เป็นสมาชิกของคลาส N และมีค่าเป็น {1,2,3,4} ก็ได้

ข้อดีของวัตถุต่อระบบฐานข้อมูลมีอยู่หลายประการ ได้แก่
๑. ทำให้เป็นระบบแบบชนิดริช (Rich Type) ซึ่งข้อมูลจะถูกจัดให้อยู่ในแบบที่เป็นธรรมชาติมากขึ้นกว่าที่จัดในแบบจำลองข้อมูลเชิงสัมพันธ์และแบบจำลองข้อมูลอื่นๆ ที่ผ่านมา

๒. ผู้ใช้สามารถนำวัตถุมาใช้ซ้ำก็ได้ หรือ นำมาแบ่งกันใช้ก็ได้ ทำให้สามารถพัฒนาซอฟต์แวร์ต่างๆ ได้มากขึ้นและรวดเร็วขึ้น โดยนำแง่คิดในเรื่องคลาส และลำดับขั้นของคลาสมาใช้

๓. มีการป้องกันการใช้ข้อมูลอย่างไม่ถูกต้องผ่านชนิดข้อมูลนามธรรม (Abstract Data Type) โดยให้ใช้ผ่านฟังก์ชันที่ถูกออกแบบไว้เป็นอย่างดีแล้วเท่านั้น

ฐานข้อมูลเชิงวัตถุได้รับการพัฒนาขึ้นโดยนำเทคโนโลยีการโปรแกรมเชิงวัตถุเข้ามาใช้ ระบบฐานข้อมูลแบบนี้มีความเหมาะสมกับงานฐานข้อมูลที่เก็บข้อมูลซึ่งค่อนข้างซับซ้อนและมีขนาดใหญ่ ตัวอย่างเช่น ฐานข้อมูลเก็บภาพลักษณ์ (Image) หรือภาพกราฟิกส์ (Graphics) ฐานข้อมูลเก็บข้อมูลการทดลองวิทยาศาสตร์ที่ต้องเก็บตัวเลขทศนิยมเป็นจำนวนมาก ฐานข้อมูลของข้อมูลทางภูมิศาสตร์ หรือฐานข้อมูลมัลติมีเดีย เป็นต้น ดังนั้น การโปรแกรมเชิงวัตถุจึงมีความเหมาะสมที่จะนำมาใช้ในการพัฒนาฐานข้อมูลเหล่านี้ เนื่องจากคุณสมบัติต่าง ๆ ของโปรแกรมเชิงวัตถุ เช่น วัตถุ คลาส ตัวสร้างชนิด (Type Constructors) หลักนามธรรมของข้อมูล (Encapsulation) ลำดับชั้นและกรรมพันธ์ของชนิดข้อมูล (Type hierarchies and inheritance) วัตถุที่มีโครงสร้างซับซ้อน (Complex Object) และตัวดำเนินการที่ทำงานได้กับข้อมูลหลายชนิด (Overloading Operator) เป็นต้น

ระบบจัดการฐานข้อมูลเชิงวัตถุได้รับการพัฒนามากขึ้นเรื่อยๆ ตัวอย่างของซอฟต์แวร์ในท้องตลาด ได้แก่ โอทู ของบริษัทโอทูเทคโนโลยี (02 of 02 Technology) อ็อบเจ็กท์สโตร์ ของบริษัทอ็อบเจ็กท์ดีไซน์ (ObjectStore of Object Design) เจ็มสโตน/โอปาล ของบริษัทเซิร์ฟวิโอโลจิก (GEMSTONE/OPAL of ServioLogic) ออนโตส ของบริษัทออนโตโลจิก (ONTOS of Ontologic) อ็อบเจ็กทิวิตี ของบริษัทอ็อบเจ็กทิวิตี (OBJECTIVITY of Objectivity Inc.) และเวอร์เซ็นท์ ของบริษัทเวอร์เซ็นท์เทคโนโลยี (VERSANT of Versant Technology) เป็นต้น นอกจากนี้ยังมีหน่วยงานและมหาวิทยาลัยต่างๆ ที่พัฒนาระบบจัดการฐานข้อมูลเชิงวัตถุ เพื่อการทดลองและการศึกษายู่หลายแห่ง ตัวอย่างเช่น ระบบโอเรียน (Orion) พัฒนาที่หน่วยงานไมโครอิเล็กทรอนิกส์ และเทคโนโลยีคอมพิวเตอร์ (Microeletronics and Computer Technology Corporation) รัฐเท็กซัส ประเทศสหรัฐอเมริกา ซอฟต์แวร์โอเพ็น โอโอดีบี (Open OODB) พัฒนาขึ้นที่บริษัทเท็กซัส ระบบไออาร์ไอเอส (IRIS) พัฒนาขึ้นที่หน่วยปฏิบัติการฮิวเล็ท แพคการ์ด ระบบโอดีอี (ODE) พัฒนาขึ้นที่หน่วยหน่วยปฏิบัติการเอทีแอนที เบลล์ และซอฟต์แวร์เอ็นคอร์/อ็อบเซิร์ฟเวอร์ (ENCORE/ ObServer) พัฒนาขึ้นที่มหาวิทยาลัยบราวน์ เป็นต้น

ระบบฐานข้อมูลเชิงสัมพันธ์ได้รับความนิยมในการใช้งานเป็นอย่างมาก แต่ยังมีข้อจำกัด เมื่อนำไปใช้งานกับข้อมูลที่มีความซับซ้อนมาก จึงได้มีการพัฒนาเทคโนโลยีของแบบจำลองนี้ให้ดีขึ้น โดยนำเทคโนโลยีการโปรแกรมเชิงวัตถุ (Object-Oriented Programming Technique) มาใช้ร่วมด้วย และเรียกระบบฐานข้อมูลแบบใหม่นี้ว่าระบบจัดการฐานข้อมูลเชิงวัตถุ-สัมพันธ์ (Object Relational Database Management System : ORDB) ซึ่งถูกพัฒนาขึ้นมาเพื่อตอบสนองต่อความต้องการของผู้ใช้ ซึ่งต้องการที่จะจัดเก็บข้อมูลที่ซับซ้อนมากยิ่งขึ้น เช่น งานสื่อประสม ข้อมูลทางการแพทย์ [เช่น ฟิล็มเอกซเรย์ (X - rays) ภาพลักษณ์เอ็ม.อาร์.ไอ. (MRI Imaging)] งานแผนที่ ข้อมูลเกี่ยวกับอวกาศ และข้อมูลด้านการเงินซึ่งนับวันจะมีความซับซ้อนขึ้นเป็นอย่างมาก เป็นต้น ผู้ผลิตระบบจัดการฐานข้อมูลเชิงสัมพันธ์ตระหนักดีว่า ลักษณะของข้อมูลที่ผู้ใช้ต้องการจัดเก็บลงในฐานข้อมูลนั้นมีความหลากหลายมาก การพัฒนาระบบให้สามารถทำงานได้กับชนิดของข้อมูลเพิ่มมากขึ้นนั้น เป็นการแก้ปัญหาระยะสั้น เพราะจะมีชนิดของข้อมูลแบบใหม่ๆ เกิดขึ้นมาเรื่อยๆ ดังนั้น วิธีการที่เหมาะสมที่สุดก็คือ พัฒนาระบบจัดการฐานข้อมูลให้มีศักยภาพในการขยายความสามารถในการใช้งานกับชนิดของข้อมูลที่ผู้ใช้ต้องการ ซึ่งการขยายประสิทธิภาพตรงจุดนี้ควรที่จะนำเทคโนโลยีการโปรแกรมเชิงวัตถุมาใช้ด้วยเป็นอย่างยิ่ง เพราะมีข้อได้เปรียบในหลายๆ ประการ ได้แก่ สภาพเป็นส่วนจำเพาะมากยิ่งขึ้น (Greater Modularity) คุณภาพที่ดีขึ้น (Quality) การนำกลับมาใช้ใหม่ได้อีก (Reusability) และการขยายความสามารถได้ (Extensibility) ตัวอย่างของระบบจัดการฐานข้อมูลที่ขยายจากเชิงสัมพันธ์เป็นเชิงวัตถุ-สัมพันธ์ ได้แก่ ดีบีทู รีเลชันนอล เอ็กซ์เท็นเดอรส์ (DB2 Relational Extenders) อินฟอร์มิกซ์ ดาต้าเบลดส์ (Informix DataBlades) และ โอราเคิล คาร์ททริดจ์ (Oracle Cartridges) เป็นต้น
การรวมกันของข้อมูลทำได้อย่างไร

[ ขยายดูภาพใหญ่ ]
เมื่อข้อมูลเข้ามามีบทบาทในการทำงานขององค์กรมากขึ้น จึงมีความจำเป็นในการนำข้อมูลที่มีอยู่มาใช้ในหลายๆ ทาง เพื่อให้เกิดประโยชน์สูงสุด ปัญหาเกิดขึ้นเมื่อองค์กรใหญ่องค์กรหนึ่งๆ ซึ่งประกอบไปด้วยหลายๆ แผนกแต่ละแผนกเก็บข้อมูลที่เกี่ยวข้องกับแผนกของตน ซึ่งอาจใช้ระบบจัดการฐานข้อมูลแตกต่างกันไปโครงสร้างของข้อมูลก็อาจแตกต่างกัน หรือแม้กระทั่งใช้ชื่อเดียวกัน แต่หมายถึงของคนละอย่างหรือของอย่างเดียวกัน แต่ใช้ชื่อเรียกต่างกันในแต่ละแผนก สิ่งเหล่านี้ส่งผลให้การนำข้อมูลของบริษัทมาใช้โดยรวมต้องมีการจัดสร้างคลังข้อมูล (Data Warehousing) ขึ้นมา เพื่อที่จะทำสำเนาข้อมูลจากฐานข้อมูลของแต่ละแผนก และมีการเปลี่ยนแปลงที่เหมาะสม และถูกต้องมาใช้พัฒนาสร้างฐานข้อมูลของส่วนกลางขึ้น ซึ่งคลังข้อมูลนี้จะมีการปรับปรุงตามฐานข้อมูลย่อยของแต่ละแผนก แต่อาจไม่จำเป็นที่จะต้องปรับทันทีทันใดที่ข้อมูลถูกเปลี่ยนแปลง อาจจะแก้ไขข้อมูลทุกๆ คืน ซึ่งเป็นช่วงเวลาที่ไม่ค่อยมีการใช้งานฐานข้อมูล โดยคลังข้อมูลนี้ส่งผลให้ข้อมูลโดยรวมของบริษัทมีโครงสร้างเดียวกัน ทำให้นำมาใช้ในการโฆษณาประชาสัมพันธ์ หรือประเมินผลงานของแต่ละแผนกได้อย่างมีประสิทธิภาพ และส่งผลให้การวางแผนและวิเคราะห์งานดีขึ้นอีกด้วย

ส่วนเหมืองข้อมูล (Data Mining) เป็นวิธีการค้นหารูปแบบหรือโครงสร้างของข้อมูล ที่ผู้ใช้ไม่สามารถเห็น หรือเข้าใจได้ในทันทีจากข้อมูลที่มีอยู่ หรือกล่าวได้ว่า เป็นเทคนิคเพื่อค้นหาความสัมพันธ์ในข้อมูลที่ผู้ใช้ไม่ทราบมาก่อน เช่น การค้นหารายชื่อกลุ่มลูกค้าที่สนใจสินค้าประเภทเดียวกัน จากฐานข้อมูลลูกค้าและการสั่งซื้อของเป็นต้น ทั้งนี้ เพื่อนำไปใช้ในการตัดสินใจ เพื่อให้เกิดประโยชน์ต่อการเพิ่มประสิทธิภาพการใช้งานข้อมูลกลุ่มนั้น ๆ เทคโนโลยีที่นำมาใช้ในเหมืองข้อมูลมีมากมาย เช่น ระบบฐานข้อมูลการรู้จำรูปแบบข้อมูล โครงข่ายประสาทเทียม (Artificial Neural Networks) ฟัซซี่ลอจิก (Fuzz Logic) ขั้นตอนวิธีทางยีน (Genetic Algorithms) เป็นต้น