การศึกษาระบบฐานข้อมูลเชิงวัตถุสัมพันธ์

The Study of Object-Relational Database System

ปัจจุบันได้มีเทคโนโลยีระบบฐานข้อมูลแบบใหม่ ที่ได้นำแนวความคิด และข้อดีของระบบฐานข้อมูลเชิงสัมพันธ์ (Relational Database System) และระบบฐานข้อมูลเชิงวัตถุ (Object-Oriented Database System) เข้ามาประยุกต์ร่วมกันเป็นระบบฐานข้อมูลเชิงวัตถุสัมพันธ์ (Object-Relational Database System) ซึ่งกำลังได้รับความสนใจ และมีแนวโน้มที่จะได้รับความนิยมอย่างสูงในอนาคต ทำให้บริษัทผู้พัฒนาซอฟท์แวร์ระบบการจัดการฐานข้อมูลหลายแห่ง ได้เพิ่มเติมความสามารถในการจัดการฐานข้อมูลเชิงวัตถุสัมพันธ์นี้ ให้กับผลิตภัณฑ์ของตนเอง โดยอ้างอิงตามมาตรฐาน SQL3 ที่ถูกกำหนดขึ้นโดย สถาบันมาตรฐานแห่งชาติ ของสหรัฐอเมริกา (ANSI : American National Standards Institute) ในบทความฉบับนี้ จะได้อ้างถึงทฤษฏี และสถาปัตยกรรมเบื้องต้นของมาตรฐานระบบฐานข้อมูลเชิงวัตถุสัมพันธ์ พร้อมทั้งทำการศึกษาเปรียบเทียบกับผลิตภัณฑ์ซอฟท์แวร์ระบบการจัดการฐานข้อมูลที่สนับสนุนระบบฐานข้อมูลเชิงวัตถุสัมพันธ์ โดยผู้เขียนได้เลือกผลิตภัณฑ์ของบริษัท Oracle และ Informix ที่ถือว่าเป็นผลิตภัณฑ์ที่ได้รับความนิยมอย่างสูงในตลาดซอฟท์แวร์ ซึ่งผลจากการศึกษาจะสามารถใช้เป็นข้อมูลพื้นฐานในการศึกษาค้นคว้า และอ้างอิงในการพิจารณาเลือกใช้ระบบการจัดการฐานข้อมูลเชิงวัตถุสัมพันธ์ให้หมาะสมกับระบบงานได้ต่อไป

Nowadays, The new database technology, Object-Relational database, is emerged by the combination of Object database and Relational database concepts. This trend is interested by DBMS vendors to improve their own products to support the use of object datatype. Although the ANSI SQL 3 standdard is uncomplete, the improvement of some vendors was based on their own technology. In case of this document, is descriped about the object extension which is major volume of SQL 3 standard and compare its with 2 popular DBMS products, Informix and Oracle. The result of our study will use as the basic information in the technical research or sutably use of DBMS for developing any information system in the future.

 

  1. บทนำ

ปัจจุบัน เทคโนโลยีสารสนเทศได้เข้ามามีบทบาทสำคัญในการดำเนินกิจกรรม และระบบงานต่างๆ ของแต่ละองค์กร ซึ่งการจะทำให้ระบบสาร-สนเทศเหล่านั้นมีประสิทธิภาพเพียงพอที่จะสนับสนุนระบบงานได้ จำเป็นจะต้องมีการจัดการข้อมูลอย่างมีประสิทธิภาพ ด้วยสาเหตุเหล่านี้ จึงเป็นที่มาของการพัฒนาระบบการจัดการฐานข้อมูลขึ้น โดยในอดีตที่ผ่านมา ได้มีการค้นคว้า และพัฒนาระบบฐานข้อมูลขึ้นหลายรูปแบบ และหลายแนวความคิด อย่างไรก็ดี ระบบฐานข้อมูลที่ได้รับความนิยม และแพร่หลายสูงสุดในการใช้งานคือ ระบบฐานข้อมูลเชิงสัมพันธ์ (Relational Database System) เพราะมีความน่าเชื่อถือสูง เนื่องจากทฤษฎีของระบบฐานข้อมูลเชิงสัมพันธ์ สามารถพิสูจน์ และอ้างอิงด้วยทฤษฎีทางคณิตศาสตร์ ในขณะเดียวกันหลักการคิด และมุมมองข้อมูลในรูปแบบเชิงวัตถุ ทำให้การพัฒนาโปรแกรมส่วนใหญ่ในยุคปัจจุบัน ล้วนแต่ยึดหลักการโปรแกรมเชิงวัตถุมากขึ้น จนหลักการดังกล่าวได้เริ่มเข้ามามีบทบาทสำคัญในการพัฒนาระบบฐานข้อมูลเชิงวัตถุ (Object-Oriented Database) ซึ่งจะสามารถรองรับการใช้งานข้อมูลที่มีความซับซ้อนได้มากกว่าฐานข้อมูลเชิงสัมพันธ์ อย่างไรก็ดีเนื่องจากจากระบบงานเก่าขององค์กรต่างๆ ที่ได้พัฒนามาแล้วส่วนใหญ่ จะใช้ระบบฐานข้อมูลเชิงสัมพันธ์เป็นหลัก ทำให้การพัฒนาโปรแกรมระบบงานของตนด้วยหลักการโปรแกรมเชิงวัตถุนั้นประสบกับปัญหาอย่างมาก จนในที่สุดได้มีผู้เสนอแนวความคิดที่จะประยุกต์ นำเอาข้อดีของหลักแนวคิดเชิงวัตถุ เข้ามาผสมผสานกับระบบฐานข้อมูลเชิงสัมพันธ์ เพื่อเป็นการตอบสนองความต้องการในการโปรแกรมเชิงวัตถุมากขึ้น ทำให้เกิดแนวคิดของระบบฐานข้อมูลที่เรียกว่า ระบบฐานข้อมูลเชิงวัตถุสัมพันธ์ (Object-Relational Database System) ที่ถือว่าเป็นระบบฐานข้อมูลแบบใหม่ และยังอยู่ในระหว่างการดำเนินการกำหนดมาตรฐานดังกล่าวโดย ANSI ซึ่งมาตรฐานดังกล่าวใช้ชื่อว่า มาตรฐาน SQL 3 อย่างไรก็ดี ก่อนที่มาตรฐาน SQL 3 ดังกล่าวจะเสร็จสมบูรณ์ ได้มีบริษัทผู้ผลิตซอฟท์แวร์ระบบการจัดการฐานข้อมูลส่วนหนึ่ง ที่เห็นความสำคัญของแนวความคิดดังกล่าว ได้ทำการพัฒนา และเพิ่มเติมความสามารถในการจัดการข้อมูลเชิงวัตถุ ให้แก่ผลิตภัณฑ์ของตน โดยได้กำหนดมาตรฐานบางส่วนขึ้นมาเอง ซึ่งบทความฉบับนี้จะได้อธิบายถึงหลักการ และพื้นฐานสถาปัตยกรรมของระบบฐานข้อมูลเชิงวัตถุสัมพันธ์ พร้อมทั้งได้เลือกผลิตภัณฑ์ซอฟท์แวร์ระบบการจัดการฐานข้อมูล ที่สนับสนุนระบบฐานข้อมูลเชิงวัตถุสัมพันธ์ อันได้แก่ Oracle และ Informix ซึ่งถือว่าเป็นผลิตภัณฑ์ที่ได้รับความนิยมอย่างสูง มาเปรียบเทียบ เพื่อชี้ให้เห็นถึงเทคโนโลยีของระบบฐานข้อมูลเชิงวัตถุสัมพันธ์ที่มีอยู่ในปัจจุบัน

