background image

 

 

PRZETWARZANIE ZAPYTAŃ TO:

PRZETWARZANIE ZAPYTAŃ TO:

przekształcenie zapytania zapisanego w 

języku wysokiego poziomu, zazwyczaj SQL, 

w poprawną efektywną sekwencję operacji 

niskiego poziomu (operacje algebry relacji) 

oraz wykonanie tej sekwencji operacji w celu 

uzyskania poszukiwanych danych 

background image

 

 

Zapytanie jest poddawane 

przetwarzaniu w następujących 

etapach:

1. Analiza składniowa 
2. Poprawność zapytania względem informacji 

przechowywanej w słowniku bazy danych

3. Optymalizacja zapytania 
4. Wykonanie zapytania
5. Zwrot do użytkownika wyników zapytania lub 

komunikatów o błędach

background image

 

 

Fazy procesu przetwarzania 

Fazy procesu przetwarzania 

zapytania

zapytania

Rozkład 

Rozkład 

zapytania

zapytania

Optymaliza

Optymaliza

cja 

cja 

zapytania

zapytania

Generowani

Generowani

e kodu

e kodu

Wykonanie 

Wykonanie 

zapytania

zapytania

Kompilacja

Kompilacja

Wykonanie

Wykonanie

Wynik 

Wynik 

zapytani

zapytani

a

a

Katalog 

Katalog 

systemowy

systemowy

Statystyki bazy 

Statystyki bazy 

danych

danych

Główna baza 

Główna baza 

danych

danych

Wygenerowany 

Wygenerowany 

kod

kod

Plan 

Plan 

wykonania

wykonania

Wyrażenie algebry relacji

Wyrażenie algebry relacji

Zapytanie w języku 

Zapytanie w języku 

wysokiego

wysokiego

poziomu (SQL)

poziomu (SQL)

background image

 

 

OPTYMALIZACJA ZAPYTAŃ

OPTYMALIZACJA ZAPYTAŃ

• Optymalizacja dynamiczna – powtarzanie 

rozkładu i optymalizacji za każdym razem, gdy 

zapytanie jest wykonywane. 

• Optymalizacja statyczna – analiza składni, 

kontrola poprawności i optymalizacja jest 

wykonywana tylko raz (podejście podobne do 

stosowanego w kompilatorach języków 

programowania). 

• Można stosować połączenie tych strategii, 

wówczas ponowna optymalizacja ma miejsce 

wówczas, gdy system wykryje, że w statystykach 

zaszły poważne zmiany od ostatniej kompilacji. 

background image

 

 

Rozkład zapytania - przykład drzewa 

Rozkład zapytania - przykład drzewa 

algebry relacji

algebry relacji

Persone
l

Biuro

liście

Operacje 
pośredni
e

Stanowisko=’dyrekto
r’

miasto=’Londy
n’

nrbiura=biuronr

Korzeń

SELECT *

SELECT *

FROM Personel, Biuro

FROM Personel, Biuro

WHERE nrbiura=biuronr AND 

WHERE nrbiura=biuronr AND 

(stanowisko=’dyrektor’ AND miasto=’Londyn’)

(stanowisko=’dyrektor’ AND miasto=’Londyn’)

background image

 

 

Etap normalizacji

Etap normalizacji

• Koniunktywna postać normalna – składa 

się z ciągu czynników połączonych operatorem 
koniunkcji. Każdy czynnik składa się z kilku 
członów połączonych operatorami alternatywy. 

• Dysjunktywna postać normalna – składa 

się z ciągu składników połączonych 
operatorem alternatywy. Każdy składnik składa 
się z kilku członów połączonych operatorem 
koniunkcji. 

background image

 

 

Analiza semantyczna

Analiza semantyczna

• Analiza semantyczna ma na celu odrzucenie 

tych spośród znormalizowanych zapytań, które 
są źle sformułowane lub sprzeczne. 

• Zapytanie jest źle sformułowane, jeżeli 

