Vous êtes sur la page 1sur 30

IDZ DO

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

Obejmuje wydania Oracle 7.x, 8i, 9i


Systemy baz danych Oracle, bdce podstaw wspczesnego e-biznesu, to zoone
i skomplikowane rozwizania. Jeli chcesz pozna ich ogromny potencja, trzymasz
w rku waciwy podrcznik, autoryzowany przez firm Oracle.
Ksik Oracle9i. Przewodnik dla pocztkujcych, wypenion do ostatniej strony
uytecznymi wskazwkami i przykadami. Poznasz jzyk proceduralny PL/SQL
i podstawowe zagadnienia zwizane z administracj bazy danych, po czym nastpuje
omwienie zaawansowanych technik zarzdzania i manipulowania danymi. To kompletny
podrcznik - prowadzi Ci od konfiguracji bazy danych, tworzenia tabel i wykonywania
zapyta, przez tworzenie formularzy i raportw, a po partycjonowanie danych
i zarzdzanie uprawnieniami uytkownikw. Dodatkowo ksika zawiera omwienie
narzdzi SQL*Plus, Oracle Enterprise Manager i Oracle Summary Machine.
Poznaj bazy danych Oracle9i i serwer aplikacji Oracle9iAS
Korzystaj z pomocy Oracle Support Services i z zasobw Oracle Technology Network,
twrz zgoszenia TAR, iTAR, korzystaj z serwisu MetaLink
Twrz tabele i raporty, projektuj i uruchamiaj aplikacje korzystajce z jzykw SQL
i PL/SQL
Poznaj przeznaczenie plikw danych, dziennikw odtwarzania i plikw kontrolnych
Pocz komputery w sie Oracle Net i korzystaj z moliwoci oferowanych przez
przetwarzanie rozproszone
Zarzdzaj olbrzymimi tabelami, gromad dane w hurtowni danych i przeprowadzaj
zaawansowane analizy zbiorcze za pomoc narzdzi i funkcji Oracle Summary Engine
Buduj bazy danych za pomoc zapyta DDL i DML

Spis treci
Informacje o Autorach ...........................................................................13
Wprowadzenie .......................................................................................15

Cz I

Pierwsze kroki.......................................................................17

Rozdzia 1. Oracle: firma i produkty .........................................................................19


Terminologia ................................................................................................................ 19
Firma Oracle Corporation: historia.................................................................................. 19
1977: pocztek ........................................................................................................ 20
1978: powstaje Relational Software Inc..................................................................... 21
1979: pierwsza komercyjna baza danych trafia na rynek ............................................. 21
1980: powstaje firma Oracle Systems ........................................................................ 21
1981 1983: pierwszy system zarzdzania relacyjn baz danych,
dziaajcy na komputerach typu mainframe i minikomputerach ................................. 22
1984: wersja 4. systemu Oracle spjno odczytu .................................................. 22
1985: Oracle wchodzi w sektor aplikacji.................................................................... 23
1986: pierwszy system zarzdzania baz danych z funkcjami bazy rozproszonej........... 23
1987: intensywny rozwj Oracle............................................................................... 24
1988: Oracle Financials/Oracle CASE ....................................................................... 24
1989: powstanie Oracle 6.2 ...................................................................................... 24
1990 1991: przekroczona granica 1 mld dolarw ..................................................... 25
1992: Ray Lane w Oracle......................................................................................... 25
1993: rosnca rola dziau aplikacji ............................................................................ 26
1994 1995: 2 miliardy sprzeday i komputer sieciowy.............................................. 26
1996: Oracle wchodzi na rynek detaliczny ................................................................. 27
1997: pojawia si pakiet Oracle8............................................................................... 27
1998: obsuga systemu Linux.................................................................................... 28
1999: pojawia si pakiet Oracle8i.............................................................................. 28
2000: numer jeden................................................................................................... 28
Aktualna oferta ............................................................................................................. 29
Pytania do rozdziau 1. .................................................................................................. 30

Rozdzia 2. Mechanizmy uzyskiwania pomocy ..........................................................31


Terminologia ................................................................................................................ 31
Oracle Support Services................................................................................................. 33
Zgaszanie wnioskw TAR do dziau OSS (starszy sposb) .............................................. 35
Przekazywanie dokumentacji towarzyszcej zgaszaniu wnioskw TAR ...................... 36

Oracle 9i. Przewodnik dla pocztkujcych


Serwis MetaLink ........................................................................................................... 38
Biblioteki techniczne ............................................................................................... 39
Fora ....................................................................................................................... 41
Wnioski iTAR............................................................................................................... 44
Informacje reliktowe klienta ..................................................................................... 44
Krtki opis wniosku TAR ........................................................................................ 45
Sie Oracle Technology Network ................................................................................... 47
Serwis Oracle AppsNet.................................................................................................. 49
Grupy dyskusyjne i serwery list dyskusyjnych ................................................................. 51
Grupy dyskusyjne ................................................................................................... 52
Serwery list dyskusyjnych ........................................................................................ 55
Dokumentacja on-line.................................................................................................... 59
Inne witryny ................................................................................................................. 60
Wyszukiwarki internetowe ....................................................................................... 61
Witryny godne szczeglnego polecenia ..................................................................... 63
Pytania do rozdziau 2. .................................................................................................. 65

Rozdzia 3. Serwer Oracle........................................................................................67


Terminologia ................................................................................................................ 67
Architektura serwera ..................................................................................................... 69
Pomocnicze procesy drugoplanowe................................................................................. 71
Proces zapisujcy do plikw danych (dbw0) .............................................................. 71
Monitor procesw (pmon)........................................................................................ 72
Monitor systemu (smon) .......................................................................................... 72
Proces zapisujcy do plikw dziennika powtrze (lgwr) ............................................ 73
Proces punktu kontrolnego (ckpt).............................................................................. 73
Odtwarzacz (reco) ................................................................................................... 73
Archiwizator (arc0) ................................................................................................. 73
Plik INIT.ora ................................................................................................................ 74
Wpisy dotyczce pooenia plikw............................................................................ 75
Wpisy dotyczce ogranicze..................................................................................... 76
Wpisy dotyczce funkcji .......................................................................................... 76
Zmiana wartoci parametrw.................................................................................... 77
Plik kontrolny ............................................................................................................... 79
Dzienniki powtrze ..................................................................................................... 79
Pliki danych bazy danych .............................................................................................. 82
Segmenty wycofania/ przestrze tabel cofania ................................................................. 83
Najwaniejsze struktury pamici..................................................................................... 84
Bufor danych .......................................................................................................... 84
Bufor bibliotek ........................................................................................................ 85
Blokady i zatrzaski ........................................................................................................ 86
Blokady.................................................................................................................. 86
Zatrzaski................................................................................................................. 87
Tworzenie nowej bazy danych Oracle9i .......................................................................... 88
Pytania do rozdziau 3. .................................................................................................. 90

