System bazy danych o scentralizowanej i niescentralizowanej

Transkrypt

System bazy danych o scentralizowanej i niescentralizowanej
System bazy danych o
scentralizowanej i
niescentralizowanej architekturze
Marcin Nowak
Architektura scentralizowana
• Jeden proces odwołuje się bezpośrednio do
plików bazy danych
• W tym podejściu nie ma potrzeby ryglowania
rekordów; proces główny wykonuje po kolei
całe zapytania
• Jest wydajniejszy – nie marnuje czasu na
obsługę współbieżności
Architektura scentralizowana
• Realizacja:
Procesy – klienci komunikują się z procesem
głównym przy pomocy mechanizmu komunikacji
międzyprocesowej (socketów), wysyłając
zapytania. Proces główny wykonuje operacje na
bazie i zwraca przez socket odpowiedź na
zapytanie.
Architektura zdecentralizowana
• Każdy proces posiada zestaw funkcji do
obsługi bazy danych
• Kilka procesów może jednocześnie edytować
tę samą bazę danych
• Należy zająć się zajmowaniem rekordów lub w
inny sposób rozwiązać problem jednoczesnego
dostępu do danych
Architektura zdecentralizowana
• Realizacja:
Mechanizmy do obsługi bazy są dostępne do
klientów w postaci bibliotek i plików
nagłówkowych. Wykorzystany jest mechanizm
ryglowania rekordów do zapobiegnięcia sytuacji,
w której jednocześnie są edytowane lub
edytowane i czytane te same dane.
Sposób reprezentacji danych
• Dla każdej bazy w systemie plików tworzony
jest osobny folder
• Każda tabela w bazie składa się z dwóch
plików – pliku indeksowego *.idx i pliku z
danymi *.dat
• Poprzez hash klucza odnajduje się rekord
indeksowy w pliku indeksowym, który zawiera
wskaźnik miejsca w pliku z danymi, w którym
zapisane są dane
Zawartość plików
Wskaźnik
pierwszego
wolnego
rekordu
Wskaźnik
następnego
rekordu
Wskaźnik
rekordu
Wskaźnik
rekordu
Klucz
...
Wskaźnik
rekordu
Pozycja
w pliku
z
danymi
Rekordy indeksowe
Rozmiar
danych
PLIK Z DANYMI
Możliwe operacje
• Dotyczące całej bazy:
CREATE, OPEN, DROP
• Dotyczące pojedynczej tabeli:
CREATE, DROP
• Dotyczące pojedynczego rekordu:
INSERT, UPDATE, FETCH, DELETE