System zarządzania bazą danych SZBD

advertisement
1
Baza danych jest modelem pewnej rzeczywistości,
tą rzeczywistość realną nazywamy obszarem
analizy.
Istotne obiekty analizy:
bloki przedmiotowe- moduły
studenci
Istotne obiekty analizy nazywamy klasami lub
encjami. Związki, które zachodzą między klasami
(encjami) są częścią obszaru analizy. Każda klasa
posiada właściwości (atrybuty).
Mówimy, że klasy są zidentyfikowane poprzez
pewne informacje przechowywane na temat
obiektów tej klasy, np.: student identyfikowany jest
poprzez nazwisko, imię, numer albumu.
Baza danych jest zbiorem danych
reprezentujących pewien obszar analizy. Jednostka
danych (lub potocznie dana) jest symbolem lub
zbiorem symboli reprezentujących jakiś fakt, jakąś
rzecz. Aby fakt był użyteczny musi zostać
zinterpretowany. Zinterpretowane dane nazywa się
często informacjami. Informacje mają przypisane
znaczenie, np.: liczba 23 może oznaczać wiek,
numer albumu; bez interpretacji nie wiemy co ona
oznacza. Mówimy, że baza danych jest zbiorem
faktów (pozytywnych) o pewnym obszarze analizy.
Baza danych, w ściśle określonej chwili, jest w
pewnym stanie, czyli jest to zbiór faktów
dotyczących bazy, zbiór faktów prawdziwych w
danej chwili.
Baza zawiera dwa podstawowe elementy:
- zbiór definicji opisujących strukturę – schemat
bazy danych tworzenie schematu – projekt bazy
lub projektowaniem bazy
- łączny – całkowity zbiór danych w bazie danych.
Integralność oznacza, że baza jest dokładnym
odbiciem swojego obszaru analizy.
Proces integralności powinien zapewnić przejście
zmianę bazy danych poprzez stany poprawne.
Integralna baza nie powinna posiadać
powtarzających się faktów lub przejść, czyli nie
powinna posiadać replikacji
Transakcje są to zdarzenia powodujące zmianę
stanu bazy danych.
Integralność jest realizowana poprzez więzy
integralności - reguły określające w jaki sposób
baza ma pozostać dokładnym odbiciem swojego
obszaru analizy.
Więzy dzielimy na:
- więzy statyczne (niezmienniki stanu)- są
używane do sprawdzania czy wykonywana
transakcja nie zmienia stanu bazy w stan
niepoprawny.
- więzy przejść- są to reguły wiążące ze sobą stany
bazy. Więzy przejść są ograniczeniami
nakładanymi na same przejścia.
Podstawowe funkcje bazy danych
Do wykonywania operacji na bazie używamy
dwóch rodzajów funkcji:
- funkcje aktualizujące – dokonują one fizycznie
zmiany w bazie – np. zaliczamy transakcje
zmieniające bazę z jednego stanu w drugi , wiąże
się z nimi ciąg warunków reprezentujących więzy
integralności oraz ciąg akcji określających co
powinno się zdarzyć, jeżeli warunki będą
prawdziwe.
- funkcje zapytań – za ich pomocą wydobywa się
dane z bazy danych - nie modyfikują samej bazy,
głównie sprawdzają czy fakt lub grupa faktów jest
spełniona w danym stanie bazy danych. Funkcje te
zwracają nie określenie czy zachodzi prawda lub
fałsz, ale zwracają pewien zbiór wartości.
Każdy system bazy danych, używa pewnych
formalizmów nazywanych modelem danych,
inaczej są to ściśle określone reguły za pomocą,
których można konstruować system bazy danych.
Baza danych może być używana przez jednego
użytkownika, jednak często baza danych jest
wielodostępna. Ważne jest zachowanie spójności
bazy danych, żeby nie zawiodła w przypadku, gdy
korzysta z niej dwóch użytkowników.
Bazą danych nazywamy zbiór danych o określonej
strukturze zapisany na zewnętrznym nośniku
pamięci komputera mogącym zaspokoić potrzeby
wielu użytkowników korzystających z niego w
sposób selektywny w dogodnym dla siebie czasie.
Baza danych jest to zbiór danych zorganizowanych
przez system zarządzania bazą danych
System zarządzania bazą danych SZBD
SZBD  DBMS
DBMS – DATABASE MANAGEMENT
SYSTEM
SZBD – zorganizowany zbiór narzędzi
umożliwiających dostęp i zarządzanie bazą lub
wieloma bazami danych.
Elementarne zadania SZBD
1.Umożliwienie użytkownikowi utworzenia nowej
bazy danych i określenie jej schematu, czyli
logicznej struktury danych za pomocą
specjalizowanego języka definiowania danych.
2.Udostępnianie użytkownikowi możliwości
tworzenia zapytań o dane – query (kwerendzapytania) oraz aktualizowania danych za pomocą
języka zapytań – języka operowania danymi =
język zapytań.
3.Zapewnienie możliwości przechowywania
ogromnej ilości danych przez dłuższy czas
chroniąc je przed przypadkowym, nieprawidłowym
dostępem oraz umożliwianie efektywnego dostępu
do danych z poziomu języka zapytań i operacji na
danych.
4.Sterowanie jednoznacznym dostępem do danych
przez wielu użytkowników z zapewnieniem
bezkolizyjności oraz ochrony danych przed
przypadkowym uszkodzeniem
Funkcje systemu SZBD
1.
Zarządzanie plikami
dodawanie nowych plików do bazy danych
usuwanie plików z bazy danych
modyfikowanie struktury istniejących plików
wstawianie nowych danych do istniejących
plików
modyfikowanie danych w istniejących
plikach
usuwanie danych z istniejących plików
2.
Wyszukiwanie informacji
wydobywanie danych z istniejących plików
do stosowania przez użytkowników
wydobywanie danych z istniejących plików
przez programy użytkowe
3.
Zarządzanie bazą danych
tworzenie i monitorowanie użytkowników
bazy danych
ograniczanie dostępu do plików w bazie
danych
monitorowanie działania samej bazy danych.
Właściwości SZBD
1.Współdzielenie danych, przez niektórych
nazywane współbieżnością dostępu lub korzystanie
z bazy.
2.Integracja danych – jeden logiczny element w
bazie powinien być przechowywany tylko w
jednym miejscu.
3.Integralność danych – zmiany danych winny być
odzwierciedlone w wielu miejscach, gdzie
następuje odwołanie do tych zmiennych lub
„możliwość stwarzania użytkownikowi
definiowania reguł pozwalających zachować
warunki integralności”.
4.Poufność i bezpieczeństwo danych.
5.Abstrakcja i opis danych – określenie,
wydzielenie niektórych właściwości obiektów
przechowywanych w bazie.
Poziom opisu danych:
opis logiczny (z punktu widzenia
użytkownika)
opis fizyczny
6.Niezależność danych – oddzielenie danych od
procesów, które te dane będą używać.
7.Niezawodność – awaria sprzętowa lub
programowanie powinna wpłynąć na integralność
bazy po usunięciu awarii.
Właściwości powyżej wymienione są w danej
bazie osiągnięte tylko częściowo.
Zapytania mogą być sformułowane dwojako:
-poprzez interfejs zapytań bezpośrednich
-poprzez interfejs programów użytkowych
Aktualizacja – dotyczy operacji zmiany danych
dwoma drogami:
-poprzez interfejs zapytań bezpośrednich
-poprzez interfejs programów użytkowych
Modyfikacje (modyfikacja samego schematu
DBMS) dotyczy administratora bazy.
Moduł Zarządzania Pamięcią w prostych
systemach zarządzania może bezpośrednio
odpowiadać systemowi plików z podstawowego
systemu operacyjnego.
Moduł Zarządzania Plików przechowuje dane o
miejscu zapisania pliku na dysku i jest
odpowiedzialny za ich przesyłanie w postaci
blokowej.
Moduł Zarządzania Buforami obsługuje pamięć
operacyjną i jest odpowiedzialny za przydzielanie
odpowiednich obszarów pamięci operacyjnej i
przydzielenie ich blokom.
Procesor Zapytań nazywany jest Modułem
Zarządzania Zapytaniami, przekształca zapytania
lub operacje na bazie formułowane zazwyczaj w
języku „bardzo wysokiego poziomu”
(np. SQL) w ciąg poleceń żądających dostarczenia
odpowiednich danych. Najtrudniej jest
optymalizować zapytania, czyli generować
odpowiedzi w najkrótszym możliwie czasie.
Moduł Zarządzania Transakcjami ma
gwarantować pewność i kompletność
przeprowadzania wszystkich operacji „w jednym
ciągu”. Opisuje się to za pomocą właściwości
poprawności przeprowadzenia transakcji ACID
(Atomicity Consistency Isolation Durability –
Niepodzielność Spójność Izolacja Trwałość).
1. Atomicity – jest wykonywana albo cała
transakcja, albo nic
2. Consistency – po zakończeniu transakcji baza
musi zachowywać spójność – niesprzeczność
3. Isolation – przy jednoczesnym przeprowadzaniu
kilku transakcji ich działania nie mogą na siebie
wpływać
4. Durability – wynik transakcji nie może być
utracony z powodu awarii systemu
Do realizacji tych 4 własności wykorzystuje się:
- blokady - MZT blokuje elementy, których
dotyczy wykonywana transakcja
- logi – MZT dokonuje zapisu na dysku takich
danych jak:
- rozpoczęcie transakcji
- zmiany w bazie przez transakcję
- zakończenie transakcji
- zatwierdzenie transakcji – w chwili gdy
transakcja kończy działanie jest gotowa do
zatwierdzenia (zmiany są kopiowane do logu, log
jest zapisywany na HDD, aktualizacja samych
danych)
Modele danych
- Relacyjny Model Danych
Klasyczny
Hierarchiczny
Sieciowy
Obiektowy Model Danych
RMD– jest tylko jedna struktura danych – relacja.
Relacja to tabela, dla której jest spełniony zbiór 7
zasad.
ZASADY:
1.każda relacja w bazie ma jednoznaczną nazwę
(relacja  zbiór)
2.każda kolumna w relacji ma jednoznaczną nazwę
w ramach jednej relacji (to też zbiór)
3.wszystkie wartości w kolumnie muszą być tego
samego typu
4.porządek kolumn w relacji nie jest istotny (lista
nazw kolumn to też zbiór)
5.każdy wiersz relacji musi być różny
6.porządek wierszy nie jest istotny
2
7.każde pole leżące na przecięciu kolumny i
wiersza w relacji powinno zawierać wartość
atomową (zbiór wartości nie jest dozwolony na
jednym polu relacji)
kolumny tabeli w RMD to atrybuty
wiersze tabeli to krotki
liczba kolumn w tabeli to stopień tabeli
liczba wierszy w tabeli to liczebność tabeli
DEF 1. Niech dane będą zbiory D1,D2, ... ,Dn.
Relacją matematyczną R nad tymi zbiorami
nazwiemy dowolny podzbiór iloczynu
kartezjańskiego nad tymi zbiorami
R D1xD2x ... xDn={d1, d2, ... , dn}:diD i=1,2, ...
,n
Ta relacja jest relacją n-członową. Ponieważ nczłonowa relacja jest zbiorem n-elementowych
ciągów, więc istotna jest kolejność D1xD2D2xD1
W RMD chodzi o uniezależnienie się od
uporządkowania zbiorów, więc mamy inną
konwencję notacyjną. Zamiast traktować elementy
n-członowej relacji jako n-elementowe ciągi lub
zamiast traktować funkcję f ze zbioru {1,2, ... , n}
w zbiór D1  D2  ...  Dn gdzie f(i)Di traktuje
się jako funkcję nad pewnym n-elementowym
zbiorem symboli zwanych atrybutami – nie musi
być w tym zbiorze żadnych relacji porządkujących.
Niech dany będzie zbiór U={A1, A2, ... , An},
którego elementy nazywać będziemy atrybutami, i
niech AU, przyporządkowany zbiór wartości
DOM nazywamy domeną lub dziedziną A.
DEF 2. Krotką (TUPLE) typu U nazywamy
dowolną funkcję f:U{DOM(A):AU} taką, że
dla dowolnego AU f(A)DOM(A).
Zbiór wszystkich krotek typu U oznaczamy
KROTKA(U)
Jeśli zbiór pustyfunkcja pustanazywamy ją 
DEF 3. Relacją typu U nazywamy dowolny
skończony podzbiór KROTKA(U).
Zbiór wszystkich relacji typu U oznaczamy
REL(U).
UPROSZCZENIA:
1)Relacje typu U oznaczamy R(U), S(U) lub krócej
R,S
2)Krotki typu U oznaczamy r(U), n(U)
3)Podzbiory zbiorów atrybutów oznaczamy X,Y,Z
4)Krotkę r typu U niekiedy utożsamiamy z ciągiem
jej wartości
r={(A1,a1), (A2,a2), ... ,(An,an)} i ai=r(A) i=1,2, ...
,n
czyli (a1,a2, ...,an)
5)Dla zbioru atrybutów {A,B} zamiast R({A,B})
piszemy R(A,B)
Niech U={A1,A2, ...,An), wówczas krotkę r(U)
można przedstawić w postaci tabeli:
r 
A1 A2 ... An
r ( A1 )r ( A2 )...r ( An )
Relacja R(U) jest skończonym zbiorem krotek typu
U, R=(r1,r2,...,rn), takich, że ri(A)DOM(Ai) gdzie
i=1,2, ..., n.
Wykorzystujemy tabelaryczne przedstawienie
relacji R
Właściwości:
1.Nazwa tabeli będzie nazwą relacji
2.Jeżeli U jest zbiorem n-elementowym to tabela
będzie miała n kolumn, z których każda ma
przyporządkowany jeden z atrybutów ze zbioru U
jako nazwę
3.Uporządkowanie kolumn tabeli jest nieistotne
4.W kolumnie o nazwie AU mogą występować
wartości ze zbioru DOM(A)
5.Żadne z dwóch wierszy w tabeli nie mogą być
identyczne
6.Nieistotne jest uporządkowanie wierszy
Zakładamy, że dziedziny DOM(A),
przyporządkowane atrybutom AU, są zbiorami
wartości prostych. O wartości aDOM(A)
powiemy, że jest wartością prostą, jeżeli nie jest
ona ani zbiorem ani ciągiem elementów należących
do {DOM(A) : AU}.
DEF 4
R(U) jest w pierwszej postaci normalnej jeżeli
dziedziny DOM(A) wszystkich atrybutów AU są
zbiorami wartości prostych.
Operacje na danych (relacjach)
1.
wstawianie danych do relacji
2.
usuwanie danych z relacji
3.
edycja danych
4.
wyszukiwanie danych
Algebra Relacyjna
1.
selekcjaograniczenie
2.
rzut (projekcja)
3.
złączenie
4.
dopełnienie
5.
suma
6.
przecięcie (przekrój)
7.
różnica
8.
iloraz (podzielenie)
1-3 główne, 4-8 modelowane na operatorach teorii
zbiorów
operacje mnogościowe (zbiory) - suma, różnica,
przecięcie, dopełnienie
operacje relacyjne – (def. oparte o rozumienie
relacji jako zbioru krotek) projekcja, selekcja,
złączenie, iloraz.
Operacje mnogościowe
DEF 5
Relację T(U) nazywamy sumą relacji R(U) i S(U),
co oznaczono T=RS, wtedy i tylko wtedy, gdy
T={tKROTKA(U) : tR  tS}.
DEF 6
Relację T(U) nazywamy różnicą relacji R(U) i
S(U), co oznaczamy T=R-S, wtedy i tylko wtedy,
gdy T={tKROTKA(U) : tR  tS}.
DEF 7
Relację T(U) nazywamy projekcją (przecięciem)
relacji R(U) i S(U), co oznaczamy T=RS, wtedy i
tylko wtedy, gdy T={tKROTKA(U) : tR 
tS}.
DEF 8
Relację T(U) nazywamy dopełnieniem relacji
R(U) , co oznaczamy T=-R, wtedy i tylko wtedy,
gdy T=KROTKA(U)-R={tKROTKA(U) : tR }.
dopełnienie jest określone gdy zbiór
KROTKA(U)
Przykład
RS=-(-R-S)
R-S=R(-S)=-R(-RS)
Operacje Relacyjne
Ograniczenie krotki typu U do zbioru XU
DEF 9
Niech dana będzie krotka r typu U i niech XU.
Krotkę typu X nazywamy ograniczeniem krotki r
do zbioru X, co oznaczamy t=r[X] wtedy i tylko
wtedy, gdy dla każdego AX, r(A)= t(A), czyli
gdy krotki r i t są identyczne na zbiorze X, na
zbiorze U-X mogą być różne.
Złączenie krotek
DEF 10
Niech dla dowolnych zbiorów otwartych X,YU
dane będą krotki r typu X i s typu Y. Krotkę t typu
Z, gdzie Z=XY nazywamy złączeniem krotek r
i s, co oznaczamy t=r  s, wtedy i tylko wtedy,
gdy t[X]=r i t[Y]=s, czyli wtedy, gdy ograniczenie
krotki t do zbioru X jest tożsame z r i ograniczenie
krotki t do Y jest tożsame z s.
Między operacjami ograniczenia i złączenia
zachodzi następująca zależność:
t(XY)=r(X)  s(Y)t[X]=rt[Y]=s .
Projekcja
DEF 11
Niech dana będzie relacja R typu U oraz zbiór
XU. Relację T typu X nazywamy projekcją
relacji R na zbiór X, co oznaczamy T=R[X]
wtedy i tylko wtedy, gdy
T={tKROTKA(X) :( r  R ) t=r[X]}
alternatywnie
Własność 1
Niech dana będzie relacja R typu U, niech XU.
Wówczas
R[X]={tKROTKA(X) ( s  Krotka(U  X ) )
t  sR}
Selekcja
Niech U – zbiór atrybutów
A,A`- dowolne atrybuty ze zbioru U
v – dowolna wartość ze zbioru {DOM(A) :
AU}  {,,,,,}
symbol negacji, -symbol koniunkcji, symbol alternatywy
1.Elementarnym warunkiem selekcji nazywamy
dowolne wyrażenie postaci A lub AA`
2.Warunek selekcji definiujemy w sposób
rekurencyjny:
a)każdy elementarny warunek selekcji jest
warunkiem selekcji
b)jeżeli E i E` są warunkami selekcji, to również
(E), (EE`) oraz (EE`) są warunkami selekcji.
DEF 12
Relację T(U) nazywamy selekcją relacji R(U)
względem warunku selekcji E, co oznaczamy
T=R/E/, wtedy i tylko wtedy gdy T={tR:
E(t)=true}.
Złączenie
DEF 13
Niech dane będą relacje R typu X i S typu Y.
Relację T typu XY nazywamy złączeniem
relacji, co oznaczamy T=R  S, wtedy i tylko
wtedy, gdy
T={tKROTKA(XY):t[X]Rt[Y]S}
Własność 2 (alternatywnie)
Niech R będzie relacją typu X, a S relacją typu Y.
Wówczas
R  S={tKROTKA (XY):( r  R )
( s  S ) t=r  s}
Dla złączenia zachodzą zależności
R  S=S  R
(R  S)  T=R  (S  T)
jeżeli X U, to R[X]  R=R
jeżeli XY=U, to RR[X]  R[Y]
Podzielenie (wersja teoretyczna)
DEF 14
Niech dana będzie relacja R(U) i zbiór atrybutów
XU. Relacja T(U-X) nazywamy podzieleniem
(ilorazem) relacji R przez zbiór X, co oznaczamy
T=R/X, wtedy i tylko wtedy, gdy
T={tKROTKA(U-X): ( s  KROTKA( X ) )
t  sR}cc
W praktyce wyznaczanie krotki typu X i U-X jest
trudne dlatego przyjmuje się, że zbiory krotek tych
typów są projekcjami.
Algorytm podzielenia
1.Utworzenie pustej relacji T typu U-X
2. Czy przeanalizowano wszystkie krotki typu U-X
3.Weź kolejną krotkę typu U-X
4. Czy dla każdej konstrukcji typu X złączenie
t  sR
5. Włącz t do relacji T
6. Relacją wynikową jest T
Podzielenie (wersja praktyczna)
DEF 15
Niech dana będzie relacja R(U) i niech dla
pewnego XU dana będzie relacja S typu X.
Relację T(U-X) nazywamy podzieleniem
(ilorazem) relacji R(U) przez relację S, co
oznaczamy T=R:S, wtedy i tylko wtedy, gdy
T={tR[U-X]: ( s  S ) t  sR}
Lemat alternatywny:
R:S={tR[U-X]: SR [t,X]}
gdzie R[t,X]={sR[X]: t  sR}
Algorytm:
1. Utwórz pustą relację T[U-X].
2. Wyznacz projekcje R[U-X].
3
3. Czy przeanalizowano wszystkie krotki z R[U-X]
?
4. Weź kolejną krotkę tR[U-X].
5. Wyznacz R[t,X].
6. Czy SR[t,X]?
7. Dołącz t do relacji T.
8. Relacją wynikową jest T.
KLUCZ
Każda relacja musi posiadać tzw. klucz główny,
aby uniknąć powtarzania się wierszy w relacji. Jest
to jedna lub więcej kolumn w tabeli, która
jednoznacznie identyfikuje wiersz. Może być wiele
kluczy kandydujących w relacji, ale z nich
wybiera się jeden klucz główny. Każdy klucz
kandydujący (również główny) musi być
jednoznaczny – musi posiadać wartość (nie może
posiadać wartości „null”). Null jest trzecią
wartością logiczną wg CODD’a. Klucze obce to
kolumna lub grupa kolumn czerpiących wartość z
tej samej dziedziny co klucz główny powiązany z
nią w bazie danych.
SELEKCJA
Jest to pozioma maszynka do cięcia, która
wydobywa wartość pasującą do klucza i wysyła ją
na wyjście.
RESTRICT <nazwa tabeli>
[WHERE<warunek>]<tabela wynikowa>
np. RESTRICT MODUŁY WHERE
SEMESTR=1 R1
PROJEKCJA (RZUT)
Bierze jedną relację jako argument i produkuje
jedna relację wynikową – pionowa maszynka do
cięcia, daje jedna lub wiele kolumn na wyjściu.
POJECT <nazwa tabeli> [<LISTA
KOLUMN]<tabela wynikowa>
np. PROJECT MODUŁY [NazwaMod]R1
ZŁĄCZENIA
Oparte są na relacyjnym operatorze iloczynu
kartezjańskiego.
PRODUCT <tabela1>WITH<tabela2><tabela
wynikowa>
W praktyce są stosowane 3 rodzaje złączeń:
-RÓWNOZŁĄCZENIA
Iloczyn kartezjański po którym wykonywana jest
selekcja.
EQUIJOIN <tabela1>WITH<tabela2><tabela
wynikowa>
np. EQUIJOIN WYKŁADOWCY WITH
MODUŁY  R1
Nie usuwa powtarzających się kolumn...
(2xNrPrac)
-ZŁĄCZENIA NATURALNE
iloczyn kartezjański+selekcja+rzut
JOIN <tabela1>WITH<tabela2><tabela
wynikowa>
np. JOIN WYKŁADOWCY WITH
MODUŁYR1
-ZŁĄCZENIA ZEWNĘTRZNE
Są 3 typy – lewo-, prawo- i obustronne
SUMA
Musimy mieć dwie zgodne tabele (taka sama
struktura, takie same kolumny określone na tych
samych dziedzinach).
<tabela1>UNION<tabela2><tabela wynikowa>
np. WYKŁADOWCY UNION
ADMINISTRATORZY  R1
PRZECIĘCIE
Uwzględnia tylko wspólne wiersze obu tabel.
<tabela1>INTERSECTION<tabela2><tabela
wynikowa>
np. WYKŁADOWCY INTERSECTION
ADMINISTRATORZY  R1
RÓŻNICA
<tabela1>DIFERENCE<tabela2><tabela
wynikowa>
np. WYKŁADOWCY DIFERENCE
ADMINISTRATORZY  R1
np. ADMINISTRATORZY DIFERENCE
WYKŁADOWCY  R1
PROCEDURALNE JĘZYKI ZAPYTAŃ
Zapytanie o to, jakie moduły prowadzi Bryszewski
możemy sformułować następująco:
np.
RESTRICT WYKŁADOWCY WHERE
NazwiskoPrac=”Bryszewski”  R1
JOIN R1 WITH MODUŁY ON NrPrac  R2
PROJECT R2 (NazwaMod)  R3
lub
JOIN WYKŁADOWCY WITH MODUŁY ON
NrPrac  R1
SELECT R1 WHERE
NazwiskoPrac=”Bryszewski”  R2
PROJECT R2 (NazwaMod)  R3
lub
PROJECT (JOIN MODUŁY WITH
(RESTRICT WYKŁADOWCY
WHERE NazwiskoPrac=”Bryszewski”)
ON NrPrac)
(NazwaMod)
KLASYCZNE MODELE DANYCH
Model podstawowy to tzw.” model prosty” . W
tym modelu obiekty są reprezentowane za pomocą
struktury rekordów.
- implementacje związków w modelu relacyjnym
to poprzez klucze obce, tutaj powiązania typu
nadrzędny, podrzędny.
-W modelu hierarchicznym danymi jest
wykonywane poprzez wbudowanie funkcji dostępu
do bazy w wybranym języku programowania ( w
języku gospodarza). Hierarchiczne języki zapytań
są opisywane jako proceduralne języki zapytań.
W modelu hierarchicznym występuje wiele
wewnętrznych więzów integralności:
1.nie mogą istnieć żadne wystąpienia rekordów
poza jednym wyjątkiem – rekordem
korzeniem(najwyższym korzeniem w hierarchii).
2.nie mogą istnieć wystąpienia bez powiązania z
odpowiednim wystąpieniem rekordu podrzędnego.
3.nie można wstawić rekordu podrzędnego dopóki
nie zostanie powiązany z nadrzędnym.
Rekord jest rozumiany jako podstawowa
4.usunięcie rekordu nadrzędnego powoduje
jednostka informacji przy zapisie informacji do
automatyczne usunięcie wszystkich powiązanych z
pliku (pojęcie bezpośrednio wzięte z modelu
prostego). Rekord ma w danej strukturze stałą
długość. Rekord to odpowiednik krotki lub
wiersza.
Głównymi operacjami w tym modelu są operacje
na rekordach:
nim rekordów podrzędnych
5.jeżeli podrzędny typ rekordu ma związane dwa
lub więcej nadrzędnych typów rekordów, to rekord
podrzędny musi być powielony dla każdego
rekordu podrzędnego.
a)
zapis rekordu
Model sieciowy
W modelu sieciowym tak jak w modelu
b)
odczyt rekordu
hierarchicznym są dwa typy danych: rekordy i
Każdy rekord jest podzielony na pola, posiadające
powiązania.
określoną długość, nazwę i typ w ramach
Różnice pomiędzy modelem sieciowym
hierarchicznym:
1.pola mogą być używane do przechowywania
zdefiniowanej struktury rekordu. Bezpośrednim
a
rozszerzeniem modelu prostego jest model
wielu wartości lub do reprezentowania złożonych
hierarchiczny, a klasyczny sieciowy jest
wartości, które się powtarzają
traktowany jako rozszerzenie modelu klasycznego.
2.w odróżnieniu od modelu hierarchicznego, gdzie
Model hierarchiczny:
jeden rekord może mieć najwyżej jeden rekord
- nie posiada jednolitej teoretycznej podstawy
nadrzędny w modelu sieciowym jeden rekord może
- opracowany w oparciu o analizę istniejących
implementacji
- są używane dwie struktury danych:
1) REKORD
2) POWIĄZANIA
Poszczególne rekordy to zbiór pól o określonych
atrybutach i przypisanych typach, np. (integer,
string[])
Powiązanie- związek określony jako jeden do
wielu między dwoma typami rekordów; w tym
modelu ma charakter nadrzędny, podrzędny.
Inaczej jest to model złożony z wielu typów
rekordu, powiązanych za pomocą związków
podrzędnych, nadrzędnych.
Różnice między modelem hierarchicznym i
relacyjnym:
- model hierarchiczny(typy rekordów) ma inne
struktury danych niż model relacyjny(relacje,
związki)
mieć kilka rekordów nadrzędnych.
3.w modelu sieciowym występują nowe jednostki
danych.
Organizacja CODASYL wprowadziła następujące
rodzaje danych:
1) dana elementarna DATA ITEM
2) wektor
VECTOR
3) grupa powtórzeniowa REPEATING GROUP
Te trzy jednostki nie mogą istnieć samodzielnie,
mogą być składowymi rekordu.
4) rekord RECORD
5) kolekcja SET
Skończony zbiór rekordów tego typu możemy
nazwać plikiem typu P,R,S.
Przy włączeniu rekordu do pliku jest on w praktyce
rozszerzany o jeszcze jedno pole:
Pole klucza – umożliwi to jednoznaczną
identyfikację rekordu.
4
- last()(r) = sL  L > 0
END  L = 0
- last()(si) = sL  1  i  L
- next()(r) = s1  L > 0
END  L = 0
- next()(si) =si+1  i < L
END  i = L
- prior()(r) = END
- prior()(si) =si-1  i > 1
END  i = 1
W przypadku wektorów oraz grup
powtórzeniowych konieczna jest znajomość
aktualnej wartości tzw. Licznika powtórzeń.
Wyróżniki rekordu i grupy powtórzeniowej:
1)grupa powtórzeniowa nie może istnieć
KOLEKCJA
Podstawowe zadanie, to odzwierciedlenie
powiązań 1 do n między poszczególnymi typami
rekordów.
Zał.
 - jakaś tam nazwa
R,S1,S2,...,Sm – pewne typy rekordów
takie, że:
- Si  Sj dla i  j
- Dla pewnego i<1,m> może zachodzić R=Si
- Dla każdego i<1,m> między r i si istnieje
powiązanie 1 i M
Wówczas , to nazwa typu kolekcji, a zapis (
R,S1,S2,...,Sm) to typ kolekcji.
R to typ właściciela (ower) – typ właściciela
kolekcji .
Każdy z rekordów Si i<1,m> nazywamy typem
podwładnego (member) lub członka kolekcji .
Graficznie jest to hiperdrzewo złożone z
wierzchołków.
samodzielnie w bazie, wchodzą w skład rekordu.
2)Powiązania między grupami powtórzeniowymi
mogą mieć tylko charakter zależności
hierarchicznych.
4)Jedna grupa powtórzeniowa może być
podporządkowana innej wchodząc w jej skład.
5)Między rekordami trzeba ustalić zależności
zarówno hierarchiczne jak i sieciowe.
Rekord tego typu może być podrzędny w stosunku
do rekordu kilku plików .
W modelu sieciowym takie powiązania realizuje
się przez założenie dodatkowej struktury na typy
rekordów, poprzez kolekcję.
Zbiór wszystkich wystąpień  będziemy oznaczać
KOLEKCJA() = {(r1), (r2), ... , (rN)}
jeśli F(R) = {r1, r2, ... , rN}.
Wyróżnia się:
- kolekcje jednostkowe
- rekurencyjne
KOLEKCJE JEDNOSTKOWE
Mówimy o niej wtedy, gdy typ kolekcji ma postać
(SYSTEM, R), czyli typem właściciela kolekcji
jest wyróżniony typ rekordów SYSTEM, a
jedynym typem podwładnego jest dowolny typ
rekordu  SYSTEM.
R
- Podstawową jednostką dostępu do bazy są
Typ rekordu SYSTEM charakteryzuje się tym, że
ma tylko jedno wystąpienie i jest ono rekordem
pustym.
rekordy. Dostęp do grupy powtórzeniowej jest
możliwy tylko wówczas gdy udostępniony jest
rekord zawierający daną powtórzeniową .
- W obrębie rekordu musi być określona wartość
S
powtórzeniowej wchodzącej w skład rekordu.
Powiązania
sieciowym.
Założenia:
między
rekordami
w
modelu
Mamy dwa typy rekordów : R i S
X, Y – pliki odpowiednich typów R i S
Będziemy mówić, że istnieje między rekordami
typów R i S powiązanie, jeśli określone są
przekształcenia:
f(x) :X->Y
w zależności od własności przekształceń wyróżnia
się trzy rodzaje powiązań:
- 1:1 powiązanie jedno-jednoznaczne
istnieje to powiązanie jeśli f(x), f(y)są funkcjami
R
S
R
S
np. związek małżeński
- 1:M jedno-wieloznaczne powiązanie (między
rekordami R, S istnieje powiązanie 1:M, jeżeli
jedno z przekształceń f(x), f(y) jest funkcją ).
R
R
S
R
S
S
R
S
- N:M wielo- wieloznaczne ( między rekord R,S
zachodzi M:N jeżeli ani f(x), ani f(y) nie jest
funkcją).
R
S
R
S
Niech dany będzie typ kolekcji ( R,S1,S2,...,Sm)
oraz niech rF(R) będzie wystąpieniem typu
właściciela. Wówczas wystąpieniem kolekcji typu
 z rekordem właściciela r będziemy nazywać ciąg
(r)=(r,s1,s2,...,sL) gdzie s1,s2,...,sL L  0 są różne i
pochodzą ze zbioru F(S1) lub F(S2) lub ... lub
F(Sm). Każdy rekord należący do tego wystąpienia
kolekcji jest rekordem typu R (wystąpienie typu
właściciela) lub rekordem jednego z typów
podwładnych.
f(y) :Y->X
R
S
Gdzie R,S1,S2,...,Sm są wierzchołkami hiperdrzewa,
1
2
przy
czym R jest początkiem
hiperkrawędzia, a m
zbiór {S1,S2,...,Sm} jest końcem tej hiperkrawędzi.
Zasadnicze cechy kolekcji:
1.Do wystąpienia kolekcji typu  należy jeden
rekord właściciela oraz ciąg rekordów
podwładnych. Wszystkie rekordy podwładnych
tworzą jeden ciąg.
2.Wystąpienie kolekcji może być traktowane jako
łańcuch, którego kotwicą (head) jest rekord
właściciela, przy czym możliwe jest przechodzenie
między elementami tego łańcucha na różne
sposoby (do pierwszego, następnego,
poprzedniego, ostatniego rekordu) wśród rekordów
podwładnych, jak również do rekordu właściciela.
licznika powtórzeń dla każdej grupy
S
KOLEKCJE REKURENCYJNE
Wtedy, gdy typ właściciela jest typem
podwładnego w tej kolekcji (jednocześnie)
ZALEŻNOŚĆ_SŁUŻBOWA(PRACOWNIK,
PRACOWNIK) – każdy pracownik jest powiązany
ze zbiorem pracowników będących jego
podwładnymi.
Ponieważ istnieje powiązanie 1:M pomiędzy
typem właściciela i każdym z typów podwładnych
kolekcji , to jeden rekord każdego typu
podwładnego może należeć co najwyżej do
jednego wystąpienia kolekcji . Do tego typu
wystąpienia może należeć wiele rekordów jednego
typu podwładnego, ale może też nie należeć żaden
– czyli w zbiorze wystąpień kolekcji  każde
wystąpienie jest jednoznacznie zidentyfikowane
przez właściciela lub typ podwładny.
P
P
P
P
P
P
1
2
3
4
5
6
Niejednorodności przy przejściu z P2 do P3 lub P2
do P4. Stosujemy więc specjalne tablice adresowe:
Jeśli ( R,S1,S2,...,Sm) jest typem kolekcji
(rekurencyjnej lub nie), to dla każdych dwóch
rekordów r, r’ typu R,
r  r’, wystąpienia tej kolekcji spełniają warunek
( (r) – {r})( (r’) – {r’}) = 0
SZCZEGÓLNE PRZYPADKI TYPÓW
KOLEKCJI
1)
Jeden typ kolekcji może być typem
właściciela wielu typów kolekcji:
R


V
S
2)
.
.
T
U .
Typ
. rekordu będący
. typem właściciela
.
jednego typu kolekcji mogą być typem
.
. typu kolekcji:.
podwładnym
innego
Niech dane będzie pewne wystąpienie (r,s1,s2,...,sL)
L  0 kolekcji . Wówczas na rekordach
należących do tego wystąpienia zdefiniowane są
następujące funkcje:
-owner()(r) = r
-owner()(si) = r  1  i  L
-first()(r) = s1  L > 0
END  L = 0
- first()(si) = sL  1  i  L
S

R

V
R
S
U
.
.
.
W
.
5
3)
Typ rekordu będący typem właściciela
jednego typu kolekcji może być jednocześnie
typem podwładnego tego samego typu
kolekcji (kolekcja rekurencyjna):
R

Diagram schematu bazy danych będziemy
nazywać czwórką uporządkowaną inaczej
hipergraf etykietowany.
DSCH=(H, A, , )
gdzie:
H=(X, K, w, p) – hipergraf
A-alfabet etykietujący A=(R, K)
i dwie funkcje
:XR funkcja jedno-jednoznaczna przypisująca
wierzchołkom typy rekordów
:XR funkcja jedno-jednoznaczna przypisująca
hiperkrawędziom nazwy kolekcji.
W sieciowej bazie danych będą występowały dane
elementarne, rekordy, kolekcja i baza danych.
.
S
T
Typ, który nazwiemy rekordem – będzie się
składał tylko z danych elementarnych, a więc nie
.
4) Dwa typy kolekcji mogą mieć wspólne typy
ma wektora i nie ma grupy powtórzeniowej.
.
rekordów podwładnych:
Wektor i grupę powtórzeniową będziemy
realizować jako rekordy.
R
S
Następne uproszczenie:
typ kolekcji może mieć tylko jeden typ podwładny


(R, S)
każdą kolekcję (R, S1, S2, ...,Sn) będziemy
traktować jako zbiór kolekcji
1(R, S1)
2(R, S2)
.
.
T
U
V
3(R, S3)
.
.
..............
.
.
n(R, Sn)
5) Jeden typ rekordu może być typem
(nie będzie to efektywne, ale jest możliwe)
właściciela dwóch różnych typów kolekcji,
co osiągniemy?
które mają wspólny typ rekordów
Ponieważ typy kolekcji mogą mieć zdefiniowany
podwładnych:
tylko jeden typ podwładny
powiązania pomiędzy typami rekordów wyrazimy
w postaci grafu jako szczególny przypadek


hipergrafu.
R
G=(X, K, w, p)
gdzie
X- skończony zbiór wierzchołków grafu
K- skończony zbiór krawędzi grafu
w: KX – funkcja przypisująca krawędzi ?
p : KX - funkcja przypisująca krawędzi jej
.
.
S
T
U
koniec.
.
.
BAZA DANYCH – jednostka danych określonego
.
.
Założenia
typu wraz z wystąpieniem nazywane stanem bazy
programy użytkowe pisane w odpowiednich
danych
językach proceduralnych będą współpracować z
sieciową baza danych za pomocą
BD – baza danych
trzyelementowego języka
R1, R2, ... , RN – typy rekordów
1 – język podschematów – pozwala on opisywać
1, 2, ... , M – typy kolekcji
podzbiór schematu dla konkretnego programu
użytkowego logiczny (zewnętrzny)obraz bazy
Zapis BD(R1, R2, ... , RN, 1, 2, ... , M) lub (R1,
danych.
R2, ... , RN, 1, 2, ... , M) będziemy nazywać
Ten język podschematów umożliwia
typem bazy danych.
współdziałanie programu użytkowego z
STAN(BD)={ F(R1), F(R2), ... , F(RN),
podzbiorem danych w bazie. W tym języku jest
KOLEKCJA(1), KOLEKCJA(2), ... ,
definiowany tzw. obszar roboczy użytkownika,
KOLEKCJA(M)}
czyli jest to wydzielona strefa pamięci, w której
Gdzie:
system
- F(Ri) – oznacza zbiór wystąpień typu rekordu Ri
zarządzania baza danych umieszcza wszystkie
LiN
dane będące odpowiedzią na polecenie
- KOLEKCJA(j) – to zbiór wystąpień kolekcji
użytkownika i gdzie również są kierowane
typu j 1  j  M
wszystkie dane przeznaczone dla systemu
zarządzania bazą danych. Dla każdego elementu
Bazę można przedstawić jako hipergraf H=(X, K,
danych w podschemacie przydzielona jest nazwa
w, p) gdzie:
łącznika tego obszaru, inaczej jest to tzw. pozycja
- X –skończony zbiór wierzchołków hipergrafu
łącznikowa obszaru roboczego użytkownika co
- K skończony zbiór hiperkrawędzi
pozwala na odwołania programów do tego obszaru.
- w – funkcja przypisująca hiperkrawędzi jej
2 – Język manipulowania danymi – jest on
początek w: KX
wykorzystywany w czasie wykonywania programu
- p - funkcja przypisująca hiperkrawędzi jej koniec
użytkowego do sterowania odwołaniami do bazy.
p: Kp(x), którym jest podzbiór X
3 – trzeci element jest nazywany językiem opisu
Proces etykietowania
pamiętania danych, albo językiem schematu
W procesie etykietowania wierzchołkom i
pamiętania – określa on w jaki sposób dane
hiperkrawędziom są przypisywane odpowiednio
opisane w schemacie mają być organizowane w
typy rekordów i nazw kolekcji tworzące tzw.
pamięci niezależnie od systemu operacyjnego i
alfabet etykietujący.
fizycznych rodzajów pamięci. Schemat pamiętania
Alfabet etykietujący – para zbiorów A=(R, K)
wpływa na efektywność działania programów.
R- skończony zbiór typów rekordów,
Oddzielenie schematu pamiętania od schematu
K- skończony zbiór nazw kolekcji.
logicznego izoluje programy użytkowe od zmian
wykonywanych w bazie z punktu widzenia
efektywności
1.Przebiega z wykorzystaniem komend języka
manipulowania danymi. Proces kieruje do systemu
zarządzania bazą danych jedno polecenie
dotyczące danych w bazie danych.
2.System zarządzania bazą danych jest
odpowiedzialny za analizę polecenia i dokonuje
ewentualnego uzupełnienia argumentów polecenia
o dane ze schematu bazy danych, schematu
pamiętania i podschematu, do którego odwołuje się
proces wydający polecenie.
3.Na podstawie polecenia i ewentualnych
uzupełnień system zarządzania bazą kieruje do
systemu operacyjnego żądanie wykonania
fizycznych operacji wejścia-wyjścia wymaganych
do realizacji tego polecenia.
4.Odzwierciedla współdziałanie systemu
operacyjnego z urządzeniami pamięci
przechowującymi stan bazy danych.
5.Fizyczna transmisja danych między stanem bazy
danych i buforami systemowymi.
6.System zarządzania bazą danych przekazuje
dane między buforami systemowymi a obszarem
roboczym użytkownika jednocześnie
przekształcając dane zgodnie z opisami w
schemacie i podschemacie.
7.Na podstawie wyniku realizacji polecenia system
zarządzania bazą danych przekazuje procesowi
informacje o stanie realizacji polecenia np.:
wystąpienie błędu.
8.Przetwarzanie danych w obszarze roboczym
użytkownika zgodnie z instrukcjami języka
bazowego.
9.Odzwierciedla zarządzanie przez system
zarządzania bazą danych buforami systemowymi.
Bufory są wykorzystywane wspólnie przez
wszystkie procesy za pośrednictwem systemu
zarządzania bazą.
Podsumowując
Model sieciowy według organizacji CODASYL
Opis struktury i zawartość bazy danych nazywamy
schematem.
Język schematu np.: DLL
Język podschematu i język manipulowania danymi
są traktowane jako rozszerzenia proceduralnych
języków programowania. Wówczas składnia i inne
charakterystyczne elementy są związane z tym
językiem np.: C; chyba że jest wykorzystywany
samodzielny język zapytań np.: do interakcyjnego
korzystania z bazy.
Schemat pamiętania jest to opis sposobu w jaki
dane są zorganizowane w środowisku pamięci –
abstrahując od systemu operacyjnego i samych
fizycznych urządzeń pamięci.
DDL – typowy wzorcowy język schematu. Wywarł
on istotny wpływ na tworzenie zarządzania bazą
danych. W założeniach liczono na dużą
przenoszalność programów. Służy on do
definiowania schematu bazy danych, która może
być użytkowana wspólnie przez różne programy.
Jest niezależny od innych języków, z których
korzysta system zarządzania bazą danych.
Dana elementarna – najmniejsza jednostka
danych, w stanie bazy reprezentuje ją jej wartość.
Dana zagregowana – zestaw danych
elementarnych wewnątrz rekordu.
W sieciowej odmianie klasycznej mam y dwa
rodzaje tych danych zagregowanych:
- wektory - jednowymiarowy ciąg danych
elementarnych mający identyczne charakterystyki.
- grupy powtórzeniowe – zestaw danych, który
może wielokrotnie pojawić się wewnątrz rekordu.
Może się składać z danych elementarnych,
wektorów, z samej grupy (grup) powtórzeniowej (ych).
Rekord – zestaw złożony z zera, jednej lub kilku
danych elementarnych lub zagregowanych.
6
W DDL definiujemy typ rekordu. W bazie może
dowolna liczba rekordów tego samego typu.
Klucz bazy danych – jednoznaczna (unikalna)
wartość identyfikująca rekord w bazie danych. Ta
wartość jest dostępna dla procesu, gdy rekord jest
wybierany lub zapamiętywany.
Kolekcja – wystąpienie określonego zestawu
rekordów. W DDL definiuje się typ kolekcji. Baza
danych może zawierać dowolną liczbę wystąpień
jednego typu kolekcji. Jeden typ rekordu jest
właścicielem, natomiast jeden lub więcej typów
rekordów są podwładnymi kolekcji. Wystąpienie
kolekcji powinno zawierać jedno wystąpienie
właściciela i może zawierać dowolną liczbę
wystąpień każdego typu podwładnego.
Obszar – zestaw rekordów, w których nie musi
być określona zależność, właściciel - podwładni.
Obszar może zawierać rekordy jednej lub większej
liczby typów. Natomiast rekordy jednego typu
mogą znajdować się w różnych obszarach.
Schemat – składa się ze zdań języka, np. DDL i
jest pełnym opisem bazy danych. Zawiera nazwy i
opisy wszystkich obszarów, typów kolekcji, typów
rekordów i odpowiednich danych elementarnych i
zagregowanych istniejących w bazie.
Baza danych – składa się ze zbioru wszystkich
rekordów, kolekcji i obszarów, które zostały
zdefiniowane w schemacie i są utrzymywane
zgodnie z ta definicją.
Program – zestaw instrukcji pewnego języka
programowania.
Proces – wykonywanie pewnego programu wraz z
przydzielonym środowiskiem.
Język manipulowania danymi – język za
pomocą którego organizuje się przekazywanie
danych między procesem a bazą danych.
Obszar roboczy użytkownika – strefa pamięci, w
której umieszczone są i z której pobierane są dane.
Do obszaru systemu zarządzania bazą kieruje dane
będące odpowiedzią na zapytania. W tym obszarze
są umieszczane wszelki dane do pobrania przez
system zarządzania. Każdej danej elementarnej
włączonej do podschematu przydzielana jest
komórka obszaru roboczego użytkownika i
pozwala to na odwołania w programie zgodnie z
nazwą określoną w podschemacie.
Schemat pamiętania – wykorzystywany przy
opisie środowiska pamiętania dla bazy danych i
odwzorowanie go później fizycznie w pamięci.
Ważniejsze funkcje systemu zarządzania bazą
danych SZBD:
1.przekształcenia między schematem a
podschematem
2.przekształcenia między schematem a schematem
pamiętania
3.funkcje związane z utrzymaniem całego systemu.
Podschemat i schemat powinny być od siebie
niezależne natomiast istnieją pomiędzy nimi
współzależności:
Na podstawie jednego schematu można utworzyć
dowolną liczbę podschematów.
Deklaracja jednego podschematu nie ma wpływu
na deklarację innego.
Programy użytkowe odwołują się do podschematu,
ale jest np. możliwe, że podschemat jest
identyczny ze schematem.
Do jednego podschematu mogą się odwoływać
różne programy.
Program może wykorzystywać tylko te obszary,
rekordy i kolekcje, które zostały opisane w
podschemacie, do którego ten program się
odwołuje.
Program powinien się odwoływać do podschematu
opisanego zgodnie z wymaganiami języka, w
którym został program napisany.
Dlaczego rozdziela się podschemat i schemat?
Rozdzielenie schematu i podschematu pozwala
oddzielić opis całej bazy od części „widzianej”
przez inne oddzielne programy.
Uzasadnienie rozdzielenia schematu od
podschematu:
- poszczególni programiści będą mieli do czynienia
nie z całą bazą, a tylko z fragmentami, które
dotyczą opracowywanych programów.
- dane z bazy mogą się odnosić do wielu
zastosowań jak również mogą być
wykorzystywane współbieżnie (ułatwia to pisanie i
testowanie programów).
- proces jest ograniczony do tej części bazy, która
jest określona w podschemacie, wówczas pozostała
część bazy jest izolowana od tego procesu.
- rozdzielenie schematu i podschematu pozwala na
osiągnięcie pewnego stopnia niezależności w
schemacie bazy danych. Wówczas mogą być
dokonywane pewne zmiany. Sama baza może być
przestrajana bez konieczności zmian w programie.
Program będzie zależał tylko od schematu. Jest to
możliwe dlatego, że podschemat różni się od
schematu pod pewnymi względami, chociaż jest na
nim oparty.
- w celu zdefiniowania samej bazy danych można
utworzyć albo wykorzystać specjalny język i
opisywać tylko tę część bazy, która jest istotna dla
konkretnego programu.
Najważniejsze różnice między schematem a
podschematem:
a) Na poziomie danych elementarnych
Może być opuszczony opis pewnych danych
elementarnych.
Charakterystyki danych elementarnych
podschematu mogą się różnić od charakterystyk
danych elementarnych ze schematu.
Różne może być uporządkowanie danych
elementarnych w schemacie i podschemacie.
b) Na poziomie danych zagregowanych
(wektory i grupy powtórzeniowe)
Może być opuszczony opis pewnych danych
zagregowanych, może być zmienione
uporządkowanie.
Wektory mogą być przekształcone w tablice
wielowymiarowe.
Dane elementarne lub dane zagregowane mogą być
zgrupowane i opatrzone jedną wspólną nazwą.
Za pomocą języka opisu danych podschematu
można opisywać odwzorowania pewnych struktur
pomocniczych.
c) Na poziomie rekordów
Może być opuszczony opis pewnych typów
rekordów, można wprowadzić opis nowych typów
rekordów utworzonych z danych występujących w
innych typach rekordów.
d) Na poziomie kolekcji
Można opuścić opis pewnych typów kolekcji,
mogą być określone inne kryteria wyboru kolekcji,
można opuścić opisy pewnych typów rekordów
podwładnych mu kolekcji.
e) Na poziomie obszarów
Mogą być opuszczone opisy pewnych obszarów i
włączonych do nich rekordów, wtedy, gdy inne
wystąpienia rekordów tego samego typu mogą być
włączone do tych obszarów.
Dlaczego rozdzielono schemat od schematu
pamiętania?
Rozdzielenie to pozwala na oddzielenie logicznego
opisu bazy danych od opisu sposobu jej
pamiętania.
Ma to kilka zalet:
Administrator bazy danych może tak
zaprojektować strukturę schematu złożoną z
rekordów logicznych i kolekcji tak, że będzie ona
adekwatna do obecnych zastosowań, ale i również
tych perspektywistycznych (przyszłościowych).
Oddzielenie opisu od opisu logicznego bazy ma
wpływ na efektywność bazy, bowiem metody
pamiętania i odwzorowania schematu pamiętania
są określone w samym schemacie pamiętania.
Strojenie systemu może być zrealizowane przez
zmianę schematu pamiętania. Unikamy w ten
sposób zmiany schematów, podschematów i
programów użytkowych. Sam schemat
pamiętania opisuje obraz danych za pomocą pojęć
niezależnych od konkretnych urządzeń. Dzięki
temu baza jest niezależna i administrator może
wybrać konkretne nośniki i urządzenia o
charakterystykach i potrzebach zgodnych z
bieżącymi wymaganiami, to wszystko bez zmiany
schematu pamiętania.
Co powinien udostępniać system zarządzania?
- System zarządzania powinien udostępnić języki
umożliwiające tworzenie programów
pomocniczych wspomagających codzienne
utrzymanie bazy danych (programy składowania,
redagowania wydruków, ładowania, analizowania
danych składowych).
- System zarządzania powinien dawać mechanizmy
tworzenia programów odtwarzania bazy danych z
możliwością rejestrowania wszelkich działań w
bazie jak również organizację punktów
kontrolnych, w których następuje sprawdzenie
integralności bazy.
- System zarządzania powinien umożliwiać
modyfikacje schematu lub podschematu
uwzględniając konsekwencje zmian zawartości
bazy (Jeżeliby nie udostępniał takich możliwości
zmian, wówczas zmiany w schemacie mogłyby
następować poprzez opracowanie nowego
schematu).
- System powinien określać urządzenia i nośniki
dla danych, ale tylko na etapie sterowania buforami
i zajmować się organizacją przepełnień.
Administrator bazy danych i jego funkcje:
Ponieważ dane w bazie są wykorzystywane przez
wiele programów stąd konieczność centralizacji
opracowywania schematu, a czasem również
podschematu. Konieczność połączenia programów
użytkowych to należy do administratora.
Funkcja administratora polega na utworzeniu i
obsłudze bazy oraz jej schematu tak, aby programy
użytkowe mogły efektywnie zaspokajać swoje
potrzeby.
Od administratora ze strony organizacyjnej
wymagamy:
- utworzenie schematu opisującego bazę i
wprowadzenie do systemu zarządzania bazą.
- utworzenie schematu pamiętania i wprowadzenie
do systemu zarządzania bazą danych.
- załadowanie samej bazy danych.
- określenie zasad kontroli dostępu do bazy w
szczególności zamki kontroli dostępu w
szczególności dostęp pojedynczych użytkowników
poprzez określenie zamków kontroli dostępu i
przydzielenie kluczy dostępu.
- określenie urządzeń i nośników danych dla bazy.
-Monitorowanie wykorzystania i wydajności
Zbierania danych statystycznych dotyczących
wykorzystania różnych części czy różnych
elementów bazy.
Prowadzenie protokołów zmian w bazie, dla jej
odtworzenia w przypadku błędu systemu lub
użytkownika.
-Reorganizacja i restrukturyzacja bazy w celu
zwiększenia wydajności
administrator musi dokonać zmiany schematu i
skompilować zmiany w celu uzyskania nowej
wersji schematu (to samo z podschematem)
Konieczność zmian jeśli dojdą nowe elementy,
zapotrzebowania.
Schemat pamiętania zmiana schematu, aby
otrzymać nowy schemat pamiętania.
Zmiana samej bazy, aby była zgodna ze
schematem i schematem pamiętania
Usunięcie zbędnych rekordów, które stały się
zbędne lub niedostępne i uwzględnienie zwolnienia
fragmentów pamięci.
Rozmieszczenie danych na różnych nośnikach i
urządzeniach uwzględniając czasy dostępu,
zużycie fizyczne nośników itd. Ewentualny
wydruk wybranych fragmentów bazy.
- Odtwarzanie bazy danych po błędach lub
awariach systemu,
7
administrator musi zrealizować składowanie
części bazy w pamięci pomocniczej
(archiwizowanie części bazy).
- Odtwarzanie części bazy z uwzględnieniem
protokołów zmian.
Podstawowe procedury struktury bazy
– obecność pewnych specyficznych operacji dla
konkretnej bazy danych, przykładowo sprawdzenie
poprawności kluczy dostępu.
- obliczanie wartości danych elementarnych jako
funkcji wartości innych danych elementarnych
- realizacja algorytmów wyszukiwania
- algorytmy pakowania lub rozpakowywania
wartości danych elementarnych
- realizacja obliczeń za pomocą środków
systemowych
Procedury te muszą mieć dostęp do
- identyfikatora procesu, z którego zostało
przekazanie sterowanie do procedury bazy danych.
- typu funkcji języka manipulowania danymi, z
której sterowanie zostało przekazane do procedury
bazy danych
-typu zadania lub frazy, z którego nastąpiło
przekazanie sterowania
-W specyficznych sytuacjach do całej informacji
dostępnej procesowi, z którego przekazano
sterowanie do procedury bazy danych, czyli do
obszaru roboczego użytkownika danego procesu,
do wskaźników stanu również do rejestrów i
wszystkich danych w bazie.
Procedury bazy powinny mieć możliwość
przekazywania informacji do tego procesu, z
którego przekazano im sterowanie.
Ochrona danych
Sam schemat BD powinien przewidywać środki
ochrony:
1. ochrona przed nieupoważnionym
dostępem do danych (kontrola dostępu).
Realizuje się na różne sposoby, najczęściej
realizowany jako mechanizm wzajemnie
uzupełniających się zamków określanych w
schemacie oraz kluczy, które powinny być podane
przez proces, który chce otrzymać prawo dostępu
do zamkniętych danych. W zależności od środków,
którymi dysponuje podschemat i zależnie od
charakteru procesu klucze mogą być przekazywane
do podschematu przez sam proces lub interakcyjnie
przez użytkownika procesu.
Klucz dostępu jest wartością, której typ i zakres
określa implementator. Klucz może być wartością
stałą, zmienną lub wynikiem obliczenia procedury.
Zamek dostępu jest albo wartością albo procedurą.
Gdy zamek jest wartością (stałą lub zmienną) to
dla uzyskania dostępu do danych wymagana jest
zgodność klucza. Gdy jest procedurą to
wykorzystuje klucz, aby decydować, czy dane
należy otworzyć.
Działanie procedury zależy od implementatora a
także przy tworzeniu schematu powinien mieć
również wpływ administrator bazy.
Zadania (ochrona).
- Przeprowadzenie obliczeń z wykorzystaniem
klucza i na tej podstawie sprawdzanie
poprawności klucza.
- Rozwiązanie interakcyjne – dialog z osobą
pracującą przy terminalu i otrzymanie odpowiedzi
na szereg pytań, i na tej podstawie udostępnienie
danych po zidentyfikowaniu.
- Zapisywanie do procesu nowej wartości klucza
(zmiana klucza po każdym udostępnieniu
danych).
- Gdy nastąpiło naruszenie ochrony danych, to
wówczas system powinien rejestrować taki
przypadek, konieczne jest wysłanie sygnału
alarmowego do administratora bądź operatora
bazy(jeżeli została taka osoba powołana).
- Przewiduje się również przy powtórnym
naruszeniu danych natychmiastowe przerwanie
procesu.
- (Rzadko) Stosuje się chwilowe wstrzymanie
procesu w celu uzyskania potwierdzenia prawa
dostępu.
- Odłączenie terminala użytkownika i żądanie
powtórnego logowania przed udostępnieniem
prawa dostępu.
Procedura bazy danych musi mieć możliwość
identyfikacji procesu (ingerowanie w system).
2.ochrona przed pojawieniem się sprzecznych
lub nieprawdziwych danych (kontrola
integralności).
DDL umożliwia pewną specyfikację powiązań w
strukturach BD.
- Należy przewidzieć środki kontroli poprawności
danych (w szczególności danych elementarnych).
- Gdy sam proces próbuje modyfikować rekord
lub kolekcję, SZBD powinien sam przeprowadzać
kontrolę procedur i odpowiednich wywołań.
Za każdym razem gdy do bazy wprowadzana jest
dana lub zostaje zmieniana mówimy o
wprowadzaniu danych elementarnych.
Rozproszone bazy danych.
Rozproszony system BD to system, w którym
występuje
rozłożenie
danych
przez
ich
fragmetaryzację (podział) lub repliakcję do
różnych konfiguracji sprzętowych i programowych
rozmieszczonych fizycznie w różnych miejscach.
Fragment danych stanowi podzbiór danych.
Replikacja stanowi kopię całości lub części
danych, przechowywanych w innej części BD.
O rozproszeniu możemy również mówić w
odniesieniu do funkcji, a rozproszenie funkcji
dotyczy całej strategii klient – serwer i baz danych
tego typu.
Fragmentaryzację i replikację stosuje się przez
zastosowanie
operatorów
lub
rachunku
relacyjnego.
Zasadniczym celem rozproszonej BD jest to, aby
dla
użytkownika
wyglądała
jak
jedna
scentralizowana BD. Możemy mówić o trzech
strategiach przezroczystości BD:
1. przezroczystość geograficzna - użytkownik
nie musi wiedzieć, gdzie są przechowywane dane
2. przezroczystość fragmentaryzacji użytkownik nie musi wiedzieć, w jaki sposób
dane zostały podzielone
3.przezroczystość replikacji - użytkownik nie
musi wiedzieć, w jaki sposób dane są powielane.
Zalety i wady rozproszenia
+ dostosowanie do struktury organizacyjnej
organizacji przedsiębiorstwa (firmy)
+ większa kontrola nad danymi, dlatego, że można
je przechowywać w jednym miejscu, w którym
mogą być modyfikowane przez odpowiednio
upoważnione osoby
+ utrzymanie replikacji, co zwiększa niezawodność
systemu (dotyczy banków – dwie bliźniacze bazy)
+ zwiększenie efektywności przez poprawne
rozproszenie danych, większość zapytań będzie do
lokalnej (mniejszej) bazy, niż do dużej
(scentralizowanej)
- RBD są bardziej skomplikowane od
scentralizowanych BD
- trudność w efektywnym zarządzaniu bazą
Wszystkie te elementy wynikają z komunikacji
sieciowej.
System zarządzania rozproszoną bazą danych musi
być bardziej skomplikowany niż w przypadku bazy
scentralizowanej.
- Katalog systemowy rozproszonej bazy danych
jest bardziej złożony i musi obejmować więcej
informacji, np. informacje o położeniu fragmentów
bazy, jak i replikacji.
- Kolejny problem wynika ze zwielokrotnienia
problemu ze współbieżnością i aktualizacją
szeregu różnych węzłów.
Dla efektywności można stworzyć optymalizator
zapytań, który powinien używać informacji
topologicznych o sieci, decydując jak najlepiej
wykonać dane zapytania.
Aby zapewnić większą odporność na awarie, to
system zarządzania rozproszoną bazą danych nie
powinien być ulokowany w jednym miejscu
(zarówno oprogramowanie, jak i konkretne dane w
różnych miejscach).
Wyróżnia
się
cztery
podstawowe
typy
rozproszonych baz danych:
1. system klient-serwer
Termin system klient-serwer narodził się wraz z
pojawieniem się lokalnych sieci. Baza danych na
ogół była przechowywana na serwerze, natomiast
interfejs użytkownika i narzędzia tworzenia
aplikacji znajdowały się na komputerach klientów.
Tak jak do dziś w niektórych sieciach.
2. jednorodna rozproszona baza
W jednorodnej rozproszonej bazie dane są
rozłożone między dwa lub więcej systemów.
Każdy jest oparty na tym samym rodzaju systemu
zarządzania bazą danych (Oracle). Również na
ogół ten typ działa na tego samego rodzaju sprzęcie
i również pracuje pod nadzorem takiego samego
systemu operacyjnego.
3. niejednorodna rozproszona baza
W niejednorodnych rozproszonych bazach danych
konfiguracje sprzętowe i oprogramowania są
różne.
Obecnie
podstawowym
sposobem
uzyskiwania niejednorodnego systemu jest łącze
gateway. Jest to interfejs z jednego systemu
zarządzania BD do drugiego, w praktyce bywa
dostarczane
przez
jednego
konkretnego
producenta.
4. federacyjny system baz danych
Federacyjny system składa się z pewnej liczby
względnie autonomicznych baz, w których
niekiedy zachodzi konieczność zebrania części
danych lub całości aby wykonać wspólną funkcję.
Wykorzystuje się tu systemy otwarte z
wykorzystaniem odległych systemów. W praktyce
jest on słabo rozwinięty, trwają prace.
System klient-serwer to specjalna architektura
oprogramowania, w której dwa systemy
współdziałają ze sobą w rolach nadrzędniepodrzędnych.
Proces
klienta
rozpoczyna
współdziałanie przez wysłanie zapotrzebowania.
Proces serwera realizuje to zapotrzebowanie i
odpowiada na złożone zapotrzebowanie.
Teoretycznie klient i serwer mogą znajdować się
na tym samym komputerze, w praktyce raczej na
oddzielnych komputerach.
Dla konkretnych aplikacji wyróżnia się cztery
podstawowe części:
1.zarządzanie danymi – jest to cała gama funkcji,
które zarządzają danymi dla aplikacji, w tym
zarządzają transakcjami i współbieżnością oraz
przechowywaniem danych i zabezpieczeniami.
2.zarządzanie regułami – gama funkcji,
zapewniających zachodzenie wewnętrznych i
innych dodatkowych warunków spójności danych.
3. logika aplikacji – zaliczamy te funkcje, które
przekształcają dane i zgłaszają zapotrzebowanie na
usługi dla serwerów i innego oprogramowania
znajdującego się na komputerach klientów.
4.zarządzanie i logika prezentacji – funkcje,
które przyjmują dane i zapotrzebowania od
użytkownika
oraz
przedstawiają
dane
użytkownikowi. Oprogramowanie do prezentacji
przekształca dane wyjściowe w postać wymaganą
przez serwer i odwrotnie z serwera w postać
dogodną dla użytkownika.
W
systemach
klient-serwer
dochodzi
oprogramowanie
łączące
–
jest
ono
przezroczystym łącznikiem, który łączy aplikację
klienta z danymi serwera. Dane z serwera są
danymi lokalnymi dla aplikacji na komputerze
klienta.
Oprogramowanie
łączące
używa
oprogramowania sieciowego w celu wymiany
komunikatów między klientem a serwerem.
Przy projektowaniu efektywnych systemów klientserwer należy:
8
1.umieścić jak najwięcej logiki szczególnie
związanej z prezentacją na komputerach klienta,
przyspiesza to współpracę z użytkownikiem,
zmniejsza obciążenie serwera.
2.umieścić
sprawdzanie
niektórych
reguł
zwłaszcza
tych
dotyczących
poprawności
wprowadzanych danych na komputerze klienta.
3.dążyć do zminimalizowania ruchu w sieci
poprzez ograniczenie liczby i rozmiaru zgłoszeń na
usługi serwera.
4.umieszczać sprawdzanie istotnych dla całej
organizacji (firmy) reguł na serwerze.
Download