Cz II

Czas na konkrety ..................................................................91

Rozdzia 4. Obiekty baz danych ...............................................................................93


Terminologia ................................................................................................................ 93
Tabele miejsce przechowywania danych..................................................................... 95
Polecenie create table przykad............................................................................. 95
Polecenie create table as przykad......................................................................... 96
Perspektywy niestandardowy wybr jednej lub wikszej liczby tabel............................. 97
Polecenie create view przykad............................................................................. 97

Spis treci

Perspektywy materializowane perspektywy, w ktrych s przechowywane dane ............ 98


Polecenie create materialized view (dawniej snapshot) przykad.............................. 98
Modyfikowanie zapyta........................................................................................... 99
Indeksy szybki sposb korzystania z danych ............................................................... 99
Zalety wstpnego sortowania.................................................................................. 100
Indeksy unikatowe i nieunikatowe........................................................................... 100
Regua 95/5 .......................................................................................................... 101
Indeks bitmapowy indeks dla grup wierszy o niewielkim zrnicowaniu................ 101
Wyzwalacze programy inicjowane przez zdarzenia .................................................... 101
Polecenie create trigger przykad ........................................................................ 102
Synonimy pseudonimy obiektw.............................................................................. 104
Polecenie create synonym przykad .................................................................... 104
Sekwencja szybki sposb uzyskania unikatowej liczby............................................... 105
Polecenie create sequence przykad .................................................................... 105
Polecenie create role sposb zarzdzania uprawnieniami ............................................ 105
Polecenie create role przykad ............................................................................ 106
Funkcje, procedury i pakiety ........................................................................................ 106
Polecenie create function........................................................................................ 106
Polecenie create procedure ..................................................................................... 108
Polecenie create package........................................................................................ 108
Inne obiekty baz danych .............................................................................................. 109
Polecenie create operator ....................................................................................... 109
Polecenie create directory....................................................................................... 109
Polecenie create library .......................................................................................... 110
Powizania bazodanowe ........................................................................................ 110
Polecenie create cluster .......................................................................................... 112
Pytania do rozdziau 4. ................................................................................................ 113

Rozdzia 5. SQL*Plus 101......................................................................................115


Jak uzyska dostp do programu SQL*Plus ................................................................... 115
Dostp za pomoc wiersza polecenia....................................................................... 116
Dostp przy uyciu ikon......................................................................................... 117
Koczenie sesji programu SQL*Plus....................................................................... 117
Instrukcje Data Definition Language (DDL) .................................................................. 117
Instrukcja create/drop ............................................................................................ 118
Typy danych......................................................................................................... 119
Komenda describe....................................................................................................... 119
Warto not null .................................................................................................... 120
Instrukcje Data Manipulation Language (DML) ............................................................. 120
Instrukcja insert..................................................................................................... 121
Instrukcja select .................................................................................................... 122
rodowisko programu SQL*Plus ............................................................................ 127
czenie tabel ............................................................................................................. 131
Klucze gwne i klucze obce .................................................................................. 131
Klauzula break on ....................................................................................................... 132
Klauzula break on z opcj skip ............................................................................... 133
Obliczanie wartoci w kolumnach w punktach amania ............................................. 134
Komenda break on report....................................................................................... 135
Pytania do rozdziau 5. ................................................................................................ 136

Rozdzia 6. PL/SQL 101 ........................................................................................139


Terminologia .............................................................................................................. 140
PL/SQL: jzyk programowania opracowany przez firm Oracle ...................................... 141
Zestaw znakw jzyka PL/SQL.................................................................................... 143
Obsugiwane znaki ................................................................................................ 143
Operatory arytmetyczne i relacyjne ......................................................................... 143

Oracle 9i. Przewodnik dla pocztkujcych


Struktura jzyka PL/SQL............................................................................................. 144
Zmienne jzyka PL/SQL........................................................................................ 145
Struktury kontrolne ..................................................................................................... 148
Struktury logiczne if .............................................................................................. 149
Wyraenia case ..................................................................................................... 152
Ptle..................................................................................................................... 152
Jzyk SQL w programach w jzyku PL/SQL ................................................................. 155
Kursory ................................................................................................................ 155
Ptla for kursora.................................................................................................... 157
Obsuga wyjtkw....................................................................................................... 158
Skadowane procedury i funkcje ................................................................................... 160
Skadowane procedury........................................................................................... 160
Funkcje ................................................................................................................ 164
Podstawowe mechanizmy usuwania bdw .................................................................. 165
Dalsze kroki................................................................................................................ 166
Pytania do rozdziau 6. ................................................................................................ 167

Rozdzia 7. DBA 101 .............................................................................................169


Terminologia .............................................................................................................. 169
Co to jest baza danych? ............................................................................................... 170
Co to jest instancja Oracle? .......................................................................................... 171
Globalny obszar systemu (SGA) ............................................................................. 171
Procesy drugoplanowe systemu Oracle .................................................................... 172
Polecenie startup open ........................................................................................... 173
Polecenie shutdown ............................................................................................... 175
Przestrze tabel w Oracle9i .......................................................................................... 176
Tworzenie przestrzeni tabel klauzula extent management dictionary ...................... 176
Tworzenie przestrzeni tabel polecenie extent management local autoallocate.......... 177
Polecenie create undo tablespace ............................................................................ 178
Polecenie alter tablespace add data file .................................................................... 179
Polecenie alter tablespace offline ............................................................................ 179
Usuwanie przestrzeni tabel ..................................................................................... 180
Segmenty wycofania.................................................................................................... 180
Polecenie create rollback segment ........................................................................... 180
Polecenie alter rollback segment online ................................................................... 182
Rczne zmniejszanie segmentu wycofania ............................................................... 182
Polecenie drop rollback segment ............................................................................. 183
Dzienniki powtrze ................................................................................................... 183
Zwielokrotnione pliki dziennika powtrze ............................................................. 183
Usuwanie dziennika powtrze............................................................................... 184
Dodawanie dziennika powtrze............................................................................. 185
Pliki kontrolne lista kontrolna bazy danych ............................................................... 185
Tworzenie plikw kontrolnych ............................................................................... 186
Tworzenie konta uytkownika...................................................................................... 186
Polecenie grant connect, resource ........................................................................... 187
Pytania do rozdziau 7. ................................................................................................ 188

Cz III Wykraczamy poza podstawy................................................189


Rozdzia 8. Wicej o programie SQL*Plus...............................................................191
Terminologia .............................................................................................................. 192
Wdraanie programu SQL*Plus w rodowisku produkcyjnym......................................... 192
Umieszczanie komentarzy w kodzie przy uyciu instrukcji rem, -- i /*...*/ ................. 192
Pliki bazowe programu SQL*Plus........................................................................... 193

Spis treci

Operatory zbiorowe union, intersect i minus .................................................................. 196


Operator union ...................................................................................................... 197
Operator union all.................................................................................................. 197
Operator minus ..................................................................................................... 197
Operator intersect .................................................................................................. 198
Nie mieszaj ogrkw z demem ............................................................................. 198
Edytowanie wiersza polece w programie SQL*Plus...................................................... 198
Korzystanie z edytora wiersza polecenia.................................................................. 199
Gdyby tak mona byo uy edytora VI lub Emacs... ................................................ 199
Tabela dual................................................................................................................. 200
Standardowe funkcje Oracle......................................................................................... 200
Funkcje i operatory matematyczne.......................................................................... 200
Funkcje znakowe .................................................................................................. 202
Dane typu date...................................................................................................... 203
Funkcje daty w programie SQL*Plus ...................................................................... 204
Funkcje grupowe................................................................................................... 206
Wyszukiwanie powtarzajcych si danych za pomoc klauzuli group by .................... 209
Usuwanie powtarzajcych si danych za pomoc funkcji group by ............................ 210
Generowanie kodu SQL za pomoc innego fragmentu kodu SQL .................................... 212
Generowanie plikw danych za pomoc kodu SQL .................................................. 213
Zapytanie wewntrz zapytania...................................................................................... 214
Instrukcja decode ........................................................................................................ 216
Aktualizacja przy uyciu instrukcji update ............................................................... 217
Pytania do rozdziau 8. ................................................................................................ 218

Rozdzia 9. Wicej o jzyku PL/SQL.......................................................................219


Terminologia .............................................................................................................. 220
Pakiety i przeciania podprogramu .............................................................................. 220
Zaawansowane funkcje obsugi bdw w programach w jzyku PL/SQL ........................ 222
Wyjtki definiowane przez uytkownika.................................................................. 222
Zmienne przeznaczone do obsugi bdw dostpne w oprogramowaniu Oracle .......... 223
Transakcje autonomiczne............................................................................................. 225
Bezpieczestwo danych z poziomu PL/SQL.................................................................. 226
Pakiety dostarczone przez firm Oracle ......................................................................... 226
Pakiet utl_file........................................................................................................ 227
Dynamiczny SQL.................................................................................................. 230
Pytania do rozdziau 9. ................................................................................................ 233

Rozdzia 10. Wicej o administratorze bazy danych ..................................................235


Terminologia .............................................................................................................. 236
Tworzenie kopii zapasowych i odtwarzanie ................................................................... 236
Eksport ...................................................................................................................... 236
Rola mechanizmu eksportu w tworzeniu kopii zapasowych ....................................... 237
Parametry programu eksportu................................................................................. 237
Tryby pracy programu eksportu.............................................................................. 239
Typy eksportu....................................................................................................... 243
Import........................................................................................................................ 243
Rola importu w odtwarzaniu................................................................................... 243
Parametry programu importu .................................................................................. 244
Tryby dziaania programu importu .......................................................................... 245
Typy importu ........................................................................................................ 247
Funkcje odtwarzania nonikw..................................................................................... 247
Tworzenie kopii zapasowych na gorco i na zimno ............................................ 248
Praca w trybie archiwizacji dziennikw powtrze................................................... 249
Zapisywanie kopii zapasowej na gorco ............................................................... 251
Odtwarzanie nonikw przykad......................................................................... 252
Pytania do rozdziau 10................................................................................................ 255

10

Oracle 9i. Przewodnik dla pocztkujcych

Rozdzia 11. Oracle Enterprise Manager...................................................................257


Terminologia .............................................................................................................. 257
Moliwoci OEM przegld ...................................................................................... 258
Uruchamianie ............................................................................................................. 261
Zatrzymanie................................................................................................................ 263
Zarzdzanie przestrzeni tabel ...................................................................................... 264
Zmiana rozmiaru pliku danych ............................................................................... 266
Dodanie pliku danych ............................................................................................ 267
Zmniejszanie rozmiaru pliku danych ....................................................................... 267
Zarzdzanie kontami uytkownikw ............................................................................. 268
Tworzenie konta uytkownika ................................................................................ 268
Uprawnienia do zajmowania przestrzeni w bazie danych........................................... 270
Przyznawanie uprawnie do obiektw bazy danych.................................................. 271
Zarzdzanie obiektami ................................................................................................. 273
Zarzdzanie obiektami arkusz SQL*Plus Worksheet............................................ 275
Pytania do rozdziau 11................................................................................................ 277

Rozdzia 12. Przetwarzanie rozproszone ...................................................................279


Terminologia .............................................................................................................. 279
Partycjonowanie aplikacji z wykorzystaniem przetwarzania rozproszonego...................... 280
Oracle Net .................................................................................................................. 281
Plik listener.ora ..................................................................................................... 281
Plik tnsnames.ora .................................................................................................. 283
Program Network Configuration Assistant ............................................................... 284
Rozmieszczenie pliku tnsnames.ora ........................................................................ 288
Nawizywanie poczenia w rodowisku Oracle Net................................................. 289
Pytania do rozdziau 12................................................................................................ 290

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

Rozdzia 14. Wszdzie WWW ...................................................................................309


Terminologia .............................................................................................................. 309
Serwer aplikacji Oracle9i ............................................................................................. 311
Komponenty Communication Services .................................................................... 313
Komponenty Business Logic Services ..................................................................... 316
Komponenty Presentation Services ......................................................................... 317
Usugi buforowania ............................................................................................... 321
Usugi zarzdzania treci ...................................................................................... 323
Usugi Oracle Portal .............................................................................................. 323
Usugi wspomagania decyzji .................................................................................. 325
Java w bazie danych.................................................................................................... 326
Pytania do rozdziau 14................................................................................................ 329

Spis treci

Cz V

11

Oracle9i dla ju nie pocztkujcych ....................................331

Rozdzia 15. Formularze i raporty.............................................................................333


Terminologia .............................................................................................................. 333
Przykadowe tabele ..................................................................................................... 334
Oracle Forms i Oracle Reports wprowadzenie ........................................................... 335
Oracle Forms i Oracle Reports skadniki ............................................................. 335
Inicjowanie poczenia z baz danych ..................................................................... 336
Formularze Forms Builder ....................................................................................... 336
Kreator bloku danych ............................................................................................ 338
Kreator ukadu ...................................................................................................... 339
Edycja istniejcego formularza ............................................................................... 342
Raporty Raport Builder ........................................................................................... 348
Kreator Report Wizard........................................................................................... 348
Modyfikacja raportu .............................................................................................. 351
Pytania do rozdziau 15................................................................................................ 353

Rozdzia 16. Partycjonowanie danych ......................................................................355


