2010-11-12 7 views
17

Zawsze się nad tym zastanawiałem, ale nigdy nie miałem okazji tego zbadać.Jakie algorytmy używa SQL?

Jakie algorytmy są używane w SQL? Naturalnie wyszukujesz i porównujesz podstawowe stwierdzenia, jakie algorytmy wyszukiwania? Sortowanie? i dla innych funkcji, takich jak Join's itd.

Wiem, że nie ma jednoznacznej odpowiedzi na to pytanie, ale chodzi o to, aby zebrać ogólne pojęcie o tym, jakie metody SQL wykorzystuje do wykonywania swojej pracy.

+0

subiektywny i kłótliwy – Svisstack

+7

Nie widzę, jak to jest subiektywne czy kłótliwe. O ile nie są subiektywne interwencje bazy danych (na przykład algorytm sortowania w MS SQL vs MySql) – Prescott

+1

Myślę, że to pytanie "nie można w rozsądny sposób odpowiedzieć w jego obecnej formie", ponieważ wymagałoby bardzo dużej książki, aby zacząć na nie odpowiedzieć. –

Odpowiedz

1

RDBMS składa się z kilku elementów: kierownika

  • transakcja - zarządza transakcjami, jak wynika z jego nazwę :)
  • Fizycznego Storage Manager - zarządza jak dane przechowywane w pliku bazowego -system (s)
  • Parser zapytania/planer/executor - jest to "frontend użytkownika" bazy danych

Każdy z tych elementów jest niezbędny dla każdego RDBMS i używa innego zestawu algorytmów, aby sam działał.

Jeśli interesuje wewnętrznych z RDBMS, dostać się tej książki: http://www.amazon.com/Database-Systems-Complete-Book-2nd/dp/0131873253/

3

Można spojrzeć na Craig Freedman's blog, który omówiono niektóre wewnętrzne SQL Server. Po prostu przejrzyj interesujące tematy. Jeśli dobrze to zrozumiałem, napisał także rozdział do wspomnianej serii książek "SQL Server Internals".

Poniższe 3 linki rzucić nieco światła na jak różne algorytmy DOŁĄCZ pracują wewnętrznie:

1

SQL jest rozszerzeniem algebry relacyjnej. Na podstawowym poziomie możesz zaznajomić się z niektórymi. Relational Algebra

+1

SQL to być może * prawie * nadzbiór relacyjnej algebry. Innymi słowy, to nie jest :). Oczywiście SQL zawiera wiele nierelacyjnych rzeczy: duplikaty wierszy, zduplikowane nazwy kolumn, wartości null. Nie ma prostych odpowiedników wszystkich operatorów relacyjnych i daje pewne dziwne i niespójne wyniki (np. Uczynienie sumy pustego zbioru wartością zerową zamiast zerową). Dlatego wymagana jest pewna ilość niejasności, założeń i aproksymacji, aby postrzegać SQL jako relacyjny. Nawet wtedy nie można wyrazić relacji zerowego stopnia (DUM i DEE) w SQL. – sqlvogel