jego elementy nie prowadzą do 
wygenerowania wyniku, co może się zdarzyć 
na skutek pominięcia specyfiki złączenia. 

• Zapytanie jest sprzeczne – jeżeli jego 

warunek nie może być spełniony przez żaden 
wiersz. 

background image

 

 

Budujemy graf połączeń relacji – jeśli graf 

Budujemy graf połączeń relacji – jeśli graf 

nie jest spójny, to zapytanie jest źle 

nie jest spójny, to zapytanie jest źle 

sformułowane

sformułowane

tworzymy wierzchołek dla każdej relacji 

i dla 

każdego wyniku

dodajemy krawędzie pomiędzy 

wierzchołkami,

które reprezentują złączenia

dodajemy

 

krawędzie, które reprezentują 

operacje

rzutowania 

Analiza semantyczna - zapytanie 

Analiza semantyczna - zapytanie 

sformułowane nie poprawnie

sformułowane nie poprawnie

background image

 

 

Analiza semantyczna - zapytanie 

Analiza semantyczna - zapytanie 

sformułowane nie poprawnie

sformułowane nie poprawnie

SELECT p.nr_nieruch, p.ulica
FROM Klient c, Wizyta w, Nieruchomosc p
WHERE c.nr_kli=w.nr_kli AND c.czynsz>=500 AND 
c.typ=’mieszkanie’ AND p.nrwlasciciela=’KTOS’;
 

WYNIK

c

p

w

background image

 

 

Analiza semantyczna - zapytanie 

Analiza semantyczna - zapytanie 

sprzeczne

sprzeczne

Budujemy znormalizowany graf połączeń 

Budujemy znormalizowany graf połączeń 

atrybutów – jeżeli graf zawiera cykl o 

atrybutów – jeżeli graf zawiera cykl o 

ujemnej wadze - zapytanie jest sprzeczne

ujemnej wadze - zapytanie jest sprzeczne

• tworzymy wierzchołek dla każdego odwołania do 

atrybutu oraz do stałej 0

• tworzymy skierowaną krawędź pomiędzy 

wierzchołkami reprezentującymi złączenie 

• tworzymy

 

skierowaną krawędź pomiędzy 

wierzchołkiem atrybutu i wierzchołkiem stałej 0 - 
reprezentującą selekcję

• krawędzi a→b przypisujemy wagę c jeśli 

reprezentuje ona warunek nierówności (a≤b+c)

• krawędzi 0→a przypisujemy wagę –c, jeśli 

reprezentuje ona warunek nierówności (a≥c) 

background image

 

 

Analiza semantyczna - zapytanie 

Analiza semantyczna - zapytanie 

sprzeczne

sprzeczne

c.czynsz

0

c.typ

mieszkani
e

200

-500

-
mieszkanie

w.nr_kli

c.nr_kli

p.nr_nieruch

w.nr_nieruch

0

0

0

0

SELECT p.nr_nieruch, p.ulica
FROM Klient c, Wizyta w, Nieruchomosc p
WHERE c.czynsz>=500 AND c.nr_kli=w.nr_kli AND
w.nr_nieruch=p.nr_nieruch AND c.typ=’mieszkanie’ AND 
c.czynsz<200;
 

background image

 

 

UPRASZCZANIE

UPRASZCZANIE 

• wykrycie  powtarzających  się  warunków  i  wspólnych 

podwyrażeń

• przekształcenie 

zapytania 

do 

semantycznie 

równoważnej,  lecz  prostszej  i  łatwiejszej  do  obliczeń 

postaci

• Zazwyczaj  na  tym  etapie  uwzględnia  się  również 

ograniczenia  dostępu,  definicje  perspektyw  i  więzy 

integralności

• Jeśli  użytkownik  nie  ma  odpowiednich  praw dostępu 

do  elementów  składowych  zapytania,  to  całe 

zapytanie musi zostać odrzucone 

background image

 

 

Istnieją dwie klasy optymalizatorów 

Istnieją dwie klasy optymalizatorów 

