วันพฤหัสบดีที่ 1 มีนาคม พ.ศ. 2555

สรุป OODBMD


         Object-oriented database management system(OODBMS) หรืออีกชื่อย่อหนึ่งว่า database management system (ODBMS)มันก็คือระบบจัดการฐานข้อมูล(DBMS) ประเภทหนึ่งที่ออกแบบมาเพื่อกำจัดของระบบ RDBMS สามารถรองรับการจัดเก็บข้อมูลที่มีความซับซ้อนและมีขนาดของข้อมูลขนาดใหญ่ ซึ่งOODBMS มีความเหมาะสมกับข้อมูลที่มีขนาดใหญ่ เช่นMultimedia หรือมีความซับซ้อน ส่วนในคุณสมบัติของ OODBMSนั้นมีคุณสมบัติที่โดดเด่นหลายประการ เช่น การใช้ภาษาการเขียนโปรแกรมเชิงวัตถุ (OO) ซึ่งเป็นแนวคิดที่เป็นธรรมชาติและมีความใกล้เคียงกับมนุษย์มากขึ้น นอกจากนี้ยังมีความสามารถในการเก็บข้อมูลสมัยใหม่และผู้ใช้งานยังเป็นผู้กำหนดวิธีการเข้าถึงข้อมูลได้ แต่ข้อเสียยังติดอยู่ที่ว่ายังไม่มีการกำหนดมาตรฐาน เพราะในขณะนี้ยังอยู่ระหว่างการพัฒนา

ส่วนเมื่อกล่าวถึงObject-orientedนั้นมีคุณสมบัติที่สำคัญอยู่ 4 ประการคือ
                -Inheritances หรือ การสืบทอดคลาส
                -Data encapsulation หรือการป้องกันข้อมูล
                - Object identity
                - Polymorphism และ  Dynamic binding  

คุณสมบัติของ ODBMS เมื่อเปรียบเทียบกับ RDBMSคือ RDBMSเหมาะสำหรับการเก็บข้อมูลที่เป็น scalar ส่วน ODBMS จะมี model ที่ซับซ้อน แต่ ODBMS และ RDBMS สามารถใช้งานร่วมกันได้ และมักจะพบว่าจะถูกใช้งานควบคู่กันไป

โครงสร้างฐานข้อมูลเชิงวัตถุ มีแนวคิดมาจากการเขียนโปรแกรมในรูปแบบ Object –oriented Programming มีหลักการสำคัญคือ
-ออบเจ็กต์ (object)
-คลาส (class)
-การห่อหุ้ม (Encapsulation) 
-ภาวะพหุสัณฐาน (Polymorphism)
-การสืบทอด (Inheritance)

วิธีการแปลงจาก Object ไปเป็น Relation การแปลงข้อมูลจาก Object ไปเป็นข้อมูลตารางหรือ RDBMS เราต้องทำการแปลงObject ไปเป็นข้อมูลในตารางเอง หรือ ไม่ก็ต้องใช้ ไลบรารีจำพวก Object-relational mapping และอย่างไรก็ตามในการจัดเก็บข้อมูลแบบ object ลงในฐานข้อมูลแบบ relational โดยตรง เราจะต้องแก้ปัญญาเรื่องช่องว่างระหว่างobject-relational แต่อย่างไรก็ตามปัญหานี้หาสามารถแก้ไขได้ด้วยการใช้สิ่งที่เรียกว่า “Object-relational mapping”

                ประโยชน์ของ OODBMS (Object-Oriented Database Management system) เมื่อเทียบกับ RDBMS (relational database management system) OODBMS เป็นคลาสที่มีขนาดใหญ่สามารถเก็บข้อมูลขนาดกลางหลายอย่างซึ่งทำให้สามารถเก็บข้อมูลขนาดกลางได้มากยิ่งขึ้นไปอีก ซึ่งหมายความว่า OODBMS มีความสามารถในการจัดการกับข้อมูลที่ซับซ้อนเมื่อเทียบกับ RDBMS และนอกจาก
