Nowy folder (5), wykład1


Bazy Danych

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:

  1. 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

  2. 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:

  1. statyczne - sprawdzają czy dane transakcje nie wprowadziły bazy do stanu niepoprawnego

  2. przejść - reguły wiążące ze sobą stany bazy danych

Funkcje bazy danych:

  1. 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

  2. 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:

  1. współdzielenie - używanie przez kilka osób naraz; (lotnisko, pasażer, linia lotnicza)

  2. integracja danych - jeden fakt powinien być zapisany raz;

  3. integralność danych - dane powinny opisywać dokładnie poprawne stany OA;

  4. abstrakcja danych - tylko ważne dane (kluczowe dane);

  5. niezależność danych - model danych i dane nie są zależne od programu klienckiego;

  1. 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

  1. dodawanie nowych zbiorów

  2. usuwanie zbiorów

  3. modyfikowanie struktury zbioru

  4. wstawianie danych

  5. aktualizowanie danych

  6. usuwanie danych

  1. Wyszukiwanie informacji

  2. Zarządzanie bazą

  1. tworzenie i monitorowanie użytkowników

  2. ograniczanie dostępu do plików

  3. 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;

Podjęzyk danych (DSL - Data SubLanguage) (np. SQL)

  1. Poziom pojęciowy - reprezentacja zawartości informacyjnej bazy danych

  1. Poziom wewnętrzny - oddalony od fizycznego

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:



Wyszukiwarka

Podobne podstrony:
Nowy folder, Wykład 1
Nowy folder Wykład 1
Nowy folder (5) wykładniest2014 12 06
EC2 plyty zbroj, szkola, szkola, sem 5, konstrukcje betonowe, Nowy folder, WYKLADY EC2
EC2 OTULINA L EFF, szkola, szkola, sem 5, konstrukcje betonowe, Nowy folder, WYKLADY EC2
Wyklad 4 2, semestr VIII, Semestr VIII, EUT, eut, Nowy folder, Wyklad 4
EC2 OTULINA, szkola, szkola, sem 5, konstrukcje betonowe, Nowy folder, WYKLADY EC2
Nowy folder, Wykład 3
Nowy folder (5) wykładniest2014 12 20
zagadnienia karto, umk, notatki, zadania, Nowy folder, Kartografia-WYKŁAD
leki pochodzenia naturalnego wyklad 10, studia -farmacja gumed, rok V, lek roślinny, Nowy folder
puszki wyklad 6 stycznia 2010, weterynaria, Nowy folder, k2, studia materialy, PUSZKI
polityka społeczna w ue-wykład, Nowy folder, RECORDER, Polityka Społeczna w UE-wykład
PUSZKI wyklad, weterynaria, Nowy folder, k2, studia materialy, PUSZKI
Integracja Europejska - Wykłady - 2004 - Kuśpit (41), Nowy folder
leki pochodzenia naturalnego wyklad 9, studia -farmacja gumed, rok V, lek roślinny, Nowy folder
leki pochodzenia naturalnego wyklad 7, studia -farmacja gumed, rok V, lek roślinny, Nowy folder

więcej podobnych podstron