Rozproszone bazy danych

advertisement
Klucz - zestaw atrybutów (cech) których
wartości jednoznacznie wyznaczają
wiersz w tablicy
Klucz nadmiarowy – z niego możemy
usunąć jakąś cechę (kolumnę)
Klucz właściwy – z niego nie możemy
usunąć jakieś cechy gdyż przestanie
być kluczem. W definicji tabeli
wskazujemy jeden klucz właściwy
i ustawiamy go na klucz główny
Wyróżniamy klucze proste i złożone.
Jeżeli zbiór identyfikacyjny jest zbiorem
jednoelementowym to tworzy klucz
prosty, w przeciwnym wypadku klucz
jest kluczem złożonym. W relacji możemy
wyróżni wiele kluczy, które nazywamy
kluczami kandydującymi (potencjalnymi).
Wybrany spośród nich klucz nazywamy
kluczem glównym (pierwotnym), pozostałe
kluczami alternatywnymi.
BCMF Formalny sposób dekompozycji
tabeli nazywa się proc. normalizacji tabel
i przebiega etapowo:
1 forma normalna – wartość atrybutów tej
tabeli są wielkościami atomowymi nie
podzielnymi dla przyszłego przetwarzania
( nie może składać się z różnych typów)
2 forma normalna – spełnia 1 formę i każdy
atrybut zwykły (nie wchodzi w skład
klucza), jest w pełni funkcjonalnie zależny
od wszystkich kluczy właściwych
3 forma normalna – spełnia 1i 2 formę
i żaden atrybut zwykły (nie wchodzący
w skład klucza głównego) nie zależy
funkcjonalnie przechodnio od
jakiegokolwiek z kluczy właściwych
4 postać normalna. Dana relacja R jest
w czwartej postaci normalnej wtedy
gdy jest w trzeciej postaci normalnej i
wielowartościowa zależność zbioru Y
od X pociąga za sobą funkcjonalną
zależność wszystkich atrybutów tej
relacji od X.
5 postać normalna. Dana relacja r o
schemacie R jest w piątej postaci normalnej
wtedy i tylko wtedy, gdy jest w czwartej
postaci normalnej i w przypadku występowania
w niej połączeniowej zależności funkcjonalnej
*R[R1, ..., Rm] zależność ta wynika
z zależności atrybutów od klucza.
Dwa atrybuty są funkcjonalnie zależne
gdy wartość jednego z nich jednoznacznie
określa wartość drugiego, czyli z daną
wartością klucza będzie powiązana zawsze
część klucza właściwego to ten atrybut nie
jest w pełni funkcjonalnie zależny od
klucza właściwego atrybut zwykły ma
zależeć funkcjonalnie jedynie wprost
od 1 klucza właściwego
zależność funkcjonalnie przechodnio
– nie chcemy sytuacji w której jakikolwiek
atrybut mógłby być funkcjonalnie zależny
przechodnio przez cokolwiek co nie jest
kluczem właściwym
1 typ tabel do przechowywania danych
(podstawowe)
2 typ do przechowywania informacji
o związkach logicznych m.:n
3 typ integralności danych (aby uniknąć
błędów wpisywania np. płeć
Anomalie i Wady BD:
1) Redundancja- powtarzanie,
gromadzenie ponowne tych samych
danych, np. jeżeli chcielibyśmy wpisać
następną książkę Urbanowi to musielibyśmy
wpisać jeszcze raz każdą jego daną.
2) Anomalia dołączania- wadą jest to, że
musimy wpisywać wszystko albo nic, np.
przychodzi Wałęsa, ale nic nie pożyczył
więc nie możemy go wpisać, tym samym
nie możemy zapisać jego wizyty.
3) Anomalia automatyzacji- np. przychodzi
Urban w czerwcu 1981 i z Wiejskiej
przeprowadza się na Śliską, zmieniamy
więc mu pierwsza pozycję i nagle
zbrakło prądu. Reszta pozycji pozostała
niezmieniona i powstała niezgodność
w adresie. Jest pewna niespójność,
sprzeczność.
4) Anomalia usuwania- np. Mazowiecki
zarządził, że odkreślamy wszystko, co było
pożyczone przed 13.12.81, włącznie
z 13.12.81. Wtedy tracimy wszystkie dane,
np. te, że Urban i Jaruzelski byli w bibliotece.
Sql -Deklaratywne co my chcemy od
systemu . Proceduralne w jaki sposób
uzyskujemy informację
Algebra relacji.– określony zbiór na którym
można wykonywać działania , A=<A,F>
Grupy operacji:
Zwyczajne działania algebry zbirów:
suma, przecięcie (część wspólna), różnica.
Operacje zawężania: selekcja, rzut.
Operacje komponowania krotek z innych
krotek pochodzących z innych relacji
np. iloczyn kartezjański.
Operacje przemianowania- nie zmieniają
krotek relacji ale jej schemat: nazwę atrybutu
i / lub nazwę relacji.
Język zapytań buduje się z wyrażeń algebry.
Rozszerzony model relacyjny
Chcemy mieć rozszerzenie umożliwiające
określić prawa dostępu użytkownikom
bądź grupom. Kontrolę dostępu musi zapewnić
SZBD a nie programy korzystające z BD
Kontrola integralności danych – funkcja SZBD
Odpowiedzialna za kontrolę dostępu.
Dodatkowe elementy zapewniające kontrolę
Integralności danych :
1) tablice słownikowe (walidacyjne) wykaz
dopuszczalnych wartości
2) wartości domyślne jeśli użytkownik
nie podaje żadnej wartości
3) unikalność wartości danej – system SZBD
pilnuje aby w danej kolumnie wartości
się nie powtórzyły
4) NULL wartością niedopuszczalną
5) określamy daną jako wymaganą (obowiązkowa)
6) reguły wprowadzania – dla danego
atrybutu ustala regułę wprowadzania
wartości która odsyła do procedury która
określa : - co zrobić gdy użytkownik nie
poda żadnej wartości
- obliczamy wartość na podstawie innych
danych
reguła wprowadzania może zawierać
- polecenia SQL
- inne warunki sprawdzające integralność
7) warunki aktualizacji i dopisywania
8) integralność klucz głównego czyli
sprawdzenie unikalności klucz głównego
9) warunek integralności referencyjnej
połączenia tablic za pomocą kluczy
10) ustalenie klasy przynależności wierszy
obowiązkowa musi istnieć odpowiednik
danego wiersza w drugiej tabeli
Restrykcyjny charakter kasowania rekordów
SZBD pilnuje aby była zachowana integralność
referencyjna pomiędzy kluczem głównym
a kluczem obcym
Kaskadowy charakter kasowania rekordów
Jeżeli chcemy usunąć wiersz o danym kluczu
głównym to system wykasuje z innych
tablic wszystkie wiersze o kluczu obcym
odpowiadającym danemu kluczowi głównemu
11) stopień uczestnictwa – jeśli mamy
zależność typu 1:n będziemy mogli określić
n min i n max
12) reguły biznesowe – pewne reguły opisujące
aspekty opisywanej rzeczywistości których
nie udało się wyrazić za pomocą tych ogólnych
13) ustalamy na stałe że w modelu istnieje
tablica wynik tworzona na podstawie
określonej komendy SELECT
System jest to całość środków zgromadzonych
i zorganizowanych dla realizacji określonego
celu. Środki :
1) komputery 2) oprogramowanie
podział ze względu na sposób realizacji
1) systemy obliczeniowe –dla realizacji
obliczeń od najprostszych do wielkiej skali
2)metody symulacyjne symulujący jakąś
rzeczywistość są trudniejsze i większe
od obliczeniowych
3) systemy do przetwarzania danych
masowych
4) systemy czasu rzeczywistego – których
zadaniem jest generowanie sygnałów
sterujących w czasie rzeczywistym
bardzo ważna jest kontrola poprawności
danych wejściowych
1) sprawdzenie każdej pojedynczej danej
( typ ,wartość, ograniczenie zakresu)
2) powiązanie logiczne grupy danych
umożliwiające sprawdzenie niektórych
danych należących do tej grupy (pesel)
3) można próbować wykorzystać już
wcześniej wprowadzone dane do
sprawdzenia tych nowowprowadzanych.
Funkcje systemu
1) przechowywanie
2) wyszukiwanie / przetwarzanie
kodowanie danych – przechowujemy nie
daną w jej oryginalnej postaci ale
w postaci kodu
a) szyfrowanie w celu utajnienia informacji
b) zmniejszenie objętości danych w pamięci
masowej
c) ułatwienie przetwarzania lub wyszukiwania
d) kody kontrolne (detekcyjne)
e) kody kontrolno - korekcyjne pozwala
stwierdzić w którym miejscu informacja
uległa przekłamaniu
organizacja pliku przechowującego dane:
a) plik seryjny
b) plik z rekordami które zawsze
uporządkowane - plik sekwencyjny podział
na obszary które są z kolei są podzielone na
jeszcze mniejsze elementy
c) organizacja randomizowana: indeksowanie
haszowanie
Podejścia przy projektowaniu i tworzeniu
a) Diagnostyczne stosuje się gdy mamy
pewien zastany system informatyczny
(struktury dane przepływ informacji)
i chcemy go skomputeryzować.
b) Prognostyczne rzadko stosowane przed
powstaniem jakiejkolwiek struktury
informatycznej zastanawiając się na budową
sys. komputerowego dostosujemy ten
ten dopiero tworzony sys. informacyjny do
tworzonego sys. komputerowego.
c) Prototypowanie – nie wytwarzamy
końcowego systemu docelowego tylko
tworzymy pewien fragment systemu
(prototyp) ale w taki sposób abyśmy
mogli go później łatwo rozbudować aż do
uzyskania ostatecznego produktu.
d) extreme programing
Najczęściej stosowane -podejście
diagnostyczne : a / tanie b/ klasyczne
w podejściu klasycznym cały proces dzielimy
na etapy (etapowanie prac)
Etapy w podejściu klasycznym
(diagnostycznym) 0 – postawienie problemu
próbujemy zdefiniować problem
który będziemy chcieli żeby system nam
rozwiązał cel tworzrnia systemu. Postawienie
problemu wskazuje na pewne uwarunkowania
które przy realizacji CELU będą musiały
zostać uwzględnione najtrudniejszy do
formalizacji. 1- opis (rzeczywistość której
ma dotyczyć system) opisujemy to co istnieje,
obieg dokumentów w firmie dokumentacja
prowadzona w podczas działalności firmy,
funkcjonowanie firmy itp. Opis staje się
znacznie czytelniejszy gdy wprowadzimy
schematy (działania, funkcjonowania
elementów opisywanej rzeczywistości )
i komentarze do tych schematów schemat
strukturalny opis tego czego będzie dotyczył
nasz system, opis przydaje się szczególnie
przy pracy nad dużymi projektami.
2 - analiza – analizujemy wszystkie elementy
tego świata który opisaliśmy oraz wszystkie
metody rozwiązania podstawowego problemu
3 - tworzenie koncepcji systemu (jeszcze
nie projekt systemu). wizja naszego przyszłego
systemu- pewne ogólne założenia elementów
składowych systemu. Koncepcja bez zbędnych
szczegółów, na tym etapie powinniśmy
określić ogólny sposób realizacji naszego
systemu. Może składać się z kilku warstw:
a) Ogólna
b) Koncepcja funkcjonalna
c) Koncepcja techniczna
d) Koncepcja sprzętowa
4 – projekt musimy szczegółowo określić
wszystkie elementy naszego przyszłego
systemu. Pod koniec tego etapu powinniśmy
dostać bardzo dokładna dokumentację
projektowa – na jej podstawie będzie się
odbywała implementacja systemu.
5 – implementacja będzie różna w zależności
od tego jakich narzędzi będziemy używać.
6 – testowanie jest bardzo złożonym etapem
tworzenia systemu - warstwy (etapy)
testowania: a) testowanie kodu
b) testowanie zakładanej funkcjonalności
c) testowanie funkcji od strony użytkownika
bardzo często będziemy mieli do czynienia
ze sprzężeniem zwrotnym(->implementacja;
-> projekt; -> analiza;-> opis;-> ; jest bardzo
źle jeżeli musimy cofnąć się do koncepcji)
d) testowanie wydajności systemu
e) testowanie na danych próbnych –
sprawdzamy czy system na danych
wprowadzonych z rzeczywistości się sprawdza.
Te dane powinny być różnorodne
Trzeba mieć przygotowany projekt testowania
7 – eksploatacja próbna próbujemy
rzeczywiście ten system używać ale nie
usuwamy jeszcze starego systemu.
8 – eksploatacj + rozwój.
Standaryzacja I podejście diagnostyczne
Techniki wykonywania pewnych etapów
tworzenia Oprogramowania
a) formularze – pewien wzór według
którego postępujemy, opusujemy itp.
Zaletą jest to że nie zapominamy o żadnym
podpunkcie do wypełnienia.
Np. Schematy Bachmona ??, metoda Coda
Duży nacisk na metody graficzne(czytelność)
Z załącznikami uszczegułowiającymi
konkretne elementy.
Np. diagramy DFD, ERD – nadają się najlepiej
gdy przyszły model logiczny bazy będzie
modelem relacyjnym.
Jakie są możliwości poprawienia już
skończonego systemu ? potrzebne są
narzędzia wspomagające rozwijania (tworzenia)
systemów baz danych
II podejście prognostyczne ( musimy
przewidzieć kształt całej organizacji pod
przyszły kształt systemu informatycznego)
zaczynamy od najlepszego rozwiązania
a) najnowsze technologie sprzętowe
b) najnowsze tech. tworzenia oprogram.
c) najnowsze języki programowania
d) najnowsze sposoby rozwiązywania
problemów typu sterowanie, diagnostyki,
komputerowego wspomagania
program w języku C ze wstawkami np. SQL
przy napotkaniu poleceń w SQL’u są one
przekazywane do SZBD. SZBD może
zwrócić żądane dane komunikat.
Dodatkowe biblioteki pośredniczące :
ODBC, JDBC(java)
(Dopasowują elementy programu użytkowego
do elementów baz danych) uzyskujemy:
a) przenośność programu użytkowego
b) uniezależnienie od SZBD
możemy mieć program (narzędzie
wspomagające) umożliwiające wizualne
składanie (definiowanie) z predefiniowanych
elementów, formatek do naszego programu
użytkowego.
Uzyskujemy ujednolicenie (standaryzację)
formularzy naszego programu użytkowego
Kolejnym elementem do standaryzacji są raporty
1 burz mózgów – najlepiej bardzo
zróżnicowany zespół ludzi
2 podejście teoretyczno- optymalne to najlepsze ale nie sprawdzone i drogie
3 podejście akceptowalne:
a) sprzętowo, technologicznie
b) finansowo
wydawać by się mogło ze dostaniemy projekt
taki jak przy metodzie diagnostycznej ale :
a) system będzie lepiej przygotowany na
przyszły rozwój (tworzymy system ze
świadomością tych najnowszych technologii)
b) część z tych najnowszych rozwiązań
z pewnością ” uratujemy ”
Cykl życia projektu
wdrożenie
pełne
problem
opis 1
wdrożenie
próbne
EiR
analiza 2
testowanie
koncepcja 3
implementacja XX
projekt
XX w tym momencie możemy pokazać
użytkownikowi ale się okaże że to nie
działa tak jak powinno lub robi inaczej
musimy wrócić do 1 i 3
E –eksploatacja
Można zastosować inne podejście
Prototyp1
problem
opis 2
analiza 3
koncepcja 4
projekt 5
implementacja 6
testowanie 7
T2
wartości dodane do systemów baz danych
a) narzędzia wspomagające projektanta
baz danych w tworzeniu całego projektu
najlepiej stosować te narzędzia tam gdzie pewne
rzeczy są najbardziej sformalizowane
.” C ”..
SO
SZBD
Kolejny element do standaryzacji -> MENU
( nasz program wspomagający generuje kod
dla tego standardowego MENU w sposób
automatyczny). Następnie – pewien ogólny
szkielet programu Kolejny – pewne gotowe
elementy do tworzenia procedur (funkcji)
w języku w którym piszemy nasz program
użytkowy Ostatnie – pewne gotowe
wstawki w SQL’u
Narzędzia wspomagające – obiektowe –
budowanie oprogramowania przy użyciu
gotowych obiektów Możemy mieć jeszcze
moduł wspomagający tworzenie definicji
bazy danych. W ostateczności otrzymujemy
pewien generator aplikacji Bridge –
oprogramowanie powstałe między
” wersjami pośrednimi ”
Możemy zapisywać elementy naszego
systemu w celu późniejszego wykorzystania
( ale nie program tylko projekt )
to są tzw. słowniki lub repozytoria
narzędzia wspomagające typu CASE
moduł kontroli
poprawności danych
moduł inżynierii
odwrotnej
Słownik
repzytorium
generator kodu
moduł dokumentowania
J2
P2 A2 O2 W
Prototyp 2
opis2 – pobieżny opis tylko najważniejsze
elementy
analiza 3 najistotniejszych problemów
budowa koncepcji 4 systemu w oparciu
o pobieżnej analizie i opisu nie musi
uwzględniać szczegółowych problemów
testy 7 coś możemy pokazać
system mamy wcześniej ale nie mamy
całej funkcjonalności
W tym drugim modelu posiadamy narzędzia
(systemy, case’y, środowiska)wspomagające
tworzenie oprogramowania. Dzięki temu
osiągnięcie etapu pierwszego prototypu nie
wymaga tyle czasu i wysiłku od nas.
Umożliwiają tez łatwe wprowadzanie zmian
i ich automatyczne uwzględnienie w systemie
Te środowiska muszą być w stanie
dokumentować nasz kod (-> XP Extreme
Programming)
Metoda punktów
węzłowych
(Szyjewskiego)
na każdy taki węzeł składa się kilka zadań
które trzeba wykonać aby móc przejść do
następnego węzła. Część tych węzłów
może być powiązane relacjami
1 zgłoszenie potrzeby
2 analiza
3 zdefiniowanie zadania projektowego
4 opis
5 analiza
Szukamy i opisujemy wszystkie
normatywy ( używamy obowiązujące normy)
moduł pracy grupowej
moduł pracy sieciowej
Interesują nas następujące cechy
systemów
a) duża pamięć
zewnętrzna i szybki dostęp do niej
b) dostęp wieloużytkownikowy
c) szybkość
program użytkowy
DEF
definiu
je
moduły
integralności dostępu
system operacyjny
ZSBD
fizyczna BD
Każda kopia SZBD obsługuje pojedynczego
użytkownika (program użytkowy) przy wielu
użytkownikach potrzebujemy większej
pamięci operacyjnej i mocniejszego procesora.
Tych wielu użytkowników tak naprawdę
”podłącza się ” się przez system operacyjny.
Fizycznie podłączają się za pomocą terminali.
Wprowadzamy wielowątkowość –
oszczędzamy znacznie na pamięci
operacyjnej Musimy mieć wielowątkowy
system operacyjny, SZBD i być może
oprogramowanie użytkowe.
Wprowadzamy wieloprocesorowość.
System operacyjny rozdziela procesy na
poszczególne procesory. Musimy mieć
nowy SZBD, który potrafi zarządzać
wielozadaniowością swoich zadań
(wątków) na poszczególnych procesorach.
Możemy przyspieszać operacje dyskowe
-> striping. Szybszy zapis i szybszy odczyt
Plusy takiej zwartej architektury
a) mniejsze nakłady na organizację
i administrację
b) mniejsze nakłady na użytkowników
(terminale)
c) większe bezpieczeństwo
moduł projektowania
interfejsu użytkownika
ta architektura była podstawą koncepcji,
którą przez lata była niepopularna
a teraz staje się coraz częściej wykorzystywana
-> ”mainframe” np. IBM 5390
Taki system można wykorzystać w
następujących etapach :
1 projekt
LOW CASE
2 implementacja
(CASE’y niskiego
3 testowanie
poziomu)
systemy wspomagające wcześniejsze etapy
nazywamy UPPER CASE
usługi outsourcingowe – wykonywanie na
zlecenie obliczenia itp.usługi outsourcingowe
konserwacja systemu a) przystosowanie
systemu użytkowego do zmieniających się
warunków zewnętrznych np. przepisów
prawnych b) przystosowanie do coraz to
nowszych wymagań zleceniodawców
architektura terminalowa – jest typowa
dla systemów zbudowanych w oparciu o
komputery klasy mainframe i minikomp.
oraz wczesne systemy unixowe
w takich systemach SZBD oraz aplikacje
działają na centralnym komputerze a
użytkownicy maja do dyspozycji
inteligentne terminale (najczęściej znakowe).
Architekturę te spotyka się głównie w
dużych instytucjach np. banki
W miarę upływu czasu użytkownicy
terminalowi (podłączeni do maszyny typu
mainframe) zaczęli wymieniać terminale
na pełne komputery, które maja dużą
niewykorzystana moc. Zastanawiano się
jak ja wykorzystać, aby odciążyć maszynę
mainframe. SZBD został na mainframe
a aplikacje zostały przeniesione na komputery.
Problem- w Mainframe aplikacje były
dwuczęściowe( jezyk progr + jezyk
manipulacji danymi, który był
wykorzystywane przez SZBD) Rozwiązanie
-na każdym komp instalujemy pewien pseudo
SZBD ( żeby aplikacje działały bez potrzeby
większych zmian), który odwołuje się do
SZBD na mainframe.
SERWER
SZBD STAR
CLIENT
SZBD NET
APLIKACJA
Mainframe w tej architekturze realizuje
już tylko dostęp do danych dla programów
użytkowych uruchamianych na innych
komputerach.= > architektura
klient-serwer. SZBD działa tu na centralnym
komputerze serwerze, zaś aplikacje działają
na komputerze klientów. Rolę serwerów
pełnią najczęściej systemy unixowe, zaś
stacjami klientów sa komputery PC albo
stacje robocze Na serwerze odbywa się
przechowywanie danych , wykonywanie
zapytań i przetwarzanie danych, natomiast
stacje klientów wykonują logikę aplikacji
(w tym obsługę złożonego interfejsu
graficznego GNU i niekiedy także
elementy przetwarzania danych .
Arch. Ta jest dobrze dostosowana
do możliwości małych i niedrogich
komputerów, daje duże możliwości
rozbudowy i skalowania podłączenie tutaj
nowego klienta jest bardzo łatwe i zwykle
nie wymaga inwestowania w sprzęt, na
ogół nowy użytkownik ma już PC.
Potrzebna jest na ogół instalacja
odpowiedniego oprogramowania .
Architektura świetnie przystaje do sposobu
przetwarzania SQL-owych relacyjnych baz
danych. W tym modelu przetwarzania zapytania
(krótkie testy) Są wysyłane do serwera danych,
a serwer odpowiada odsyłając jedynie te ( na
ogół nieliczne) dane, które są potrzebne, nie
jest potrzebne masowe przesyłanie danych
przez siec. System klient-serwer oszczędnie
wykorzystuje sieć a komputer centralny jest
odciążony od zadań, które z powodzeniem
mogą być wykonane na klientach.
Podstawową wadę tej architektury stanowią
znaczne koszty użytkowania komputerów
klientów. Okazuje się że wyposażenie klientów
w PC. Powoduje szereg problemów
np. konieczność instalowania oprogramowania
na wielu różnych skonfigurowanych komputerach
konieczność częstej wymiany sprzętu wraz ze
wzrostem wymagań systemów , problemów z
bezpieczeństwem (np. tworzenie przez
użytkownika niebezpiecznych lokalnych kopii
d anych, zagrożenie przez wirusy, brak pełnej
kontroli nad działaniami pracowników,
brak kontroli licencji.
Plusy :
a) tworzenie aplikacji jest tańsze
* prostszy system
* więcej tańszych specjalistów i
narzędzi do tworzenia oprogram.
b) rozlozenie obciążenia
Minusy: a) musimy stworzyć oprog.
na więcej, różnych platform sprzętowych
i systemowych.
b) problemy z administracja- oprogr.
trzeba aktualizować u wielu użytkowników
c) problemy z „dograniem” oprogramowania
z tymi wieloma platformami systemowymi.
=> ta architektura jest nie do utrzymania
***
Ponieważ ciężko zarządzało się aplikacjami
u klientów to je stamtąd zabieramy
Dodajemy drugi duży komputer na którym
uruchamiamy aplikacje użytkowe
Wracamy do poprzedniej arch. ponieważ
ciężko zarządzało się aplikacjami u klientów,
wiec je stamtąd zabieramy.
Dodajemy drugi duży komputer na którym
uruchamiamy aplikacje użytkowe
Powód –utrzymanie poprzedniej arch.
jest ostatecznie droższe od tego drugiego
mocnego komputera
Serwer
Serwer
BD
Aplikacji
Klient
Architektura wielowarstwowa
Użytkownicy chcą jednak wykorzystać
w pełni swoje komputery klienckie
możemy założyć ze wszyscy maja
zainstalowane przeglądarki WWW.
W aplikacjach użytkowych do SZBD
(tych działających na drugim mainframe’ie)
dokonujemy modyfikacji-teraz generują
one tylko kod html a interpretuje go
przeglądarka WWW na komp klienta
SERVER
(odciążenie serwera
aplikacji.)
SZBD
DEF
Dodatkowo na serwerze
aplikacji
musimy uruchomić serwer WWW.
Logicznie mamy architekturę
4-warstwowa: 1) syst baz danych
SO
2) serwer aplikacyjny
3) serwer WWW
4) klient + przegladarka WWW
F. BD
Jak wygląda komunikacja pomiędzy
serwer BD a serwer aplikcji
Wszystkie SZBD maja wymagania w jakiej
postaci chciałyby dostać komendy SQL-owe
zanurzone w kodzie(np. C). Taki
standardowy dla danej bazy interfejs(~API)
nazywa się CLI. Potrzebny jest specjalny
interfejs pośredniczący ( bridge ) który
odbiera zapytanie do SZBD z aplikacji i
automatycznie zamienia go na pewne
konkretne CLI danego SZBD.=> została
opracowana pewna norma takich
odwołań => ODBC. Sterowniki ODBC
przerabiają zapytanie na określone CLI
Dla Javy JDBC. Dla każdej bazy danych
potrzebujemy osobny sterownik
ODBC=>który wybiera automatycznie
który sterownik ODBC w danej chwili
użyć. Drugim problemem jest różne
interpretowanie kodu HTML’a przez
przeglądarki WWW różnych producentów.
Rozproszone bazy danych
Tworzymy model logiczny i okazuje się
ze jest on bardzo duży =>chcemy to
podzielić na np. dwa serwery.
rozproszenie na
poziomie fizycznym
i logicznym
Odwołujemy się do dowolnego serwera
i ten serwer ma obowiązek nas obsłużyć.
Jeżeli nie posiada określonych danych to
on sam odwołuje się do innych serwerów
i zwraca nam dane.
Transakcje rozproszone => dwufazowe
potwierdzenie transakcji. Operacje
przeprowadza się na każdym serwerze
Wszystkie serwery wykonują je do końca.
Gdy wszystkie serwery potwierdza
wykonanie następuje realne wykonanie
transakcji. Gdy mamy wiele serwerów to
pojawia się problem koordynacji. Możemy
mieć koordynatora :
-fizycznego-jeden z serwerów; pojedynczy
punkt uszkodzenia całego systemu.
-wirtualnego-tak naprawdę nie ma
koordynatora, serwery dogadują się
miedzy sobą same.
A
Około 80% danych w starszych niż model
relacyjny modelach.
Sieciowo-codasylowy
hierarchiczny.
Grupowanie danych w wierszach.
Grupowanie danych w plikach fizycznych.
Organizacja seryjna-rekord jeden po drugim,
czytamy po kolei i szukamy aż znajdziemy,
rekordy nie są uporządkowane
Organizacja sekwencyjna-jak seryjna, ale
rekordy są uporządkowane według
jakiegoś atrybutu.
Model logiczny hierarchiczny
Róże typy danych przechowywano na
różnych plikach fizycznych. Dodatkowo
można łatwo przechowywać związki
logiczne pomiędzy rekordami z różnych
plików. Właściwie mamy w takiej sytuacji
rekordy logiczne(które przez system są
odwzorowywane na rekordy fizyczne).
Zadajemy pytania do modelu logicznego
za pomocą deklaratywnego języka zapytań.
Mamy logiczne rekordy, które mogą być
odwzorowywane w pewne rekordy fizyczne
powiązane miedzy sobą – te powiązane są
automatycznie tworzone przez SZBD na
podstawie modelu logicznego
Organizacja listowa jest bardzo efektywna.
Kolejna optymalizacja było przechowywanie
po dwa adresy w każdym rekordzie
-lista dwukierunkowa.
Wydział
Pracownik
sssss
ss student
ocen
a
Po dodaniu połączenia między pracownikiem
a oceną tracimy hierarchie w tradycyjnym
modelu hierarchicznym nie da się zrobić
połączeń do więcej niż jednego zwierzchnika
danego elementu.
Sieć elementów powiązań między nimi
Model sieciowy
Struktura hierarchiczna
master owner
detail
member
struktura sieciowa
set
owner
member
member może należeć do wielu setów
Bezpieczeństwo sys. bazodanowych:
1) dostęp do danych tylko przez
upoważnione osoby
2) zabezpieczenie przed utrata danych
Z punktu widzenia funkcji systemu:
-dostępność systemu- syst jest dostępny
dla użytkowników którzy są uprawnieni
-ochrona poufności - całościowo traktowane
elementy poufności w systemie(nie tylko
poufność danych)
-zadbanie o wiarygodność danychzapewnienie integralności danych w
systemie(pewność przechowywanych
danych)
Można wyróżnić wiele warstw
z niebezpieczeństwami, którym trzeba
przeciwdziałać 1) warstwa sprzętowa
2) System operacyjny
3 ) oprogramowanie, a konkretnie SZBD
4) programy użytkowe działające na bazie
danych 5) warstwa organizacyjna
działania naszego systemu
Bezpieczny system = bezpieczny
sprzet + bezp oprogramowanie +
warstwa organizacyjna
Niebezpieczeństwa:
a) kradzież
b) różnego typu uszkodzenia
c) nieupoważniony dostęp do różnych
części systemu
80% utraty danych wynika z umyślnego
działania własnych pracowników.
Formy zabezpieczeń :
1) dokładna selekcja pracowników
a) trzeba stworzyć pewne reguły
poprawnego zachowania pracowników
oraz egzekwować ich przestrzeganie
-nie zapisywanie haseł
-automatyczne blokowanie systemu po
pewnym czasie nieaktywności
b) sprawy formalno-prawne – trzeba
wyraźnie określić użytkownikom czego
im nie wolno robić -> w przeciwnym razie
brak odpowiedzialności pracownika
c) administratorzy, serwisanci, sprzątaczki, ...
2) procedury obsługi
a) dla administratora – komu może nadać
uprawnienia oraz nadać hasło i login
b) przekazywania danych
c) procedury dla serwisów
- ewidencja całej obsługi sprzętu
-wzór umowy przekazywania sprzętu
do naprawy
d) zachowania w sytuacjach zagrożenia
e) procedury obsługi dokumentów
źródłowych i raportów.
f) procedury obsługi kopii zapasowych
-jak maja być opisane
-sposób przechowywania
-sposób usuwania
3)bezpieczeństwo sieci
Trzy elementy bezpieczeństwa
1)dostępność danych
2)ochrona poufności danych
3)integralność danych
OLTP – bazy operacyjne, które nie nadają
się do analizy danych. Przeznaczone są
do dodawania, usuwania i edycji danych
czyli do manipulowania danymi.
OLAP- narzędzia zapewniające analizie
danych. Kluczowym komponentem jest
serwer OLAP który znajduje się pomiędzy
klientem a SZBD. Serwer OLAP rozumie
organizacje na danych w bazie danych
i posiada specjalne funkcje służące do
analizy danych.
Dla potrzeb analizy pracujemy na replikach
OLTP
(bazy operacyjne)
repliki
stary system
tutaj możemy
działał tak jak sobie dokonywać
działał
analiz
wady: pracujemy na danych których
struktura nie jest przygotowana
dobrze do analiz
meta-dane
ładowanie
hurtowni
Serwer OLAP
GUI
Warstwa sprzętowa
1) zasilanie-jeśli mamy bezpieczną sieć
elektryczna na UPS to zdecydowanie
z niej korzystamy
Jak mamy normalne zasilanie to korzystamy
z ups’a a) filtrowanie
b) podtrzymane zasilanie
Może być on-line lub off-line
Agregaty prądotwórcze – w przypadku
dużych systemów wymagających długiego
podtrzymywania zasilania. Bardziej
zaawansowane UPS’y maja kartę
sieciową - zarządzanie komputerami przez
siec, powiadomienie administratora, zdalne
administrowanie. Urządzenia sieciowe tez
powinny być podłączone przez UPS’y.
2) Systemy o wysokim stopniu
niezawodności kwestia zwiększenia
niezawodności systemu związana jest
z porównaniem kosztów z potencjalnymi
stratami(lub stawka ubezpieczenia)
3) pamięci masowe- macierze dyskowe
4) systemy backupowe archiwizacja
danych. Dwa typy archiwum:
- danymi archiwalnymi, z poprzednich
okresów działalności
- kopia bezpieczeństwa danych
Różnego rodzaju metody kopiowania:
-proste, zwykle kopiowanie danych
+ dziennik zmian od czasu ostatniej
kopii
-kopie bezpieczeństwa syst działających
24/h => specjalne oprogramowanie
działające pod kontrola SZBD.
-kompresja
-szyfrowanie
-zrzut systemu operacyjnego
5) bezpieczeństwo sieci : Zagrozenia
- bierne – podsłuchy oraz analiza
ruchu w sieci
- czynne
a) maskarada – udawanie kogoś innego
b) modyfikacja treści
c)podpinanie się pod legalne pakiety
d) DOS
e) ’tylne drzwi’
Trzy elementy bezpieczeństwa na
poziomie SZBD
1) dostępność danych
a) w najprostszych SZBD mamy tylko
instrukcje, które pliki mamy sobie
sami archiwizować
b) w lepszych SZBD są specjalne
moduły, które wykonują za nas
kopie bezpieczeństwa, odtwarzają dane.
c) w najnowszych SZBD mamy możliwość
robienia kopii bezpieczeństwa
Kopia == replika
Repliki służą także do odciążania
oryginalnej bazy danych. W najnowszych
i największych SZBD wiele replik może
być równoprawnych i nawzajem się
uaktualniają -> technologia grid’owa
2) ochrona poufności danych
DEF opisują prawa dostępu do danych
w bazie. My musimy zapewnić ochronę
przed niepowołanym dostępem do DEF.
3) integralność danych
-sprawdzenie poprawności danych
-pole wymagane / niewymagalne
-może być NULL albo nie
-unikalność danego pola
-integralność referencyjna
OLTP
OLAP
Hurtownia danych
Pobieramy dane z różnych systemów
OLAP i poddajemy je różnym operacjom
Operacje na danych:
a) uzgadnianie danych (pochodzących
z różnych systemów baz danych)
b) czyszczenie danych-do analizy mogą
nam nie być potrzebne oryginalne dane
c) agregaty-do analiz zazwyczaj są nam
potrzebne pewne dane zbiorcze a nie
wszystkie szczegółowe dane
d) ziarnistość danych-musi być taka sama
ziarnistość danych (ziarnistość
np. dzienna tyg, miesięczna)
e) ładowanie bazy danych-a dokładnie
ładowanie hurtowni danych.
Hurtownia danych jest pewna zbiorcza
baza danych ukierunkowana dla potrzeb
dokonywania analiz danych. W takim
kształcie tworzymy hurtownie za
pomocą procesu ‘ładowania hurtowni
danych’. Hurtownia danych nie jest
jeszcze systemem OLAP.
W systemach OLAP model logiczny
danych to wielowymiarowa kostka danych.
Wartości w poszczególnych komórkach
kostki są wyliczane na podstawie danych
pochodzących z hurtowni danych.
Te wyliczone dane można przechowywać
na trzy sposoby:
1) MOLAP – do przechowywania struktur
wielowymiarowych używa bazy
wielowymiarowej
2) ROLAP – do przechowywania struktur
wielowymiarowych używa tabel w relacyjnej
bazie danych
3) HOLAP – do przechowywania struktur
wielowymiarowych używa dedykowanej do
tego bazy wielowymiarowej(dla danych
zagregowanych) w połączeniu z tabelami w
relacyjnej bazie danych
MOLAP jest bardzo szybkie, ale źle się
sprawdza przy dużych kostkach , natomiast
ROLAP jest wolniejszy ale radzi sobie z
bardzo dużymi kostkami
Sposoby realizacji modelu logicznego:
MOLAP: szybki, nie nadaje się do dużej
ilości danych
ROLAP: wolny, bardziej elastyczny
HOLAP: sys. o różnych arch. za każdym
razem zależy od implementacji
OLTP: w tym systemie musimy tworzyć
hurtownie danych, a interfejs jest między
hurtownią a użytkownikiem, interfejs musi
pozwolić na łatwy sposób zadawania pytań
OLAP: oparte o zupełnie inna technologię,
nowy model logicznych danych, nowy
język zapytań (warunek intuicyjności),
nowy sposób raportowania(wykresy,
eksport danych do innych systemów)
Hurtownia danych:
-etap projektowania: ładowanie (zagregowanych
informacji, różny stopień szczegółowości)
okresowo, aktualizowanie, doładowywanie,
budowanie zasad działania bez danych ze
względu na zgodność gł. model logiczny to
model gwiazdy (bardziej skomplikowany to
model płatki śniegu)=>ROLAP
model fizyczny – odwzorowania kostki
w pliki=>MOLAP
oprogramowanie power shut instalowane
jest na komp., jest możliwość wpięcia
do sieci przez UPS który jest prolongowany,
analiza kosztów i strat w przypadku awarii,
wieloseryjne połączenia, stosowanie macierzy
dyskowych, backup serwer, ochrona poufności
danych (logowanie)
Systemy:
-hurtownie danych(warehouse)
-systemy OLTP
-systemy DataMining
OLTP-on line transaction processing
Mamy w bazie informacje ale nie mamy do
nich dostępu, ponieważ mamy język zapytań
Problemy systemów:
-spowolnienie działania systemów OLTP
-rozbicie danych w różnych systemach OLTP,
-sposób zadawania pytań
-brak spójności danych różnych systemów
warstwa organizacyjna:
-zabezpieczenie przed kradzieżą
-zabezpieczenie przed uszkodzeniem
-zastosowanie środków organizacyjnych
zagrożenia występują w:
-otoczenie sprzętu komp.
-ochrona sprzętu przed własnymi
pracownikami
-ochrona przemieszczeń gdzie znajduje się
nasz system (strefy bezpieczeństwa z dobrze
dobranym personelem)
-ustalenie procedur postępowania w sytuacjach
awaryjnych (kto odpowiada, jaki czas,
procedura dostępu, zgłaszanie, sytuacje
nietypowe)
-opracowanie procedur odnośnie dokumentów
źródłowych -ochrona sieci (dostępność
regulowania: kodeks karny, ustawa o ochronie
danych objętych klauzulami, ustawa o ochronie
danych osobowych)
-organizacja outsource’ingu
warstwa sprzętowa:
-zabezpieczenie zasilania sprzętu przez
UPS: on line (na linii), in line (wygładza,
stabilizacja sygnałami) jeśli UPS nie jest
zasilany to energia bierze się z baterii
-najbardziej zaawansowane urządzenie:
ma dodatkowy kabel do odpowiedniego
oprogramowania sygnału, że jest zasilany
z UPS lub wysyła komunikat shutdown
SZBD
-Powinien rozdzielać zadania między
procesory
-powinien sterować rozdziałem zasobów
-powinien przyjąc definicję modelu fizycznego
-powinien być transparentny (nasz użytkownik
nie widzi skąd są brane dane)
-powinien znajdować się monitor transakcji
Download