używanych we współczesnych 

używanych we współczesnych 

relacyjnych SZBD 

relacyjnych SZBD 

• optymalizatory 

oparte 

na 

składni 

(nazywane  też  opartymi  na  heurystyce)  - 

wybierają  plan  wykonania  na  podstawie 

składni  instrukcji  SQL.  Decyzja  jest 

podejmowana 

na 

podstawie 

takich 

wielkości jak: postać i kolejność warunków 

w klauzuli WHERE.

• optymalizatory  oparte  na  statystyce 

(oparte na koszcie)

background image

 

 

OPTYMALIZACJA ZAPYTAŃ 

OPTYMALIZACJA ZAPYTAŃ 

• Zapytania są kompilowane - plany wykonań są 

tworzone na etapie kompilacji i składowane do 

późniejszego użycia. 

• Zapytania interpretowane – wszystkie zapytania są 

interpretowane w czasie wykonania.

• Zapytania kompilowane są wykonywane szybciej niż 

interpretowane - ponieważ w przypadku powtórnego 

zapytania kompilacja nie musi być wykonana 

ponownie. 

• Jeśli jednak baza danych jest przedmiotem wielu 

zapytań kierowanych do niej ad hoc, to zapytania 

interpretowane są bardziej elastyczne, ponieważ nie 

są przedmiotem wcześniejszego etapu kompilacji.

background image

 

 

OPTYMALIZACJA ZAPYTAŃ

OPTYMALIZACJA ZAPYTAŃ

W SYSTEMIE ORACLE

W SYSTEMIE ORACLE

• Optymalizacja oparta na regułach - wykorzystuje 

15 reguł, które zostały przedstawione w kolejności 

spodziewanego wpływu na efektywność. 

Optymalizator może wybrać konkretną ścieżkę 

dostępu do tabeli tylko wówczas, gdy zapytanie 

zawiera odpowiedni warunek lub istnieje struktura 

umożliwiająca określony sposób dostępu 

• Optymalizator oparty na analizie kosztów – 

wybiera strategię wykonania zapytania wymagającą 

najmniejszych zasobów do przetworzenia wszystkich 

wierszy, do których odwołuje się zapytanie. 

Użytkownik może wybrać, czy optymalizowanym 

zasobem ma być przepustowość, czy czas 

odpowiedzi.

background image

 

 

OPTYMALIZACJA ZAPYTAŃ SYSTEMIE 

OPTYMALIZACJA ZAPYTAŃ SYSTEMIE 

ORACLE

ORACLE

1

Jeden wiersz wg identyfikatora wiersza 

2

Jeden wiersz wg indeksu grupującego

3

Jeden wiersz wg indeksu haszującego dla klucza unikalnego lub 

głównego 

4

Jeden wiersz wg klucza unikalnego lub głównego

5

Wykorzystanie klastra 

6

Grupujący klucz haszujący 

7

Klucz indeksu grupującego 

8

Klucz złożony 

9

Indeks wg pierwszej kolumny 

10

Poszukiwanie zakresu dla kolumny z indeksem 

11

Poszukiwanie bez ograniczeń dla kolumny z indeksami 

12

Złączenie przez scalanie posortowanych relacji 

13

MAX lub MIN dla kolumny z indeksem 

14

ORDER BY dla kolumny z indeksem 

15

Przeszukiwanie całej tablicy 

background image

 

 

OPTYMALIZACJA ZAPYTAŃ

OPTYMALIZACJA ZAPYTAŃ

W SYSTEMIE ORACLE

W SYSTEMIE ORACLE

• Działanie  optymalizatora  opartego  na  analizie  kosztów  zależy  od 

zgromadzonych statystyk dla tabel, klastrów oraz indeksów.

• Sam Oracle nie zbiera tych statystyk automatycznie – generuje je i 

uaktualnia tylko na polecenie użytkownika. 

• Proces  gromadzenia  statystyk  jest  regulowany  przez  liczne  opcje, 

