เหตุใดจึงไม่ใช้ฐานข้อมูลเชิงวัตถุมากเท่ากับฐานข้อมูลเชิงสัมพันธ์ [ปิด]


18

ฉันเจอระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) มากมาย แต่เมื่อเร็ว ๆ นี้ฉันใช้โหมดไฮเบอร์เนตทำให้ฉันเริ่มสงสัยว่าทำไมฐานข้อมูล Object Oriented จึงไม่เป็นที่นิยม

ถ้าภาษาเชิงวัตถุเช่น Java หรือ C # ได้รับความนิยมดังนั้นทำไมระบบการจัดการฐานข้อมูลเชิงวัตถุ (OODBMS) จึงไม่เป็นที่นิยมเช่นกัน?


1
วิธี "NoSQL" เป็นที่นิยมอย่างมากในขณะนี้ RDBMS มีข้อ จำกัด และ จำกัด และโชคดีที่พวกเขาสูญเสียพื้นที่ของพวกเขาอย่างรวดเร็ว
SK-logic

คุณหมายถึงอะไรในชื่อ oodb hibernate เป็นเพียงเฟรมเวิร์กสำหรับสื่อสารกับ rdbms ด้วยอินเตอร์เฟส oo
Simon Bergot

2
คำถามที่คล้ายกันถูกถามในปี 2009 เกี่ยวกับ SO ดูที่stackoverflow.com/questions/1350044/… IMHO เกือบทุกคำตอบที่ได้รับยังคงใช้ได้ในวันนี้
Doc Brown

@Simon โดย oodb ฉันหมายถึงฐานข้อมูลเชิงวัตถุ

1
@Simon: Versant เป็น oodb (ฉันเคยเห็นในการผลิตในสอง บริษัท ที่แตกต่างกัน)
จอร์โจ

คำตอบ:


11

มีหลายเหตุผล

  1. นักพัฒนาหลายคนมีประสบการณ์ในการสร้างแบบจำลองข้อมูลเชิงสัมพันธ์เท่านั้น ในการใช้ฐานข้อมูล OO พวกเขาจำเป็นต้องเรียนรู้วิธีการสร้างแบบจำลองและคิดเกี่ยวกับข้อมูลที่แตกต่างอย่างสิ้นเชิง นี่อาจเป็นเรื่องยากหรือค่อนข้างเสียเวลา
  2. ฐานข้อมูลเชิงสัมพันธ์มีเวลามากในการเติบโต แม้แต่ฐานข้อมูลเชิงสัมพันธ์ฟรีก็มีเทคนิคการเพิ่มประสิทธิภาพและการทำดัชนีขั้นสูง นอกจากนี้ข้อมูลเชิงสัมพันธ์ยังง่ายต่อการจัดเก็บและจัดทำดัชนี สิ่งเดียวกันไม่สามารถพูดได้เกี่ยวกับฐานข้อมูล OO
  3. เมื่อโมเดลเชิงสัมพันธ์และ OO เริ่มปรากฏ ความสัมพันธ์มีขอบขนาดใหญ่ว่าเป็น "ถูกต้อง" ทางคณิตศาสตร์และมันเป็นมาตรฐานสำหรับการบันทึกและการสืบค้นข้อมูล OO ไม่มีการจัดเรียง
  4. [การเก็งกำไร] ผู้เล่นรายใหญ่หลายคนใส่ทรัพยากรจำนวนมากเพื่อสร้างฐานข้อมูลเชิงสัมพันธ์ มันจะต่อต้านการสนับสนุน OO DB แทน มีหลายคนที่ลงทุนในการรวมหลักการ OO เข้ากับโมเดลเชิงสัมพันธ์ทำให้ฐานข้อมูลปัจจุบันส่วนใหญ่เรียกว่า IMO แบบจำลองเหล่านี้เลวร้ายยิ่งกว่าความสัมพันธ์ที่บริสุทธิ์หรือบริสุทธิ์ OO [/ การเก็งกำไร]
  5. [พูดจาโผงผาง] สิ่งสุดท้ายที่ควรทราบคือนักพัฒนาจำนวนมากไม่เข้าใจวิธี OO ในการสร้างแบบจำลองข้อมูล ซึ่งมักจะส่งผลในรูปแบบที่ไม่ดี บริษัท พัฒนาจำนวนมากที่พึ่งพานักพัฒนาที่มีราคาถูกและไม่มีประสบการณ์ค่อนข้างจะเลือกแบบง่ายเชิงสัมพันธ์ที่สอนในวิทยาลัย CS ทั้งหมดกว่าเลือก OO aproach ที่ยากและไม่ได้รับการพิสูจน์ [/ rant]

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

