Wprowadzenie do baz danych.doc

(389 KB) Pobierz
Wprowadzenie do baz danych

Wprowadzenie do baz danych

Literatura

M. Muraszkiewicz, H. Rybiński: Bazy danych. Warszawa, 1993. J. D. Ullman: Systemy baz danych. WNT, Warszawa 1988.

Pojęcie bazy danych

Czym jest baza danych

·         pamięć trwała danych (persistant data)

·         określona struktura i reguły integralności

Cele użytkowania b.d.

·         niezawodność zapisu

·         integralność danych

·         sprawność zapytań

·         wygodne interfejsy

·         wielodostęp

·         zabezpieczenia dostępu

System zarządzania bazą danych (DBMS)

·         izoluje programy od reprezentacji fizycznej

·         słownik danych

o        język opisu danych

o        extended dictionary

·         mechanizmy dostępu:

o        język zapytań i manipulacji danymi

o        optymalizacja dostępu

·         mechanizmy ochrony:

o        autoryzacja dostępu

o        ochrona spójności

o        mechanizmy do odtwarzania po awarii

·         wielodostęp i dostęp przez sieć

o        zarządzanie transakcjami

o        klient-serwer

o        mechanizmy dla rozproszonych b.d.

·         narzędzia do budowy interfejsów:

o        narzędzia do zapytań interakcyjnych

o        dostęp z języków 3GL

o        specjalizowane narzędzia 4GL

Przykładowe zastosowania baz danych

·         systemy finansowo-księgowe

·         systemy rezerwacji (np. lotniczej)

·         systemy wspomagające zarządzanie

·         CAD (Computer Aided Design)

·         GIS (Geographical Information Systems)

Składniki działającego systemu b.d.

·         struktura danych

·         reguły integralności

·         dane

·         aplikacja:

o        formularze

o        raporty

o        programy przetwarzające

o        zapytania ad-hoc

Języki dostępu

·         budowa:

o        proceduralne

o        nieproceduralne

·         typ dostępu:

o        nawigacyjne (rekord bieżący)

o        zwracające struktury (np. tabele)

Alternatywy dla b.d.

·         systemy plikowe (flat files):

o        sekwencyjne (SAM)

o        indeksowo-sekwencyjne (ISAM)

o        z dostępem bezpośrednim

·         język Cobol

Modele baz danych

Podział zadań w projektowaniu b.d.

·         użytkownik -- odbiorca systemu

·         analityk

·         projektant

·         programista

·         administrator b.d. (DBA)

Model zewnętrzny

·         opisuje świat z punktu widzenia użytkowników b.d.

·         może istnieć wiele modeli zewnętrznych tej samej rzeczywistości

·         nie musi być związany z konkretnym modelem danych

Model pojęciowy (konceptualny)

·         tworzony przez analityków

·         opisuje świat w kategoriach konkretnego modelu danych

·         abstrahuje od szczegółów implementacji

·         odpowiada na pytanie "co?" a nie "jak?"

Model logiczny

·         tworzony przez projektantów b.d.

·         opisuje projekt struktury w kontekście konkretnej implementacji

·         model struktury zgodny z modelem danych, a nie z ich fizyczną reprezentacją

·         może zawierać parametry dotyczące reprezentacji fizycznej, np.:

o        partycjonowania danych

o        alokacji pamięci

Reprezentacja fizyczna

·         tworzona przez SZBD

·         izolowana od aplikacji przez SZBD

·         zarządzana przez administratora

o         

Modele danych

Model hierarchiczny

Cechy podstawowe

·         struktura danych ma postać drzewa

·         węzły -- typy opisywanych obiektów

·         łuki -- związki typu ojciec-syn

·         drzewo jest uporządkowane, tj. na każdym poziomie kolejność węzłów jest określona

·         opis obiektu (rekord) zbudowany z pól zawierających dane opisujące obiekt

·         związki zrealizowane jako wskaźniki

Przykład

Hierarchiczna struktura danych

Języki obsługi

·         o charakterze nawigacyjnym

·         operacje typu:

·         GET LEFTMOST typ WHERE warunek

·         GET NEXT typ

Ograniczenia

·         nie ma związków typu n-m (np. oddziały pomieszane w kilku budynkach)

·         tylko jeden rodzaj związku między dwoma typami obiektów

·         dodatkowe związki
(np. pracownik-budynek):

o        dodatkowe drzewa hierarchii

o        odsyłacze do rekordów "oryginału"

Znaczenie praktyczne

·         system IBM IMS (1978)

o        bardzo wielkie dane zgromadzone

o        poprzednik użyty w programie Apollo

·         nowych projektów nie robi się

Model sieciowy

Cechy podstawowe

·         struktura danych ma postać grafu (sieci)

·         wierzchołki grafu -- typy obiektów

·         łuki w grafie -- wiązania między typami

·         opis obiektu (rekord) zbudowany z pól zawierających dane opisujące obiekt

·         reprezentacja wiązań (wskaźniki):

o        odesłanie bezpośrednie (jednowart.)

o        odesłanie inwersyjne (wielowart.)

o        wiązanie codasylowe

Realizacja wiązań -- model DBTG CODASYL

·         rekordy powiązane stanowią kolekcję (set)

o        jeden rekord nadrzędny

o        wiele rekordów podrzędnych

·         kolekcja realizowana jako lista zamknięta

·         brak bezpośredniej reprezentacji
wiązań n-m

Języki obsługi

·         języki manipulowania -- nawigacyjne

·         CODASYL: język definiowania danych pozwala określić sposób automatycznego włączania rekordów do kolekcji

Przykłady

Więzy i ich realizacja w CODASYL

Sposób realizacji wiązania m-n

Znaczenie praktyczne

·         system IDS (General Electric)

·         obecnie raczej nie używany

Model relacyjny

Cechy podstawowe

·         dane zawarte w tabelach

·         tabele składają się z kolumn

·         liczba kolumn i typy -- stałe

·         liczba wierszy zmienna

·         wiersze nie mają tożsamości innej niż wynikająca z zawartości kolumn

·         związki pomiędzy wierszami tabel -- zdefiniowane poprzez zależności między wartościami wybranych kolumn, tzw. kluczy (nie ma wskaźników)

·         z punktu widzenia teorii model można opisać algebrą relacji między zbiorami atrybutów

Języki obsługi

·         nieproceduralne: SQL, Sequel, QUEL, QBE

·         proceduralne: xBase

Znaczenie praktyczne

·         model dominujący w zastosowaniach komercyjnych

·         przykłady SZBD: Oracle, Informix, Sybase, Ingres, DB2, Progress, Gupta, Access, dBase, Paradox

Przykład

Przykładowy schemat danych -- związek 1-n

# Id             * Nazwa   * Id        

departamentu                oddziału    

...               ...       ...         

 

# Id            * Nazwisko  *      o Stanowisko  * Id           

pracownika                  Imię                 departamentu   

...             ...         ...    ...           ...            

 

Realizacja relacyjna

Ograniczenia

·         brak bezpośredniej reprezentacji
związków n-m

·         dla trudniejszych problemów
-- bardzo wiele tabel

·         mało naturalna reprezentacja danych

...

Zgłoś jeśli naruszono regulamin