Database
 sql >> Baza danych >  >> RDS >> Database

Algebra relacyjna

Pracując z modelem relacyjnym, mamy 2 grupy operacji, których możemy użyć.

Pierwsza nazywa się algebrą relacyjną i jest to język proceduralny .

Na tym bazuje SQL i dlatego bardzo ważne jest, aby się nauczyć - ponieważ SQL jest de facto standardem pracy z relacyjnymi bazami danych.

Drugi nazywa się rachunkiem relacyjnym i zamiast być proceduralnym, jest językiem deklaratywnym . To podstawowa różnica w sposobie interakcji z bazami danych, ponieważ nie mówisz oprogramowaniu bazy danych co robić , po prostu powiedz mu co chcesz i niech wyjaśni szczegóły, jak to zrobić.

Jest to powszechne rozróżnienie wśród języków programowania. We współczesnym interfejsie mówimy, że interakcja z DOM w React jest deklaratywna. Używanie waniliowego JavaScript do modyfikowania DOM jest proceduralne.

Języki takie jak Datalog, QBE i QUEL opierają się na rachunku relacyjnym. Nie będę o tym mówić, ponieważ uważam, że jest to znacznie bardziej niszowy sposób robienia rzeczy w porównaniu z bardziej praktycznym podejściem stosowanym przez SQL, ale możesz na to spojrzeć, jeśli chcesz.

Biorąc pod uwagę to wprowadzenie, przejdźmy do algebry relacyjnej .

Mamy 2 rodzaje operacji:

  • operacje podstawowe
  • dołącz do operacji

Operacje podstawowe w algebrze relacyjnej

Podstawowe operacje to:

  • związek aby uzyskać dane z dwóch tabel, generując sumę krotek, o ile obie tabele mają te same kolumny i typy atrybutów (domenę).
  • różnica aby uzyskać dane zawarte w pierwszej tabeli, ale nie w drugiej tabeli, generując różnicę krotek, o ile obie tabele mają te same kolumny i typy atrybutów (domena).
  • produkt kartezjański aby pobrać dane z dwóch tabel i wygenerować jedną pojedynczą tabelę, która łączy ich dane na podstawie wartości atrybutu.
  • wybierz aby wyodrębnić tylko niektóre krotki (wiersze) zawarte w tabeli na podstawie określonych kryteriów.
  • projekt do wygenerowania nowej tabeli zawierającej tylko jeden lub więcej atrybutów (kolumn) istniejącej tabeli
  • zmień nazwę używany do zmiany nazwy atrybutu, używany do zapobiegania konfliktom, gdy wiele tabel ma tę samą nazwę dla różnych danych

Operacje łączenia w algebrze relacyjnej

Sprzężenia to prawdopodobnie najpotężniejsze operacje, jakie możesz wykonać za pomocą algebry relacyjnej. Opierają się na podstawowych operacjach i pozwalają skorelować dane zawarte w różnych relacjach (tabelach).

Uwaga:wkrótce opowiem o praktycznych łączeniach w DBMS, to głównie teoria.

Mamy 2 główne wersje złączenia:dołączenie naturalne i teta dołącz . Wszystkie pozostałe wersje pochodzą z tych 2.

Dołączanie naturalne

Naturalne połączenie koreluje dwie relacje (tabele) i tworzy nową tabelę opartą na tych samych wartościach atrybutu.

Najpierw potrzebujemy dwóch relacji o tej samej nazwie atrybutu (kolumnie). Następnie, jeśli wartości w atrybutach w relacji A nie pasują do atrybutów w relacji B, wiersz nie jest częścią wyniku, jest ignorowany.

Przykład:

Relacja A

Identyfikator pracownika Nazwa
1 Zaznacz
2 Tony
3 Rick

Relacja B

Nazwa menedżera Identyfikator pracownika
Todd 1
Albert 2

Możemy wykonać naturalne połączenie, aby uzyskać imię szefa dla każdego pracownika:

Identyfikator pracownika Nazwa Nazwa menedżera
1 Zaznacz Todd
2 Tony Albert

Ponieważ relacje mają wspólną nazwę atrybutu Identyfikator pracownika, jest on obecny w wyniku tylko raz, a nie dwa razy.

Pracownik #3 obecny w relacji A, Rick, nie jest uwzględniony w tej tabeli, ponieważ nie ma odpowiadającego wpisu w relacji B.

Theta-join

Theta-join umożliwia wykonanie złączenia w oparciu o dowolne kryteria w celu porównania dwóch kolumn w dwóch różnych relacjach, a nie tylko równości, jak robi to naturalne złącze.

Wykonuje iloczyn kartezjański dwóch tabel i filtruje wyniki na podstawie wyboru, którego chcemy dokonać.

Połączenie równo

equi-join to łączenie theta, w którym wybór jest oparty na równości wartości atrybutów w dwóch różnych tabelach.

Różnica w stosunku do łączenia naturalnego polega na tym, że możemy wybrać nazwy atrybutów (kolumny), które chcemy porównać.

Dużo więcej o złączeniach porozmawiamy później, gdy wprowadzimy SQL, abyśmy mogli wykorzystać je w praktyce.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Testowanie warstwy ODBC

  2. Gry MMO i projektowanie baz danych

  3. Rozważania dotyczące kolejności kolumn w indeksach i sortowaniach

  4. Cele wierszy, część 4:Wzorzec przeciwdziałania sprzężeniu

  5. Zarządzanie rolami i statusami w systemie