Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

117
Oracle jako przykład komercyjnego systemu bazodanowego Autor: KatMPB

description

Kurs Oracle i SQL, bazy danych - tworzenie stron www, porady, trening, kurs internetowy online

Transcript of Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Page 1: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Oracle jako przykład komercyjnego systemu bazodanowego

Autor: KatMPB

Page 2: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 2

Wstęp – o czym będzie mowa

Wprowadzenie do Oracle: System zarządzania bazą danych Historia Oracle Czym jest Oracle Mechanizm uzyskiwania pomocy Architektura Oracle

SQL widziany z punktu widzenia Oracle (obiekty baz danych)

PL/SQL Administrowanie Oracle

Ogólne pojęcia (różnica między administratorem bazy danych a administratorem danych)

Page 3: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 3

Wstęp – o czym będzie mowa

Instalowanie, uruchamianie i zamykanie Oracle Konfigurowanie i zarządzanie uprawnieniami

użytkowników Tworzenie bazy danych Pliki konfiguracyjne bazy danych Kopie zapasowe

Transakcje Przetwarzanie rozproszone Oracle a Internet (Java) Oracle Application Server (m.in. formularze

i raporty) Partycjonowanie danych

Page 4: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 4

Wprowadzenie do Oracle

System zarządzania bazą danych (DBMS) jest zorganizowanym zbiorem narzędzi umożliwiającym dostęp i zarządzanie jedną lub więcej bazami danych. DBMS jest powłoką, która otacza bazę danych i za pomocą której dokonują się wszystkie operacje na bazie danych. Funkcje realizowane przez większość DBMS zaliczamy do trzech grup:-pielęgnacja danych-wyszukiwanie danych-kontrola danych

Page 5: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 5

Wprowadzenie do Oracle

Historia Oracle

W 1977 roku Lawrence Ellison, Robert Miner i Edward Oates założyli firmę SDL (Software Development Labs). Jednym z podmiotów zainteresowanych możliwościami gromadzenia dużej liczby danych i szybkiego ich pobierania było CIA. Firma SDL wygrała przetarg i rozpoczęła pracę nad tym ściśle tajnym projektem. Nazwa kodowa tego projektu brzmiała Oracle (pl. „wyrocznia”). Po pewnym czasie przerwano pracę, jednak Lawrence Ellison i jego współpracownicy dostrzegli komercyjne możliwości bazy danych. To spostrzeżenie w połączeniu z przeświadczeniem, że plany firmy IBM uwzględniają zastosowanie takiej relacyjnej bazy danych i języka SQL w swoich przyszłych komputerach, doprowadziło do podjęcia przez Ellisona, Minera i Oates’a decyzji o kontynuacji prac nad projektem.

Page 6: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 6

Wprowadzenie do Oracle

Historia Oracle

1978 - Nazwa firmy zmieniona z SDL na Relational Software Inc. (RSI).1979 - Pierwsza komercyjna baza danych trafia na rynek (konkurencja dla IBM).1980 - Firma RSI zmienia nazwę na Oracle Systems Corporation (a później na Oracle Corporation) – Po raz pierwszy napisana w C.

1981-1983 – Powstaje wersja 3 na komputery typu mainframe i minikomputery.1984 - Zmiana siedziby firmy do Kalifornii.1985 - Oracle wchodzi w sektor aplikacji (finansowych).1986 - Powstaje wersja 5 z możliwościami operacji rozproszonych. Firma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft - 700 mln dol.).1988 - Zostaje wydana wersja 6 ze znacznie zmienionym kodem źródłowym. Wprowadzona pakiety oprogramowania finansowego oraz pakiety CASE przeznaczone dla programistów.

Page 7: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 7

Wprowadzenie do Oracle

Historia Oracle

1989 - Powstaje Oracle 6.2 (po raz pierwszy w historii dwa komputery, które nie korzystały ze wspólnej pamięci fizycznej mogły równocześnie korzystać z jednego dysku).1990-1991 – Przekroczono granicę 1 mld dolarów.1992 - Ray Lane w Oracle (marketing).1993 - Firma dostrzega rosnącą rolę działu aplikacji (wprowadzenie pakietu aplikacji dla

wielu głównych sektorów gospodarki).1994-1995 – Powstaje wersja 7 dla komputerów osobistych.1996 - Oracle Corporation wydzielił firmę Network Computer Inc., której zadaniem ma być zadanie budowa komputera sieciowego. Rozpoczęcie działalności firmy Oracle na rynku detalicznym postawiło przedsiębiorstwo wobec konieczności podjęcia konkurencji wobec takich firm jak Sun, IBM i innych producentów komputerowych. Projektowany komputer sieciowy miał nie wykorzystywać systemu operacyjnego Windows.

Page 8: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 8

Wprowadzenie do Oracle

Historia Oracle

Dział aplikacji odnotował wartość sprzedaży na poziomie ponad 500 mln dol. Ponieważ z każdą aplikacją wiąże się sprzedaż bazy danych, dział aplikacji stał się istotną częścią ogólnej działalności Oracle. Obecnie pakiet Oracle obejmuje:-Oracle Financials;-Oracle Supply Chain Management;-Oracle Manufacturing;-Oracle Project Systems;-Oracle Human Resources;-Oracle Market Management.

Również w roku 1996 Oracle wzbogaca się o pakiet narzędzi OLAP który wykorzystywany jest w zakresie aplikacji obsługujących hurtownie danych.

Page 9: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 9

Wprowadzenie do Oracle

Historia Oracle

1997 - Pojawia się Oracle w wersji 8. Po raz kolejny firma podjęła kluczową pod względem strategicznym decyzję techniczną na wczesnym poziomie rozwoju produktu, przechodząc na język programowania Java i zrezygnowano z architektury klient-serwer na rzecz aplikacji działających w Internecie.1998 - Obsługa systemu Linux.1999 - Pojawia się pakiet Oracle8i w znacznej części utworzony w języku Java.2000 – Firma osiąga wartość sprzedaży na poziomie 10 319 mln dol.Lawrence Ellison stał się najbogatszym człowiekiem na świecie. Wprowadzono pakiet Oracle9i który stanowi konkurencje dla takich firm jak m.in.: IBM (DB/2), Microsoft (SQL Server), czy innych.

Page 10: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 10

Wprowadzenie do Oracle

Czym jest Oracle?

Oracle Corporation dostarcza oprogramowanie służące do zarządzania informacjami. Obszar ten obejmuje zarządzanie bazami danych, tworzenie aplikacji, zaawansowane narzędzia analityczne oraz tworzenie aplikacji biznesowych, przystosowanych do pracy w Internecie.Pod względem rodzajów produktów ofertę Oracle można podzielić na pięć grup:- baza danych Oracle 9i;- serwer aplikacji Oracle 9i;- pakiet narzędzi programowania aplikacji internetowych;- hurtownie danych i rozwiązania wspierające rozwój firmy;- pakiet E-Business Suite.

JEST PRZYKŁADEM POSTRELACYJNEGO SYSTEMU BAZODANOWEGO

Page 11: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 11

Wprowadzenie do Oracle

Mechanizm uzyskiwania pomocy

Dział Oracle Support Services jest głównym elementem systemu pomocy, jaką Oracle Corporation udostępnia użytkownikom.Na dział OSS składa się:- wnioski iTAR (TAR); mogą składać tylko użytkownicy posiadający odpowiednie umowy pomocy technicznej;- Serwis MetaLink; umożliwia odnalezienie odpowiedzi na większość pytań, jakie może zadać użytkownik (wnioski iTAR [składanie], biblioteki techniczne [archiwum działu pomocy technicznej firmy], fora [pl. Artykuły]);- Oracle Technology Network (m.in. dział download);- AppsNet (bezpłatne członkowstwo w przeciwieństwie do MetaLink);- Grupy dyskusyjne i serwery list dyskusyjnych;- Dokumentacja on-line;- Internet. ()

Page 12: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 12

Wprowadzenie do Oracle

Architektura Oracle

Serwer stanowi moduł wykonywalny, który po uruchomieniu przeprowadza pewne istotne operacje. Uzyskanie dostępu do bazy danych Oracle9i jest możliwe właśnie dzięki temu modułowi. Warto tu wspomnieć, że do tego celu służy również szereg procedur i plików pomocniczych.

Uwaga! – Składniki omówione poniżej są elementami wspólnymi dla wszystkich baz danych Oracle. Są one dostępne, ale mogą być nieużywane w przypadku niektórych instancji bazy Oracle9i.

- INIT.ora: jest to plik zawierający wpisy, które określają środowisko wykonywania bazy danych Oracle9i. Wartości tych wpisów sterują różnymi elementami, takimi jak ilość pamięci przydzielanej instancji czy podział tej pamięci na struktury.

Page 13: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 13

Wprowadzenie do Oracle

Architektura Oracle

- Pamięć dzielona: często w przypadku komputerów osobistych jest związana z pamięcią RAM. Jest to ilość pamięci, która jest zajmowana przez bazę danych Oracle 9i po jej uruchomieniu. Dokładniej rzecz biorąc, pamięć ta jest zajmowana przez uruchomiony serwer Oracle9i dla konkretnej instancji bazy danych. Jej popularną nazwą jest SGA, co stanowi skrót od System Global Area.- Pliki bazy danych: pliki te dzielą się na trzy kategorie – pliki danych, pliki kontrolne i pliki dzienników (rozszerzenia odpowiednio to: .dbf, .ctl i .log).- Procesy pomocnicze: są to działania inicjowane w momencie uruchomienia bazy danych Oracle9i. Ich zadaniem jest wspieranie operacji uzyskiwania dostępu do plików bazy danych.- Dostęp do sieci: funkcje zapewniania dostępu do sieci spełnia chodzący w skład pakietu Oracle9i program Oracle Net.

Page 14: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 14

Wprowadzenie do Oracle

Architektura Oracle

- Pliki śladu: są zapisywane w sposób ciągły podczas pracy programu Oracle9i, w katalogach określonych w plikach INIT.ora dla poszczególnych instancji. Zawierają głównie dwa rodzaje informacji opisowych – informację o pewnych błędach Oracle oraz datowniki wybranych, istotnych działań, dotyczących pracy poszczególnych instancji.- Biblioteki czasu wykonywania: są to odpowiedniki stosowanych w przypadku komputerów osobistych bibliotek dołączonych dynamicznie. Zawierają one procedury i składniki usług, dzięki którym serwer Oracle9i może obsługiwać i wykonywać szereg zaawansowanych funkcji, niezbędnych dla prawidłowej pracy użytkowników.

Page 15: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 15

Wprowadzenie do Oracle

Architektura Oracle

Pomocnicze procesy drugoplanowe:

- Proces zapisujący do plików danych (dbw0): odpowiada za zapisywanie zawartości buforów bazy danych na dysk. Jest to jedyny proces, który powoduje zapisywanie danych w bazie w sposób trwały;- Monitor procesów (pmon): odpowiada za zwalnianie zasobów (np. opróżnianie buforów) w przypadkach, gdy sesje użytkownika są kończone w sposób niestandardowy, za pomocą funkcji innych niż wewnętrzne mechanizmy tych sesji;- Monitor systemu (smon): realizuje szereg zadań, z których najważniejsze ma miejsce tuż po uruchomieniu instancji bazy danych Oracle9i. W tym momencie proces smon odpowiada za zagwarantowanie pełnej spójności wszystkich plików bazy danych, a w razie potrzeby wykonuje operacje odtwarzania;

Page 16: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 16

Wprowadzenie do Oracle

Architektura Oracle

- Proces zapisujący do plików dziennika powtórzeń (lgwr): odpowiada za zarządzanie pracą bufora dziennika powtórzeń;- Proces punktu kontrolnego (ckpt): zapewnia pełne zsynchronizowanie plików danych po zakończeniu operacji wyznaczania punku kontrolnego;- Odtwarzacz (reco): zadaniem odtwarzacza jest rozwiązanie niezrealizowanych transakcji w rozproszonym środowisku systemu Oracle9i.- Archiwizator (arc0): dokonuje automatycznego zapisywania kopii dzienników powtórzeń w katalogu określonym przez administratora bazy danych. Proces ten może zachodzić dopiero po włączeniu funkcji odtwarzania nośnika (konfiguracja w pliku INIT.ora).

Page 17: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 17

Wprowadzenie do Oracle

Architektura Oracle

Rys. Pamięć dzielona, procesy pomocnicze i interakcje między plikami.

Page 18: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 18

Wprowadzenie do Oracle

Architektura Oracle

Pliki bazy danych:

- Plik kontrolny jest swojego rodzaju przewodnikiem po bazie danych, zawiera m.in.: nazwę bazy danych, datę i godzinę utworzenia bazy danych, informację dotyczące punktów kontrolnych itp.;- Dzienniki powtórzeń;- Pliki danych bazy danych są przechowywane w przestrzeniach tabel.

Page 19: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 19

Wprowadzenie do Oracle

Architektura Oracle

Zależność między bazą danych, przestrzenią tabel i plikami danych.

Element Jest nadrzędny wobec Zawiera się w

Baza danych Przestrzeń tabel/plik danych

Przestrzeń tabel Plik danych Baza danych

Plik danych Przestrzeń tabel

CREATE TABLESPACE nazwa DATAFILE ‘/oracle/nazwa_katalogu/nazwa_pliku.dbf’SIZE 5M RESUE EXTENT MANAGEMENT DICTIONARYDEFAULT STORAGE (INITIAL 25K NEXT 25K MINEXTENTS 5 MAXEXTENTS 100 PCTINCREASE 0);

Polecenia SQL tworzące przykładowe przestrzenie tabel:

Page 20: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 20

Wprowadzenie do Oracle

Architektura Oracle

CREATE TABLESPACE nazwa DATAFILE ‘/oracle/nazwa_katalogu/nazwa_pliku.dbf’SIZE 5M RESUE EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

CREATE TABLESPACE nazwa DATAFILE ‘/oracle/nazwa_katalogu/nazwa_pliku.dbf’SIZE 5M RESUE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;

CREATE UNDO TABLESPACE nazwa DATAFILE ‘/oracle/nazwa_katalogu/nazwa_pliku.dbf’SIZE 5M RESUE AUTOEXTEND ON MAXSIZE UNLIMITED;

Page 21: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 21

SQL widziany z punktu widzenia Oracle (obiekty baz danych) Złączenia (klucze obce) Podzapytania Indeksy Integralność danych (integralność: encji,

referencyjna, dziedziny, asercje) Perspektywy Przełączniki typu TRIGGER (wyzwalacze) Procedury serwera STORED PROCEDURES

(funkcje serwera, pakiety)

Uwaga! - Wszystkie podpunkty będą omówione na przykładach.

Page 22: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 22

SQL widziany z punktu widzenia Oracle (obiekty baz danych)

create table faktury (numer int primary key,dostawca varchar2(32) not null,data date not null default sysdate

)

create table pozycje (nrfaktury int not null,numer int not null,towar varchar2(24) not null,ilosc int not null,cena int not null,CONSTRAINT pozycje_faktury FOREIGN KEY (nrfaktury) REFERENCES faktury(numer),primary key (nrfaktury, numer)

)

Złączenia (klucze obce)

Page 23: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 23

SQL widziany z punktu widzenia Oracle (obiekty baz danych)

Integralność danych

-Integralność encji jest realizowana przez klucze główne-Integralność referencyjna jest realizowana przez klucze obce-Integralność dziedziny

create table nazwa (…pole int;…CHECK (pole BETWEEN 100 AND 1000);…

)Klauzula CHECK służy do wymuszenia integralności dziedziny.

Page 24: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 24

SQL widziany z punktu widzenia Oracle (obiekty baz danych)

Integralność danych

-Asercje nie są wspierane przez Oracle9i.

Więzy mogą być nazywane i określane niezależnie od jakiejkolwiek tabelilub dziedziny. W takim przypadku więzy są nazywane asercjami.Możemy na przykład zdefiniować asercje dla jakieś tabeli i gdy dowolnainstrukcja SQL dokonuje wstawienia, modyfikacji bądź usunięcia wiersza tabeli, istnieje możliwość, że więzy mogą zostać naruszone.

Page 25: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 25

SQL widziany z punktu widzenia Oracle (obiekty baz danych)

Podzapytania.

select imie_prac || ’ ‘ || naz_prac as Pracownicy_dzialu_finansowfrom pracownikwhere id_dzialu = (select id_dzialu

from dzialwhere nazwa_dzialu = ‘Finanase’);

Page 26: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 26

SQL widziany z punktu widzenia Oracle (obiekty baz danych)

Indeksy są niewielką kopią całej tabeli wstępnie posortowaną.

create index nazwa_indeksu on nazwa_tabeli (nazwa_kolumny_1, … );

Indeksy mogą być unikatowe i nieunikatowe.W Oracle9i możliwe jest tworzenie indeksów bitmapowych dla grup wierszy o niewielkim zróżnicowaniu.

create bitmap index plec on nazwa_tabeli (nazwa_kolumny);

Reguła 95/5 umożliwia dokonywanie pomiaru skuteczności działania indeksów. Jeśli wynikiem zapytania będzie zwrócenie nie więcej niż 5% wierszy tabeli, indeks jest właściwie zawsze najszybszym sposobem wyszukiwania danych. Jeśli zaś wynikiem będzie wyszukanie ponad 5% wszystkich danych, lepiej nie korzystać z indeksu

Page 27: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 27

SQL widziany z punktu widzenia Oracle (obiekty baz danych)

Perspektywy są niestandardowym zbiorem danych pochodzącym z jednej lub więcej tabel bazowych. W odróżnieniu od tabeli, perspektywa nie zawiera danych a jedynie składowaną instrukcję SQL. Podobnie jak w przypadku tabel, w perspektywie można wstawiać, aktualizować, usuwać oraz wybierać dane, oczywiście z pewnymi ograniczeniami.

create view wyd_dzial_prac asselect e.imie_prac, e.nazw_prac, d.nazwa_dzialfrom pracownik e, dzial dwhere e.id_dzial = d.id_dzial;

Istnieją również perspektywy materializowane (dawniej snapshot) – perspektywy w których są przechowywane dane.Przed utworzeniem perspektywy materializowanej każda tabela na której opiera się ta perspektywa musi być odnotowana w dzienniku tabeli.(przykład pomijam!!!)

Page 28: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 28

SQL widziany z punktu widzenia Oracle (obiekty baz danych)

Wyzwalacze to programy przechowywane w bazie danych, które są wykonywane po zaistnieniu określonego zdarzenia (insert, update lub delete). Mogą być one napisane w języku PL/SQL, Java lub C.

CREATE OR REPLACE TRIGGER "KATMPB".„TEST" BEFOREINSERT OR UPDATE OR DELETE ON "KATMPB"."TEST" FOR EACH ROW BEGIN if INSERTING then insert into dziennik (id_dzien, tabela_dzien, dml_dzien, id_klucza_dzien, data_dzien, nazwa_uzyt_dzien) values (kol_id_dzien.nextval,'DZIENNIK','INSERT', :new.numer, sysdate, user); elsif DELETING then insert into dziennik (id_dzien, tabela_dzien, dml_dzien, id_klucza_dzien, data_dzien, nazwa_uzyt_dzien) values (kol_id_dzien.nextval,'DZIENNIK','DELETE', :old.numer, sysdate, user); else…

…insert into dziennik (id_dzien, tabela_dzien, dml_dzien, id_klucza_dzien, data_dzien, nazwa_uzyt_dzien) values (kol_id_dzien.nextval,'DZIENNIK','UPDATE', :old.numer, sysdate, user); end if;

EXCEPTION WHEN others THEN raise_application_error(-20000,'BLAD trigger_test: ' ||SQLERRM);

END trigger_test;

Opis: Wyzwalacz ten służy do zapisu obserwacji wszystkich działań na tabeli TEST.

Page 29: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 29

SQL widziany z punktu widzenia Oracle (obiekty baz danych)