Terminologia .............................................................................................................. 355
Po co partycjonowa dane? .......................................................................................... 356
Rozmiar woluminu danych..................................................................................... 357
atwo zarzdzania partycjonowanymi danymi ...................................................... 358
Zwikszenie wydajnoci......................................................................................... 358
Partycjonowanie zakresowe ......................................................................................... 359
Wybr klucza partycjonowania............................................................................... 359
Zakresowe partycjonowanie tabeli kod SQL........................................................ 362
Indeksowanie tabel partycjonowanych .......................................................................... 364
Indeksy partycjonowane lokalnie ............................................................................ 364
Indeksy partycjonowane globalnie .......................................................................... 367
Indeks lokalny czy globalny?.................................................................................. 368
Indeksy partycjonowane prefiksowane i nieprefiksowane.......................................... 371
Partycjonowanie wedug listy ....................................................................................... 371
Partycjonowanie haszowane......................................................................................... 373
Jaki zastosowa model partycjonowania? ...................................................................... 374
Liczba wierszy ...................................................................................................... 374
Metody dostpu .................................................................................................... 376
Model partycjonowania hybrydowego ..................................................................... 377
Pytania do rozdziau 16................................................................................................ 378

Rozdzia 17. Hurtownia danych. Funkcje analizy zbiorczej .........................................381


Terminologia .............................................................................................................. 382
Czym jest hurtownia danych?....................................................................................... 383
Projektowanie hurtowni danych.................................................................................... 384
Wymiarowy projekt bazy danych............................................................................ 386
Partycjonowanie hurtowni danych ................................................................................ 387
Wykonywanie kopii zapasowej hurtowni danych ........................................................... 390
Wypenianie hurtowni danych ...................................................................................... 391
Wczytywanie danych program SQL*Loader ....................................................... 393
Wczytywanie danych tabele zewntrzne ............................................................. 395
Wczytywanie danych PL/SQL ........................................................................... 397
Funkcje zwizane z przetwarzaniem danych w hurtowniach danych Oracle9i ................... 400
Perspektywy zmaterializowane ............................................................................... 400
Rozszerzone operacje agregujce.................................................................................. 413
Funkcja rollup ....................................................................................................... 416
Funkcja cube ........................................................................................................ 417

12

Oracle 9i. Przewodnik dla pocztkujcych


Funkcje szeregujce............................................................................................... 418
Funkcje ramy........................................................................................................ 422
Funkcje statystyczne.............................................................................................. 424
Pytania do rozdziau 17................................................................................................ 425

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.

Obiekty baz danych


W niniejszym rozdziale omwiono definicje i przykady obiektw baz danych, najczciej
spotykanych podczas pracy z bazami danych Oracle9i. Opisano w nim rwnie pewne
obiekty, z ktrych uytkownik zapewne nie bdzie korzysta ale o ktrych istnieniu naley
wiedzie.
Przez obiekt bazy danych mona rozumie kady element bazy danych, ktry jest tworzony za pomoc instrukcji SQL . Instrukcje  i inne instrukcje DDL zostay
dokadniej zaprezentowane w rozdziale 5. Pomylne wykonanie instrukcji  powoduje utworzenie nowego obiektu bazy danych. Obiekty te mog mie rny rozmiar
i format. W tym rozdziale zostan omwione sposoby tworzenia kadego z nich. W przystpny zostan rwnie opisane role, jakie te obiekty peni w bazie danych.
W niniejszym rozdziale omwiono nastpujce zagadnienia:


tabele;

perspektywy, w tym perspektywy materializowane;

indeksy;

wyzwalacze;

synonimy;

sekwencje;

role;

funkcje, procedury i pakiety.

Terminologia
Znajomo poniszej terminologii znacznie uatwi zrozumienie treci zawartych w tym
rozdziale.

94

Cz II  Czas na konkrety


Baza danych prowadzi sownik danych, ktry zawiera wszystkie informacje


na temat sposobu przechowywania danych w bazie, miejsca ich przechowywania
oraz moliwoci wykorzystania tych danych przez baz.

DDL to skrt oznaczajcy jzyk definicji danych (Data Definition Language).


S to polecenia SQL rozpoczynajce si od instrukcji , , 
 i  .
Su one do tworzenia i usuwania obiektw baz danych, jak rwnie tworzenia
zezwole dostpu do baz danych i ich obiektw.

DML jzyk przetwarzania danych (Data Manipulation Language) to polecenia


SQL rozpoczynajce si od instrukcji , 
,  lub  . Su
one do przetwarzania zawartoci bazy danych.

Zezwolenia to uprawnienia przyznawane przez wacicieli obiektw, na mocy


ktrych inni uytkownicy mog korzysta z danych takiego waciciela. Istniej
dwie kategorie zezwole: zezwolenia na poziomie obiektu i zezwolenia na poziomie
systemu. Zezwolenia na poziomie obiektu oznaczaj, e uytkownik moe
wybiera, wstawia, aktualizowa lub usuwa dane z obiektu bazy danych,
takiego jak tabela. Przykadowe zezwolenia na poziomie systemu to
umoliwienie uytkownikowi bazy danych nawizywanie poczenia z baz
danych lub tworzenia obiektu w bazie.

Indeks to niewielka kopia tabeli systemu Oracle, przechowywana w bazie


po wstpnym posortowaniu. Indeksy tabel umoliwiaj uzyskanie bardzo
szybkiego dostpu do danych zawartych w tabelach. Peni one rol podobn
do indeksw w ksice, uatwiajcych znalezienie okrelonego wyrazu
lub wyraenia.

Wizy integralnoci to zasady zapewniajce logiczn spjno danych w bazie


danych. Przykadowo, aby uproci identyfikowanie danych klienta w bazie
danych, przypisuje si mu unikatowy identyfikator.

Synonim to alternatywna nazwa obiektu znajdujcego si w bazie danych.

Tabela to obiekt bazy danych, w ktrym s umieszczane dane uytkownika.


W sowniku danych systemu Oracle9i przechowywane s informacje o kadej
z tabel. Dziki tym informacjom baza Oracle umoliwia obsug danych
umieszczonych w tabelach.

Wyzwalacze bazy danych to programy skadowane w bazie danych, ktre s


uaktywniane przez okrelone zdarzenia. Przykadem takiego zdarzenia moe
by wstawienie wiersza danych do tabeli.

Dziki perspektywom uytkownicy baz danych mog wywietla zawarto


wybranych przez siebie tabel znajdujcych si w bazie danych. Perspektywa jest
tworzona na podstawie instrukcji SQL przechowywanej w tej bazie. Podczas
korzystania z tej perspektyw nastpuje wykonanie instrukcji, a wyniki zapytania
s wywietlane na ekranie.

Rola to zbir uprawnie przyznawanych uytkownikom. Uytkownik staje si


czonkiem danej roli, dziedziczc w ten sposb nalece do niej uprawnienia.

Rozdzia 4.  Obiekty baz danych

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.

