Bazy danych. Plan wykładu. Złczenia tabel. Perspektywy cd. Wykład 9: Programowanie aplikacji baz danych po stronie serwera. Sekwencje Wyzwalacze

Podobne dokumenty
Zaawansowane bazy danych i hurtownie danych semestr I

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne

Zaawansowane bazy danych i hurtownie danych semestr I, st. niestacjonarne

PODSTAWY BAZ DANYCH 13. PL/SQL

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Wyzwalacze. Anna Fiedorowicz Bazy danych 2

Język PL/SQL Procedury i funkcje składowane

Oracle PL/SQL. Paweł Rajba.

Cheatsheet PL/SQL Andrzej Klusiewicz 1/9

Bazy danych, 4. wiczenia

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.

Procedury i funkcje składowane

PL/SQL. Zaawansowane tematy PL/SQL. Piotr Medoń

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

Technologie baz danych WYKŁAD 7: Wyjątki

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

Procedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Bloki anonimowe w PL/SQL

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Pakiety podprogramów Dynamiczny SQL

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Używany kiedy pełna treść instrukcji SQL jest nieznana przed uruchomieniem programu.

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

Język PL/SQL Pakiety podprogramów

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy];

PL/SQL. Zaawansowane tematy PL/SQL

Oracle PL/SQL. Paweł Rajba.

15. Funkcje i procedury składowane PL/SQL

PL/SQL. Zaawansowane tematy PL/SQL

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;

Plan wykładu BAZY DANYCH II WYKŁAD 3. Zasięg zmiennych. Zasięg zmiennych

Bazy danych. Plan wykładu. Operacje w algebrze relacji. Pojcie algebry relacji. Wykład 8: Algebra relacji. SQL - cd

1 Wprowadzenie do bloków nazwanych 1. 2 Parametry 2. 3 Procedury i funkcje 3. 4 Pakiety 6. 5 Podsumowanie Źródła 10

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Technologie baz danych

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

1. Wyzwalacze BD (ang. triggers)

Procedury Funkcje Pakiety. Tworzenie procedury

Język PL/SQL. Rozdział 6. Procedury wyzwalane

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Ćwiczenie 13 PL/SQL. Język PL/SQL procedury, funkcje, pakiety, wyzwalacze

Procedury wyzwalane. Rozdział 13. Procedury wyzwalane. Cele stosowania procedur wyzwalanych. Definiowanie procedury wyzwalanej DML

Język SQL. Rozdział 8. Język manipulowania danymi DML

Oracle 12c: Nowości w SQL i PL/SQL

BAZY DANYCH W APLIKACJACH SIECIOWYCH

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

BAZA DANYCH SIECI HOTELI

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Hurtownia Świętego Mikołaja projekt bazy danych

Oracle11g: Programowanie w PL/SQL

Oracle Developer Suite. Budowa aplikacji użytkownika końcowego

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

1. ELEMENTY JĘZYKA PL/SQL

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Plan wykładu Projekt fizyczny bazy danych Wprowadzenie PL/SQL PL/SQL Cechy PL/SQL

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Cele. Definiowanie wyzwalaczy

Podprogramy. Rozdział 11 Procedury i funkcje składowane

Administracja i programowanie pod Microsoft SQL Server 2000

Język PL/SQL. Rozdział 4. Procedury i funkcje składowane

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Październik Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład III. dr inż.

Oracle10g: Programowanie w PL/SQL

Indeksy. Indeks typu B drzewo

Plan wykładu BAZY DANYCH II WYKŁAD 9. Dynamiczny SQL. Dynamiczny SQL

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

Tabele wykorzystywane w przykładach

CREATE TABLE autorzy ( id_autora SERIAL PRIMARY KEY, imie TEXT, nazwisko TEXT );

SQL 4 Structured Query Lenguage

Bloki anonimowe w PL/SQL

Wyzwalacze TWORZENIE WYZWALACZY

Wyzwalacze (triggery) Przykład

Zaawansowane bazy danych i hurtownie danych semestr I