2. เปรียบเทียบระบบฐานข้อมูลเชิงสัมพันธ์ และระบบฐานข้อมูลเชิงวัตถุ

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

2.1 ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)

พื้นฐานของเทคโนโลยีระบบฐานข้อมูลเชิงสัมพันธ์ได้เกิดขึ้นจากทฤษฎีทางคณิตศาสตร์ โดย E.F. Codd ซึ่งต่อมาบริษัท IBM และบริษัทต่างๆ ได้นำมาพัฒนาเป็นผลิตภัณฑ์ของตน ในภายหลังได้มีการกำหนดมาตราฐานของระบบฐานข้อมูลเชิงสัมพันธ์ โดยสถาบันมาตรฐานแห่งชาติ ของสหรัฐอเมริกา (ANSI : American National Standards Institute) และรับรองโดย องค์การมาตรฐานนานาชาติ (ISO : International Standards Organization) เรียกว่ามาตรฐาน SQL โดยจะมีหมายเลขเวอร์ชัน ของมาตรฐานกำกับอยู่ด้านท้าย ตัวอย่างเช่น SQL 2 ซึ่งถือว่าเป็นมาตรฐานล่าสุดที่ได้เสร็จสมบูรณ์แล้ว เป็นต้น

2.1.1 โครงสร้างข้อมูล

ถ้ากล่าวโดยสรุปแล้ว โครงสร้างข้อมูลของระบบฐานข้อมูลเชิงสัมพันธ์จะจัดเก็บข้อมูลเป็น Relation ที่สามารถแสดงได้ในรูปแบบของตาราง โดย Row ของตารางหมายถึง Record หรือ Tuple และ Column หมายถึง Attribute หรือ Field สำหรับชนิดข้อมูลในแต่ละ Column จะต้องเหมือนกัน และมีเพียงหนึ่งชนิดเท่านั้น ซึ่งชนิดของข้อมูลดังกล่าวจะมีจำกัด ได้แก่ Character, String, Time, Date, Number (รวมถึง Floating Point) และ Currency (ในระบบฐานข้อมูลเชิงสัมพันธ์ส่วนใหญ่จะมีชนิดข้อมูลมีเพียง 6 ชนิด) โดยที่ข้อมูลที่ถูกจัดเก็บในแต่ละ Field จะมีค่าได้เพียงค่าเดียว (คุณสมบัติ Atomic) สำหรับความสัมพันธ์ หรือ Relationship ระหว่างข้อมูลแต่ละตาราง จะถูกแสดงโดยใช้การจัดเก็บ Primary Key จากอีกตารางหนึ่ง เป็น Foreign Key ในอีกตารางหนึ่ง และต้องสร้างตารางเสริมพิเศษเพื่อจัดการกับความสัมพันธ์ของข้อมูลแบบ Many-to-Many ระหว่างตาราง

2.1.2 ภาษาที่ใช้ในการจัดการฐานข้อมูล