Polecenie create table przykad


Oto kod tworzcy przykadow tabel o nazwie :


  
   
 

     
 
!      
"#     $    %%% %
&

'()*'+,-.'/'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.

Polecenie create table as przykad


Bardzo przydatn funkcj w bazie danych Oracle9i jest moliwo tworzenia tabeli na podstawie istniejcej tabeli. Za pomoc tego mechanizmu mona szybko utworzy kopi caej
tabeli lub tylko wybranego fragmentu. Jest to rwnie doskonae narzdzie tworzenia rodowiska testowego. Oto bardzo prosty przykad zastosowania tej funkcji:


50+63,163'(,2
 -)*)7.#
82,93,163'(,2
!#1:)2);,51,<=%%
&

'()*'+,-.'/'0.1,2+,3'4

Spjrzmy teraz na zawarto tabeli wyjciowej:


-)*)7.#82,93,163'(,2>
 
@@@@@@@@@@@@@@@@@@
?'7);
,1';
;,1'*-;A
3A'
9'2);
1A)-A);
.,9);
D'1)*
+(6-+);
9'E5'
('-A'

?
@@@
















@@@@@@@@@@
$@
@$
$@ @$
$"@@$
$@ @$
$@@$
$$@ ?@$
$"@@$
@
@$
"@ @$
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

Rozdzia 4.  Obiekty baz danych

97

Perspektywy niestandardowy wybr


jednej lub wikszej liczby tabel
Perspektywa to niestandardowy zbir danych pochodzcych z jednej lub wicej tabel
bazowych. Tabele bazowe z kolei to tabele lub rwnie perspektywy. W odrnieniu od
tabeli, perspektywa nie zawiera danych a jedynie skadowan instrukcj SQL. Gdy uytkownik uruchamia zapytanie korzystajce z perspektywy, baza danych otwiera sownik
danych, odszukuje skadowan instrukcj SQL i wykonuje j. Dane znalezione w wyniku realizacji zapytania s prezentowane w formie tabeli.
Perspektywy dziaaj w sposb transparentny uytkownik moe odnosi wraenie,
e ma do czynienia z tabel. Podobnie jak w przypadku tabeli, w perspektywie mona
wstawia, aktualizowa, usuwa oraz wybiera dane1. Wszelkie zmiany wprowadzane
w perspektywie s uwzgldniane w tabelach bazowych.
Perspektywy s wykorzystywane z wielu powodw. Mona na przykad pozwoli pracownikowi zajmujcemu si wypatami na uzyskiwanie dostpu w tabeli pac do informacji o warunkach zatrudnienia poszczeglnych pracownikw ale nie do informacji o ich
wynagrodzeniach. Innym razem perspektywa moe posuy do ukrycia zoonoci danych. Mona na przykad umoliwi uytkownikom dostp do perspektywy, podczas
gdy instrukcja SQL, za pomoc ktrej utworzono t perspektyw, wykorzystuje skomplikowane zczenie wielu tabel. Dziki temu uytkownicy omijaj najbardziej zoone
elementy relacyjnych baz danych.

Polecenie create view przykad


W przykadzie poniej zademonstrowano sposb czenia dwch tabel:

 1A55+A'*D2'7 

)4A9A)D2'7)43'+1D2'7543'+1'5+A'*
HD2'7,13A;)
!5+A'*5
"# )4A55+A'*=54A55+A'*
&
)2-D);.61'+,-.'/'0.1,2+,3'4

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

Z pewnymi ograniczeniami dotyczcymi wstawiania, modyfikacji i usuwania przyp. tum.

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.

Polecenie create materialized view


(dawniej snapshot) przykad
Najpierw wszystkie tabele, na ktrych jest oparta perspektywa materializowana, musz
by odnotowane w dzienniku. Oto jeden z moliwych sposobw realizacji tego zadania:


   5+A'*
 
 
 3'+1'5+A'*
!#    
&
+A)33A;D)2-D);.6169'.)2A'*A+,1'3)<+,-.'/0.1,2+,364


   3,163'(,2
 
 
 A55+A'*163'E2,5+
!#    
&
+A)33A;D)2-D);.6169'.)2A'*A+,1'3)<+,-.'/0.1,2+,364

Rozdzia 4.  Obiekty baz danych

99

Teraz zostanie utworzona sama perspektywa materializowana:




   9.15+A'*163'E2,5+
HH 


   



! -)*)7.543'+1'5+A'*
"-0934163'E2,5+'-163'E2,5+*'7+
B82,95+A'*5
F3,163'(,23
G1:)2)54A55+A'*=34A55+A'*
CE2,0D(6543'+1'5+A'*>
)2-D);.61'9'.)2A'*A+,1'3'+,-.'/'0.1,2+,3'4

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.

Indeksy szybki sposb


korzystania z danych
Podobnie jak w przypadku indeksw pomagajcych w szybszym przeszukiwaniu ksiki,
indeks tabeli pomaga szybciej wyszukiwa dane. Indeks moe dziaa znacznie szybciej ni
tabela rdowa, poniewa jest znacznie mniejsz kopi podzbioru danych takiej tabeli.
Na przykad, moe istnie tabela o nazwie (2.%, zawierajca 26 kolumn (od  do ).
Dla pierwszych trzech kolumn utworzono indeks, nazwany na przykad .). Tabela ma
milion wierszy, a zadanie polega na wyszukaniu wszystkich wystpie sowa   znajdujcych si w kolumnie . Aby przejrze zawarto kolumny , standardowe wyszukiwanie musi obejmowa wszystkie kolumny tabeli.
Indeks jest kompletn kopi zawartoci kolumn , . i ), zatem przejrzenie zawartoci
kolumny  wymaga zanalizowania jeszcze tylko dwch innych kolumn . i ). Mona
sobie wyobrazi, o ile mniej pracy bdzie musiaa wykona baza danych w zwizku z przeszukiwaniem miliona wierszy w kolumnach od  do ) w porwnaniu z przeszukiwaniem
kolumn od  do .

100

Cz II  Czas na konkrety

Zalety wstpnego sortowania


W relacyjnych bazach danych zawarto tabeli nie jest poddawana adnemu wstpnemu
sortowaniu. By moe Czytelnik zetkn si z terminem ksigowym FIFO First In is
First Out (pierwsze na wejciu jest pierwsze na wyjciu). W rodowisku baz danych stosowane jest pojcie FIFL First In is First Loaded (pierwsze na wejciu jest pierwsze
adowane). Indeks jest zawsze wstpnie posortowany. W przykadzie powyej prba znalezienia sowa   w kolumnie  tabeli rdowej oznacza, e trzeba przejrze cay milion wierszy. Jednoczenie wiadomo, e indeks jest wstpnie posortowany. Wykorzystanie tej informacji pozwoli na znaczne przyspieszenie pracy bazy danych.
Utworzenie indeksu kolumn , . i ) w rzeczywistoci powoduje utworzenie nastpujcych
indeksw:




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.