CREATE SEQUENCE [schemat_użytkownika.]nazwa_sekwencji zestaw_parametrów_sekwencji ;

Aspekty aktywne baz danych

Plan wykładu PL/SQL. PL/SQL - historia TWORZENIE APLIKACJI BAZODANOWYCH

050 SQL ELEMENTY ZAAWANSOWANE. Prof. dr hab. Marek Wisła

Plan wykładu BAZY DANYCH II WYKŁAD 8. Wyzwalacze. Wyzwalacze

1 Kursory 1. 2 Wyjątki Wyjątki predefiniowane Wyjątki niezdefiniowane wcześniej Definiowanie własnych wyjątków...

SQL :: Data Definition Language

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

Plan wykładu BAZY DANYCH II WYKŁAD 7. Pakiety. Zalety pakietów

Tworzenie raportów XML Publisher przy użyciu Data Templates

Ćwiczenia 2 IBM DB2 Data Studio

Ćwiczenie 13 PL/SQL. Język PL/SQL procedury, funkcje, pakiety, wyzwalacze

Baza danych inside. Biologiczne Aplikacje Baz Danych

Bazy danych. Plan wykładu. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania A B

Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie.

Plan wykładu BAZY DANYCH II WYKŁAD 5. Kolekcje. Tablice asocjacyjne Kolekcje Tablice asocjacyjne VARRAY Tablice zagnieżdżone

Oracle11g: Wprowadzenie do SQL

Kursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Bazy danych programowanie Wykład dla studentów matematyk

Plan wykładu BAZY DANYCH II WYKŁAD 2. Bloki. Struktura bloku

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. Użytkownicy i schematy (1) Użytkownicy i schematy (2) baza danych: ZESP99

Transkrypt:

Plan wykładu Bazy danych Wykład 9: Programowanie aplikacji baz danych po stronie serwera Sekwencje Wyzwalacze Bloki anonimowe Funkcje Procedury Pakiety Małgorzata Krtowska Katedra Oprogramowania e-mail: mmac@ii.pb.bialystok.pl Bazy danych (studia dzienne) 2 Perspektywy cd CREATE [ OR REPLACE] VIEW nazwa_perspektywy [kolumna1, kolumna2,...] AS zapytanie WITH READ ONLY; kady uprawniony uytkownik moe tylko oglda dane o pracownikach bez moliwoci wstawiania, modyfikowania czy usuwania wierszy Złczenia tabel select * from emp, dept where emp.deptno=dept.deptno; select * from emp NATURAL JOIN dept; select * from emp JOIN dept USING (deptno); Select prac.ename, kier.ename as mgr from emp prac, emp kier where prac.mgr=kier.empno; Select prac.ename, kier.ename as mgr» from emp prac JOIN emp kier ON prac.mgr=kier.empno; Bazy danych (studia dzienne) 3 Bazy danych (studia dzienne) 4

