กลับไปหน้าบทความ

อ่าน 5 นาที

ฐานข้อมูลแบบเอกสาร

ฐาน ข้อมูลเชิงเอกสาร หรือ ที่เก็บเอกสาร คือ โปรแกรมคอมพิวเตอร์ และระบบจัดเก็บข้อมูลที่ออกแบบมาเพื่อจัดเก็บ เรียกค้น และจัดการข้อมูลเชิงเอกสาร หรือที่รู้จักกันในชื่อข้อมูล...

ฐานข้อมูลแบบเอกสาร

ฐานข้อมูลเชิงเอกสารหรือที่เก็บเอกสารคือโปรแกรมคอมพิวเตอร์และระบบจัดเก็บข้อมูลที่ออกแบบมาเพื่อจัดเก็บ เรียกค้น และจัดการข้อมูลเชิงเอกสาร หรือที่รู้จักกันในชื่อข้อมูลกึ่งโครงสร้าง[ 1 ]

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

ฐานข้อมูลแบบเอกสารเป็นส่วนขยายเชิงแนวคิดของที่เก็บข้อมูลแบบคีย์-ค่าซึ่งเป็นฐานข้อมูล NoSQL อีกประเภทหนึ่ง ในที่เก็บข้อมูลแบบคีย์-ค่า ข้อมูลจะถูกมองว่าไม่โปร่งใสโดยฐานข้อมูล ในขณะที่ระบบแบบเอกสารใช้ประโยชน์จากโครงสร้างภายในของเอกสารเพื่อดึงข้อมูลเมตาและเพิ่มประสิทธิภาพการจัดเก็บและการสืบค้น[ 2 ]แม้ว่าในทางปฏิบัติความแตกต่างอาจมีน้อยมากเนื่องจากเครื่องมือที่ทันสมัย ​​แต่ที่เก็บข้อมูลแบบเอกสารได้รับการออกแบบมาเพื่อให้ประสบการณ์การเขียนโปรแกรมที่ดียิ่งขึ้นด้วยเทคนิคการเขียนโปรแกรมที่ทันสมัย​​[หมายเหตุ 1 ]

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

เอกสาร

แนวคิดหลักของฐานข้อมูลแบบเน้นเอกสารคือแนวคิดของเอกสารแม้ว่าการใช้งานจะแตกต่างกันในคำจำกัดความเฉพาะ แต่โดยทั่วไปแล้วฐานข้อมูลแบบเน้นเอกสารจะถือว่าเอกสารเป็นหน่วยที่ครบถ้วนในตัวเองซึ่งห่อหุ้มและเข้ารหัสข้อมูลในรูปแบบมาตรฐาน[ 2 ] [ 3 ]รูปแบบการเข้ารหัสทั่วไป ได้แก่XML , YAML , JSON รวมถึงการแสดง แบบไบนารี เช่นBSON [ 4 ]

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

{ชื่อจริง: "บ็อบ"นามสกุล: "สมิธ""ที่อยู่" : {ประเภท: "หน้าหลัก""street1" : "5 Oak St." ,"เมือง" : "เด็กผู้ชาย" ,"รัฐ" : "AR" ,รหัสไปรษณีย์: 32225ประเทศ: สหรัฐอเมริกา},งานอดิเรก: การแล่นเรือใบ"โทรศัพท์" : {ประเภท: "เซลล์"หมายเลข: "(555)-123-4567"}}

เอกสารฉบับที่สองอาจถูกเข้ารหัสในรูปแบบ XML ดังนี้:

<contact> <firstname> Bob </firstname> <lastname> Smith </lastname> <phone type= "Cell" > (123) 555-0178 </phone> <phone type= "Work" > (890) 555-0133 </phone> <address> <type> Home </type> <street1> 123 Back St. </street1> <city> Boys </city> <state> AR </state> <zip> 32225 </zip> <country> US </country> </address> </contact>

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

ฐานข้อมูลเอกสารมักรองรับการจัดเก็บข้อมูลเมตา เพิ่มเติม ควบคู่ไปกับเนื้อหาเอกสาร ข้อมูลเมตาดังกล่าวอาจเกี่ยวข้องกับคุณลักษณะขององค์กร ความปลอดภัย การจัดทำดัชนี หรือคุณลักษณะเฉพาะการใช้งานอื่นๆ[ 3 ]