Indeksy unikatowe i nieunikatowe


Indeks standardowy moe mie form indeksu unikatowego lub indeksu nieunikatowego. Indeks unikatowy nie moe powtarza si dla rnych wpisw. Indeks nieunikatowy
moe by okrelony dla wielu rnych wpisw w tej samej tabeli.

  IA353'+1'5+A'*
#5+A'*3'+1'5+A'*
&
35);-+,-.'/0.1,2+,364

Klucz gwny (primary key)


Inny sposb uniknicia duplikowania wpisw polega na zastosowaniu podczas tworzenia tabeli klucza gwnego. Uycie tego ograniczenia stanowi dla bazy danych informacj, i wskazane kolumny nie mog zawiera zduplikowanych wpisw. W przykadzie
poniej nie bdzie tworzona nowa tabela a jedynie zostanie dodany klucz gwny dla
istniejcej tabeli.

Rozdzia 4.  Obiekty baz danych

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.

Indeks bitmapowy indeks dla grup wierszy


o niewielkim zrnicowaniu
Indeks bitmapowy utworzono dla celw obsugi funkcji hurtowni danych. Czasami zbir
danych charakteryzuje si bardzo niewielkim zrnicowaniem pewnych wierszy. Przykadem moe by zbir, w ktrym jednym z kluczowych kryteriw jest pe. Zwyky indeks jest tutaj nieprzydatny. W wyniku kadego zapytania liczba zwracanych wierszy
zawsze byaby wiksza ni 5% caoci. Poniej zostanie pokazany efekt zastosowania
indeksu bitmapowego:

$
 
 I(AD*)7+1A)2+';'9+
#+1A)2+';AD*)7+1A)2+';'9+
&
35);-+,-.'/0.1,2+,364

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

Wyzwalacze mog by wykorzystywane do wymuszania zabezpiecze bazy danych,


zapobiegania realizacji nieprawidowych transakcji, wymuszania wizw integralnoci,
wykonywania czynnoci obserwacyjnych czy nawet utrzymywania repliki tabeli.

Polecenie create trigger przykad


Poniej zostanie zaprezentowany przykad uycia wyzwalacza do zapisu obserwacji
wszystkich dziaa wykonywanych na tabeli . Dziaania te bd rejestrowane
w tabeli &&.
5)-725+A)33A;>
'+1'
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 

  
 
   

 
  
 

@@@@@@@@

0**K
@@@@@@@@@@

 

 

6D
@@@@@@@@@@@@@@@@@@@@@@@
  
  
  
  G


  

Teraz zostanie utworzony wyzwalacz, ktry bdzie rejestrowa wszystkie zdarzenia 


3

,   lub  w tabeli &&:


 
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>

Rozdzia 4.  Obiekty baz danych

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
  

   
@@@@@@@@@@@@@@@@@@@@@@@



Teraz mona ju wykona komendy 


,   i  na tabeli . Jak
zapewne Czytelnik pamita, s to komendy, ktre spowoduj uaktywnienie wyzwalacza
bazy danych.
A3-)2.A3.,+1A)2+';AA5+1A)2+';'E'.+1A)2+';'3'+1'+1A)2+';'D*)7+1A)2+';'9+
#L'*0)-%%%   %% %
&
$1A)2-++,-.'/0.1,2+,364
0D5'.)+1A)2+';A
-).3'+1'+1A)2+';'=% 
%
D*)7+1A)2+';'9+=% %
!#1:)2)A5+1A)2+';'=$
&
$1A)2-++,-.'/+9,568A;,1'364
5)*).)82,9+1A)2+';A
#1:)2)A5+1A)2+';'=
&
$1A)2-++,-.'/0-03AO.64

Oto aktualny stan tabeli :


-)*)7.#82,9+1A)2+';A>
  
@@@@@@@@@@@@@@
$



  
@@@@@@@@@@@@@@@@@@@@@@



   
@@@@@@@@@@@@@@@@@@@@
 

 

   
@@@@@@@@@@@@@@@@@@@@@@@

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@@$

  
 
@@@@@@@@@@@@@@@@@
 
 
 

Synonimy pseudonimy obiektw


Synonim to alternatywna nazwa tabeli, perspektywy, sekwencji lub jednostki programu.
Synonimy s uywane z rnych powodw:


ukrycie prawdziwej nazwy waciciela obiektu bazy danych;

ukrycie prawdziwej lokalizacji obiektu bazy danych;

nadanie obiektowi nazwy, ktra jest mniej skomplikowana lub atwiejsza


w uyciu.

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.

Polecenie create synonym przykad


Oto przykad tworzenia synonimu prywatnego:

<'7;A)1A7+
#8,29'2);4<'7;A)1A7+
&
63,3A9+,-.'/0.1,2+,364

Teraz zostanie podjta prba wykonania zapytania na tabeli :



#H+1A)2+';A>

#H+1A)2+';A
#
 1*A3AA$J
 @C!J.'()*'*0(D)2-D);.61'3A)A-.3A)<)4

W nastpnym kroku zostanie utworzony synonim:



+1A)2+';A
#8,2+1A)2+';A
&
63,3A9+,-.'/0.1,2+,364

Ponowna prba wywietlenia zawartoci tabeli  przyniesie nastpujcy rezultat:



#H+1A)2+';A>

Rozdzia 4.  Obiekty baz danych



  
@@@@@@@@@@@@@@@@@@@@@@






105

   
@@@@@@@@@@@@@@@@@@@@
H H
  
 


Sekwencja szybki sposb


uzyskania unikatowej liczby
Sekwencje to bardzo wydajny sposb generowania szeregu kolejnych liczb. Czsto w relacyjnych bazach danych pojawia si potrzeba utworzenia unikatowej liczby, ktra bdzie penia rol klucza gwnego. Przykadowo, uytkownik dostaje informacj na temat
moliwoci bardzo atrakcyjnego zakupu jakiej spki .com. Dzwoni wtedy do maklera
i skada zlecenie zakupu. Z t transakcj bdzie powizany unikatowy numer zlecenia,
ktry zostanie utworzony wanie przy uyciu sekwencji. Sekwencje s niezalene od
jakichkolwiek tabel i s przechowywane w pamici w oczekiwaniu na danie uycia.
W przeszoci, gdy nie istniay jeszcze obiekty bazy danych o nazwie sekwencje, uytkownik tworzy tabele z kolumn zawierajc liczby porzdkowe. Tabele te stanowiy
gwne wskie gardo w wielu zaawansowanych aplikacjach. Zanim uytkownik zablokowa tabel, sprawdzi biec warto w kolumnie, zwikszy j o 1 a nastpnie zwolni
blokad, akcje byy ju sprzedane. Obiekt sekwencji jest skadowany w pamici i jest
udostpniany natychmiast na danie uytkownika.

