Professional Documents
Culture Documents
Podstawowe definicje
Baza danych = kolekcja wzajemnie powizanych danych
przechowywana w pamiciach dyskowych i udostpniania jej
uytkownikom na okrelonych zasadach
Funkcje DBMS
!Wspbieno (concurrency)
!Transakcje (transactions)
!Odtwarzanie (recovery)
!Zapytania (guering)
!Wersje (vesioning)
!Spjno (integrity)
!Bezpieczestwo (security)
!Wydajno (performance)
ZARZDZANIE DANYMI
Gwne elementy
Systemu Zarzdzania Bazami Danych
Modyfikacja
schematu
zapytania
Procesor
zapyta
Modu Zarzdzania
Pamici
(MZP)
10
Aktualizacje
Modu
Zarzdzania
Transakcjami
(MZT)
Dane
Metadane
11
12
13
Problematyka
Kierunki bada
Trwao danych
Spjno danych:
przetwarzanie
transakcyjne
Nowe modele
przetwarzania: nowe
modele transakcji, OnLine Analitical
Preprocesing (OLAP),
systemy czasu
rzeczywistego
Efektywno
przetwarzania: fizyczne
struktury danych,
metody dostpu,
optymalizacja zapyta
Nowe struktury i
algorytmy: due
obiekty, obiekty
wielowersyjne,
struktury i indeksy
wielowymiarowe
14
19
20
Rodzaje modeli
!Model pojciowy (konceptualny)
!Model logiczny
!Model fizyczny
21
22
Relacja B
?
Klasa obiektw A
Klasa obiektw B
Klasa obiektw C
#
23
24
Model hierarchiczny
Model hierarchiczny
klient
Kos
kowalski
Nowak
121212134
Krakw
W-wa, Krucza 2
1000 z.
34545656
55 z.
5676543
3000
z.
konta
25
26
Model hierarchiczny
Model sieciowy
Dane w tym modelu reprezentowane s przez rekordy
Zwizki midzy danymi s reprezentowane przez wskazania (pointer)
Np.:
Samochd
Nadwozie
Podwozie
Cylindry
Silnik
Gowica
kowalski
4 Koa
Szczecin,Piastw
Kos
Krakw
Nowak
W-wa, Krucza 2
121212134
1000 z.
34545656
55 z.
5676543
3000 z.
Wa korb.
27
28
Model sieciowy
Symbol
Kurs
Wskanik
Nazwa kraju
Jzyk n
Jzyk n+1
Kurs
Wskanik
Jzyk n
nil
Jzyk n+1
29
nil
30
francuski
Wochy
Francja
ITL
FRF
Niemcy
DEM
1.95
Belgia
BEF
40.33
woski
nil
flamandzki
nil
1936.27
6.55
Tablica krajw
Tablica jzykw
31
32
Model relacyjny
Dane w tym modelu reprezentowane s przez
rekordy umieszczone w tabelach,
Kada tabela przechowuje rekordy tego samego
typu,
Kada tabela ma okrelon sta dla niej ilo
kolumn o unikalnych nazwach,
Elementy tabeli (atrybuty) s wypenione atomowymi
wartociami,
Kada krotka tabeli musi by jednoznacznie
okrelona przez warto atrybutw przypisanych
krotce krotki w tabeli bazy danych nie mog si
powtarza (musz by rne)
33
34
Model relacyjny
Model relacyjny
35
Klienci
Konta
#Kowalski
Szczecin,Piastw
#121212134
#121212134
1000 z.
#Kos
Krakw
#34545656
#34545656
55 z.
#Kos
Krakw
#5676543
#5676543
3000 z.
#Nowak
W-wa, Krucza 2
#123123
#123123
0 z.
36
37
38
Relacja - przykad
Relacja
39
Relacja cd..
40
41
Funkcje
systemu
Funkcje
systemu
Funkcje
systemu
Funkcje
systemu
Interfejs
Interfejs
Interfejs
Interfejs
Semantyka
danych
Semantyka
danych
Semantyka
danych
Semantyka
danych
Zarzdzanie
danymi
Zarzdzanie
danymi
Zarzdzanie
danymi
Zarzdzanie
danymi
Dane
Dane
Dane
Dane
Generacje
baz danych
Sieciowe i
hierarchiczne
Relacyjne
Semantyczne i
post-relacyjne
IMS, DBTG
IDMS, Adabas
Total
Ingres, Oracle
Sybase, Informix
Rdb, DB2, SQL/DS
Postgres, NF2
Starburst, Iris
Genesis, Probe
Obiektowe
Gemstone, O2
Ode, ObjectStore
Vision, Vbase
Exodus, Orion
42
Klucze
44
45
46
Dziedzina
47
48
Warto null
Warto null
Pojcie wartoci null nie jest jednak do koca
akceptowane.
Dr Codd utrzymuje, e wprowadzenie wartoci null do
systemu relacyjnego zmienia konwencjonaln logik
dwuwartociow (prawda, fasz) na logik
trjwartociow (prawda, fasz, nieznane).
W logice dwuwartociowej jeeli zdanie 1 jest
prawdziwe i zdanie 2 jest prawdziwe, to ich poczenie
spjnikiem i" jest rwnie prawdziwe.
49
Atrybuty kluczowe i
niekluczowe
50
Wasnoci kluczy:
51
52
Przykad:
Kod_kursu jest
kluczem gwnym w
tabeli
przedmioty_kursy a
kluczem wtrnym w
tabeli kursy_prowadz
o strukturze:
53
Kod_kursu Kod_prowadzi
54
Typy danych
Pole
rekordu
(atrybut)
Typy danych zachowuj si czciowo jak definicje dla dziedzin. Okrelaj one
pewne waciwoci dotyczce dopuszczalnych wartoci danych w kolumnie.
Kada warto danych w kolumnie musi by takiego samego typu. Standardy
baz danych (ISO, 1992) definiuje okoo pitnastu typw danych, podzielonych
na nastpujce grupy:
Typy napisowe (String) :
Rekord
(krotka)
klucz
55
tekst
tekst
memo
memo
data/godzina
data/godzina
liczba
liczba
walutowy
walutowy
autonumer
autonumer
logiczny
logiczny
hipercze
hipercze
56
57
58
FoxPro
Pro
Fox
Oracle
Oracle
Paradox
Paradox
Ingres
Ingres
DB2
DB2
Postgress
Postgress
GuptaSQL
SQL
Gupta
Access
Access
dBase
dBase
Informix
Informix
MySQLserver
server(Windows)
(Windows)
MySQL
MySQL(Linux)
(Linux)
MySQL
59
60
10
wybierajce
- pobieranie danych wg ustalonych kryteriw
- wywietlanie danych
funkcjonalne
- kopiowanie danych
- zmiana danych
- usuwanie danych
krzyowe
- wywietla podsumowania, rednie itp.
wg okrelonego schematu
61
62
63
zlecenia
NR
Pracownik
Adam
Kowalski
Ewa
Nowak
Barbara
Cicho
Roman
Karwowski
ID
Imi
Nazwisko
64
Typy Kontaktu
Kontakty
Rozmowy
IDTypuKontaktu
TypKontaktu
IDKontaktu
Imi
Nazwisko
Tytu
Miasto
Adres
Wojewdztwo
KodPocztowy
Kraj
Firma
NrTelefonu
TypKontaktu
IDRozmowy
IDKontaktu
DataRozmowy
CzasRozmowy
Temat
Notatki
66
11
NAZWA
STATUS
MIASTO
DNR
CNR
ILO
D1
Abacki
20
Wielu
D1
C1
100
D1
C2
123
D1
C3
345
D1
C4
44
D1
C5
67
D2
C1
34
D2
C3
45
D2
Bober
30
Lublin
D3
Czerny
10
Kalisz
D4
Dbek
20
Kalisz
D5
Erbel
30
Radom
CNR
NAZWA_CZ
KOLOR
WAGA
MIASTO
D3
C3
56
C1
Nakrtka
Szary
12
Kalisz
D3
C5
566
C2
Tuleja
Czarny
55
Lublin
D4
C2
765
C3
Nit
Biel
25
Radom
D5
C5
50
C4
Wkrt
Zielony
30
Kalisz
C5
Nit
Czer
20
Wielu
NAZWISKO
ADRES
SYGNATURA
DATA_WY
AUTOR
TYTU
123
NOWAK
KRUCZA
123456
10.10.2005
PRUS
FARAON
123
NOWAK
KRUCZA
236558
11.10.2005
LEM
SOLARIS
234
KOS
JANINA
345678
11.10.2005
PRUS
LALKA
67
68
MINIWIAT
Diagramy ERD
70
72
12
73
Encje
74
Przykady poj:
Zbiorami encji s: studenci, wykadowcy,
przedmioty_kursy, oceny_za_kurs, filmy,
studia, wypoyczenia, czytelnicy, ksiki, itp.,
Encja student opisana jest atrybutami:
nr_index, nazwisko, imie1, imiona, rok,
status, adres_s, adres_k, szkola, itp..
Midzy zbiorem encji wykadowcy a
zbiorem encji przedmioty_kursy
zachodzi zwizek prowadzi_kurs
lub zwizek prowadzony_przez
75
76
nazwisko
Nr rachunku
adres
klient
saldo
1..n
posiada
konto
77
78
13
Sesja (sekcja)
artyku
autor
zawiera
ma
ma
recenzja
Zakwalifikowanie
artykuu
79
80
82
PK klucz gwny
FKx klucz obcy
83
84
14
pesel Nazwisko
imie
adres
Data_ur
85
86
89
88
90
15
Decyzje projektowe
91
Zwizki (relationships)
92
93
Zwizki
94
TABELA
dokadnie jeden
TABELA
TABELA
Tabela A
TABELA
Tabela B
16
97
98
99
100
101
102
17
103
104
105
107
106
108
18
Zwizki wieloczonowe
109
110
111
112
113
114
19
115
116
117
Przeksztacenie zwizkw
wieloczonowych w zwizki binarne
119
118
120
20
Reguy transformacji
Reguy transformacji cd
122
Reguy transformacji cd
123
Reguy transformacji cd
124
Reguy transformacji cd
125
126
21
Cel normalizacji
MINIWIAT
Diagramy ERD
127
128
Pesel (Nazwisko,imie,adres,data_ur
nr-index ( Nazwisko, imie, data_ur
129
1 NF (I NF)
pierwsza posta normalna
(ang. normal form)
130
Przykad 1NF
132
22
134
Przykad(1)
Przykad(2)
135
Przykad(2 cd..)
TABELE PO NORMALIZACJI
2NF
Nazwa pola
Typ pola
#NR_ZAMWIENIA
N3
ID_DOSTAWCY
N3
NAZWA_DOSTAWCY
C20
ADRES_DOSTAWCY
C30
#ID_CZCI
N2
NAZWA_CZCI
C20
ILO
N5.2
MAGAZYN
N1
ADRES_MAGAZYNU
C30
136
Przykad (3)..
#NR_ZAMWIENIA
ID_DOSTAWCY
DOSTAWCY-NA-ZAMWIENIU
NAZWA_DOSTAWCY
ADRES_DOSTAWCY
DOSTAWCY-CZCI
CZCI W MAGAZYNIE
# ID_CZCI
NAZWA_CZCI
# NR_ZAMWIENIA
# ID_CZCI
ILO
MAGAZYN
ADRES_MAGAZYNU
137
138
23
139
140
141
142
Atrybut
Atrybut B
Atrybut B
Atrybut C
Atrybut C
Nie zachodzi
143
144
24
TABELE PO NORMALIZACJI
2NF
Przykad(2 cd..)
#NR_ZAMWIENIA
ID_DOSTAWCY
NAZWA_DOSTAWCY
Atrybut B
ADRES_DOSTAWCY
Atrybut
Atrybut
Atrybut B
Atrybut B
Atrybut C
Atrybut C
# NR_ZAMWIENIA
# ID_CZCI
# ID_CZCI
NAZWA_CZCI
ILO
MAGAZYN
ADRES_MAGAZYNU
145
Przykad(2 cd..)
#NR_ZAMWIENIA
ID_DOSTAWCY
146
DOSTAWCY-NA-ZAMWIENIU
ID_DOSTAWCY
NAZWA_DOSTAWCY
DOSTAWCY
ADRES_DOSTAWCY
# NR_ZAMWIENIA
# ID_CZCI
# ID_CZCI
NAZWA_CZCI
CZCI
ILO
DOSTAWCY-CZCI
# MAGAZYN
ADRES_MAGAZYNU
# ID_CZCI
MAGAZYN
CZCI_W_MAGAZYNIE
MAGAZYN
147
148
Wielowartociowa zaleno
funkcjonalna - definicja
Wielowartociowa zaleno
funkcjonalna - przykad
Kod
pracownika
Znany jzyk
programowania
Kowalski
Fortran
Angielski
Kowalski
Fortran
Francuski
Kowalski
Basic
Angielski
X={Kod pracownika}
Kowalski
Basic
Francuski
kowalski
Pascal
Angielski
Kowalski
Pascal
Francuski
Kos
Logo
Angielski
Kos
Logo
Hiszpaski
Kos
Logo
Woski
Kos
Pascal
Angielski
Kos
Pascal
Hiszpaski
Kos
Pascal
Woski
Nowak
Pascal
Angielski
Nowak
Pl/sql
Angielski
Nowak
C++
Angielski
150
25
Kod pracownika
Kod pracownika
Znany jzyk
programowania
Znany jzyk obcy
Kod pracownika
Znany jzyk obcy
151
Poczeniowa zaleno
funkcjonalna - przykad
152
CENTRALE
PRODUCENCI
CENTRALE
WYROBY
OBRABIARKI
CENTROZAP
ELEKTRIM
PRODLEW
FREZARKI
TOKARKI
ODLEWY
WIELOPOFAMA
WYROBY
PRODUCENCI
WYROBY
POMET
CEGIELSKI
CENTRALE
ODLEWNIA REM
PRODUCENCI
WAY
CENTRALE
WYROBY
PRODUCENCI
153
154
PODSUMOWANIE NORMALIZACJI
PIERWSZA POSTA NORMALNA = usunicie danych
nieelelmentarnych
DRUGA POSTA NORMALNA = usunicie niepenej
zalenoci funkcjonalnej
TRZECIA POSTA NORMALNA = usunicie przechodniej
zalenoci funkcjonalnej
CZWARTA POSTA NORMALNA = usunicie
wielowartociwej zalenoci funkcjonalnej
PIATA POSTA NORMALNA = usunicie poczeniowej
zalenoci funcjonalnej
155
26
MINIWIAT
Diagramy ERD
Encje
Przykady poj:
Zbiorami encji s: studenci, wykadowcy,
przedmioty_kursy, oceny_za_kurs, filmy,
studia, wypoyczenia, czytelnicy, ksiki, itp.,
Encja student opisana jest atrybutami:
nr_index, nazwisko, imie1, imiona, rok,
status, adres_s, adres_k, szkola, itp..
Midzy zbiorem encji wykadowcy a
zbiorem encji przedmioty_kursy
zachodzi zwizek prowadzi_kurs
lub zwizek prowadzony_przez
nazwisko
Nr rachunku
adres
klient
saldo
1..n
konto
posiada
Sesja (sekcja)
artyku
autor
zawiera
ma
ma
recenzja
Zakwalifikowanie
artykuu
10
11
12
PK klucz gwny
FKx klucz obcy
14
15
16
pesel Nazwisko
imie
adres
Data_ur
17
19
20
Decyzje projektowe
21
22
Zwizki (relationships)
23
24
Zwizki
zero lub jeden
TABELA
dokadnie jeden
TABELA
TABELA
TABELA
Tabela A
26
Tabela B
28
29
30
31
32
33
35
34
36
37
38
Zwizki wieloczonowe
39
40
41
42
43
44
45
46
47
48
Przeksztacenie zwizkw
wieloczonowych w zwizki binarne
49
50
51
Reguy transformacji
52
Reguy transformacji cd
53
54
Reguy transformacji cd
Reguy transformacji cd
55
56
Reguy transformacji cd
Normalizacja
MINIWIAT
Diagramy ERD
Strojenie systemu
58
Cel normalizacji
Pesel !Nazwisko,imie,adres,data_ur
nr-index ! Nazwisko, imie, data_ur
59
60
10
1 NF (I NF)
pierwsza posta normalna
(ang. normal form)
Relacja R jest w pierwszej
postaci normalnej jeli zawiera tylko pola
elementarne (inaczej atomowe) zalene
funkcjonalnie od klucza relacji R. Pole P jest
Definicja:
61
Przykad 1NF
64
Przykad(1)
65
66
11
Przykad(2)
Przykad(2 cd..)
Nazwa pola
Typ pola
#NR_ZAMWIENIA
#NR_ZAMWIENIA
N3
ID_DOSTAWCY
ID_DOSTAWCY
N3
NAZWA_DOSTAWCY
NAZWA_DOSTAWCY
C20
ADRES_DOSTAWCY
C30
#ID_CZCI
N2
NAZWA_CZCI
C20
ILO
N5.2
MAGAZYN
N1
ADRES_MAGAZYNU
C30
TABELE PO NORMALIZACJI
2NF
DOSTAWCY-NA-ZAMWIENIU
ADRES_DOSTAWCY
DOSTAWCY-CZCI
CZCI W MAGAZYNIE
# ID_CZCI
NAZWA_CZCI
# NR_ZAMWIENIA
# ID_CZCI
ILO
MAGAZYN
ADRES_MAGAZYNU
67
Przykad (3)..
68
69
70
71
72
12
73
Atrybut
Atrybut B
74
Atrybut B
Atrybut C
Atrybut
Atrybut C
Atrybut
Nie zachodzi
Atrybut B
Atrybut B
Atrybut B
Atrybut C
Atrybut C
TABELE PO NORMALIZACJI
2NF
Przykad(2 cd..)
76
Przykad(2 cd..)
#NR_ZAMWIENIA
#NR_ZAMWIENIA
ID_DOSTAWCY
ID_DOSTAWCY
NAZWA_DOSTAWCY
DOSTAWCY-NA-ZAMWIENIU
ID_DOSTAWCY
ADRES_DOSTAWCY
NAZWA_DOSTAWCY
DOSTAWCY
ADRES_DOSTAWCY
# NR_ZAMWIENIA
# ID_CZCI
# ID_CZCI
# NR_ZAMWIENIA
NAZWA_CZCI
# ID_CZCI
CZCI
ILO
DOSTAWCY-CZCI
# MAGAZYN
ILO
ADRES_MAGAZYNU
MAGAZYN
MAGAZYN
ADRES_MAGAZYNU
# ID_CZCI
MAGAZYN
CZCI_W_MAGAZYNIE
78
13
Wielowartociowa zaleno
funkcjonalna - definicja
Niech R jest relacj a X i Y to podzbiory
atrybutw tej relacji.
Podzbir Y jest wielowartociowo zaleny od
podzbioru X relacji R, jeli dla R i dowolnej pary
krotek k1 i k2 z relacji R, takich e k1(X)=k2(X)
istnieje taka para krotek s1 i s2, e:
s1(X)=s2(X)=k1(X)=k2(X)
s1(Y)=k1(Y) i s1(R-X-Y)=k1(R-X-Y)
s2(Y)=k2(Y) i s2(R-X-Y)=k2(R-X-Y)
79
Wielowartociowa zaleno
funkcjonalna - przykad
80
Kod
pracownika
Znany jzyk
programowania
Kowalski
Fortran
Angielski
Kowalski
Fortran
Francuski
Kowalski
Basic
Angielski
X={Kod pracownika}
Kowalski
Basic
Francuski
kowalski
Pascal
Angielski
Kowalski
Pascal
Francuski
Kos
Logo
Angielski
Kos
Logo
Hiszpaski
Kos
Logo
Woski
Kos
Pascal
Angielski
Kos
Pascal
Hiszpaski
Kos
Pascal
Woski
Nowak
Pascal
Angielski
Nowak
Pl/sql
Angielski
Nowak
C++
Angielski
Kod pracownika
Kod pracownika
Znany jzyk
programowania
81
82
Poczeniowa zaleno
funkcjonalna - przykad
ZALENO MIDZY CENTRALAMI I WYROBAMI ORAZ
PRODUCENTAMI I WYROBAMI
OBRABIARKI
CENTROZAP
ELEKTRIM
PRODLEW
FREZARKI
TOKARKI
ODLEWY
WIELOPOFAMA
POMET
CEGIELSKI
ODLEWNIA REM
WAY
83
CENTRALE
WYROBY
PRODUCENCI
84
14
PRODUCENCI
WYROBY
CENTRALE
WYROBY
PODSUMOWANIE NORMALIZACJI
PIERWSZA POSTA NORMALNA = usunicie danych
nieelelmentarnych
DRUGA POSTA NORMALNA = usunicie niepenej
zalenoci funkcjonalnej
PRODUCENCI
WYROBY
CENTRALE
PRODUCENCI
85
86
15
SQL
Jzyki zapyta do relacyjnych baz danych
Jzyki oparte na
predykatach
Jzyki oparte na
rachunku krotek
(QUEL)
Jzyki oparte na
rachunku dziedzin
(QBL)
SQL to:
1999
angielskim,
Language),
" niepeny jzyk obsugi baz danych,
" jzyk obsugi baz danych zaimplementowany w systemach
Zalety SQL
Historia SQL
! Koniec lat 70 tych firma ORACLE (Relational Software Inc.)
Historia SQLcd
Historia SQLcd
Historia SQLcd
! W nastpstwie powyszych publikacji pojawio si wiele
Historia SQLcd
! W 1992 r. ANSI i ISO wyday pen specyfikacj rozszerzonej wersji SQL,
znanej jako SQL2. Dla tego standardu okrelono dwa podzbiory: poziom
minimalny i poziom poredni. Poziom minimalny SQL2 jest w zasadzie taki
sam jak SQL1 z udoskonalonymi cechami integralnoci. Uzgodniono ju
kolejne istotne rozszerzenia standardu SQL2 i oczekuje si pojawienia wersji
standardu o nazwie SQL3 pod koniec lat dziewidziesitych.
interpretera SQL,
! Statyczny SQL stay (predefiniowany) kod w SQL moe to by
Przykadowe zapytanie
sparametryzowane
Przykadowe zapytanie
sparametryzowane
Komponenty SQL
Alfabet SQL
Obejmuje:
! Zestaw znakw SQL charakterystyczny dla implementacji
! litery due i mae, cyfry, znaki specjalne , ; ( ) . % _ > < = +
* / - ? : ! spacja,
! Literay (stae), zapisywane w cudzysowiu np.: Warszawa
! Identyfikatory (nazwy), np.: nazwy tabel, kolumn
(atrybutw), widokw, schematw, itp.,
! Nazwy polece i funkcji - kada instrukcja w SQl zaczyna
si sowem kluczowym, moe zawiera modyfikatory i
koczy si rednikiem,
! Znak * oznacza wszystkie kolumny (atrybuty) tabeli,
Typy liczbowe:
!
!
!
!
przecinku dziesitnym,
Integer - Liczba cakowita z zakresu wartoci okrelonych przez
system,
Smallint - Liczba cakowita z mniejszego zakresu wartoci
okrelonych przez system,
Float - Liczba przechowywana w reprezentacji zmiennopozycyjnej,
Real - Jest synonimem Float,
Double Precision.
NULL i UNIQUE
! Kada kolumna w tabeli moe by zdefiniowana jako
NOT NULL. Oznacza to, e uytkownik nie moe
wprowadzi wartoci null do tej kolumny.
! Domyln specyfikacj dla kolumny jest NULL. To
znaczy wartoci null s dozwolone w kolumnie.
! Kada kolumna moe by rwnie zdefiniowana jako
UNIQUE (jednoznaczna). Ta klauzula zabrania
uytkownikowi wprowadzania powtarzajcych si
wartoci do kolumny.
! Kombinacj NOT NULL i UNIQUE moemy uy do
zdefiniowania cech klucza gwnego.
sale
(id_sali short not null,
kod_kursu text(10) not null,
nazwa_kursu text(30),
wymiar_godz byte,
czas_od text(12),
id_kierunku text(4),
Primary key (id_sali),
Foreign key (id_kierunku) references KIERUNKI
(nr_kierunek));
nastpujcego polecenia:
DROP TABLE <nazwa tabeli>
Na przykad
DROP TABLE Moduy
Na przykad:
ALTER TABLE Wykadowcy
ADD COLUMN NrPokoju Smallint
ALTER TABLE Wykadowcy
ALTER COLUMN NazwiskoPrac Varchar(20)
ALTER TABLE Wykadowcy
DROP COLUMN NazwiskoPrac
dodanie
kolumny
zmiana
wymiaru
NATURAL JOIN, LEFT OTHER JOIN, RIGHT OTHER JOIN FULL OTHER JOIN
oraz realizowane przez SELECT),
! Dzielenie tabel (DIVISION).
usuniecie
wymiaru
np.:
projekcja
11
Dos
32
Bios
44
Kos
34
Znak
Suma tabel
a
11
11
Dos
32
Bios
32
Bios
43
Znak
11
11
Dos
32
Bios
32
Bios
43
Znak
Iloczyn tabel
Dos
w
32
Bios
44
Kos
34
Znak
Selekcja
Rnica tabel
Dos
32
Bios
Like w Access
Znak
Opis
Cyfra (Od 0 do 9, pozycja wymagana, znaki plus [+] i minus [] nie s dozwolone).
Cyfra lub spacja (pozycja nie jest wymagana, znaki plus i minus nie s dozwolone).
Cyfra lub spacja (pozycja nie jest wymagana, w trybie edycji spacje wywietlane s jako puste miejsca, lecz podczas
zapisywania danych spacje s usuwane; znaki plus i minus s dozwolone).
&
. , : ; - /
Dziesitny symbol zastpczy oraz separator tysicy, dat i godzin. (Znak, ktry zostanie uyty w charakterze separatora zaley
od ustawie w oknie dialogowym Waciwoci: Ustawienia regionalne w Panelu sterowania systemu Windows).
<
>
Powoduje, e wszystkie dane s wywietlane od strony prawej do lewej zamiast od lewej do prawej. Znaki wpisane do maski
wprowadzania zawsze bd j wypenia od strony lewej do strony prawej. Wykrzyknik moe pojawi si w dowolnym
miejscu maski wprowadzania
Powoduje, e znak, ktry po nim wystpuje, zostanie wywietlony jako znak literaowy (na przykad, \A bdzie wywietlone po
prostu jako A).
Selekcja - przykady
SELECT
! W celu poczenia
w jeden dwch
acuchw znakw
naley wykorzysta
znak konkatenacji
||
! Kolumny
wyliczone mog
by nazwane przez
zastosowanie
klauzuli AS
FROM
WHERE
AND
AND
SELECT
FROM
w.nr_w,
p.nazwisko,
p.stanowisko,
p.dzial,
m .miasto,
m.ulica
pracownicy p, miejsca m,wypozyczenia w
p.nr_m=m.nr_m
p.nr_p=
w.prac_wyp
m.miasto = WARSZAWA
k.imie || || k.nazwisko AS Klient,
ul. || k.ulica || || k.numer AS
Ulica,
k.kod || || k.miasto AS Miasto
klienci k
Ilosc)
Rzut (projekcja)
53
Rzut (projekcja)
Rzut (projekcja)
SELECT Poziom
FROM Moduy
Wynik selekcji
Poziom
1
1
3
3
2
1
1
Poziom
1
3
2
Wynik selekcji z
poprzedniego
zapytania
234
NazwiskoPrac
DaviasT
Status
NazwaWydziau
Studia informatyczne
Pensja
Tabela
Wykadowcy
NrPrac
NazwiskoPrac
Status
NazwaWydziau
Pensja
234
DaviasT
Studia informatyczne
16000.oo
345
Evans R
PL
Studia informatyczne
26500.00
123
Smith J
Studia biznesu
16500.00
237
Jones S
SL
Studia informatyczne
23500.00
145
Thomas P
SL
Studia biznesu
23500.00
Tabela
Wykadowcy
16000.00
345
Evans R
PL
Studia informatyczne
26500.00
123
Smith J
Studia biznesu
16500.00
237
Jones S
SL
Studia informatyczne
23500.00
145
Thomas P
SL
Studia biznesu
23500.00
wynik
20000.00 2
SELECT NazwaWydziau
FROM Wykadowcy
GROUP BY NazwaWydziau
HAVING count(*) > 2
wynik
Studia informatyczne
Order by
1
1
2
2
NazwiskoPrac
Status
NazwaWydziau
Pensja
234
DaviasT
Studia
informatyczne
16000.oo
237
Jones S
SL
Studia
informatyczne
23500.00
345
Evans R
PL
Studia
informatyczne
26500.00
123
Smith J
Studia biznesu
16500.00
145
Thomas P
SL
Studia biznesu
23500.00
NazwiskoPrac
Status
NazwaWydziau
Pensja
234
DaviasT
Studia
informatyczne
16000.oo
237
Jones S
SL
Studia
informatyczne
23500.00
345
Evans R
PL
Studia
informatyczne
26500.00
123
Smith J
Studia biznesu
16500.00
145
Thomas P
SL
Studia biznesu
23500.00
SQL
wykonuje
na
pocztku
najbardziej
wewntrzne zapytanie, ktrego wynik jest
porwnywany z wynikiem zwracanym przez
najbardziej zewntrzne zapytanie.
Tabela
Wykadowcy
SELECT NazwiskoPrac,
NazwaWydziau, Pensja
FROM Wykadowcy L
WHERE Pensja>
(SELECT AVG(Pensja)
FROM Wykadowcy
WHERE L.NazwaWydziau
= NazwaWydziau)
NazwiskoPrac
Status
NazwaWydziau
Pensja
234
DaviasT
Studia
informatyczne
16000.oo
237
Jones S
SL
Studia
informatyczne
23500.00
345
Evans R
PL
Studia
informatyczne
26500.00
123
Smith J
Studia biznesu
16500.00
145
Thomas P
SL
Studia biznesu
23500.00
Tabela
Wykadowcy
Zczenie -join
Zczenie -join
Zczenie zewntrzne
prawostronne
Zczenie zewntrzne
prawostronne
Przykady zcze
Tabele: Kobiety
Faceci
imie
Anna
Maria
Wiek
23
34
Imie
Wiek
Jan
33
Henryk
55
Sabina
Teresa
Wanda
43
55
33
Jzef
21
Marian
18
Tomasz
44
Edyta
Zofia
Mirosawa
56
23
33
Zbigniew
76
WiekPana
Pani
WiekPani
Jan
33
Wanda
33
Jan
33
Mirosawa
33
Henryk
55
Teresa
55
WiekPana
Pani
WiekPani
Marian
18
Anna
23
Marian
18
Zofia
23
Marian
18
Mirosawa
33
Marian
18
Maria
34
..
..
..
..
Henryk
55
Teresa
55
Henryk
55
Edyta
56
Pan
WiekPana
Pani
WiekPani
Pani
WiekPani
Pan
WiekPana
Null
Null
Anna
23
Anna
23
Null
Null
Null
Null
Maria
34
Maria
34
Null
Null
Null
Null
Sabina
43
Sabina
43
Null
Null
Henryk
55
Teresa
55
Teresa
55
Henryk
55
Jan
33
Wanda
33
Wanda
33
Jan
33
Edyta
56
Null
Null
Zofia
23
Null
Null
Mirosawa
33
Jan
33
Null
Null
Null
Null
Jan
33
Edyta
Zofia
Mirosawa
56
23
33
Pani
WiekPani
Pan
WiekPana
Wanda
33
Jan
33
Teresa
55
Henryk
55
Null
Null
Jzef
21
Null
Null
Marian
18
Null
Null
Tomasz
44
Null
Null
Zbigniew
76
Mirosawa
33
Jan
33
Wiek
Anna
23
Maria
34
Sabina
43
Edyta
56
Zofia
23
Znajd wiersze
tabeli Kobiety nie
majce
odpowiednikw w
tabeli Faceci
NazwiskoPrac
Status
NazwaWydziau
Pensja
234
DaviasT
Studia
informatyczne
16000.oo
237
Jones S
SL
Studia
informatyczne
23500.00
345
Evans R
PL
Studia
informatyczne
26500.00
123
Smith J
Studia biznesu
16500.00
145
Thomas
P
SL
Studia biznesu
23500.00
Tabela
Wykadowcy
np.:
Np.:
lub
Np.:
Np.:
NrPrac
NazwiskoPrac
Status
NazwaWydziau
Pensja
234
DaviasT
Studia
informatyczne
16000.oo
237
Jones S
SL
Studia
informatyczne
23500.00
345
Evans R
PL
Studia
informatyczne
26500.00
123
Smith J
Studia biznesu
16500.00
145
Thomas
P
SL
Studia biznesu
23500.00
Tabela
Wykadowcy
Operacje z wykorzystaniem
kursora
Korsor (ang.cursor) dostarcza mechanizmu dostpu do pojedynczych wierszy
wg zasady jeden po drugim
Declare @zmNazwa char(20)
Declare @zmCenaSprz money
Declare kurAGD cursor
For select Nazwa, CenaSprz From Towar where GrupaTow = AGD
Przykad
Open kurAGD
uycia
Fetch next from kurAGD into @zmNazwa, @zmCenaSprz
While @@FETCH_STATUS = 0
Begin
select @zmNazwa, @zmCenaSprz
fetch next from kurAGD into @zmNazwa, @zmCenaSprz
End
Close kurAGD
Deallocate kurAGD
Operacje z wykorzystaniem
kursora
Aby przetwarza dane za pomoc kursora naley:
! Zadeklarowa kursor (DECLARECURSOR) i zdefiniowa jego zakres (za
pomoc FOR SELECT),
! Otworzy kursor (OPEN) wykonywana jest operacja SELECT, kursor
wskazuje na miejsce bezporednio przed pierwszym wierszem w
utworzonym selektem zbiorze wierszy (zakres kursora),
! Wykona operacj pobrania danych na kolejnym wierszu FETCH NEXT
FROM, pobierane dane mona zapamita pod podanymi zmiennymi,
! Pobieranie danych moe by realizowane w ptli rna od zera warto
zmiennej globalnej @@FETCH_STATUS moe zakoczy wykonywanie
operacji pobrania danych,
! Zmienne mog by wykorzystywane w dowolnych operacjach,wyraenie
SELECT @zmNazwa, @zmCenaSprz oznacza wypisywanie danych
! Dalej kursor naley zamkn (CLOSE) i dealokowa instrukcj
DEALOCATE.
Perspektywy widoki
(views)
! Widoki s wirtualnymi tablicami bazy danych.
! Nie maj one bezporedniej reprezentacji w bazie danych. W bazie danych
zapamitywana jest definicja perspektywy.
! Definicja widoku jest wykorzystywana w momencie odwoania si do widoku
tak jak do innej tabeli bazy danych.
CREATE VIEW RTV (NrTow, Nazwa, CenaSprz)
Definicja
perspektywy
FROM RTV
Perspektywy widoki
(views)
Przeksztacone jest do zapytania wzgldem tabeli TOWAR:
SELECT RTV.NrTow, RTV.Nazwa, RTV.CenaSprz
FROM (
SELECT T.NrTow, T.Nazwa, T.CenaSprz
FROM Towar T WHERE T.GrupaTow=RTV ) RTV
WHERE RTV.CenaSprz < 2000;
Lub rwnowanie
Odwoanie do
perspektywy
Modyfikacja perspektyw
10
Integralno referencyjna
cd..przykadu
CREATE TABLE Moduy
(NazwaModulu Char(15),
Poziom Smallint,
KodKursu Char(3),
NrPrac Number(5),
PRIMARY KEY (NazwaModutu)
FOREIGN KEY (Nrprac) references
Wykladowcy)
ON DELETE SET NULL
ON UPDATE CASCADE)
Integralno referencyjna
cd..przykadu
CREATE TABLE Wykadowcy
(Nrprac Number(5),
Nazwiskoprac Varchar(15),
Status Varchar(10),
NazwaWydziau(Varchar(20),
Pensja Decimal(7, 2),
PRIMARY KEY (Nrprac))
11
Integralno dziedziny
!Integralno
dziedziny
moemy
czciowo okrela podajc odpowiedni
typ danych dla kolumny.
!Moemy tez uy klauzuli CHECK, aby
wymusi poprawne modyfikacje.
!Moemy na przykad wymusi, aby
warto wstawiana do kolumny poziom
bya w okrelonym zbiorze lub aby
numery pracownikw mieciy si w
podanym zakresie:
Asercje
! Wizy mog by nazywane i okrelane niezalenie od
12
Asercje
!Za kadym razem, gdy instrukcja SQL dokonuje wstawienia, modyfikacji
bd usunicia wiersza tabeli, istnieje moliwo, e wizy mog zosta
naruszone.
!SQL89 wymaga, aby system sprawdza naruszanie wizw pod koniec
wykonywania kadej instrukcji.
! SQL2 umoliwia sprawdzanie wizw pod koniec transakcji. Jeeli
wizy s sprawdzane po kadej instrukcji, to mwimy , ze sprawdzanie
odbywa si w trybie natychmiastowym. Jeeli sprawdzenie nastpuje
pod koniec transakcji, to mwimy, e sprawdzanie odbywa si w trybie
opnionym.
!Dlatego dla kadej definicji wizw moemy doczy specyfikacj tego,
czy wizy s sprawdzane z opnieniem (DEFERRABLE), czy
sprawdzane natychmiast (NOT DEFERRABLE).
!Pocztkowy tryb wizw moe by okrelony jako INITIALLY
DEFERRED lub INITIALLY IMMEDIATE. Tryb sprawdzania wizw moe
by nastpnie w czasie sesji zmieniony za pomoc instrukcji SET
CONSTRAINTS, ktra okrela, czy dla listy nazwanych wizw
wykonywa sprawdzanie opnione czy natychmiastowe.
13
Definiowanie dziedziny
! Dokument
Definiowanie schematw
Definiowanie dziedziny
schematw.
! W definicjach kolumn moemy uywa nazw dziedzin zamiast typw
danych.
! Jest rwnie okrelona instrukcja ALTER DOMAIN, ktrej moemy
uy, aby doda nowe wizy,
! ustawi now warto domyln lub usun wizy, lub warto
domyln z istniejcej definicji dziedziny
DROP SCHEMA
Definiowanie katalogw
Skadnia:
Gdzie opcje:
SYSID uid
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD password
| CREATEDB | NOCREATEDB
| CREATEUSER | NOCREATEUSER
| IN GROUP groupname [, ...]
| VALID UNTIL abstime
Skadnia:
DROP USER nazwa
Przykad:
CREATE USER Jan;
CREATE USER Jan WITH PASSWORD jw8s0F4;
CREATE USER Jan WITH PASSWORD jw8s0F4
VALID UNTIL Jan 1 2004;
CREATE USER Jan WITH PASSWORD jw8s0F4 CREATEDB;
DROP USER Jan;
Skadnia:
ALTER USER username [ [ WITH ] option [ ... ] ]
gdzie option:
[ ENCRYPTED | UNENCRYPTED ] PASSWORD password
| CREATEDB | NOCREATEDB
| CREATEUSER | NOCREATEUSER
| VALID UNTIL abstime
Skadnia:
GRANT { { SELECT | INSERT | UPDATE | DELETE | RULE |
REFERENCES | TRIGGER } [,...] | ALL PRIVILEGES] }
ON [ TABLE ] objectname [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...]
Przykad:
GRANT SELECT ON klienci TO student;
GRANT ALL PRIVILEGES ON klienci TO student;
Przykad:
ALTER USER Kowalski WITH PASSWORD hu8jmn3;
ALTER USER Nowak CREATEUSER CREATEDB;
11
12
Skadnia:
REVOKE { { SELECT | INSERT | UPDATE | DELETE | RULE |
REFERENCES | TRIGGER } [,...] | ALL ] }
ON [ TABLE ] object [, ...]
FROM { username | GROUP groupname | PUBLIC } [, ...]
Przykad:
REVOKE SELECT ON klienci FROM student;
REVOKE ALL PRIVILEGES ON klienci FROM student;
13
dla obiektu:
ON nazwy(a)_tabel(i) / nazwa_perspektyw(y)
dla uytkownika:
TO nazwy(a)_uytkownikw(a);
Usunicie uprawnie
REVOKE ALL / SELECT / UPDATE / INSERT / DELETE
/ INDEX / ALTER ON nazwy(a)_tabel(i) /
nazwa_perspektyw(y) TO nazwy(a)_uytkownikw(a);
Zwraca
ASCII(cnar)
CHAR(int)
Zwraca
RIGHT(char,int)
RTRIM(char)
SOUNDEX(char)
SPACE(int)
DIFFERENCE(charI, charZ)
LEFT(cnar, int)
LEM(char)
LOWER(char)
LTRIM(char)
NCHAR(int)
UNICODE(char)
UPPER(char)
REPLICATE(char, int)
REVERSE(char)
char od koca.
Pseudofunkcje
Funkcja
Zwracana warto
CURRENT_TIMESTAMP
GETDATE()
CURRENT_USER
Nazwa uytkownika
USER_NAME()
SESSION_USER
Nazwa uytkownika
USER_NAME()
SYSTEM_USER
SUSER_NAME()
USER
Nazwa uytkownika
USER_NAME()
Skrt
Rok
Yy
1753-9999
Kwarta
1-4
Miesic
Mm
Funkcje systemowe
Dopuszczalne wartoci
1-12
Funkcja
Zwraca
APP_NAME()
CASE wyraenie
Lista warunkw
CASE(wyraenie AS typ_danych)
COALESCE(wyr1,[wyr2...])
COL_LENGTH(tabela, kolumna)
dzie roku
Dy
1-366
COL_NAME(id_tabeli, id_kolumny)
Dzie
Dd
1-31
COLUMNPROPERTY(id, kolumna,
wasno)
Tydzie
Wk
1-53
CONVERT(typdanycn[(dugo)],
wyraenie, ukad}
dzie tygodnia
Dw
1-7
godzina
Hh
0-23
DATABASEPROPERTY(baza,
wasno)
DATALENGTH(wyraeni)
DB_ID([baza])
DB_NAME( db_id] )
GETAHSINULL([baza] )
getchecksum(kolumna)
minuta
Mi
0-59
sekunda
Ss
0-59
milisekunda
Ms
0-999
Funkcja
Zwraca
Funkcja
Zwraca
HOST_ID()
ISNUMERIC(char)
HOST_NAME()
NEWID()
IDENT_INCR(tabela)
NULLIF(wyr1, wyr2)
IDENT_SEED(tabela)
OBJECT_ID(nazwa obiektu)
INDEX_COL(tabela, id indeksu, id
klucza)
IS_MEMBER(grupa | rola)
PARSERNAME(nazwaobiektu, cz
obiektu)
ISDATE(char)
SUSER_ID(konto)
SUSER_NAME (.ld_konta)
SUSER_SID([konto])
SUSERS_NAME([idkonta])
TRIGGER_NESTLEVEL([id obiektu_tr])
TYPEPROPERTY(typdanych. wasno)
USER_ID([uytkownik])
USER_NAME([id uytkownika])
FILEID(plik)
FILE_NAME(idpliku)
FILEGROUP_ID(grupapliku)
ISNULL(wyraenie, warto)
Nale_do
Krawdzie
ciany
...
EXEC SQL BEGIN DECLARE SECTION;
struct Skala {
float x, y, z; } s;
struct Przesunicie {
float x, y, z; } p;
int o;
// obrt
EXEC SQL END DECLARE SECTION;
...
int transform(int brya, Obrt o, Skala s, Przesunicie p)
{
...
EXEC SQL UPDATE punkty
SET x = :s.x*x + p.x,
y = :s.y*(y*cos(:o.theta)-y*sin(:o.theta)) + :p.y,
z = :s.z*(z*sin(:o.theta) + z*cos(:o.theta)) + :p.z
WHERE punkt_id IN (SELECT w.punkt_id
FROM wierzchoki w, nale_do n, krawdzie k,
ciany , bryy b
WHERE w.punkt_id = n.punkt_id AND
n.krawd_id = k.krawd_id AND
k.ciana_id =.ciana_id AND
.brya_id = b.brya_id AND
brya_id = :brya;
...
}
Typy referencyjne
Wyszukiwanie z kolekcji
ADT - dziedziczenie
Podtablice i nadtablice
Procedury w SQL3
42
Schemat tworzenia
aplikacji w rodowisku
systemu baz danych
43
44
Podsumowanie
45
Podsumowaniecd
transakcje krtkotrwae,
sterowanie wspbienoci,
odtwarzanie,
autoryzacje.
Ponadto, SZBD nastpnej generacji, powinny zosta rozszerzone o cechy
umoliwiajce zastosowanie ich w systemach (wymienionych w punkcie
poprzednim), w ktrych ze wzgldu na swoje ograniczenia nie mog by
wykorzystane relacyjne bazy danych. Jzyk baz danych musi by
zaimplementowany w sposb umoliwiajcy wykorzystanie tych cech, a architektura
baz danych powinna sprawnie je realizowa.
!
rda
obiektowych baz danych
Relacyjne bazy
danych
Obiektowe jzyki
programowania
Post-relacyjne
bazy danych
Obiektowe systemy
skadowania
SQL 3
Obiektowe bazy
danych
ODMG
jzykach programowania,
! sztucznej inteligencji,
1
! bazach danych.
Wysiek ODMG daje przemysowi obiektowych baz danych standard, ktry uatwia
szybki start, zamiast mozolnego ksztatowania standardu przez lata. ODMG
6
umoliwia wielu producentom wykorzystanie jednolitego interfejsu do obiektowych
baz danych, co pozwala klientom na pisanie ich wasnych aplikacji.
Model obiektowy
i2 ENO e127
! Elementarnymi jednostkami modelowania s literay i obiekty.
! Obiekty i literay s wystpieniami typw. Wszystkie wystpienia
danego typu wspdziel zbir dopuszczalnych stanw (taki sam
zbir cech) oraz zachowanie (taki sam zbir operacji).
! Stan obiektu jest reprezentowany przez zbir wartoci jego cech
(properties). Cechy mog by atrybutami obiektu lub referencjami
na inne obiekty.
! Zachowanie obiektu jest opisane przez zbir operacji, ktre mog
by wykonywane na obiekcie. Z operacjami s zwizane listy
parametrw wejciowych i wyjciowych okrelonego typu. Kada
operacja moe zwrci okrelony wynik.
! Baza danych skaduje obiekty umoliwiajc rwnolege operowanie
na nich wielu uytkownikom. Obiekty skadowane w bazie danych s
9
wystpieniami typw tworzcych schemat bazy danych.
DEPT
MGR
ENO
Redundancja,
ilustruje dwie obiektowo
zorientowane powizane
klasy obiektw EMP i
DEPT
DMGR
SAL
EDNO
WORKS_IN
JOB
PREV_JOB
COMPANY
EMP
NAME
DEPT
DMGR
DNO
DNAME
LOC *
EMPLOYS
/MGR
EMP
ENO
NAME
/EDNO
WORKS_IN SAL
JOB
i8 COMPANY IBM
i1 EMP
i7 PREV_JOB
i6 SAL 7500
i9 WHEN 1975-77
EMPLOYS
EMPLOYS
EMPLOYS
LOC
LOC
LOC
DNAME
i5 WORKS_IN i17
i4 JOB designer
WHEN
PREV_JOB
COMPANY
WHEN
11
Wasno
Jzyki obiektowe
Obiekty zoone
Tosamo obiektw
Warto danych
Lokalizacja obiektu
Hermetyczno
Brak
Typy i klasy
Schematy relacji,
Procedury skadowane
Tak
Tak
Hierachia klas
Brak
Brak
Tak
Tak
Tak
Nie
Tak
Trwao
Tak
Nie
Tak
Tak
Nie
Tak
Przetwarzanie transakcyjne
Tak
Nie
Tak
Ad Hoc query
Tak
Nie
Nie/Tak
Ewolucja schematu
Ograniczona
N/A
Tak
20
[IBM],
! UniSQL/X [UniSQL],
! OSMOS [Unisys]
SQL 3
Inne
Language-independent ODL
C++
SmallTalk
Java
SQL 3
ODL (Object Definition Language) jest jzykiem uywanym do definiowania specyfikacji obiektu zgodnie z
modelem obiektu ODMG. ODL jest uywany do wspierania przenonoci schematu danych pomidzy rnymi
systemami.
Gwnymi zasadami, ktre wytyczay rozwj ODL'a s:
ODL powinien zawiera ca semantyk konstrukcji obiektu, ktra ma umoliwia tworzenie obiektu
zgodnie z modelem ODMG.
ODL nie bdzie jzykiem oglnego przeznaczenia, a jedynie jzykiem definiujcym specyfikacj obiektu.
ODL powinien by niezaleny od innych jzykw programowania.
ODL powinien by kompatybilny z jzykiem IDL grupy OMG.
ODL powinien mie moliwo pniejszego rozwoju.
ODL w zamierzeniach nie ma by penym jzykiem programowania. Jest to jzyk do definiowania specyfikacji
obiektu. Za pomoc tego jzyka mona zdefiniowa charakterystyk typw, wcznie z ich danymi oraz
operacjami na tych danych. ODL tworzy jedynie sygnatury operacji, ale nie mwi nic na temat implementacji
tych operacji.
ODL ma w zamierzeniach definiowa typy obiektw, ktre mog by implementowane w rnych jzykach
programowania. Zatem jzyk ten nie prbuje bezporednio nawizywa do skadni adnego z jzykw
programowania oglnego przeznaczenia. Uytkownicy mog uy ODL'a, aby zdefiniowa swj schemat bazy
danych w sposb niezaleny od konkretnej implementacji programu korzystajcego z tej bazy.
Biblioteki do wizania z jzykami takimi jak C++, Smalltalk i Java zostay zaprojektowane tak, aby umoliwi
take deklaratywn skadni, osigaln w tych jzykach. W zwizku z rnicami w modelu obiektw tych
jzykw, nie zawsze jest moliwe osigniecie spjnej semantyki w ODL'u dostpnym z bibliotek. Podejmowane
byy starania, aby minimalizowa t niespjno.
Skadnia ODL'a jest rozszerzeniem IDL'a, ktry jest rozwijany przez OMG jako cz CORBA (Common Object
Request Broker Architecture). IDL by tworzony pod wpywem jzyka C++, co rwnie wywaro wpyw na ODL.
ODL umoliwia take integracj schematw baz danych stworzonych innymi metodami. Przykadowymi
jzykami, ktre atwo mog by przekonwertowane do specyfikacji ODL s: SQL (ANSI X3H2), EXPRESS
(STEP/PDES), Object Information Management (ANSI X3H7), CAD Framework Initiative. Umoliwia to integracj
z istniejcymi ju rozwizaniami.
31
[:attributes ListaAtrybutw]
[:methods ListaMetod])
ListaAtrybutw jest rozwinita do nastpujcej postaci:
(NazwaAtrybutu [:domain SpecDziedziny]
[:inherit-from Nadklasa])
SpecDziedziny okrela typ atrybutu, a Nadklasa nazw klasy od ktrej
atrybut jest dziedziczony (opuszczenie nazwy oznacza, e atrybut jest
dziedziczony od pierwszej klasy wymienionej w ListaNadklas). ListaMetod
zawiera pary (NazwaMetody [Nadklasa]) i mwi od jakiej Nadklasy
dziedziczona jest dana metoda. Jeeli pominito Nadklasa - metoda jest
now metod dla definiowanej klasy.
32
typ(Zameldowanie) = [
Obywatel : Osoba;
Adres : [
Ulica : String;
Nr_domu : String;
Nr_miesz : String;
Miejscowo : String
]
Od_kiedy : Date;
Do_kiedy : Date;
Rodzaj : String
35
39
Rys.Graf zapytania
10
11
select Pracownik
where exists wacicielpojazdu class Samochd warto > 10000
RDBMS
ORDBMS
ODBMS
standard
SQL3/4 (w
opracowaniu)
ODMG-v2.0
wsppraca z
obiektowymi jzykami
programowania
saba, programici
musz dostosowywa
program obiektowy do
potrzeb bazy
ograniczona
gwnie do
nowych typw
danych
bezporednia, szeroko
rozumiana
Uytkowanie
atwa do zrozumienia
struktura, wiele
narzedzi dla
uytkownikw
Programowanie
Zapewnia niezaleno
danych od aplikacji,
trudno odzwierciedli
zoone powizania
podobnie jak w
RDBMS, ale
liczne
rozszerzenia
nieco komplikuj
zapewnia
niezaleno
danych od
aplikacji,
trudno
odzwierciedli
zoone
powizania
12
RDBMS
ORDBMS
ODBMS
Rozszerzalno
Brak
Gwnie ograniczona
do nowych typw
danych
Zoone dane i
powizania midzy nimi
Trudne do
zrealizowania
Trudne do
zrealizowania
"dojrzao" systemw
Bardzo dojrzale,
dobrze
poznana,przetestow
ana metodologia,
liczne
implementacje,
stabilno na rynku
Niedojrzae,
rozszerzenia s nowe,
wci ewaluujce i
stosunkowo sabo
poznane
do dojrzae (dziki
powszechnoci OOA i
OOD)
Moliwo utrzymania
si na rynku
przewidywana dla
duzych
przedsiebiorstw
obecnych na rynku
przewidywana dla
przedsibiorstw
znanych z RDBMS,
doaczaja si nowi
na razie trudno
prognozowac mimo iz
sukces modelu
obiektowego wydaje si
oczywisty
13
Co to s transakcje?
Co to s transakcje? ..
Co to s transakcje?
Co to s transakcje?
KLIENT 2
1
Czy s wolne miejsca?
Oferuje miejsce
1
1
Oferuje miejsce
Pytanie o kart kredytow lub konto
Wolne miejsce
1
1
Autoryzacja
1
Autoryzacja
Przypisanie miejsca
1
1
Przypisanie miejsca
Obcienie karty
1
1
Obcienie karty
Zmniejszenie liczby wolnych miejsc
1
0
-1
Przykad transakcji
Ze rozwizania:
Pozwalamy tylko jednemu klientowi korzysta
w jednej chwili z aplikacji co powoduje sab
wydajno.
Piszemy aplikacj z technik semaforow.
Semafor ochrania dekrementacje zmiennej
liczba biletw.
Jak to rozwiza???
7
Po co s transakcje? s rodkiem na
rozwizanie problemu wspbienoci
Transakcja, ktra
zacza si w systemie
jest identyfikowana
jako specjalny byt; jest
jej nadawany unikalny
numer (identyfikator).
abort - kasowanie
transakcji i wszelkich
skutkw ktre ona
poczynia
commit - wprowadzenie
skutkw transakcji na
dysk i skasowanie
transakcji
10
11
Zamy, e na bazie danych dziaa wiele procesw jednoczenie. Dla przykadu niech
bd dwa procesy A i B, ktre bd dziaa na bazie danych i wykonuj odczyt
atrybutu X, zwikszenie wartoci oraz zapis.
Czas Proces A
1
2
3
4
5
6
Czyta X
5
5
6
X := X+1 6
Zapisuje X
6
Zapisuje X 6
Czyta X
X :=X+1
5
5
6
6
6
Jeeli te dwa procesy dziaayby niezalenie a X=5 przed rozpoczciem procesu to wynik
powinien w X by 7. Dziaajc rwnolegle i nie synchronizujc swoich akcji jedna
aktualizacja zostaa zgubiona.
Inny przykad: mamy kilku uytkownikw chcc rwnolegle aktualizowa pewien tekst.
Jeeli nie umwi si, ktry z nich aktualnie ma prawo wprowadza poprawki, to
cz poprawek moe zosta zgubiona.
12bazie
Transakcje do baz danych wprowadza si po to by umoliwi wspbiene dziaanie na
Danych. Mona wwczas uzyska spjno dziaania bez potrzeby umawiania si.
Po co s transakcje? - przeciwdziaaj
awariom
Zamy, e mamy system bankowy, w ktrym nastpuj operacje na kontach klientw
w sposb nastpujcy:
1. Klient wczytuje kart magnetyczn i jest rozpoznawany
2. Klient okrela sum wypaty
3. Konto klienta jest sprawdzane
4. Konto jest zmniejszane o sum wypaty
5. Wysyane jest zlecenie do kasy
6. Kasjerka odlicza sum wypaty od stanu kasy
7. Kasjerka wypaca klientowi pienidze
Wasnoci transakcji
Nie myli pojcia transakcji z procedur! Transakcja angauje biece zasoby systemu
takie jak czas i dane. Wywoanie procedury moe by transakcj, ale moe ona te
skada si z wielu wywoa procedur i jedno wywoanie moe generowa wiele
transakcji. Transakcje mog obej si w ogle bez procedur.
Wasnoci transakcji: ACID
I
Transakcje: umoliwiaj uniknicie tego rodzaju nieprzyjemnych sytuacji
zwizanych z dowolnymi awariami sprztu, bdw w oprogramowaniu,
a nawet tego, e kasjerka poczua si niedobrze i musiaa wyj.
13
Izolacja (isolation) - transakcja nie wie nic o innych transakcjach i nie musi
uwzgldnia ich dziaania. Czynnoci wykonane przez dan transakcj s
niewidoczne dla innych transakcji a do jej zakoczenia.
Dwufazowe zatwierdzanie
15
16
18
19
20
Przetwarzanie transakcji
22
Implementacja 2PL
Dziaanie planisty
Planista przyjmujc operacj ma do dyspozycji nastpujce
dziaania:
(dwufazowe blokowanie)
start
Protok 2PL
potwierdzenie
(commit)
koniec
(two-phase locking)
blokowania dwufazowego.
zwalnianie
zamkw (nie
ma zakadania)
czas
23
Awarie s moliwe w obydwu fazach, ale faza commit jest szybka (milisekundy).
24
Implementacja 2PL
Implementacja 2PL
25
Zakleszczenie
Walka z zakleszczeniem
Bardzo powany problem, majcy skutki zarwno dla wydajnoci systemu jak i
spjnoci dziaania (szczeglnie w systemach czasu rzeczywistego, np. w bankach).
Transakcja B
Transakcja A
Transakcja C
26
Transakcja A
Transakcja C
27
Metody optymistyczne
Zasada podobna jak w przypadku stempli czasowych, ale transakcje nie dziaaj na
swoich wasnych kopiach, ale bezporednio na bazie danych.
adna zmiana nie jest nanoszona do bazy danych; transakcja dziaa na swoich
wasnych kopiach, a do potwierdzenia.
Kady obiekt bazy danych przechowuje 2 stemple czasowe: transakcji, ktra ostatnio
braa obiekt do czytania i transakcja, ktra ostatnio braa obiekt do modyfikacji.
Jeeli obiekt by aktualizowany i stempel na obiekcie do aktualizacji jest taki sam jak
stempel transakcji, to OK, a inaczej zerwij i uruchom od nowa.
Jeeli obiekt by tylko czytany i stempel na obiekcie do aktualizacji jest starszy ni
stempel transakcji, to OK; inaczej zerwij i uruchom od nowa.
.... (troch dalszych regu).
granularity
Pytanie: co ma by jednostk na ktr zakada si zamek, albo ktr uwaa si za
atomowy obiekt na ktrym bdzie trzyma si stemple, kopiowa, odtwarza, itd.
Zmienna ziarnisto
A blokuje
do aktualizacji
cay obiekt
Baza danych?
Relacja (tablica, ekstensja klasy)?
Krotka (obiekt)?
Element krotki (warto atrybutu, pod-obiekt)?
variable granularity
Pomys (Gray, 1977) polega na tym, aby obiekty do blokowania organizowa hierarchicznie
i blokowa w nich tyle, ile trzeba. Pomys bardzo dobry dla obiektowych baz danych.
A blokuje
do aktualizacji
kawaek obiektu
B blokuje
do aktualizacji
kawaek obiektu
A blokuje
do czytania
cay obiekt
B blokuje
do czytania
kawaek obiektu
Problem ze zmienn
ziarnistoci polega na
tym, e (chyba) nikt nie
odway si sprawdzi to
32
w powszechnej praktyce.
Back up
(bekap?)
Recovery
(odtwarzanie)
Log
(dziennik)
Rollback
(cofanie)
Rozsdna niezawodno
Checkpoint
(czekpoint?)
Replication
(replikacja)
Odtwarzanie po zerwaniu
Warunek atomowoci transakcji wymaga, aby w przypadku zerwania wszelkie wykonane przez
ni czynnoci zostay odwrcone: baza danych ma wrci do stanu sprzed transakcji.
Dwie strategie:
1. Transakcje dziaaj na wasnych kopiach, ktre podmieniaj z oryginalnymi obiektami w
fazie commit. Wady: zwikszone zapotrzebowanie na pami, wiksza moliwo awarii w
fazie commit (bardzo niebezpieczne).
2. Transakcje dziaaj bezporednio na bazie danych, ale w specjalnym pliku zwanym
dziennikiem (log) zapisuj wszelkie operacje aktualizacyjne ktrych dokonay, wraz z
obiektami przed i ew. po aktualizacji. W razie zerwania - baza danych jest odtwarzana
do poprzedniego stanu poprzez czytanie logu od tyu.
relation LOG( trans_id, obiekt_id, operacja, stary_obiekt, nowy_obiekt)
Write ahead log: w dzienniku zapisywane s zmiany przed ich dokonaniem. W razie
awarii wiadomo, co byo zrobione, czyli moliwe jest poprawne cofnicie.
Czasami (SQL) stosuje si tryb oszczdny, w ktrym zmiany s zaznaczane w dzienniku, ale
nie s naniesione w bazie danych. Prowadzi to do tego, e transakcja nie widzi wasnych
zmian, co jest spor uciliwoci przy programowaniu i prowadzi do bdw.
35
36
Zagniedone transakcje
Czy maj sens?
C.J.Date argumentuje, e nie maj.
Reszta wiata (wraz ze mn) uwaa, e maj.
Dowolne zdanie select, insert, update, delete, create rozpoczyna transakcj, o ile nie
bya ona ju przez t transakcj rozpoczta.
Transakcja trwa a do do wydania komendy COMMIT (potwierdzajcej), ABORT
lub ROLLBACK (zrywajcej, cofajcej). Transakcja moe obj dowoln liczb zda
select, insert, update, delete, create i innych.
Dwie filozofie:
Zagniedona transakcja jest potwierdzana wycznie dla swojej macierzystej
transakcji,
przez co aktualizacje zrobione przez pod-transakcj staj si widoczne dla innych
pod-transakcji. Zamki pod-transakcji s dziedziczone przez jej mamusi. Ostateczne
potwierdzenie pod-transakcji i zwolnienie zamkw nastpuje po potwierdzeniu
transakcji stojcej najwyej w hierarchii.
39
Pomimo wielu artykuw, w ktrych mwi si jak ten problem jest wany, nie
spotkaem ani jednego, ktry by jasno przestawi jakie sensowne i nietrywialne
rozwizanie.
Trywialne rozwizanie jest oczywiste: specjalny tryb czytania obiektu, ktry omija
naoone na niego zamki. Tzw. kuchenne drzwi (backdoor).
40
Podsumowanie
Transakcje s jednym z najprostszych i najbardziej skutecznych rodkw
zapewnienia bezpiecznego wspbienego dostpu do wsplnej bazy danych.
Transakcje mog by uwaane za prosty i w miar uniwersalny rodek
synchronizacji rwnolegych procesw (bez semaforw, monitorw, kanaw i
innych trudnych poj). Synchronizacja polega na uniemoliwieniu jednoczesnej
aktualizacji tych samych zasobw.
Jednoczenie, transakcje maja zdolno przeciwdziaania losowym awariom.
Brak rodkw przetwarzania transakcji w takich systemach jak LotusNotes, MS
Office, czy te systemach przepywu prac (workflows) lub pracy grupowej jest
ogromnym utrapieniem, ktre (nie tylko w mojej opinii) w duym stopniu
dyskwalifikuje te narzdzia.
Transakcje s szczeglnie istotne w systemach rozproszonych baz danych lub w
systemach opartych o Internet lub Intranet.
Transakcje s na licie usug poziomych OMG CORBA, s te skadnikiem
standardw ODMG, SQL3 i Workflow Management Coalition.
41
Wprowadzenie do systemw
rozproszonych
Przezroczysto
Interoperacyjno
! Krytyczny problem dla projektu bottom-up, czyli systemu
integrujcego istniejce (spadkowe) niekompatybilne
(heterogeniczne) dane i usugi.
! Interoperacyjno na poziomie transportu (transport-level
interoperability) jako podstawa wyszych form
interoperacyjnoci. Chodzi o umoliwienie fizycznej
komunikacji pomidzy danymi i usugami, np. na gruncie
TCP/IP, HTTP, wsplnej pamici, itp.
Rozproszone a scentralizowane BD
distributed database
Postulaty rozproszenia BD
Niefederacyjne rozproszone BD
Jednorodne
BD
Rozproszone BD z
globalnym schematem
Federacyjne BD
Sabo skojarzone
(loosely coupled)
cile skojarzone
(tightly coupled)
Pojedyncze
federacje
Wielokrotne
federacje
(wiele
schematw)
Komunikacja w rozproszonych BD
Transakcje w rozproszonych BD
Reguy rozproszenia
Replikacja
Fragmentaryzacja
! Rozwizanie: prefiksowanie nazwy identyfikatorem miejsca trudnoci ze zmian lokalizacji danych (przy zachowaniu
tosamoci).
Pojcia zwizane z
rozproszeniem
Wspdziaanie (interoperability)
Oznacza wspprac zbudowanych niezalenie od siebie
heterogenicznych systemw (heterogeneous systems).
Aspektem wspdziaania jest przyczenie do rozproszonej BD starych
systemw, tzw. spadkowych (legacy)
Przenaszalno (portability)
Wasno jzyka programowania i jego kompilatorw/interpreterw
umoliwiajca przenoszenie programw na rne platformy.
Przezroczysto (1)
Rozproszona BD musi spenia warunki komfortu pracy programistw,
administratorw i uytkownikw, jak rwnie niezawodnoci, bezpieczestwa
danych, zwikszenie odpornoci na bdy programistw. To oznacza
konieczno redukcji zoonoci przy pracy z rozproszon baz danych, co jest
okrelane jako przezroczysto.
Ma ona nastpujce formy:
! Przezroczysto pooenia: Umoliwienie jednorodnych metod
operowania na lokalnych i odlegych danych. Tego warunku nie
spenia np. system, w ktrym lokalna baza danych jest
obsugiwana przez pewien jzyk 4GL, za odlega - przez
specjalny zestaw procedur (API).
! Przezroczysto dostpu: Uwolnienie uytkownikw od
koniecznoci(a niekiedy rwnie uniemoliwienie) korzystania z
informacji o aktualnym pooeniu danych.
Przezroczysto (2)
! Przezroczysto wspbienoci: Umoliwia wielu uytkownikom
jednoczesny dostp do danych bez koniecznoci uzgodnie i
porozumiewania si, przy zapewnieniu penej spjnoci danych i
przetwarzania.
! Przezroczysto skalowania: Umoliwienie dodawania nowych
elementw bazy danych bez wpywu na dziaanie starych aplikacji i
prac uytkownikw.
! Przezroczysto replikacji: Umoliwienie tworzenia i usuwania
kopii danych w innych miejscach geograficznych z bezporednim
skutkiem dla efektywnoci przetwarzania, ale bez skutkw dla
postaci programw uytkowych lub pracy uytkownika kocowego.
! Przezroczysto wydajnoci: Umoliwienie dodawania nowych
elementw systemu komputerowego (np. serwerw, dyskw) bez
wpywu na prac wikszoci uytkownikw rozproszonej bazy
danych.
Przezroczysto (3)
! Przezroczysto fragmentacji (podziau): automatyczne scalanie
obiektw, tabel lub kolekcji, ktrych fragmenty s przechowywane
w rnych miejscach.
! Przezroczysto awarii: Umoliwienie nieprzerwanej pracy
wikszoci uytkownikw rozproszonej bazy danych w sytuacji, gdy
niektre z jej wzw lub linie komunikacyjne ulegy awarii.
! Przezroczysto migracji: Umoliwienie przenoszenia zasobw
danych do innych miejsc bez wpywu na prac uytkownikw.
Wspdziaanie i heterogeniczno
Heterogeniczno (niejednorodno)
interoperability, heterogeneity
Przyczyny heterogenicznoci
! Niezaleno dziaania: wytwrcy systemw nie uzgadniaj midzy sob
ich cech. Standardy, o ile si pojawiaj, s spnione, niekompletne i nie
przestrzegane w 100%.
Przenaszalno
portability
Typy przenaszalnoci:
Na poziomie skadni, koncepcji jzyka i edukacji (np. SQL-92).
Na poziomie kodu rdowego (np. C++ (?), JDBC).
Na poziomie interpretowanego kodu skryptowego lub poredniego (np. Java).
Na poziomie kodu binarnego (? - trudno poda przykad).
Autonomia
autonomy
Ontologia
ontology
Metadane
! Metadane s kluczowe dla wielu rozproszonych aplikacji, poniewa
umoliwiaj rozpoznanie z zewntrz wasnoci lokalnego zasobu
danych
! Oglna definicja: s to dane o danych - co dane zawieraj, jak
maj budow, jakie jest ich znaczenie, jakim podlegaj
ograniczeniom, jak s zorganizowane, przechowywane,
zabezpieczane, udostpniane, itd.
! Metadane s pewnym rozszerzeniem pojcia schematu bazy
danych, albo te pewn implementacj tego schematu w postaci
katalogw.
! Metadane przykrywaj take informacj niezalen od treci
samych danych, np. kiedy pewna dana zostaa utworzona, w jakim
jest formacie, kto jest jej autorem, do kiedy jest wana, itd.
! Opisy danych zawarte w metadanych maj dwie podstawowe
zalety:
Zawieraj wsplne abstrakcje dotyczce reprezentacji danych, takie
jak format; oglnie "wycigaj przed nawias" wszystkie wsplne
Niezaleno danych
data independence
Ontologia i metadane
! Gwnym celem prac na biznesow ontologi jest standardyzacja
nastpujcych elementw:
Gramatyki opisw poszczeglnych bytw,
Nazw i znacze nazw obowizujcych w ramach danego
biznesu (np. co oznaczaj sowa "autor", "klient", "instrument",
"akcja", itd.),
Ogranicze zwizanych z opisywanymi bytami,
Metadanych zwizanych z bytami (autor opisu, data stworzenia
opisu, data ostatniej aktualizacji, itd.),
Dopuszczalnych operacji na bytach.
! W tym zakresie zapis ontologii jest pewn meta-baz danych, w
ktre ustala si zarwno struktur samej bazy danych, jak i pewne
dodatkowe informacje (meta-atrybuty) bdce podstaw
przetwarzania bazy danych.
! Nieco inne podejcie prezentuje standard RDF opracowany przez
W3C, gdzie ontologi reprezentuj wyraenia RDF.
Klasyfikacja metadanych
! Metadane niezalene od treci danych: lokacja danych, data
modyfikacji, typ kamery sucej do sporzdzenia zdjcia, itd.
Mimo, e nie skadaj si bezporednio na tre danych, mog by
wanym kryterium wyszukiwania.
! Metadane zalene od treci danych: rozmiar dokumentu, liczba
kolorw, liczba wierszy, liczba kolumn w tabeli. Metadane zalene
od treci mog by dalej podzielone na:
Bezporednie metadane dotyczce treci, np. indeksy, klasyfikacje,
itd.
Metadane opisujce tre: adnotacje o zawartoci zdjcia, np. opis
zapachu kwiatu przedstawionego na zdjciu.
Metadane niezalene od dziedziny biznesowej, ktrej dotyczy tre,
np. definicje typu dokumentu HTML/SGML
Metadane zalene od dziedziny biznesowej, np. schemat danych lub
opis ontologii biznesowej
Migracje obiektw
Migracja: przemieszczanie si obiektw midzy wzami sieci, przy czym obiekty
musz by skojarzone (statycznie lub dynamicznie zwizane) ze swoimi klasami i
przechowywanymi w ramach tych klas metodami. Problemy:
! Okrelenie jednostki migracji
! ledzenie obiektw
! Utrzymywania porzdku w katalogu systemu bazy danych
! Okresowa kondensacja acuchw obiektw porednich
! Przemieszczanie obiektw zoonych
! Zapewnienie globalnej przestrzeni nazw
! Zapewnienie waciwych mechanizmw zakresu i wizania
! Dostpno metod umoliwiajcych przetwarzanie obiektw
Jak dotd, metody s najczciej skadowymi aplikacji, a nie bazy danych.
Konsekwencj jest to, e po przemieszczeniu obiektu aplikacja dziaajca w jego
nowym miejscu musi mie wbudowane (powielone, skompilowane, zlinkowane)
metody do jego przetwarzania.
Oprogramowanie komponentowe
Komercyjny buzzword, niezrealizowane marzenie informatykw od 30 lat.
Oznacza technologie zmierzajce do budowy standardw oraz wspomagajcego
je oprogramowania, ktre pozwolioby na skadanie duych aplikacji lub
systemw z mniejszych standardowych czci - komponentw, na zasadzie
podobnej do skadania komputera z podzespow.
Inne terminy: mega-programming, programming-in-the-large.
Jako przykady komponentowego podejcia wymienia si: OMG CORBA, OpenDoc firm Apple,
IBM i innych, technologia .NET/COM/DCOM, Java Beans i Enterprise Java Beans.
obejmujca
obejmujcaogromn
ogromnliczb
liczb
wzajemnie
wzajemnieuzalenionych
uzalenionych
aspektw
aspektwi iproblemw.
problemw.
Zesp
Zespprojektantw
projektantw
Dziedzina
Dziedzinaproblemowa,
problemowa,
rodki
rodkii itechnologie
technologie
informatyczne:
informatyczne:
sprzt,
sprzt,oprogramowanie,
oprogramowanie,sie,
sie,
jzyki,
jzyki,narzdzia,
narzdzia,udogodnienia.
udogodnienia.
Oprogramowanie:
decyzje strategiczne,
analiza,
projektowanie,
konstrukcja,
dokumentacja,
wdroenie,
szkolenie,
eksploatacja,
pielgnacja,
modyfikacja.
podlegajcy
podlegajcyograniczeniom
ograniczeniom
pamici,
pamici,percepcji,
percepcji,wyraania
wyraania
informacji
informacjii ikomunikacji.
komunikacji.
Potencjalni
Potencjalniuytkownicy:
uytkownicy:
czynniki
czynnikipsychologiczne,
psychologiczne,
ergonomia,
ergonomia,ograniczenia
ograniczeniapamici
pamici
i ipercepcji,
percepcji,skonno
skonnodo
do bdw
bdw
i inaduy,
naduy,tajno,
tajno,prywatno.
prywatno.
10
Modelowanie pojciowe
Projektant i programista musz dokadnie wyobrazi sobie problem
oraz metod jego rozwizania. Zasadnicze procesy tworzenia
oprogramowania zachodz w ludzkim umyle i nie s zwizane z
jakimkolwiek jzykiem programowania.
Zasada dekompozycji:
rozdzielenie zoonego problemu na podproblemy, ktre mona rozpatrywa i
rozwizywa niezalenie od siebie i niezalenie od caoci.
Zasada abstrakcji:
eliminacja, ukrycie lub pominicie mniej istotnych szczegw rozwaanego
przedmiotu lub mniej istotnej informacji; wyodrbnianie cech wsplnych i
niezmiennych dla pewnego zbioru bytw i wprowadzaniu poj lub symboli
oznaczajcych takie cechy.
wzorcw,
odwzorowanie
Pracownik
Zawd *
0..*
Percepcja
rzeczywistego
wiata
Analityczny
model
rzeczywistoci
Model
struktur danych
i procesw SI
Zatrudnienie
Wypata *
0..*
Ocena *
FZ
Firma
Nazwa
1 Miejsce *
Schemat relacyjny
Firma(NrF, Nazwa)
Zatrudnienie(NrF, NrP)
Lokal(NrF, Miejsce)
PZ
Pracownik(NrP, NrOs)
Osoba(NrOs, Nazwisko)
Wyszkolenie(Zawd, NrP)
SQL:
Imiona(NrOs, Imi)
Adresy(NrOs, Adres)
select a.Adres
from Lokal as k, Zatrudnienie as z, Pracownik as p, Osoba as s, Adresy as a
where k.Miejsce = Radom and k.NrF = z.NrF and z.NrP = p.NrP
and p.NrOs = s.NrOs and s.NrOs =a.NrOs
11
uytkownika
uytkownika
Oprogramowanie
klient/serwer
Oprogramowanie
serwera
Podsystem
komunikacyjny
Oprogramowanie
serwera
Oprogramowanie
klient/serwer
Zapytanie
uytkownika
Oprogramowanie
klient/serwer
Aplikacja
uytkownika
Zapytanie
uytkownika
Projektowanie rozproszonych
baz danych
Od ogu do szczegw:
top-down
bottom-up
Model pojciowy
scentralizowany
Model logiczny
scentralizowany
Modele logiczne
dla
poszczeglnych
miejsc
Kryteria
rozproszenia
Kryteria rozproszenia s
zwizane z faktem fizycznego
rozproszenia rde i
odbiorcw danych oraz
autonomii lokalnych baz
danych. Ustalaj one decyzje,
ktre fragmenty projektu
pojciowego bd
przechowywane w
poszczeglnych miejscach, a
12
Fragmentacja
Pozna
DC
Abacki
Bober
Czerny
Dbek
Erbel
20
10
30
20
30
Sie
Gdask
DOSTAWCA_MIASTO
DNR
D1
D2
D3
D4
D5
Kutno
DC
DOSTAWCA_DANE
MIASTO
D2
D2
D3
Radom
C1
C2
C2
Klasa
Pracownik
Pracownik
Nowak
300
400
200
Sie
30 Radom
Kalisz
Sie
Pracownik
Styka
20 Lublin
20 Lublin
DC
Radom
...
DOSTAWCA
Pracownik
Kowalski
Lublin
DOSTAWCA
C6
C2
C4
100
200
300
300
200
400
200
100
100
300
400
200
200
300
400
10 Pozna
30 Pozna
C1
C2
C3
C4
C5
C6
C1
C2
C2
C2
C4
C5
Lublin
Pozna
Pozna
Lublin
Radom
D1
D1
D1
D1
D1
D1
D2
D2
D3
D4
D4
D4
Kielce
Pracownik
Malasa
Klasa
Pracownik
Pracownik
Malina
...
Klasa
Pracownik
Pracownik
Zagrny.
...
13
Fragmentacja danych
Klasa danych
osobistych
Nowak
dane osobiste
Kowalski
dane osobiste
...
Kalisz
Sie
Nowak
dane o ocenach
Krakw
Nowak
dane o zatrud.
Klasa danych o
ocenach
Kowalski
dane o ocenach
...
Klasa danych o
zatrudnieniu
Kowalski
dane o zatrud.
...
Replikacje
Replikacja
14
Perspektywa
Mediator
Osona
Schemat lokalny 1
Miejsce 1
Aplikacje
Aplikacje
Aplikacje
lokalne
lokalne
lokalne
Schemat lokalny 2
Miejsce 2
Baza
danych 1
Aplikacje
Aplikacje
Aplikacje
lokalne
lokalne
lokalne
Baza
danych 2
.....
15
Rozproszone
SYSTEMY BAZ DANYCH
Architektury rozproszonych
baz danych
Architektura klient-serwer
Klient
Klient
Podstawowe
problemy:
Serwer
Klient
3
Klient
Heterogeniczne rodowisko
w architekturze klient-serwer
Windows 95
Client
Windows NT
Client
UNIX
Client
Architektury serwerw w
dostpie do bazy danych
Windows 95
or NT
Client
TCP/IP network
Windows NT Server
with repository on
SQLserver
UNIX Server
with repository on
Informix
5
! Serwer
plikw,
! Serwer SQL,
! Serwer
obiektw,
! Serwer
stron.
6
Transfer plikw
Architektura z serwerem plikw
klient
Aplikacja po stronie
klienta odwouje si
do danych
umieszczonych w
pliku bazy danych
Zapotrzebowanie na
odczyt/zapis
danych w plikach
Odczytane dane z
plikw bazy danych
serwer
Alokacja pamici
WE/WY
obsuga plikw z baz
danych
! Podczenie si do serwera
odlegego
! Wejcie uytkownika do systemu
plikw
! Nawigacja w strukturze katalogw
! Okrelenie rodzaju transferu
! Pobranie/osadzenie plikw
! Zamknicie poczenia
9
10
klient
aplikacja
Menader
obiektw
Aplikacja klienta
zadaje zapytanie
SQL
Zarzdzanie
kursorem
klient
serwer
Pami
podrczna
stron
Menader Menader
stron pamici dziennika
podrcznej blokowania
Menader
plikw/indeksw
Zapytanie SQL
Maszyna SQL
Menader stron
pamici
podrcznej
krotka
Alokacja pamici
WE/WY
strony
serwer
Pami
podrczna
obiektw
11
Pami
podrczna
stron
12
Aplikacja
Przedmiotem
zarzdzania
s fizyczne
strony dyskowe
Interfejs
zapytaniowy
Optymalizacja
zapyta
Przegldarka
obiektw
Interfejs
programistyczny
serwer
klient
Zarzdzanie obiektami
Zarzdzanie plikami i indeksami
Zarzdzanie kieszeni stron
Pami
podrczna
obiektw
Menader Menader
obiektw dziennika
blokowania
Aplikacja
Menader
plikw/indeksw
strony
Zarzdzanie zamkami
Zarzdzanie skadem
Zarzdzanie kieszeni stron
Pami
podrczna
stron
Menader
stron pamici
odrcznej
Menader
obiektw
obiekty
Alokacja pamici
WE/WY
Pami
podrczna
obiektw
Obiektowa
baza
danych
13
14
Aplikacja
Przedmiotem
zarzdzania
s obiekty
Interfejs
zapytaniowy
Przegldarka
obiektw
Interfejs
programistyczny
Zarzdzanie obiektami
obiekty
Zarzdzanie obiektami
Optymalizacja zapyta
Zarzdzanie zamkami
Zarzdzanie skadem
Zarzdzanie stronami i kieszeniami
Obiektowa
baza
danych
15
16
Zarzdzanie
transakcjami
Zarzdzanie
buforami
Zarzdzanie
transakcjami
...
Zarzdzanie
buforami
Zarzdzanie zasobami
Zarzdzanie zasobami
Klient 1
Klient n
Zarzdzanie
sieci
Interfejs serwera
Zarzdzanie
zasobami
Zarzdzanie
transakcjami
Zarzdzanie
logiem
Serwer
Zarzdzanie
buforami
Zarzdzanie
zamkami
18
Poczenia bezporednie:
k2
k2
k3
k3
k7
k7
k1
k1
k4
k4
k3
k3
s4
s4
s1
s1
k9
k9
Sie komputerowa
s1
s1
s2
s2
s4
s4
k4
k4
k8
k8
s3
s3
k5
k5
k1
k1
k2
k2
k8
k8
k9
k9
s3
s3
k5
k5
k6
k6
k10
k10
k11
k11
s2
s2
k6
k6
19
k7
k7
20
three-tier architecture
multi-tier architecture
!
Interfejs
uytkownika
interfejs uytkownika,
"
"
Architektura trjwarstwowa:
Logika przetwarzania
cienki
klient
Warstwa
Warstwaprezentacyjna
prezentacyjna
(interfejs
(interfejsuytkownika)
uytkownika)
gruby
klient
Warstwa
Warstwaprzetwarzania
przetwarzania
(logika
(logikabiznesu)
biznesu)
Serwer
bazy
danych
Serwer
bazy
danych
Warstwa
Warstwazarzdzania
zarzdzania
baz
bazdanych
danych
21
22
Architektury dwuwarstwowe
Terminy cienki klient (thin client) oraz gruby klient (fat client) odnosz si do
mocy i jakoci przetwarzania po stronie klienta w architekturze klient-serwer.
Model cienkiego klienta: klient posiada niezbyt wielk moc przetwarzania,
ograniczon do prezentacji danych na ekranie. Przykadem jest klient w postaci
przegldarki WWW.
Model grubego klienta: klient posiada znacznie bogatsze moliwoci
przetwarzania, w szczeglnoci moe zajmowa si nie tylko warstw prezentacji,
lecz take warstw przetwarzania aplikacyjnego (logiki biznesu).
Powyszy podzia posiada oczywicie pewn gradacj.
Model cienkiego klienta jest najczstszym rozwizaniem w sytuacji, kiedy system
scentralizowany jest zamieniany na architektur klient-serwer. Wad jest due
obcienie serwera i linii komunikacyjnych.
Model grubego klienta uywa wikszej mocy komputera klienta do przetwarzania
zarwno prezentacji jak i logiki biznesu. Serwer zajmuje si tylko obsug transakcji
bazy danych. Popularnym przykadem grubego klienta jest bankomat. Zarzdzanie w
modelu grubego klienta jest bardziej zoone.
23
cienki
klient
Warstwa
Warstwaprezentacyjna
prezentacyjna
(interfejs
(interfejsuytkownika)
uytkownika)
Warstwa
Warstwaprzetwarzania
przetwarzania
(logika
(logikabiznesu)
biznesu)++
Warstwa
Warstwazarzdzania
zarzdzania
baz
bazdanych
danych
Warstwa
Warstwaprezentacyjna
prezentacyjna
(interfejs
(interfejsuytkownika)
uytkownika)
++Warstwa
Warstwaprzetwarzania
przetwarzania
(logika
(logikabiznesu)
biznesu)
gruby
klient
Warstwa
Warstwaprzetwarzania
przetwarzania
(logika
(logikabiznesu)
biznesu)++
Warstwa
Warstwazarzdzania
zarzdzania
baz
bazdanych
danych
interakcja poprzez
HTTP
Bankomat
Bankomat
klient
klient
Serwer kont klientw banku
Bankomat
Bankomat
klient
klient
Monitor
Baza danych kont
tele-przetwarzania klientw banku
Bankomat
Bankomat
klient
klient
Oprogramowanie poredniczce
organizujce komunikacj z odlegymi
klientami i szeregujce transakcje klientw
celem przetwarzania ich przez baz danych.
Bankomat
Bankomat
Serwer
SerwerWeb:
Web:
zapytania
SQL
generacja
generacja
dynamicznych
dynamicznychstron
stron
HTML
HTMLdla
dlaklienta
klienta
++
zlecenia
zleceniado
dobazy
bazy
danych
danych
wyniki
zapyta
SQL
klient
klient
Serwer
Serwerbazy
bazy
danych:
danych:
wykonywanie
wykonywanie
zapyta
zapytawwSQL
SQL
25
26
Serwer Web
Sie
Internet
Serwer aplikacji
Sie
Internet
HTTP
Baza
danych
Baza
danych
HTTP
Baza
danych
Przegldarka
27
Serwer
28
Baza
danych
Przegldarka
Serwer
Serwer Web
Serwer aplikacji
Architektura klient-broker-serwer
Architektura klient-broker-serwer
Host klienta
Host serwera
zlecenie
Wywoanie
operacji
Porednik (Broker)
wynik,
parametry WY
Klient
Klient
Obiekt
Obiekt
31
...
Aplikacja
napisana w
C++
Aplikacja na
relacyjnej
bazie danych
Aplikacja
na Lotus
Notes
Osona 1
Osona 2
Osona 3
Porednik
Porednik
Porednik
Miejsce 2
O2
O2
O1
O1
Operacje na
obiektach
O3
O3
O4
O4
K1
O5
O5
O6
O6
O8
O8
O7
O7
K3
K2
...
O9
O9
K4
Miejsce 1
32
A1
A2
A3
Miejsce 3
33
34
Narzdzia
wspomagajce XML :
system autorski, itd.
Przegldarka
WWW
Warstwa klienta
XML
XML
Serwer Web
Serwer aplikacji
Interakcja z aplikacjami poprzez
protokoy oparte na XML
Baza danych w XML
(strukturalizowana)
Standardy czenia
rozproszonych zasobw
XML
XML
XML
XML
Translatory formatw
z/do XML, pomosty
Zasoby danych
Obiektowo-relacyjna
baza danych
wspomagajca XML
Obiektowa baza
danych
wspomagajca XML
Dokumenty
Dokumenty
XML
XML
nana
Webie
Webie
Inne
Inne
dokumenty
dokumentynana
Webie:
Webie:HTML
HTML
Word,...
Word,...
Zasoby danych
pod OLE/DB
35
36
"
"
"
"
"
Simple Object Access Protocol (SOAP): bazujcy na XML standard dla zdalnego
woania procedur (RPC). SOAP jest mniej elastyczny i uniwersalny w stosunku do
CORBA, ale pozostaje pytanie, czy a taka elastyczno i uniwersalno jest
potrzebna.
"
"
37
38
39
40
Co to jest ODBC ?
Potrzeby ?
!
!
!
!
!
!
41
Architektura ODBC
Application 1
...
Application 2
!Aplikacja na stancji
klienta realizuje zapytania
do baz danych przez ODBC
Manager.
Application N
The manager of
drivers ODBC
Driver
ODBC
ACCESS
Source of data
ODBC
ACCESS
Driver
ODBC
SYBASE
Source of data
ODBC
SYBASE
...
Driver
ODBC
ORACLE
Source of data
ODBC
ORACLE
...
Client
application
Client MS Windows
ODBC driver
manager
ODBC
driver local
data
text
ODBC
driver
DBMS-2
ODBC
driver
DBMS-1
Server 1
DBMS - 1
File
System
Net Driver
Net Driver
Local Disk
LocalNet
Server 2
DBMS - 2
Fig. 33
Net Driver
Fig. 34
43
46
User Aplication
DAO (RDO)
44
ADO
OLE DB
ODBC
"
DB SQL
Fig 35
47
!
Technologia ADO (Active Data Obiects) to jest rozwizanie technologii
ASP dostpu do baz danych, ktre jest realizowane we WWW
serwerze IIS (Internet Information Server) firmy Microsoft. Technologia
ADO zawiera wszystkie lepsze cechy technologii RDO oraz DAO i
musi zamieni te ostanie technologie. Technologia ADO zawiera
nastpne funkcje:
" Stworzenia niezalenych obiektw baz danych
" Wsparcie zapamitanych procedur baz danych
" Stworzenia kursorw dostpu do danych
" Wsparcie mechanizmw transakcji.
! Gwnymi zaletami technologii ADO s nie komplikowane
wykorzystanie, prdko, mae obcigi RAM oraz dysku.
"
"
"
49
50
Errors
Error
Command
Execute ( )
CreateParametr ()
Parameters
Recordset
BOF
EOF
RecordCount
MoveFirst ( )
MoveLast ( )
MoveNext ()
MovePrevious ()
Move()
AddNew ()
UpDate ()
Delete ()
Open()
Close()
Append ( )
Delete ( )
Item ()
Refresh ()
Parameter
Fields
Fig 36
Field
51
52
55
56
JDBC - sterownik
57
58
10
Struktura JDBC
ResultSet
ResultSet
ResultSet
Statement
PreparedStatement
CallableStatement
Connection
DriverManager
Oracle
Driver
JDBC-ODBC
Driver
...
ODBC Driver
BD
BD
BD
Fig 37
61
62
Statement stmt;
try {
// Uruchomienie ODBC sterownika (bryda Java ODBC)
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch(java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: ");
System.err.println(e.getMessage());
}
try {
// Realizujemy poczenie z baz biblio
con = DriverManager.getConnection(url);
//tworzymy obiekt Statement dla przeniesienia SQL instrukcji
stmt = con.createStatement();
// uruchomienie instrukcji
stmt.executeUpdate(createString);
// usunicie objektw
stmt.close();
con.close();
} catch(SQLException ex) {
System.err.println("SQLException: " + ex.getMessage());
}}}
64
65
11
68
Linux
Windows
69
KLIENT
Poczenie
POSTMASTER
Poczenie
POSTMASTER
KLIENT
KLIENT
Wielu klientw
ODBC
UNIX
BAZA
DANYCH
Dostp
POSTMASTER
! Struktura URL:
70
! Wykorzystanie:
" odnoniki do innych stron WWW (linki)
" odnoniki do innych usug sieciowych
71
72
12
73
74
Serwer
Klient
Strona
HTML
Zapytanie
o stron HTML
4 Odpowied
strona HTML
3
Serwer przetwarza
danie
Serwer
2
Skrypt
ASP
Klient
1 Zapytanie o
stron ASP
3
ASP.DLL
Odpowied
5
strona HTML
76
4
Strona
HTML
77
78
13
Technologia ADO.NET
Kodaplikacji
aplikacji
Kod
ObiektDataAdapter
DataAdapterlub
lubCommand
Command
Obiekt
ObiektConnection
Connection
Obiekt
Dostawca.NET
.NET
Dostawca
dlaOracle
Oracle
dla
Dostawca.NET
.NET
Dostawca
dlaSQL
SQLServer
Server
dla
Oracle
SQL
Server
Dostawca.NET
.NET
Dostawca
dlaOLE
OLEDB
DB
dla
Dostawca.NET
.NET
Dostawca
dlaODBC
ODBC
dla
OLEDB
DB
OLE
ODBC
ODBC
Baza
danych
Baza
danych
79
Architektura ADO.NET
DataAdapter
SelectCommand
InsertCommand
DataRowCollection
Parameters
UpdateCommand
DataColumnCollection
DataReader
DeleteCommand
Command
80
ConstraintCollection
DataRelationCollection
Baza
danych
XML
81
Wnioski
82
Platforma.NET
83
Najwaniejsze zaoenia:
! Zintegrowanie technologii programistycznych w postaci
jednej platformy
! Wsppraca wielu jzykw programowania
! Wsppraca wielu rnych architektur, zarwno
sprztowych
jak i systemowych (na razie ograniczona)
! Prba ustanowienia standardu przemysowego
(najwaniejsze elementy s standardami ECMA)
84
14
Kodrdowy
rdowy
Kod
Komponent niezarzdzany
Kodnatywny
natywny
Kod
Kompilator
Kompilator
Kodporedni
poredniILIL++metadane
metadane
Kod
Wykonanie
CLR
Kompilator kodu
poredniego
Kodnatywny
natywny
Kod
Systemoperacyjny
operacyjny
System
85
86
VB
VB
C++
C++
Python
Python
J#
J#
itd.
itd.
Wsplnaspecyfikacja
specyfikacjajzykw
jzykw(CLS)
(CLS)
Wsplna
Strony
Strony
ASP.NET
ASP.NET
FormularzeWindows
Windows
Formularze
AplikacjeASP.NET
ASP.NET
Aplikacje
ADO.NETi XML
i XML
ADO.NET
Bibliotekapodstawowa
podstawowa(BCL)
(BCL)
Biblioteka
Visual
VisualStudio
Studio.NET
.NET(lub
(lubinne
inneIDE)
IDE)
Jzykporedni
poredni(MSIL)
(MSIL)
Jzyk
Web
Web
services
services
rodowiskouruchomieniowe
uruchomieniowe(CLR)
(CLR)
rodowisko
Systemoperacyjny
operacyjnyWindows
Windows
System
87
88
Podzesp
89
90
15
Typ
Typy wartoci
Wbudowane typy
wartoci
Typy referencyjne
Typy samoopisujce si
Typy interfejsw
Typy wartoci
uytkownika
Typy wskanikowe
Typy klas
Typy tablic
Typy wyliczeniowe
Typy spakowanych
wartoci
Delegaty
Typy uytkownika
91
.NET vs J2EE
92
Technologia ASP.NET
! Wany element architektury .NET
! Kompilowany kod wydajno
! Separacja kodu prezentacji od kodu obsugi strony
(kod zakulisowy); komponenty biznesowe
! Rozbudowane mechanizmy buforowania stron i
danych
! Wielo stosowanych jzykw programowania
! Obsuga elektronicznych urzdze przenonych
(telefony komrkowe, PDA)
! Wysoka produktywno
! Duy poziom bezpieczestwa
! Naturalna wsppraca z bazami danych i XML
93
94
Class MojFormularz
MojFormularz.aspx
Witaj
MojFormularz
Witaj
Imi:
Imi:
Haso:
Haso:
OK
OK
OK
OK
95
96
16
Przegldarka
internetowa
Wykonanie
Serwer
(Koszyk.aspx)
System.Web.UI.Page
System.Web.UI.Page
Koszyk
Dziedziczenie
WebForm1.cs
WebForm1.cs
Kompilacja
(Koszyk.aspx.cs)
Dodaj
Dodaj
Mka
Dodaj
Dodaj
Cukier
Dodaj
Dodaj
Sl
Przycisk Dodaj
wysya danie na
serwer
ObsluzStrone();
PobierzWybProdukt();
DodajDoKoszyka();
StworzNowaStrone();
Odswiez();
Dziedziczenie
Projekt.dll
KlasaWebForm1
WebForm1
Klasa
Serwer wykonuje
danie
WebForm1.aspx
WebForm1.aspx
temporary.dll
temporary.dll
Koszyk
Strona
HTML
Dodaj
Dodaj
Mka
Dodaj
Dodaj
Cukier
Dodaj
Dodaj
Sl
w wyniku ktrego
do przegldarki
wracana jest nowa
strona
97
98
Zarzdzanie stanem
99
100
Kontrolki serwerowe
102
17
Mechanizmy buforowania
! Znaczenie buforowania
! Dwa zasadnicze podjecia:
" Buforowanie wyjcia (ang. output
caching)
" Buforowanie danych aplikacji (ang.
application data caching)
! Buforowanie fragmentw strony
103
AplikacjaASP.NET
ASP.NET
Aplikacja
IIS
IIS
.NETFramework
Framework
.NET
Systemoperacyjny
operacyjny
System
105
106
Optymalizacja ASP.NET
107
18
Warstwaprezentacji
prezentacji
Warstwa
Cienki
klient
Warstwaprezentacji
prezentacji
Warstwa
(interfejsuytkownika)
uytkownika)
(interfejs
Warstwaprezentacji
prezentacji
Warstwa
(interfejsuytkownika)
uytkownika)
(interfejs
++
Warstwa
przetwarzania
Warstwa przetwarzania
(logikabiznesowa)
biznesowa)
(logika
Warstwaprzetwarzania
przetwarzania
Warstwa
(logikabiznesowa)
biznesowa)
(logika
++
Warstwazarzdzania
zarzdzaniadanymi
danymi
Warstwa
Warstwazarzdzania
zarzdzaniadanymi
danymi
Warstwa
Gruby
klient
Warstwaprzetwarzania
przetwarzania
Warstwa
Warstwazarzdzania
zarzdzaniadanymi
danymi
Warstwa
109
110
warstwa
prezentacji
Formularze
Formularze
ASP.NET
ASP.NET
warstwa logiki
biznesowej
Komponentylogiki
logiki
Komponenty
biznesowej
biznesowej
korzystajce
korzystajce
z
ADO.NET
przy
z ADO.NET przy
dostpiedo
dobazy
bazy
dostpie
danych
danych
Podsumowanie
warstwa
danych
111
112
Podsumowanie (1)
Podsumowanie (2)
114
19
cdtransakcje a JDBC
! Standard JDBC ju we wczesnych specyfikacjach umoliwia
realizacj transakcji w jednej bazie danych, pod warunkiem, e
wykorzystywany system zarzdzania baz danych wspiera
przetwarzanie transakcyjne.
! Wsparcie dla transakcji rozproszonych pojawio si w wersji
JDBC 2.0, wraz z wieloma rozszerzeniami funkcjonalnymi i
dotyczcymi zwikszenia efektywnoci przetwarzania.
! Wersja standardu JDBC 3.0 w zakresie przetwarzania
transakcyjnego wprowadza kolejne, tym razem mniej istotne, ale
z pewnoci uyteczne rozszerzenia np. wczeniej niedostpn
instrukcj SAVEPOINT.
! Standard JDBC 2.0 dostarcza baz dla realizacji transakcji
rozproszonych w jzyku Java. W praktyce aplikacje Java
realizujce transakcje rozproszone maj posta aplikacji
komponentowych (EJB) wykonujcych si w rodowisku
117
oferujcym obsug transakcji (np. serwer EJB). Realizacja
transakcji rozproszonych w takim rodowisku wymaga
Przykad realizacji
// rejestracja sterownika Oracle JDBC
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
// otwarcie poczenia z baz poprzez DriverManager
conn =
DriverManager.getConnection("jdbc:oracle:thin:@host1:1521:orcl"
,"scott","tiger");
// utworzenie i wykonanie instrukcji SQL
Statement stmt = conn.createStatement();
stmt.executeUpdate("DELETE FROM emp WHERE empno = 3981");
! Przykad nie zawiera adnych instrukcji sterujcych przebiegiem
transakcji.
! Takie rozwizanie jest dopuszczalne, poniewa domylnie
poczenia zwracane przez DriverManager pracuj w trybie
automatycznego zatwierdzania (ang. auto commit).
! Kada wykonywana instrukcja SQL stanowi osobn transakcj
i
119
jest automatycznie zatwierdzana.
! Rozwizanie to jest dostpne rwnie w bazach danych, ktre nie
Transakcje a JDBC
! Cay ten proces musi by oczywicie
koordynowany. Koordynatorem moe by
zarzdca
transakcji
(ang.
transaction
manager) dziaajcy w ramach jednego z
systemw
zarzdzania
baz
danych,
biorcych udzia w transakcji. Moe by nim
rwnie zewntrzny zarzdca transakcji np.
wbudowany w serwer aplikacji.
! W przypadku aplikacji tworzonych w jzyku
Java, operacje na bazach danych dokonywane
s w standardzie JDBC opracowanym przez
firm Sun, powszechnie zaakceptowanym i
implementowanym.
! Obecnie pewnego rodzaju alternatyw dla 116
JDBC jest standard SQLJ, oferujcy
wygodniejszy i mniej podatny na bdy
cdtransakcje a JDBC
! Tradycyjne
aplikacje
w
jzyku
Java
(wykorzystujce
jedynie
mechanizmy
przewidziane przez wczesne specyfikacje
standardu JDBC, np. JDBC 1.2), wykonuj
operacje na bazie danych poprzez obiekt
Connection, uzyskany w wyniku otwarcia
poczenia z baz danych za porednictwem
zarzdcy
sterownikw
(DriverManager).
Zarzdca sterownikw otwiera poczenie
korzystajc z jednego z zarejestrowanych
wczeniej w aplikacji sterownikw JDBC.
118
Odpowiedni sterownik wybierany jest na
podstawie zawartoci acucha znakw z
cdprzykad realizacji
! Jeli
aplikacja
wymaga
realizacji
transakcji
obejmujcych kilka instrukcji SQL, a wykorzystywany
system zarzdzania baz danych wspiera transakcje,
naley wyczy tryb automatycznego zatwierdzania
odpowiedni metod obiektu Connection i jawnie
koczy transakcj, co ilustruje przykad:
...
Connection conn = DriverManager.
// wyczenie trybu automatycznego zatwierdzania
conn.setAutoCommit(false);
...
120
// polecenia SQL
...
20
cdprzykad realizacji
cdprzykad realizacji
! W
przykadzie
transakcja
koczy
si
zatwierdzeniem (COMMIT). W przypadku
zakoczenia transakcji poprzez jej wycofanie
(operacja ROLLBACK), naleaoby zastpi
wywoanie metody commit() na rzecz obiektu
Connection
przez
wywoanie
metody
rollback().
! Naley zwrci uwag, e przy realizacji
transakcji w standardzie JDBC nie ma
jawnych operacji rozpoczcia transakcji
nowa transakcja rozpoczyna si w chwili
121
otwarcia
poczenia
z
baz
lub
po
zakoczeniu poprzedniej transakcji.
cdprzykad realizacji
Korzyci pynce z korzystania ze rde danych to:
" po pierwsze uniknicie zaszywania parametrw poczenia
z baz danych w kodzie aplikacji. Parametry te s czci
definicji rda danych i typowo znajduj si w plikach
konfiguracyjnych aplikacji do wersji korzystajcej z
DriverManager inna jest jedynie sekwencja operacji
prowadzca do uzyskania obiektu Connection
" po drugie, poczenie uzyskane poprzez rdo danych
moe oferowa dodatkow funkcjonalno. Standard
JDBC przewiduje rda danych wspierajce mechanizm
connection pooling i transakcje rozproszone
(implementacje takich rde danych dostarcza np.
Oracle). Mechanizm connection pooling polega na
buforowaniu pocze (utrzymywana jest pewna pula
otwartych pocze, ktre przydzielane s aplikacjom,
123
zamknicie poczenia z poziomu aplikacji fizycznie go nie
zamyka poczenie wraca do puli). Mechanizm ten jest
cdprzykad realizacji
Poniszy fragment kodu ilustruje sposb uzyskania
poczenia z baz danych w oparciu o rdo danych
zarejestrowane w serwisie nazw.
...
// uzyskanie obiektu reprezentujcego kontekst JNDI
Context ctx = new InitialContext();
// wyszukanie rda danych przez nazw logiczn
OracleDataSource ds
= (OracleDataSource)ctx.lookup("jdbc/FinanceDB");
// uzyskanie obiektu Connection
Connection conn = ds.getConnection();
124
cdprzykad realizacji
! Pierwsz operacj w poprzednim przykadzie jest uzyskanie
przez aplikacj dostpu do kontekstu JNDI.
! Wykorzystany w przykadzie bezargumentowy konstruktor
InitialContext() zwraca obiekt kontekstu dla domylnego
rodowiska kontekstu aplikacji.
! W przypadku aplikacji uruchamianych na serwerze aplikacji,
takich jak serwlety, JSB, EJB, serwer aplikacji tworzy dla
aplikacji odpowiedni domylny kontekst.
! Aplikacje dziaajce po stronie klienta musz skorzysta z
konstruktora InitialContext (Hashtable env), ktremu naley
przekaza tablic z zestawem parametrw umoliwiajcym
poczenie z serwisem nazw.
125
21
Przykad
import java.sql.*;
import javax.sql.*;
import oracle.jdbc.*;
import oracle.jdbc.pool.*;
import oracle.jdbc.xa.OracleXid;
import oracle.jdbc.xa.OracleXAException;
import oracle.jdbc.xa.client.*;
import javax.transaction.xa.*;
class XA_M
{
public static void main (String args []) throws
SQLException
{
try
{
String URL1 = "jdbc:oracle:thin:@serv1:1521:orcl1";
String URL2 = "jdbc:oracle:thin:@serv2:1521:orcl2";
// utworzenie rde danych XA
OracleXADataSource oxds1 = new
OracleXADataSource();
oxds1.setURL(URL1);
oxds1.setUser("scott");
oxds1.setPassword("tiger");
OracleXADataSource oxds2 = new
OracleXADataSource();
oxds2.setURL(URL2);
oxds2.setUser("scott");
oxds2.setPassword("tiger");
// uzyskanie pocze XA ze rde danych
XAConnection pc1 = oxds1.getXAConnection();
XAConnection pc2 = oxds2.getXAConnection();
// uzyskanie pocze JDBC
Connection conn1 = pc1.getConnection();
Connection conn2 = pc2.getConnection();
// uzyskanie instancji XA Resource
XAResource oxar1 = pc1.getXAResource();
Przetwarzanie transakcyjne na
platformie J2EE - Standard JTA
" Realizacja transakcji rozproszonych na platformie
J2EE wymaga wsppracy oprogramowania rnego
rodzaju: zarzdcy transakcji, serwera aplikacji,
zarzdcw zasobw, aplikacji uytkowej oraz
zarzdcy komunikacji. Kady z uczestnikw
transakcji odpowiada za okrelon funkcjonalno,
" Zarzdca transakcji (ang. transaction manager)
dostarcza funkcje i usugi wymagane do wyznaczania
pocztku
i koca transakcji, transakcyjnego
zarzdzania zasobami i synchronizacji,
" Serwer aplikacji (ang. application server) stanowi
rodowisko
uruchomieniowe
dla
aplikacji
z
uwzgldnieniem zarzdzania stanem transakcji 130
(przykadem takiego serwera aplikacji jest serwer
cd..Przetwarzanie transakcji na
platformie J2EE - Standard JTA
" Standard JTA (Java Transaction API) specyfikuje
interfejsy midzy zarzdc transakcji a innymi
uczestnikami tj. aplikacj, serwerem aplikacji i
zarzdcami zasobw (np. serwerami baz danych).
Standard JTA oparty jest w duym stopniu na
specyfikacji JDBC 2.0 i standardzie XA.
" Obejmuje on nastpujce trzy gwne czci:
# Interfejs wysokiego poziomu umoliwiajcy
aplikacji transakcyjnej wytyczanie granic
transakcji (javax.transaction.UserTransaction)
# Interfejs zarzdcy transakcji umoliwiajcy
serwerowi aplikacji obsug wyznaczania
granic transakcji dla aplikacji zarzdzanych
przez dany serwer aplikacji
(javax.transaction.TransactionManager)
# Mapowanie do jzyka Java interfejsu XA
132
22
cd..Przetwarzanie transakcji na
platformie J2EE - Standard JTA
cd..Przetwarzanie transakcji na
platformie J2EE - Standard JTA
133
134
! Transakcje
zarzdzane przez kontener s dostpne
Java
dla komponentw EJB (komponenty EJB s
uruchamiane w rodowisku kontenera EJB w
ramach serwera EJB, kontener oferuje m.in. Wanie
usugi transakcyjne). W tym wypadku transakcj
steruje kontener, na podstawie informacji podanych
w sposb deklaratywny w pliku deployment
descriptor zawierajcym opis instalacji komponentu
(informacja o tym czy komponent EJB wykorzystuje
transakcje zarzdzane przez komponent czy
kontener rwnie zawarta jest w tym pliku).
Dostpnych jest sze rnych trybw obsugi
transakcji przez kontener (Required, RequiresNew,
Supports, NotSupported, Manadatory i Never). 138
! Tryb odpowiedni w typowych sytuacjach to
23
Podsumowanie
! W wykadzie zaprezentowano zagadnienia
dotyczce przetwarzania transakcyjnego w
aplikacjach jzyka Java, ze szczeglnym
naciskiem
na
obsug
transakcji
rozproszonych.
! Omwiona zostaa rola i funkcjonalno
standardw JDBC i JTA w zakresie
przetwarzania transakcyjnego w jzyku
Java.
! Opisane
zostay
niskopoziomowe139
mechanizmy
do
obsugi
transakcji
24
Replikacje
Technologia replikacji oznacza przechowywanie dwch lub wicej
kopii danych (replik) w oddalonych geograficznie miejscach.
Cele:
Zwikszenie dostpnoci danych poprzez:
- zminimalizowanie czasu i kosztw ich transmisji z odlegego
miejsca
- rozoenie obcienia w zakresie dostpu na wiele kopii danych
Zwikszenie odpornoci danych na zniszczenie.
Zwikszenie bezpieczestwa
Jednoczesne aktualizacje
Aktualizacja replikacji
ze sterowaniem
wspbienocia
Modele
replikacji
Transakcja aktualizujca
propagacja
aktualizacji
Replika 1
Propagacja aktualizacji
Transakcja aktualizujca
Replika 2
prop
ag
aktua acja
liza c
ji
Replika 1
Replika 3
Replika 3
Replika 2
planowana
aktualizacja
Replika 1
Transakcja czytajca
plano
w
aktua a na
lizacja
Replika 3
Transakcja czytajca
Replika 2
Wady replikacji
! Konieczna dodatkowa przestrze dyskowa
! Moliwo powstania niespjnoci
pomidzy replik i oryginaem =>
zagroenie dla spjnoci procesw
biznesowych
Przetwarzanie transakcji
Transakcje a JDBC
Przetwarzanie transakcji
zakadanie zamkw
(nie ma zwalniania)
koniec
w
got
zwalnianie
zamkw (nie
ma zakladania)
czas
SZBD serwera
r d
wie
pot
gotw
potwierd
start
SZBD serwera
pot
wie
r d
got
SZBD serwera
10
12
Niezgodnoci schematw i
ontologii
schematic discrepancies
Niezgodnoci schematw
14
Niezgodnoci ontologii w
rozproszonych BD (1)
Niezgodnoci ontologii w
rozproszonych BD (2)
Niezgodnoci ontologii w
rozproszonych BD (3)
15
Jeeli wiele baz danych ma tworzy jedn federacyjn baz danych w ktrej
bdzie obowizywa jeden wsplny API f, wwczas potrzebny jest model
danych w terminach ktrego dadz si wyrazi wszystkie inne modele danych.
Model powinien take uwzgldnia fakt, e w federacji mog pojawi si nowe
bazy danych, ktrych zaoe nie rozpatrywalimy podczas jej tworzenia.
Ktry z modeli danych mgby by takim kanonicznym modelem danych?
Relacyjny? Encja-zwizek? UML? CORBA? ODMG? Jaki inny?
Jeeli nie chcemy debaty religijnej o wyszoci modelu A nad B, to powstaje
pytanie o obiektywne kryteria. Czy istniej?
Debata nad kanonicznym modelem danych traktuje modele danych jako
obiektywne byty o ostro zarysowanych wasnociach i granicach.
Nie jest to suszne. Modele danych s tworami subiektywnymi, o niejasnych
granicach, podlegaj cigej ewolucji, moliwe s rnorodne ich mutacje i
rozszerzenia. Istnieje potencjalnie wiele modeli relacyjnych i wiele modeli
obiektowych.
19
20
Przestrze
robocza
...
Schemat FBD
FSZBD
m
22
Global schema
(in an extended ODL)
Lokalny schemat
eksportowy
External sub-schemata
(through an accessibility matrix)
Zewntrzne podschematy
uytkownikw (macierz dostpu)
Przestrze
robocza
Obiekty A
Obiekty A
Obiekty
Dane A A
Schemat FBD
Sie
komputerowa
API
Osona
Mediator
Obiekty A
Obiekty A
Obiekty
Dane B A
Zewntrzny
podschemat 1
Zewntrzny
podschemat 2
Interfejs IA1
Dostp
Zakaz
Zakaz
Interfejs IA2
Zakaz
Zakaz
Dostp
Dostp
Interfejs IB1
Zewntrzny
podschemat 3
Dostp
Zakaz
Interfejs IC1
Zakaz
Dostp
Zakaz
Ob.wirt. V3
Ob.wirt.
V3 V
Dane wirt.
Perspektywa V1
Zakaz
Dostp
Dostp
Ob.wirt.
VV3
Ob.wirt.
3V
Dane wirt.
Perspektywa V2
Dostp
Zakaz
Zakaz
Obiekty
Dane C A
Schemat eksportowy 1
Osona 1
API 1
Lokalny
SZBD 1
BD 1
Aplikacje lokalne
Schemat eksportowy 2
Osona 2
API 2
Lokalny
SZBD 2
BD 2
Aplikacje lokalne
...
Schemat eksportowy n
Osona n
API n
Lokalny
SZBD n
definiuje
us
a
tal
BD n
Aplikacje lokalne
23
Administrator
lokalnej bazy danych
Uytkownik Uytkownik
1
2
Uytkownik
24
3
Trj-warstwowa architektura
Uytkownik 1
Uytkownik 2
Uytkownik 3
3 federacyjnej BD
Schemat zewntrzny 1
Schemat zewntrzny 2
Schemat zewntrzny 3
Schemat federacyjny
FSZBD
Przestrze
robocza
Sie
Schemat eksportowy 1
Osona 1
API 1
Lokalny
SZBD 1
BD 1
Schemat eksportowy 2
Osona 2
API 2
Lokalny
SZBD 2
Problem zosta rozwizany dla niektrych przypadkw, ale nie dla generalnego.
Wyglda na to, ze w ramach obecnych paradygmatw modelu relacyjnego niewiele
wicej da si zrobi.
...
BD 2
26
Rozproszone BD w standardzie
CORBA
Klient
Klient
Wywoanie
operacji
Obiekty
Obiekty
Obiekty
Pieniek
klienta
zlecenie
Implementacja
interfejsw do
obiektw
(szkielety + kod)
wrapper
Modu oprogramowania umoliwiajcy przystosowanie interfejsu
lokalnej bazy danych do pewnego standardu obowizujcego w
systemie rozproszonym.
Osona
Osony i mediatory
29
Osony w federacyjnych BD
SZBD
do
interfejsu
programistycznego
SZBD
Osona 1
API f
Osona 2
API 1
Lokalny
SZBD 1
API 2
Lokalny
SZBD 2
Federacyjny
API f
Problem pojawia si wtedy, gdy API f dla federacyjnej bazy danych nie jest
oparty o model relacyjny, lecz o model obiektowy a la CORBA lub ODMG.
API f
...
Osona n
API n
Lokalny
SZBD n
31
mediator
Warstwa porednia pomidzy lokaln baz danych a globalnymi aplikacjami.
Jest konieczny wtedy, gdy nie ma odwzorowania 1:1 pomidzy ontologiami.
Np. w jednej bazie podany jest zarobek brutto z ubezpieczeniem, w innej
zarobek brutto bez ubezpieczenia. Jak to sprowadzi do wsplnego
mianownika?
Zadania mediatora:
Mediatory
Perspektywy
Perspektywy
34
W szerokim znaczeniu:
Perspektyw nazywa si odwzorowanie globalnego schematu bazy danych
(okrelajcego zapamitane zasoby danych) na schemat zewntrzny,
przystosowany do potrzeb i przyzwyczaje konkretnego uytkownika.
Architektura
ANSI/SPARC:
Uytkownik 1
Uytkownik 2
Uytkownik 3
Perspektywa 1
Perspektywa 2
Perspektywa 3
Schematy
zewntrzne
W tym sensie
pojcie perspektywy
funkcjonuje w literaturze z
zakresu modeli danych,
analizy i projektowania.
Schemat globalny
Projektant BD
Administrator BD
Poziom fizyczny
bazy danych
Administrator BD
36
W wszym znaczeniu:
Perspektyw okrela si nazwane odwzorowanie danych zapamitanych w
bazie danych na dane wirtualne, t.j. pochodne lub wyliczalne.
Matematycznie, perspektywa jest dowoln funkcj okrelon na danych.
Ten punkt widzenia nie jest jednak dostatecznie precyzyjny, gdy nie uwzgldnia
mechanizmw nazywania (naming), wizania (binding) i zakresu (scoping), ktre s
kluczowe, szczeglnie w przypadku obiektowoci z hierarchi klas, tosamoci
obiektw, hermetyzacj i innymi pojciami.
Bardziej precyzyjny punkt widzenia:
Perspektywa jest procedur funkcyjn, ktra (najczciej, ale niekoniecznie)
zwraca wynik bdcy dan typu masowego (zbir, wielozbir, sekwencj). Taki
wynik powinien by wyposaony w dodatkowe nazwy (np. nazwy atrybutw
wirtualnych obiektw zwracanych przez perspektyw).
Perspektywy znane z SQL mieszcz si w tej definicji. S to uproszczone procedury
funkcyjne, ktrych ciao mona sprowadzi do pojedynczego zdania:
return <zapytanie SQL>
37
Zapamitana tabela:
Pracownicy( Id_pracownika, Imi, Nazwisko, Stanowisko, Kierownik,
Data_zatrudnienia, Zarobki, Premia, Id_dziau )
Definicja perspektywy:
CREATE VIEW Urzdnicy( Id_pracownika, Imi, Nazwisko, Zarobki )
AS
SELECT Id_pracownika, Imi, Nazwisko, Zarobki FROM Pracownicy
WHERE Stanowisko = urzdnik;
Uycie perspektywy:
39
Dane wirtualne
Perspektywa
V1
D1
D2
D3
D4
D5
Perspektywa
V2
Abacki
Bober
Czerny
Dbek
Erbel
20
10
30
20
30
Lublin
Pozna
Pozna
Lublin
Radom
CZ
Dane rzeczywiste
(logiczne)
CNR NAZWAC
Tablica BD
B1
Tablica BD
B2
Perspektywy wolno uy w
zdaniach SQL (prawie) na
takich samych zasadach jak
zapamitanej tabeli. 40
DOSTAWCA
SQL
program aplikacyjny
38
Tablica BD
B3
Tablica BD
B4
C1
C2
C3
C4
C5
C6
Dane zapamitane
(fizyczne)
41
Nakrtka
Wkrt
Podkadka
Nit
Nit
Tulejka
KOLOR
Czarwony
Zielony
Niebieski
Czerwony
Niebieski
Czerwony
WAGA MIASTO
12
17
17
14
12
19
Lublin
Pozna
Rzeszw
Lublin
Pozna
Lublin
D1
D1
D1
D1
D1
D1
D2
D2
D3
D4
D4
D4
C1
C2
C3
C4
C5
C6
C1
C2
C2
C2
C4
C5
300
200
400
200
100
100
300
400
200
200
300
400
42
Rezultat:
Wirtualna tabela o postaci:
DROP VIEW DobryDostawca;
DobryDostawca
DNR nazwisko status suma
D1 Abacki
D2 Bober
D4 Dbek
20 1300
10 700
20 900 43
Perspektywy zmaterializowane
! Perspektywa jest wyliczona na zapas,
jej wynik jest przechowywany w bazie
danych na normalnych zasadach.
Aktualizacja danych stanowicych
podstaw wyliczenia pociga za sob
aktualizacj zmaterializowanej
perspektywy (lub jej skasowanie i
ewentualnie, ponowne wyliczenie).
! Tego rodzaju perspektywy okrela si
take jako zdjcie migawkowe
45
(snapshot).
Aktualizacja perspektyw
Aktualizacja
Dane wirtualne
Zasada przezroczystoci
perspektyw
44
view transparency
Dane wirtualne
Przykad aktualizacji perspektyw
(1)
Dane rzeczywiste
Pracownik
Dzia zatrudnia
Nazwisko
*
Nazwa
Zarobek
/MojeDziay
Nazwa
redniZarobek
Perspektywa
Baza danych
Perspektywy wirtualne
Dane zapamitane
Dzia
Nazwa
Dane wirtualne
zatrudnia Pracownik
*
szef Nazwisko
Zarobek
0..1
/MoiPracownicy
Nazwisko
NazwiskoSzefa
Ograniczenia w aktualizacji
perspektyw
W klauzuli SELECT nie ma sowa DISTINCT
System Oracle:
W klauzuli FROM jest tylko jedna nazwa tabeli lub tylko jedna nazwa tabeli lub aktualizowalnej perspektywy
Na licie SELECT (wynikowej) znajduja si tylko nazwy kolumn
UPDATE MoiLudzie
SET Zarobek = Zarobek + 500
WHERE NazwaDziau = Krasnale ogrodowe
OK.
UPDATE MoiLudzie
SET NazwaDziau = Lalki Barbie
WHERE Nazwisko = Nowak
le!
51
Kryteria aktualizowalnoci
perspektyw
Aktualizacja perspektyw w
relacyjnych BD
UPDATE MaoZarabiajcy
SET Zarobek = Zarobek + 500
WHERE Nazwisko = Marucha
55
Perspektywy ze stanem
56
Przetwarzanie perspektyw w
zapytaniach
Materializacja. Perspektywa jest cakowicie liczona w momencie, kiedy sterowanie
Poniewa wczeniejszy SQL nie dopuszcza klauzuli SELECT wewntrz klauzuli FROM,
kwestia banalnego tekstowego zastpowania przybraa cudaczne formy, owocujc w
super-naukowe algorytmy :-) (Stonebraker et al). W SQL-92 t wad usunito.
W rnych sytuacjach pierwsza lub druga strategia moe by bardziej optymalna, ale
najczciej strategia modyfikacji zapyta jest bardziej skuteczna. Z tego powodu jest
58
ona standardem we wszystkich relacyjnych SZBD.
Definicja
perspektywy:
Uycie
perspektywy:
Po tekstowej
modyfikacji
zapytania:
Usunicie
zbdnych
astrybutw:
Ostateczna
optymalizacja:
Nowy system:
59
Pozostaj
problemy spjnej
aktualizacji oraz
wydajnoci.
60
10
Aktualizacja zmaterializowanych
perspektyw
Podejcia do obiektowych
perspektyw
11
Przetwarzanie zapyta w
rozproszonych BD
Przetwarzanie zapyta
67
Indeksowanie rozproszonych
69
!zasobw
Szczeglnie istotne w przypadku technologii
P2P, ale nie tylko.
! Indeks centralny, adresujcy cae zasoby
rozproszonej sieci. Przykadem wykorzystania
indeksw centralnych jest Napster oraz liczne
motorki wyszukiwawcze takie jak Google lub
AltaVista,
! Indeksy lokalne replikowane, trzymane przez
klientw celem szybkiego zlokalizowania miejsc
z interesujcymi danymi. W tym przypadku dua
cz optymalizacji zapytania moe by
wykonana przez klienta zanim on wyle zlecenia
70
do odlegych serwerw.
Dekompozycja zapytania Z
Scalenie wynikw
W1
Serwer S2
W2
...
Zk
Wynik W zapytania Z
Wk
Serwer Sk
12
(na podstawie schematu S1). Z1jest konstruowane z Z w taki sposb, aby jego wynik W1
uzyskany z S1 wystarczy do realizacji zapytania Z.
3. Z1jest kierowane do serwera S1, gdzie jest wykonywane. Serwer S1 zwraca do klienta
wynik W1 podzapytania Z1.
semijoin
Serwer 1
Serwer 2
DOSTAWCA
DC
D1 Abacki
D2 Bober
D5 Erbel
20 Lublin
10 Pozna
30 Radom
D1
D1
D2
D2
D3
D4
D4
D4
Z Z1
(Z, W1) Z2, F1
Z1
W1
Serwer S1
Z2, F1
W2
Serwer S2
Serwer S3
73
200
100
300
400
200
200
300
400
Z3, F2
W3
C4
C5
C1
C2
C2
C2
C4
C5
20 Lublin
10 Pozna
30 Radom
74
4. Uzyska w ten sposb wynik W2: Jest to tzw. p-zczenie relacji DC,
parametryzowane relacj DOSTAWCA.
W2
Wynik
DNR
D1
D1
D2
D2
13
Definicje cd..
! Czas transakcyjny nie moe by jednak pniejszy ni czas aktualny.
Zapisy czasu transakcyjnego mog suy do analizy tzw. wskich
garde systemw oraz ujawnia rda bdnych decyzji, ktre oparte
byy na zdezaktualizowanych danych.
! Bitemporalne bazy danych s odpowiedzi na problem korekty danych
w taki sposb, by bdna informacja nie zostaa utracona bdne
zapisy s traktowane jako element historii opisu obiektw w bazie
danych.
! Do obsugi baz temporalnych (bitemporalnych) utworzono specjalne
jzyki manipulacji danymi temporalnymi
Definicje cd..
Wrd teoretycznych koncepcji s dwie podstawowe grupy jzykw
manipulowania danymi temporalnymi:
" Jzyki oparte o istniejce jzyki zapyta (np.: HQUEL-Historical
Query Language i TQL Temporal Query Language),
" Nowe konstrukcje utworzone specjalnie dla potrzeb technologii
TPD (np.: Legal 2.0, Time-By-Example oraz jzyki wykorzystujce
nowe operatory logiczne oparte m.in. na rwnoci czasowej =T,
koniunkcji ANDT , negacji NOTT itp.)
Ze wzgldu na zakres zastosowa wyrni mona trzy grupy jzykw
manipulowania danymi temporalnymi:
" Uwzgldniajce czas rzeczywisty (HSQL, TSQL),
" Uwzgldniajce czas rzeczywisty i transakcyjny (TSQL2),
" Pozwalajce formuowa pytania dotyczce dynamiki powiza i
konstrukcji relacji (SQL/SE).
SELECT cena
FROM CENA
WHERE CENA.towar = DOST.towar
AND DOST.towar=yki
AND DOST.dostawca = A
WHEN CENA.INTERVAL OVERLAP
DOST.INTERVAL
Klauzula Time-Slice
Przykad
Wywietli towary, ktrych dostawcy zmienili si wicej ni 3 razy w
okresach trzymiesicznych:
SELECT towar
FROM DOST
MOVING WINDOW 3
months
HAVING COUNT(*)>3
SELECT SECOND
dostawca
FROM DOST
WHERE towar=yki
10
Model Snodgrassa
11
12
Model Ben-Zvi
Tabela ROR przechowuje salda (stany) rachunku oszczdnocioworozliczeniowego (wartoci nieokrelone oznaczono w tabeli ROR
znakiem -):
Rachunek
Ts
Te
Vs
Ve
250
10
R1
450
10
R2
1000
R1
saldo
13
14
Model Jensena
Tabela
ROR
przechowuje
salda
(stany)
rachunku
oszczdnociowo-rozliczeniowego
(wartoci nieokrelone
oznaczono w tabeli ROR znakiem - ):
Rachunek
Tes
Tee
Trs
Tre
Td
250
10
10
R1
450
10
R2
1000
R1
Saldo
15
Model Galia
Tabela ROR przechowuje salda (stany) rachunku oszczdnocioworozliczeniowego (wartoci nieokrelone oznaczono w tabeli ROR
znakiem -):
Rachunek
saldo
16
Vs
Ve
Op
R1
250
R1
250
10
R1
450
R2
1000
!Warto atrybutu,
!Przedzia czasowy okrelajcy rejestracj danych w bazie
danych.
17
18
Model McKenziego
Tabela ROR przechowuje salda (stany) rachunku oszczdnocioworozliczeniowego (wartoci nieokrelone oznaczono w tabeli ROR
znakiem -):
Rachunek
saldo
19
5
11
20
VR
21
22
OPERACJA
STAN
OBIEKT
! Zdarzenia powoduj inicjowanie operacji (dziaa), w tym operacji
przetwarzania danych.
! Operacje powoduj zmian stanu obiektu (obiektw) lub wytworzenie
nowego obiektu.
! Obiekty to fizyczne lub abstrakcyjne byty (wielkoci), trwajce w
czasie, opisywany zestawem waciwoci (atrybutw).
24
25
ZASTOSOWANIE
HURTOWNI DANYCH
Systemy
OLTP
Systemy
OLTP
HD
Programy
OLAP
Systemy
OLTP
10
11
13
14
Uytkownicy hurtowni.
Centralna hurtownia
danych
Dane
rdowe
Dane
rdowe
..
15
16
Federacyjna HD
17
Dane
rdowe
18
Uytkownicy kocowi.
Dane
rdowe
Dane
rdowe
rdowe
..
19
20
Metadane w hurtowni
Uytkownicy kocowi.
Ekstrakcja i
konwersja
danych
Dane
rdowe
..
Dane
rdowe
rdowe
21
22
23
Metody OLAP
Przykad
uytkownik HD chce uzyska odpowiedzi na pytanie Jak
wyglda sprzeda aktualna w stosunku do planowanej?,
Jak si sprzedaje Produkt 2 w USA w porwnaniu do
Azji?, Jak bdzie wygldaa sprzeda Produktu 1 w
Azji, jeli wzronie w tym samym stopniu sprzeda w
Europie? lub Jaka by wpyw % wzrostu sprzeday
Produktu 2 na sprzeda Produktu 1 w Azji? Innymi
sowy chce uzyska odpowied w formie dogodnej do
przeprowadzenia analizy operacjami ukadzie
trjwymiarowym, ktry graficznie prezentuje
trjwymiarowa kostka danych zagregowanych: gdzie na
osi OX odoono sprzeda w okresach, na osi OY
produkty a na OZ regiony sprzeday:
25
26
Wielowymiarowo w przetwarzaniu
analitycznym obejmuje:
Europa
USA
Produkt 1
Produkt 2
Produkt 3
120
115
140
89
220
133
122
130
Okres 1
Okres 2
144
Okres 3
SPRZEDA
27
28
29
30
Koncepcja MicroStrategy
31
32
c.d. ROLAP
VBA
Power
Builder
Visual
Basic
C++
Excel Add-In
HTML
DSS
Executive
Java Script
DSS Objects
DSS
Web
DSS Agent
OLAP Report
Writer
Activ X
DSS Server
DSS architecture
DSS Architecture
Metadata
Sterowniki dostpu do
wielkich baz danych VLDB
Oracle
Sybase
Informix
DB2
Teradata
Red
Brick
Tandem
SQL
Server
33
34
PRODUKT
SPRZEDA
OBSZARY
* ID_obszaru
Nazwa
Cena
Ilo
*ID_produktu
*ID_okresu
*ID_obszaru
OKRESY
*ID_okresu
....
35
36
Narzdzia ROLAP
Mimo to, systemy ROLAP s bardzo popularne. Ich wybr jest naturalny, poniewa
uytkownicy posiadaj ju operacyjn, relacyjn baz danych lub, co jest silniejszym
powodem, posiadaj hurtowni danych zrealizowan w tej technologii. Ogromn
zalet rozwizania opartego na relacyjnej bazie danych jest niemal nieograniczona
pojemno systemu. Dotyczy ona zarwno danych (poddawanych analizom), jak
i metadanych elementw wymiarw analitycznych, czy samych wymiarw.
Niestety, wraz ze wzrostem wielkoci, maleje wydajno takiej bazy danych.
Powstao wiele sposobw na ominicie tej wady, poczwszy od wspominanych ju,
opartych na denormalizacji, struktur gwiazdy i patka niegu (ktre dodatkowo dobrze
odwzorowuj struktury wielowymiarowe), a po uywanie skomplikowanych narzdzi,
ktre jednak wymagaj duego wysiku zwizanego z ich wdroeniem i bardzo czsto
efekty ich uycia nie s satysfakcjonujce. Kolejny problem z wydajnoci pobierania
danych w systemach relacyjnych polega na niedostatkach SQL, ktry nie posiada
moliwoci przeprowadzania wielowymiarowych oblicze w pojedynczym zapytaniu.
Konieczne jest uywanie zoonych, wielokrotnie powtarzanych zapyta. Producenci
narzdzi prbuj w rny sposb omija ten problem. Najprostszym jest stosowanie
tablic agregacji, przechowujcych przeliczone uprzednio podsumowania. Sposb ten
powoduje jednak rozrost bazy i nie sprawdza si przy czsto zmieniajcych si
danych. Podobnie przy czstym uaktualnianiu danych nie sprawdza si
przechowywanie raz pozyskanych informacji w pamici operacyjnej serwera lub stacji
klienckiej, cho bardzo zwiksza wydajno systemu.
37
38
39
40
41
42
43
44
Tabela 1
Relacyjna baza danych
45
Ilo danych
Rozsianie danych
0 - 100 M
(0-10M dla skrajnych wartoci
rozsiania)
10 M
10 G
10M - 10G
10 G - 100G i wicej
0.000001 % - 100 %
Wielowymiarowe bazy
danych w pamici
operacyjnej
rednia (dziesitki
megabajtw)
Bardzo maa
Maksymalna ilo
elementw na wymiarze
Niemal nieograniczone
Setki tysicy
Setki tysicy
Pozyskiwanie danych
wolne
szybie
natychmiastowe
Szybko przeliczania
maa
szybka
natychmiastowa
Funkcjonalno
przeliczania
Ograniczona
(zagniedone zapytania
pozwalaj omin ten
problem, ale zmniejsza
szybko)
Bardzo rozbudowana,
moliwe na wszystkich
wymiarach
rozbudowana, moliwe na
wszystkich wymiarach
Wyszukiwanie danych
Wolne, ograniczone
funkcjonalnie
Szybkie funkcjonalne
Administracja
trudna
atwa
Bardzo atwa
Niemal niemoliwe
Do atwe
Bardzo atwe
atwa w przypadku
wymiarw w rzdach,
trudna dla wymiarw w
kolumnach
atwa, konieczne
zatrzymanie systemu w
celu przebudowania
struktur
Tabela 2.
Dyskowa baza
wielowymiarowa
0.001 % - 100 %
100 %
0.000001% - 0.001%
0.000001% - 100%
47
48
50
51
Przetwarzanie analityczne BD
i hurtownie danych (zagadnienia)
Hurtownia
danych
Cele HD (korzyci):
dostarczanie rzetelnych danych analitycznych
wysoka produktywno rozwiza
wzrost konkurencyjnoci firmy
HD
CJE Dane
GA
globalne
Narzdzia
RE
G
WYJSCIE
HD
A
Meta dane
Uzyskane poprzez:
kompleksowy i zintegrowany obraz firmy
dostp do informacji historycznych
ujednolicone dane dotyczce firmy
wyodrbnienie przetwarzania analitycznego z
przetwarzania transakcyjnego
ABC WEJSCIE
Dane
rdowe
Dane
szczegowe
Dane
podsumowane
ZRZUT
Kopie
danych
Uytkownik
Hurtownia
danych
Typowe obszary zastosowa HD:
sterowany marketing
dugoterminowa ocena wartoci klienta
analiza rentownoci
analiza ryzyka kredytowego
zarzdzanie zapasami
ustalanie ceny
Etapy budowy
(Oracle Warehouse Builder):
Definiowanie
Generowanie
adowanie i administrowanie
Raportowanie
Hurtownia
danych
Hurtownia
danych
MODEL
Hurtownia
danych
Lokalizacja
FAKTY
Dzia
Produkt
Sprzeda
Kana
dystrybucyjny
Klasa
Zapasy
Koszty
...
Czas
Pozycja
Poziom
Hurtownia
danych
Dane
Hurtownia
danych
Informacja
WEJCIE
Hurtownia
danych
Integracja
danych
(konsolidacja,
konwersja,
przenoszenie)
Transformacja
danych
Hurtownia
danych
WYJCIE
Hurtownia
danych
Sprzedawca analizuje
przychody pod ktem:
klienta, produktu,
rynku i czasu
Marketing bada
dostawy pod ktem:
towaru, rynku i czasu
Okresy
Id okresu
Opis okresu
Kwarta
Rok
Produkty
Id produktu
Opis prod.
Klasa
Rozmiar
Sprzeda
Id rynku
Id okresu
Id produktu
Jednostka m.
Wielko
sprzeday
Warto
sprzeda
% obniki
Opis rynku
Obszar
Region
Pole5
Pole6
TW1
Pole1
Pole12
Pole13
Pole14
Pole15
Pole16
...
...
Rynki
Id rynku
START
Hurtownia
danych
Okresy
Id okresu
Opis okresu
Kwarta
Rok
Produkty
Id produktu
Opis prod.
Klasa
Rozmiar
Sprzeda
Id rynku Sprzeda 1
Id okresuId rynkuSprzeda 2
Id produktu
Id okresu
Id rynku
JednostkaIdm.
produktu
Id okresu
WielkoJednostka
Id m.
produktu
sprzeday
Wielko
Jednostka m.
Warto sprzeday
Wielko
sprzeda
Wartosprzeday
% obniki
sprzeda
Warto
% obniki
sprzeda
% obniki
Rynki
Id rynku
Opis rynku
Obszar
Region
Okresy
Id okresu
Opis okresu
Kwarta
Rok
Produkty
Id produktu
Opis prod.
Klasa
Rozmiar
Rynki
Id rynku
Opis rynku
Obszar
Region
Klasa
Id klasy
Opis klasy
Kwartay
Sprzeda
Id rynku
Id okresu
Id produktu
Okresy
Id okresu
Opis okresu
Kwarta Rok
Produkty
Id produktu
Opis prod.
Klasa
Rozmiar
Jednostka m.
Wielko
sprzeday
Warto
sprzeda
% obniki
Rynki
Id rynku
Opis rynku
Id obszaru
Id regionu
Regiony
Obszary
Id obszaru
Id regionu
Opis
obszaru
Opis
regionu
Okresy
Obszary
Sklepy
Oddzia
Lata
Sprzeda
Klasy
Rynki
Produkty
Pozycja mag.
Regiony
Transakcje
Grupa
Marki
Stany
Id usugi
Hotel
Liczba pokoi
Miasto
Region
Typ
Id kontroli
Id usugi
Kod klienta
Id pokoju
Potwierdzenie
Id promocji
Data przybycia
Liczba nocl.
...
Pokoje
Id pokoju
Typ ka
Status P/N
Opis pokoju
Wskanik dod
Typy promocji
Id promocji
Nazwa
Typ
Opis
Harmonogram
promocji
Data pocz.
Id usugi
Id promocji
Data koc.
Klienci
Id klienta
Nazwisko
Adres
Miasto
Typ klienta
Punkty
Rezerwacje
Okresy
Data wyjazdu
Id usugi
Kod klienta
Id pokoju
Potwierdzenie
Id promocji
Data przybycia
Kod przybycia
Liczba nocl.
Id okresu
Nazwisko
Adres
Miasto
Typ klienta
Punkty
Oddziay
Id oddziau
Opis oddziau
Id dziau
Stany
Id okresu
Id produktu
Id sklepu
Jednostki
Warto
Zapasy
Koszty
Id okresu
Tydzie
Miesic
Kwarta
Rok
Sklepy
Id okresu
Id oddziau
Id sklepu
Jednostki
Warto
Zapasy
Koszty
Dziay
Id dziau
Opis dziau
Okresy
Id okresu
Id dziau
Id sklepu
Jednostki
Warto
Zapasy
Koszty
Id sklepu
Opis sklepu
Kierownik
Wielko
Id regionu
Id okresu
Id dziau
Id sklepu
Jednostki
Warto
Zapasy
Koszty
Regiony
Id regionu
Opis regionu
Id obszaru
Opis obszaru