Wprowadzenie do systemów baz danych Algebra relacyjna Wprowadzenie do systemów baz danych
Algebra relacyjna Algebra relacyjna to zbiór operatorów, których argumentami jest jedna relacja lub więcej relacji, a wynikiem jest relacja Podstawowymi operatorami algebry relacyjnej są Selekcja (ograniczanie) – restrict operation Rzut (projekcja) – project operation Złączenie – join operation
Selekcja Selekcja bierze jedną relacje jako swój argument i produkuje w wyniku jedną relację Selekcja wydobywa z wejściowej relacji wiersze, które pasują do podanego warunku, i przekazuje je do relacji wynikowej Selekcja może być uważana za „poziomą maszynę do cięcia”
Relacja wejściowa dane_osobowe Selekcja dane_osobowe numer nazwisko imię 1 Kowalski Jan 2 Andrzej 3 Nowak 4 Drozd Krzysztof Relacja wejściowa dane_osobowe RESTRICT dane_osobowe WHERE nazwisko = ’Kowalski’ numer nazwisko imię 1 Kowalski Jan 2 Andrzej Relacja wynikowa
Rzut Rzut bierze jedną relacje jako swój argument i produkuje w wyniku jedną relację Rzut jest „pionową maszyną do cięcia” Rzut usuwa z wejściowej relacji kolumny, a pozostałe umieszcza w relacji wyjściowej
Relacja wejściowa dane_osobowe Rzut dane_osobowe numer nazwisko imię 1 Kowalski Jan 2 Andrzej 3 Nowak 4 Drozd Krzysztof Relacja wejściowa dane_osobowe PROJECT dane_osobowe(nazwisko, imię) nazwisko imię Kowalski Jan Andrzej Nowak Drozd Krzysztof Relacja wynikowa
Iloczyn kartezjański Argumentami są dwie relacje i produkowana jedna relacja wynikowa złożona ze wszystkich możliwych kombinacji wierszy z wejściowych tabel Operator rzadko używany ze względu na możliwość generowania „eksplozji informacyjnej”
= Iloczyn kartezjański A × B A dane osobowe B samochody A.PID nazwisko B.PID samochód 1 Kowalski GA 12345 2 Janiak 3 Nowak 4 Drozd GA 45674 GA 83900 A dane osobowe B samochody PID nazwisko 1 Kowalski 2 Janiak 3 Nowak 4 Drozd PID samochód 1 GA 12345 GA 45674 3 GA 83900 =
Równozłączenie Operator złączenia bierze dwie relacje jako swoje argumenty i produkuje jedną relację wynikową Równozłączenie jest iloczynem kartezjańskim, po którym jest wykonywana selekcja - zostają tylko te wiersze, których wartości w kolumnach złączenia są takie same
Równozłączenie B JOIN A WITH B A PID nazwisko 1 Kowalski 2 Janiak 3 Nowak 4 Drozd PID samochód 1 GA 12345 GA 45674 3 GA 83900 A.PID nazwisko B.PID samochód 1 Kowalski GA 12345 GA 45674 3 Nowak GA 83900
Złączenia zewnętrzne Lewostronne – zostają wszystkie wiersze z tabeli A (lewej) i pasujące z tabeli B (prawej) Prawostronne – zostają wszystkie wiersze z tabeli B (prawej) i pasujące z tabeli A (lewej) Obustronne – kombinacja złączenia lewostronnego i prawostronnego
Lewostronne złączenie zewnętrzne A NATURAL LEFT JOIN B A B A.PID nazwisko B.PID samochód 1 Kowalski GA 12345 GA 45674 2 Janiak null 3 Nowak GA 83900 4 Drozd PID nazwisko 1 Kowalski 2 Janiak 3 Nowak 4 Drozd PID samochód 1 GA 12345 GA 45674 3 GA 83900
Złączenie teta Inny warunek złączenia niż w złączeniu naturalnym Np.: A.PID <= B.PID A B A.PID nazwisko B.PID samochód 1 Kowalski GA 12345 GA 45674 3 GA 83900 2 Janiak Nowak PID nazwisko 1 Kowalski 2 Janiak 3 Nowak 4 Drozd PID samochód 1 GA 12345 GA 45674 3 GA 83900
Operatory znane z teorii zbiorów Suma – union operation Przecięcie – intersection operation część wspólna zbiorów Różnica – difference operation
Suma, przecięcie, różnica Argumentami operatorów są dwie zgodne relacje, wynikiem relacja wynikowa Relacje zgodne – to relacje, które mają taką samą strukturę – te same kolumny określone na tych samych dziedzinach W wyniku sumy otrzymujemy relację zawierającą wiersze (krotki) z obu relacji W wyniku przecięcia uzyskujemy wiersze wspólne dwóch relacji W wyniku różnicy otrzymujemy wiersze należące do pierwszej relacji i nie należące do drugiej
Rachunek relacyjny Rachunek relacyjny jest alternatywą algebry relacyjnej Rachunek relacyjny jest oparty na logicznym rachunku predykatów (funkcji zdaniowych) Algebra ma charakter proceduralny (algorytmiczny) Rachunek ma charakter nieproceduralny (deklaracyjny) Algebra i rachunek są równoważne, każde wyszukiwanie danych określone w algebrze można wyrazić w rachunku i odwrotnie Rachunek na krotkach jest wykorzystywany w języku SQL Rachunek na dziedzinach jest podstawą interfejsu QBE (Query By Example)