gdy tylko jest to możliwe.

• Gdy  zostanie  wyznaczony  optymalny  plan  wykonania  zapytania, 

można  go  zapisać  poleceniem  CREATE  OUTLINE,  które  pozwala 

przechować  atrybuty  wykorzystane  przez  optymalizator  do 

stworzenia planu wykonania.

• W trakcie późniejszych wykonań zapytania, optymalizator korzysta 

z  zapisanych  atrybutów  i  wykonuje  gotowy  plan  zapytania, 

zamiast generować go od nowa.

• System  Oracle  pozwala  obejrzeć  plan  wykonania  wybrany  przez 

optymalizator  poleceniem  EXPLAIN  PLAN.  Przydaje  się  to 

szczególnie  wtedy,  gdy  efektywność  wykonania  zapytania  nie 

spełnia  naszych  oczekiwań.  Wynik  polecenia  EXPLAIN  PLAN  jest 

zapisywany w tabeli bazy danych (domyślnie PLAN_TABLE).

background image

 

 

Transakcje 

Transakcja 

Transakcja 

 -

 - pewna ilość poleceń przesłana do 

systemu zarządzania celem przetworzenia jako całość

Sesja 

składa się z jednej lub większej liczby transakcji

Transakcje wykonywane są współbieżnie - jeżeli do 

bazy danych ma jednocześnie dostęp kilku 

użytkowników

Transakcje współbieżne

 mogą być przeprowadzane na 

jeden z dwóch sposobów

:

Szeregowo - w momencie zakończenia jednej 

transakcji uruchamiamy następną

Równolegle - wszystkie transakcje są realizowane 

jednocześnie - po jednej czynności na transakcję

background image

 

 

Kontrola współbieżności

Mechanizm blokowania

 (locking) - umożliwia 

przyznanie wybranej transakcji całkowitej 

kontroli nad analizowanym elementem bazy, 

uniemożliwiając pozostałym transakcjom 

odczytywanie, czy modyfikowanie zawartych w 

nim danych 

Transakcje modyfikujące dane ustawiają 

zazwyczaj blokady wyłączności lub blokady 

zapisu, które gwarantują, że żadna inna 

transakcja nie dokona odczytu lub zmiany 

danych aż do momentu zniesienia blokady

background image

 

 

Rozróżniamy dwa główne typy blokad:

Blokada do odczytu

Blokada do odczytu – daje dostęp tylko do 

odczytu danych i chroni zablokowane dane przed 

modyfikacją. 

Ten typ blokady stosujemy, gdy chcemy zastosować 

zapytanie na tabeli bez potrzeby dokonywania w niej 

zmian

 Ważne jest by inni użytkownicy nie zmieniali tabeli w 

czasie gdy ją oglądamy 

Blokada do zapisu -

Blokada do zapisu - umożliwia dostęp do 

elementów danych zarówno w celu ich odczytu, 

jak i zapisu

uniemożliwia ona innym transakcjom jakikolwiek odczyt 

i zapis dla tego elementu danych

background image

 

 

BLOKADY

blokady wyłączności 

blokady wyłączności 

– 

– 

zabezpieczają wybrany element 

zabezpieczają wybrany element 

bazy danych zarówno przed zapisem jak i przed odczytem

bazy danych zarówno przed zapisem jak i przed odczytem

blokady wspólne

blokady wspólne

 - umożliwiają wszystkim transakcjom 

odczyt danego elementu, lecz tylko jednej z nich – zapis

blokowanie dwufazowe

  - nowa transakcja otrzymuje na 

początek tylko blokadę wspólną, która w momencie 

uruchomienia polecenia modyfikującego może zostać 

zastąpiona blokadą 

wyłączności

 

skraca czas trwania blokad wyłączności

przyspiesza współbieżne wykonywanie transakcji

background image

 

 

Ziarnistość blokady

Ziarnistość blokady

 - rozmiar elementu bazy 

danych, na który zostaje nałożona blokada 

