อ่าน 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 Framework | Aerospike เป็นฐานข้อมูล 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 ] |
| เบสเอ็กซ์ | ทีมเบสเอ็กซ์ | ใบอนุญาต BSD | Java , 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 , Java | XML ผ่าน 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และGo | RavenDB เป็นฐานข้อมูลแบบเอกสารเชิงข้ามแพลตฟอร์มแบบโอเพนซอร์สที่เขียนด้วยภาษา 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 | ใบอนุญาต Apache | C++ , XQuery | ฐานข้อมูล XML | เลขที่ |
| ซิมเปิลดีบี | บริการเว็บอเมซอน | บริการออนไลน์ ที่เป็นกรรมสิทธิ์ | เออร์ลัง | ? | |
| อะปาเช่ โซลร์ | มูลนิธิซอฟต์แวร์ Apache | ใบอนุญาต Apache [ 25 ] | ชวา | JSON , CSV , XMLและรูปแบบอื่นๆ อีกเล็กน้อย[ 26 ]เครื่องมือค้นหา | ใช่[ 27 ] |
| เทอร์มินัสดีบี | เทอร์มินัสดีบี | ใบอนุญาต Apache | Python , Node.js , JavaScript | ระบบฐานข้อมูลรองรับทั้งรูปแบบข้อมูลเอกสารและกราฟ โดยมีแกนฐานข้อมูลเดียวและภาษาการสอบถามข้อมูลแบบรวมศูนย์ ที่ใช้ Datalogคือ WOQL (Web Object Query Language) [ 28 ] | ใช่ |
การใช้งานฐานข้อมูล XML
ฐานข้อมูล XML ส่วนใหญ่เป็นฐานข้อมูลที่เน้นเอกสารเป็นหลัก
ดูเพิ่มเติม
- ทฤษฎีฐานข้อมูล
- ลำดับชั้นของข้อมูล
- การวิเคราะห์ข้อมูล
- การค้นหาข้อความเต็ม
- ฐานข้อมูลในหน่วยความจำ
- โปรโตคอลการเข้าถึงข้อความทางอินเทอร์เน็ต (IMAP)
- เอกสารที่เครื่องอ่านได้
- ฐานข้อมูลหลายโมเดล
- NoSQL
- ฐานข้อมูลวัตถุ
- ฐานข้อมูลออนไลน์
- ฐานข้อมูลแบบเรียลไทม์
- ฐานข้อมูลเชิงสัมพันธ์
- ระบบจัดการเนื้อหา
หมายเหตุ
- ^โดยทั่วไปแล้ว ระบบจัดเก็บข้อมูลแบบคีย์-ค่าจะถือว่าค่าที่จัดเก็บไว้เป็นข้อมูลที่ไม่โปร่งใส ในขณะที่ฐานข้อมูลแบบเอกสารได้รับการออกแบบมาเพื่อตีความและสอบถามโครงสร้างภายในของเอกสาร
- ^ฐานข้อมูลแบบเอกสารและระบบคีย์-ค่ามักมีฟังก์ชันการทำงานที่คล้ายคลึงกัน อย่างไรก็ตาม เป้าหมายในการออกแบบนั้นแตกต่างกันอย่างมาก
อ่านเพิ่มเติม
- Arkin, Assaf. (20 กันยายน 2550). "ความสอดคล้องในการอ่าน: ฐานข้อมูลโง่ๆ บริการอัจฉริยะ" Labnotes : อย่าหลงระเริงไปกับความสำเร็จ!เก็บถาวรเมื่อ 27 มีนาคม 2551 ที่ Wayback Machine
ลิงก์ภายนอก
- การจัดอันดับคลังเอกสารตามความนิยมโดย DB-Engine อัปเดตทุกเดือน
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ฐานข้อมูลแบบเอกสาร
ฐาน ข้อมูลเชิงเอกสาร หรือ ที่เก็บเอกสาร คือ โปรแกรมคอมพิวเตอร์ และระบบจัดเก็บข้อมูลที่ออกแบบมาเพื่อจัดเก็บ เรียกค้น และจัดการข้อมูลเชิงเอกสาร หรือที่รู้จักกันในชื่อข้อมูล...
เอกสาร
แนวคิดหลักของฐานข้อมูลแบบเน้นเอกสารคือแนวคิดของ เอกสาร แม้ว่าการใช้งานจะแตกต่างกันในคำจำกัดความเฉพาะ แต่โดยทั่วไปแล้วฐานข้อมูลแบบเน้นเอกสารจะถือว่าเอกสารเป็นหน่วยที่ครบถ้วนในตัวเองซึ่งห่อหุ้มและเข้ารหัสข้อมูลในรูปแบบมาตรฐาน [ 2 ] [ 3 ] รูปแบบการเข้ารหัสทั่วไป...
การดำเนินการ CRUD
การดำเนินการหลักที่รองรับโดยฐานข้อมูลเชิงเอกสารสำหรับการจัดการเอกสารนั้นคล้ายคลึงกับการดำเนินการในฐานข้อมูลอื่นๆ แม้ว่าคำศัพท์จะยังไม่ได้รับการกำหนดมาตรฐานอย่างสมบูรณ์ แต่การดำเนินการเหล่านี้โดยทั่วไปถือเป็นการสร้าง อ่าน อัปเดต และลบ ( CRUD ) [ 3 ] [ 4 ]
กุญแจ
เอกสารในฐานข้อมูลแบบเน้นเอกสารจะถูกระบุโดยใช้ ตัวระบุ ที่ไม่ซ้ำกัน ตัวระบุนี้มักจะเป็น สตริง URI หรือ พาธ ซึ่ง สามารถใช้เพื่อเรียกเอกสารจากฐานข้อมูลได้ ที่เก็บเอกสารส่วนใหญ่จะรักษา ดัชนี บนคีย์เพื่อเพิ่มประสิทธิภาพการเรียกค้น และในการใช้งานบางอย่าง...