Es scheint bekannt zu sein , dass eine Antwort auf eine Frage zu finden über eine relationale Datenbank D , eine Zeit braucht | D | | Q | , und man kann den Exponenten | nicht loswerden Q | .
Da sehr groß sein kann, fragen wir uns, warum Datenbanken in der Praxis überhaupt funktionieren.
Geht es nur darum, dass die üblichen Abfragen in den realen Anwendungen überhaupt nicht groß sind? (Dann ist es interessant zu wissen, wie groß die bei relationalen Datenbanksystemen üblichen Abfragen sind und wie hoch die "maximale" Größe der Abfragen ist, die von einem DB-System in der Praxis voraussichtlich effektiv beantwortet werden können .)
Hinweise zum Exponenten nicht "entfernbar"
Um zu zeigen, dass der Exponent ist nicht entfernbar, kann eine Abfrage verwendet werden, ob in der von der Datenbank angegebenen Grafik eine Clique der Größe n vorhanden ist . Zu überprüfen, ob ein Graph eine Klasse hat, ist ein NP-vollständiges Problem. Darüber hinaus ist es mit dem Parameter nicht fest parametrierbar . Details finden sich zB in
Libkin, L .: Elements Of Finite Model Theory. Springer (2004)
oder
Papadimitriou, CH, Yannakakis, M .: Zur Komplexität von Datenbankabfragen. J. Comput. Syst. Sci. 58 (3), 407–427 (1999)
SELECT * FROM users WHERE username="abc" AND passwrod="xyz"
) sind einfache Suchen, für deren Ausführung O (| D |) erforderlich ist. Wenn es einen Index für relevante Datenbankfelder gibt, wird O (log | D |) verwendet. Ich mag keine Datenbanken, aber ich glaube nicht, dass kompliziertere Abfragen exponentiell viel Zeit in Anspruch nehmen würden.