zależy od systemu zarządzania i od rodzaju 

przeprowadzanej operacji

Im mniejsza ziarnistość, tym lepiej obsługiwane 

jest współbieżne przetwarzanie transakcji

Zmniejszenie ziarnistości  - więcej czasu 

procesora na obsługę blokad

background image

 

 

Poziomy izolacji

SERIALIZABLE - transakcje są w pełni odizolowane od 

pozostałych

REPEATABLE READ - transakcja mogąca odczytywać te same 

dane wiele razy, za pomocą predykatu WHERE - powtórne 

wykonanie tego samego zapytania może zwrócić inne wiersze 

Efekt ten znany jest jako fantom 

READ COMMITTED - transakcje mogą odczytywać pewne dane 

wielokrotnie, lecz w tym wypadku odczyt zwraca zawsze te 

same wiersze 

Efekt ten znany jest jako bezpowtórzeniowość odczytu

 

READ UNCOMMITTED - transakcja wielokrotnie odczytująca te 

same dane, uwzględniając poprawki wprowadzone przez inne 

transakcje, które nie zakończyły się jeszcze sukcesem

 

Efekt ten znany jest jako brudny odczyt

SERIALIZABLE  - domyślny poziom izolacji

 

background image

 

 

Poziomy izolacji

Aby wyznaczyć jeden z poziomów należy użyć 

polecenia:

 

SET TRANSACTION ISOLATION LEVEL 

poziom_izolacji

Przykład

SET TRANSACTION ISOLATION 

LEVEL REPEATABLE READ

 

background image

 

 

Dopisywanie nowych użytkowników 

bazy danych 

Bazodanowy identyfikator użytkownika pokrywa się jego 

identyfikatorem w systemie operacyjnym

System zarządzania posiada własny zbiór identyfikatorów, 

różnych od systemowych nazw użytkowników

DO utworzenia nowego identyfikatora Jan_Kowalski z hasłem 

Iksiński

 

służy polecenie

GRANT CONNECT TO Jan_Kowalski 

IDENTIFIED BY Iksiński

Uwaga!

identyfikator bazodanowy i odpowiadające mu hasło nie mają w tym 

przypadku nic wspólnego z parą użytkownik-hasło potrzebną do 

załogowania się do systemu operacyjnego 

background image

 

 

Połączenie z bazą danych

• CONNECT

  - połączenie się z bazą danych  

• Standard SQL-92 wprowadza do składni CONNECT daleko 

posuniętą elastyczność

• CONNECT AS identyfikator_połączenia

 - jeśli wymagana jest 

nazwa połączenia 

• CONNECT

 - jeśli system zarządzania posiada swój własny 

algorytm nadawania nazw połączeniom

Uwaga: 

Polecenie CONNECT zakłada:

•  istnieje sposób na wyznaczenie bazy danych, z której 

użytkownik będzie korzystał w danej sesji

• baza została wyznaczona przed próbą uzyskania 

połączenia

background image

 

 

zerwanie połączenie z bazą danych

DISCONNECT

 - zamknięcie aktywnego połączenia 

DISCONNECT   identyfikator__połączenia

jeśli została wcześniej podana nazwa połączenia 

DISCONNECT 

 

połączenie domyślne lub połączenie wykorzystujące 

identyfikator użytkownika

background image

 

 

Połączenie z bazą danych

Istnieją dwie strategie rządzące czasem trwania połączeń 

z bazą danych: 

połączenie w momencie rozpoczęcia pracy i 

odłączenie po jej zakończeniu

eliminuje konieczność wielokrotnego łączenia i rozłączania

uniemożliwia innym użytkownikom wykorzystanie tego 

samego połączenia w chwilach bezczynności połączonej osoby

stwarza problemy w sytuacji, gdy ilość użytkowników 

mogących jednocześnie korzystać z bazy danych jest 

znacząco mniejsza od ilości wszystkich użytkowników tej bazy 

połączenie w momencie uruchomienia pojedynczej 

