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

อ่าน 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 ]

ดูเพิ่มเติม

บรรณานุกรม

  • 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
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=DBM_(computing)&oldid=1329349640#Implementations "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ 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...