การดำเนินการ CRUD

การดำเนินการหลักที่รองรับโดยฐานข้อมูลเชิงเอกสารสำหรับการจัดการเอกสารนั้นคล้ายคลึงกับการดำเนินการในฐานข้อมูลอื่นๆ แม้ว่าคำศัพท์จะยังไม่ได้รับการกำหนดมาตรฐานอย่างสมบูรณ์ แต่การดำเนินการเหล่านี้โดยทั่วไปถือเป็นการสร้าง อ่าน อัปเดต และลบ ( CRUD ) [ 3 ] [ 4 ]

  • การสร้าง (C): เพิ่มเอกสารใหม่ลงในฐานข้อมูล
  • การเรียกค้นข้อมูล (R): เรียกค้นเอกสารหรือฟิลด์ตามคำค้นหา
  • อัปเดต (U): แก้ไขเนื้อหาของเอกสารที่มีอยู่แล้ว
  • การลบ (D): ลบเอกสารออกจากฐานข้อมูล

กุญแจ

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

การเรียกค้นข้อมูล

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

ฐานข้อมูลแบบเอกสารแตกต่างจากฐานข้อมูลแบบคีย์-ค่าตรงที่ฐานข้อมูลแบบเอกสารใช้ประโยชน์จากโครงสร้างภายในและเมตาเดตาของเอกสารที่จัดเก็บ ในฐานข้อมูลแบบคีย์-ค่าหลายแห่ง ค่าต่างๆ จะถูกมองว่าเป็นข้อมูลที่ไม่โปร่งใสหรือ "กล่องดำ" ซึ่งหมายความว่าระบบฐานข้อมูลจะไม่ตีความโครงสร้างภายในของข้อมูลเหล่านั้น ในทางตรงกันข้าม ฐานข้อมูลแบบเอกสารสามารถจำแนกและตีความเนื้อหาของเอกสารได้ ซึ่งทำให้สามารถค้นหาข้อมูลที่แยกแยะประเภทของข้อมูลได้ เช่น การดึงหมายเลขโทรศัพท์ทั้งหมดที่มี "555" โดยไม่ต้องตรงกับรหัสไปรษณีย์เช่น "55555" [ 3 ] [ 4 ]

การแก้ไข

โดยทั่วไปฐานข้อมูลเอกสารจะมีกลไกสำหรับการอัปเดตหรือแก้ไขเนื้อหาหรือเมตาเดตาของเอกสาร การอัปเดตอาจเกี่ยวข้องกับการแทนที่เอกสารทั้งหมดหรือการแก้ไของค์ประกอบหรือฟิลด์แต่ละรายการภายในเอกสาร[ 4 ]

องค์กร

ระบบฐานข้อมูลเอกสารรองรับวิธีการจัดระเบียบเอกสารที่หลากหลาย รวมถึง:

  • ชุดเอกสาร:กลุ่มของเอกสาร ขึ้นอยู่กับการใช้งาน เอกสารอาจจำเป็นต้องอยู่ในชุดเอกสารเดียวหรืออาจอยู่ในหลายชุดเอกสารก็ได้[ 4 ]
  • แท็กและข้อมูลเมตาที่ไม่ปรากฏให้เห็น:ข้อมูลเพิ่มเติมที่จัดเก็บไว้นอกเนื้อหาหลักของเอกสาร
  • โครงสร้างลำดับชั้นของไดเร็กทอรี:เอกสารที่จัดเรียงในโครงสร้างคล้ายต้นไม้ ซึ่งมักอิงตามเส้นทางหรือ URI

โครงสร้างองค์กรเหล่านี้อาจแตกต่างกันระหว่างการแสดงผลเชิงตรรกะและการแสดงผลเชิงกายภาพ (เช่น บนดิสก์หรือในหน่วยความจำ)

ความสัมพันธ์กับฐานข้อมูลอื่นๆ

ความสัมพันธ์กับร้านค้าที่มีมูลค่าหลัก

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

ความสัมพันธ์กับเครื่องมือค้นหา