ODBMSจะมีข้อมูลที่มีความซับซ้อนแล้ว ODBMS จะแสดงผลได้เร็วกว่า RDBMS มาก ๆ และODBMS ยังมีการเขียนโค้ดของโปรแกรมจะน้อยลงกว่าการใช้ RDBMS อีกด้วย

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

  
บทบาทของ ODBMS ในยุคของ internet คือ ODBMS สามารถจัดการกับข้อมูลที่มีความซับซ้อนได้ดี และยังมีคุณสมบัติในการเก็บข้อมูลของ ODBMS ยังทำให้มันเป็น proxy sever ที่ดีเยี่ยม ซึ่ง sever เหล่านี้มักจะ behind a firewall เพื่อที่จะเก็บข้อมูลต่าง ๆ ที่ถูกเรียกใช้บ่อย ๆ ให้สามารถแสดงผลได้เร็วขึ้นลด ปัญหาการจราจรผ่าน gateway   ถึงแม้ Object-oriented programming จะกลายเป็นมาตรฐานในการพัฒนาโปรแกรม แต่ Object Database ยังคงไม่ได้รับการยอมรับเท่าที่ควร ปัจจุบันนี้การจัดการข้อมูลแบบใหม่มีความต้องการวิธีของ Object-oriented มากขึ้นทำให้ความสัมพันธ์ระหว่าง data management และ internet มีมากขึ้นตามไปด้วย.




แหล่งที่มาของข้อมูลทั้งหมด

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

http://www.geocities.ws/ch_schneide/ODBMS.htm



บทบาทของ ODBMS ในยุคของ internet



ในปัจจุบันอินเตอร์เน็ตเป็นสิ่งสำคัญสำหรับการติดต่อ ค้นหาข้อมูลรวมไปถึงการจัดการเกี่ยวกับข้อมูล  ODBMS จึงเข้ามามีความสัมพันธ์ระหว่าง Object, Internet, data management ความสัมพันธ์นี้เป็นตัวของการเปลี่ยนแปลงของการจัดการข้อมูล  การที่ ODBMS เข้ามามีบทบาทต่อ internet  เกิดจากความยุ่งยากของการจัดการข้อมูลต่างที่อยู่บน internet เพิ่มมากขึ้นซึ่ง RDBMS ไม่สามารถจัดการเกี่ยวกับฐานข้อมูลนั้นได้ทำให้ ODBMS เข้ามามีบทบาท เพราะ ODBMS สามารถจัดการกับข้อมูลที่มีความซับซ้อนได้ดี และยังมีคุณสมบัติในการเก็บข้อมูลของ ODBMS ยังทำให้มันเป็น proxy sever ที่ดีเยี่ยม ซึ่ง sever เหล่านี้มักจะ behind a firewall เพื่อที่จะเก็บข้อมูลต่าง ๆ ที่ถูกเรียกใช้บ่อย ๆ ให้สามารถแสดงผลได้เร็วขึ้น ลดปัญหาการจราจรผ่าน gateway   ถึงแม้ Object-oriented programming จะกลายเป็นมาตรฐานในการพัฒนาโปรแกรม แต่ Object Database ยังคงไม่ได้รับการยอมรับเท่าที่ควร ปัจจุบันนี้การจัดการข้อมูลแบบใหม่มีความต้องการวิธีของ Object-oriented มากขึ้นทำให้ความสัมพันธ์ระหว่าง data management และ internet มีมากขึ้นตามไปด้วย ทั้งนี้ มีสาเหตุมาจาก  เอกสาร ข้อมูลต่าง ๆ จะสามารถแสดงได้อย่างมีประสิทธิภาพมากกว่าถ้าเก็บไว้ใน HTML pages (หรือรูปแบบการเก็บเอกสารอื่น ๆ) ใน DBMS
ยกตัวอย่าง ODBMS ที่เกี่ยวกับ INTERNET คือ E- commerce คือแหล่งรวมข่าวสาร ในปัจจุบันมักจะเห็นเป็น WEB PAGE ที่มีการติดต่อกันเช่นเดียวกับร้านค้าออนไลน์ที่มีรูปของผลิตภัณฑ์และวิธีการสั่งซื้อ เช่นหากเราต้องการคอมพิวเตอร์เราสามารถหาข้อมูลจาก web site ข้อมูลต่างๆจะแสดงขึ้นมาก   ODBMS เป็นส่วนประกอบสำคัญที่จะทำให้เกิดสิ่งเหล่านี้  การจัดการ objectและความสัมพันธ์ระหว่าง object ที่ ODBMS ทำได้อย่างดีเยี่ยม ทำให้ complex interaction ระหว่าง object เป็นจุดเด่นของ ODBMS ซึ่งข้อมูลใน internet นั้นมีทั้ง complex data และ data complexity  แต่ ODBMS ยังไม่ได้รับความสนใจจากลูกค้า เพราะยากต่อการใช้งาน และผู้ที่มีความรู้เกี่ยวกับ ODBMS ยังมีอยู่น้อย แต่แนวคิดนี้ก็กำลังได้รับความนิยมขึ้นเรื่อยเพราะเกิดจากการเจริญเติบโตของ Internet

