Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

คุณสมบัติที่สืบทอดของวัตถุสามารถทำให้เป็นทั่วไป (generalize) ได้หรือไม่?


ตัวระบุวัตถุ (object identifier) สามารถทำให้เป็นทั่วไปได้ดังนี้ ขั้นแรก ตัวระบุวัตถุจะถูกทำให้เป็นทั่วไปเป็นตัวระบุของคลาสย่อย (subclass) ระดับต่ำสุดที่วัตถุเป็นสมาชิก ตัวระบุของคลาสย่อยนี้จึงสามารถทำให้เป็นทั่วไปเป็นตัวระบุคลาส/คลาสย่อยระดับสูงขึ้นได้โดยการขึ้นไปในลำดับชั้นคลาส/คลาสย่อย คลาสหรือคลาสย่อยก็สามารถทำให้เป็นทั่วไปเป็นซูเปอร์คลาส (superclass) ที่สอดคล้องกันได้เช่นกันโดยการขึ้นไปในลำดับชั้นที่เกี่ยวข้อง

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

คุณสมบัติที่สืบทอดของวัตถุสามารถเปลี่ยนแปลงได้โดยการประมวลผลคิวรีในฐานข้อมูลเชิงวัตถุ จากมุมมองการทำให้ข้อมูลเป็นทั่วไป (data generalization) ไม่จำเป็นต้องแยกแยะว่าข้อมูลไหนจัดเก็บอยู่ในคลาสและข้อมูลไหนสืบทอดมาจากซูเปอร์คลาส

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

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

แอตทริบิวต์ของวัตถุอาจประกอบด้วยหรือถูกกำหนดโดยวัตถุอื่น บางแอตทริบิวต์ของมันอาจประกอบด้วยหรือแสดงโดยวัตถุอื่นอีก ทำให้เกิดลำดับชั้นการประกอบคลาส (class composition hierarchy) การทำให้เป็นทั่วไปบนลำดับชั้นการประกอบคลาสสามารถมองได้เป็นการทำให้เป็นทั่วไปของชุดข้อมูลโครงสร้างซ้อนกัน (nested structured data) (ซึ่งอาจเป็นอนันต์ หากการซ้อนเป็นแบบเรียกซ้ำ recursive)

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