Funkcje i procedury są to obiekty bazy danych, które zawierają kod w języku PL/SQL. Inaczej ma się sprawa w systemie MySQL gdzie pisanie kodu procedur i funkcji odbywa się dzięki dodatkowej składni SQL.

Uwaga! - W dalszej części prezentacji poświęconej językowi PL/SQL zostaną zademonstrowane przykłady procedur i funkcji przechowywanych na serwerze.

W Oracle występuje jeszcze cała masa różnych obiektów tworzonych przy pomocy zapytań SQL, kilka z nich wymieniłem poniżej:

-synonimy;-sekwencje;-role;-libraries (ze składni języka PL/SQL można wywoływać funkcje języków takich jak np. C);-powiązania bazodanowe;-clusers;-pakiety.

Page 30: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 30

PL/SQL

PL/SQL (Procedural Language Structured Query Language) jest to środowisko programistyczne rezydujące bezpośrednio w bazie danych.Po raz pierwszy pojawił się w wersji 6. systemu Oracle w roku 1996. Obecnie język PL/SQL jest wykorzystywany do odczytywania danych, wypełniania bazy danych, tworzenia przechowywanych obiektów a nawet wyświetlania stron WWW.

Baza danych jest więc nie tylko bazą danych. Służy ona bowiem również jako motor dla wielu języków np.: Java czy PL/SQL. Funkcja mechanizmu oznacza, że kod może być przechowywany w bazie danych a następnie uruchamiany.

Język PL/SQL jest wykorzystywany w wielu produktach firmy Oracle, takich jak: serwer Oracle, Oracle Forms, Oracle Raports, Oracle Warehouse Builder, Oracle Application Server, czy Oracle Portal.

Page 31: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 31

PL/SQL

Rys. Architekturawykorzystującajęzyk PL/SQL

Baza danych

Wywołania z programów zewnętrznych

Przechowywany program w języku PL/SQL

Zintegrowany motor języka SQL

Mechanizm języka PL/SQL

Motor języka SQL

Page 32: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 32

PL/SQL

Uwaga! - Dalsza część omawiana języka PL/SQL będzie oparta na przykładach.

CREATE OR REPLACE PROCEDURE "KATMPB".„TEST" (wyjscie out number)

as [is] begin select count(*) into wyjscie from pracownicyend;

Procedury

Użycie kursora niejawnego:

Page 33: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 33

PL/SQL

Procedury

Użycie kursora jawnego:

CREATE OR REPLACE PROCEDURE "KATMPB"."TEST" (wyjscie out number) as zmp number; CURSOR pobierz IS select count(*) from test; begin OPEN pobierz; FETCH pobierz INTO zmp; wyjscie := zmp; CLOSE pobierz;end;

Uwaga! - W przypadku instrukcji insert, update i delete jesteśmy skazani na używanie kursorów niejawnych, które są o wiele mniej efektywne.

Page 34: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 34

PL/SQL

Procedury

Pętla for kursora:

CREATE OR REPLACE PROCEDURE "KATMPB"."TEST" as l_liczba_pracownikow number; i number; CURSOR pobierz_dane_pracownikow IS select nazwisko_pracownika, placa from pracownicy order by nazwisko_pracownika; begin FOR rec IN pobierz_dane_pracownikow LOOP dbms_output.put_line(‘Pracownik: ‘ || rec.nazwisko_pracownika ||

‘ Wynagrodzenie: ‘ || rec.placa || ‘ zł’); END LOOP;end;

Page 35: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 35

PL/SQL

Funkcje

CREATE OR REPLACE FUNCTION "KATMPB"."TEST" (liczbaparametr number) return number

is liczba number(10);

begin select count(*) as koltest into liczba from test where pole3 = liczbaparametr; return (liczba);end;

Uwaga! - Funkcje mogą być używane wewnątrz poleceń SQL.

Page 36: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 36

PL/SQL

Pakiety dostarczone przez firmę Oracle

