Wydaje się znane, że aby znaleźć odpowiedź na zapytanie w relacyjnej bazie danych , potrzebny jest czas i nie można pozbyć się wykładnika.D | D | | Q | | Q |
Ponieważ może być bardzo duży, zastanawiamy się, dlaczego bazy danych w ogóle działają w praktyce.
Czy to tylko kwestia zwykłych zapytań, które wcale nie są duże w rzeczywistych aplikacjach? (Interesujące jest zatem, aby wiedzieć, jaki jest zwykle rozmiar zapytań stawianych systemom relacyjnych baz danych i jaki jest „maksymalny” rozmiar zapytań, na które w praktyce system DB może efektywnie odpowiedzieć ).
Uwagi na temat wykładnikanie można usunąć
Aby pokazać, że wykładniknie można go usunąć, można użyć zapytania z pytaniem, czy na wykresie podanym przez bazę danych istnieje klika o rozmiarze . Sprawdzenie, czy na wykresie jest klika, stanowi problem NP-zupełny. Co więcej, nie jest możliwy do ustalenia parametr stały, z parametrem . Szczegóły można znaleźć np. W
Libkin, L .: Elementy teorii modeli skończonych. Springer (2004)
lub
Papadimitriou, CH, Yannakakis, M .: O złożoności zapytań do bazy danych. J. Comput. Syst. Sci. 58 (3), 407–427 (1999)n n n
SELECT * FROM users WHERE username="abc" AND passwrod="xyz"
) to proste wyszukiwania, których uruchomienie wymaga O (| D |). Jeśli istnieje indeks odpowiednich pól bazy danych, zajmie O (log | D |). Nie interesuję się bazami danych, ale nie sądzę, aby bardziej skomplikowane zapytania wymagałyby wykładniczego czasu.