Informacje wstępne.

advertisement
B A Z Y DA N YC H
dr Stanisław Drozda
literatura:
Jeffrey D. Ullman, Jennifer Widom „Podstawowy wykład z systemów baz
danych”
Thomas Connolly, Carolyn Begg „Systemy baz danych” t.1
Informacje wstępne.
Wprowadzenie
Czynniki wskazujące na potrzebę wykorzystania baz danych:
• powiązane ze sobą informacje przechowywane są oddzielnie (w różnych
plikach, a często na różnych komputerach), uzyskanie odpowiedzi na zapytania wymagające
czerpania informacji z różnych zbiorów danych jest
częstą potrzebą i zwykle okazuje się trudne i niewygodne;
• te same dane są powielane w wielu różnych plikach, obsługiwanych przez
różne narzędzia, prowadząc do zbędnej komplikacji systemu, nadmiernych
kosztów i trudności w utrzymaniu spójności danych;
• rosnąca objętość informacji zaczyna przekraczać możliwości dotychczas
używanych narzędzi, prowadząc do spadku wydajności systemu;
• często pojawiają się zadania, których wykonanie wymaga przenoszenia
informacji poza komputer i niezautomatyzowanego przetwarzania, np. raporty tworzone
przez jeden z działów instytucji muszą być przekazywane
do dalszego przetwarzania innemu działowi zanim przyjmą postać ostateczną, i to
z koniecznością konwersji formatów bądź wielu "ręcznych" modyfikacji, co stwarza okazje
do powstawania błędów i opóźnień;
• trudno pogodzić potrzeby wspólnego dostępu wielu użytkowników do tych
samych danych z koniecznością utrzymania ich integralności, tj. zgodności z założonymi
formatami i z aktualnym stanem faktycznym oraz ze
złożonymi formami kontroli dostępu, tj. wymogiem wyraźnego definiowania zakresu
dopuszczalnych operacji dla każdego użytkownika.
Przykładowe sytuacje, w których korzystanie z bazy danych jest wskazane:
• dane personalne o pracownikach większej firmy lub instytucji wykorzystywane są
równolegle np. przez dział kadr, dział płac, dział socjalny. Poza
tym część tych danych ma charakter poufny, na mocy odpowiednich ustaw
bądź przepisów wewnętrznych firmy, zatem dostęp do przeglądania danych
(a tym bardziej ich modyfikacji) musi być ściśle limitowany i udostępniany
jedynie w zakresie koniecznym dla zadań danego użytkownika;
Obszar analizy (OA Universe of Discourse) – wycinek rzeczywistości, podlegający
opisowi przez bazę danych (system baz danych)
Przykład
rezerwacja biletów lotniczych,
jakie dane będą istotne z punktu widzenia użytkowników bazy danych?
np. skąd , dokąd , data i godzina wylotu, data i godzina przylotu, linie lotnicze, rodzaj
samolotu itp.
Oczywiście mogą w obszarze analizy występować dane nieistotne dla bazy danych.
(zależy jaki zakres należy uwzględnić w bazie) np. jakie dania są w barze na lotnisku.
Baza danych – zbiór logicznie uporządkowanych,trwałych danych reprezentujących dany
obszar analizy . W bazie danych mamy do czynienia z faktami, które mają miejsce.
W przykładzie
skąd: Warszawa
dokąd: Moskwa
data i godzina wylotu: 12.10.2013 8:00
data i godzina przylotu: 12.10.2013 12:00
linie lotnicze: Aeroflot
---------------------------skąd: Warszawa
dokąd: Biłgoraj
data i godzina wylotu: 12.10.2013 9:00
data i godzina przylotu: 12.10.2013 14:00
linie lotnicze: Podlotek
Baza danych – części:
a) intensjonalna – definicja danych opisujących ich strukturę (schemat); tworzeniem
takiego schematu będziemy nazywać projektowaniem baz danych.
W przykładzie
skąd , dokąd , data i godzina wylotu, data i godzina przylotu, linie lotnicze
b) ekstensjonalna – dane bazy
Bardziej sensowny zajmujący mniej miejsca jest zapis w tabeli
skąd
dokąd
data i godzina
wylotu
data i godzina
przylotu
linie lotnicze
Warszawa Moskwa
12.10.2013 8:00
12.10.2013 12:00
Aeroflot
Warszawa Biłgoraj
12.10.2013 9:00
12.10.2013 14:00
Podlotek
Integralność bazy danych – baza jest dokładnym odbiciem OA, który opisuje. Integralność
oznacza, że wszystkie stany bazy danych są poprawne (w danym czasie)
Transakcja – zdarzenie, które powoduje zmiany stanu w bazie danych.
W przykładzie: zmiana lotu przez pasażera
Więzy integralności – rozumiemy takie reguły określające w jaki sposób baza danych
powinna opisywać OA i przechodzić tylko przez stany poprawne:
a)
statyczne – sprawdzają czy dane transakcje nie wprowadziły bazy do stanu
niepoprawnego
b)
przejść – reguły wiążące ze sobą stany bazy danych
Funkcje bazy danych:
a)
aktualizujące – zamieniają jeden stan w drugi (np. utwórz nowy dział, usuń
pracownika z bazy). Funkcje aktualizujące są związane z więzami integralności
b)
zapytań – sprawdzanie stanu bazy danych (kwerendy pytające).
Typy baz danych
Użytkowane dziś bazy danych można podzielić, ze względu na sposób zarządzania nimi, na
dwa rodzaje:
• operacyjne bazy danych - znajdują zastosowanie w codziennym funkcjonowaniu różnych
instytucji, organizacji i firm, gdyż są wykorzystywane tam,
gdzie zachodzi ciągła potrzeba zbierania, przechowywania i modyfikowania danych. Ten
typ bazy danych przechowuje dane dynamiczne - ulegające ciągłym zmianom i
odzwierciedlające bieżący stan jakiegoś obiektu.
Przykłady: bazy obsługi zamówień, bazy magazynowe, bazy danych o
klientach, pacjentach, itp.
• analityczne bazy danych – są wykorzystywane do przechowywania danych
historycznych i informacji związanych z pewnymi zdarzeniami. Dane w
bazie analitycznej są statyczne - bardzo rzadko (jeżeli w ogóle) ulegają
zmianom i zawsze odzwierciedlają stan obiektów z pewnego ustalonego
momentu, nigdy stan obecny. Takie bazy wykorzystuje się np. przy analizie tendencji
rynkowych, prognozowaniu na podstawie danych archiwalnych, przechowywaniu danych
pomiarowych.
Modele danych
Model danych (a w odniesieniu do konkretnej realizacji mówi się często o
architekturze systemu baz danych) można rozumieć jako zbiór ogólnych zasad
posługiwania się danymi. Zbiór ten obejmuje trzy główne części:
a) definicja danych (model danych) - zbiór reguł określających strukturę danych
czyli logiczną strukturę bazy danych (w odróżnieniu od niższego poziomu organizacji
zapisu stosowanego wewnętrznie przez jądro bazy danych);
b) operowanie danymi - zbiór reguł dotyczących procesu dostępu do danych i
ich modyfikacji;
c) integralność danych - zbiór reguł określających, które stany bazy danych
są poprawne (awięc jakie operacje prowadzące do modyfikacji danych są dozwolone).
Rozróżnia się trzy główne typy (lub generacje) modeli danych:
1. Proste modele danych(płaskie bazy danych), gdzie dane są zorganizowane
w strukturę rekordów zgrupowanych w plikach. Głównymi dostępnymi
operacjami są operacje na rekordach (ewentualnie na ich poszczególnych
polach).
2. Klasyczne modele danych,do których należą modele hierarchiczne, sieciowe
i relacyjne.
3. Semantyczne modele danych (semantyka to inaczej znaczenie) - ponieważ
klasyczne modele danych nie dostarczają łatwego sposobu odczytania informacji o
semantyce danych, stąd podejmuje się próby stworzenia innych
modeli, uzupełniających ten brak. Przykładem częściowej realizacji tego
programu są obiektowe, obiektowo-relacyjne i dedukcyjne modele danych
Modele klasyczne
Hierarchiczny model danych
Hierarchiczny model danych jest pewnym rozszerzeniem modelu prostego.
Tabela jest złożona z pól, z których każde służy do zapisu pojedynczego atrybutu obiektu
opisywanego przez rekord, i charakteryzuje się określonym typem
danych, np. liczba całkowita, tekst, data. Tabele w bazie tworzą strukturę
odwróconego drzewa i są powiązane w formie nadrzędny-podrzędny. Typowe operacje na
danych realizowane są poprzez funkcje lub procedury pisane w języku
programowania o charakterze proceduralnym, np. C). Model hierarchiczny jest
podobny do struktury systemu plików.
Integralność danych:
-każdy rekord (z wyjątkiem tabeli root -najwyższej w hierarchii) musi być
związany tylko z jednym rekordem nadrzędnym, w konsekwencji nie można
wstawić rekordu bez powiązania go z rekordem nadrzędnym, a usunięcie rekordu
nadrzędnego wiąże się z usunięciem wszystkich względem niego podrzędnych;
-zawartość każdego pola rekordu musi odpowiadać typowi danych z definicji
danej tabeli;
-jedno z pól każdej tabeli wyróżnia się jako klucz, tj. unikalny identyfikator
rekordu (często przydzielany dość arbitralnie, podobnie jak np. numer albumu
studenta czy numer PESEL).
Sieciowy model danych
Sieciowy model bazy danych został stworzony głównie w celu rozwiązania
problemów związanych z modelem hierarchicznym. W ogólnym zarysie niewiele
odbiega od niego. Model sieciowy również można sobie wyobrazić jako odwrócone
drzewo. Istotna różnica polega jednak na tym, że wiele drzew może dzielić
ze sobą gałęzie, co pozwala zobrazować powiązania wielu danych z wieloma
danymi, a nie tylko jednej danej z wieloma.
Zamiast związku nadrzędny-podrzędny między tabelami mamy tu powiązanie
definiowane przez tzw.kolekcję (ang. set structures) łączącą dwie tabele przez
przypisanie jednej z nich roli właściciela, drugiej - roli elementu kolekcji. Kolekcje
pozwalają wiązać każdy rekord z tabeli-właściciela z dowolną ilością rekordów
tabeli-elementu, a pojedynczemu rekordowi z tabeli-elementu musi odpowiadać
dokładnie jeden rekord w tabeli-właściciela. Między każdymi tabelami można
zdefiniować dowolną liczbę powiązań, a każda tabela może uczestniczyć w wielu
kolekcjach.
Operowanie danymi ma też charakter proceduralny: typowe operacje to
wyszukiwanie rekordu na podstawie zawartości pól i/lub przynależności do danego
wystąpienia typu kolekcji, i dokonywanie modyfikacji bieżącego rekordu.
Integralność danych: podobnie jak w modelu hierarchicznym.
Obiektowy model danych
Obowiązujący obecnie standard został opublikowany w 1993 roku, ale nie
jest oficjalny. Nie istnieje ani ogólnie przyjęta metoda projektowania takich baz,
ani jednolita terminologii. Obiektowe bazy danych łączą własności obiektowych
języków programowania z możliwościami systemów bazodanowych, oraz kon-cepcjami
ogólnych rozważań na temat obiektowego postrzegania świata. Jednym
z podstawowych celów tego typu bazy danych jest bezpośrednie odwzorowanie
obiektów i powiązań między nimi wchodzących w skład aplikacji na zbiór obiektów i
powiązań w bazie danych. W ten sposób bazy tego typu rozszerzają możliwości języków
obiektowych, czyniąc z nich narzędzia do efektywnego tworzenia
systemów baz danych (mniejszy stopień złożoności i mniejsza ilośc kodu). Model
ten pozwala na przechowywanie danych o dowolnej strukturze, zdefiniowanej
przez projektanta, co powoduje, że baza sprawdza się wszędzie tam, gdzie relacyjna baza
danych napotyka trudności, przede wszystkim chodzi tutaj dynamicznie rozwijający się
Internet i WWW.
Pojęcia definiujące obiektowy model danych są typowe dla obiektowych
języków programowania: obiekt, klasa, atrybut, metoda, hermetyzacja, agregacja,
dziedziczenie. Język programowania jest jednocześnie językiem bazy
danych, co zapewnia bezpośrednią zależność między obiektem w aplikacji a
obiektem w bazie (zintegrowane dotychczas języki to: C++, Java, LISP, SmallTalk).
Przykładowe ODBMS: Gemstone, O2 i Object Store (firmy Object Design),
Objectivity/DB (firmy Objectivity), Versant ODMBS (firmy Versant).
Właściwości bazy danych:
a)
współdzielenie – używanie przez kilka osób naraz; (lotnisko, pasażer, linia
lotnicza)
b)
integracja danych – jeden fakt powinien być zapisany raz;
c)
integralność danych – dane powinny opisywać dokładnie poprawne stany OA;
d)
abstrakcja danych – tylko ważne dane (kluczowe dane);
e)
niezależność danych – model danych i dane nie są zależne od programu
klienckiego;
I.
System zarządzania bazą danych SZBD
System zarządzania bazą danych SZDB (DBMS – Database Management System) – zorganizowany
zbiór narzędzi umożliwiający dostęp i zarządzanie do jednej lub więcej baz danych.
Funkcje DMBS:
1. Zarządzanie zbiorami danych
a)
dodawanie nowych zbiorów
b)
usuwanie zbiorów
c)
modyfikowanie struktury zbioru
d)
wstawianie danych
e)
aktualizowanie danych
f)
usuwanie danych
2. Wyszukiwanie informacji
3. Zarządzanie bazą
a)
b)
c)
tworzenie i monitorowanie użytkowników
ograniczanie dostępu do plików
monitorowanie działania bazy danych
Architektura systemu baz danych:
Według ANSI/SPARC (Study Group on DataBase Management Systems), architekturę
systemu można podzielić na trzy poziomy:
1.
zewnętrzny – użytkownicy baz danych
2.
wewnętrzny – fizyczna pamięć
3.
pojęciowy – pomiędzy 1 a 2
1. Poziom zewnętrzny – poziom indywidualnego użytkownika;
programowanie
użytkownicy
administrator bazy danych (DBA)
Podjęzyk danych (DSL – Data SubLanguage) (np. SQL)
język definiujący dane (DDL – Data Definition Language)
język manipulowania danymi (DML – Data Modification Language)
2. Poziom pojęciowy – reprezentacja zawartości informacyjnej bazy danych
reguły integralności
reguły bezpieczeństwa
3. Poziom wewnętrzny – oddalony od fizycznego
typy zachowań rekordów
indeksy
Administratorzy:
Administrator danych (DA) – podejmuje działania dla danych
Administrator bazy danych (DBA) – zapewnia wsparcie techniczne i sprawuje kontrole nad
działaniem DBMS
System baz danych = Baza danych + DBMS
Funkcje pełnione przez administratora bazy danych:
definiowanie schematu pojęciowego
definiowanie schematu wewnętrznego, zdefiniowanie powiązania (jak dane
mają być przechowywane)
łączność z użytkownikami, aby zapewnić dostęp danych dla użytkowników
oraz wytworzyć interfejsy
definiowanie reguł bezpieczeństwa i integralności
określanie procedur do archiwizowania i odzyskiwania danych
śledzenie wydajności i reakcja na zmiany
Download