ข้อดีและข้อเสียของ OODBMS


ข้อดีของ OODBMS 


1. ODBMS จัดการความสัมพันธ์ที่ซับซ้อนโครงสร้างเครือข่ายได้เร็วมากและง่ายกว่าฐานข้อมูลเชิงสัมพันธ์
2. ODBMS จะช่วยประหยัดเวลาในการเขียนโปรแกรม และดึงข้อมูลได้เร็วขึ้น
3. ODBMS มีความยืดหยุ่นในการขยายฐานข้อมูล การปรับปรุงแก้ไขทำได้ง่าย ทำให้การเข้าถึงข้อมูลเป็นไป      ได้ง่ายขึ้น
4. ODBMS ถูกออกแบบมาเพื่อจัดการกับการกระจายข้อมูล
5. ODBMS การเขียนโปรแกรมจะน้อยกว่าการใช้ RDBMS RDBMS เช่น เมื่อเราใช้ภาษา Java หรือ C++ เราไม่ต้องแปลงภาษาเหล่านี้ให้เป็น database sublanguage อีก เช่น SQL,ODBC หรือ JDBC โครงสร้างข้อมูลที่เราเขียนจะสามารถเก็บใน ODBMS ได้โดยไม่ต้องมีการแปล
6. ODBMS จะแสดงผลได้เร็วกว่า RDBMS ในกรณีที่ข้อมูลมีความซับซ้อน นั่นคือ OODMS เหมาะสมกับการจัดการกับความซับซ้อนของข้อมูลที่เชื่อมโยงกัน มากกว่า ORDBMS เพราะเมื่อข้อมูลถูกอ่านจาก disk แล้วมันจะอยู่ใน format ที่ Java หรือ C++ เข้าใจอยู่แล้วทำให้ไม่ต้องมีการแปลอีก
 
7. คุณสมบัติการสืบทอด Inheritance ทำให้ข้อมูลมีความคงสภาพสูง
8. มีคุณสมบัติในการกลับมาใช้ใหม่
9. การนำเสนอเป็นรูปแบบ Visual ทำให้อธิบายหัวข้อความหมายได้ดี
10. การนำร่องผ่านฐานข้อมูล สามารถทำได้ง่ายขึ้นด้วยวัตถุที่มีตัวเชื่อมโยงไปยังวัตถุอื่นๆภายในฐานข้อมูล
11. เหมาะสำหรับการใช้งานที่ความสัมพันธ์ระหว่างรายการในฐานข้อมูลการดำเนินการที่สำคัญ



ข้อเสียของ OODBMS 


1. ต้องพึ่งพาผู้เชี่ยวชาญโดยเฉพาะ
การที่มีผู้เชี่ยวชาญเฉพาะทางที่เกี่ยวกับระบบ ODBMS จะทำให้การทำงานของระบบมีคุณภาพมากขึ้น มีการทำงานที่ดีขึ้น และถ้าเมื่อเกิดปัญหา ก็จะได้มีผู้เชี่ยวชาญโดยตรงมาแก้ไขปัญหาได้อย่างตรงจุด และจะได้แก้ปัญหาได้อย่างรวดเร็วยิ่งขึ้น

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