Polecenie create sequence przykad


W tym przykadzie instrukcja  4555 informuje baz danych, e po wyczerpaniu
wartoci sekwencji umieszczonych w jej buforze musi ona utworzy kolejnych 1 000
numerw. Naley pamita, e zamknicie bazy danych powoduje usunicie zawartoci
bufora sekwencji. Efektem bd luki w sekwencji liczb.

 -);+)-D2,<


 
$
 $
  $
!# $
&
);1)37<'+,-.'/'0.1,2+,3'4

Polecenie create role


sposb zarzdzania uprawnieniami
W przeszoci przyznawanie innym uytkownikom uprawnie dostpu do aplikacji musiao by dokonywane kolejno dla poszczeglnych tabel. W kadej aplikacji dostpny
by okrelony zbir uprawnie, zalenych od tego, kim by gwny uytkownik bazy.

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.

Polecenie create role przykad


Oto bardzo prosty obiekt roli, jaki zosta uyty w przykadzie dotyczcym szpitala:

DA)*)E3A'2;'
#

H
&
,*'+,-.'/'0.1,2+,3'4

W przypadku roli pielgniarki parametr


  
6 oznacza, e nie jest potrzebny
aden dodatkowy poziom zabezpiecze ponad pocztkowe logowanie do bazy danych.
Istniej rwnie inne aspekty tej instrukcji, ktre wymagayby dodatkowych dziaa ze
strony uytkownika, zanim rola zostaaby uaktywniona.
W bazie danych Oracle mona przyznawa uytkownikom uprawnienia , 
,
  i  na dowolnych tabelach. Takie prawo jest znane jako zezwolenie na
poziomie obiektu i stanowi tylko jeden z poziomw zabezpiecze bazy danych, jakie
moe tworzy administrator. Mona wic wyobrazi sobie typowe rodowisko szpitalne, z ponad 100 tabelami, gdzie w jednej tabeli pielgniarka ma uprawnienia do wybierania i wstawiania, a lekarz ma uprawnienia do wybierania, wstawiania, aktualizowania i usuwania. Sytuacja ta powtarza si dla kadej z tabel. Zamiast przyznawania
uprawnie indywidualnie mona utworzy rol, przedzieli do niej okrelone uprawnienia, po czym przypisywa rol wszystkim wymaganym uytkownikom.

Funkcje, procedury i pakiety


Funkcje, procedury i pakiety zostan omwione w jednym podrozdziale. S to obiekty
bazy danych, ktre zawieraj kod w jzyku PL/SQL. Za pomoc tego kodu mona dostosowywa programy pod ktem wymaga okrelonych aplikacji.

Polecenie create function


Polecenie  6

pozwala tworzy obiekty bazy danych, ktre rozszerzaj
moliwoci standardowych funkcji dostpnych w bazie danych. Na przykad system
Oracle zawiera funkcj o nazwie 789. Jest to funkcja, ktra zwraca pierwiastek kwadratowy z danej liczby.

Rozdzia 4.  Obiekty baz danych

107

Funkcja umoliwia wywoywanie programu w jzyku PL/SQL wedug jego nazwy.


Wan cech wyrniajc funkcje jest to, e wynikiem ich dziaania musi by zawsze
jaka warto.

Polecenie create function przykad


Oto tabela &-,&.-.
-)*)7.#82,93,163'(,2>
 
?



@@@@@@@@@@@@@@@@@@ @@@
@@@@@@@@@@
?'7);

$@
@$
,1';

$@ @$
,1'*-;A


$"@@$
3A'

$@ @$
'2);

$@@$
A)-A);

$$@ ?@$

,9);

$"@@$
'1)*

@
@$
+(6-+);

"@ @$
9'E5'

B@ @$
('-A'

G@ ?@$
$$1A)2-+6+,-.'/,16(2'367:4

 
@@@@@@@@@@@@


!
"
B
C
""


F"
G

Teraz zostanie utworzony program, ktry bdzie sumowa informacje o wynagrodzeniach


dla danego wojewdztwa i zwraca czn wielko wynagrodzenia.

H 
5,5'<163'E25*'1,<1);,51,<  

  
163'E21,<  $$>
! 
"
-09163'E2,5+
B
163'E21,<
FH3,163'(,2
G 1,<=1);,51,<>
C
163'E21,<>
$>
$$&
H03;7<'+,-.'/'0.1,2+,3'4

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

Polecenie create procedure


Procedura to zbir programw w jzyku PL/SQL, ktre s wywoywane wedug nazw.
W odrnieniu od funkcji wynikiem dziaania procedury nie musi by zwrcenie jakiej
wartoci. Procedura moe ale nie musi zawiera argumenty wejciowe i wyjciowe.

Polecenie create procedure przykad


W poniszym przykadzie procedura zawiera parametr wejciowy i wyjciowy.

   
    ?
1);,51,<L'27:'2
16*A7+('D2'7
A3.)E)2
!
" 
B16<-7A)L'27:'2B>
F
G 
C
$-)*)7.7,03.)4A5D2'7
$$A3.,16*A7+('D2'7
$82,9D2'7,13A;)
$1,<$!1:)2))4;,51,<=-4;,51,<
$"'35-4;,51,<=1);,51,<>
$B
$F
$GI

$C1:)3,.:)2-.:)3
5(9-,0.D0.4D0.*A3)%   
    ?%NNNN>
$#>
&
2,7)502'+,-.'/'0.1,2+,3'4

Polecenie create package


Pakiet to zbir zawierajcy zarwno procedury, jak i funkcje. S one grupowane gwnie ze wzgldu na podobiestwo realizowanych zada. Wszystkie wewntrzne procedury
i funkcje s zapisane w sowniku danych jako pojedynczy pakiet skadowany.

Polecenie create package przykad


Pokazany poniej kod pakietu zawiera kilka funkcji i jedn procedur.

    D;.D2'71,< 
 0-.'**A7+()D2'71E1,<1);,51,<  16*A7+('D2'7
>
H 
5,5'<163'E25*'1,<1);,51,<  
!
  >
"H 
0-.'*A9A)A3'+1A-;,1)A9A)  1)3'+1A-;,  
B
  >
F#D;.D2'71,<>
&
';A).+,-.'/0.1,2+,364

Rozdzia 4.  Obiekty baz danych

109

Inne obiekty baz danych


W poniszych sekcjach omwiono pewne dodatkowe obiekty baz danych, z ktrymi
moe zetkn si uytkownik. Niektre z nich podkrelaj moliwoci funkcjonalne bazy
danych Oracle9i, inne za Czytelnik zapewne napotka podczas pracy z baz. Zaprezentowane przykady pomog zrozumie zasady posugiwania si tymi obiektami.

Polecenie create operator


