เพราะเหตุใดฐานข้อมูลเชิงสัมพันธ์จึงใช้งานได้ทั้งหมดเนื่องจากความซับซ้อนเชิงทฤษฎีของการค้นหาคำตอบ (ในขนาดของแบบสอบถาม)


19

เป็นที่ทราบกันดีอยู่แล้วว่าการค้นหาคำตอบของแบบสอบถามผ่านฐานข้อมูลเชิงสัมพันธ์ต้องใช้เวลาและไม่สามารถกำจัดเลขชี้กำลัง.QD|D||Q||Q|

เนื่องจากอาจมีขนาดใหญ่มากเราจึงสงสัยว่าทำไมฐานข้อมูลจึงใช้งานได้จริงD

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

หมายเหตุเกี่ยวกับเลขยกกำลังไม่ `ถอดออกได้ '|Q|

เพื่อแสดงว่าเลขชี้กำลังไม่สามารถถอดออกได้เราสามารถใช้แบบสอบถามเพื่อสอบถามว่ามีกลุ่มขนาดnอยู่ในกราฟที่กำหนดโดยฐานข้อมูลหรือไม่ ในการตรวจสอบว่ากราฟมีn -clique หรือไม่นั้นเป็นปัญหาที่ทำให้ NP สมบูรณ์ นอกจากนี้ยังไม่ได้รับการแก้ไขพารามิเตอร์ซูฮกกับพารามิเตอร์n รายละเอียดสามารถพบได้ในเช่น Libkin, L: องค์ประกอบของทฤษฎีแบบ จำกัด Springer (2004) หรือ Papadimitriou, CH, Yannakakis, M .: ความซับซ้อนของการสืบค้นฐานข้อมูล เจคอมพิวเตอร์ Syst วิทย์ 58 (3), 407–427 (1999)|Q|nnn



7
ข้อความค้นหาทั่วไป (เช่นSELECT * FROM users WHERE username="abc" AND passwrod="xyz") เป็นการค้นหาแบบง่ายซึ่งใช้ O (| D |) เพื่อเรียกใช้ หากมีดัชนีในฟิลด์ฐานข้อมูลที่เกี่ยวข้องจะใช้ O (log | D |) ฉันไม่ได้อยู่ในฐานข้อมูล แต่ฉันไม่คิดว่าการสืบค้นที่ซับซ้อนมากขึ้นจะต้องใช้เวลาชี้แจง
MS Dousti

7
@imz: ในตัวอย่างของคุณความซับซ้อนคือซึ่งยังคงเป็นพหุนาม มันดูเหมือนว่าถ้ามี k ร่วมในการสอบถามความซับซ้อนคือ1}) นี่คือพหุนามสำหรับ k คงที่ แต่ฉันคิดว่าสำหรับ k ขนาดใหญ่การรันเคียวรีจะช้ามากในทางปฏิบัติ ดังนั้นจึงต้องหลีกเลี่ยงการเข้าร่วมมากเกินไปในค่าใช้จ่ายทั้งหมด O(|D|2)O(|D|k+1)
MS Dousti

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

2
@Kaveh: "หนังสือเชิงพรรณนาเชิงพรรณนาของอิมเมอร์แมนมีบทสนทนาเล็ก ๆ ในบทสุดท้าย": คำแนะนำที่ดีมาก Nitpicking: มันถูกกล่าวถึงในบทสุดท้าย @imz: คุณอาจพบว่ากระดาษExpressive Power ของ SQLมีประโยชน์เช่นกัน
MS Dousti

5
@imz: "กราฟนี้มี n-clique" หรือไม่นั้นเป็นคำถามทั่วไปในทางปฏิบัติ ข้อความค้นหาส่วนใหญ่นั้นจะคล้ายกับที่ @Sadeq แนะนำและมีโครงสร้างที่คล้ายต้นไม้มาก ยิ่งไปกว่านั้นสำหรับฐานข้อมูลขนาดใหญ่จริง ๆ แม้แต่การสืบค้นเชิงเส้นอย่างสมบูรณ์นั้นแพงเกินไปและต้องทำงานกับร่างของฐานข้อมูล
András Salamon

คำตอบ:


16

มีข้อความค้นหาจำนวนมากที่ "ง่าย" แม้ในกรณีที่เลวร้ายที่สุด โดยเฉพาะอย่างยิ่งถ้าคลาสของแบบสอบถามประกอบด้วยแบบสอบถามที่เชื่อมต่อกันเท่านั้นและแต่ละแบบสอบถามมีความกว้างที่ จำกัด (ตัวอย่างเช่น treewidth, treewidth ของกราฟการเกิดของมัน, ความกว้างของไฮเพอร์เชียลที่เป็นเศษส่วนหรือความกว้างของ submodular) พร้อมกับระบุกำลังดุร้ายสำหรับส่วนโลคัลของเคียวรีที่เบี่ยงเบนจากต้นไม้ สิ่งนี้ต้องใช้เวลาพหุนามกับระดับของพหุนามที่พิจารณาจากพารามิเตอร์ความกว้าง

ดูเหมือนว่าแบบสอบถามจำนวนมากที่พบในทางปฏิบัติมีทั้งที่เชื่อมต่อกันและมีความกว้างขนาดเล็ก ดังนั้นพหุนามจึงมีระดับต่ำในกรณีนี้

Dániel Marx นำเสนอบทความที่ STOC 2010 เกี่ยวกับความกว้าง submodular เมื่อเร็ว ๆ นี้ซึ่งเป็นเวอร์ชั่นเต็มซึ่งรวมถึงบทสรุปที่ดีเกี่ยวกับความกว้างต่างๆและวิธีการกำหนด CSP ที่เกี่ยวข้องกับพิธีการฐานข้อมูล

  • Dániel Marx, คุณสมบัติกราฟิคไฮเปอร์กราฟเพื่อความพึงพอใจของข้อ จำกัด และข้อความค้นหาที่เชื่อมโยง , 2010 arxiv: 0911.0801

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


6

หนึ่งสามารถใช้แบบสอบถาม Q_n เพื่อตรวจสอบว่ากราฟแสดงเป็นฐานข้อมูลมีกลุ่มที่มีองค์ประกอบ n ในการตรวจสอบว่ากราฟมีกลุ่มใดเป็นปัญหาสมบูรณ์หรือไม่ ยิ่งกว่านั้นจะไม่คงที่พารามิเตอร์ที่สามารถจัดการได้ง่ายโดยใช้พารามิเตอร์ n (ซึ่งหมายถึง D ^ n)


โปรดโพสต์คำอธิบายเพิ่มเติมเกี่ยวกับพื้นหลังของคำถามไม่ว่าจะเป็น "ความคิดเห็น" (ไม่ใช่ "คำตอบ") - ด้วยปุ่ม "เพิ่มความคิดเห็น" ด้านล่างคำถามหรือเป็นข้อเสนอแนะการแก้ไข - ด้วยลิงก์ "แก้ไข" ด้านล่าง คำถาม. "คำตอบ" ไม่ได้มีไว้สำหรับการสนทนาและเพิ่มเติมใด ๆ ของคำถาม (การเข้าร่วมที่นี่ควรจะสะดวกกว่านี้หากคุณลงทะเบียนเป็นผู้ใช้ที่ไม่ระบุตัวตนจากนั้นการติดตามว่าใครพูดอะไรในการสนทนาได้ง่ายกว่า)
imz - Ivan Zakharyaschev

@imz: เขาใส่ไว้เป็นคำตอบเพราะเขาไม่มีสิทธิ์แสดงความคิดเห็น หนึ่งต้องมีอย่างน้อย 50 ตัวแทน เพื่อให้สามารถแสดงความคิดเห็นได้ทุกที่
Tomek Tarczynski

@Tomek, @imz เรากำลังพูดถึงเมตาอยู่ในขณะนี้หากเราควรอนุญาตให้แสดงความคิดเห็นโดยใช้คำตอบหรือไม่
Kaveh

5

อีกวิธีหนึ่งในการตอบคำถามนี้คือ "พวกเขาไม่ได้!"

หากคุณให้การใช้งาน DBMS ทั่วไปกับแบบสอบถามที่มีจำนวนมากของการรวมมันจะไม่ทำให้มันผ่านขั้นตอนการวางแผน / การเพิ่มประสิทธิภาพ (ให้ประเมินเพียงอย่างเดียว) แม้ว่าแบบสอบถามจะเป็นวงจรหรืออื่น ๆ มีโครงสร้างที่ง่ายมากเช่น András alludes ไปด้านบน

แต่สำหรับปริมาณงาน DBMS "ปกติ" แบบสอบถามดังกล่าวดูเหมือนจะไม่เกิดขึ้น


1
สำหรับแบบสอบถามที่ซับซ้อนผลลัพธ์ของช่วงการปรับให้เหมาะสมจะถูกเลือกแบบสุ่ม สิ่งนี้ไม่ได้เลวร้ายเท่าที่ควรเพราะเส้นทางการดำเนินการอาจยังคง "ดีพอ" และมีสาเหตุอีกหลายประการที่ทำให้การเพิ่มประสิทธิภาพนั้นยากเกินกว่า combinatorics ของจำนวนการรวม
Tegiri Nenashi

4

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


0

การเข้าร่วมเป็นกำลังสองเหนือความสัมพันธ์แบบกลุ่มต่อกลุ่ม สิ่งเหล่านี้ค่อนข้างหายาก: ในทางปฏิบัติความสัมพันธ์ส่วนใหญ่และการรวมเป็น 1 ต่อหลายดังนั้นพวกเขาจะใช้เวลาเชิงเส้นถ้ากำหนดดัชนี / คีย์ คำสั่งที่มีหลายหลายต่อหลายคนมาร่วมเป็นปัญหาร้ายแรง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.