@Tjaart ทำให้โครงสร้างของคลาสดูเหมือนจะเป็นเรื่องปกติสำหรับนักพัฒนาส่วนใหญ่ใน OO
Bent

10

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

เมื่อ OOP ได้รับความนิยมมีความพยายามบางอย่าง แต่มีปัญหาบางอย่าง ก่อนอื่น OODBMS ที่แท้จริงนั้นยากที่จะนำไปใช้ ในกรณีของฐานข้อมูลเชิงสัมพันธ์ตารางและดัชนีที่เกี่ยวข้องนั้นเป็นโครงสร้างที่ค่อนข้างง่าย (เช่นต้นไม้ B) อีกเหตุผลหนึ่งคือมีทฤษฎีจำนวนมากที่อยู่เบื้องหลังตัวแบบเชิงสัมพันธ์มันมาจากทฤษฎีเซตคณิตศาสตร์โดยตรง มีวิธีที่รู้จักกันในการออกแบบฐานข้อมูลเชิงสัมพันธ์อย่างถูกต้อง และสุดท้าย แต่ไม่ท้ายสุดผู้คนก็คุ้นเคยกับ SQL อยู่แล้ว

โซลูชั่น NoSQL วันที่ทันสมัยในกรณีส่วนใหญ่ไม่ได้จริงๆก้าวไปสู่ ​​OODBMS JOINsหลายของพวกเขายังคงมีความสัมพันธ์ปล้นเพียงหนึ่งเดียวของ มีอยู่ไม่กี่ที่ในความเป็นจริงที่เก็บวัตถุ แต่ไม่ได้เป็น OODBMS อย่างแท้จริงเนื่องจากไม่ทราบถึงความสัมพันธ์ระหว่างวัตถุ

อีกเหตุผลหนึ่งที่ทำให้ไม่มีแรงผลักดันที่รุนแรงสำหรับ OODBMS คือมี "OODBMS ของคนจน" - ORMs สิ่งนี้ได้รับความนิยมอย่างมากเนื่องจากได้รับการสนับสนุนจากเครื่องมือ DB ที่รู้จักกันดีมีเสถียรภาพและผ่านการทดสอบแล้ว แต่ยังให้การแมปกับวัตถุ แน่นอนสิ่งเหล่านี้ไม่ใช่ OODB ที่แท้จริง


"อีกเหตุผลหนึ่งที่ทำไมไม่มีแรงผลักดันที่รุนแรงสำหรับ OODBMS ก็คือมันมีทางออก" OODBMS ของคนจน "- ORMs": จุดดีมาก! +1
Giorgio

ที่ไม่เป็นความจริง. MUMPS ได้รับการออกแบบในปี 1966 และในปี 1974 เท่านั้นโครงการวิจัยแรกเริ่มต้นโดย IBM เพื่อพัฒนา System R ซึ่งเป็น RDBMS แห่งแรกของโลก Oracle เปิดตัว RDBMs เชิงพาณิชย์ระดับแรกของโลกในปี 1979 เท่านั้นในปีเดียวกับที่ InterSystems M เข้ามามีบทบาท คำถามคือสิ่งที่เกิดขึ้นหลังจากนั้น คำตอบอาจเป็นไปได้ว่า ODBMS ไม่ได้รับการปรับให้เหมาะสมสำหรับการรายงานในขณะที่กรณีการใช้งานส่วนใหญ่ของแอปพลิเคชัน LOB มีความไม่สมดุลในการอ่าน - เขียนอย่างหนักต่อการอ่าน
Alexey Zimarev

-2

OODBMS สามารถเก็บข้อมูลที่ซับซ้อนได้ดี อย่างไรก็ตามส่วนใหญ่เวลาที่ใช้ภาษา OO ข้อมูลที่ต้องการนั้นค่อนข้างง่าย ดังนั้น RDBMS แบบดั้งเดิมจึงเหมาะสมกว่า


2
ข้อมูลแทบไม่เคยเรียบง่ายและฉันคิดว่าคุณไม่สามารถอธิบายได้ว่าทำไม OODB จึงไม่ได้รับความนิยมมากขึ้นเพราะหลังจาก ORM ทั้งหมดทำงานได้ดีมาก
Tjaart
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.