Title: Bazy danych
1Bazy danych
2Baza danych
- pojecie siegajace wieków
- informacja pewien zasób
- ludzie od zawsze próbuja gromadzic informacje i
wnioskowac na jej podstawie - komputery tylko ulatwiaja przetwarzanie
informacji
3Informacja ma wartosc
- gdy jest
- dokladna (nie za duzo, ani nie za malo)
- dostepna
- gdy mamy zly sposób poszukiwania informacji
mozemy nie byc w stanie jej odszukac - moze nam zabraknac zycia!
- komputer tu nic nie pomoze
4Baza danych
- metoda strukturalizacji zarzadzania informacja
- dotyczy fragmentu rzeczywistosci i stanowi
kolekcje danych - czesc systemu informacyjnego
- aplikacja bazy danych (oprogramowanie)
- system informatyczny (sprzet)
5Przykladowa baza danych dla diagnostyki
6Funkcjonalna struktura bazy danych
7Elementy bazy danych dla diagnostyki
8Bazy danych czesto sluza do wspomagania procesów
zarzadzania
9System zarzadzania bazami danych (SZBD) (ang.
Data Base Management System, DBMS)
- SZBD to oprogramowanie sluzace do zarzadzania
komputerowymi bazami danych. - Systemy baz danych moga byc sieciowymi serwerami
baz danych lub udostepniac baze danych lokalnie - Wiekszosc obecnie spotykanych systemów dziala w
trybie klient-serwer, gdzie baza danych jest
udostepniana klientom przez SZBD bedacy serwerem.
- Serwer baz danych moze udostepniac dane klientom
bezposrednio lub przez inny serwer posredniczacy
(np. serwer WWW lub aplikacji).
10Podstawowe pojecia ze slownika baz danych
- Co to jest baza danych ?
- Rekordy, pola, klucze
- Co to jest jezyk SQL ?
- Rodzaje baz danych
- plikowe,
- relacyjne,
- obiektowe
- obiektowo-relacyjne
- sieciowe
11Cechy bazy danych
- trwalosc (aplikacja powinna dzialac przez dlugi
okres czasu dane sa przechowywane latami) - zgodnosc z rzeczywistoscia
- zmiana rzeczywistosci musi byc uwzgledniona w
bazie danych
12Przyklad danych do bazy
BIBLIOTEKA
13Ujecie projektowe
Atrybuty
Dane przechowywane w tabeli
Tytul Autor ISBN Rok Wydania ...
Potop H.Sienkiewicz 23xc4 1970 ...
Quo Vadis H.Sienkiewicz 3e45d 1985 ...
Pan Tadeusz A.Mickiewicz 231ws 1990 ...
... ... ... ... ...
Rekordy
Klucz
Pole
14Przykladowa struktura rzeczywistego rekordu
medycznej bazy danych
15W bazie danych, musimy
- kontrolowac redundancje (powtarzanie sie danych)
- jeden fakt powinien byc reprezentowany na jeden
sposób - problem dostepnosci i dokladnosci poszukiwanych
danych (czas dostepu oraz nadmiar danych)
16Poslugiwanie sie baza danych
- wyszukiwanie danych
- modyfikacja (aktualizacja) danych
- dopisywanie danych
- usuwanie danych
17Problem jednej tabeli
Tytul Autor ISBN Rok Wydania ...
Potop H.Sienkiewicz 23xc4 1970 ...
Quo Vadis H.Sienkiewicz 3e45d 1985 ...
Pan Tadeusz A.Mickiewicz 231ws 1990 ...
... ... ... ... ...
H.Sienkiewicz ... ... ...
A.Mickiewicz ... ... ...
18Najbardziej popularne sa relacyjne bazy danych
19Relacyjny model danych
- twórca E.F.Codd (1970)
- terminologia matematyczna baza danych to zbiór
relacji - relacja jest reprezentowana przez tablice
(kolumny i wiersze) - np. dla zadanej kolumny mamy w wierszu
odpowiednia wartosc
20Model relacyjny -rys historyczny
1970 Najbardziej znany, najczesciej cytowany
artykul E.F.Codda z IBM proponujacy oparcie sie
na teorii relacji jako podstawie ideologicznej i
teoretycznej architektury, jezyków i interfejsów
systemów zarzadzania bazami danych. Koncepcja
zostala okreslona jako relacyjny model danych,
RDM. 1971 - 1975 Zazarta walka ideologiczna
pomiedzy zwolennikami RDM a zwolennikami
koncepcji sieciowych baz danych opartych o
propozycje grupy DBTG komitetu CODASYL. Walka
toczy sie o pieniadze rzedu 100 miliardów w
skali 20 lat. 1971 - 1985 Intensywny rozwój
teorii zwiazanych z RDM. RDM stal sie ulubionym
konikiem grup teoretycznych na calym swiecie
(kilka tysiecy publikacji). 1975-1989 Intensywny
rozwój technologii opartych o RDM. Kariera wielu
systemów zarzadzania relacyjnymi bazami danych,
takich jak DB2, Oracle, Ingres, dBase nastepnie
Informix, Progress, Sybase, i wiele innych.
Szerokie zastosowania na skale przemyslowa,
ogromna popularnosc i pieniadze.
21Model relacyjny - rys historyczny cd.
- 1975 Pierwsze publikacje na temat jezyka Sequel,
poprzednika SQL, autorów z IBM (Chamberlin). - 1986 Pierwszy standard jezyka SQL zaaprobowany
przez ANSI. Wykazuje liczne odstepstwa od RDM. - 1989, 1992 Nastepne standardy SQL.
- 1987 E.F.Codd, sfrustrowany odstepstwami od RDM,
publikuje slynne 12 regul prawdziwego systemu
relacyjnego. Zaden z istniejacych systemów nie
jest prawdziwym systemem relacyjnym. Ma racje,
ale nikt tym sie nie przejmuje. Prawdziwego
systemu relacyjnego chyba juz nigdy nie bedzie. - 1985-2006 Intensywna krytyka wad RDM. Swiat
naukowy zredukowal swoje zainteresowanie RDM
praktycznie do zera. Swiat komercyjny rozbudowuje
systemy bez jakiejkolwiek troski o ideologie RDM.
22Model relacyjny - podstawowe zalozenia
Baza danych sklada sie z prostokatnych tablic,
kazda o okreslonej liczbie kolumn i dowolnej
liczbie wierszy. Takie tablice sa okreslane jako
relacje. Wiersz relacji jest nazywany
krotka. Elementy krotek sa atomowe
(niepodzielne) i sa bezposrednio wartosciami.
Niedozwolone jest tworzenie wskazników
prowadzacych do innych krotek. Niedozwolone jest,
aby element krotki byl zbiorem wartosci. Jest to
tzw pierwsza forma normalna (1NF). Porzadek
krotek nie ma znaczenia. Porzadek kolumn równiez
nie ma znaczenia. Jakiekolwiek cechy odnoszace
sie do reprezentacji relacji lub usprawnienia
dostepu do relacji sa ukryte przed uzytkownikiem.
23Model relacyjny - podstawowe zalozenia- cd.
- Relacje i ich kolumny posiadaja nazwy. Nazwy
kolumn sa okreslane jako atrybuty. - Kazda relacja posiada wyrózniony atrybut lub
grupe atrybutów okreslna jako klucz. Wartosc
klucza w unikalny sposób identyfikuje krotke
relacji. Jakakolwiek inna identyfikacja krotki
(np. wewnetrzny identyfikator) jest niewidoczna
dla uzytkownika. - Manipulacja relacjami odbywa sie w sposób
makroskopowy przy pomocy operatorów algebry
relacji lub innego tego rodzaju jezyka.
Przetwarzanie krotka po krotce jest
niedozwolone.
24Zalety i wady relacyjnych baz danych
25Waznym pojeciem w bazie danych jest dziedzina
danych
Przyklad Nie wystarczy stwierdzenie, ze dane
maja postac liczb calkowitych. Dziedzina
precyzuje to dokladniej.
26Bazy danych - transakcyjne i analityczne
27Diagram encji i relacji jako jeden z waznych
skladników koncepcji relacyjnej bazy danych
28Przykladowa struktura fragmentu projektu
medycznej bazy danych
29Proces wprowadzania danych do bazy za
posrednictwem wypelnianych przez uzytkownika
formatek ekranowych.
30Baza danych na przykladzie Microsoft Access
- plaszczyzna projektanta
- plaszczyzna uzytkownika
- wyszukiwanie, modyfikacja, dopisywanie, usuwanie
danych w obu plaszczyznach - na podstawie mechanizmów plaszczyzny projektanta
mozliwe jest tworzenie plaszczyzny uzytkownika
(interfejs uzytkownika)
31Wyszukiwanie danych
- filtr doraznie
- kwerenda trwale
32Relacyjna Baza Danych
Autor
Ksiazka
Wydawnictwo
tytul
nazwa
imie
ISBN
adres
nazwisko
opis
adres
rok wyd
...
...
33Relacyjna Baza Danych
Ksiazka
Autor
imie nazwisko
Henryk Sienkiewicz
Adam Mickiewicz
tytul ISBN
Potop 12234ee4
Quo Vadis 334we2
Pan Tadeusz 23we45
34Uczen
35Rzeczywiste relacyjne bazy danych bywaja dosyc
rozbudowane
36W bazie danych moze byc wyrózniona warstwa
aplikacji i warstwa prezentacji
37Najwazniejsze narzedzie baz danych SQL
Structured Query Language, czyli strukturalny
jezyk zapytan
- SQL jest wszechstronnym jezykiem baz danych.
-
- Obejmuje polecenia zwiazane z definiowaniem
danych, tworzeniem zapytan oraz aktualizacja
danych. -
- Pelni jednoczesnie role jezyka DDL i jezyka DML.
-
- Standard SQL umozliwia definiowanie perspektyw
dla baz danych, okreslanie zabezpieczen i metod
uwierzytelniania, definiowanie wiezów
integralnosci oraz sterowanie wykonywaniem
transakcji.
38SQL podstawowy format zdania select
select all distinct expression ,
expression from table_name corr_name
.table_name corr_name where
search_condition1 group by column ,
column having search_condition2
Zapytania SQL moga byc bardzo zlozone. Semantyka
jest dosc czesto niejasna (SQL puzzles).
- Oprócz zdania select SQL wprowadza
- zdania definicji danych
- zdania manipulacji danymi (update, insert,
delete )
- Mimo to, SQL nie jest pelnym jezykiem
programowania, w zwiazku z czym wymaga - Zanurzenia zdan SQL w uniwersalny jezyk
programowania - Zdan posredniczacych, które umozliwiaja takie
zanurzenie
39SQL proste zdania select
Zakladamy tablice PRACOWNIK( NR, NAZWISKO,
ZAROBEK, NRDZ) DZIAL( NRDZ, NAZWA, LOKALIZACJA
)
Podaj nazwiska pracowników zarabiajacych mniej
niz 1000
select NAZWISKO from PRACOWNIK where ZAROBEK gt
1000
Podaj nazwiska i nazwy dzialów pracowników
pracujacych w Radomiu
select P.NAZWISKO, D.NAZWA from PRACOWNIK P,
DZIAL D where P.NRDZ D.NRDZ and D.LOKALIZACJA
Radom
Semantyka Zaczynamy od from Specyfikujemy
tablice do przeszukania oraz ew. ich lokalne
synonimy (scislej zmienne krotkowe). Tworzymy
iloczyn kartezjanski tablic. Nastepnie where
Usuwamy z tablicy lub iloczyny kartezjanskiego
takie krotki, które nie spelniaja warunku. Na
koncu select Bierzemy z kazdej wynikowej krotki
to, co jest potrzebne.
Na bazie tego prostego pomyslu utworzono
gigantyczna odwrócona piramide (setki stron
specyfikacji)
40Przyklad interfejsu uzytkownika w klinicznej
bazie danych Neonatologia
41Co to jest niezgodnosc pomiedzy modelem
pojeciowym i modelem implementacyjnym?
Celem twórcy bazy danych jest uzyskanie jak
najmniejszej luki pomiedzy mysleniem o
rzeczywistosci a mysleniem o danych i procesach,
które zachodza na danych.
Mentalna percepcja swiata rzeczywistego
Model pojeciowy
Schemat relacyjnej struktury danych
W modelu relacyjnym model pojeciowy jest budowany
w oparciu o model encja-zwiazek. Model
encja-zwiazek stara sie odwzorowac swiat
rzeczywisty, lecz nie moze byc bezposrednio
zaimplementowany, gdyz relacyjna baza danych na
to nie pozwala. W rezultacie - schemat
struktury danych gubi znaczna czesc semantyki
danych, - uzytkownik musi kojarzyc dane
explicite w zdaniach SQL, co zwieksza ich
zlozonosc i powoduje wzrost czasów wykonania.
42Niezgodnosc modelu pojeciowego i relacyjnego(1)
Mama
Zatrudnia
Osoba Nazwisko Adres RokUrodz
Departament NrD NazwaD Lokacja
Pracownik NrPrac Zawód Wyplaty
Dziecko
Pracuje_w
Dziecko
Szef
Tata
Ile schematów relacyjnych potrzeba, aby
zaimplementowac te strukture?
Czytelna pojeciowa struktura zamienila sie na 11
nieczytelnych schematów relacji Pojawily sie
nowe atrybuty - klucze Semantyka wyrazona
poprzez licznosci zostala czesciowo
zgubiona Semantyka dziedziczenia zostala
zgubiona Odtworzenie semantyki - uzytkownik
musi zrobic explicite poprzez zapytania SQL
Departament( NrD, NazwaD ) Lokacja( NrLokacji,
NazwaLok, NrD ) Szef( NrD, NrPrac) Pracownik(
NrPrac, NrOsoby) PracDept( NrPrac, NrD) Zawód(
IdZawodu, NazwaZawodu, NrPrac ) Wyplata (
IdWyplaty,Wysokosc, NrPrac ) Osoba( NrOsoby,
Nazwisko, RokUrodz ) Adres( NrAdresu, Miejsce,
NrOsoby ) Mama( NrOsoby, NrOsoby ) Tata( NrOsoby,
NrOsoby )
43Niezgodnosc modelu pojeciowego i relacyjnego(2)
Pracownik Zawód
FZ
PZ
Firma( NrF, Nazwa)
Lokal( NrF, Miejsce)
Zatrudnienie( NrF, NrP)
Pracownik( NrP, NrOs)
Oceny( NrOceny, Ocena, NrF, NrP)
Osoba( NrOs, Nazwisko)
Dochód( NrDochodu, Wyplata, NrF, NrP)
Wyszkolenie( Zawód, NrP)
Imiona( NrOs, Imie)
Adresy( NrOs, Adres)
44Garby modelu relacyjnego
Z góry ustalony konstruktor typu danych
(relacja), rozszerzany ad hoc przez
wytwórców systemów relacyjnych. Brak zlozonych
obiektów. Informacje o pojeciach wyróznialnych i
manipulowalnych w rzeczywistosci sa rozproszone w
krotkach wielu tablic.
Skojarzenie tych informacji nastepuje w
zapytaniach SQL, przez co wzrasta ich zlozonosc
oraz czas wykonania (optymalizacja zapytan tylko
czesciowo to rozwiazuje).
Brak wyspecjalizowanych srodków do realizacji
powiazan pomiedzy danymi.
Brak srodków do przechowywania danych
proceduralnych. Wszelkie informacje wykraczajace
poza strukture relacyjna (perspektywy, procedury
bazy danych, BLOBy, aktywne reguly,...) sa
implementowane ad hoc.
Brak srodków hermetyzacji i modularyzacji
wykroczenie przeciwko zasadom abstrakcji i
oddzielenia implementacji od specyfikacji.
Brak uniwersalnosci srodków dostepu do danych,
powodujacy koniecznosc zanurzenia ich w
uniwersalne jezyki programowania, znacznie
nizszego poziomu niezgodnosc impedancji (impedanc
e mismatch). Niespelnione obietnice przetwarzania
makroskopowego (wiele-w-tym-samym-czasie)
powrót do niewygodnej techniki jeden-w-tym-samym-c
zasie.
Niespójne mechanizmy wartosci zerowych, brak
wariantów, brak porzadku w relacjach.
45Obiektowe bazy danych
Teza bazy danych zawsze byly obiektowe,
chociaz nie realizowaly wszystkich pojec
obiektowosci, takich jak klasy, metody i
dziedziczenie.
Podstawowy wyróznik trwale obiekty
identyfikatory obiektów
Zmniejszenie dystansu pomiedzy fazami analizy,
projektowania i implementacji
Zwiekszenie poziomu abstrakcji w mysleniu
programistów i uzytkowników
Uwzglednienie informacji proceduralnej (metody)
Stworzenie nowego potencjalu dla ponownego uzycia
Docelowa tendencja - ortogonalna trwalosc
Programista podczas programowania nie musi nic
wiedziec o bazie danych, operujac na jej
obiektach tak jak na obiektach/zmiennych
programu. Baza danych powinna byc niewidoczna
(przezroczysta).
46Co zdarzylo sie w systemach po przejsciu na
technologie obiektowe?
Czesc informacji semantycznej, która
tradycyjnie tkwila w bibliotekach, typach,
aplikacjach, modulach zostala umieszczona i
usystematyzowana w ramach klas.
Relacyjna struktura aplikacji
Obiektowa struktura aplikacji
Pasywne dane (relacje)
Powiazane obiekty
Klasy i typy
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Typy
Biblioteki procedur i funkcji
Moduly aplikacyjne
Moduly aplikacyjne
Procedury bazy danych, perspektywy, reguly
Slowniki, katalogi
Slowniki, katalogi
47Dodatkowe zalety baz obiektowych
Klasyczne funkcje SZBD
- Zarzadzanie pamiecia zewnetrzna
- Zarzadzanie schematem
- Sterowanie wspólbieznoscia
- Zarzadzanie transakcjami
- Odtwarzalnosc
- Przetwarzanie zapytan
- Kontrola dostepu
Do tych funkcji dolozone sa
- Zlozone obiekty
- Typy definiowane przez uzytkownika
- Tozsamosc obiektów
- Powiazania pomiedzy obiektami
- Hermetyzacja, interfejsy do obiektów
- Typy i/lub klasy oraz hierarchia dziedziczenia
- Przelanianie/przeciazanie/pózne wiazanie
- Kompletnosc obliczeniowa (pragmatyczna)
48Manifest obiektowych baz danych
M.Atkinson, F.Bancilhon, D.DeWitt, K.Dittrich,
D.Maier, S. Zdonik
Cechy obowiazkowe
- przeslanianie z dynamicznym wiazaniem
- zarzadzanie pamiecia pomocnicza
- wspólbieznosc, odtwarzanie
- udogodnienia dla zapytan ad hoc
wielokrotne dziedziczenie, kontrola typów,
rozproszenie, transakcje projektowe, wersje
Cechy opcyjne
paradygmat programowania, metody reprezentacji
obiektów, system typów, jednolitosc
(kompatybilnosc)
Cechy otwarte
49Mimo licznych zalet obiektowe bazy danych sa
ciagle w fazie embrionalnej
50Jak budujemy baze danych?
- w sposób przyrostowy
- - dla kazdego elementu osobna baza, potem próba
laczenia - wada brak globalnej wizji (redundancja,
niespójnosc) - od razu jako zintegrowany system
51Budujac baze, bierzemy pod uwage
- jeden system (model) reprezentacji danychnp.
model relacyjny - wspólbiezny dostep do bazy przez wielu
uzytkowników - ochrona danych
- niezaleznosc (zaleznosc) okreslonych danych
52Aplikacje korzystaja z bazy
- poprzez model danych
- zbiór zasad dotyczacych struktur danych,
- warunki wspomagajace utrzymanie zgodnosci z
rzeczywistoscia - system zarzadzania baza danych
- zbiór narzedzi dajacych dostep do danych i ich
aktualizacji - np. wyszukiwanie danych, ochrona i dostep do
danych, konta uzytkowników
53Modelowanie danych
- specyfikacja wymagan uzytkowników
- okreslenie modelu systemowego
- konfiguracja sprzetu i oprogramowania
- projektowanie bazy 80 czasu tworzenia
- implementacja bazy 20 czasu tworzenia
54Zaawansowane funkcje baz danych
- Transakcje
- Replikacja bazy danych
- Procedury i wyzwalacze triggery
- Klucze obce i wiezy integralnosci
- Podzapytania
- Wielowatkowosc i blokowanie
55Popularne serwery sieciowych baz danych
56(No Transcript)
57(No Transcript)
58Hurtownia danych
59Schemat gwiazdy
60Schemat platka sniegu
61Integracja danych
62Indeksacja bazy danych
63Sposób rozwijania zapytan do bazy danych
64Zapytania do bazy danych oraz odpowiedzi
65Typowa interakcja klient-serwer w Internecie
66Posrednie sieganie do internetowej bazy danych
67Model trójwarstwowy sieciowej bazy danych
68Protokól HTTP
69Uzywanie sieciowej bazy danych z wykorzystaniem
apletów Javy
JDBC (Java Data Base Connectivity)
70Dla potrzeb medycyny bardzo czesto wykorzystywane
sa multimedialne bazy danych, zawierajace obok
danych tekstowych i liczbowych takze zapisy
róznych danych multimedialnych rejestrowanychu
pacjenta w szczególnosci róznych obrazów
medycznych.
71Najbardziej znanym przykladem sa tu bazy PACS
72Maja one rózne zastosowania
73Przyklad japonskiego systemu typu PACS
74Przyklad multimedialnej medycznej bazy danych
(mammografia)
75Przyklad indeksacji (tworzenia opisu przypadku)
w multimedialnej bazie danych.Opisy takie
sporzadza sie w celu latwego wyszukiwania
danych.Reczne sporzadzanie takich opisów jest
bardzo czasochlonne podczas gdy automatyzacja tej
operacji jest bardzo trudna.
76Architektura zlozonej hurtowni danych
77Wyszukiwanie obrazów w multimedialne bazie danych
bez angazowania czynnika ich automatycznego
rozumienia
78Rózne uproszczone schematy wyszukiwania
79Przykladowe interfejsy uzytkownika stosowane w
systemach wyszukiwania obrazów
80VISUALSEEK
81(No Transcript)
82VIDEOQ
83Przyklad odpowiedzi systemu wyszukiwania obrazów
84Automatyczna anotacja obrazów na bazie procesu
uczenia
85Podzial obrazu na regiony bedacy kluczem do
procesu auto-anotacji
Obraz poddawany auto-anotacji
Obraz podzielony na regiony do auto-anotacji
86Róznej jakosci automatyczna anotacja
przykladowych obrazów