อ่าน 4 นาที
DBM (การคำนวณ)
ในด้านการคำนวณ DBM คือ ไลบรารี และ รูปแบบไฟล์ ที่ให้การเข้าถึงข้อมูลอย่างรวดเร็วด้วยคีย์เดียว DBM ซึ่ง เป็น ฐานข้อมูลแบบคีย์-ค่า จาก Unix ดั้งเดิมเป็นตัวอย่างแรกๆ ของระบบ NoSQL [...
DBM (การคำนวณ)
ในด้านการคำนวณDBMคือไลบรารีและรูปแบบไฟล์ที่ให้การเข้าถึงข้อมูลอย่างรวดเร็วด้วยคีย์เดียวDBM ซึ่งเป็นฐานข้อมูลแบบคีย์-ค่า จาก Unixดั้งเดิมเป็นตัวอย่างแรกๆ ของระบบNoSQL [ 1 ] [ 2 ] [ 3 ]
ประวัติศาสตร์
ไลบรารีและรูปแบบไฟล์dbmดั้งเดิม เป็น เอนจินฐานข้อมูล แบบง่ายๆ ซึ่งเขียนขึ้นโดยKen Thompsonและเผยแพร่โดยAT&Tในปี 1979 ชื่อนี้เป็นตัวย่อสามตัวอักษรของDataBase Manager และยังสามารถหมายถึงตระกูลของเอนจินฐานข้อมูลที่มี API และคุณสมบัติที่ได้มาจาก dbmดั้งเดิมได้อีกด้วย
ไลบรารีdbmจัดเก็บข้อมูลแบบใดก็ได้โดยใช้คีย์เดียว ( คีย์หลัก ) ในบัคเก็ตที่มีขนาดคงที่ และใช้ เทคนิค การแฮชเพื่อให้สามารถเรียกข้อมูลได้อย่างรวดเร็วโดยใช้คีย์
รูปแบบการแฮชที่ใช้เป็นรูปแบบการแฮชแบบขยายได้ (extendible hashing ) ซึ่งหมายความว่ารูปแบบการแฮชจะขยายตัวเมื่อมีการเพิ่มบัคเก็ตใหม่ลงในฐานข้อมูล กล่าวคือ เมื่อฐานข้อมูลเกือบว่างเปล่า จะเริ่มต้นด้วยบัคเก็ตเดียว จากนั้นบัคเก็ตนั้นจะถูกแบ่งออกเมื่อเต็ม บัคเก็ตย่อยทั้งสองที่ได้ก็จะถูกแบ่งออกอีกเมื่อเต็ม ดังนั้นฐานข้อมูลจึงเติบโตขึ้นเรื่อย ๆ เมื่อมีการเพิ่มคีย์
ไลบรารีdbmและอนุพันธ์ของมันเป็นฐานข้อมูลก่อนเชิงสัมพันธ์ – พวกมันจัดการอาร์เรย์แบบเชื่อมโยง ซึ่งถูกนำไปใช้ใน รูปแบบตารางแฮชบนดิสก์ในทางปฏิบัติ พวกมันสามารถนำเสนอโซลูชันที่ใช้งานได้จริงมากกว่าสำหรับการจัดเก็บข้อมูลความเร็วสูงที่เข้าถึงด้วยคีย์ เนื่องจากไม่จำเป็นต้องมีค่าใช้จ่ายในการเชื่อมต่อและเตรียมคำสั่งค้นหา อย่างไรก็ตาม ข้อดีก็คือโดยทั่วไปแล้วจะสามารถเปิดให้เขียนได้โดยกระบวนการเดียวในแต่ละครั้งเท่านั้น โปรแกรมบริการอัตโนมัติ (agent daemon)สามารถจัดการคำขอจากหลายกระบวนการได้ แต่จะทำให้เกิดค่าใช้จ่ายในการสื่อสาร ระหว่างกระบวนการ (IPC) เพิ่มขึ้น
การนำไปใช้
ไลบรารี AT&T dbm ดั้งเดิม ถูกแทนที่ด้วยการใช้งานรุ่นต่อมาจำนวนมาก ตัวอย่างที่น่าสนใจได้แก่: [ 3 ]
- ndbm ("new dbm") คือโปรแกรมที่พัฒนาต่อยอดจาก dbm รุ่นเดิม โดยเพิ่มฟีเจอร์ใหม่บางอย่างเข้าไป
- GDBM ("GNU dbm") เป็นไลบรารีที่เขียนขึ้นใหม่โดยGNU ซึ่งนำคุณสมบัติของ ndbm มาใช้ และมีอินเทอร์เฟซเป็นของตัวเอง นอกจากนี้ยังมีคุณสมบัติใหม่ๆ เช่น การทนต่อการขัดข้องเพื่อรับประกันความสอดคล้องของข้อมูล[ 4 ] [ 5 ]
- sdbm ("small dbm") เป็นการเขียนใหม่ของdbm ในโดเมนสาธารณะเป็นส่วนหนึ่งของการแจกจ่ายมาตรฐานสำหรับPerlและมีให้ใช้งานเป็นไลบรารีภายนอกสำหรับRuby [ 6 ] [ 7 ]
- qdbm ("Quick Database Manager") เป็น dbmที่มีประสิทธิภาพสูงกว่าโดยใช้เทคนิคหลายอย่างเช่นเดียวกับ Tokyo/Kyoto Cabinet เขียนโดยผู้เขียนคนเดียวกันก่อนที่พวกเขาจะย้ายไปใช้ตู้เก็บเอกสาร[ 8 ]
- tdb ("ฐานข้อมูลเชิงลึก") เป็นฐานข้อมูลแบบง่ายที่ใช้โดยSambaซึ่งรองรับผู้เขียนหลายคน มี API ที่ใช้ gdbm [ 9 ]
- Berkeley DB คือฐานข้อมูลที่พัฒนาขึ้นในปี 1991 โดย Sleepycat Software (ปัจจุบันคือ Oracle ) เพื่อทดแทน ndbm โดยมีจุดประสงค์เพื่อหลีกเลี่ยงลิขสิทธิ์ของ AT&T Unix บนBSD Berkeley DB มีคุณสมบัติเพิ่มเติมมากมาย เช่น การประมวลผลแบบขนาน การควบคุมธุรกรรม การแฮช และการจัดเก็บข้อมูลแบบ B-tree
- LMDB : การใช้งานB+ tree แบบ copy-on-write ที่แมปหน่วยความจำ ด้วย ภาษา Cพร้อม API สไตล์ Berkeley
ฐานข้อมูลต่อไปนี้ได้รับแรงบันดาลใจจาก dbm แต่ไม่ได้มีอินเทอร์เฟซ dbm โดยตรง แม้ว่าการสร้างอินเทอร์เฟซ dbm ขึ้นมานั้นทำได้ง่ายมากก็ตาม:
- cdb ("ฐานข้อมูลคงที่") ฐานข้อมูลโดยDaniel J. Bernsteinไฟล์ฐานข้อมูลสามารถสร้างและอ่านได้เท่านั้น แต่ไม่สามารถแก้ไขได้
- Tkrzwเป็นโปรแกรมที่ได้รับอนุญาตภายใต้ Apache 2.0 ซึ่งพัฒนาต่อยอดมาจาก Kyoto Cabinet และ Tokyo Cabinet
- WiredTiger : ฐานข้อมูลที่มีทั้งการจัดเก็บข้อมูลแบบแถวและแบบคอลัมน์แบบดั้งเดิม
ความพร้อมใช้งาน
นับตั้งแต่ปี 2001 การใช้งาน ndbmของ DBM ถือเป็นมาตรฐานบน Solaris และIRIXในขณะที่gdbmแพร่หลายบนLinuxการใช้งาน Berkeley DB ถือเป็นมาตรฐานบนระบบปฏิบัติการฟรีบางระบบ[ 2 ] [ 10 ]หลังจากมีการเปลี่ยนแปลงใบอนุญาตของ Berkeley DB เป็นGNU AGPLในปี 2013 โครงการต่างๆ เช่นDebianได้ย้ายไปใช้ LMDB [ 11 ]
ความน่าเชื่อถือ
การทดสอบ แบบฟัซซิ่งของAFL ในปี 2018 กับฐานข้อมูลตระกูล DBM จำนวนมากได้เปิดเผยปัญหามากมายในการใช้งานเมื่อพูดถึงไฟล์ฐานข้อมูลที่เสียหายหรือไม่ถูกต้อง มีเพียงfreecdbโดยDaniel J. Bernstein เท่านั้น ที่ไม่แสดงข้อผิดพลาด ผู้เขียน gdbm, tdb และ lmdb ได้ตอบสนองอย่างรวดเร็ว Berkeley DB ล้าหลังเนื่องจากปัญหาอื่นๆ จำนวนมาก[ 10 ]การแก้ไขจะไม่เกี่ยวข้องกับ ผู้ใช้ ซอฟต์แวร์โอเพนซอร์สเนื่องจากการเปลี่ยนแปลงใบอนุญาตทำให้พวกเขาต้องใช้เวอร์ชันเก่า[ 11 ]
ดูเพิ่มเติม
- ร้านค้าคีย์-ค่าที่เรียงลำดับ
- ฐานข้อมูลฝังตัว
- ฐานข้อมูลไฟล์แบบเรียบ
- อิซาม
- ฐานข้อมูลคีย์-ค่า
- ฐานข้อมูลมือถือ
- NoSQL
- สัญญาณไฟจราจร (การเขียนโปรแกรม)
บรรณานุกรม
- Hazel, Philip (2001). Exim: ตัวแทนการโอนย้ายไปรษณีย์ . O'Reilly.
- Ladd, Eric; O'Donnell, Jim (2001). การใช้ XHTML, XML และ Java 2: ฉบับแพลตตินัม . ควิเบก. ISBN 9780789724731.
- Kew, Nick (2007). The Apache Modules Book: Application Development with Apache . Prentice Hall Professional. ISBN 9780132704502.
- ไลบรารี SDBM @ Apache
- Matthew, Neil; Stones, Richard (2008). "ฐานข้อมูล". การเขียนโปรแกรม Linux เบื้องต้น . Wiley.
- Olson, Michael A.; Bostic, Keith; Seltzer, Margo (1999). "Berkeley DB" (PDF) . รายงานการประชุม FREENIX Track: การประชุมทางเทคนิคประจำปี USENIX ปี 1999
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ DBM (การคำนวณ)
ในด้านการคำนวณ DBM คือ ไลบรารี และ รูปแบบไฟล์ ที่ให้การเข้าถึงข้อมูลอย่างรวดเร็วด้วยคีย์เดียว DBM ซึ่ง เป็น ฐานข้อมูลแบบคีย์-ค่า จาก Unix ดั้งเดิมเป็นตัวอย่างแรกๆ ของระบบ NoSQL [...
ประวัติศาสตร์
ไลบรารีและรูปแบบไฟล์ dbm ดั้งเดิม เป็น เอนจินฐานข้อมูล แบบง่ายๆ ซึ่งเขียนขึ้นโดย Ken Thompson และเผยแพร่โดย AT&T ในปี 1979 ชื่อนี้เป็น ตัวย่อสามตัวอักษร ของ DataBase Manager และยังสามารถหมายถึงตระกูลของเอนจินฐานข้อมูลที่มี API และคุณสมบัติที่ได้มาจาก dbm...
การนำไปใช้
ไลบรารี AT&T dbm ดั้งเดิม ถูกแทนที่ด้วยการใช้งานรุ่นต่อมาจำนวนมาก ตัวอย่างที่น่าสนใจได้แก่: [ 3 ]
ความพร้อมใช้งาน
นับตั้งแต่ปี 2001 การใช้งาน ndbm ของ DBM ถือเป็นมาตรฐานบน Solaris และ IRIX ในขณะที่ gdbm แพร่หลายบน Linux การใช้งาน Berkeley DB ถือเป็นมาตรฐานบนระบบปฏิบัติการฟรีบางระบบ [ 2 ] [ 10 ] หลังจากมีการเปลี่ยนแปลงใบอนุญาตของ Berkeley DB เป็น GNU AGPL ในปี 2013...