Złczenia zewntrzne Powtórzenie: Złczenie zewntrzne rozszerza rezultat prostego złczenia o te wiersze z jednej tabel, dla których w trakcie złczania nie znaleziono odpowiadajcych im wierszy w drugiej tabeli. SQL> select ename, dept.deptno, dname from emp, dept where emp.deptno (+) =dept.deptno and dept.deptno in (30,40); ENAME DEPTNO DNAME ---------- ---------- -------------- ALLEN 30 SALES BLAKE 30 SALES MARTIN 30 SALES JAMES 30 SALES TURNER 30 SALES WARD 30 SALES 40 OPERATIONS Złczenia zewntrzne cd Złczenie zewntrzne mona realizowa równie w oparciu o struktur LEFT JOIN, RIGHT JOIN, FULL JOIN Przykład. Wypisz wszystkich pracowników podajc dla kadgo z nich nazw działu, w którym pracuje. Select empno, ename, dname from emp left join dept on emp.deptno=dept.deptno; wypisuje wszystkich pracowników, gdy pracownik nie ma przypisanego działu w miejsce dname pojawia si warto NULL Bazy danych (studia dzienne) 5 Bazy danych (studia dzienne) 6 Złczenia zewntrzne cd Przykład Wypisz wszystkie działy, dla kadego z nich podajc sumaryczne zarobki zatrudnionych w nim pracowwników. Select dept.deptno, dname, sum(sal) from emp right join dept on emp.deptno=dept.deptno group by dept.deptno, dname; gdy w dziale nie ma adnego pracownika w pozycji Sum (sal) bdzie warto NULL Struktura bloku w PL/SQL [DECLARE deklaracje] Przykład Select empno, ename, dname from emp full join dept on emp.deptno=dept.deptno; połczenie LEFT JOIN i RIGHT JOIN - zostan wypisane departamenty bez pracowników i pracownicy bez departamentów. [EXCEPTION Bazy danych (studia dzienne) 7 Bazy danych (studia dzienne) 8

Wykonanie bloku w PL/SQL Struktura bloku w PL/SQL / [DECLARE deklaracje] [EXCEPTION START nazwa_pliku @nazwa_pliku Uruchomienie bloku załadowanego do bufora RUN / zmienne, stałe, kursory, wyjtki zdefiniowane przez uytkownika instrukcje jzyka SQL instrukcje sterujce PL/SQL działania, które maj by podjte w razie wystpienia błdów Bazy danych (studia dzienne) 9 Bazy danych (studia dzienne) 10 Zmienne i stałe Typy danych ZMIENNA: identyfikator typ_danych [NOT NULL] [:=wart_pocz DEFAULT wart_pocz]; STAŁA: identyfikator CONSTANT typ_danych [:=wart_pocz DEFAULT wart_pocz]; zmienna%type tabela.kolumna%type tabela%rowtype Bazy danych (studia dzienne) 11 Bazy danych (studia dzienne) 12

Instrukcja warunkowa Instrukcja iteracyjna LOOP IF warunek THEN instrukcja-1; END IF; IF warunek THEN instrukcja-1; ELSE instrukcja-2; END IF; LOOP instrukcje; EXIT [WHEN warunek]; END LOOP; WHILE warunek LOOP instrukcje; END LOOP; IF warunek-1 THEN instrukcja-1; ELSIF warunek-2 THEN instrukcja-2; ELSE instrukcja-3; END IF; Bazy danych (studia dzienne) 13 FOR licznik IN [REVERSE] min..max LOOP instrukcje; END LOOP; Bazy danych (studia dzienne) 14 Przetwarzanie wyników zapyta SELECT lista INTO nazwa_zmiennej nazwa_rekordu FROM tabela; Obsługa wyjtków Wystpienie błdu systemu ORACLE wyjtki predefiniowane wyjtki nie-predefiniowane Jawne wywołanie sytuacji wyjtkowej przez uytkownika przez instrukcj RAISE Bazy danych (studia dzienne) 15 Bazy danych (studia dzienne) 16

Sekwencje Sekwencje Obiekty bazy danych uywane do generowania unikatowych wartoci (zwykle na potrzeby kluczy głównych) Dostp do kolejnych wartoci umoliwiaj pseudokolumny NEXTVAL (zwraca warto zwikszon w kolejnym kroku) CURVAL (zwraca bieac warto) CREATE SEQUENCE nazwa_sekwencji [ INCREMENT BY warto START WITH warto {MAXVALUE warto NOMAXVALUE} {MINVALUE warto NOMINVALUE } {CYCLE NOCYCLE } ] Bazy danych (studia dzienne) 17 Bazy danych (studia dzienne) 18 Sekwencje ALTER SEQUENCE nazwa_sekwencji [ INCREMENT BY warto {MAXVALUE warto NOMAXVALUE} {MINVALUE warto NOMINVALUE } {CYCLE NOCYCLE } ] Wyzwalacze Procedury składowane w bazie danych, automatycznie uruchamiane przez system przy wystpieniu okrelonego zdarzenia w bazie danych Uycie: tworzenie niestandardowych wizów integralnoci, złoonych funkcji monitorujcych działania uytkowników,... Bazy danych (studia dzienne) 19 Bazy danych (studia dzienne) 20

Wyzwalacze (liczba wykonanych akcji) Wyzwalacze wierszowe: akcja wykonywana jest tyle razy, ile jest wierszy, których dotyczy polecenie aktywujce wyzwalacz Wyzwalacze poleceniowe: akcja wykonywana jest tylko jeden raz, niezalenie od iloci wierszy, których dotyczy polecenie aktywujce wyzwalacz Tworzenie wyzwalaczy CREATE OR REPLACE TRIGGER nazwa_wyzwalacza { BEFORE AFTER INSTEAD OF } { DELETE INSERT UPDATE [ OF kolumna, [, kolumna ] ] } [ OR { DELETE INSERT UPDATE [ OF kolumna, [, kolumna ] ] } ] ON tabela [ FOR EACH ROW [ WHEN (warunek) ] ] blok pl/sql Bazy danych (studia dzienne) 21 Bazy danych (studia dzienne) 22 Rodzaje wyzwalaczy (czas wykonania) Wyzwalacze przeprowadzajce okrelon akcj przed wykonaniem polecenia, które aktywizuje wyzwalacz Wyzwalacze przeprowadzajce akcj po wykonaniu polecenia, które aktywizuje wyzwalacz Stare i nowe wartoci wierszy INSERT new UPDATE new, old DELETE old :identyfikator.kolumna Bazy danych (studia dzienne) 23 Bazy danych (studia dzienne) 24

Modyfikowanie wartoci Włczanie i wyłczanie wyzwalaczy BEFORE Mona zmienia wartoci new ALTER TRIGGER nazwa_wyzwalacza { ENABLE DISABLE} AFTER Nie mona zmienia wartoci new ALTER TRIGGER nazwa_wyzw ENABLE; ALTER TRIGGER nazwa_wyzw DISABLE; Bazy danych (studia dzienne) 25 Bazy danych (studia dzienne) 26 Podprogramy Składniki podprogramu Procedury do przeprowadzenia akcji Funkcje do obliczania wartoci Pakiety do zbierania logicznie powizanych procedur i funkcji Nagłówek podprogramu [deklaracje] [EXCEPTION Bazy danych (studia dzienne) 27 Bazy danych (studia dzienne) 28

Podprogramy [CREATE OR REPLACE] PROCEDURE nazwa_procedury [ (parametr [, parametr ] )] IS [deklaracje] [EXCEPTIONS END [nazwa_procedury]; Podprogramy [CREATE OR REPLACE] FUNCTION nazwa_funkcji [(parametr [, parametr ] )] RETURN nazwa_typu IS [deklaracje] [EXCEPTIONS END [nazwa_funkcji]; Bazy danych (studia dzienne) 29 Bazy danych (studia dzienne) 30 Tryby parametrów podprogramów Wywoływanie procedur/funkcji rodowisko Argument IN Argument OUT Argument IN OUT EXECUTE nazwa_procedury[(parametry)] [deklaracje] EXECUTE zmienna:= nazwa_funkcji[(parametry)] [EXCEPTION Bazy danych (studia dzienne) 31 Bazy danych (studia dzienne) 32

Wywoływanie procedur/funkcji - przykład Specyfikacja pakietu EXECUTE mod_cene(1, 5); VARIABLE g_vat NUMBER EXECUTE :g_vat := wyznacz_vat(1); PRINT g_vat CREATE [OR REPLACE] PACKAGE nazwa_pakietu AS deklaracje publiczne specyfikacje podprogramów Bazy danych (studia dzienne) 33 Bazy danych (studia dzienne) 34 Tworzenie ciała pakietu CREATE [ OR REPLACE ] PACKAGE BODY nazwa_pakietu AS deklaracje prywatne definicje podprogramów [ instrukcje inicjalizujce pakietu] Bazy danych (studia dzienne) 35