ระบบฐานข้อมูลเชิงสัมพันธ์ใช้ภาษา SQL (ปัจจุบันใช้มาตรฐาน SQL 2 ) สำหรับการทำ Data Definition, Data management, Data Access และ Data Retrieval โดยที่การ Retrieve จะอาศัยค่าของข้อมูลที่ถูกจัดเก็บอยู่ใน Field ของแต่ละ Record และสามารถสนับสนุนการทำ Query ได้ทุกระดับ ตั้งแต่ Query ในตารางข้อมูลง่ายๆจากเพียงตารางเดียว จนถึงแบบที่มีความซับซ้อนจากหลายตาราง ที่ต้องอาศัยการใช้การ Join, การทำ Nesting Query หรือวิธีอื่นๆ

2.1.3 กลไกที่ใช้ในการเข้าถึงข้อมูล

การดำเนินการทั้งหมดในการเข้าถึงข้อมูลจะใช้ค่าของข้อมูลที่ถูกจัดเก็บไว้ใน Field ของแต่ละ Record โดยที่ไม่สามารถสนับสนุนการอ้างอิงจาก Record หนึ่งไปยังอีก Record หนึ่งได้ และผลการปฏิบัติ Query จะเสร็จสิ้นภายใต้การควบคุมของ Cursor ที่คอยอนุญาตให้เกิดการปฏิบัติการต่างๆ กับข้อมูลได้ และได้ครั้งละ 1 Record เท่านั้น ซึ่งกลไกนี้จะใช้ทั้งในการทำ Query หรือการ เปลี่ยนแปลงแก้ไขข้อมูล

2.2 ฐานข้อมูลเชิงวัตถุ (Object-Oriented Database)

ถึงแม้ว่าฐานข้อมูลเชิงวัตถุนี้จะยังไม่มีมาตร-ฐานอย่างเป็นทางการ แต่ในทางปฏิบัติแล้ว บริษัทผู้พัฒนาซอฟท์แวร์ระบบฐานข้อมูลเชิงวัตถุได้อ้างอิงเอามาตรฐานที่ Morgan Kaufmann Publisher ได้ตีพิมพ์ไว้ ซึ่งการจัดทำมาตรฐานนี้ได้รับการสนับสนุนจาก Object Database Management Group (ODMG) มาตรฐานดังกล่าวที่ใช้คือ ODMG-V2.0 โดยที่เนื้อหาของมาตรฐานจะเน้นหนักไปในเรื่องของความสัมพันธ์ระหว่างวัตถุ ที่จะสามารถสนับสนุนการเขียนโปรแกรมด้วยภาษาแบบ Object-Oriented Language ได้ รวมถึงการจัดเก็บวัตถุต่างๆ ในฐานข้อมูล

2.2.1 โครงสร้างข้อมูล

การใช้งานข้อมูลในฐานข้อมูลเชิงวัตถุจะอยู่ในรูปแบบของ Class ซึ่งเป็นแนวความคิดพื้นฐานของทฤษฎีทาง Object-Oriented โดยที่ใน Class จะประกอบด้วย Attribute และ Method รวมไปถึง Integrity Constrain ของ Class นั้นๆ ซึ่งจะมีการกำหนด Object Identifier (OID) เอาไว้ เพื่อแบ่งแยกความแตกต่างระหว่าง Class นอกจากนี้ยังสนับสนุนการทำงานแบบ Encapsulation และ Inheritance ด้วย สำหรับชนิดของข้อมูลนั้นสามารถรองรับชนิดข้อมูลแบบ Abstract Data Type ได้ จากมาตรฐานของ ODMG-V2.0 ได้มีการจำแนกประเภทของวัตถุเป็น 2 ชนิดคือ Object และ Literal รวมไปถึงการแบ่งแยกประเภทคุณลักษณะของวัตถุเอาไว้เป็น 2 ชนิดคือ Operation และ Property

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

2.2.2 ภาษาที่ใช้ในการจัดการฐานข้อมูล

ระบบฐานข้อมูลเชิงวัตถุจะใช้ภาษาสำหรับการโปรแกรมเชิงวัตถุ ทั้งในการจัดการฐานข้อมูล และการพัฒนาโปรแกรม (เช่น C++, SmallTalk, Java) เนื่อง Application Object กับ Stored Object ในระบบฐานข้อมูลชนิดนี้มีความสัมพันธ์กันโดยตรง ดังนั้นการทำ Data Definition, Data Manipulation และ Query จึงสามารถทำได้ด้วยภาษาสำหรับการโปรแกรมเชิงวัตถุดังกล่าว

นอกจากนั้นแล้ว ตามมาตรฐาน ODMG-93 ได้มีการกำหนด Declarative Language ขึ้นมาอีกภาษาหนึ่งคือ OQL (Object Query Language) ซึ่งจะมีความแตกต่างกันออกไปจาก SQL ตามมาตรฐาน SQL 2 เพราะในมาตรฐาน SQL 2 ไม่มีความสามารถในการเข้าถึงข้อมูลแบบวัตถุได้ อย่างไรก็ดีในมาตรฐานใหม่ของ SQL 3 จะได้มีบางส่วนที่จะได้เพิ่มความสามารถเหล่านี้ลงไป ซึ่งผลจากการพัฒนา OQL จะสามารถสร้างความหลากหลายของผลลัพธ์ที่เกิดขึ้นจากการทำ Query ได้ อันได้แก่ ผลลัพธ์ที่อยู่ในรูปของ Atom, Structure, Literal, Object หรือแม้แต่ Set ของ Object

2.2.3 กลไกที่ใช้ในการเข้าถึงข้อมูล

การสร้าง และแก้ไขข้อมูลในระบบฐานข้อมูลเชิงวัตถุจะใช้การเข้าถึงโดยตรงจากภาษาสำหรับการโปรแกรมเชิงวัตถุในลักษณะของ Native Language สำหรับ Object ที่ถูกสร้างขึ้นในระบบฐานข้อมูลเชิงวัตถุนี้จะถูกกำหนด OID ให้โดยอัตโนมัติ และ OID นี้จะ Unique ไปตลอดอายุการใช้งาน Object นั้นๆ นอกจากนี้ในตัว Object แต่ละ Object ยังสามารถจัดเก็บ OID ของ Object ตัวอื่น เพื่อสร้างเป็น Logical Reference ซึ่ง Reference นี้เอง จะเป็นประโยชน์ในการสร้างความสัมพันธ์ระหว่าง Object ที่เกิดขึ้นตามโลกแห่งความเป็นจริงที่สามารถแบ่งตามกฎเกณฑ์ได้ เช่น Bidirectional Relationship, Versioning, Composite Object และ Distribution ในระบบฐานข้อมูลเชิงวัตถุบางระบบจะใช้ OID ในลักษณะทาง Physical ด้วย กล่าวคือ จะทำการแปลงรูปจาก Logical Identifier ให้มาเป็น Pointer เพื่ออ้างอิงในการเข้าถึงข้อมูล เมื่อข้อมูลถูกนำมาเก็บไว้ใน Memory (cached) เพื่อการใช้งานในโปรแกรมเชิงวัตถุที่ถูกสร้างขึ้น โดยที่การแปลง Reference ดังกล่าวมาเป็น Memory Pointer เรียกว่า Pointer Swizzling ซึ่งจะทำให้การใช้เวลาในการเข้าถึงข้อมูลน้อยลง เพราะเป็นการเข้าถึงข้อมูลใน Cache จึงมีความเร็วในการเข้าถึงข้อมูลในระดับของ Memory แทนการใช้การส่ง Message ผ่านไปยัง Server ในระบบเก่า

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

3. ฐานข้อมูลเชิงวัตถุสัมพันธ์ (Object-Relational Database)

เป็นที่ทราบกันดีอยู่แล้วว่าการพัฒนาโปรแกรมในยุคปัจจุบัน มีแนวโน้มไปทางการโปรแกรมเชิงวัตถุมากขึ้น ทำให้เกิดความต้องการในการใช้ข้อมูลที่มีความซับซ้อนมากขึ้นตามไปด้วย ซึ่งระบบฐานข้อมูลเชิงสัมพันธ์แบบเดิมไม่สามารถรองรับได้เต็มที่ จึงได้เกิดแนวคิดที่จะมีการเพิ่มความสามารถในการจัดการข้อมูลในรูปแบบ Object ให้แก่ระบบฐานข้อมูลเชิงสัมพันธ์ ระบบฐานข้อมูลใหม่นี้เรียกว่า ระบบฐานข้อมูลเชิงวัตถุสัมพันธ์ ซึ่งได้รับความสนใจเป็นอย่างมากเป็นอย่างมาก จนทำให้เกิดแนวคิด และวิธีการที่หลากหลายในการพัฒนาระบบฐานข้อมูลเชิงวัตถุสัมพันธ์ขึ้น โดยเฉพาะเมื่อ Michael Stonebraker ได้เขียนหนังสือชื่อ Object-Relational DBMSs, The Next Great Wave. ที่ถูกตีพิมพ์โดยสำนักพิมพ์ Morgan Kaufman และได้ร่วมกับทีมวิจัยของตนพัฒนาระบบฐานข้อมูลเชิงวัตถุสัมพันธ์ตัวอย่างขึ้นชื่อ Postgres ( ซึ่งก็คือ Informix ในปัจจุบัน ) จนทำให้บริษัทผู้ผลิตซอฟท์แวร์ระบบการจัดการฐานข้อมูลอื่นๆ เช่น IBM, Unisys, Oracle และ UniSQL สนใจที่จะนำแนวความคิดดังกล่าวมาพัฒนาซอฟท์แวร์ระบบการจัดการฐานข้อมูลของตน โดยแนวทางในการพัฒนาระบบฐานข้อมูลเชิงวัตถุสัมพันธ์ หรือการเพิ่มความสามารถในการจัดการข้อมูลแบบ Object ให้แก่ระบบฐานข้อมูลเชิงสัมพันธ์ที่เกิดขึ้น สามารถแบ่งเป็นวิธีหลักที่นิยมได้ดังนี้

  • การเพิ่ม Object Extension ให้แก่ระบบฐานข้อมูลเชิงสัมพันธ์ โดยจะเป็นการเพิ่มชนิดข้อมูลที่เป็น Object เข้าไปเป็นส่วนหนึ่งในระบบฐานข้อมูลเชิงสัมพันธ์อย่างแท้จริง
  • การเพิ่ม Object Layer เพื่อครอบระบบฐานข้อมูลเชิงสัมพันธ์เดิมที่มีอยู่ ในรูปแบบของ Add-on facility ของแต่ละผลิตภัณฑ์ เพื่อให้โปรแกรมที่ถูกพัฒนาขึ้นแบบเชิงวัตถุสามารถติดต่อกับระบบฐานข้อมูลเชิงสัมพันธ์ได้โดยตรง
  • การสร้าง Object Gateway สำหรับระบบฐานข้อมูลเชิงสัมพันธ์ เช่นการสร้าง Gateway จากระบบฐานข้อมูลเชิงวัตถุ ไปสู่ระบบฐานข้อมูลเชิงสัมพันธ์