ระบบค้นหาและเรียกค้นข้อมูล บาง ระบบ เช่นApache SolrและElasticsearchมีฟังก์ชันการจัดเก็บเอกสารและรองรับการดำเนินการเกี่ยวกับเอกสารขั้นพื้นฐาน ดังนั้น ระบบเหล่านี้จึงอาจตรงตามคำจำกัดความเชิงฟังก์ชันบางประการของฐานข้อมูลแบบเน้นเอกสาร แม้ว่าเป้าหมายหลักในการออกแบบจะแตกต่างกันก็ตาม

ความสัมพันธ์กับฐานข้อมูลเชิงสัมพันธ์

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

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

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

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

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

การนำไปใช้

ชื่อ สำนักพิมพ์ ใบอนุญาต ภาษาที่รองรับ หมายเหตุ API RESTful
แอโรสไปค์แอโรสไปค์AGPLและกรรมสิทธิ์C , C# , Java , Scala , Python , Node.js , PHP , Go , Rust , Spring FrameworkAerospike เป็นฐานข้อมูล NoSQL แบบคีย์-ค่าแบบกระจายที่ปรับให้เหมาะสมกับแฟลชและอยู่ในหน่วยความจำ ซึ่งรองรับโมเดลการจัดเก็บเอกสารด้วย[ 7 ]ใช่[ 8 ]
อัลเลโกรกราฟบริษัท ฟรานซ์ จำกัด กรรมสิทธิ์Java , Python , Common Lisp , Ruby , Scala , C# , Perlแพลตฟอร์มฐานข้อมูลรองรับทั้งโมเดลข้อมูลแบบเอกสารและแบบกราฟในฐานข้อมูลเดียว รองรับJSON , JSON-LD , RDF , การ ค้นหา ข้อความเต็ม, ACID , การยืนยันสองขั้นตอน , การจำลองแบบหลายมาสเตอร์ , PrologและSPARQLใช่[ 9 ]
อารังโกดีบีอารังโกดีบี ใบอนุญาตแหล่งข้อมูลธุรกิจC , C# , Java , Python , Node.js , PHP , Scala , Go , Ruby , Elixirระบบฐานข้อมูลรองรับทั้งโมเดลข้อมูลแบบเอกสาร (document store) รวมถึงโมเดลข้อมูลแบบคีย์/ค่า (key/value) และแบบกราฟ (graph) โดยมีแกนหลักของฐานข้อมูลเพียงแกนเดียวและภาษาการสืบค้นข้อมูลแบบรวมศูนย์ AQL (ArangoDB Query Language) ใช่[ 10 ]
เบสเอ็กซ์ทีมเบสเอ็กซ์ ใบอนุญาต BSDJava , XQueryรองรับรูปแบบ XML, JSON และไบนารี; สถาปัตยกรรมแบบไคลเอ็นต์/เซิร์ฟเวอร์; การค้นหาและการอัปเดตโครงสร้างและข้อความเต็มรูปแบบพร้อมกัน ใช่
แคชบริษัท อินเตอร์ซิสเต็มส์ คอร์ปอเรชั่นกรรมสิทธิ์Java , C# , Node.jsนิยมใช้ในงานด้านสุขภาพ ธุรกิจ และภาครัฐ ใช่
คลาวด์แอนท์บริษัท คลาวด์แอนท์ อิงค์ กรรมสิทธิ์เออร์ลัง , จาวา , สกาลาและซีบริการฐานข้อมูลแบบกระจายศูนย์ที่ใช้BigCouchซึ่งเป็นโครงการโอเพนซอร์สที่บริษัท พัฒนา ต่อ ยอดมา จากCouchDBที่ใช้Apache เป็นฐาน โดยใช้โมเดล JSON ใช่
ฐานข้อมูลคลัสเตอร์พอยต์บริษัท คลัสเตอร์พอยต์ จำกัด เป็นกรรมสิทธิ์พร้อมให้ดาวน์โหลดฟรี JavaScript , SQL , PHP , C# , Java , Python , Node.js , C , C ++ แพลตฟอร์มฐานข้อมูล XML/JSON แบบกระจายศูนย์ที่เน้นเอกสาร พร้อมธุรกรรมที่สอดคล้องกับ ACID ; การจำลองข้อมูลและการแบ่งส่วน ข้อมูล ที่มีความพร้อมใช้งานสูง ; เครื่องมือ ค้นหาข้อความเต็มรูปแบบในตัวพร้อมการจัดอันดับความเกี่ยวข้อง ; ภาษาการสืบค้น JS/SQL ; GIS ; มีให้เลือกใช้งานในรูปแบบฐานข้อมูลแบบจ่ายตามการใช้งานหรือเป็นซอฟต์แวร์ดาวน์โหลดฟรีสำหรับติดตั้งในองค์กร ใช่
เซิร์ฟเวอร์ Couchbaseบริษัท Couchbaseใบอนุญาตแหล่งข้อมูลธุรกิจC , C# , Java , Python , Node.js , PHP , SQL , Go , Spring Framework , LINQฐานข้อมูลเอกสาร NoSQL แบบกระจายศูนย์ ใช้โมเดล JSON และภาษาการสืบค้นข้อมูลแบบ SQL ใช่[ 11 ]
คอชดีบีมูลนิธิซอฟต์แวร์ Apacheใบอนุญาต Apacheภาษาใดก็ได้ที่สามารถทำการร้องขอ HTTP ได้ JSON ผ่าน REST/HTTP พร้อมการควบคุมการทำงานพร้อมกันหลายเวอร์ชันและ คุณสมบัติ ACID ที่จำกัด ใช้mapและreduceสำหรับมุมมองและการสืบค้น[ 12 ]ใช่[ 13 ]
เครทดีบีบริษัท เครท.ไอโอ จำกัด ใบอนุญาต Apacheชวาใช้ไวยากรณ์ SQL ที่คุ้นเคยสำหรับการสืบค้นข้อมูลแบบกระจายแบบเรียลไทม์ทั่วทั้งคลัสเตอร์ โดยอิงตามระบบนิเวศของ Lucene/Elasticsearch พร้อมการสนับสนุนในตัวสำหรับอ็อบเจ็กต์ไบนารี (BLOB) ใช่[ 14 ]
คอสมอส ดีบีไมโครซอฟต์ กรรมสิทธิ์C# , Java , Python , Node.js , JavaScript , SQLบริการแพลตฟอร์มในรูปแบบบริการ (Platform-as-a-Service) ซึ่งเป็นส่วนหนึ่งของ แพลตฟอร์ม Microsoft Azureพัฒนาต่อยอดและขยายขีดความสามารถของ Azure DocumentDB รุ่นก่อนหน้า ใช่
ด็อกเมนต์ดีบีบริการเว็บอเมซอนบริการออนไลน์ ที่เป็นกรรมสิทธิ์ต่างๆ, พักผ่อนบริการฐานข้อมูลที่จัดการอย่างเต็มรูปแบบซึ่งเข้ากันได้กับ MongoDB v3.6 ใช่
ไดนาโมดีบีบริการเว็บอเมซอนกรรมสิทธิ์Java , JavaScript , Node.js , Go , C# .NET , Perl , PHP , Python , Ruby , Rust , Haskell , Erlang , DjangoและGrailsบริการ ฐานข้อมูลNoSQL ที่เป็นกรรมสิทธิ์และจัดการอย่างเต็มรูปแบบซึ่งรองรับ โครงสร้างข้อมูล แบบคีย์-ค่าและเอกสาร ใช่
อีสไทรอัลสเคอเรจเชย์ บานอนได้รับอนุญาตภายใต้ใบอนุญาต Server Side Public Licenseและใบอนุญาต Elastic License สองฉบับชวาJSON , เครื่องมือค้นหา ใช่
มีอยู่มีอยู่ แอลจีพีแอลXQuery , JavaXML ผ่าน REST/HTTP, WebDAV, การค้นหาข้อความเต็มรูปแบบด้วย Lucene, การรองรับข้อมูลไบนารี, การตรวจสอบความถูกต้อง, การกำหนดเวอร์ชัน, การจัดกลุ่ม, ทริกเกอร์, การเขียน URL ใหม่, คอลเลกชัน, ACLS, การอัปเดต XQuery ใช่[ 15 ]
อินฟอร์มิกซ์ไอบีเอ็ม กรรมสิทธิ์โดยมีรุ่นที่ไม่มีค่าใช้จ่าย[ 16 ]หลากหลายรูปแบบ (ใช้งานร่วมกับ MongoDB API ได้) ระบบฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ที่รองรับ JSON, การจำลองข้อมูล, การแบ่งส่วนข้อมูล และการปฏิบัติตามหลัก ACID ใช่
กระต่ายป่ามูลนิธิอาปาเช่ ใบอนุญาต Apacheชวาการใช้งาน Java Content Repository?
HCL Notes ( HCL Domino ) เอชซีแอลกรรมสิทธิ์LotusScript , Java , ภาษาสูตรบันทึก มัลติแวลูใช่
มาร์คลอจิกบริษัท มาร์คล็อก ซอฟต์แวร์กรรมสิทธิ์พร้อมให้นักพัฒนาดาวน์โหลดฟรี Java , JavaScript , Node.js , XQuery , SPARQL , XSLT , C++ฐานข้อมูลแบบกระจายศูนย์ที่เน้นเอกสาร สำหรับข้อมูล JSON, XML และRDF มี ระบบค้นหาข้อความเต็มรูปแบบในตัว, ธุรกรรมACID , ความพร้อมใช้งานสูงและการกู้คืนจากภัยพิบัติ , และความปลอดภัยที่ได้รับการรับรอง ใช่
มงโกดีบีบริษัท มอนโกดีบี อิงค์ ใบอนุญาตสาธารณะฝั่งเซิร์ฟเวอร์สำหรับ DBMS ใบอนุญาต Apache 2สำหรับไดรเวอร์ไคลเอ็นต์[ 17 ]C , C++ , C# , Java , Kotlin , Perl , PHP , Python , Go , Node.js , Ruby , Rust , [ 18 ] Scala , [ 19 ] Swiftฐานข้อมูลเอกสารที่มีการจำลองแบบและการแบ่งส่วนข้อมูล จัดเก็บในรูป แบบ BSON (รูปแบบไบนารีJSON ) ใช่[ 20 ] [ 21 ]
ฐานข้อมูล MUMPS? กรรมสิทธิ์และAGPL [ 22 ]คางทูมนิยมใช้ในงานด้านสุขภาพ ?
ObjectDatabase++ซอฟต์แวร์ Ekky กรรมสิทธิ์C++ , C# , TScriptโครงสร้างคลาสไบนารีเนทีฟ C++ ?
โอเพนลิงก์ เวอร์ทูโอโซซอฟต์แวร์ OpenLink GPLv2และกรรมสิทธิ์C++ , C# , Java , SPARQLมิดเดิลแวร์และเอนจินฐานข้อมูลแบบไฮบริด ใช่
โอเรียนท์ดีบีโอเรียนท์ เทคโนโลยีส์ ใบอนุญาต ApacheชวาJSON ผ่าน HTTP, รองรับ SQL, ธุรกรรม ACIDใช่
ฐานข้อมูล Oracle NoSQLบริษัท ออราเคิล คอร์ป ลิขสิทธิ์ Apacheและกรรมสิทธิ์C, C#, Java, Python, Node.js, Go ฐานข้อมูลแบบไม่มีการแชร์ทรัพยากร สามารถขยายขนาดในแนวนอนได้ รองรับ JSON ที่ไม่มีโครงสร้างข้อมูลตายตัว ตารางที่มีโครงสร้างข้อมูลคงที่ และคู่คีย์/ค่า นอกจากนี้ยังรองรับธุรกรรม ACID ด้วย ใช่
คิวซ์ ควอลคอมกรรมสิทธิ์REST , Java , XQuery , XSLT , C , C++ , Pythonฐานข้อมูล XMLแบบกระจายศูนย์ที่เน้นเอกสารพร้อมระบบค้นหาข้อความเต็มรูป แบบในตัว รองรับJSON , ข้อความ และไบนารี ใช่
เรเวนดีบีบริษัท เรเวนดีบี จำกัด AGPL, เชิงพาณิชย์และฟรี C# , C++ , Java , NodeJS , Python , Ruby , PHPและGoRavenDB เป็นฐานข้อมูลแบบเอกสารเชิงข้ามแพลตฟอร์มแบบโอเพนซอร์สที่เขียนด้วยภาษา C# พัฒนาโดย RavenDB Ltd. รองรับการทำงานบนWindows , Linux , Mac OS , AWS , AzureและGCPใช่
เรดิสเจซอนเรดิสRedis Source Available License (RSAL) ไพธอนJSONพร้อมการค้นหาข้อความเต็มรูป แบบในตัว [ 23 ]ใช่
รีธิงค์บุ๊ก? ใบอนุญาต Apache [ 24 ]C++ , Python , JavaScript , Ruby , Javaฐานข้อมูล JSONแบบกระจายศูนย์ที่เน้นเอกสารพร้อมการจำลองแบบและการแบ่งส่วนข้อมูล เลขที่
SAP HANAเอสพีกรรมสิทธิ์ภาษาที่คล้าย SQLรองรับการทำธุรกรรมACID เฉพาะ ไฟล์ JSONเท่านั้น ใช่
เซดนาsedna.org ใบอนุญาต ApacheC++ , XQueryฐานข้อมูล XMLเลขที่
ซิมเปิลดีบีบริการเว็บอเมซอนบริการออนไลน์ ที่เป็นกรรมสิทธิ์เออร์ลัง?
อะปาเช่ โซลร์มูลนิธิซอฟต์แวร์ Apacheใบอนุญาต Apache [ 25 ]ชวาJSON , CSV , XMLและรูปแบบอื่นๆ อีกเล็กน้อย[ 26 ]เครื่องมือค้นหา ใช่[ 27 ]
เทอร์มินัสดีบีเทอร์มินัสดีบี ใบอนุญาต ApachePython , Node.js , JavaScript ระบบฐานข้อมูลรองรับทั้งรูปแบบข้อมูลเอกสารและกราฟ โดยมีแกนฐานข้อมูลเดียวและภาษาการสอบถามข้อมูลแบบรวมศูนย์ ที่ใช้ Datalogคือ WOQL (Web Object Query Language) [ 28 ]ใช่