Pakiet utl_file: (Aby korzystać z tego pakietu należy dokonać modyfikacji w pliku INIT.ora. Dla parametru utl_file_dir należy zdefiniować katalogi, do których użytkownicy pakietu będą mieli dostęp.

CREATE OR REPLACE PROCEDURE "KATMPB"."TEST" (nazwa_katalogu varchar2, nazwa_pliku varchar2, system_zrod varchar2)is plik UTL_FILE.FILE_TYPE; zmp varchar2(1000);begin plik := UTL_FILE.FOPEN(nazwa_katalogu, nazwa_pliku, 'R'); begin loop UTL_FILE.GET_LINE(plik, zmp); dbms_output.put_line(zmp); end loop; EXCEPTION when NO_DATA_FOUND then null; end;…

…UTL_FILE.FCLOSE(plik); EXCEPTION when NO_DATA_FOUND then dbms_output.put_line('no data found'); UTL_FILE.FCLOSE(plik); when UTL_FILE.INVALID_PATH then dbms_output.put_line('UTL_FILE.INVALID_PATH'); UTL_FILE.FCLOSE(plik); when UTL_FILE.READ_ERROR then dbms_output.put_line('UTL_FILE.READ_ERROR'); UTL_FILE.FCLOSE(plik); when OTHERS then dbms_output.put_line('BŁĄD: '||SQLERRM||'.'); UTL_FILE.FCLOSE(plik); end;

Page 37: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 37

PL/SQL

Dynamiczny SQL

Programy w języku SQL służą do wykonywania określonych działań na wybranych kolumnach w tabelach oraz realizowania pewnych zamkniętych zadań. Czasami jednak programy muszą wykonywać zadania, które będą znane dopiero podczas działania danego programu. W takim przypadku należy zastosować dynamiczny SQL. W wersji Oracle9i istnieją dwie opcje korzystania z tego mechanizmu. Pierwszy z nich to pakiet dbms_sql, umożliwiający tworzenie tych dynamicznych poleceń. Drugi to rdzenny dynamiczny SQL (and. dynamic SQL [od ver. 8i]), który pozwala osiągnąć te same cele przy użyciu nieco prostszej składni.

Page 38: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 38

PL/SQL

Dynamiczny SQL

Dynamiczny SQL realizowany za pomocą pakietu dbms_sql:

CREATE OR REPLACE PROCEDURE "KATMPB".„TEST" (zmp in number, zmp2 in varchar2)

is liczba_wierszy integer; zmpsql varchar2(200); kursor integer;

begin zmpsql := 'INSERT INTO test_proc VALUES (:numer_par, :test_par)'; kursor := dbms_sql.open_cursor; dbms_sql.parse(kursor, zmpsql, dbms_sql.native); dbms_sql.bind_variable(kursor, ':numer_par', zmp); dbms_sql.bind_variable(kursor, ':test_par', zmp2); liczba_wierszy := dbms_sql.execute(kursor); dbms_sql.close_cursor(kursor);end;

Page 39: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 39

PL/SQL

Dynamiczny SQL

Rdzenny dynamiczny SQL:

CREATE OR REPLACE PROCEDURE "KATMPB".„TEST" (zmp in number, zmp2 in varchar2)

is zmpsql varchar2(200);

begin

zmpsql := 'INSERT INTO test_proc VALUES (:numer_par, :test_par)'; EXECUTE IMMEDIATE kursor USING zmp, zmp2;

end;

Page 40: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 40

Administrowanie Oracle

Ogólne pojęcia (różnica między administratorem bazy danych a administratorem danych)

Instalowanie, uruchamianie i zamykanie Oracle

Konfigurowanie i zarządzanie uprawnieniami użytkowników

Tworzenie bazy danych Pliki konfiguracyjne bazy danych Kopie zapasowe

Page 41: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 41

Administrowanie Oracle

Ogólne pojęcia (różnica między administratorem bazy danych a administratorem danych)

Administrator danych jest to osoba która pełni funkcję nad administrowaniem danych. Administrowanie danymi jest funkcją związaną z zarządzaniem, planowaniem i dokumentowaniem zasobów danych w przedsiębiorstwie.

Administrator bazy danych będzie zaangażowany w projektowanie fizyczne systemów baz danych. W zakresie zarządzania danymi administrator systemów baz danych. W zakresie zarządzania danymi administrator bazy danych będzie zajmował się zwłaszcza problematyką kontroli danych; bazy danych będzie zajmował się zwłaszcza problematyką kontroli danych; jest on również odpowiedzialny za tworzenie kopii zapasowych baz danych.jest on również odpowiedzialny za tworzenie kopii zapasowych baz danych.

Page 42: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 42

Administrowanie Oracle

Ogólne pojęcia (różnica między administratorem bazy danych a administratorem danych)

Głównym narzędziem administratora danych i administratora bazy danych jest słownik danych.

Słownik danych jest sposobem zapisywania metadanych przedsiębiorstwa, to znaczy danych na temat danych (koncepcyjne słowniki danych, logiczne słowniki danych i fizyczne słowniki danych).

Koncepcyjne i logiczne słowniki danych są zazwyczaj domeną administratora danych. Fizyczne słowniki danych są domeną administratora bazy danych.

Uwaga! – Administrator bazy danych w wielu przypadkach pełni funkcję administratora danych. Administrator danych będzie uczestniczył w analizie i projektowaniu systemu baz danych.Administrator baz danych będzie zaangażowany w projektowanie fizyczne systemów baz danych.

Page 43: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 43

Administrowanie Oracle

Instalowanie, uruchamianie i zamykanie Oracle

System LINIUX:

Pozostawiam użytkownikowi albo zachęcam do odwołania się do bardzo dobrej książki autora: Michael Wesslera pt: „Administrowanie bazami danych Oracle w systemach UNIX i Linux”.

System WINDOWS:

Instalowanie przebiega według prostego kreatora.

Uruchamianie i zamykanie jest nieodzownie związane z konkretną instancją bazy danych; dla każdej instancji tworzy się w systemie oddzielna usługa. Oprócz tego na system Oracle składa się cała masa innych usług -> patrz następny slajd.

Page 44: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 44

Administrowanie Oracle

Instalowanie, uruchamianie i zamykanie Oracle

Nazwa Stan Typ uruchomienia Logowanie jako

Oracle OLAP 9.0.1.0.1 Ręczny System lokalny

Oracle OLAP Agent Ręczny System lokalny

OracleOraDeveloperAgent Ręczny System lokalny

OracleOraDeveloperClientCache Ręczny System lokalny

OracleOraHome90Agent UruchomionoAutomatyczny System lokalny

OracleOraHome90ClientCache Ręczny System lokalnyOracleOraHome90HTTPServer UruchomionoAutomatyczny System lokalnyOracleOraHome90ManagementServer Ręczny System

lokalnyOracleOraHome90PagingServer Ręczny System

lokalnyOracleOraHome90SNMPPeerEncapsulator Ręczny System lokalnyOracleOraHome90SNMPPeerMasterAgent Ręczny System lokalnyOracleOraHome90TNSListener UruchomionoAutomatyczny System lokalnyOracleServiceKATMPBOR UruchomionoAutomatyczny System lokalny

Gdzie KatMPBOR jest to nazwa bazy danych.

Page 45: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 45

Administrowanie Oracle

Instalowanie, uruchamianie i zamykanie Oracle

Zamykanie konkretnej instancji bazy danych może odbywać się na trzy sposoby:

1. shutdown; - czeka aż wszyscy użytkownicy skończą sesje;2. shutdown immediate; - cofa wszystkie transakcje użytkowników i

zamyka instancje bazy danych;3. shutdown abort; - zamyka wszystkie połączenia użytkowników z bazą

danych nie czekając na ich rozłączenie i przerywa wszystkie transakcje.

Uwaga! – Aby wyłączyć bazę danych Oracle9i, należy najpierw nawiązać z nią połączenie przy użyciu uprawnień sysdba.

SQL> connect / as sysdba

Page 46: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 46

Administrowanie Oracle

Konfigurowanie i zarządzanie uprawnieniami użytkowników

Podczas instalacji Oracle9i tworzona jest w systemie operacyjnym grupa uprawnień o nazwie ORA_DBA i jej członkiem staje się użytkownik który odpowiada za instalacje Oracle9i. Użytkownika ten może się logować do bazybez używania hasło i loginu, wystarczy wpisać w programie SQL Plus polecenie:

SQL> connect / as sysdba

Dzięki temu uprawnieniu możemy wykonywać większość działań administracyjnych. Oprócz tego tworzony jest użytkownika sys z hasłem change_on_install i użytkownika system z hasłem manager. Dzięki temu ostatniemu możemy wykonywać export i import bazy danych.

Uwaga! – Gdy zalogujemy się do systemu operacyjnego jako inny użytkownik niż ten który instalował system Oracle, to nie możemy logować się do bazy z przywilejem sysdba.

Page 47: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 47

Administrowanie Oracle

Konfigurowanie i zarządzanie uprawnieniami użytkowników

Tworzenie kont użytkowników (SQL)

CREATE USER nazwa_użytkownika IDENTIFIED BY hasło PROFILE nazwa_profilu DEFAULT TABLESPACE nazwa_przestrzeni_tabel QUOTA wielkość_przydzielona_na_tablespace ON nazwa_przestrzeni_tabel TEMPORARY TABLESPACE nazwa_przestrzeni_tabelQUOTA UNLIMITED ON nazwa_przestrzeni_tabelACCOUNT UNLOCK/LOCK;

GRANT CONNECT TO nazwa_użytkownika;

Rola

Page 48: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 48

Administrowanie Oracle

Konfigurowanie i zarządzanie uprawnieniami użytkowników

Tworzenie kont użytkowników (SQL)

Przykład!

create user katmpb identified by katmpb profile defaultdefault tablespace dane quota 10m on danetemporary tablespace temp quota unlimited on tempaccount unlock;

grant connect to katmpb;

Page 49: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 49

Administrowanie Oracle

Konfigurowanie i zarządzanie uprawnieniami użytkowników

Role są to kontenery do przechowywania uprawnień.Wykorzystując to rozwiązanie administrator tworzy rolę w bazie danych, przydziela uprawnienia do tej roli a następnie przypisuje je wymaganemuużytkownikowi.

Polecenie SQL do tworzenia roli:

create role nazwa_roli not identified;

grant (system_privileges or object_privileges) to nazwa_roli;…grant (system_privileges or object_privileges) to nazwa_roli;…

Page 50: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 50

Administrowanie Oracle

Konfigurowanie i zarządzanie uprawnieniami użytkowników

Object privileges:

-ALTER;-DELETE;-EXECUTE;-INDEX;-INSERT;-ON COMMIT REFRESH – nie znalazłem w dokumentacji; -QUERY REWRITE – nie znalazłem w dokumentacji; -READ;-REFERENCES - tworzenie ograniczeń na tabeli;-SELECT;-UNDER;-UPDATE;-WRITE.

Uwaga! - Różne prawa są dostępne dla różnych obiektów w bazie danych.Np. Obiekt table posiada uprawnienia: alter, delete, index, insert, on commit refresh, query rewrite,

references, select i update.

Page 51: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 51

Administrowanie Oracle

Konfigurowanie i zarządzanie uprawnieniami użytkowników

System privileges (tylko te które znajdują się standardowo w roli connect):

-alter session;-create cluster;-create database link;-create sequence;-create session;-create synonym;-create table;-create view.

Uwaga! - W przypadku gdy chcemy nadać użytkownikowi tylko prawa do przeglądania tabeli innego użytkownika, to oprócz przywileju select, należy nadać mu prawa alter session i create session.

Page 52: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 52

Administrowanie Oracle

Konfigurowanie i zarządzanie uprawnieniami użytkowników

Usuwanie kont użytkowników (SQL)

drop user nazwa_użytkownika;

Page 53: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 53

Administrowanie Oracle

Tworzenie bazy danych

Tworzenie bazy danych można przeprowadzić na dwa sposoby zarówno wWindowsach jak i Linuksach.

Pierwsza z metod to skorzystanie z kreatora, nie będę się na ten temat więcejrozwodził.

Druga metoda jest znacznie trudniejsza i polega na utworzeniu całej masyskryptów oraz pliku INIT.ora.

Uwaga! - Przykład utworzenia bazy danych (BSzablon) metodą drugązamieszczam w przykładach dotyczący tej prezentacji.

Link: BSzablon.rar

Page 54: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 54

Administrowanie Oracle

Pliki konfiguracyjne bazy danych

Plik INIT.ora jest odczytywany po uruchomieniu instancji bazy danych Oracle9i.

Przykład!db_block_size=4096db_cache_size=33554432open_cursors=300background_dump_dest=C:\OraHome90\admin\KatMPBOr\bdumpcore_dump_dest=C:\OraHome90\admin\KatMPBOr\cdumptimed_statistics=TRUEuser_dump_dest=C:\OraHome90\admin\KatMPBOr\udump

db_domain=""remote_login_passwordfile=EXCLUSIVE control_files=("C:\OraHome90\oradata\KatMPBOr\CONTROL01.CTL", "C:\OraHome90\oradata\KatMPBOr\CONTROL02.CTL", "C:\OraHome90\oradata\KatMPBOr\CONTROL03.CTL") dispatchers="(PROTOCOL=TCP)(SER=MODOSE)", "(PROTOCOL=TCP)(PRE=oracle.aurora.server.GiopServer)", "(PROTOCOL=TCP)(PRE=oracle.aurora.server.SGiopServer)„

compatible=9.0.0db_name=KatMPBOr

instance_name=KatMPBOr java_pool_size=33554432large_pool_size=1048576shared_pool_size=33554432 processes=150 fast_start_mttr_target=300 sort_area_size=524288 undo_management=AUTOundo_tablespace=UNDOTBS

utl_file_dir = C:\OraHome90\@PlikiUzytkownikowDostepneZBazyDanych

Log_archive_start=TRUELog_archive_dest='C:\OraHome90\oradata\KatMPBOr\Backup'Log_archive_format=arch_%s.arc

Page 55: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 55

Administrowanie Oracle

Pliki konfiguracyjne bazy danych

Uwaga! – Niektóre zmiany parametrów pliku INIT.ora wymagają przerestartowania bazy danych inne zaś zaczynają obowiązywać gdyużytkownik rozpocznie sesję z bazą jeszcze inne obowiązują natychmiastpo ich wprowadzeniu i zapisaniu do pliku.

Page 56: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 56

Administrowanie Oracle

Kopie zapasowe

Eksport i import

Narzędzie eksportu, zwane popularnie exp, odpowiada za wykonywanie binarnych kopii danych użytkownika, które mogą być odczytywane przez jegoprogram siostrzany – imp.

Rola mechanizmu eksportu w tworzeniu kopii zapasowych:

- Wypełnienie całkowicie nowej bazy danych po pomyślnym wykonaniu poleceniacreate database;- Przeniesienie danych z jednego serwera na drugi;- Wykonanie kopii danych jednego użytkownika w schemacie innego użytkownika;- Wygenerowanie szeregu instrukcji SQL, które posłużą do tworzenia tabel,indeksów i ograniczeń użytkownika;

Page 57: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 57

Administrowanie Oracle

Kopie zapasowe

Eksport i import

- Zapisanie pliku danych wyjściowych, zawierającego wszystkie instrukcje SQLniezbędne do odtworzenia infrastruktury obsługującej bazę danych Oracle9i.

Tryby pracy programu eksportu:

- tryb interaktywny;- tryb wiersza polecenia;- tryb pliku konfiguracyjnego.

Typy eksportu:

- pełny (full);- użytkownik;- tabela.

Page 58: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 58

Administrowanie Oracle

Kopie zapasowe

Eksport i import

Przykład!

C:>exp userid=system/manager \ grants=Y rows=Y owner=katmpb buffer=1000000 file=C:\backup.dmp

Page 59: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 59

Administrowanie Oracle

Kopie zapasowe

Eksport i import

Narzędzi importu, wywoływane przy użyciu polecenia imp, odczytuje plikiutworzone przez narzędzie eksportu a następnie na podstawie instrukcji wydanych przez użytkownika umieszcza dane i definicje danych w bazie danychOracle9i.

Rola mechanizmu importu w odtwarzaniu danych:

- Przywracanie kopii obiektu z momentu tworzenia pliku eksportu;- Pomoc w odzyskiwaniu wierszy danych tabeli, która mogła zostać usunięta wwyniku błędu w programie;- Przeniesienie danych z bazy danych Oracle9i działającej w jednym systemieoperacyjnym do innej platformy sprzętowej.

Page 60: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 60

Administrowanie Oracle

Kopie zapasowe

Eksport i import

Tryby pracy programu importu:

- tryb interaktywny;- tryb wiersza polecenia;- tryb pliku konfiguracyjnego.

Typy importu:

- pełny (full);- użytkownik;- tabela.

Page 61: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 61

Administrowanie Oracle

Kopie zapasowe

Eksport i import

Przykład!

C:>imp userid=system/manager ignore=Y tables=test fromuser=katmpb touser=tester file=C:\katmpb_backup.dmp

Page 62: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 62

Administrowanie Oracle

Kopie zapasowe

Funkcje odtwarzania nośników

Czynności polegające na odtwarzaniu części lub całości bazy danych Oracle9ipo wystąpieniu ogólnie rozumianej awarii są łącznie określane mianemodtwarzania nośników.

Awaria jest przeważnie wynikiem zaistnienia jednego z trzech powodów:

-błąd operatora;-błąd programowania;-awaria nośnika.

Page 63: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 63

Administrowanie Oracle

Kopie zapasowe

Funkcje odtwarzania nośników

Tworzenie kopii zapasowych „na gorąco” i „na zimno”

- Tworzenie kopii zapasowych „na gorąco” umożliwia tworzenie kopii plików danych i tylko tych plików przy otwartej bazie danych.- Tworzenie kopii zapasowych „na zimno” umożliwia tworzenie kopii plików danych, plików sterujących i dzienników powtórzeń przy zamkniętej baziedanych.

Praca w trybie archiwizacji dzienników powtórzeń

Uwaga! - Aby kolejne kopie bazy danych były spójne, baza musi najpierw zostaćprzeniesiona do trybu archiwizacji dzienników powtórzeń (odpowiednie wpisy wpliku INIT.ora + kilka operacji).

Page 64: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 64

Administrowanie Oracle

Kopie zapasowe

Zagadnienie związane z kopiami zapasowymi jest bardzo obszerne dlategow celu głębszego jego poznania autor odsyła do literatury .

Uwaga! - Oracle Enterprise Manager

Wszystko co do tej pory było omówione jak i również to co będzie omawiane,można robić z poziomu graficznego narzędzia o nazwie Oracle Enterprise Manager.

Page 65: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 65

Transakcje

Czym są transakcje? ANSI SQL a transakcje Obsługa transakcji dla wielu użytkowników

(poziomy izolacji ANSI, podstawowa terminologia)

Oracle i transakcje

Page 66: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 66

Transakcje i blokowanie

Czym są transakcje?

Transakcja to niepodzielny logicznie blok instrukcji.

Czym jest blok instrukcji?Jest to zbiór modyfikacji w bazie danych, który musi być albo wykonany w całości, albo niewykonany w całości.

Zasady ACID (Atomic [atomosość], Consistent [spójność], Isolated [izolacja], Durable [trwałość]) oznaczają własności jakie powinna posiadać transakcja:

-Atomowość: transakcja, nawet jeżeli składa się na nią grupa operacji, musi działać jako pojedyncza instrukcja.-Spójność: na końcu transakcji baza danych musi być spójna.-Izolacja: oznacza, że każda transakcja, niezależnie od ilości rozpoczętych transakcji w systemie, musi być niezależna od innych.-Trwałość: po zakończeniu transakcji jej wyniki muszą być wprowadzone do systemu (zwykle realizowane poprzez dzienniki transakcji).

Page 67: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 67

Transakcje i blokowanie

ANSI SQL a transakcje

W standardzie SQL transakcje są kontrolowane za pomocą trzech instrukcji:

-BEGIN WORK (instrukcja nadmiarowa)-COMMIT-ROLLBACK

Page 68: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 68

Transakcje i blokowanie

Obsługa transakcji dla wielu użytkowników

Jednym z najtrudniejszych do zrealizowania aspektów relacyjnych baz danych jest izolacja poszczególnych użytkowników w czasie aktualizacji bazy danych.

Standard SQL definiuje różne poziomy izolacji, jakie może zapewnić baza danych.

Definicja ANSI/ISO poziomu izolacji

Niespójność odczytów

Niepowtarzalność odczytów

Fantomy

Read uncommitted Dopuszczalne Dopuszczalne Dopuszczalne

Read committed Niedopuszczalne Dopuszczalne Dopuszczalne

Repeatable read Niedopuszczalne Niedopuszczalne Dopuszczalne

Serializable Niedopuszczalne Niedopuszczalne Niedopuszczalne

Uwaga! - instrukcja do zmiany poziomów izolacji definiowana przez ANSI SQL: set transaction isolation level.

Page 69: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 69

Transakcje i blokowanie

Obsługa transakcji dla wielu użytkowników

Instrukcja do zmiany poziomów izolacji w Oracle9i ma następującą składnie:

Page 70: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 70

Transakcje i blokowanie

Obsługa transakcji dla wielu użytkowników

-Niespójność odczytów występuje, gdy jedna transakcja SQL może odczytać dane zmieniane przez drugą transakcje, chociaż transakcja zmieniająca dane nie zatwierdziła zmian.-Niepowtarzalność odczytów powoduje, że transakcja może „widzieć” zmiany zatwierdzone przez inne transakcje, nawet jeżeli sama podczas odczytu nie jest zatwierdzona.-Odczyty fantomowe występują podczas dodawania wierszy do tabeli w czasie, gdy druga tabela aktualizuje ja. Powinien zostać zaktualizowany również nowy wiersz – a nie jest.

Page 71: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 71

Transakcje i blokowanie

Obsługa transakcji dla wielu użytkowników

Nie można zagnieżdżać transakcji. Jedynie kilka baz danych obsługuje mechanizm punktów kontrolnych przez SQL, w których ustawia się znaczniki fragmentów transakcji i wycofanie jest przeprowadzone jedynie do określonego punktu kontrolnego. Oracle daje taką możliwość (patrz przykład w

następnych slajdach).

Page 72: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 72

Transakcje i blokowanie

Oracle i transakcje

Transakcja w Oracle9i rozpoczyna się od pierwszej instrukcji SQL, wydanej po poprzedniej transakcji lub pierwszą instrukcją SQL po nawiązaniu połączenia z bazą danych. Transakcja kończy się instrukcją COMMIT [WORK] lub ROLLBACK [WORK].

Przykład! - Procedura PL/SQL z wykorzystaniem transakcji.

CREATE OR REPLACE PROCEDURE "KATMPB".„TEST" isbegin update konta set saldo = saldo – kwota_transakcji where nr_konta = konto_nadawcy; update konta set saldo = saldo + kwota_transakcji where nr_konta = konto_odbiorcy; COMMIT;end;

Page 73: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 73

Transakcje i blokowanie

Oracle i transakcje

Przykład! - Procedura PL/SQL z wykorzystaniem transakcji i SAVEPOINT.

CREATE OR REPLACE PROCEDURE "KATMPB"."TEST"

as SAVEPOINT A;

begin

update konta set saldo = saldo – kwota_transakcji where nr_konta = konto_nadawcy; SAVEPOINT A; update konta set saldo = saldo + kwota_transakcji where nr_konta = konto_odbiorcy; ROLLBACK TO A:

COMMIT;

end;

Page 74: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 74

Transakcje i blokowanie

Oracle i transakcje

Segmenty wycofywania / przestrzeń tabel cofania.

Niezależnie od formatu wybranego do zarządzania funkcjami wycofywania operacji wykonywanych na bazie danych, informacje te odgrywają kluczową rolę we wdrażaniu modelu spójności odczytu. Przy wielu sesjach użytkownika, w których jednocześnie są wykorzystywane te same dane, model ten zapewnia transakcjom każdej sesji uzyskiwanie dostępu do wartości w kolumnach bazy danych przez cały czas trwania tych transakcji.

Page 75: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 75

Transakcje i blokowanie

Oracle i transakcje

Blokady i zatrzaski

Blokady w programie Oracle9i gwarantują, że operacje w różnych sesjach nie mogą wchodzić w interakcje z danymi wykorzystywanymi już w innych sesjach. Interakcja oznacza wszystkie działania, inne niż związane z zastosowaniem instrukcji select (odczytem). Mechanizm blokady zapewnia ochronę integralności danych i jest obsługiwany automatycznie przez system Oracle9i. Blokady są uruchamiane w momencie, gdy instrukcje SQL rozpoczynają interakcje z danymi i trwają przez cały czas realizacji transakcji. W systemie Oracle9i obsługiwane są dwa tryby blokad: w trybie wyłączności i w trybie wspólnego użytkowania. System Oracle9i zgłasza żądanie o uruchomienie blokady w możliwie najmniej restrykcyjnym trybie.

Uwaga! – System Oracle9i może okresowo konwertować pewne blokady wierszy na blokady tabeli.

Page 76: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 76

Transakcje i blokowanie

Oracle i transakcje

Blokady i zatrzaski

Zatrzaski są mechanizmami niskiego poziomu, które pomagają w zarządzaniu wewnętrznymi operacjami systemu Oracle9i, pełnią one kluczową rolę w obsłudze instancji.

Zatrzaski i blokady mogą prowadzić do sytuacji, w których oczekiwanie na realizację procesu będzie trwało dość długo.

Page 77: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 77

Przetwarzanie rozproszone

Partycjonowanie aplikacji przy wykorzystaniu przetwarzania rozproszonego

Pliki konfiguracyjne Oracle Net Łącza baz danych i ich rola

Page 78: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 78

Przetwarzanie rozproszone

Partycjonowanie aplikacji przy wykorzystaniu przetwarzania rozproszonego

„Najczęstszym źródłem niezadowolenia użytkowników systemów komputerowych są ich niska wydajność lub słaba dostępność. Przetwarzanie rozproszone pozwala zmniejszyć te niedogodności przez następujące operacje.”

- Funkcje wymagające dużych mocy obliczeniowych można rozdzielić pomiędzy kilka serwerów;- Poszczególne funkcje aplikacji można przypisać do różnych serwerów;- Przechowywanie stosunkowo niewielkiej liczby danych na każdym z węzłów systemu oznacza skrócenie czasu wykonywania kopii zapasowych i ewentualnego przywracania danych;- Kiedy jakaś awaria serwera spowoduje niedostępność aplikacji na jednym z węzłów systemu, nie wpływa to na dostępność pozostałych komponentów systemu.

Page 79: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 79

Przetwarzanie rozproszone

Oracle Net

Oracle Net to kręgosłup środowiska przetwarzania rozproszonego Oracle9i.Sercem środowiska Oracle Net są procesy nasłuchujące, prowadzące nasłuch na określonym porcie komputera włączonego do sieci.Podstawowymi plikami konfiguracyjnymi wykorzystywanymi w Oracle Net są:

- listener.ora- tnsnames.ora

Plik listener.ora opisuje środowisko, w ramach którego są obsługiwane żądania nawiązania połączenia z usługą. Po uruchomieniu na danym węźle procesu nasłuchującego przechwytuje on żądania przesyłane na określony port serwera i przekazuje je do odpowiedniej bazy danych Oracle9i.

Page 80: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 80

Przetwarzanie rozproszone

Oracle Net

Plik listener.ora

# LISTENER.ORA Network Configuration File: C:\OraHome90\network\admin\listener.ora# Generated by Oracle configuration tools.

LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = katmpb)(PORT = 1521)) ) ) )

SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = C:\OraHome90) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = KatMPBOr) (ORACLE_HOME = C:\OraHome90) (SID_NAME = KatMPBOr) -> odnosi się do logicznego „uchwytu” wykorzystywanego w odwołaniach do baz danych Oracle9i. Jest to rodzaj

identyfikatora ułatwiającego kierowanie żądań nawiązania połączenia do odpowiedniej bazy danych.

) )

Page 81: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 81

Przetwarzanie rozproszone

Oracle Net

Plik tnsnames.ora w przeciwieństwie do pliku konfiguracyjnego listener.ora, przechowywanego na serwerze, na którym uruchomione zostały bazy danych Oracle9i jest plikiem o zasięgu korporacyjnym, który powinien znaleźć się w każdym systemie, w którym działają klienty zdalnych baz danych Oracle9i.Uwaga! – Niezależnie od architektury systemowej (dwu- czy trójwarstwowej), plik tnsnames.ora musi być dostępny dla każdego klienta.

Trójwarstwowa architektura klient-serwer

Klient działający w środowisku Windows 2000 Serwer bazy danych

na platformieSun Solaris

Serwer aplikacji

tnsnames.ora tnsnames.ora

listener.ora

tnsnames.ora

Rozmieszczenie w jednym lub niekiedy obu systemach