ต่อมาในภายหลัง ANSI จึงได้เริ่มดำเนินการเพื่อเพิ่มมาตรฐานด้าน Object-Oriented ให้แก่มาตรฐาน SQL ที่มีอยู่ โดยการดำเนินการดังกล่าวอยู่ในความรับผิดชอบของทีมพัฒนาชุด X3H2 ของ ANSI ซึ่งได้ใช้วิธีการเพิ่ม Object Extension ให้แก่ระบบฐานข้อมูลเชิงสัมพันธ์โดยตรงเป็นแนวทางในการพัฒนามาตรฐานจาก SQL 2 ไปสู่ SQL 3 ซึ่งถึงแม้ว่าในปัจจุบันมาตรฐานดังกล่าวจะยังไม่เสร็จสมบูรณ์ แต่ก็ได้มีบางส่วนได้เริ่มประกาศเป็นมาตรฐานออกมาแล้ว

3.1 มาตรฐาน SQL 3

เพื่อให้สามารถเปรียบเทียบความแตกต่างของระบบฐานข้อมูล เชิงวัตถุสัมพันธ์ กับระบบฐานข้อมูลเชิงสัมพันธ์ และระบบฐานข้อมูลเชิงวัตถุ จึงได้สรุปคุณสมบัติของระบบฐานข้อมูลเชิงวัตถุสัมพันธ์ (ตามมาตรฐาน SQL 3) ออกเป็น 3 ส่วนดังนี้

3.1.1 โครงสร้างข้อมูล

ดังที่กล่าวมาแล้วว่าการพัฒนามาตรฐาน SQL 3 เพื่อรองรับการใช้งานข้อมูลประเภท Object ของระบบฐานข้อมูลเชิงวัตถุสัมพันธ์ ใช้วิธีการเพิ่ม Object Extension ให้แก่ระบบฐานข้อมูลเชิงสัมพันธ์ ซึ่งการดำเนินการในส่วนนี้ถือเป็นหัวใจของมาตรฐาน SQL 3 โดยการเพิ่ม Object Extension ดังกล่าวคือ การเพิ่มชนิดข้อมูลแบบใหม่ให้แก่ระบบฐานข้อมูลเชิงสัมพันธ์ โดยที่โครงสร้างการจัดเก็บข้อมูลยังถูกแสดงอยู่ในรูปแบบของตารางเช่นเดิม ชนิดข้อมูลแบบใหม่นี้ถูกเรียกว่า Abstract Data Type (ADT) ซึ่งจะมีลักษณะคล้าย Class ในหลักการโปรแกรมเชิงวัตถุ กล่าวคือ ADT จะถูกใช้เพื่อรวมกลุ่มของข้อมูลที่มีความสัมพันธ์กันทั้งในส่วนของคุณสมบัติของข้อมูล และสถานการณ์ที่จะเกิดขึ้นกับข้อมูลเหล่านั้น โดยที่ชนิดข้อมูลแบบ ADT นี้ จะสนับสนุนคุณสมบัติ Encapsulate หรือการมีความสัมพันธ์กับ ADT กลุ่มอื่นในรูปแบบของ Suptype-Supertype ทั้งยังมีคุณสมบัติ Inherit ในการถ่ายทอดคุณสมบัติของ Attribute มาจาก ADT ที่เป็น Supertype ของตนด้วย นอกจากนี้แล้วยังสามารถกำหนด Operation และ Function ที่มีความสัมพันธ์กับข้อมูล เพื่อใช้ในการทำ Index, Store และ Retrieve Record ข้อมูลตามคุณลักษณะพิเศษของข้อมูลแต่ละประเภทได้ เช่น ข้อมูลที่เป็น Multimedia ต่างๆ ที่จะต้องมีวิธีการ Retrieve ที่แตกต่างออกไปจากปกติเป็นต้น ซึ่ง Operation และ Function ของ ADT เหล่านี้สามารถนำมาใช้ ร่วมกับ Search Predicate ในการทำ Query ข้อมูลได้

สำหรับ Type ที่ ADT สนับสนุนมีทั้ง Row Type (หรือชนิดของ Row ที่อยู่ใน Table), Distinct Type (หรือการสร้าง User-Defined Type จาก Type ต่างที่ระบบมีอยู่) และ การสร้าง Type Template ขณะเดียวกันยังมีการเตรียมเครื่องมือภายในระบบเอาไว้สนับสนุนการสร้าง Type ในรูปแบบ Collection Type จำพวก LIST หรือ SET อีกด้วย ซึ่งจะเห็นได้ว่า ADT จะสามารถรองรับการใช้งานข้อมูลที่มีโครงสร้างซับซ้อนมากให่ดีกว่าเดิมได้ เช่น การสร้าง Collection ของ Row ขึ้นมาแทนการทำ Nested Table ที่มีความยุ่งยากเป็นต้น