transakcji i odłączenie się natychmiast po jej 

zakończeniu

 

tymczasowe tabele istnieją tylko na czas trwania sesji!

wymaga większych nakładów czasu procesora na obsługę 

połączeń, ale umożliwia jednoczesny dostęp do bazy danych 

większej liczbie użytkowników

background image

 

 

Cechy transakcji

 

Każda transakcja powinna mieć 

następujące właściwości: 

• Niepodzielność 
• Spójność 
• Izolacja
• Trwałość

background image

 

 

Kończenie transakcji

Wszystkie transakcje kończą się na jeden z dwóch 

sposobów:

sukcesem

 oznaczającym trwałe wprowadzenie wszystkich 

modyfikacji do bazy danych

porażką

oznaczającą odwołanie transakcji i odtworzenie 

stanu bazy sprzed jej rozpoczęcia transakcji

Z definicji, transakcja zakończona sukcesem nie 

może zostać odwołana

System zarządzania zapisuje wszystkie 

podejmowane przez transakcję czynności w 

rejestrze transakcji - aby móc ją odwołać

background image

 

 

Operacje COMMIT i ROLLBACK

•  COMMIT

[ nazwa tabeli ] 

– zapamiętuje tablicę w bazie danych lub 

uzupełnia stan bazy danych 

– zapamiętuje wszystkie zmiany w bazie danych 

od ostatniej operacji COMMIT

• ROLLBACK 

– odtwarza stan bazy danych i przywraca jej 

status do stanu po ostatniej operacji COMMIT

– zmiany wprowadzone do bazy danych po 

ostatniej operacji COMMIT są odwracane 

background image

 

 

Główne kroki przy wykonywaniu transakcji:

• Uruchom transakcję i przekaż do SPT
• Zapisz transakcję do dziennika – zapisz w 

dzienniku informacje początkowe o 
transakcji

• Sprowadź rekordy z bazy danych
• Zapisz do dziennika obraz przed transakcją
• Oblicz nowe wartości
• Zapisz do dziennika obraz po transakcji 
• Zapisz w dzienniku zatwierdzenie
• Zapisz nowe rekordy do bazy danych

background image

 

 

KOPIA ZAPASOWA I ODTWARZANIE

•  W przypadku awarii administrator odtwarza dane z 

wcześniej wykonanej kopii zapasowej

• Opracowuje strategię sporządzania kopii zapasowej 

całej bazy danych, albo jej części -  wykonuje się 
okresowo używając specjalnych narzędzi SZBD

• Awarie globalne można podzielić na dwie kategorie:

– Awarie systemowe (zasilanie) – dotykają 

aktualnie wykonywanych transakcji, ale nie 
uszkadzają fizycznej bazy danych (miękkie 
awarie)

– Awarie nośników (uszkodzenie dysku) – 

uszkodzenie bazy danych lub jej części (awarie 
twarde)

background image

 

 

 

Czas

T
R
A
N
S
A
K
C
J
A

T1

T2

T3

T4

T5

Punkt 
kontrolny

Awaria 
systemu

ODTWARZANIE TRANSAKCJI

background image

 

 

ODTWARZANIE TRANSAKCJI

• Tworzy dwie listy transakcji 

– UNDO (transakcje uzyskane z aktualnego rekordu 

kontrolnego)

– REDO (pusta lista)

• Przeszukuje (do przodu) dziennik transakcji zaczynając od 

rekordu kontrolnego. Jeśli napotka na pozycję BEGIN 

TRANSACTION dla danej transakcji  dodaje tą transakcję do 

listy UNDO

• Jeśli znajdzie COMMIT dla transakcji, przesuwa transakcję z 

listy UNDO do REDO

• System ponownie przechodzi przez dziennik, ale tym razem 

wstecz, cofając skutki transakcji z listy UNDO

• Posuwa się do przodu i ponownie wykonuje transakcje z listy 

REDO

• Kiedy napotka na znak końca dziennika, wtedy lista UNDO 

