dr inż. Stanisława Plichta
dr inż. Stanisława Plichta
INSTYTUT INFORMATYKI
INSTYTUT INFORMATYKI
konsultacje - pokój 144/8
konsultacje - pokój 144/8
wtorek 15-16
wtorek 15-16
środa 9-10
środa 9-10
BAZY DANYCH II
BAZY DANYCH II
BAZY DANYCH II
BAZY DANYCH II
LITERATURA
LITERATURA
•
R. Wrembel, B.Bębel, Oracle projektowanie
rozproszonych baz danych, Helion 2003
•
F.Greenwald, R.Stackowiak, J. Stern, Oracle
Database 11g Wydawnictwo Naukowe PWN
Warszawa 2009
•
S. Urman, R.Hardman, M. McLaughlin, ORACLE
DATABASE 11g Programowanie w języku PL/SQL,
Helion 2009
•
Lee Barney, Michael McLaughlin, Oracle
database, Tworzenie aplikacji internetowych w
Ajax i PHP, Helion 2010
Tematyka wykładów
Tematyka wykładów
•
Podstawowe pojęcia związane z rozproszonymi bazami
danych
•
Środowisko ORACLE
•
Struktura RDBMS ORACLE
•
Język PL/SQL
–
stałe
–
zmienne (proste, złożone)
–
obiekty – atrybuty obiektów
–
struktury sterujące
–
komunikacja z użytkownikiem
Tematyka wykładów
Tematyka wykładów
•
Zapytania w PL/SQL
•
INSERT, UPDATE, DELETE w PL/SQL
INSERT, UPDATE, DELETE w PL/SQL
•
Kursory (jawne, niejawne)
Kursory (jawne, niejawne)
•
Struktura bloku anonimowego
Struktura bloku anonimowego
•
Obsługa wyjątków
Obsługa wyjątków
•
Składowane programy PL/SQL
Składowane programy PL/SQL
•
Sekwencje
Sekwencje
•
Wyzwalacze
Wyzwalacze
•
Role
Role
•
Zapytania rozproszone
Zapytania rozproszone
•
Transakcje rozproszone
Transakcje rozproszone
Rozproszone bazy danych
Rozproszona baza danych
Rozproszona baza danych
logicznie powiązany zbiór danych (oraz
opis tych danych) współużytkowanych
przez wiele osób, fizycznie rozproszony w
sieci komputerowej
Rozproszony SZBD (RSZBD)
oprogramowanie umożliwiające
zarządzanie rozproszoną bazą danych oraz
sprawiające, że fakt rozproszenia danych
jest niewidoczny (przezroczysty) dla
użytkownika
Rozproszony system zarządzania
Rozproszony system zarządzania
bazą danych
bazą danych
Sieć
komputero
wa
BD
BD
BD
Węzeł 2
Węzeł 4
Węzeł 3
Węzeł 1
skalowalność
skalowalność
dostępność
dostępność
łatwość zarządzania
łatwość zarządzania
bezpieczeństwo
bezpieczeństwo
Charakterystyka rozproszonych
Charakterystyka rozproszonych
baz danych
baz danych
Przetwarzanie rozproszone
Przetwarzanie rozproszone
Sieć
komputero
wa
BD
Węzeł 2
Węzeł 4
Węzeł 3
Węzeł 1
Rozproszony system zarządzania
Rozproszony system zarządzania
bazą danych
bazą danych
Sieć
komputero
wa
BD
BD
BD
Węzeł 2
Węzeł 4
Węzeł 3
Węzeł 1
Cechy i własności rozproszonego
Cechy i własności rozproszonego
SZBD
SZBD
• Zbiór logicznie powiązanych współużytkowanych
danych
• Dane są podzielone na fragmenty (części)
• Poszczególne fragmenty mogą być powielane
• Fragmenty są rozmieszczone na różnych
komputerach
• Komputery są połączone za pomocą sieci
komunikacyjnej
• Dane znajdujące się w każdym z węzłów systemu
znajdują się pod kontrolą lokalnego SZBD
• Każdy lokalny SZBD może niezależnie uruchamiać
lokalne aplikacje
• Każdy SZBD jest wykorzystywany w co najmniej
jednej aplikacji globalnej
Zalety RSZBD
• Odzwierciedlenie struktury organizacyjnej
• większe możliwości współużytkowania danych
oraz lokalna autonomia
• zwiększenie dostępności danych
• większa wiarygodność
• większa wydajność systemu
• rozwój modularny
Wady RSZBD
• Złożoność
• Koszty
• Trudniejsze zapewnienie bezpieczeństwa
• Trudniejsza kontrola integralności
• Brak standardów
• Bardziej skomplikowane projektowanie bazy
danych
• modyfikacja danych rozproszonych (realizacja transakcji
rozproszonych)
• odtwarzanie poprawnego stanu bazy po awarii
• optymalizacja zapytań – bardziej złożona niż w przypadku
danych scentralizowanych
• kontrola współbieżnego dostępu do danych (zwłaszcza w
kontekście wielu kopii pojedynczej tabeli)
• potencjalna niejednorodność systemów lokalnych (modele
danych, języki zapytań, systemy operacyjne, platformy
sprzętowe)
Problemy r
Problemy r
ozproszonych baz danych
ozproszonych baz danych
Funkcje RSZBD
• Rozszerzone usługi komunikacyjne
• Rozszerzenie katalogu systemowego
• Przetwarzanie rozproszonych zapytań, ich
optymalizacja, dostęp do odległych danych
• Rozszerzona ochrona bezpieczeństwa
umożliwiająca stosowanie metod autoryzacji,
nadawanie praw dostępu do danych
rozproszonych
• Rozszerzona kontrola wielodostępu - zachowanie
spójności danych
• Rozszerzone możliwości odtwarzania danych po
awarii węzła oraz łączy komunikacyjnych
Architektura wzorcowa dla RSZBD
Globalny schemat konceptualny
Globalny schemat
zewnętrzny
Globalny schemat
zewnętrzny
DB
. . .
Globalny schemat
zewnętrzny
Schemat fragmentacji
Schemat alokacji
Lokalny schemat
odwzorowania
Lokalny schemat
konceptualny
Lokalny schemat
wewnętrzny
DB
Lokalny schemat
odwzorowania
Lokalny schemat
konceptualny
Lokalny schemat
wewnętrzny
DB
Lokalny schemat
odwzorowania
Lokalny schemat
konceptualny
Lokalny schemat
wewnętrzny
. . .
Komponenty rozproszonego
RSZBD
Sieć
komputero
wa
Węzeł 1
Węzeł 3
RSZBD
Komponent
komunikacyjn
y
Globalny katalog
systemowy
LSZBD
Komponent
Lokalny
komunikacyjny SZBD
DB
lokalny
katalog
systemowy
• Lokalny SZBD (LSZBD)
– odpowiada za kontrolę
lokalnych danych węzła. Posiada swój własny katalog
systemowy, który przechowuje informację o danych w
węźle sieci.
• Komponent komunikacyjny
(DC - data
communications component)
– oprogramowanie
umożliwiające wzajemne komunikowanie się wszystkich
węzłów. Zawiera informacje o wszystkich węzłach i
połączeniach między nimi.
• Globalny katalog systemowy (GSC global system
catalog)
– zawiera informacje związane z rozproszonym
charakterem systemu (schemat fragmentacji, replikacji,
alokacji). W systemie tym każdy węzeł posiada własny
lokalny katalog zawierający metadane dotyczące danych
przechowywanych w tym węźle.
• Komponent rozproszony SZBD -
jednostka sterująca
całym systemem
Architektura komponentów RSZBD
Architektura komponentów RSZBD
Rozproszone bazy danych
System zarządzania rozproszoną bazą danych
(SZRBD)
Zbiór narzędzi umożliwiający połączenie rozproszonych zasobów w
całość i udostępnianie ich użytkownikom
Architektura SZRBD:
• procesory danych
– odpowiedzialne za zarządzanie danymi w
poszczególnych węzłach
• procesor aplikacji
– koordynator dostępu do danych w różnych
węzłach
• oprogramowanie komunikacyjne
– dostarcza podstawowe
usługi do realizacji procesora aplikacji (np. JavaSpaces jako jedna
z implementacji modelu wirtualnie współdzielonej pamięci)
• Sposób odwzorowania logicznych jednostek
danych w odpowiadające im zbiory jednostek
fizycznych wraz z ich lokalizacją określa zawartość
globalnego katalogu (słownika, repozytorium)
RBD
• Zawartość globalnego katalogu stanowią:
– informacje o jednostkach fizycznych
– specyfikacje ograniczeń związanych z użyciem danych
(prawa dostępu, więzy integralności)
– informacje użyteczne w procesie optymalizacji zapytań
(np. parametry sprzętowe)
• Naturalny sposób realizacji globalnego katalogu –
odrębna baza danych
Globalny katalog danych
Globalny katalog danych
Projektowanie rozproszonych baz
danych
• Podejście top-down
– od ogółu do
szczegółu, począwszy od analizy wymagań
• Podejście bottom-up
– integracja
istniejących baz danych
Zasada przeźroczystości lokalizacji i rozproszenia:
zarówno miejsca, w których przechowuje się dane,
jak i zasady podziału bądź powielenia danych
powinny być ukryte przed użytkownikiem systemu
z rozproszoną bazą danych
Architektura schematów RBD
podejście top-down
Architektura schematów RBD
podejście top-down
• Schemat globalny
– reprezentuje logiczny model
danych, w którym występują logiczne jednostki
danych (wrażenie pojedynczej scentralizowanej bazy
danych)
• Schemat podziału
– obejmuje definicje fragmentów
RBD określone na podstawie kryterium rozproszenia;
fragmenty RBD reprezentują fizyczne jednostki
danych (przede wszystkim tabele lokalnych baz
danych)
• Schemat alokacji
– określa zasady dystrybucji
fragmentów RBD w sieci komputerowej (przydział
fragmentów do węzłów, ewentualne powielenie
fragmentu w kilku węzłach (replikacja – zgoda na
redundancję danych w postaci wielu kopii tego
samego fragmentu)
Typy rozproszenia danych
Typy rozproszenia danych
• Kryterium rozproszenia danych określone w
schemacie podziału prowadzi do:
– fragmentacji poziomej
– fragmentacji pionowej
– fragmentacji mieszanej
Fragmentacja pozioma
Fragmentacja pozioma
Fragmentacja pozioma
Fragmentacja pozioma
• Pojedynczy fragment logicznej jednostki danych
definiowany na podstawie operacji selekcji
• Schemat każdego fragmentu – identyczny ze
schematem logicznej jednostki danych
• Istnieje określony warunek logiczny (
dozór
), który
jest spełniony przez każdy rekord należący do
danego fragmentu; kryterium selekcji
• Operacja poprawnego scalenia fragmentów w
spójną całość
Fragmentacja pionowa
Fragmentacja pionowa
Fragmentacja pionowa
Fragmentacja pionowa
• Każdy fragment stanowi podzbiór atrybutów
logicznej jednostki danych definiowany za
pomocą operacji projekcji
• Warunek konieczny poprawnego zbudowania
zbioru rekordów odpowiadającego logicznej
jednostce danych – obecność klucza głównego w
każdym fragmencie
• Operacja poprawnego scalenia fragmentów w
spójną całość – równozłączenie
Fragmentacja pionowa
Fragmentacja pionowa
Oddzielenie od siebie grup atrybutów
reprezentujących informacje o tym samym
obiekcie, ale o różnym charakterze, które
może służyć
:
– ukryciu ich przed osobami nieupoważnionymi
– umożliwieniu ich współbieżnej modyfikacji
Fragmentacja mieszana
Fragmentacja mieszana
Fragmentacja jest procesem rozdzielenia
zbioru danych na kilka podzbiorów
(nazywanych fragmentami)
Fragmentacja danych
Fragmentacja danych
hybrydowa
(mieszana)
horyzontalna
(pozioma)
wertykal
na
(pionow
a)
Charakterystyka rozproszonych baz
Charakterystyka rozproszonych baz
danych
danych
FRAGMENTACJA
• aby polepszyć wydajność transakcji
oraz lokalność transakcji
ALOKACJA
• aby zredukować koszt
przetwarzania transakcji
REPLIKACJA
REPLIKACJA
• aby zwiększyć dostępność i
niezawodność
Alokacja jest procesem umieszczenia
każdego fragmentu w jednym lub
więcej miejscach (węzłach)
• alokacja bez redundancji
(porcjowa -
każdy fragment jest umieszczony
dokładnie w jednym węźle)
• alokacja z redundancją
(częściowa
lub pełna replikacja - każdy fragment
może być powielony w większej
liczbie węzłów)
Typy rozproszenia danych
Typy rozproszenia danych
Fragmentacje:
• przy przemyślanym rozproszeniu i alokacji
większość operacji będzie dokonywana na danych
lokalnych -mniejsze obciążenie sieci
(+)
• uzyskanie pełnego obrazu logicznej jednostki
danych wymaga zebrania w całość danych z wielu
węzłów
(–)
Replikacje:
• wystarczy dostęp do „najbliższej” kopii danych (np.
lokalnej), większa odporność na awarie węzłów
(+)
• konieczność aktualizacji każdej kopii dla
podtrzymania ich spójności
(–)
Typy rozproszenia danych – wady zalety
Typy rozproszenia danych – wady zalety
Idea fragmentacja poziomej, replikacji i alokacji
fragmentów
Architektura schematów RBD
podejście bottom-up
Architektura schematów RBD
podejście bottom-up
•
Schemat lokalny
– schemat fizyczny lokalnej bazy
danych, wyrażony w
lokalnym
języku i reprezentujący
lokalny
model danych
•
Schemat eksportu
– otrzymywany przez konwersję do
kanonicznego (wspólnego) modelu danych - zawiera
wybrane, udostępnione przez system lokalny elementy
(autonomia systemu lokalnego)
•
Wszystkie schematy eksportu są integrowane w schemat
globalny
•
Na bazie schematu globalnego można dla poszczególnych
użytkowników sformułować schematy zewnętrzne, które
tworzą mechanizm bezpieczeństwa –udostępnienie
konkretnego schematu zewnętrznego danemu
użytkownikowi ukrywa przed nim elementy, które nie
zostały zawarte w jego schemacie
System wielobazowy (multidatabase)
Przykład efektu podejścia bottom-up
• System utworzony przez integrację informacji z
wcześniej niezależnie od siebie funkcjonujących
baz lokalnych, nadzorowanych przez lokalne
systemy zarządzania bazą danych
• Użytkownik dysponuje mechanizmami dostępu do
danych rozproszonych dzięki
komponentowi
globalnemu
- formułuje zapytania globalne
• Włączenie lokalnej bazy danych do systemu
wielobazowego zwiększa zasięg dostępności
danych, nie powinno jednak mieć wpływu na jej
funkcjonowanie jako scentralizowanej bazy danych,
z której korzystają aplikacje lokalne (autonomia
systemu lokalnego)
Homogeniczne i heterogeniczne
RSZBD
•
Homogeniczne
Homogeniczne
– wszystkie węzły wykorzystują tę samą wersję
oprogramowania SZBD,
– projektowanie i zarządzanie proste,
– możliwy przyrostowy rozwój systemu
•
Heterogeniczne
Heterogeniczne
– węzły mogą wykorzystywać różne oprogramowanie
SZBD,
– różne modele danych (relacyjne, sieciowe, hierarchiczne,
obiektowe),
– konieczność tłumaczenia między protokołami i językami
stosowanymi przez różne SZBD,
– odwzorowania struktur danych,