Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00586 009788 10451077 na godz. na dobę w sumie
Oracle9i. Przewodnik dla początkujących - książka
Oracle9i. Przewodnik dla początkujących - książka
Autor: , , Liczba stron: 456
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-996-7 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> bazy danych >> oracle - programowanie
Porównaj ceny (książka, ebook, audiobook).

Poznaj najnowszą edycję bazy danych Oracle

Systemy baz danych Oracle, będące podstawą współczesnego e-biznesu, to złożone i skomplikowane rozwiązania. Jeśli chcesz poznać ich ogromny potencjał, to jest to właściwy podręcznik, autoryzowany przez firmę Oracle.

Książka 'Oracle9i. Przewodnik dla początkujących', wypełniona jest do ostatniej strony użytecznymi wskazówkami i przykładami. Poznasz język proceduralny PL/SQL i podstawowe zagadnienia związane z administracją bazy danych, po czym następuje omówienie zaawansowanych technik zarządzania i manipulowania danymi. To kompletny podręcznik -- prowadzi Cię od konfiguracji bazy danych, tworzenia tabel i wykonywania zapytań, przez tworzenie formularzy i raportów, aż po partycjonowanie danych i zarządzanie uprawnieniami użytkowników. Dodatkowo książka zawiera omówienie narzędzi SQL*Plus, Oracle Enterprise Manager i Oracle Summary Machine.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Oracle9i. Przewodnik dla pocz¹tkuj¹cych Autorzy: Michael Abbey, Ian Abramson, Michael Corey T³umaczenie: Przemys³aw Szeremiota (rozdzia³y 11 – 17, dodatek A), Piotr Ďwierczyñski (rozdzia³y 1 – 10) ISBN: 83-7197-996-7 Tytu³ orygina³u: Oracle9i: A Beginner s Guide Format: B5, stron: 456 Obejmuje wydania Oracle 7.x, 8i, 9i Systemy baz danych Oracle, bêd¹ce podstaw¹ wspó³czesnego e-biznesu, to z³o¿one i skomplikowane rozwi¹zania. Jeġli chcesz poznaæ ich ogromny potencja³, trzymasz w rêku w³aġciwy podrêcznik, autoryzowany przez firmê Oracle. Ksi¹¿kê „Oracle9i. Przewodnik dla pocz¹tkuj¹cych”, wype³nion¹ do ostatniej strony u¿ytecznymi wskazówkami i przyk³adami. Poznasz jêzyk proceduralny PL/SQL i podstawowe zagadnienia zwi¹zane z administracj¹ bazy danych, po czym nastêpuje omówienie zaawansowanych technik zarz¹dzania i manipulowania danymi. To kompletny podrêcznik - prowadzi Ciê od konfiguracji bazy danych, tworzenia tabel i wykonywania zapytañ, przez tworzenie formularzy i raportów, a¿ po partycjonowanie danych i zarz¹dzanie uprawnieniami u¿ytkowników. Dodatkowo ksi¹¿ka zawiera omówienie narzêdzi 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 zasobów Oracle Technology Network, twórz zg³oszenia TAR, iTAR, korzystaj z serwisu MetaLink • Twórz tabele i raporty, projektuj i uruchamiaj aplikacje korzystaj¹ce z jêzyków SQL i PL/SQL • Poznaj przeznaczenie plików danych, dzienników odtwarzania i plików kontrolnych • Po³¹cz komputery w sieæ Oracle Net i korzystaj z mo¿liwoġci oferowanych przez przetwarzanie rozproszone • Zarz¹dzaj olbrzymimi tabelami, gromadĥ dane w hurtowni danych i przeprowadzaj zaawansowane analizy zbiorcze za pomoc¹ narzêdzi i funkcji Oracle Summary Engine • Buduj bazy danych za pomoc¹ zapytañ DDL i DML Spis treści Informacje o Autorach ...................................................e........................ 13 Wprowadzenie ...................................................e.................................... 15 Część I Pierwsze kroki...................................................e....................17 Rozdział 1. Oracle: firma i produkty ...................................................e...................... 19 Terminologia ...................................................a...................................................a.......... 19 Firma Oracle Corporation: historia...................................................a............................... 19 1977: początek ...................................................a...................................................a.. 20 1978: powstaje Relational Software Inc....................................................a................. 21 1979: pierwsza komercyjna baza danych trafia na rynek ............................................. 21 1980: powstaje firma Oracle Systems ...................................................a..................... 21 1981 – 1983: pierwszy system zarządzania relacyjną bazą adanych, działający na komputerach typu mainframe i minikomputerach ................................. 22 1984: wersja 4. systemu Oracle — spójność odczytu.................................................. 22 1985: Oracle wchodzi w sektor aplikacji...................................................a................. 23 1986: pierwszy system zarządzania bazą danych z funkcjami bazy rozproszonej........... 23 1987: intensywny rozwój Oracle...................................................a............................ 24 1988: Oracle Financials/Oracle CASE...................................................a.................... 24 1989: powstanie Oracle 6.2 ...................................................a................................... 24 1990 – 1991: przekroczona granica 1 mld dolarów ...................................................a.. 25 1992: Ray Lane w Oracle...................................................a...................................... 25 1993: rosnąca rola działu aplikacji ...................................................a......................... 26 1994 – 1995: 2 miliardy sprzedaży i komputer sieciowy.............................................. 26 1996: Oracle wchodzi na rynek detaliczny ...................................................a.............. 27 1997: pojawia się pakiet Oracle8...................................................a............................ 27 1998: obsługa systemu Linux...................................................a................................. 28 1999: pojawia się pakiet Oracle8i...................................................a........................... 28 2000: numer jeden...................................................a................................................ 28 Aktualna oferta ...................................................a...................................................a....... 29 Pytania do rozdziału 1. ...................................................a............................................... 30 Rozdział 2. Mechanizmy uzyskiwania pomocy ...................................................e....... 31 Terminologia ...................................................a...................................................a.......... 31 Oracle Support Services...................................................a.............................................. 33 Zgłaszanie wniosków TAR do działu OSS (starszy sposób) .............................................. 35 Przekazywanie dokumentacji towarzyszącej zgłaszaniu wniosków TAR ...................... 36 6 Oracle 9i. Przewodnik dla początkujących Serwis MetaLink...................................................a...................................................a..... 38 Biblioteki techniczne ...................................................a............................................ 39 Fora ...................................................a...................................................a................. 41 Wnioski iTAR...................................................a...................................................a......... 44 Informacje reliktowe klienta ...................................................a.................................. 44 Krótki opis wniosku TAR ...................................................a..................................... 45 Sieć Oracle Technology Network ...................................................a................................ 47 Serwis Oracle AppsNet...................................................a............................................... 49 Grupy dyskusyjne i serwery list dyskusyjnych ...................................................a.............. 51 Grupy dyskusyjne ...................................................a................................................ 52 Serwery list dyskusyjnych...................................................a..................................... 55 Dokumentacja on-line...................................................a................................................. 59 Inne witryny ...................................................a...................................................a........... 60 Wyszukiwarki internetowe ...................................................a.................................... 61 Witryny godne szczególnego polecenia ...................................................a.................. 63 Pytania do rozdziału 2. ...................................................a............................................... 65 Rozdział 3. Serwer Oracle......................................e.................................................. 67 Terminologia ...................................................a...................................................a.......... 67 Architektura serwera ...................................................a.................................................. 69 Pomocnicze procesy drugoplanowe...................................................a.............................. 71 Proces zapisujący do plików danych (dbw0) ...................................................a........... 71 Monitor procesów (pmon)...................................................a..................................... 72 Monitor systemu (smon) ...................................................a....................................... 72 Proces zapisujący do plików dziennika powtórzeń (lgwr)............................................ 73 Proces punktu kontrolnego (ckpt)...................................................a........................... 73 Odtwarzacz (reco)...................................................a................................................ 73 Archiwizator (arc0) ...................................................a.............................................. 73 Plik INIT.ora ...................................................a...................................................a.......... 74 Wpisy dotyczące położenia plików...................................................a......................... 75 Wpisy dotyczące ograniczeń...................................................a.................................. 76 Wpisy dotyczące funkcji ...................................................a....................................... 76 Zmiana wartości parametrów...................................................a................................. 77 Plik kontrolny...................................................a...................................................a......... 79 Dzienniki powtórzeń ...................................................a.................................................. 79 Pliki danych bazy danych ...................................................a........................................... 82 Segmenty wycofania/ przestrzeń tabel cofania ...................................................a.............. 83 Najważniejsze struktury pamięci...................................................a.................................. 84 Bufor danych ...................................................a...................................................a.... 84 Bufor bibliotek...................................................a...................................................a.. 85 Blokady i zatrzaski ...................................................a...................................................a.. 86 Blokady...................................................a...................................................a............ 86 Zatrzaski...................................................a...................................................a........... 87 Tworzenie nowej bazy danych Oracle9i ...................................................a....................... 88 Pytania do rozdziału 3. ...................................................a............................................... 90 Część II Czas na konkrety ...................................................e...............91 Rozdział 4. Obiekty baz danych ...................................................e............................ 93 Terminologia ...................................................a...................................................a.......... 93 Tabele — miejsce przechowywania danych...................................................a.................. 95 Polecenie create table — przykład...................................................a.......................... 95 Polecenie create table as — przykład...................................................a...................... 96 Perspektywy — niestandardowy wybór jednej lub większej liczby tabel............................. 97 Polecenie create view — przykład...................................................a.......................... 97 Spis treści 7 Perspektywy materializowane — perspektywy, w których są przechowywane dane ............ 98 Polecenie create materialized view (dawniej snapshot) — przykład.............................. 98 Modyfikowanie zapytań...................................................a........................................ 99 Indeksy — szybki sposób korzystania z danych...................................................a............ 99 Zalety wstępnego sortowania...................................................a............................... 100 Indeksy unikatowe i nieunikatowe...................................................a........................ 100 Reguła 95/5 ...................................................a...................................................a.... 101 Indeks bitmapowy — indeks dla grup wierszy o niewielkim zróżnicowaniu................ 101 Wyzwalacze — programy inicjowane przez zdarzenia ...................................................a. 101 Polecenie create trigger — przykład...................................................a..................... 102 Synonimy — pseudonimy obiektów...................................................a........................... 104 Polecenie create synonym — przykład ...................................................a................. 104 Sekwencja — szybki sposób uzyskania unikatowej liczby............................................... 105 Polecenie create sequence — przykład ...................................................a................. 105 Polecenie create role — sposób zarządzania uprawnieniami ............................................ 105 Polecenie create role — przykład...................................................a......................... 106 Funkcje, procedury i pakiety ...................................................a..................................... 106 Polecenie create function...................................................a..................................... 106 Polecenie create procedure ...................................................a.................................. 108 Polecenie create package...................................................a..................................... 108 Inne obiekty baz danych ...................................................a........................................... 109 Polecenie create operator ...................................................a.................................... 109 Polecenie create directory...................................................a.................................... 109 Polecenie create library...................................................a....................................... 110 Powiązania bazodanowe ...................................................a..................................... 110 Polecenie create cluster...................................................a....................................... 112 Pytania do rozdziału 4. ...................................................a............................................. 113 Rozdział 5. SQL*Plus 101............................................e.......................................... 115 Jak uzyskać dostęp do programu SQL*Plus ...................................................a................ 115 Dostęp za pomocą wiersza polecenia...................................................a.................... 116 Dostęp przy użyciu ikon...................................................a...................................... 117 Kończenie sesji programu SQL*Plus...................................................a.................... 117 Instrukcje Data Definition Language (DDL) ...................................................a............... 117 Instrukcja create/drop ...................................................a......................................... 118 Typy danych...................................................a...................................................a... 119 Komenda describe...................................................a...................................................a. 119 Wartość not null ...................................................a................................................. 120 Instrukcje Data Manipulation Language (DML)...................................................a.......... 120 Instrukcja insert..................................................a...................................................a 121 Instrukcja select ...................................................a................................................. 122 Środowisko programu SQL*Plus ...................................................a......................... 127 Łączenie tabel ...................................................a...................................................a....... 131 Klucze główne i klucze obce ...................................................a............................... 131 Klauzula break on ...................................................a...................................................a. 132 Klauzula break on z opcją skip ...................................................a............................ 133 Obliczanie wartości w kolumnach w punktach łamania ............................................. 134 Komenda break on report...................................................a.................................... 135 Pytania do rozdziału 5. ...................................................a............................................. 136 Rozdział 6. PL/SQL 101 ...................................................e..................................... 139 Terminologia ...................................................a...................................................a........ 140 PL/SQL: język programowania opracowany przez firmę Oracle ...................................... 141 Zestaw znaków języka PL/SQL...................................................a................................. 143 Obsługiwane znaki ...................................................a............................................. 143 Operatory arytmetyczne i relacyjne ...................................................a...................... 143 8 Oracle 9i. Przewodnik dla początkujących Struktura języka PL/SQL...................................................a.......................................... 144 Zmienne języka PL/SQL...................................................a..................................... 145 Struktury kontrolne ...................................................a.................................................. 148 Struktury logiczne if ...................................................a........................................... 149 Wyrażenia case ...................................................a.................................................. 152 Pętle...................................................a...................................................a............... 152 Język SQL w programach w języku PL/SQL...................................................a.............. 155 Kursory...................................................a...................................................a.......... 155 Pętla for kursora...................................................a................................................. 157 Obsługa wyjątków...................................................a...................................................a. 158 Składowane procedury i funkcje ...................................................a................................ 160 Składowane procedury...................................................a........................................ 160 Funkcje ...................................................a...................................................a.......... 164 Podstawowe mechanizmy usuwania błędów ...................................................a............... 165 Dalsze kroki...................................................a...................................................a.......... 166 Pytania do rozdziału 6. ...................................................a............................................. 167 Rozdział 7. DBA 101 ...................................................e.......................................... 169 Terminologia ...................................................a...................................................a........ 169 Co to jest baza danych? ...................................................a............................................ 170 Co to jest instancja Oracle? ...................................................a....................................... 171 Globalny obszar systemu (SGA)...................................................a.......................... 171 Procesy drugoplanowe systemu Oracle ...................................................a................. 172 Polecenie startup open ...................................................a........................................ 173 Polecenie shutdown...................................................a............................................ 175 Przestrzeń tabel w Oracle9i ...................................................a....................................... 176 Tworzenie przestrzeni tabel — klauzula extent management dictionary...................... 176 Tworzenie przestrzeni tabel — polecenie extent management local autoallocate.......... 177 Polecenie create undo tablespace ...................................................a......................... 178 Polecenie alter tablespace add data file ...................................................a................. 179 Polecenie alter tablespace offline ...................................................a......................... 179 Usuwanie przestrzeni tabel ...................................................a.................................. 180 Segmenty wycofania...................................................a................................................. 180 Polecenie create rollback segment...................................................a........................ 180 Polecenie alter rollback segment online ...................................................a................ 182 Ręczne zmniejszanie segmentu wycofania ...................................................a............ 182 Polecenie drop rollback segment...................................................a.......................... 183 Dzienniki powtórzeń ...................................................a................................................ 183 Zwielokrotnione pliki dziennika powtórzeń ...................................................a.......... 183 Usuwanie dziennika powtórzeń...................................................a............................ 184 Dodawanie dziennika powtórzeń...................................................a.......................... 185 Pliki kontrolne — lista kontrolna bazy danych...................................................a............ 185 Tworzenie plików kontrolnych ...................................................a............................ 186 Tworzenie konta użytkownika...................................................a................................... 186 Polecenie grant connect, resource ...................................................a........................ 187 Pytania do rozdziału 7. ...................................................a............................................. 188 Część III Wykraczamy poza podstawy................................................189 Rozdział 8. Więcej o programie SQL*Plus..............................e................................. 191 Terminologia ...................................................a...................................................a........ 192 Wdrażanie programu SQL*Plus w środowisku produkcyjnym......................................... 192 Umieszczanie komentarzy w kodzie przy użyciu instrukcji rem, -- i /*...*/ ................. 192 Pliki bazowe programu SQL*Plus...................................................a........................ 193 Spis treści 9 Operatory zbiorowe union, intersect i minus ...................................................a............... 196 Operator union ...................................................a...................................................a 197 Operator union all...................................................a............................................... 197 Operator minus ...................................................a.................................................. 197 Operator intersect...................................................a............................................... 198 Nie mieszaj ogórków z dżemem ...................................................a.......................... 198 Edytowanie wiersza poleceń w programie SQL*Plus...................................................a... 198 Korzystanie z edytora wiersza polecenia...................................................a............... 199 Gdyby tak można było użyć edytora VI lub Emacs................................................... 199 Tabela dual...................................................a...................................................a........... 200 Standardowe funkcje Oracle...................................................a...................................... 200 Funkcje i operatory matematyczne...................................................a....................... 200 Funkcje znakowe ...................................................a............................................... 202 Dane typu date...................................................a...................................................a 203 Funkcje daty w programie SQL*Plus ...................................................a................... 204 Funkcje grupowe...................................................a................................................ 206 Wyszukiwanie powtarzających się danych za pomocą klauzuli group by .................... 209 Usuwanie powtarzających się danych za pomocą funkcji group by ............................ 210 Generowanie kodu SQL za pomocą innego fragmentu kodu SQL.................................... 212 Generowanie plików danych za pomocą kodu SQL.................................................. 213 Zapytanie wewnątrz zapytania...................................................a................................... 214 Instrukcja decode ...................................................a...................................................a.. 216 Aktualizacja przy użyciu instrukcji update ...................................................a............ 217 Pytania do rozdziału 8. ...................................................a............................................. 218 Rozdział 9. Więcej o języku PL/SQL ...................................................e.................... 219 Terminologia ...................................................a...................................................a........ 220 Pakiety i przeciążania podprogramu...................................................a........................... 220 Zaawansowane funkcje obsługi błędów w programach w języku PL/SQL........................ 222 Wyjątki definiowane przez użytkownika...................................................a............... 222 Zmienne przeznaczone do obsługi błędów dostępne w oprogramowaniu Oracle .......... 223 Transakcje autonomiczne...................................................a.......................................... 225 Bezpieczeństwo danych z poziomu PL/SQL...................................................a............... 226 Pakiety dostarczone przez firmę Oracle ...................................................a...................... 226 Pakiet utl_file...................................................a...................................................a.. 227 Dynamiczny SQL...................................................a............................................... 230 Pytania do rozdziału 9. ...................................................a............................................. 233 Rozdział 10. Więcej o administratorze bazy danych .................................................. 235 Terminologia ...................................................a...................................................a........ 236 Tworzenie kopii zapasowych i odtwarzanie ...................................................a................ 236 Eksport ...................................................a...................................................a................ 236 Rola mechanizmu eksportu w tworzeniu kopii zapasowych....................................... 237 Parametry programu eksportu...................................................a.............................. 237 Tryby pracy programu eksportu...................................................a........................... 239 Typy eksportu...................................................a...................................................a. 243 Import...................................................a...................................................a.................. 243 Rola importu w odtwarzaniu...................................................a................................ 243 Parametry programu importu...................................................a............................... 244 Tryby działania programu importu ...................................................a....................... 245 Typy importu ...................................................a...................................................a.. 247 Funkcje odtwarzania nośników...................................................a.................................. 247 Tworzenie kopii zapasowych „na gorąco” i „na zimno” ............................................ 248 Praca w trybie archiwizacji dzienników powtórzeń...................................................a 249 Zapisywanie kopii zapasowej „na gorąco” ...................................................a............ 251 Odtwarzanie nośników — przykład...................................................a...................... 252 Pytania do rozdziału 10...................................................a............................................. 255 10 Oracle 9i. Przewodnik dla początkujących Rozdział 11. Oracle Enterprise Manager...............................................e.................... 257 Terminologia ...................................................a...................................................a........ 257 Możliwości OEM — przegląd ...................................................a................................... 258 Uruchamianie ...................................................a...................................................a....... 261 Zatrzymanie...................................................a...................................................a.......... 263 Zarządzanie przestrzenią tabel ...................................................a................................... 264 Zmiana rozmiaru pliku danych ...................................................a............................ 266 Dodanie pliku danych ...................................................a......................................... 267 Zmniejszanie rozmiaru pliku danych...................................................a.................... 267 Zarządzanie kontami użytkowników ...................................................a.......................... 268 Tworzenie konta użytkownika ...................................................a............................. 268 Uprawnienia do zajmowania przestrzeni w bazie danych........................................... 270 Przyznawanie uprawnień do obiektów bazy danych.................................................. 271 Zarządzanie obiektami ...................................................a.............................................. 273 Zarządzanie obiektami — arkusz SQL*Plus Worksheet............................................ 275 Pytania do rozdziału 11...................................................a............................................. 277 Rozdział 12. Przetwarzanie rozproszone ...................................................e................ 279 Terminologia ...................................................a...................................................a........ 279 Partycjonowanie aplikacji z wykorzystaniem przetwarzania rozproszonego...................... 280 Oracle Net...................................................a...................................................a............ 281 Plik listener.ora ...................................................a.................................................. 281 Plik tnsnames.ora ...................................................a............................................... 283 Program Network Configuration Assistant...................................................a............ 284 Rozmieszczenie pliku tnsnames.ora ...................................................a..................... 288 Nawiązywanie połączenia w środowisku Oracle Net................................................. 289 Pytania do rozdziału 12...................................................a............................................. 290 Część IV I jak Internet...................................................e....................293 Rozdział 13. I w Oracle9i...................................................e...................................... 295 Terminologia ...................................................a...................................................a........ 295 Internetowa baza danych Oracle ...................................................a................................ 297 Komunikacja z bazą danych...................................................a................................ 298 Java w bazie danych...................................................a................................................. 301 Wysoka dostępność...................................................a.................................................. 302 Zabezpieczenie przed awarią systemu ...................................................a.................. 303 Zabezpieczenie przed awarią dysku...................................................a...................... 304 Zabezpieczenie przed błędami użytkownika...................................................a.......... 304 Zarządzanie planowanymi przestojami ...................................................a................. 305 Architektura Real Application Clusters...................................................a....................... 306 Internetowy system plików (iFS) ...................................................a............................... 307 Pytania do rozdziału 13...................................................a............................................. 308 Rozdział 14. Wszędzie WWW ...................................................e................................ 309 Terminologia ...................................................a...................................................a........ 309 Serwer aplikacji Oracle9i ...................................................a.......................................... 311 Komponenty Communication Services ...................................................a................. 313 Komponenty Business Logic Services ...................................................a.................. 316 Komponenty Presentation Services ...................................................a...................... 317 Usługi buforowania ...................................................a............................................ 321 Usługi zarządzania treścią ...................................................a................................... 323 Usługi Oracle Portal ...................................................a........................................... 323 Usługi wspomagania decyzji ...................................................a............................... 325 Java w bazie danych...................................................a................................................. 326 Pytania do rozdziału 14...................................................a............................................. 329 Spis treści 11 Część V Oracle9i dla już nie początkujących ....................................331 Rozdział 15. Formularze i raporty...................................................e.......................... 333 Terminologia ...................................................a...................................................a........ 333 Przykładowe tabele ...................................................a.................................................. 334 Oracle Forms i Oracle Reports — wprowadzenie ...................................................a........ 335 Oracle Forms i Oracle Reports — składniki ...................................................a.......... 335 Inicjowanie połączenia z bazą danych ...................................................a.................. 336 Formularze — Forms Builder...................................................a.................................... 336 Kreator bloku danych ...................................................a......................................... 338 Kreator układu ...................................................a...................................................a 339 Edycja istniejącego formularza ...................................................a............................ 342 Raporty — Raport Builder ...................................................a........................................ 348 Kreator Report Wizard...................................................a........................................ 348 Modyfikacja raportu ...................................................a........................................... 351 Pytania do rozdziału 15...................................................a............................................. 353 Rozdział 16. Partycjonowanie danych ...................................................e................... 355 Terminologia ...................................................a...................................................a........ 355 Po co partycjonować dane? ...................................................a....................................... 356 Rozmiar woluminu danych...................................................a.................................. 357 Łatwość zarządzania partycjonowanymi danymi ...................................................a... 358 Zwiększenie wydajności...................................................a...................................... 358 Partycjonowanie zakresowe ...................................................a...................................... 359 Wybór klucza partycjonowania...................................................a............................ 359 Zakresowe partycjonowanie tabeli — kod SQL...................................................a..... 362 Indeksowanie tabel partycjonowanych ...................................................a....................... 364 Indeksy partycjonowane lokalnie ...................................................a......................... 364 Indeksy partycjonowane globalnie ...................................................a....................... 367 Indeks lokalny czy globalny?...................................................a............................... 368 Indeksy partycjonowane prefiksowane i nieprefiksowane.......................................... 371 Partycjonowanie według listy...................................................a.................................... 371 Partycjonowanie haszowane...................................................a...................................... 373 Jaki zastosować model partycjonowania? ...................................................a................... 374 Liczba wierszy ...................................................a...................................................a 374 Metody dostępu ...................................................a................................................. 376 Model partycjonowania hybrydowego...................................................a.................. 377 Pytania do rozdziału 16...................................................a............................................. 378 Rozdział 17. Hurtownia danych. Funkcje analizy zbiorczej ......................................... 381 Terminologia ...................................................a...................................................a........ 382 Czym jest hurtownia danych?...................................................a.................................... 383 Projektowanie hurtowni danych...................................................a................................. 384 Wymiarowy projekt bazy danych...................................................a......................... 386 Partycjonowanie hurtowni danych ...................................................a............................. 387 Wykonywanie kopii zapasowej hurtowni danych ...................................................a........ 390 Wypełnianie hurtowni danych ...................................................a................................... 391 Wczytywanie danych — program SQL*Loader ...................................................a.... 393 Wczytywanie danych — tabele zewnętrzne ...................................................a.......... 395 Wczytywanie danych — PL/SQL ...................................................a........................ 397 Funkcje związane z przetwarzaniem danych w hurtowniach danych Oracle9i ................... 400 Perspektywy zmaterializowane ...................................................a............................ 400 Rozszerzone operacje agregujące...................................................a............................... 413 Funkcja rollup...................................................a...................................................a. 416 Funkcja cube ...................................................a...................................................a.. 417 12 Oracle 9i. Przewodnik dla początkujących Funkcje szeregujące...................................................a............................................ 418 Funkcje ramy...................................................a...................................................a.. 422 Funkcje statystyczne...................................................a........................................... 424 Pytania do rozdziału 17...................................................a............................................. 425 Dodatki..............................................................e.................................427 Dodatek A Odpowiedzi na pytania do rozdziałów ...................................................e. 429 Pytania do rozdziału 1. ...................................................a............................................. 429 Pytania do rozdziału 2. ...................................................a............................................. 429 Pytania do rozdziału 3. ...................................................a............................................. 430 Pytania do rozdziału 4. ...................................................a............................................. 430 Pytania do rozdziału 5. ...................................................a............................................. 431 Pytania do rozdziału 6. ...................................................a............................................. 431 Pytania do rozdziału 7. ...................................................a............................................. 432 Pytania do rozdziału 8. ...................................................a............................................. 432 Pytania do rozdziału 9. ...................................................a............................................. 432 Pytania do rozdziału 10...................................................a............................................. 433 Pytania do rozdziału 11...................................................a............................................. 433 Pytania do rozdziału 12...................................................a............................................. 434 Pytania do rozdziału 13...................................................a............................................. 434 Pytania do rozdziału 14...................................................a............................................. 435 Pytania do rozdziału 15...................................................a............................................. 435 Pytania do rozdziału 16...................................................a............................................. 436 Pytania do rozdziału 17...................................................a............................................. 436 Skorowidz..........................................e.................................................. 439 Rozdział 4. Obiekty baz danych W niniejszym rozdziale omówiono definicje i przykłady obiektów baz danych, najczęściej spotykanych podczas pracy z bazami danych Oracle9i. Opisano w nim również pewne obiekty, z których użytkownik zapewne nie będzie korzystał ale o których istnieniu należy wiedzieć. Przez obiekt bazy danych można rozumieć każdy element bazy danych, który jest two- rzony za pomocą instrukcji SQL ETGCVG. Instrukcje ETGCVG i inne instrukcje DDL zostały dokładniej zaprezentowane w rozdziale 5. Pomyślne wykonanie instrukcji ETGCVG po- woduje utworzenie nowego obiektu bazy danych. Obiekty te mogą mieć różny rozmiar i format. W tym rozdziale zostaną omówione sposoby tworzenia każdego z nich. W przy- stępny zostaną również opisane role, jakie te obiekty pełnią w bazie danych. W niniejszym rozdziale omówiono następujące zagadnienia:  tabele;  perspektywy, w tym perspektywy materializowane;  indeksy;  wyzwalacze;  synonimy;  sekwencje;  role;  funkcje, procedury i pakiety. Terminologia Znajomość poniższej terminologii znacznie ułatwi zrozumienie treści zawartych w tym rozdziale. 94 Część II  Czas na konkrety  Baza danych prowadzi słownik danych, który zawiera wszystkie informacje na temat sposobu przechowywania danych w bazie, miejsca ich przechowywania oraz możliwości wykorzystania tych danych przez bazę.  DDL to skrót oznaczający język definicji danych (Data Definition Language). Są to polecenia SQL rozpoczynające się od instrukcji ETGCVG, TGXQMG, ITCPV i FTQR. Służą one do tworzenia i usuwania obiektów baz danych, jak również tworzenia zezwoleń dostępu do baz danych i ich obiektów.  DML — język przetwarzania danych (Data Manipulation Language) to polecenia SQL rozpoczynające się od instrukcji UGNGEV, KPUGTV, FGNGVG lub WRFCVG. Służą one do przetwarzania zawartości bazy danych.  Zezwolenia to uprawnienia przyznawane przez właścicieli obiektów, na mocy których inni użytkownicy mogą korzystać z danych takiego właściciela. Istnieją dwie kategorie zezwoleń: zezwolenia na poziomie obiektu i zezwolenia na poziomie systemu. Zezwolenia na poziomie obiektu oznaczają, że użytkownik może wybierać, wstawiać, aktualizować lub usuwać dane z obiektu bazy danych, takiego jak tabela. Przykładowe zezwolenia na poziomie systemu to umożliwienie użytkownikowi bazy danych nawiązywanie połączenia z bazą danych lub tworzenia obiektu w bazie.  Indeks to niewielka kopia tabeli systemu Oracle, przechowywana w bazie po wstępnym posortowaniu. Indeksy tabel umożliwiają uzyskanie bardzo szybkiego dostępu do danych zawartych w tabelach. Pełnią one rolę podobną do indeksów w książce, ułatwiających znalezienie określonego wyrazu lub wyrażenia.  Więzy integralności to zasady zapewniające logiczną spójność danych w bazie danych. Przykładowo, aby uprościć identyfikowanie danych klienta w bazie danych, przypisuje się mu unikatowy identyfikator.  Synonim to alternatywna nazwa obiektu znajdującego się w bazie danych.  Tabela to obiekt bazy danych, w którym są umieszczane dane użytkownika. W słowniku danych systemu Oracle9i przechowywane są informacje o każdej z tabel. Dzięki tym informacjom baza Oracle umożliwia obsługę danych umieszczonych w tabelach.  Wyzwalacze bazy danych to programy składowane w bazie danych, które są uaktywniane przez określone zdarzenia. Przykładem takiego zdarzenia może być wstawienie wiersza danych do tabeli.  Dzięki perspektywom użytkownicy baz danych mogą wyświetlać zawartość wybranych przez siebie tabel znajdujących się w bazie danych. Perspektywa jest tworzona na podstawie instrukcji SQL przechowywanej w tej bazie. Podczas korzystania z tej perspektyw następuje wykonanie instrukcji, a wyniki zapytania są wyświetlane na ekranie.  Rola to zbiór uprawnień przyznawanych użytkownikom. Użytkownik staje się członkiem danej roli, dziedzicząc w ten sposób należące do niej uprawnienia. Rozdział 4.  Obiekty baz danych 95 Tabele — miejsce przechowywania danych Tabela to obiekt bazy danych, w którym przechowywane są wszystkie dane. Każdy element danych załadowany do bazy danych Oracle musi zostać umieszczony w tabeli. W praktyce wszystkie informacje wymagane przez bazę danych Oracle do pracy są prze- chowywane w szeregu tabel, które są popularnie określane mianem słownika danych. Słowniki danych to swego rodzaju tabele tabel. Informują one bazę danych o rodzaju danych przechowywanych w bazie, ich położeniu oraz możliwościach wykorzystania przez bazę danych. Tabela składa się z kolumn. Każda kolumna musi mieć unikatową nazwę w obrębie ta- beli oraz musi mieć przypisany typ danych (np. XCTEJCT, FCVG lub PWODGT) wraz z okre- śleniem długości wpisu (który może być wyznaczany typem danych, jak w przypadku danych typu FCVG). Każda kolumna tabeli może być również określona parametrem PWNN lub PQV PWNN. Parametr PQV PWNN oznacza, że w kolumnie muszą zostać umieszczone dane. Innymi słowy w przypadku wierszy danych, które mają zostać umieszczone w ta- beli, wszystkie kolumny opisane parametrem PQV PWNN muszą zawierać prawidłowe wartości danych. Aby wymusić stosowanie określonych zasad spójności logicznej (zapewniających inte- gralność danych) wobec danych w tabeli, system Oracle9i umożliwia tworzenie dla po- szczególnych tabel więzów integralności i wyzwalaczy. Wyzwalacze zostaną dokładniej omówione w dalszej części tego rozdziału. Polecenie create table — przykład Oto kod tworzący przykładową tabelę o nazwie 9+ 4 #-+: 53.  4 #6 6#$.  9+ 4 #-+ + A 9+ 4 #-#+06 ) 424+/#4;6- ; )#6A 9+ 4 #-#8#4 *#4  01607..6 0# 9#A 9+ 4 #-#8#4 *#4    2. A 9+ 4 #-#A/  *#4   * - 2. 6 A 9+ 4 #-#A/ +0 /  53.  6CDGNC\QUVCđCWVYQT\QPC Tabela 9+ 4 #-+ zawiera cztery kolumny. Pierwsza kolumna nosi nazwę + A 9+ 4 #-#, a znajdujące się w niej dane będą typu KPVGIGT. Na kolumnę narzucono więzy integral- ności RTKOCT[MG[ (MNWE\IđÎYP[). W ten sposób baza danych będzie wymuszała zasadę spójności logicznej określającą, że każdy identyfikator zwierzęcia musi być unikatowy w tej tabeli. Innymi słowy, żadne wpisy w tabeli 9+ 4 #-+ nie mogą korzystać z tego sa- mego identyfikatora. W przypadku próby umieszczenia identyfikatora będącego duplika- tem już istniejącego identyfikatora zostanie zwrócony komunikat o błędzie. Następna kolumna to )#6A 9+ 4 #-#, której dane są typu XCTEJCT o maksymalnej dłu- gości 20 znaków. Atrybut PQVPWNN oznacza, że każdy wpis dodany do tabeli 9+ 4 #-+ musi zawierać prawidłową wartość dla kolumny )#6A 9+ 4 #-#. 96 Część II  Czas na konkrety Trzecia kolumna to 0# 9#A 9+ 4 #-#, której dane również są typu XCTEJCT, a ich maksy- malna długość nie może przekraczać 20 znaków. W odróżnieniu od kolumny )#6A 9+ 4 #-# wpisy dodawane do tabeli 9+ 4 #-+ mogą ale nie muszą zawierać wartości dla tej kolumny. Ostatnia kolumna tabeli 9+ 4 #-+ to 2. A 9+ 4 #-#A/ . Dane w tej kolumnie są typu EJCT, a ich długość wynosi dokładnie jeden znak. Podobnie jak w kolumnie + A 9+ 4 #-#, stosowane jest ograniczenie integralności. Opcja EJGEM oznacza, że w tej kolumnie do- zwolone są jedynie wartości / lub . Po wpisaniu wartości w tej kolumnie baza danych sprawdza, czy jest to właśnie jedna z dwóch akceptowanych wartości. Polecenie create table as — przykład Bardzo przydatną funkcją w bazie danych Oracle9i jest możliwość tworzenia tabeli na pod- stawie istniejącej tabeli. Za pomocą tego mechanizmu można szybko utworzyć kopię całej tabeli lub tylko wybranego fragmentu. Jest to również doskonałe narzędzie tworzenia śro- dowiska testowego. Oto bardzo prosty przykład zastosowania tej funkcji: 53.  4 #6 6#$. FW\[APQY[APCDQT #5UGNGEV HTQOPQY[APCDQT  YJGTGMQFAYQL 2/ 53.  6CDGNC\QUVCđCWVYQT\QPC Spójrzmy teraz na zawartość tabeli wyjściowej: 53. UGNGEV HTQOPQY[APCDQT 0# 9+5-1  ,CEGM 0QYCM MQYCNUMK #PKC OCTGM YKGUKGM VQOGM RCYGN \D[U\GM OCIFC DCUKC 91,  2/ . 6 /# 2 5. 2/ . . 2/ 2/ #6#A #64  56;   5+  )47 .+5 /#, 5+  .76     /#, 9;0#)41             YKGTU\[\QUVCđQY[DTCP[EJ Poniżej pokazano nowo utworzoną tabelę 7 ;A019;A0#$14. Zawiera ona tylko wpisy speł- niające warunek MQFAYQL 2/ . 53. UGNGEV HTQOFW\[APQY[APCDQT 0# 9+5-1  ,CEGM 6QOGM /CIFC $CUKC 91,  2/ 2/ 2/ 2/ #6#A #64  56; 5+    /#, 9;0#)41      Rozdział 4.  Obiekty baz danych 97 Perspektywy — niestandardowy wybór jednej lub większej liczby tabel Perspektywa to niestandardowy zbiór danych pochodzących z jednej lub więcej tabel bazowych. Tabele bazowe z kolei to tabele lub również perspektywy. W odróżnieniu od tabeli, perspektywa nie zawiera danych a jedynie składowaną instrukcję SQL. Gdy użyt- kownik uruchamia zapytanie korzystające z perspektywy, baza danych otwiera słownik danych, odszukuje składowaną instrukcję SQL i wykonuje ją. Dane znalezione w wyni- ku realizacji zapytania są prezentowane w formie tabeli. Perspektywy działają w sposób transparentny — użytkownik może odnosić wrażenie, że ma do czynienia z tabelą. Podobnie jak w przypadku tabeli, w perspektywie można wstawiać, aktualizować, usuwać oraz wybierać dane1. Wszelkie zmiany wprowadzane w perspektywie są uwzględniane w tabelach bazowych. Perspektywy są wykorzystywane z wielu powodów. Można na przykład pozwolić pra- cownikowi zajmującemu się wypłatami na uzyskiwanie dostępu w tabeli płac do infor- macji o warunkach zatrudnienia poszczególnych pracowników ale nie do informacji o ich wynagrodzeniach. Innym razem perspektywa może posłużyć do ukrycia złożoności da- nych. Można na przykład umożliwić użytkownikom dostęp do perspektywy, podczas gdy instrukcja SQL, za pomocą której utworzono tą perspektywę, wykorzystuje skom- plikowane złączenie wielu tabel. Dzięki temu użytkownicy omijają najbardziej złożone elementy relacyjnych baz danych. Polecenie create view — przykład W przykładzie poniżej zademonstrowano sposób łączenia dwóch tabel: 53.  4 #6 8+ 9YKFAF\KCNARTCE#5 5 . 6GKOKGARTCEGPC\YARTCEFPC\YCAF\KCN (41/RTCEQYPKMG F\KCNF  9* 4 GKFAF\KCNFKFAF\KCN 53.  2GTURGMV[YC\QUVCđCWVYQT\QPC Teraz dla perspektywy zostanie wykonana instrukcja UGNGEV. Z punktu widzenia użyt- kownika perspektywa YKFAF\KCNARTCE funkcjonuje identycznie jak tabela, w rzeczywi- stości jednak jest to składowana w bazie danych instrukcja SQL, z którą do momentu wy- konania nie są powiązane żadne dane. 53. 5 . 6 (41/YKFAF\KCNARTCE +/+ A24#  #)0+ 5 -# -4 ;5 61( /#4+# /+ *#. 0# 9A24#  019#- ,# -195-+ 0+ + .5-+ #40; 0# 9#A +#.  (KPCPUG 5RT\GFC\ -CFT[ /CTMGVKPI m 1 Z pewnymi ograniczeniami dotyczącymi wstawiania, modyfikacji i usuwania — przyp. tłum. 98 Część II  Czas na konkrety Perspektywy materializowane — perspektywy, w których są przechowywane dane W odróżnieniu od zwykłej perspektywy, która zawiera jedynie instrukcje SQL, per- spektywa materializowana zawiera wiersze danych, będące efektem wykonania zapytania SQL w jednej lub więcej tabel bazowych. Każda zmiana w tabeli bazowej jest odnoto- wywana w osobnym dzienniku w bazie danych. Perspektywy materializowane można skonfigurować w taki sposób, aby automatycznie dokonywały synchronizacji z tymi ta- belami, podlegając aktualizacji w odstępach czasu określonych przez użytkownika. Per- spektywy mogą być przechowywane w tej samej bazie danych, jak źródłowe tabele ba- zowe lub też w zupełnie innych zdalnych bazach danych. Poniżej zostaną pokazane przykłady, w jaki sposób można wykorzystywać perspektywy materializowane w hurtowni danych. Często są używane do wstępnego obliczania i prze- chowywania danych zbiorczych, takich jak sumy czy średnie. Jeśli perspektywa materia- lizowana dotyczyłaby miesięcznej sprzedaży, gdzie do tabel bazowych byłyby wpisywa- ne dane o sprzedaży w nowym miesiącu, w perspektywie materializowanej byłyby doko- nywane automatyczne aktualizacje wartości zbiorczych uwzględniające prosty sposób przyspieszenia wykonywania zapytań w dużych hurtowniach danych. W środowiskach rozproszonych stosowanie perspektyw materializowanych umożliwia dokonywanie replikacji danych w lokalizacjach rozproszonych oraz synchronizacji ak- tualizacji między tymi lokalizacjami. W środowisku mobilnym perspektywy tego typu mogą być wykorzystywane do pobierania podzbiorów danych z centralnego serwera do klientów mobilnych oraz dokonywania okresowych aktualizacji między serwerem a klientami. Polecenie create materialized view (dawniej snapshot) — przykład Najpierw wszystkie tabele, na których jest oparta perspektywa materializowana, muszą być odnotowane w dzienniku. Oto jeden z możliwych sposobów realizacji tego zadania: 53.  4 #6 /#6 4+#.+ 8+ 9.1)10F\KCN 9+6*24+/#4;- ; 419+  PC\YCAF\KCN  +0 .7 +0)0 98#.7 5 53.  \KGPPKMRGTURGMV[Y[OCVGTKCNK\QYCPGL\QUVCđWVYQT\QP[ 53.  4 #6 /#6 4+#.+ 8+ 9.1)10PQY[APCDQT 9+6*24+/#4;- ; 419+  KFAF\KCNY[PCITQF\  +0 .7 +0)0 98#.7 5 53.  \KGPPKMRGTURGMV[Y[OCVGTKCNK\QYCPGL\QUVCđWVYQT\QP[ Rozdział 4.  Obiekty baz danych 99 Teraz zostanie utworzona sama perspektywa materializowana: 53.  4 #6 /#6 4+#.+ 8+ 9OVYAF\KCNAY[PCITQF\ 4 (4 5*(#5610 1//+6  0#$. 37 4;4 94+6 #5UGNGEVFPC\YCAF\KCN UWO PY[PCITQF\ CUY[PCITQF\ANCE\ HTQOF\KCNF PQY[APCDQTP YJGTGFKFAF\KCNPKFAF\KCN ITQWRD[FPC\YCAF\KCN 2GTURGMV[YCOCVGTKCNK\QYCPC\QUVCđCWVYQT\QPC Modyfikowanie zapytań Jeśli perspektywy materializowane są przechowywane w tej samej bazie danych co ta- bele podstawowe, optymalizator zapytań może korzystać z funkcji modyfikowania za- pytań. Oznacza to, że gdy optymalizator stwierdzi, że może uzyskać wymagane dane szybciej dzięki wykorzystaniu perspektywy materializowanej a nie tabel źródłowych, wskazywanych przez zapytanie, zapytanie to (instrukcja SQL) zostanie zmodyfikowane w taki sposób, że będzie korzystało z materializowanej perspektywy a nie z oryginalnej tabeli źródłowej. Możliwość modyfikowania oryginalnego zapytania znacznie zwiększa sprawność dzia- łania bazy danych. Funkcji tej można używać do tworzenia sprawozdawczej bazy da- nych (perspektyw materializowanych) opartej na produkcyjnej bazie danych. W takim przypadku zmiana tabel produkcyjnych nie powodowałaby modyfikacji perspektyw mate- rializowanych. Indeksy — szybki sposób korzystania z danych Podobnie jak w przypadku indeksów pomagających w szybszym przeszukiwaniu książki, indeks tabeli pomaga szybciej wyszukiwać dane. Indeks może działać znacznie szybciej niż tabela źródłowa, ponieważ jest znacznie mniejszą kopią podzbioru danych takiej tabeli. Na przykład, może istnieć tabela o nazwie #.(#$ 6, zawierająca 26 kolumn (od # do ). Dla pierwszych trzech kolumn utworzono indeks, nazwany na przykład #$ . Tabela ma milion wierszy, a zadanie polega na wyszukaniu wszystkich wystąpień słowa WRC znaj- dujących się w kolumnie #. Aby przejrzeć zawartość kolumny #, standardowe wyszuki- wanie musi obejmować wszystkie kolumny tabeli. Indeks jest kompletną kopią zawartości kolumn #, $ i , zatem przejrzenie zawartości kolumny # wymaga zanalizowania jeszcze tylko dwóch innych kolumn — $ i . Można sobie wyobrazić, o ile mniej pracy będzie musiała wykonać baza danych w związku z prze- szukiwaniem miliona wierszy w kolumnach od # do w porównaniu z przeszukiwaniem kolumn od # do . 100 Część II  Czas na konkrety Zalety wstępnego sortowania W relacyjnych bazach danych zawartość tabeli nie jest poddawana żadnemu wstępnemu sortowaniu. Być może Czytelnik zetknął się z terminem księgowym FIFO — First In is First Out (pierwsze na wejściu jest pierwsze na wyjściu). W środowisku baz danych sto- sowane jest pojęcie FIFL — First In is First Loaded (pierwsze na wejściu jest pierwsze ładowane). Indeks jest zawsze wstępnie posortowany. W przykładzie powyżej próba zna- lezienia słowa WRC w kolumnie # tabeli źródłowej oznacza, że trzeba przejrzeć cały mi- lion wierszy. Jednocześnie wiadomo, że indeks jest wstępnie posortowany. Wykorzy- stanie tej informacji pozwoli na znaczne przyspieszenie pracy bazy danych. Utworzenie indeksu kolumn #, $ i w rzeczywistości powoduje utworzenie następujących indeksów: # #$ #$ Oznacza to, że powstaje indeks kolumny #, indeks połączonych kolumn # i $ oraz indeks połączonych kolumn #, $ i . Nie powstają następujące indeksy: $ $ Należy również stale pamiętać, że indeks jest niewielką kopią tabeli. W przypadku in- deksu #$ każda zmiana zawartości którejkolwiek z kolumn powoduje konieczność ak- tualizacji indeksu. Zawsze podczas tworzenia indeksu baza danych musi uwzględniać wszystkie zmiany wprowadzone w tabeli źródłowej, na której jest oparty indeks. Indeksy unikatowe i nieunikatowe Indeks standardowy może mieć formę indeksu unikatowego lub indeksu nieunikatowe- go. Indeks unikatowy nie może powtarzać się dla różnych wpisów. Indeks nieunikatowy może być określony dla wielu różnych wpisów w tej samej tabeli. 53.  4 #6 70+37 +0 :KPFAPC\YCAF\KCN  10F\KCN PC
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Oracle9i. Przewodnik dla początkujących
Autor:
, ,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: