Rozproszone (distńbuted) systemy baz danych.
Rozproszone b.d to takie b,d., które są przechowywane w wielu oddalonych od siebie miejscach. Rozmaite komputery sterują dostępem do różnych porcyj danych oraz służą do pośredniczenia pomiędzy b.d a użytkownikami w wielu miejscach. Czasami te funkcje:
-sterowanie dostępem
-pośredniczenie pomiędzy b.d a użytkownikiem są wykonywane przez ten sam komputer.
Komputery w środowisku rozproszonym współpracują w obsłudze b.d. przy pomocy łączy komunikacyjnych. Szybkość transmisji tymi łączami jest znacznie mniejsza niż prędkość odczytu plików z dysku Zatem transmisja przez łącza komunikacyjne jest „wąskim gardłem" i większość zagadnień dla tych systemów dotyczy sposobów uporania się z tym problemem
Dla rozpr. b.d istnieją szczególne metody optymalizacyjne, ponieważ często o czasie odpowiedzi decyduje nie liczba wykonanych obliczeń, lecz dość przesyłanych danych (pomiędzy komputerami.
Innymi problemami rozpr. b.d są:
-współbieżność transakcyj
-ograniczone połączenie pomiędzy komputerami: wysłanie komunikatu typu „zablokuj jednostkę X dla transakcji T" pochłania dużo czasu (na zestawienie połączenia), a gdy komunikaty są dłuższe (przesyłanie danych) to czasu trzeba jeszcze więcej.
Rozpatrzymy przypadek podziału relacji na fragmenty, które są następnie lokowane w różnych miejscach w rozproszonej b.d. Zakładamy, że:
1. rozproszona b.d składa się z relacyj logicznych, które faktycznie nie istnieją
2. fragmenty b.d tworzy się najczęściej za pomocą operatorów sumy łub złączenia naturalnego
3. zapytania do b.d, oraz aktualizacja b.d, realizowane są i odnoszą się do bazy logicznej
4. mówimy także o relacjach fizycznych, które faktycznie istnieją i są fragmentami relacyj logicznych
W dalszych rozważaniach będziemy zakładać, że b.d rozproszona składa się z pewnej liczby węzłów. Każdy węzeł to komputer ze środkami do przechowywania danych. Każdy węzeł zawiera zazwyczaj system obsługi transakcyj do aktualizacji i przetwarzania zapytań wprowadzonych przez użytkownika oraz system obsługi plików sterujący dostyępem do danych. Możliwe, że jedna z funkcyj jest pominięta (obie funkcje realizuje jeden system). Zakładamy również, że b.d skłąda się z jednostek - porcyj danych nadających się do indywidualnego blokowania. Pewne jednostki mogą być powielane (pojawiają się w dwóch lub więcej różnych węzłąch). Takie powielenie stosuje się najczęściej, gdy z określonych fragmentów b.d. użytkownicy tylko czytają dane (po to, aby przyspieszyć działania na tych jednostkach). Wówczas jednostka jest dostępna w tym węźle, który czyta. Ponadto nadmiarowe zapamiętywanie danych zmniejsza prawdopodobieństwo ich utraty na skutek awarii. Ceną płaconą za powielanie jest konieczność przesyłania większej liczby komunikatów podczas aktualizacji lub blokowanie jednostki powielonej wwięcej niż jednym węźle.
Zakładamy, że między pewnymi lub wszystkimi węzłami są łącza, po których przesyłane są komunikaty i dane. Szybkość przesyłania danych ograniczona jest szybkością ich wysyłania i odbioru oraz szybkością przesyłu. Dalej będziemy rozważać zapytania do b.d, w relacyjnych b.d, rozproszonych, W pewnym sensie zapytania do rozproszonych b.d. w modelu relacyjnym będą dotyczyć relacji a raczej jej fragmentów. Każda relacja wynikowa składa się z fragmentów,
Dalej będziemy rozważać dwie metody składania relacji z fragmentów:
1. Relacja jest złączeniem naturalnym kilku fragmentów (fragmentacja pionowa):
R= Rljx| R2jx| R3jx|...|x|Rn
Jeżeli R to tablica, to Rk reprezentuje pewne jej kolumny -stąd są to fragmenty pionowe
2. Relacja R set sumą kilku fragmentów (fragmentacja pozioma):
R=RlU R2u...uRn
Tabela R składa się z fragmentów poziomych. Założenie o rozłączności Ri nie jest konieczne.
Dalej będziemy zakładać, że każda relacja R logiczna w rozproszonej b.d, składa się z z fragmentów (być może z 1 fragmentu), a każdy fragment znajduje się w innym węźle. Fragmenty mogą same być relacjami logicznymi składającymi się z fragmentów itd.
Przykład: Bankowa baza danych:
Naturalne jest, że każdy oddział banku utrzymuje dane o swoich rachunkach i kredytach; korzyść polega na tym, że klienci dokonujący operacji w swoich oddziałach mogą dokonywać transakcyj bez potrzeby wykorzystania łączy.
Mamy relacje logiczne:
-Rachunki(0,R,S) O-oddział, R-rachunek (nr), S-saldo -Kredyty(0,P,W) P-pożyczka (nr), W-wartość