3.1.2 ภาษาที่ใช้ในการจัดการข้อมูล

เพื่อสนับสนุนการใช้งานข้อมูล ADT ในระบบฐานข้อมูลเชิงวัตถุสัมพันธ์ จึงได้มีการเพิ่มเติมความสามารถในการเข้าถึงข้อมูลดังกล่าวให้แก่ภาษา SQL ซึ่งอาจเรียกส่วนที่เพิ่มเติมใหม่นี้ว่า ObjectSQL ประเด็นสำคัญของส่วนที่เพิ่มเติมใหม่นี้คือการสนับสนุนการใช้งานข้อมูลในรูปแบบ Object ที่รวมการจัดการข้อมูลแบบ Nested Object, set-valued Attribute, ความสามารถในการใช้ Operation หรือ Function ของ Object ร่วมกับ Search Predicate ในการทำ Query กับข้อมูล ADT ได้ โดยยังยึดเอา SQL เป็นภาษาหลักในการทำ Data Definition, Data Manipulation และการทำ Query สำหรับผลของการทำ Query นั้น ข้อมูลจะยังถูกแสดงในรูปแบบของตารางอยู่ อย่างไรก็ดีในอนาคตได้มีการวางแผนที่จะพัฒนามาตรฐานใหม่เป็น SQL 4 ที่สามารถแสดงผลการทำ Query ให้อยู่ในรูปของ Object ด้วยการผสมผสานเทคนิคของ OQL เข้ามา หรือการใช้เทคนิคที่ใกล้เคียง

นอกจากนี้มาตรฐาน SQL 3 ยังมีส่วนของการเพิ่ม Procedural Extension (SQL/PSM) ซึ่งการดำเนินการดังกล่าวได้ครอบคลุมไปถึงการพัฒนารูปแบบคำสั่ง SQL ที่ใช้ในการทำ Stored Procedure และ User-Defined Function เพื่อใช้งานร่วมกับฐานข้อมูลด้วย กล่าวคือ Procedure และ Function เหล่านี้จะสามารถสร้างขึ้นได้จากภาษา SQL เอง ซึ่งมีการพัฒนารูปแบบคำสั่งใหม่ที่ใกล้เคียงกับภาษาสำหรับการโปรแกรมทั่วไปในยุคปัจจุบัน ได้แก่ความสามารถในการใช้คำสั่งเงื่อนไขประเภท IF/THEN/ELSE, การใช้ LOOP แบบ WHILE และ DO/UNTIL หรือการใช้ CASE เป็นต้น ทั้งยังให้ Programmer สามารถสร้าง Function Library ด้วยภาษาอื่นเช่น C, Fortran, COBOL, ADA หรือ PASCAL เป็นต้น เพื่อใช้งานร่วมกับภาษา SQL ที่มีอยู่ได้ ซึ่งจะเพิ่มขีดความสามารถในการทำ Query ได้ดียิ่งขึ้น

อีกส่วนหนึ่งที่มีความสำคัญในมาตรฐาน SQL 3 ก็คือ Relational Extension ซึ่งจะทำให้โปรแกรมเมอร์สามารถสร้าง Recursive Query, สนับสนุน Query Expression ที่สามารถใช้งานแบบ Share กันได้ รวมไปถึงการพัฒนา Cursor และ View ให้ดีขึ้นจากมาตรฐานเดิม ซึ่งจะสามารถสนับสนุนระบบการทำงานแบบ Active Database ในส่วนของการทำ Trigger และ Integrity Constrain ได้

3.1.3 กลไกที่ใช้ในการเข้าถึงข้อมูล

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

4.ระบบฐานข้อมูลเชิงวัตถุสัมพันธ์ในท้องตลาด

ปัจจุบันมีบริษัทผู้ผลิตซอฟท์แวร์ระบบการจัดการฐานข้อมูลจำนวนมากที่หันมาให้ความสนใจกับระบบฐานข้อมูลเชิงวัตถุสัมพันธ์ โดยเฉพาะเมื่อบริษัทที่เป็นผู้นำในกลุ่มได้เริ่มพัฒนาผลิตภัณฑ์ของตน เพื่อการรองรับการใช้งานข้อมูลที่เป็น Object ตามกระแสความนิยมของแนวคิดเชิงวัตถุมากขึ้น ในขณะที่มาตรฐาน SQL 3 ยังไม่เสร็จสมบูรณ์ ทำให้การดำเนินการพัฒนาระบบฐานข้อมูลเชิงวัตถุสัมพันธ์ของแต่ละบริษัทจะมความแตกต่างกันออกไป ซึ่งบางทีอาจทำให้เกิดความสับสนในรูปแบบของเทคโนโลยีของแต่ละผลิตภัณฑ์ ดังนั้นบทความฉบับนี้จึงได้ยกตัวอย่างผลิตภัณฑ์ซอฟท์แวร์ระบบการจัดการฐานข้อมูล ในกลุ่มที่เป็นระบบฐานข้อมูลเชิงวัตถุสัมพันธ์ เพื่อมาศึกษาเปรียบเทียบระหว่างผลิตภัณฑ์ต่างๆ เหล่านั้น กับมาตรฐาน SQL 3 ที่กำหนดขึ้น โดยได้เลือกมาเพียง 2 ผลิตภัณฑ์ คือ Informix และ Oracle ซึ่งถือว่าเป็นซอฟท์แวร์ระบบการจัดการฐานข้อมูล ที่ได้รับความนิยม และการยอมรับอย่างกว้างขวาง ในท้องตลาดผลิตภัณฑ์ซอฟท์แวร์