wskazuje transakcje T3 i T5 a REDO T2 i T4

background image

 

 

ODTWARZANIE TRANSAKCJI

• System przechodzi ponownie przez dziennik 

transakcji -tym razem wstecz - cofając skutki 
transakcji z listy UNDO

• Potem posuwa się do przodu i ponownie 

wykonuje transakcje z listy REDO

system jest gotowy do pracy – po zakończeniu 

wszystkich tych czynności

 

background image

 

 

ODTWARZANIE NOŚNIKÓW

• Błąd danych wiąże się z awarią dysków lub jego 

kontrolera – fizyczne uszkodzenie dysku

• Odzyskiwanie danych – ponowne załadowanie 

bazy z kopii zapasowej

• Wykorzystanie dziennika transakcji do 

ponownego wykonania wszystkich operacji, które 
zakończyły się od czasu wykonania kopii

background image

 

 

skalowalność

skalowalność 

dostępność

dostępność

łatwość zarządzania

łatwość zarządzania

bezpieczeństwo

bezpieczeństwo

Charakterystyka rozproszonych        

Charakterystyka rozproszonych        

            baz danych

            baz danych

background image

 

 

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

background image

 

 

Wieloprzetwarzanie symetryczne SMP

Wieloprzetwarzanie symetryczne SMP

 (pamięć dzielona)

 (pamięć dzielona)

Sieć komputerowa

proceso

r

proceso

r

proceso

r

proceso

r

pamięć

background image

 

 

Dzielony dostęp do dysku

Dzielony dostęp do dysku

Sieć komputerowa

proceso

r

proceso

r

proceso

r

proceso

r

pamięć

pamięć

pamięć

pamięć

background image

 

 

Przetwarzanie masywnie równoległe 

Przetwarzanie masywnie równoległe 

(MPP - żaden zasób nie jest 

(MPP - żaden zasób nie jest 

współużytkowany)

współużytkowany)

Sieć komputerowa

proceso

r

proceso

r

pamięć

pamięć

proceso

r

pamięć

proceso

r

pamięć

background image

 

 

Przetwarzanie rozproszone

Przetwarzanie rozproszone

Sieć 

komputero

wa

BD

Węzeł 2

Węzeł 4

Węzeł 3

Węzeł 1

background image

 

 

Problemy

Problemy

• konstrukcja rozproszonych baz danych

• rozproszone wykonywanie zapytań

• zarządzanie rozproszonymi kartotekami      

• rozproszona kontrola współbieżności

• rozproszone zarządzanie blokowaniami

• niezawodność systemów zarządzania 

rozproszonymi bazami danych

• wsparcie systemu operacyjnego

• różnorodność baz danych

Charakterystyka rozproszonych baz 

Charakterystyka rozproszonych baz 

danych

danych

background image

 

 

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ść

background image

 

 

Fragmentacja jest procesem rozdzielenia 

zbioru danych na kilka podzbiorów 
(nazywanych fragmentami)

Charakterystyka rozproszonych baz 

Charakterystyka rozproszonych baz 

danych

danych

hybrydowa 
(mieszana)

horyzontalna 

(pozioma)

wertykal

na 

(pionow

a)

background image

 

 

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)

Charakterystyka rozproszonych baz 

Charakterystyka rozproszonych baz 

danych

danych

background image

 

 

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. 

Bazując na tej definicji spróbujmy zdefiniować 

rozproszony SZBD.

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. 

background image

 

 

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

background image

 

 

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 
• Koszty 
• Rozwój modularny 

background image

 

 

Wady RSZBD 

• Złożoność 
• Koszty 
• Trudniejsze zapewnienie 

bezpieczeństwa 

• Trudniejsza kontrola integralności 
• Brak standardów 
• Brak doświadczeń 
• Bardziej skomplikowane 

projektowanie bazy danych 

background image

 

 

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,

background image

 

 

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 

background image

 

 

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

. . . 

background image

 

 

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


Document Outline