Page 82: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 82

Przetwarzanie rozproszone

Oracle Net

Plik tnsnames.ora

KATMPBOR = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = kattserv.no-ip.com)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = KatMPBOr) ) )

INST1_HTTP = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = katmpb)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = SHARED) (SERVICE_NAME = MODOSE) (PRESENTATION = http://HRService) ) )

EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)) ) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO)) )

Page 83: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 83

Przetwarzanie rozproszone

Oracle Net

Pliki listener.ora i tnsnames.ora można konfigurować ręcznie albo przy pomocy narzędzia dostarczonego wraz z pakietem Oracle9i o nazwie Network Configuration Assistant.

Page 84: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 84

Przetwarzanie rozproszone

Łącza baz danych i ich rola

Aby użytkownik mający konto na jednej bazie danych mógł korzystać z baz danych na innych serwerach w ramach środowiska rozproszonego musi być utworzony obiekt database link dostępny temu użytkownikowi (mający do niego odpowiednie prawa). Oprócz tego musi być utworzona cała masa obiektów tzw. synonimów tabel.

Przykład!

CREATE PUBLIC DATABASE LINK „NAZWA_LINKU" CONNECT TO „użytkownik" IDENTIFIED BY "password" USING 'KATMPBOR‘

CREATE SYNONYM „użytkownik2".„nazwa_synonimu" FOR „użytkownik".„nazwa_tabeli"@LINK_NAZWA_LINKU.US.ORACLE.COM

Page 85: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 85

Oracle a Internet (Java)

Technologia Enterprise Java Engine (EJE) Rola języka Java w bazach danych

Page 86: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 86

Oracle a Internet (Java)

Technologia Enterprise Java Engine (EJE)

Korzystanie z baz danych Oracle jako kluczowych elementów aplikacji internetowych zapoczątkowane zostało w wersji 8i baz danych Oracle. Wersja ta zawierała oprogramowanie przystosowane do działania w sieci Internet, umożliwiając wyprowadzanie aplikacji z baz danych. Umieszczenie w bazach danych oprogramowania obsługi sieci Internet to rozwiązanie skalowalne. Kiedy korporacja Oracle wprowadziła Javę do baz danych (w wydaniu 8.1.5), wyposażyła pakiet w komponent o nazwie JServer. JServer obsługuje język Java w wnętrza bazy danych, zwiększając bezpieczeństwo serwera i efektywność wykorzystania pamięci. W kolejnych wersjach oprogramowania bazodanowego Oracle (8.1.6) JServer zastąpiono wirtualną maszyną Javy. W Oracle9i środowisko JVM przemianowano na Enterprise Java Engine (EJE). EJE to całościowa architektura obsługująca dużą liczbę metod dostępu, rodzajów oprogramowania klienckiego i warstw dostępu użytkowników.

Page 87: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 87

Oracle a Internet (Java)

Technologia Enterprise Java Engine (EJE)

Schemat architektury EJEWarstwa klienta

(JVM)Warstwa pośrednicząca

serwer aplikacji

Warstwa bazydanych

Minimalny sterownik JDBC

Sterownik OCI JDBC

Oracle9i Application Server

JVM

Sterownik JDBC OCI

Klient EJB

Klient

Klient

Klient

Baza danych Oracle9i (EJE)

Moduł SQL Moduł PL/SQL

JDBC Server Driver

Tłumacz języka SQLJ po stronie serwera

Java Virtual Engine (ORB)

Serwer EJB Biblioteki klas

IIOP Moduł serwletów

Gniazda

Oracle Net

HTTP

RMI/IIOP

HTTP

Oracle Net

IIOP

Page 88: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 88

Oracle a Internet (Java)

Technologia Enterprise Java Engine (EJE)

Komunikacja z bazą danych

Istnieje wiele różnych sposobów komunikowania się z bazą danych. Wielkość metod komunikacji dotyczy tak bezpośredniego dostępu do danych, jak i dostępu za pośrednictwem serwera aplikacji.

Możliwe protokoły komunikacyjne stosowane w EJE:

- Oracle Net oraz TCP/IP – aby umożliwić komunikowanie się klientów z bazą danych przez ten protokół na każdym kliencie musi być zainstalowane oprogramowanie Oracle Net oraz oprogramowanie implementujące protokół (TCP/IP);- IIOP – warstwa prezentacji – ten protokół jest bezpośrednio związany z technologią CORBA i Enterprise Java Beans (EJB);- gniazda – warstwa transportowa – komunikacja polega na otwarciu gniazda i zapisu do lub odczytu z tego gniazda;- HTTP – warstwa aplikacji – ten protokół umożliwia przesyłanie żądań bezpośrednio do bazy danych lub serwera aplikacji i odbierania z serwera stron WWW konstruowanych na podstawie zawartości bazy danych.

Page 89: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 89

Oracle a Internet (Java)

Rola języka Java w bazach danych

Jednym z najcenniejszych właściwości baz danych Oracle9i jest włączenie do mechanizmu obsługującego bazę danych interpretera języka Java. Obsługa Javy w bazach danych Oracle9i oznacza możliwość przechowywania w bazie danych programów w języku Java i ich wykonywanie, tak jak zwykłych programów PL/SQL.Środowisko WWW zostało rozszerzone o nowy paradygmat – stanowi swojego rodzaju miniaturowy system operacyjny, podobny do systemów takich jak Windows czy Unix w tym, że aplikacje Javy uruchamiane w przeglądarce WWW są w bardzo małym stopniu zależne od cech systemu operacyjnego. Ich „systemem operacyjnym” jest sama przeglądarka. Niestety, przeciwwskazaniem do stosowanie apletów w „poważnych” zastosowaniach jest długi czas ładowania i powolność działania apletów. Dzięki serwletom – apletom Javy wykonywanym po stronie serwera – aplikacje rozproszone w języku Java zyskują nowe oblicze, znakomicie sprawdzają się w dziedzinie poważnych zastosowań wymagających dużej skalowalności.

Page 90: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 90

Oracle a Internet (Java)

Rola języka Java w bazach danych

Czynności wymagane do realizacji zapytania do bazy danych, inicjowanego za pośrednictwem sterownika JDBC:

- Zarejestrowanie sterownika;- Nawiązanie połączenia z bazą;- Utworzenie zapytania SQL;- Wykonanie zapytania;- Wygenerowanie zbioru wynikowego;- Przetworzenie (wiersz po wierszu) zbioru wynikowego;- Przypisanie wyników do zmiennych Javy;- Zwolnienie zasobów (zbioru wynikowego, zapytania, połączenia).

Uwaga! – Przykład takiej aplikacji można zobaczyć w mojej prezentacji dotyczącej MySQL-a, składnia poleceń jest taka sama.

Page 91: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 91

Oracle a Internet (Java)

Rola języka Java w bazach danych

Przykład!

CREATE OR REPLACE JAVA SOURCE NAMED "KATMPB"."JAVAWITAJ" AS public class Witaj { public static java.lang.String piszWitaj(java.lang.String pvar) { return "Witaj " + pvar; }}

Do uruchomienia tego obiektu potrzebny jest jeszcze jeden obiekt składowany np. function.

CREATE OR REPLACE FUNCTION "KATMPB"."PISZ_WITAJ" (pstr varchar2) return varchar2 as language Java name 'Witaj.piszWitaj(java.lang.String) return java.lang.String';

