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