ความแตกต่างที่สำคัญ: ในคอมพิวเตอร์ต้นไม้ไบนารีเป็นโครงสร้างข้อมูลแบบต้นไม้ที่เก็บข้อมูลและอนุญาตให้ผู้ใช้เข้าถึงค้นหาแทรกและลบข้อมูลในเวลาอัลกอริทึม ความแตกต่างระหว่างต้นไม้ B และ B + คือในต้นไม้ B คีย์และข้อมูลสามารถเก็บไว้ในโหนดภายในและโหนดใบไม้ในขณะที่ต้นไม้ B + ข้อมูลและคีย์สามารถเก็บไว้ในโหนดโหนด .
ต้นไม้ไบนารีเป็นต้นไม้ค้นหาที่มีความสมดุลซึ่งออกแบบมาเพื่อทำงานได้ดีบนอุปกรณ์จัดเก็บข้อมูลสำรองโดยตรงเช่นดิสก์แม่เหล็ก Rudolf Bayer และ Ed McCreight คิดค้นแนวคิดของต้นไม้ B-tree
B-tree เป็นแผนผังการค้นหาไบนารีทั่วไปที่โหนดใด ๆ สามารถมีชายด์ได้มากกว่าสองลูก แต่ละโหนดภายในใน B-tree มีจำนวนของคีย์ คีย์เหล่านี้แยกค่าและสร้างฟอร์มย่อยเพิ่มเติม โหนดภายในใน B-tree สามารถมีจำนวนตัวแปรของโหนดลูกซึ่งจัดเรียงอยู่ในช่วงที่กำหนดไว้ล่วงหน้า ณ เวลาที่ข้อมูลใด ๆ ถูกแทรกหรือลบออกจากโหนดใด ๆ ที่เกี่ยวข้องจะมีการเปลี่ยนแปลงจำนวนโหนดย่อย เพื่อรักษาช่วงที่กำหนดไว้ล่วงหน้าอาจมีการรวมหรือแยกโหนดภายใน ใน B-tree ช่วงของโหนดลูกจะได้รับอนุญาตเนื่องจากช่วงที่กำหนดไว้ล่วงหน้าจะต้องได้รับการบำรุงรักษา
ต้นไม้ B ไม่จำเป็นต้องปรับสมดุลบ่อยครั้งซึ่งแตกต่างจากต้นไม้ค้นหาด้วยตนเองอื่น ๆ โหนดในต้นไม้เหล่านี้มักจะไม่เต็ม ดังนั้นการใช้พื้นที่จึงไม่จำเป็นในต้นไม้เหล่านี้ซึ่งส่งผลให้สิ้นเปลืองพื้นที่ เฉพาะขอบเขตล่างและบนของจำนวนโหนดย่อยเท่านั้นที่จะได้รับการแก้ไขสำหรับการใช้งานเฉพาะ ตัวอย่างเช่นใน 2-3 B-tree (มักเรียกง่ายๆว่า 2-3 tree) โหนดภายในแต่ละโหนดอาจมีโหนดชายด์เพียง 2 หรือ 3 โหนด
นอกจากนี้ B-tree ยังได้รับการปรับให้เหมาะสมสำหรับระบบที่อ่านและเขียนบล็อคข้อมูลขนาดใหญ่ มันถูกใช้โดยทั่วไปในฐานข้อมูลและระบบไฟล์ ในทรี B โหนดทั้งหมดจะถูกเก็บไว้ที่ระดับความลึกเดียวกันจากรูตโหนด ความลึกเหล่านี้เพิ่มขึ้นอย่างช้าๆเมื่อจำนวนองค์ประกอบเพิ่มขึ้น ซึ่งส่งผลให้โหนดใบไม้ทั้งหมดเป็นโหนดอีกโหนดหนึ่งซึ่งอยู่ห่างจากรูทมากขึ้น นอกจากนี้ต้นไม้ B- จะได้เปรียบมากขึ้นเมื่อเทียบกับการใช้งานอื่น ๆ เกี่ยวกับเวลาที่ใช้ในการเข้าถึงข้อมูล
ต้นไม้ B + เป็นต้นไม้ n-array ที่มีโหนดซึ่งประกอบด้วย children จำนวนมากต่อโหนด รูตอาจเป็นลีฟหรือโหนดที่มีชายน์มากกว่าสองตัว ต้นไม้ B + ประกอบด้วยรากโหนดภายในและใบไม้
ต้นไม้ B + เหมือนกับต้นไม้ B ความแตกต่างเพียงอย่างเดียวคือในต้นไม้ B + จะมีการเพิ่มระดับเพิ่มเติมที่ด้านล่างด้วยใบไม้ที่เชื่อมโยง นอกจากนี้ไม่เหมือนต้นไม้ B แต่ละโหนดในต้นไม้ B + มีเฉพาะคีย์เท่านั้นและไม่ใช่คู่คีย์ - ค่า
นอกจากนี้ปัจจัยการปรับสมดุลหรือลำดับของต้นไม้ B + จะวัดความจุของโหนดภายในในทรีเช่นจำนวนโหนดที่สามารถมีได้ จำนวนชายด์จริงสำหรับโหนดถูก จำกัด สำหรับโหนดภายใน อย่างไรก็ตามรูทเป็นข้อยกเว้นเนื่องจากอนุญาตให้มีลูกได้มากกว่าสองจำนวน ตัวอย่างเช่นหากคำสั่งของต้นไม้ B + คือ 7 แต่ละโหนดภายใน (ยกเว้นสำหรับรูท) อาจมีลูกระหว่าง 4 ถึง 7 ลูก ในขณะที่รูทอาจมีค่าระหว่าง 2 และ 7 ค่าหลักของทรี B + อยู่ในการจัดเก็บข้อมูลเพื่อการดึงข้อมูลที่มีประสิทธิภาพในบริบทหน่วยเก็บข้อมูลแบบบล็อกเชิงและในระบบไฟล์โดยเฉพาะ
ค่าหลักของต้นไม้ B + อยู่ในการจัดเก็บและบำรุงรักษาข้อมูลเพื่อไม่ให้ข้อมูลสูญหาย วิธีนี้ถูกนำไปใช้โดยเฉพาะอย่างยิ่งในบริบทการจัดเก็บข้อมูลแบบบล็อกและในบางระบบไฟล์ ใบไม้ซึ่งเป็นบล็อกดรรชนีล่างสุดของต้นไม้ B + มักจะเชื่อมโยงกันในรายการที่เชื่อมโยง ด้วยเหตุนี้จึงทำให้แบบสอบถามแบบช่วงหรือวนซ้ำที่สั่งผ่านบล็อกนั้นง่ายและมีประสิทธิภาพมากขึ้น ยิ่งกว่านั้นปัจจัยพื้นที่ไม่เสียในต้นไม้ B + ต้นไม้ B + ให้รูปแบบโครงสร้างข้อมูลที่อยู่อาศัยที่มีประสิทธิภาพซึ่งทำให้ง่ายในการเข้าถึงและจัดเก็บ ต้นไม้ B + มีประโยชน์อย่างยิ่งในฐานะดัชนีระบบฐานข้อมูลซึ่งโดยทั่วไปข้อมูลจะอยู่ในดิสก์
การเปรียบเทียบระหว่าง B Tree กับ B + Tree:
ต้นไม้ B | ต้นไม้ B + | |
คำอธิบายเว็บย่อ | AB tree เป็นโครงสร้างองค์กรสำหรับการจัดเก็บและเรียกใช้ข้อมูลในรูปแบบของแผนผังที่โหนดเทอร์มินัลทั้งหมดอยู่ในระยะห่างจากฐานเดียวกันและโหนดที่ไม่ใช่เทอร์มินัลทั้งหมดมีอยู่ระหว่างต้นไม้ย่อย n คือจำนวนเต็ม) | B + tree เป็นต้นไม้ n-array ที่มีตัวแปร แต่มักจะมีลูกจำนวนมากต่อโหนด ต้นไม้ B + ประกอบด้วยรากโหนดภายในและใบไม้ รูตอาจเป็นลีฟหรือโหนดที่มีชายด์ตั้งแต่สองโหนดขึ้นไป |
หรือที่เรียกว่า | ต้นไม้ที่สมดุล | B บวกต้นไม้ |
ช่องว่าง | บน) | บน) |
ค้นหา | O (บันทึก n) | O (บันทึก ข n) |
แทรก | O (บันทึก n) | O (บันทึก ข n) |
ลบ | O (บันทึก n) | O (บันทึก ข n) |
การเก็บรักษา | ในแผนผัง B ค้นหาคีย์และข้อมูลที่เก็บไว้ในโหนดภายในหรือโหนดลีฟ | ในต้นไม้ B + ข้อมูลที่เก็บไว้ในโหนดใบไม้เท่านั้น |
ข้อมูล | โหนดปลายสุดของพอยน์เตอร์ร้านค้าสามตัวเพื่อบันทึกข้อมูลแทนที่จะเป็นระเบียนจริง | โหนดใบของต้นไม้เก็บบันทึกจริงมากกว่าตัวชี้ไปยังบันทึก |
ช่องว่าง | ต้นไม้เหล่านี้สิ้นเปลืองพื้นที่ | ต้นไม้ไม่ต้องเสียพื้นที่ |
ฟังก์ชั่นของโหนดใบ | ในทรี B โหนดใบไม่สามารถจัดเก็บได้โดยใช้รายการที่เชื่อมโยง | ใน B + tree ข้อมูลโหนดใบจะถูกจัดเรียงในรายการที่เชื่อมโยงตามลำดับ |
ค้นหา | ที่นี่การค้นหาใน B- ทรีทำได้ยากเนื่องจากไม่พบข้อมูลในโหนดลีฟ | ที่นี่การค้นหาข้อมูลใด ๆ ในทรี B + นั้นง่ายมากเพราะพบข้อมูลทั้งหมดในโหนดปม |
การเข้าถึงการค้นหา | ที่นี่ในทรี B การค้นหานั้นไม่ใช่เรื่องง่ายเมื่อเทียบกับทรี B + | ที่นี่ใน B + tree การค้นหากลายเป็นเรื่องง่าย |
รหัสซ้ำซ้อน | พวกเขาจะไม่เก็บคีย์ค้นหาซ้ำซ้อน | พวกเขาเก็บคีย์ค้นหาที่ซ้ำซ้อน |
การประยุกต์ใช้งาน | พวกเขาเป็นรุ่นที่เก่ากว่าและไม่ได้เปรียบเมื่อเทียบกับต้นไม้ B + | ผู้พัฒนาระบบฐานข้อมูลจำนวนมากต้องการความเรียบง่ายเชิงโครงสร้างของต้นไม้ B + |