Home
Education
Classroom
Knowledge
Blog
TV
ธรรมะ
กิจกรรม
โครงการทรูปลูกปัญญา

การโปรแกรมเชิงวัตถุ

Posted By Plookpedia | 21 เม.ย. 60
1,479 Views

  Favorite

การโปรแกรมเชิงวัตถุ 

      เป็นเทคนิคการเขียนโปรแกรมที่ส่งเสริมและสนับสนุนให้การโปรแกรมมีโครงสร้างที่ดีมีความน่าเชื่อถือเป็นแนวความคิดใหม่ในการพัฒนาระบบงานและโปรแกรมคอมพิวเตอร์โดยพิจารณากลุ่มคำสั่งต่าง ๆ เป็นวัตถุและการเขียนโปรแกรมเชิงวัตถุก็ คือ การนำวัตถุต่าง ๆ มาเรียงต่อกันโดยที่ผู้ใช้ไม่ต้องเข้าใจลักษณะภายในของวัตถุนั้น ๆ เพียงแต่ทราบว่าวิธีการที่จะเรียกใช้วัตถุแต่ละชิ้นเป็นอย่างไรก็พอแล้ว เทคโนโลยีนี้กำลังได้รับความนิยมและความสนใจเป็นอย่างมากและคาดว่าจะเป็นแนวทางในการพัฒนาระบบงานคอมพิวเตอร์ในอนาคต
      ภาษาที่สนับสนุนโปรแกรมแบบนี้ ได้แก่ สมอลล์ทอล์ก (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 } เป็นวัตถุของคลาส 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) เป็นต้น
      ระบบจัดการฐานข้อมูลเชิงวัตถุได้รับการพัฒนามากขึ้นเรื่อย ๆ ตัวอย่างของซอฟต์แวร์ในท้องตลาด ได้แก่ โอทู ของบริษัทโอทูเทคโนโลยี (O2 of O2 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) เป็นต้น

เว็บไซต์ทรูปลูกปัญญาดอทคอมเป็นเพียงผู้ให้บริการพื้นที่เผยแพร่ความรู้เพื่อประโยชน์ของสังคม ข้อความและรูปภาพที่ปรากฏในบทความเป็นการเผยแพร่โดยผู้ใช้งาน หากพบเห็นข้อความและรูปภาพที่ไม่เหมาะสมหรือละเมิดลิขสิทธิ์ กรุณาแจ้งผู้ดูแลระบบเพื่อดำเนินการต่อไป
  • Posted By
  • Plookpedia
  • 15 Followers
  • Follow