Page 92: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 92

Oracle Application Server

Serwer aplikacji Oracle9i

Serwery aplikacji to programy obsługujące wszelkie operacje związane z komunikowaniem się użytkowników ze stanowiącymi szkielet systemu aplikacjami, korzystającymi z bazy danych Oracle9i. Serwery aplikacji są stosowane zazwyczaj w złożonych, wykorzystujących transakcje aplikacjach. Aby sprostać wysokim wymaganiom, korporacyjny serwer aplikacji musi być wyposażony w wysoko dostępne, wydajne rozproszone usługi i obsługiwać złożone metody dostępu do bazy danych.Ewolucja serwerów aplikacji:

Oracle Web Server -> Oracle Application Server -> Internet Application Server.(Spyglass HTTP) (Apache)

Oracle9iAS jest obecnie oferowany w czterech odmianach: Minimal, Standard Edition, Enterprise Edition i Wireless Edition.

Page 93: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 93

Oracle Application Server

Schemat trójwarstwowej architektury, popularnej dla systemów udostępniania danych w Internecie

Warstwa II:serwer aplikacji

Warstwa I:klient

Warstwa III:baza danych

Klient Logika aplikacji

Serwer aplikacji Oracle9i

BazaDanychOracle9i

Page 94: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 94

Oracle Application Server

Architektura Oracle9iAS

Usługi komunikacyjne Usługi buforowaniaUsługi prezentacjiUsługi Business Logic

Server HTTPOracle (Apache)

Moduł dla serwera Microsoft IIS

Oracle BC4J

Usługi zarządzania treścią Usługi wspomagania decyzjiUsługi Portalowe

Maszyna Wirtualna Javy

PL/SQL

Oracle Forms

Oracle JSP

Oracle PSP

Apache JServer

Perl

Buforowanie bazydanych

Buforowanie stronWWW

Internetowy system plików iFS

Oracle Portal

Portal-to-Go Oracle Discoverer

Oracle Raports

Page 95: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 95

Oracle Application Server

Architektura Oracle9iAS – komponenty Communication Services

Podstawą modułu usług komunikacyjnych jest serwer HTTP Apache. Zestaw funkcji serwera Apache została rozszerzona za pośrednictwem dodatkowych modułów obsługujących komunikacje z bazą danych. Moduły te (mod_ssl, mod_perl, mod_plsql, mod_jserv oraz mod_ose) umożliwiają tworzenie aplikacji komunikujących się za pośrednictwem serwera HTTP z bazą danych.

Moduł mod_plsql umożliwia komunikację pomiędzy serwerem aplikacji a procedurami składowanymi, przechowywanymi w bazie danych. Dzięki takiej możliwości funkcjonalność bazy danych jest udostępniania w Internecie.

Moduł mod_jserv przekazuje odwołania do serwletów Javy.

Typowy serwlet Javy wywołuje procedury składowane PL/SQL i wyświetla rezultaty ich działania w formie tabeli języka HTML.

Page 96: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 96

Oracle Application Server

Architektura Oracle9iAS – komponenty Business Logic Services

Po zapewnieniu poprawnej komunikacji pomiędzy serwerem pośredniczącym a użytkownikami i bazą danych należy przystąpić do implementacji samej aplikacji. W tym celu można wykorzystaćfunkcje Business Logic Services, zawarte w Oracle9iAS. Funkcje te wspomagają działanie aplikacji; poszczególne komponenty BLS pozwalają aplikacji na korzystanie z XML, Javy czy procedur PL/SQL oraz do dostosowywania formularzy do prezentacji w sieci WWW.

-Komponenty BC4J są gotowymi do wykorzystania komponentami, ułatwiającymi konsekwentną implementację reguł biznesowych w aplikacji.

-JVM to działająca po stronie serwera platforma wykonawcza Javy obsługująca komponenty EJB, serwery CORBA i procedury składowane bazy danych. JVM zaimplementowana w Oracle9iAS obsługuje usługi Javy w warstwie pośredniczącej i bazie danych.

Page 97: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 97

Oracle Application Server

Architektura Oracle9iAS – komponenty Business Logic Services

-PL/SQL umożliwia użytkownikom komunikowanie się z procedurami składowanymi języka PL/SQL, przechowywanymi w bazie danych. Procedury składowane PL/SQL pobierają dane z bazy danych i zwracają je np. w formacie HTML.

-Oracle Forms (usługi Forms Services) dają możliwość wyświetlania formularzy utworzonych przy pomocy pakietu Oracle Developer Suite9i w przeglądarkach internetowych. Dzięki temu można zaniechać tworzenia aplikacji w architekturze klient – serwer. Korporacja Oracle od pewnego czasu przestała wspierać model klient - serwer.

Page 98: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 98

Oracle Application Server

Architektura Oracle9iAS – komponenty Presentation Services

Kolejnym etapem podróży po możliwościach serwera aplikacji będzie zaprezentowanie tych elementów serwera aplikacji, które są najbliższe użytkownikom końcowym systemu. Tę możliwość dają komponenty Presentation Services.

-Apache JServ jest platformą wykonawczą serwletów Javy. Na potrzeby Oracle9iAS JServ został tak skonfigurowany, aby współpracował z serwerem Apache i maszyną wirtualną Javy, działającą wewnątrz serwera aplikacji.

-Java Server Pages (JSP) jest oparta na technologii serwletów Javy i umożliwia tworzenie i prezentowanie stron w tej technologii.

-Perl podobnie jak JSP.

Page 99: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 99

Oracle Application Server

Architektura Oracle9iAS – komponenty Presentation Services

-PL/SQL Server Pages (PSP) można określić jako przynależną do Oracle wersję Java Server Pages, wykorzystującą zamiast języka Java język PL/SQL.

