Bazy danych - Aragorn Server

advertisement
Plan wykładu
Bazy danych
• Cechy rozproszonej bazy danych
• Implementacja rozproszonej bazy danych w ORACLE
Wykład 15: Rozproszone bazy danych
Małgorzata Krętowska, Agnieszka Oniśko
Wydział Informatyki PB
Bazy danych (studia dzienne)
Rozproszona baza danych
Rozproszony system bazy danych - system baz danych, w którym
występuje rozłożenie danych poprzez ich fragmentaryzację lub
replikację do różnych konfiguracji sprzętowych i programistycznych,
rozmieszczonych w różnych (geograficznie) miejscach
2
Fragmetaryzacja
Pionowa: stanowi podzbiór kolumn w tabeli
Pozioma: stanowi podzbiór wierszy w tabeli
Rozproszenie danych
- fragmentaryzacja
- replikacja
Rozproszenie funkcji
- np. systemy klient-serwer
Cechy bazy rozproszonej
Odtworzenie oryginalnej tabeli:
f. pionowa: złączenie na podstawie wartości klucza głównego
f. pozioma: zastosowanie operacji UNION
Replikacje (zalety)
Przezroczystość goegraficzna: użytkownicy nie muszą
wiedzieć, w którym miejscu są przechowywane dane
Odwzorowanie w bazie danych geograficznego podziału
organizacji
Przezroczystość fragmentaryzacji: użytkownicy nie muszą
wiedzieć, w jaki sposób są podzielone dane
Większa kontrola (przechowywanie w miejscu, w którym jest
potrzebna)
Przezroczystość replikacji: użytkownicy nie muszą wiedzieć, w
jaki sposób dane są replikowane
Zwiększenie niezawodności systemu (replikacje danych)
Przyśpieszenie dostępu do danych (zapytania do mniejszej liczby
danych)
Replikacje (wady)
System zarządzania rozproszoną
bazą danych
Utrzymywanie identycznych kopii (każda aktualizacja danych
stanowi transakcję rozproszoną)
Słownik danych: znacznie bardziej złożony, obejmuje
informacje o położeniu fragmentów i replikacji tabel bazowych
Ile kopii powinno powstać? Jaka jest aktywność aktualizacji?
Optymalizator zapytań: powienien wykorzystywać informacje
topologiczne o sieci (np. koszt przesłania informacji między
dwoma węzłami)
Synchronizacja danych po awarii sieci komunikacyjnej
Zapewnienie odporności na awarie: oprogramowanie, jak i
dane powinny zostać rozproszone po różnych miejscach
Problemy związane ze współbieżnością
Implementacja rozproszonych baz
danych w ORACLE
Rozproszona baza danych: zbiór lokalnych baz danych w
różnych węzłach sieci
– z punktu widzenia aplikacji stanowią jedną bazę
– autonomiczność węzłów
Implementacja rozproszonych baz
danych w ORACLE
Autoryzacja użytkowników
– lokalna autoryzacja użytkowników
– globalna autoryzacja użytkowników
– Oracle Security Server
Szyfrowanie danych
– Advanced Networking Services
Zarządzanie systemem rozproszonym
– Oracle Enterprise Manager
Implementacja rozproszonych baz
danych w ORACLE
Nazwa globalnej bazy danych
– każda baza wchodząca w skład systemu rozproszonego jest
identyfikowana unikalną nazwą globalną (ang. global database
name)
Obiekty bazy danych:
– łączniki bazy danych
– perspektywy zmaterializowana (materialized view)
– synonimy
– migawki perspektywa (snapshot): lokalna kopia danych
znajdujących się na jednej lub kilku odległych bazach danych
Implementacja rozproszonych baz
danych w ORACLE
Oprogramowanie sieciowe: Net8 - umożliwia komunikację
między rozproszonymi bazami danych
– rozproszone transakcje (protokół zatwierdzania 2-fazowego)
– przezroczystość lokalizacji bazy (ang. location transparency)
Powiązanie z bazą danych (database link) - zapisana w bazie
danych ścieżka sieciowa do odległej bazy danych
Powiązanie z bazą danych
Powiązanie z bazą danych – przykład
CREATE DATABASE LINK nazwa_powiązania
CONNECT TO użytkownik
CREATE DATABASE LINK baza
IDENTIFIED BY hasło
CONNECT TO scott IDENTIFIED BY tiger
USING ‘nazwa_usługi’;
USING ‘połączenie’;
nazwa_usługi - nazwa aliasu bazy danych, zdefiniowana np. w
pliku konfiguracyjnych tnsnames.ora
SELECT * FROM emp@baza;
Migawki (repliki)
Migawki (repliki)
CREATE SNAPSHOT | MATERIALIZED VIEW nazwa_migawki
CREATE SNAPSHOT wszyscy_pracownicy
REFRESH NEXT przedział_czasu
REFRESH NEXT sysdate + 1
AS zapytanie;
AS SELECT * FROM emp@bialystok
UNION
przedział_czasu – określa, co jaki czas należy odświeżyć
migawkę
SELECT * FROM emp@gdansk;
SELECT * FROM wszyscy_pracownicy
WHERE job = ‘MANAGER’;
Obiekty migawki
Typy migawek
• Proste (szybkie odświeżenie)
W lokalnej bazie dla każdej migawki tworzone są trzy obiekty:
1. Tabela, w której zapisywany jest wynik zapytania (perspektywa
zmaterializowana)
• Złożone (z klauzulami GROUP BY, DISTINCT, funkcjami
sumarycznymi, złączenia tabel)
2. Indeks dla klucza głównego
3. Perspektywa służąca do wyświetlania i używania zawartości
migawki
Dziennik migawki: tabela, do której są wpisywane zmiany
dokonywane na tabeli-oryginale. Pozwala na przyśpieszenie
odświeżania migawek.
Tworzenie dziennika migawki
CREATE SNAPSHOT LOG ON schemat.tabela
[PCTFREE integer]
[PCTUSED integer]
[INITRANS integer]
[MAXTRANS integer]
[TABLESPACE tablespace]
[STORAGE storage_clause];
CREATE SNAPSHOT LOG ON emp
Modyfikowanie danych przez
migawkę
CREATE SNAPSHOT kopia_emp
REFRESH NEXT sysdate + 1
FOR UPDATE
AS SELECT * FROM emp@gdansk;
Modyfikowalne migawki wymagają zainstalowanie serwera
ORACLE z opcją “advanced replication”
PCTFREE 5
TABLESPACE users;
Zapytania do bazy danych
SELECT * FROM emp@bialystok
Modyfikacja danych
Białystok
UPDATE emp@gdansk
SET sal = sal + 100
UNION
SELECT * FROM emp@gdansk
Gdańsk
WHERE empno=1234;
UNION
COMMIT;
SELECT * FROM emp@poznan;
Poznań
Rozłączenie z bazą danych
ALTER SESSION
CLOSE DATABASE LINK nazwa_połączenia
ALTER SESSION
CLOSE DATABASE LINK gdansk;
Zatwierdzanie transakcji
Zatwierdzanie dwufazowe:
1. Lokalne bazy danych informują wyróżniony węzeł (koordynator
transakcji), czy lokalna część transakcji może zostać
zatwierdzona, czy musi być wycofana.
2. Wszystkie lokalne bazy muszą zgodzić się na zatwierdzenie
zmian.
Zatwierdzanie transakcji: Faza I
Lokalne bazy danych informują wyróżniony węzeł (koordynator
transakcji), czy lokalna część transakcji może zostać
zatwierdzona, czy musi być wycofana
Zatwierdzanie transakcji: Faza II
Wszystkie lokalne bazy muszą zgodzić się na zatwierdzenie
zmian
commit
abort
prepare
ready
do not commit
koordynator
Rozwiązywanie kolizji
Ustalenie reguł: np. opartych na priorytetach
Pozostawienie konfliktów do roztrzygniecia administratorowi
bazy danych
Procedura roztrzygająca w ramach aplikacji
koordynator
Download