การใช้งานฐานข้อมูล XML

ฐานข้อมูล XML ส่วนใหญ่เป็นฐานข้อมูลที่เน้นเอกสารเป็นหลัก

ดูเพิ่มเติม

หมายเหตุ

  1. ^โดยทั่วไปแล้ว ระบบจัดเก็บข้อมูลแบบคีย์-ค่าจะถือว่าค่าที่จัดเก็บไว้เป็นข้อมูลที่ไม่โปร่งใส ในขณะที่ฐานข้อมูลแบบเอกสารได้รับการออกแบบมาเพื่อตีความและสอบถามโครงสร้างภายในของเอกสาร
  2. ^ฐานข้อมูลแบบเอกสารและระบบคีย์-ค่ามักมีฟังก์ชันการทำงานที่คล้ายคลึงกัน อย่างไรก็ตาม เป้าหมายในการออกแบบนั้นแตกต่างกันอย่างมาก

อ่านเพิ่มเติม

  • Arkin, Assaf. (20 กันยายน 2550). "ความสอดคล้องในการอ่าน: ฐานข้อมูลโง่ๆ บริการอัจฉริยะ" Labnotes : อย่าหลงระเริงไปกับความสำเร็จ!เก็บถาวรเมื่อ 27 มีนาคม 2551 ที่ Wayback Machine
  • การจัดอันดับคลังเอกสารตามความนิยมโดย DB-Engine อัปเดตทุกเดือน
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Document-oriented_database&oldid=1352112441 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ฐานข้อมูลแบบเอกสาร

ฐาน ข้อมูลเชิงเอกสาร หรือ ที่เก็บเอกสาร คือ โปรแกรมคอมพิวเตอร์ และระบบจัดเก็บข้อมูลที่ออกแบบมาเพื่อจัดเก็บ เรียกค้น และจัดการข้อมูลเชิงเอกสาร หรือที่รู้จักกันในชื่อข้อมูล...

เอกสาร

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

การดำเนินการ CRUD

การดำเนินการหลักที่รองรับโดยฐานข้อมูลเชิงเอกสารสำหรับการจัดการเอกสารนั้นคล้ายคลึงกับการดำเนินการในฐานข้อมูลอื่นๆ แม้ว่าคำศัพท์จะยังไม่ได้รับการกำหนดมาตรฐานอย่างสมบูรณ์ แต่การดำเนินการเหล่านี้โดยทั่วไปถือเป็นการสร้าง อ่าน อัปเดต และลบ ( CRUD ) [ 3 ] [ 4 ]

กุญแจ

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