CREATE OR REPLACE PROCEDURE "KATMPB"."TEST_PSP" AS BEGIN NULL;htp.prn('<html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><meta name="Author" content"KatMPB"><title> TestKatMPB (PSP) </title></head><body>Witam w bazie danych Oracle9i<p>’); declare zmp boolean; begin zmp := owa_util.tableprint('Test', 'border=1 cellspacing=4 cellpadding=4 width=100%'); end;htp.prn('</body></html>'); END;

Przykład!

Uwaga! - Następnie taki obiekt należy umieścić w bazie danych za pomocą

polecenia: loadpsp

Page 100: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 100

Oracle Application Server

Architektura Oracle9iAS – usługi buforowania

Pobierając dane z korporacyjnej bazy danych czy oglądając korporacyjną stronę WWW użytkownicy odwołują się wciąż do tych samych baz danych i plików. Dlatego zarówno w warstwie bazy danych, jak i w warstwie pośredniczącej uaktywniany jest mechanizm buforowania. Dzięki temu system Oracle nie pobiera danych z bazy danych za każdym razem, kiedy użytkownik się do nich odwołuje. Dane są odczytywane z pamięci buforowej. Podobnie jest w przypadku stron WWW: dzięki buforowaniu na poziomie serwera aplikacji każdorazowe odwołanie do dokumentu HTML nie wymaga jego odczytu z dysku.Na czym polega buforowanie bazy danych? Na czym polega buforowanie stron WWW? odpowiedź znajdziecie w książce pt.:

„Oracle 9i - Przewodnik dla początkujących”

wyd. Oracle Press – BARDZO POLECAM

Page 101: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 101

Oracle Application Server

Architektura Oracle9iAS – usługi zarządzania treścią

System plików iFS służy do przechowywania w bazie danych plików dowolnego typu. Dzięki temu systemowi jest możliwe umieszczenie w bazie danych rysunku, dokumentu tekstowego czy dowolnego innego obiektu. Z punktu widzenia użytkowników pliki te można wykorzystywać tak samo, jak pliki przechowywane na serwerze pocztowym, serwerze plików czy na stronie WWW. Administracja systemem plików iFS nie różni się od zwykłej administracji korporacyjną bazą danych.

Mówiąc o systemie plików iFS nie mam na myśli kolumn typu LOB (BLOB, CLOB, NCLOB i BFILE).

System plików iFS jest również w pełni obsługiwany przez serwer aplikacji.

Page 102: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 102

Oracle Application Server

Architektura Oracle9iAS – usługi Oracle Portal

Usługi Oracle Portal umożliwiają konstruowanie witryn-portali, integrujących całą zawartość bazy danych na pojedynczej stronie WWW. Za pomocą usług Portal serwera aplikacji Oracle9i można udostępniać zawartość korporacyjnych portali zarówno użytkownikom korzystającym z połączeń stałych, jak i użytkowników mobilnych. Portal korporacyjny jest aplikacją WWW udostępniającą ujednoliconą i zintegrowaną bramę do rozmaitych danych korporacji, skupioną na pojedynczej stronie WWW.

Drugim modułem udostępniający usługi Portal jest przeznaczony do obsługi użytkowników korzystających z urządzeń przenośnych (bezprzewodowych) i nosi nazwę Portal-to-Go.

Page 103: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 103

Oracle Application Server

Architektura Oracle9iAS – usługi wspomagania decyzji

W dziedzinie komputerowego wspomagania podejmowania decyzji stosuje się bowiem modele zakładające gromadzenie danych generowanych przez system, ich analizę i późniejsze formatowanie. W przeszłości narzędzia analityczne wspomagające proces podejmowania decyzji były osobnymi produktami, w serwerze Oracle9iAS zostały one wbudowane do serwera aplikacji.

Raporty - dzięki rozszerzeniu serwera Oracle9iAS o moduł Oracle Reports Services i Reports Servlets możliwe jest uruchamianie raportów utworzonych za pomocą narzędzia Oracle Reports Developer w przeglądarkach korzystających z zasobów intranetu, extranetu i Internetu.

Oracle Discoverer 3i jest to narzędzi dzięki któremu można w łatwy sposób tworzyć strony internetowe korzystające z połączeń z bazą danych.

Page 104: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 104

Oracle Application Server

Formularze i raporty

Dzięki narzędziu Oracle Developer Suite 9i można tworzyć raporty i formularze które następnie można wykorzystać w aplikacjach bazujących na przeglądarkach.

O formularzach i raportach wspomniałem już we wcześniejszych slajdach omawiając Oracle Application Server.

Page 105: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 105

Partycjonowanie danych

Wstęp

Kiedy wiersz jest dodawany do standardowej tabeli, nie istnieje zależność pomiędzy wartościami w tym wierszu a tym, gdzie wiersz jest przechowywany. Oracle umieszcza wiersz tam, gdzie znajdzie wolną przestrzeń w bloku. Nie ma na to zwykle wpływu użytkownik, ponieważ Oracle wie, gdzie wiersz jest przechowywany i czyni dostęp do niego przezroczystym. Jednak podczas pracy ze szczególnie dużymi tabelami często jest zalecane przechowywanie danych w różnych przestrzeniach tabel w zależności od cech charakterystycznych każdego wiersza. Za tym kryje się właśnie mechanizm partycjonowania.

Partycjonowanie zezwala na zastąpienie jednego ogromnego segmentu danych wieloma małymi segmentami w innej przestrzeni tabel. Pozwala to na rozproszenie operacji I/O.

Page 106: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 106

Partycjonowanie danych

Po co partycjonować dane?

1. Tabele partycjonowane wykorzystują mniejsze pliki (np. nie większe niż

2GB). Archiwizacja takich plików jest dużo łatwiejsza niż archiwizacja plików

całych tabel;

2. Jeżeli baza danych została podzielona na mniejsze części, awaria sprzętu

spowoduje utratę mniejszej części danych;

3. Od czasu do czasu administrator współpracujący z obsługą techniczną

Oracle jest proszony o wykonanie analizy tabeli. Analiza ta przebiega znaczeni

szybciej, jeżeli tabele o wielu milionach wierszy zostaną podzielone na

partycje;

4. Poszczególne części tabeli mogą być poddawane czynnościom

konserwacyjnym, podczas gdy pozostałe partycje mogą być normalnie

wykorzystywane przez użytkowników.

Page 107: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 107

Partycjonowanie danych

Partycjonowanie zakresowe

Najprostszą i pierwszą stosowaną techniką partycjonowania tabel jest partycjonowanie zakresowe, dostępne od mniej więcej 1997 roku w bazach danych Oracle 8.0.

Obojętnie jaką metodę partycjonowania wybierzemy należy najpierw się zastanowić nad wyborem klucza partycjonowania.

Na wybór kolumny (kolumn) stanowiącej podstawę klucza partycjonowania mają wpływ trzy główne czynniki:1. Kolumna klucza partycjonowania musi być częścią predykatu zapytania SQL wybierającego dane z partycjonowanej tabeli;

2. Kolumna ta musi zawierać wystarczającą liczbę różnych wartości, aby możliwy był podział tabeli na odpowiednią liczbę partycji;

3. Po stwierdzeniu odpowiedniej liczby rozróżnialnych wartości kolumny należy zadbać o równomierny rozkład wartości kolumny, ponieważ wpływa on bezpośrednio na rozkład wierszy w partycjach

Page 108: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 108

Partycjonowanie danych

Partycjonowanie zakresowe

Przykład!

CREATE TABLE "KATMPB"."TEST" ("ID_DZIEN" NUMBER(10) NOT NULL, "TEXT" VARCHAR2(20 byte) NOT NULL, "DATA_DZIEN" DATE NOT NULL) TABLESPACE "DANE” STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0) LOGGING

PARTITION BY RANGE ("DATA_DZIEN") ( PARTITION "PARTYCJONOWANIE_TEST_P1" VALUES LESS THAN (TO_DATE(' 2004-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) TABLESPACE "DANE1" STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1) LOGGING, PARTITION "PARTYCJONOWANIE_TEST_P2" VALUES LESS THAN (TO_DATE(' 2005-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) TABLESPACE "DANE2" STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1) LOGGING, PARTITION "PARTYCJONOWANIE_TEST_P3" VALUES LESS THAN (TO_DATE(' 2006-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) TABLESPACE "DANE3" STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1) LOGGING, PARTITION "PARTYCJONOWANIE_TEST_PMAX" VALUES LESS THAN (MAXVALUE) TABLESPACE "DANE4" STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1) LOGGING);

Page 109: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 109

Partycjonowanie danych

Partycjonowanie zakresowe

Przykład!

CREATE INDEX KATMPB.IDX_TEST ON KATMPB.TEST ("DATA_DZIEN") LOCAL( PARTITION PARTYCJONOWANIE_TEST_IDX_P1 TABLESPACE DANEX1, PARTITION PARTYCJONOWANIE_TEST_IDX_P2 TABLESPACE DANEX2, PARTITION PARTYCJONOWANIE_TEST_IDX_P3 TABLESPACE DANEX3, PARTITION PARTYCJONOWANIE_TEST_IDX_PMAX TABLESPACE DANEX4);

Page 110: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 110

Partycjonowanie danych

Partycjonowanie zakresowe

Indeksowanie tabel partycjonowanych

Indeksy partycjonowane lokalnie:

- liczba partycji indeksu lokalnego jest dokładnie równa liczbie partycji indeksowanej tabeli;

- zapytanie tworzące indeks lokalny nie zawiera klauzuli values less than, ponieważ wartości graniczne są określane na podstawie wartości granicznych indeksowanej tabeli.

Indeksy partycjonowane globalnie:

- liczba partycji indeksu globalnego jest podawana jawnie;

- zapytanie tworzące indeks globalny zawiera klauzulę values less than, dzięki czemu możemy jawnie przypisywać wartości graniczne;

Page 111: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 111

Partycjonowanie danych

Partycjonowanie według listy

W przypadku partycjonowania według listy w poleceniu tworzącym tabelę mogą pojawić się konstrukcje podobne do poniższych.

CREATE TABLE "KATMPB"."TEST" ("ID_DZIEN" NUMBER(10) NOT NULL, "TEXT" VARCHAR2(20 byte) NOT NULL, „TYP” CHAR(1) NOT NULL) TABLESPACE "DANE” STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0) LOGGING

PARTITION BY LIST („TYP") ( PARTITION "PARTYCJONOWANIE_TEST_P1" VALUES (‘A’, ‘B’, ‘C’) TABLESPACE "DANE1" STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1) LOGGING …);

Page 112: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 112

Partycjonowanie danych

Partycjonowanie haszowane

W przypadku partycjonowania haszowanego wystarczy wskazać jedną do 16 kolumn klucza partycjonowania. Oracle9i automatycznie przydziela wiersze do określonej liczby partycji na podstawie zawartości kolumn klucza partycjonowania.

Przykład!

CREATE TABLE "KATMPB"."TEST" ("ID_DZIEN" NUMBER(10) NOT NULL, "TEXT" VARCHAR2(20 byte) NOT NULL, ”DZIELNICA” VARCHAR2(20) NOT NULL) TABLESPACE "DANE” STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0) LOGGING

PARTITION BY HASH („DZIELNICA") PARTITION 8STORE IN (adresy_pt1, adresy_pt2, adresy_pt3, adresy_pt4);

Page 113: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 113

Partycjonowanie danych

Jaki zastosować model partycjonowania?

Kwestią kluczową dla każdego modelu partycjonowania jest liczba wierszy tabeli oraz metoda dostępu (w jaki sposób są konstruowane zapytania SQL odwołujące się do obiektów

bazy danych).

Podejmując decyzję o progowej liczbie wierszy, kwalifikującej tabelę do partycjonowania, można skorzystać z dwóch kryteriów:

- liczba wierszy tabeli – do partycjonowania nadają się tabelę o liczbie wierszy przekraczającej 2 miliony (dane według książek wydawnictwa Oracle Press).

- liczba kolumn i liczba wierszy tabeli – „gruba” tabela, zawierająca tylko 700 000 wierszy może zajmować dużo więcej miejsca niż analogiczna tabela zawierająca jedynie 12 do 16 kolumn.

Page 114: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 114

Partycjonowanie danych

Jaki zastosować model partycjonowania?

Gdy do partycjonowania wyznaczono tabelę test (z racji jej zbyt dużych rozmiarów), należy przed przystąpieniem do podziału tabeli przeanalizować strukturę zapytań SQL odwołujących się do tej tabeli.

Analiza zapytań może np. doprowadzić do podjęcia decyzji o partycjonowaniu według listy. Oto przykład: pewien uniwersytet prowadzi zajęcia w siedmiu kierunkach: biologia, historia, fizyka, informatyka, chemia, astronomia i matematyki. Najintensywniej oblegane są kierunki informatyki i matematyki więc zapytania kierowane do bazy danych odwołują się głównie do nich. W takim przypadku pożądane jest zgrupowanie w jednej partycji dwóch najaktywniejszych kierunków.Przykład!

… partition p_rzadko values (‘biologia’, ‘historia’, ‘fizyka’, ‘chemia’) …

… partition p_czesto values (‘matematyka’, ‘informatyka’) …

Page 115: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 115

Partycjonowanie danych

Jaki zastosować model partycjonowania?

W przypadku gdy wiadomo, że zastosowanie partycjonowania zakresowego czy partycjonowania według listy nie zaowocuje eliminacją partycji podczas realizacji zapytania, należy spróbować partycjonowania haszowanego.

Tabela – Podsumowanie zalet wszystkich trzech typów partycjonowania.

Korzyść Partycjonowanie zakresowe

Partycjonowanie wg listy

Partycjonowanie haszowane

Eliminacja partycji X X

Równomierny rozkład wierszy X

Page 116: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 116

Partycjonowanie danych

Jaki zastosować model partycjonowania?

Uwaga! – W hurtowniach danych można pokusić się o równoczesne wykorzystanie zalet partycjonowania zakresowego (lub partycjonowania według listy) oraz partycjonowania haszowanego tworząc w ten sposób podział hybrydowy.

Page 117: Kurs Oracle i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs internetowy online

Autor: KatMPB 117

Ciastka, kawa i pytania.

Pytania można składać mailem: [email protected]

KatMPBWWW: http://katmpbsoft.blogspot.com