3. ขาดบุคลากรที่เชี่ยวชาญ ยังต้องเรียนรู้อีกมาก
ผู้ที่จะมาพัฒนาระบบ ODBMS นี้ ต้องเป็นผู้เชี่ยวชาญที่มีความรู้ความสามารถเกี่ยวกับระบบนี้โดยแท้จริง ดังนั้น ผู้ที่จะมาพัฒนาระบบ ODBMS ต้องเรียนรู้และทำความเข้าใจเกี่ยวกับระบบนี้ให้ดี เพื่อที่จะได้นำมาพัฒนาระบบให้ดีขึ้นกว่าเดิม

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

5. ยังไม่มีมาตรฐานรองรับที่ชัดเจนเมื่อเทียบกับแบบจำลองฐานข้อมูลเชิงสัมพันธ์
อีกทั้งผลิตภัณฑ์ DBMS ที่ใช้งานบนแบบจำลองฐานข้อมูลสัมพันธ์ได้พัฒนาขีดความสามารถด้วยการรวมเทคโนโลยีเชิงวัตถุเข้าไป ที่เรียกว่า Obiect-Relational Database

ประโยชน์ของ OODBMS


ด้วยแนวคิดพื้นฐานที่ว่า  " When you use an ODBMS , the way you use your data is the way you store it . "   สะท้อนให้เห็นประโยชน์ของ ODBMS ในด้านต่าง ๆ ได้อีกดังนี้ 

 ด้านการพัฒนา
การเขียนโค้ดของโปรแกรมจะน้อยลงกว่าการใช้ RDBMS เช่น เมื่อเราใช้ภาษา Java หรือ ภาษา C++ เราไม่ต้องแปลงภาษาเหล่านี้ให้เป็น database sublanguage อีกต่อไป เช่น SQL,ODBC (Open Database Connectivity)หรือ JDBC ( Java DataBase Connectivity )
โครงสร้างข้อมูลที่เราเขียนจะสามารถเก็บใน ODBMS ได้โดยไม่ต้องมีการแปลอีก ซึ่งนั่นเป็นสิ่งที่สำคัญที่ทำให้เราสามารถเก็บข้อมูลที่มีโครงสร้างซับซ้อนสู่ ODBMS ได้โดยตรง 

ด้านการใช้งาน
สำหรับข้อมูลที่มีความซับซ้อนแล้ว ODBMS จะแสดงผลได้เร็วกว่า RDBMS มาก ๆ เพราะเมื่อข้อมูลถูกอ่านจาก disk แล้วมันจะอยู่ใน format ที่ Java หรือ C++ เข้าใจอยู่แล้วทำให้ไม่ต้องมีการแปลอีก ความเข้ากันได้ระหว่างการจำลองข้อมูลเป็น object และเก็บข้อมูลเหล่านั้นลงใน object-oriented database system เป็นสิ่งที่เห็นได้อย่างเด่นชัด ทั้งนี้ความรวดเร็วในการแสดงผลจะขึ้นอยู่กับความซับซ้อนของข้อมูล.

บริษัทพัฒนาซอฟต์แวร์จะเลือกใช้ OODBMS เพราะ
  1.  การใช้ OODBMS จะป้องกันความไม่สอดคล้องกัน: การไม่สอดคล้องกันเป็นปัญหาที่จะประสบกันอยู่เสมอ ในฐานข้อมูลเชิงสัมพันธ์ ระบบ RDBMS มีข้อมูลจำนวนมากที่สูญเสียไปตอนที่ วัตถุมีการถูกเชื่อมกับตาราง