Polecenie   suy do tworzenia nowego operatora w bazie danych. W rozdziale 8. dokadniej omwiono operatory 

, 
  i 
 . Komenda 
  umoliwia tworzenie nowych operatorw i ich powiza. Operator moe z kolei
zawiera odwoania do funkcji, pakietw i innych elementw.

Polecenie create operator przykad


Warto zwrci uwag, w jaki sposb operator odwouje si do procedury  

 # .



D,5'<A9A)A3'+1A-;,
 
L'27:'2L'27:'2
L'27:'2
! WUVCNAKOKGAKAPC\YKUMQ>
D)2'.,20.1,2+,364

Odwoanie do funkcji  


 #  w nowo utworzonym operatorze wyglda
nastpujco.

 H 
0-.'*A9A)A3'+1A-;,
1)A9A)  
1)3'+1A-;,  
!
  
"16A9A)A3'+1A-;,  ">
B
F 
G
C
A3A.7'D*.2A92.2A91)A9A)NN%%NN
$A3A.7'D*.2A92.2A91)3'+1A-;,
$$
16A9A)A3'+1A-;,
$H7'*,-7>
$
$!
16A9A)A3'+1A-;,>
$"#>
&
H03;7<'+,-.'/'0.1,2+,3'4

Polecenie create directory


Czasami zewntrzne obiekty bazy danych warto przechowywa w katalogu. Najczciej
rozwizanie takie stosowane jest w przypadku duych plikw, zwanych czsto plikami

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.

Polecenie create directory przykad


Jest to typowe zastosowanie instrukcji  . Katalog ten bdzie zawiera
wszystkie pliki binarne uytkownika.
72)'.),22)D*'7)
9,<)D*A;A(A3'23)'-%&5&,2'7*):,9)&DA7.02)%>
'.'*,E+,-.'/0.1,2+,364

Polecenie create library


Instrukcja  suy do tworzenia obiektu bazy danych zwizanego ze wspuytkowan bibliotek systemu operacyjnego. Dziki temu ze skadni jzyka SQL i PL/SQL
mona wywoywa funkcje jzykw (takich jak funkcje jzykw C czy COBOL) i procedur trzeciej generacji, ktre nastpnie mog kierowa wywoania do bibliotek. Zanim
wprowadzono ten obiekt, uytkownik musia samodzielnie wpisywa w kodzie kade
odwoanie do biblioteki.

  9,<'(A(*A,.);''-%&5&,2'7*):,9)&7*A(%>
&
A(*A,.);'+,-.'/'0.1,2+,3'4

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.

Polecenie create database link przykad


W tym przykadzie logowanie w zdalnej bazie danych zostanie przeprowadzone dla uytkownika . Ponadto zostanie wykorzystany serwis internetowy emile.corp.Ntirety.com.


D,1A'+'3A)('+65'367:E020


E020
H E020
# %)9A*)47,2D43.A2).647,9%
&
,1AQ+'3A)('+,5'3,1)+,-.'/,0.1,2+,3)4

Rozdzia 4.  Obiekty baz danych

111

Teraz nowo utworzone powizanie zostanie uyte do znalezienia pewnych danych.



#
#H;,*,2RD,1A'+'3A)('+65'367:E020
&

@@@@@@@@@






@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+)21,36
A)*,36
A)(A)-;A
+'236

Powizanie bazodanowe to swego rodzaju cze umoliwiajce przesyanie danych w obie


strony. Mona z niego korzysta na wiele sposobw. W przykadzie poniej zostanie ono
uyte w celu wstawienia danych do zdalnej bazy danych:

A3.,;,*,2RD,1A'+'3A)('+65'367:E020A5;,*,20,DA-;,*,20
#L'*0)-% %% ,*.6%
&
$1A)2-++,-.'/0.1,2+,364

Teraz zostan zaktualizowane dane w zdalnej bazie danych:


 
;,*,2RD,1A'+'3A)('+65'367:E020
-).A5;,*,20=% %
#1:)2)A5;,*,20=% %
&
$1A)2-++,-.'/+9,568A;,1'364

Mona rwnie usun dane ze zdalnej bazy danych:



H;,*,2RD,1A'+'3A)('+65'367:E020
#1:)2)A5;,*,20=% %
&
$1A)2-++,-.'/0-03AO.64

Za pomoc powizania bazodanowego mona rwnie uzyskiwa dostp do danych innego


uytkownika, umieszczonych w zdalnej bazie danych. Jedynym ograniczeniem s uprawnienia konta systemu Oracle9i uywanego do zalogowania si w zdalnej bazie danych.

#
#H9A7:'*43,1';RD,1A'+'3A)('+65'367:E020
&
 
@@@@@@@@@@@@@@
$


!
"

  
@@@@@@@@@@@@@@
F
$$
$!$
$
$

   
@@@@@@@@@@@@@@
$
$!


CCCC

112

Cz II  Czas na konkrety

Polecenie create cluster


Klastry stanowi alternatywn metod fizycznego przechowywania danych. Tabele umieszczone w obiekcie klastra mog by przechowywane z okrelonymi wstpnymi zczeniami.
Rozwizanie to jest szczeglnie przydatne wtedy, gdy kilka tabel jest uywanych zawsze
razem. Dobrym przykadem jest na przykad poczenie odczytw licznikw zuycia wody
z informacjami na temat mieszkacw danego mieszkania czy domu. Operator sieci wodocigowej nigdy nie uywa danych o zuyciu wody w oderwaniu od informacji o osobach, ktre przebywaj stale pod danym adresem.
Naley pamita, e warto obu tabel jest przechowywana razem. Oznacza to, e gdy
uytkownik bdzie chcia zapozna si z informacjami dotyczcymi osb stale zamieszkujcych dan lokalizacj, baza danych bdzie zawsze odczytywaa rwnie dane dotyczce zuycia wody.

Polecenie create cluster przykad


Najpierw naley utworzy klucz klastra:

 
;*-9A)-+;'3A)7
309)29A)-+;'37'309()2
-A+)"$
!#-.,2'E)A3A.A'*$;3)M.";
&
*'-.)2+,-.'/0.1,2+,364


9A)-+;'376
329A)-+;  
A9A)9A)-+;  
!3'+19A)-+;  
"5'.'029A)-+;5'.)
B9A'-.,+'99A)-+;  
F;,51,<  
G# 
;*-9A)-+;'3A)7329A)-+;
&

'()*'+,-.'/'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.

Rozdzia 4.  Obiekty baz danych

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

skadowan instrukcj SQL.


A. perspektywa
B. tabela
C. indeks
D. perspektywa materializowana
3. Z ___________ zawsze musi by zwracana warto.
A. pakietu
B. procedury
C. funkcji
D. perspektywy
4. ____________ umoliwia korzystanie z danych przechowywanych w zdalnej

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

Vous aimerez peut-être aussi