4.1 ผลิตภัณฑ์ของ Informix

Informix เป็นผลิตภัณฑ์ซอฟท์แวร์ระบบการจัดการฐานข้อมูล ที่ได้รับการพัฒนามาจาก Postgres โดยที่ได้มีการเพิ่มเติมเทคโนโลยีใหม่บางส่วนเข้าไป ได้แก่เทคโนโลยีที่เรียกว่า DataBlade ที่เกิดจากการพัฒนาของบริษัท Montage Software, Inc ซึง DataBlade ของ Informix นี้เองที่เป็นส่วนในการสนับสนุนการทำงานกับข้อมูลที่เป็น Object และเป็นจุดเด่นของผลิตภัณฑ์ของ Informix

4.1.1 Informix DataBlade

DataBlade เป็น Software Module ที่ถูกใส่เข้าไปในระบบเพื่อเพิ่มขีดความสามารถในการปฏิบัติงานของระบบการจัดการฐานข้อมูล ลักษณะของ DataBlade นั้นคล้าย Class Library ของ C++ ที่คอยบริหาร และจัดการ Class ของ Object ต่างๆ ซึ่ง DataBlade นี้ ไม่ได้ใช้เพียงเพื่อดูแลชนิดข้อมูลแบบ Object ที่เกิดขึ้นมาใหม่เท่านั้น หากแต่ยังช่วยทำให้เกิดการเข้าถึงข้อมูลต่างๆ เหล่านั้น ในรูปแบบใหม่ที่ดี และมีประสิทธิภาพกว่าเดิม เนื่องจาก DataBlade ประกอบด้วยส่วนการทำ Datatype Definition ในส่วนของการสร้างโครงสร้างของฐานข้อมูล, การดูแล Method หรือ Operation ของข้อมูลชนิดต่างๆ ว่าจะสามารถประมวลผลได้หรือไม่ และการควบคุมกฎ หรือ Integrity Constrain ของข้อมูลแต่ละชนิด

DataBlade ประกอบขึ้นจาก User-Defined Type (UDT), User-Defined Function (UDF), กระบวนการการเข้าถึงข้อมูล, interface, ตาราง, index และ Client Code ซึ่ง UDT ที่ถูกประกาศขึ้นมาใน DataBlade จะได้รับการดูแลจาก Server เช่นเดียวกับชนิดข้อมูลมาตรฐานที่เป็น Built-in ของระบบเอง ซึ่งการจะสร้าง UDT ขึ้นมานั้นสามารถทำได้จาก ชนิดข้อมูลมาตรฐานของระบบ หรือ UDT อื่นๆ ซึ่งจะมีคุณสมบัติ Inherit ในการถ่ายทอดคุณสมบัติต่างๆจาก ชนิดข้อมูลนั้นได้ สำหรับประเภทของ UDT ใน DataBlade มี 3 ประเภท ได้แก่ Row Type, Distinct Type และ Opaque Type โดยที่ Row Type และ Distinct Type ของ DataBlade นี้มีลักษณะเหมือน ADT ใน SQL 3 ส่วน Opaque Type นั้นเป็นชนิดของ UDT ที่สามารถสร้างขึ้นได้จาก Code ของภาษาการโปรแกรมเชิงวัตถุต่างๆ ได้แก่ C, C++ หรือ Java ในการกำหนดวิธีการ Stored ข้อมูล, การทำ index และ การประมวลผลข้อมูลพิเศษเหล่านั้น ซึ่งจะเห็นได้ว่า Opaque Type นี้เป็นชนิดข้อมูลที่มีความยืดหยุ่นมากที่สุด

ในแต่ละ DataBlade สามารถมีได้หลาย UDF ที่ใช้ในการปฏิบัติงานกับ Datatype นั้น ซึ่ง Function เหล่านี้มักจะถูกสร้างขึ้นทั้งจาก Stored Procedure Language ของ Informix เอง (SPL), C, C++ หรือ Java นอกจากนี้ระบบยังอนุญาตให้ DataBlade ใดๆ สามารถใช้ Service ร่วมกับ DataBlade อื่น เช่นการใช้งาน Function ในการ Search และ Retrieve ข้อมูลได้ ทั้งยังอนุญาตให้ DataBlade มีความสามารถในการทำการ Store และ Manipulate ข้อมูลของตนเองใน ตาราง และ Index ในฐานข้อมูลได้ได้ ดังนั้น DataBlade จึงเป็นปัจจัยสำคัญที่ทำให้การเปลี่ยนแปลง, การบริหาร และการขยายฐานข้อมูลสามารถกระทำได้โดยง่าย และยังสามารถใช้ Operation หรือ Function ของ DataBlade ร่วมกับการใช้ภาษา SQL ตามมาตรฐาน SQL 3 ในการจัดการข้อมูล หรือทำ Query ได้เช่นเดิม

จะเห็นได้ว่า DataBlade ของ Informix นี้มีความคล้ายคลึงกับ ADT ในมาตรฐาน SQL 3 อย่างมาก เพียงแต่มีการเพิ่มเติมรายละเอียดในการทำงาน และทางเทคนิคในการบริหาร และจัดการฐานข้อมูลตามแนวทางของตนเท่านั้น

