Rozproszony system DBMS - strategie projektowania

W ostatnim rozdziale przedstawiliśmy różne alternatywy projektowe. W tym rozdziale przeanalizujemy strategie, które pomagają w przyjmowaniu projektów. Strategie można ogólnie podzielić na replikację i fragmentację. Jednak w większości przypadków używana jest kombinacja tych dwóch.

Replikacja danych

Replikacja danych to proces przechowywania oddzielnych kopii bazy danych w dwóch lub więcej lokacjach. Jest to popularna technika odporności na uszkodzenia w rozproszonych bazach danych.

Zalety replikacji danych

  • Reliability - W przypadku awarii dowolnej witryny system bazy danych nadal działa, ponieważ kopia jest dostępna w innej witrynie (witrynach).

  • Reduction in Network Load- Ponieważ dostępne są lokalne kopie danych, przetwarzanie zapytań może odbywać się przy ograniczonym wykorzystaniu sieci, szczególnie w godzinach największej oglądalności. Aktualizacja danych może odbywać się poza godzinami największej oglądalności.

  • Quicker Response - Dostępność lokalnych kopii danych zapewnia szybkie przetwarzanie zapytań, a tym samym szybki czas odpowiedzi.

  • Simpler Transactions- Transakcje wymagają mniejszej liczby łączeń tabel znajdujących się w różnych witrynach i minimalnej koordynacji w całej sieci. W ten sposób stają się prostsze z natury.

Wady replikacji danych

  • Increased Storage Requirements- Utrzymywanie wielu kopii danych wiąże się ze zwiększonymi kosztami przechowywania. Wymagana przestrzeń dyskowa jest wielokrotnością miejsca wymaganego dla scentralizowanego systemu.

  • Increased Cost and Complexity of Data Updating- Za każdym razem, gdy element danych jest aktualizowany, aktualizacja musi zostać odzwierciedlona we wszystkich kopiach danych w różnych lokalizacjach. Wymaga to skomplikowanych technik i protokołów synchronizacji.

  • Undesirable Application – Database coupling- Jeśli nie są stosowane złożone mechanizmy aktualizacji, usunięcie niespójności danych wymaga złożonej koordynacji na poziomie aplikacji. Powoduje to niepożądane połączenie aplikacji z bazą danych.

Niektóre powszechnie stosowane techniki replikacji to:

  • Replikacja migawek
  • Replikacja w czasie prawie rzeczywistym
  • Ściągnij replikację

Podział

Fragmentacja to zadanie polegające na podzieleniu tabeli na zestaw mniejszych tabel. Podzbiory tabeli nazywane sąfragments. Fragmentacja może mieć trzy typy: poziomą, pionową i hybrydową (połączenie poziomej i pionowej). Fragmentację poziomą można dalej podzielić na dwie techniki: pierwotną fragmentację poziomą i pochodną fragmentację poziomą.

Fragmentację należy przeprowadzić w taki sposób, aby z fragmentów można było zrekonstruować oryginalny stół. Jest to potrzebne, aby w razie potrzeby można było zrekonstruować oryginalny stół z fragmentów. Ten wymóg nazywa się „rekonstrukcją”.

Zalety fragmentacji

  • Ponieważ dane są przechowywane blisko miejsca użytkowania, zwiększa się wydajność systemu bazy danych.

  • W przypadku większości zapytań wystarczające są lokalne techniki optymalizacji zapytań, ponieważ dane są dostępne lokalnie.

  • Ponieważ w witrynach nie są dostępne nieistotne dane, można zachować bezpieczeństwo i prywatność systemu bazy danych.

Wady fragmentacji

  • Gdy wymagane są dane z różnych fragmentów, prędkości dostępu mogą być bardzo wysokie.

  • W przypadku fragmentacji rekurencyjnych rekonstrukcja będzie wymagała kosztownych technik.

  • Brak kopii zapasowych danych w różnych witrynach może spowodować, że baza danych będzie nieskuteczna w przypadku awarii witryny.

Fragmentacja pionowa

W przypadku fragmentacji pionowej pola lub kolumny tabeli są grupowane we fragmenty. Aby zachować rekonstrukcję, każdy fragment powinien zawierać pole (pola) klucza podstawowego tabeli. Fragmentacja pionowa może służyć do egzekwowania prywatności danych.

Na przykład weźmy pod uwagę, że baza danych uniwersytetu przechowuje zapisy wszystkich zarejestrowanych studentów w tabeli Studentów o następującym schemacie.

STUDENT

Regd_No Nazwa Kierunek Adres Semestr Opłaty Znaki

Teraz szczegóły opłat są przechowywane w sekcji rachunki. W takim przypadku projektant podzieli bazę danych w następujący sposób -

CREATE TABLE STD_FEES AS 
   SELECT Regd_No, Fees 
   FROM STUDENT;

Fragmentacja pozioma

Fragmentacja pozioma grupuje krotki tabeli zgodnie z wartościami jednego lub większej liczby pól. Horyzontalne rozdrobnienie powinno też potwierdzać zasadę rekonstrukcji. Każdy poziomy fragment musi mieć wszystkie kolumny oryginalnej tabeli podstawowej.

Na przykład w schemacie studenta, jeśli dane wszystkich studentów kursu informatyki muszą być utrzymane w Szkole Informatyki, to projektant podzieli bazę danych w poziomie w następujący sposób -

CREATE COMP_STD AS 
   SELECT * FROM STUDENT  
   WHERE COURSE = "Computer Science";

Fragmentacja hybrydowa

W przypadku fragmentacji hybrydowej stosuje się kombinację technik fragmentacji poziomej i pionowej. Jest to najbardziej elastyczna technika fragmentacji, ponieważ generuje fragmenty z minimalną ilością dodatkowych informacji. Jednak rekonstrukcja oryginalnego stołu jest często kosztownym zadaniem.

Fragmentację hybrydy można przeprowadzić na dwa alternatywne sposoby -

  • Najpierw wygeneruj zestaw fragmentów poziomych; następnie wygeneruj fragmenty pionowe z jednego lub więcej fragmentów poziomych.

  • Najpierw wygeneruj zestaw pionowych fragmentów; następnie wygeneruj fragmenty poziome z jednego lub więcej fragmentów pionowych.