2. ใน OODBMS ข้อมูลจะถูกอธิบายไว้ได้อย่างง่ายดายผ่านลำดับชั้น  ใน RDBMS ผู้ใช้จะต้องเผชิญกับปัญหา ขั้นตอนการระบุระเบียน พวกเขาจะต้องแน่ใจว่าไม่มีสองระเบียนที่มีคีย์หลักเดียวกันมิฉะนั้นอาจจะเกิดปันหาขึ้นได้ นี่คือการป้องกันอย่างสมบูรณ์เมื่อหันมาใช้ OODBMS เนื่องจาก OODBMS จะมี OIDs (Object Identifier) หรือการอ้างอิงข้อมูล ที่เป็นเอกลักษณ์

วิธีการแปลงจาก Object ไปเป็น Relation


วิธีการแปลงจาก Object ไปเป็น Relation

การแปลงข้อมูลจาก Object ไปเป็นข้อมูลตารางหรือ RDBMSมีอยู่ 2 วิธีคือ
-เราต้องทำการแปลง object ไปเป็นข้อมูลในตารางเอง
- ใช้ ไลบรารีจำพวก Object-relational mapping 

Object-relational mapping

          ORM, O/RM, หรือ O/R mapping ย่อมาจาก Object-relational mapping หมายถึง การ map ข้อมูลในตารางข้อมูลของฐานข้อมูลให้อยู่ในรูปของ object-oriented language ซึ่งจะเป็นการสร้าง Database แบบเสมือนขึ้นให้มาอยู่ในรูปlanguage  programming ทำให้ไม่ต้องไปยุ่งกับ SQL Statement

หลักการ map มีรายละเอียดมาก เราไม่ได้ map เพียงตัว object ลงในตารางเท่านั้น เพราะ object เองมีความสัมพันธ์กับ object อื่นเป็นทอดๆไม่ว่าจะเป็นการสืบทอด (inheritance) หรือการรวมตัว (composition) และบางครั้งความสัมพันธ์ก็มีทิศทางด้วย ความสัมพันธ์ระหว่างobjectบางทีก็เป็น
cycle ดังนั้นการจัดเก็บ object หนึ่งตัวลงใน ตาราง อาจะมีผลทำให้ต้องจัดเก็บ object ตัวอื่นๆ
ที่เกี่ยวข้องด้วย เราจึงเรียก object และ object อื่นๆที่เกี่ยวข้องกับ object นี้ว่า object graph 
 และการ map object ลงใน relational database ก็จะกลายเป็น object graph-to-relational table mapping



         การ map object มีหลายวิธี แต่ละวิธีขึ้นอยู่กับว่าต้องการจะ map จากฝั่งไหนไปอีกฝั่งไหน เช่น มองจากการ map object ลงในตารางฐานข้อมูล หรือจะมองจากตารางฐานข้อมูลที่มีอยู่แล้วกลับมาเป็น object ก็ได้ บาง object อาจ map ไปเป็นตารางเดียว บาง object มาจาก class ที่ sub class มาจาก class อื่นอาจถูก map ไปได้หลายๆตาราง 

ข้อดีของ ORM

     จุดประสงค์หลักก้อคือ ลดการ Coding สำหรับนักพัฒนาที่ไม่ชอบไปยุ่งกับ SQL แต่
อย่าทิ้ง SQL ถึงแม้ว่ามันจะมีตัวช่วย เข้ามาก็ตาม

โครงสร้างฐานข้อมูล OODBMS


                  โครงสร้างฐานข้อมูล OODBMS

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

โครงสร้างมีองค์ประกอบดังนี้

- ออบเจ็กต์ (object) เป็นส่วนที่รวมทั้งข้อมูลและคำสั่งในการจัดการข้อมูล
- คลาส (class) เป็นการรวมกลุ่มของ object เข้าด้วยกัน
- เอนทิตี (entity) ได้แก่ วัตถุ สิ่งของ คน สิ่งต่าง ๆ หรือเหตุการณ์ที่ต้องการอธิบาย
- แอตทริบิวต์ (attribute) สิ่งที่อธิบายรายละเอียดของ entity มีลักษณะคล้ายฟิลด์
- เมธอด (method) สิ่งที่อธิบายว่ามีการจัดการข้อมูลอย่างไร



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