4.2 ผลิตภัณฑ์ของ Oracle

Oracle เป็นอีกผลิตภัณฑ์หนึ่งที่มีการพัฒนาระบบการจัดการฐานข้อมูลของตนเพื่อรองรับการขยายตัวในการใช้งานที่ซับซ้อนขึ้น โดยเฉพาะข้อมูลแบบ Object ซึ่ง Oracle สนับสนุนการทำงานดังกล่าว โดยการเพิ่มชนิดข้อมูลแบบ Object เข้ามาในระบบฐานข้อมูล Object Type นี้จะใช้ในการกำหนดชนิดของข้อมูลแบบใหม่ที่แตกต่างไปจากเดิมที่มีอยู่ รวมทั้งสามารถสร้าง Method สำหรับการทำงานกับ Object ต่างๆ ที่สร้างขึ้นได้ โดย Collection ของ Object จะสามารถแสดงอยู่ได้ทั้งในรูปของโครงสร้างแบบ Array หรือ Nested Table สำหรับ Object Type ของ Oracle จะสามารถเทียบได้กับ Row Type ของมาตรฐาน SQL 3 กล่าวคือ Object Type นั้นสามารถเป็นได้ทั้งระดับ Column Type และ Table Type โดยที่ Oracle ยังคงใช้ภาษา PL/SQL เป็นที่มีการพัฒนาขึ้นตามมาตรฐาน SQL 3 เป็นภาษาหลักในการจัดการ และทำ Query ข้อมูลอยู่เช่นเดิม

นอกเหนือจากการเพิ่มระบบ Object Type เข้าไปในฐานข้อมูลแล้ว เทคโนโลยีที่สำคัญที่ Oracle พัฒนาขึ้นมารองรับการใช้งานข้อมูลที่มีความซับซ้อนมากขึ้น คือ เทคโนโลยี Data Cartridge

4.2.1 Oracle Data Cartridge

โดยปกติแล้ว ระบบการจัดการฐานข้อมูลจะได้จัดเตรียมบริการต่างๆ เช่น บริการด้าน Storage, บริการการประมวลผล Query, การทำ Index, การทำ Query Optimize เป็นต้น ซึ่งการใช้งานข้อมูลก็มักจะต้องกระทำผ่านบริการต่างๆ เหล่านี้

แต่สำหรับ Oracle 8i ได้มีการสร้างแนวทางในการขยายการใช้งานให้มากขึ้น โดยการใช้ Data Cartridge ที่โปรแกรมเมอร์สามารถสร้างบริการต่างๆ ให้แก่ Data Cartridge นั้นๆ ได้ด้วยตัวเอง โดยเฉพาะกับข้อมูลในรูปแบบพิเศษที่บริการพื้นฐานของระบบไม่สามารถรองรับได้ ตัวอย่างเช่นการสร้าง Data Cartridge สำหรับระบบสารสนเทศภูมิศาสตร์ ซึ่งจะเห็นได้ว่ากระบวนการในการทำ Index หรือการจัดเก็บข้อมูลอาจจะมีความแตกต่างจากรูปแบบข้อมูลเดิมที่มี ดังนั้นจึงจำเป็นจะต้องมีการสร้างกระบวนการทำงานต่างๆ เหล่านั้นขึ้นมาเอง ซึ่งภายใน Data Cartridge นี้จะประกอบด้วย Datatype, Method, Operator และ Index Type รวมเข้าไว้ด้วยกัน สำหรับภาษาการพัฒนา Data Cartridge นั้นสามารถใช้ได้ทั้ง C, C++, PL/SQL หรือ Java ซึ่งหลักการในการพัฒนาเทคโนโลยี Data Cartridge ของ Oracle นั้น ส่วนใหญ่จะยึดตามมาตรฐานของ Object Management Group (OMG) เป็นหลัก

6. สรุป

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

เอกสารอ้างอิง

[1] Abraham Silberschatz, Henry F. Korth, S. Sudarshan. Database System Concepts. McGraw-Hill, 1996.

[2] Jeff Sutherland, Matthew Pope, Ken Rugg. “The Hybrid Object-Relational Architecture (HORA) an Integration of Object-Oriented and Relational Technology”. Proceedings of the 1993 ACM/SIGAPP symposium on Applied computing: states of the art and practice–1993 , 1993, Pages 326 - 333

[3] Jim Melton, Nelson Mendoca Mattos. “An Overview of the Emerging Third-Generation SQL Standard”. Proceedings of the 1995 ACM SIGMOD international conference on Management of data , 1995, Page 468

[4] Steve McClure. “Object Database vs. Object-Relational Database”. IDC Bulletin #14821E –August 1997. International Data Corporation, 1997.

[5] Michael Ubell. “The Montage Extensible DataBlade Architecture”. Proceedings of the 1994 ACM SIGMOD international conference on Management of data , 1994, Page 482

[6] Vishu Krishnamuthy, Sandeepan Banejee, Anil Nori. “Bring Object-Relational to The Mainstream”. Proceedings of the 1999 ACM SIGMOD international conference on Management of data Philadelphia, 1999.

[7] Martin Rennhackkamp. “Extending Relational DBMSs”. DBMS. Miller Freeman,Inc., 1999.

[8] JCC’s SQL Standard Page. http://www.jcc.com.