Académique Documents
Professionnel Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Oracle9i. Przewodnik
dla pocztkujcych
Autorzy: Michael Abbey, Ian Abramson, Michael Corey
Tumaczenie: Przemysaw Szeremiota (rozdziay 11 17,
dodatek A), Piotr wierczyski (rozdziay 1 10)
ISBN: 83-7197-996-7
Tytu oryginau: Oracle9i: A Beginner's Guide
Format: B5, stron: 456
Spis treci
Informacje o Autorach ...........................................................................13
Wprowadzenie .......................................................................................15
Cz I
Pierwsze kroki.......................................................................17
Cz II
Spis treci
Spis treci
10
Cz IV I jak Internet.......................................................................293
Rozdzia 13. I w Oracle9i.........................................................................................295
Terminologia .............................................................................................................. 295
Internetowa baza danych Oracle ................................................................................... 297
Komunikacja z baz danych ................................................................................... 298
Java w bazie danych.................................................................................................... 301
Wysoka dostpno..................................................................................................... 302
Zabezpieczenie przed awari systemu ..................................................................... 303
Zabezpieczenie przed awari dysku......................................................................... 304
Zabezpieczenie przed bdami uytkownika............................................................. 304
Zarzdzanie planowanymi przestojami .................................................................... 305
Architektura Real Application Clusters.......................................................................... 306
Internetowy system plikw (iFS) .................................................................................. 307
Pytania do rozdziau 13................................................................................................ 308
Spis treci
Cz V
11
12
Dodatki...............................................................................................427
Dodatek A Odpowiedzi na pytania do rozdziaw ....................................................429
Pytania do rozdziau 1. ................................................................................................ 429
Pytania do rozdziau 2. ................................................................................................ 429
Pytania do rozdziau 3. ................................................................................................ 430
Pytania do rozdziau 4. ................................................................................................ 430
Pytania do rozdziau 5. ................................................................................................ 431
Pytania do rozdziau 6. ................................................................................................ 431
Pytania do rozdziau 7. ................................................................................................ 432
Pytania do rozdziau 8. ................................................................................................ 432
Pytania do rozdziau 9. ................................................................................................ 432
Pytania do rozdziau 10................................................................................................ 433
Pytania do rozdziau 11................................................................................................ 433
Pytania do rozdziau 12................................................................................................ 434
Pytania do rozdziau 13................................................................................................ 434
Pytania do rozdziau 14................................................................................................ 435
Pytania do rozdziau 15................................................................................................ 435
Pytania do rozdziau 16................................................................................................ 436
Pytania do rozdziau 17................................................................................................ 436
Skorowidz............................................................................................439
Rozdzia 4.
tabele;
indeksy;
wyzwalacze;
synonimy;
sekwencje;
role;
Terminologia
Znajomo poniszej terminologii znacznie uatwi zrozumienie treci zawartych w tym
rozdziale.
94
Cz II Czas na konkrety
95
Tabele miejsce
przechowywania danych
Tabela to obiekt bazy danych, w ktrym przechowywane s wszystkie dane. Kady
element danych zaadowany do bazy danych Oracle musi zosta umieszczony w tabeli.
W praktyce wszystkie informacje wymagane przez baz danych Oracle do pracy s przechowywane w szeregu tabel, ktre s popularnie okrelane mianem sownika danych.
Sowniki danych to swego rodzaju tabele tabel. Informuj one baz danych o rodzaju
danych przechowywanych w bazie, ich pooeniu oraz moliwociach wykorzystania
przez baz danych.
Tabela skada si z kolumn. Kada kolumna musi mie unikatow nazw w obrbie tabeli oraz musi mie przypisany typ danych (np. , lub
) wraz z okreleniem dugoci wpisu (ktry moe by wyznaczany typem danych, jak w przypadku
danych typu ). Kada kolumna tabeli moe by rwnie okrelona parametrem
lub
. Parametr
oznacza, e w kolumnie musz zosta umieszczone
dane. Innymi sowy w przypadku wierszy danych, ktre maj zosta umieszczone w tabeli, wszystkie kolumny opisane parametrem
musz zawiera prawidowe
wartoci danych.
Aby wymusi stosowanie okrelonych zasad spjnoci logicznej (zapewniajcych integralno danych) wobec danych w tabeli, system Oracle9i umoliwia tworzenie dla poszczeglnych tabel wizw integralnoci i wyzwalaczy. Wyzwalacze zostan dokadniej
omwione w dalszej czci tego rozdziau.
'()*'+,-.'/'0.1,2+,3'4
Tabela zawiera cztery kolumny. Pierwsza kolumna nosi nazw ,
a znajdujce si w niej dane bd typu
. Na kolumn narzucono wizy integralnoci ( !"#
). W ten sposb baza danych bdzie wymuszaa zasad
spjnoci logicznej okrelajc, e kady identyfikator zwierzcia musi by unikatowy
w tej tabeli. Innymi sowy, adne wpisy w tabeli nie mog korzysta z tego samego identyfikatora. W przypadku prby umieszczenia identyfikatora bdcego duplikatem ju istniejcego identyfikatora zostanie zwrcony komunikat o bdzie.
Nastpna kolumna to $%, ktrej dane s typu o maksymalnej dugoci 20 znakw. Atrybut
oznacza, e kady wpis dodany do tabeli
musi zawiera prawidow warto dla kolumny $%.
96
Cz II Czas na konkrety
Trzecia kolumna to &, ktrej dane rwnie s typu , a ich maksymalna dugo nie moe przekracza 20 znakw. W odrnieniu od kolumny $%
wpisy dodawane do tabeli mog ale nie musz zawiera wartoci dla tej kolumny.
Ostatnia kolumna tabeli to '()*. Dane w tej kolumnie s typu
, a ich dugo wynosi dokadnie jeden znak. Podobnie jak w kolumnie ,
stosowane jest ograniczenie integralnoci. Opcja oznacza, e w tej kolumnie dozwolone s jedynie wartoci * lub . Po wpisaniu wartoci w tej kolumnie baza danych
sprawdza, czy jest to wanie jedna z dwch akceptowanych wartoci.
'()*'+,-.'/'0.1,2+,3'4
?
@@@
@@@@@@@@@@
$@
@$
$@@$
$"@@$
$@ @$
$@@$
$$@ ?@$
$"@@$
@
@$
"@@$
B@@$
G@ ?@$
@@@@@@@@@@@@
!
"
B
C
""
F"
G
$$1A)2-+6+,-.'/,16(2'367:4
Poniej pokazano nowo utworzon tabel +,&-,&.-. Zawiera ona tylko wpisy speniajce warunek #/01'*1.
-)*)7.#82,950+63,163'(,2>
@@@@@@@@@@@@@@@@@@
?'7);
,9);
'E5'
'-A'
?
@@@
@@@@@@@@@@
$@
@$
$"@@$
B@@$
G@ ?@$
@@@@@@@@@@@@
""
F"
G
97
Teraz dla perspektywy zostanie wykonana instrukcja
. Z punktu widzenia uytkownika perspektywa # funkcjonuje identycznie jak tabela, w rzeczywistoci jednak jest to skadowana w bazie danych instrukcja SQL, z ktr do momentu wykonania nie s powizane adne dane.
#H1A55+A'*D2'7>
@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@
H
?
1
@@@@@@@@@@@@@@@@@@@
HA3'3-)
D2+)5'+
'526
'2;).A3E
98
Cz II Czas na konkrety
Perspektywy materializowane
perspektywy, w ktrych s
przechowywane dane
W odrnieniu od zwykej perspektywy, ktra zawiera jedynie instrukcje SQL, perspektywa materializowana zawiera wiersze danych, bdce efektem wykonania zapytania
SQL w jednej lub wicej tabel bazowych. Kada zmiana w tabeli bazowej jest odnotowywana w osobnym dzienniku w bazie danych. Perspektywy materializowane mona
skonfigurowa w taki sposb, aby automatycznie dokonyway synchronizacji z tymi tabelami, podlegajc aktualizacji w odstpach czasu okrelonych przez uytkownika. Perspektywy mog by przechowywane w tej samej bazie danych, jak rdowe tabele bazowe lub te w zupenie innych zdalnych bazach danych.
Poniej zostan pokazane przykady, w jaki sposb mona wykorzystywa perspektywy
materializowane w hurtowni danych. Czsto s uywane do wstpnego obliczania i przechowywania danych zbiorczych, takich jak sumy czy rednie. Jeli perspektywa materializowana dotyczyaby miesicznej sprzeday, gdzie do tabel bazowych byyby wpisywane dane o sprzeday w nowym miesicu, w perspektywie materializowanej byyby dokonywane automatyczne aktualizacje wartoci zbiorczych uwzgldniajce prosty sposb
przyspieszenia wykonywania zapyta w duych hurtowniach danych.
W rodowiskach rozproszonych stosowanie perspektyw materializowanych umoliwia
dokonywanie replikacji danych w lokalizacjach rozproszonych oraz synchronizacji aktualizacji midzy tymi lokalizacjami. W rodowisku mobilnym perspektywy tego typu
mog by wykorzystywane do pobierania podzbiorw danych z centralnego serwera
do klientw mobilnych oraz dokonywania okresowych aktualizacji midzy serwerem
a klientami.
99
Modyfikowanie zapyta
Jeli perspektywy materializowane s przechowywane w tej samej bazie danych co tabele podstawowe, optymalizator zapyta moe korzysta z funkcji modyfikowania zapyta. Oznacza to, e gdy optymalizator stwierdzi, e moe uzyska wymagane dane
szybciej dziki wykorzystaniu perspektywy materializowanej a nie tabel rdowych,
wskazywanych przez zapytanie, zapytanie to (instrukcja SQL) zostanie zmodyfikowane
w taki sposb, e bdzie korzystao z materializowanej perspektywy a nie z oryginalnej
tabeli rdowej.
Moliwo modyfikowania oryginalnego zapytania znacznie zwiksza sprawno dziaania bazy danych. Funkcji tej mona uywa do tworzenia sprawozdawczej bazy danych (perspektyw materializowanych) opartej na produkcyjnej bazie danych. W takim
przypadku zmiana tabel produkcyjnych nie powodowaaby modyfikacji perspektyw materializowanych.
100
Cz II Czas na konkrety
Oznacza to, e powstaje indeks kolumny , indeks poczonych kolumn i . oraz indeks
poczonych kolumn , . i ).
Nie powstaj nastpujce indeksy:
Naley rwnie stale pamita, e indeks jest niewielk kopi tabeli. W przypadku indeksu .) kada zmiana zawartoci ktrejkolwiek z kolumn powoduje konieczno aktualizacji indeksu. Zawsze podczas tworzenia indeksu baza danych musi uwzgldnia
wszystkie zmiany wprowadzone w tabeli rdowej, na ktrej jest oparty indeks.
101
5+A'*
#
;E3'+1'5+A'* 3'+1'5+A'*
&
'()*'+,-.'/'+9A)3A,3'4
Gdy kolumny zostan okrelone jako klucz gwny, usunicie tego ograniczenia jest bardzo trudne.
I;E3'+1'5+A'*
&
I;E3'+1'5+A'*
#
1*A3AA$J
@!CJ3A)9,+3'0-03'7A35);-0,5D,1A)5+A'*3)E,+';*07+03A;'.,16&E*,1364
Regua 95/5
W pewnych sytuacjach zastosowanie indeksu moe przynie spowolnienie pracy bazy
danych. Regua 95/5 umoliwia dokonywanie pomiaru skutecznoci dziaania indeksw. Jeli wynikiem wykonanie zapytania bdzie zwrcenie nie wicej ni 5% wierszy
tabeli, indeks jest waciwie zawsze najszybszym sposobem wyszukiwania danych. Jeli za
wynikiem bdzie wyszukanie ponad 5% wszystkich danych, lepiej nie korzysta z indeksu.
Wyzwalacze programy
inicjowane przez zdarzenia
Wyzwalacze to programy przechowywane w bazie danych, ktre s wykonywane po
zaistnieniu okrelonego zdarzenia. Mog one by napisane w jzyku PL/SQL, Java lub C.
Wyzwalacze s definiowane w systemie Oracle, a ich uruchomienie odbywa si w momencie wykonania instrukcji
, lub wobec powizanej z nimi tabeli
lub perspektywy oraz przy zdarzeniu zwizanym z baz danych.
102
Cz II Czas na konkrety
@@@@@@@@
0**K
@@@@@@@@@@
6D
@@@@@@@@@@@@@@@@@@@@@@@
G
16+1+1A)2+';AE'.+1A)2+';'
H
+1A)2+';A
H
A8
.:)3
A3-)2.A3.,5+A)33A;
A55+A)3.'()*'5+A)359*5+A)3
A5;*07+'5+A)33'+1'0+6.;5+A)35'.'5+A)3
L'*0);,*A55+A)343)M.L'*%%%
%
J3,1)4A5+1A)2+';'0-)2-6-5'.)>
)*-A8
.:)3
A3-)2.A3.,5+A)33A;
A55+A)33A;'.'()*'5+A)359*5+A)3
A5;*07+'5+A)33'+1'0+6.;5+A)35'.'5+A)3
L'*0);,*A55+A)343)M.L'*%%%
%
J-.'2)4A5+1A)2+';'0-)2-6-5'.)>
)*-)
A3-)2.A3.,5+A)33A;
A55+A)3.'()*'5+A)359*5+A)3
A5;*07+'5+A)33'+1'0+6.;5+A)35'.'5+A)3
L'*0);,*A55+A)343)M.L'*%%%
%
J-.'2)4A5+1A)2+';'0-)2-6-5'.)>
)35A8>
103
I
,.:)2-
2'A-)'DD*A7'.A,3)22,2@% 16+1+1A)2+';AE'.+1A)2+';'J%
NN>
16+1+1A)2+';AE'.+1A)2+';'>
&
Gdyby uytkownik teraz zajrza do tabeli &&, stwierdziby, e jest ona pusta.
Przed wykonaniem komend ,
i warto rwnie sprawdzi zawarto
tabeli .
-)*)7.#82,95+A)33A;
&
3A)16(2'3,+'5367:1A)2-+6
-)*)7.#82,9+1A)2+';A>
@@@@@@@@@@@@@@
$
@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@
H H
@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@
104
Cz II Czas na konkrety
A oto wynik dziaania wyzwalacza i wpisy utworzone przez niego w tabeli &&:
-)*)7.#82,95+A)33A;>
@@@@@@@@ @@@@@@@@@@@@@
@@@@@@@@@@
$
@@@@@@@@@@@@@@@@
$
@@@@@@@@@@@
C@@$
C@@$
C@@$
@@@@@@@@@@@@@@@@@
Synonim moe by prywatny lub publiczny. Z synonimu prywatnego moe korzysta jedynie uytkownik, ktry go utworzy, natomiast synonim publiczny jest dostpny w caej
bazie danych.
105
@@@@@@@@@@@@@@@@@@@@
H H
106
Cz II Czas na konkrety
Efektem byo ogromne zamieszanie. Potrzebna bya osobna baza danych, ktra pozwoliaby utrzyma porzdek w samych uprawnieniach. Dostrzegajc problemy wice si
ze stosowaniem tego modelu, firma Oracle opracowaa obiekt roli.
Wykorzystujc to rozwizanie administrator tworzy rol w bazie danych, przydziela
uprawnienia do tej roli a nastpnie przypisuje j wymaganemu uytkownikowi. Na
przykad, w warunkach szpitala mona utworzy rol lekarza oraz rol pielgniarki. Lekarz moe mie moliwo tworzenia zlecenia bada laboratoryjnych, podczas gdy
pielgniarka moe jedynie odczytywa wyniki tych bada.
107
$"@@$
3A'
$@ @$
'2);
$@@$
A)-A);
$$@ ?@$
,9);
$"@@$
'1)*
@
@$
+(6-+);
"@@$
9'E5'
B@@$
('-A'
G@ ?@$
$$1A)2-+6+,-.'/,16(2'367:4
@@@@@@@@@@@@
!
"
B
C
""
F"
G
Teraz za pomoc tej funkcji mona wyszuka czne wielkoci wynagrodzenia dla wojewdztwa okrelonego parametrem #/ 0 1'*1. Warto zwrci uwag na uycie
nazwy funkcji /#
#/ oraz sposb przekazywania do niej skrtu '*.
L'2M309()2>
)M)7JMJ=5,5'<163'E25*'1,<%%>
2,7)502'&+,-.'/'16;,3'3'D,96P*3A)4
D2A3.M>
I
@@@@@@@@@
108
Cz II Czas na konkrety
109
# .
D,5'<A9A)A3'+1A-;,
L'27:'2L'27:'2
L'27:'2
! WUVCNAKOKGAKAPC\YKUMQ>
D)2'.,20.1,2+,364
110
Cz II Czas na konkrety
binarnymi. S to na przykad pliki graficzne. Komenda pozwala utworzy obiekt katalogu, ktry stanowi alias katalogu zlokalizowanego w systemie plikw
na serwerze. Nastpnie w kodzie tworzonego programu zamiast wpisywa pen ciek
do katalogu mona umieci odwoanie do tego obiektu.
Powizania bazodanowe
Powizanie bazodanowe (ang. database link) pozwala uytkownikowi korzysta z danych umieszczonych w zdalnej bazie danych bez koniecznoci znajomoci dokadnej
lokalizacji tych danych. Podczas tworzenia powizania bazodanowego uytkownik dostarcza informacje dotyczce logowania do odpowiedniej zdalnej bazy danych. Kade
uycie powizania powoduje zainicjowanie sesji sieciowej, ktrej zadaniem jest nawizanie poczenia ze zdaln tabel lub perspektyw.
Niezalenie od nazwy uytkownika zalogowanego w lokalnej bazie danych, do logowania w zdalnej bazie danych powizanie bazodanowe uyje informacji logowania podanych w momencie tworzenia powizania. Powizania mog by tworzone do uytku
prywatnego i publicznego.
111
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+)21,36
A)*,36
A)(A)-;A
+'236
@@@@@@@@@@@@@@
F
$$
$!$
$
$
@@@@@@@@@@@@@@
$
$!
CCCC
112
Cz II Czas na konkrety
'()*'+,-.'/'0.1,2+,3'4
Naley zwrci uwag na sposb odwoania do obiektu klastra podczas tworzenia tabeli.
D2'7,13A769A)-+;
A5D2'7A3.)E)2
329A)-+;
!A9A)D2'7
"3'+1D2'7
B.6.D2'7
F#
;*-9A)-+;'3A)7329A)-+;
&
'()*'+,-.'/'0.1,2+,3'4
Jak dotd, omwiono obiekty baz danych, z ktrymi zapewne uytkownik bdzie mia
styczno. Zostay rwnie zaprezentowane niektre bardziej zaawansowane obiekty, takie
jak indeksy bitmapowe, powizania bazodanowe czy operatory. W nastpnym rozdziale
nastpi omwienie oprogramowania SQL*Plus oraz sposobw jego wykorzystywania.
Pytania do rozdziau 4.
Odpowiedzi na pytania mona znale w dodatku A.
1. ____________ to obiekt bazy danych zawierajcy dane uytkownika.
A. Perspektywa
B. Operator
C. Rola
D. Tabela
2. Do momentu wykonania ___________ nie zawiera adnych danych, a jedynie
bazie danych.
A. Perspektywa
B. Powizanie bazy danych
C. Tabela
D. Funkcja
5. ____________ to prosty sposb zarzdzania zbiorami uprawnie.
A. Rola
B. Perspektywa
C. Powizanie bazy danych
D. Pakiet
113