Oracle PL/SQL. Paweł Rajba.

Podobne dokumenty
1 Przetwarzanie transakcyjne Cechy transakcji Rozpoczęcie i zakończenie Punkty bezpieczeństwa... 3

przykłady problemów; realizacja dostaw części od producenta do klienta:

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia).

BAZY DANYCH. Transakcje. opracowanie: Michał Lech

Plan ćwiczenia. Rozdział 17. zarządzania współbieżnością. Dostęp współbieżny a dostęp spójny. Spójność bazy danych

Plan ćwiczenia. Rozdział 17 Zarządzanie współbieżnością. Dostęp współbieżny a dostęp spójny. Spójność bazy danych

Bazy danych 9. SQL Klucze obce Transakcje

Pakiety podprogramów Dynamiczny SQL

Oracle PL/SQL. Paweł Rajba.

Transakcje jednocześnie ACID

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Oracle PL/SQL. Paweł Rajba.

Administracja i programowanie pod Microsoft SQL Server 2000

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach

Bazy danych wykład dziewiaty Transakcje. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Oracle11g: Programowanie w PL/SQL

Bazy danych 2. Wykład 6 Transakcje

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

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

PODSTAWY BAZ DANYCH 13. PL/SQL

Oracle PL/SQL. Paweł Rajba.

Microsoft SQL Server Podstawy T-SQL

Oracle10g: Programowanie w PL/SQL

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

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

Administracja i programowanie pod Microsoft SQL Server 2000

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

Bazy danych 9. Klucze obce Transakcje

Bazy danych 9. Klucze obce Transakcje. P. F. Góra

Ćwiczenie 9 współbieŝność

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski. Poznań,

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Zaawansowane bazy danych i hurtownie danych semestr I

Oracle PL/SQL. Paweł Rajba.

Administracja i programowanie pod Microsoft SQL Server 2000

Rozdział 17. Zarządzanie współbieżnością zadania

Wykład 8. SQL praca z tabelami 5

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

Podprogramy. Rozdział 11 Procedury i funkcje składowane

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

Właściwości transakcji

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

Bazy danych. Dr inż. Paweł Kasprowski

Transakcje. (c) Instytut Informatyki Politechniki Poznańskiej

1. Wyzwalacze BD (ang. triggers)

Składowane procedury i funkcje

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

Oracle PL/SQL. Paweł Rajba.

Instrukcje SQL można podzielić na pięć kategorii, które zostały przedstawione w poniższej tabeli.

Paweł Rajba

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

Izolacje transakcji oraz anomalie. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

PL/SQL. Zaawansowane tematy PL/SQL

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

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

Bazy danych. Andrzej Łachwa, UJ, /15

OLTP Przetwarzanie Transakcyjne

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

Oracle PL/SQL. Paweł Rajba.

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

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

Administracja i programowanie pod Microsoft SQL Server 2000

Mechanika i Budowa Maszyn II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Uprawnienia, role, synonimy

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):

Oracle11g: Wprowadzenie do SQL

Zarządzanie obiektami bazy danych Oracle11g

Cele. Definiowanie wyzwalaczy

Wyzwalacze. Anna Fiedorowicz Bazy danych 2

Język PL/SQL Pakiety podprogramów

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

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

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

Obowiązuje od wersji

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Tadeusz Pankowski

Oracle PL/SQL. Paweł Rajba.

Internetowe bazy danych

Procedury i funkcje składowane

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

Bazy danych i systemy zarzadzania

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

Transakcje Wykład z bazy danych dla studen

Spis treści. Przedmowa

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

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

Bazy danych 7. Klucze obce Transakcje. P. F. Góra

Cheatsheet PL/SQL Andrzej Klusiewicz 1/9

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

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

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

070 TRANSAKCJE. Prof. dr hab. Marek Wisła

Bloki anonimowe w PL/SQL

Tworzenie aplikacji bazodanowych

Bazy danych Transakcje

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

LAB 6 BEGIN TRANSACTION, COMMIT, ROLLBACK, SET TRANSACTION ISOLATION LEVEL,

Transkrypt:

Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/

Zawartość modułu 7 Dynamiczny SQL i PL/SQL Pierwotny dynamiczny SQL Pierwotny dynamiczny DDL Pierwotny dynamiczny DML i SELECT Pakiet DBMS_SQL Transakcje Punkty bezpieczeństwa Poziomy izolacji i blokady Transakcje autonomiczne - 2 -

Dynamiczny SQL i PL/SQL W ramach dynamicznego kodu możemy wykonywać dynamiczne operacje DDL, dynamiczne instrukcje SELECT, dynamiczne instrukcje INSERT, UPDATE i DELETE dynamiczny kod PL/SQL obsługę wyjątków operacje DDL i DML związane z obiektami to omówimy przy okazji obiektów - 3 -

Dynamiczny SQL i PL/SQL Dynamiczny kod możemy uruchamiać za pomocą pakietu DBMS_SQL za pomocą pierwotnego dynamicznego SQL - 4 -

Pierwotny dynamiczny SQL Zalety tego rozwiązania Łatwiejszy w użyciu Szybszy niż DBMS_SQL Obsługuje typy tworzone przez użytkownika np. obiekty, kolekcje Pozwala na przekierowanie wyników do rekordów - 9 -

Pierwotny dynamiczny DDL Do uruchamiania takiego kodu wykorzystamy EXECUTE IMMEDIATE string Przykład: dynamiczny-ddl.txt - 5 -

Pierwotny dynamiczny DML i SELECT Do uruchamiania takiego kodu wykorzystamy EXECUTE IMMEDIATE string INTO zmienne USING zmienne Klauzula USING pozwala na zmienny wiązanych do polecenia użycie zmiennych wiązanych zwiększa wydajność Klauzula INTO pozwala na przechwycenie wyników polecenia Przykład: dynamiczny-dml-select.txt - 6 -

Pakiet DBMS_SQL Jest to starsze rozwiązanie Używanie go jest bardziej skomplikowane Kiedy przydaje się pakiet DBMS_SQL w aplikacjach klienckich takich jak Oracle Developer kiedy kod jest większy niż 32KB kiedy w ramach sesji ta sama instrukcja jest powtarzana wielokrotnie, jest tylko raz parsowana Przykład: dbms-sql.txt - 7 -

Transakcje Wprowadzenie Po co są transakcje? Własność ACID: niepodzielność spójność odseparowanie trwałość W Oracle nie ma zagnieżdżania transakcji - 8 -

Transakcje Rozpoczęcie transakcji Niejawne przy pierwszym poleceniu DML Jawne za pomocą polecenia SET TRANSACTION Transakcja kończy się, gdy użytkownik wyda polecenie COMMIT lub ROLLBACK użytkownik wyda polecenie DDL najpierw jest COMMIT, potem polecenie DDL użytkownik się odłączy (jest COMMIT) użytkownik zerwie połączenie (jest ROLLBACK) - 10 -

Punkty bezpieczeństwa Pozwalają na wycofanie fragmentu transakcji Przed wykonaniem operacji DML są tworzone takie punkty niejawnie i w razie niepowodzenia operacji, wycofanie jest do tego punktu Tworzenie punktu bezpieczeństwa SAVEPOINT nazwa; Wykorzystanie ROLLBACK TO nazwa; Przykład: transakcje-punktybezpieczenstwa.txt - 11 -

Dobre zwyczaje Czas wykonania transakcji powinien być jak najkrótszy, co wpływa na czas blokad Należy przemyśleć użycie pętli while Nie należy w ramach transakcji czekać na dane od użytkownika Wszystkie analizy należy wykonać przed rozpoczęciem transakcji Transakcja powinna otrzymywać dostęp do minimalnego zbioru wierszy - 12 -

Transakcje i blokady Niepożądanym zjawiskom (np. brudne odczyty) zabiega ustawienie poziomu izolacji jest on realizowany poprzez odpowiednio nakładane blokady Standard ANSI SQL definiuje następujące poziomy izolacji Read uncommitted Read committed Repeatable read Serializable - 15 -

Transakcje i poziom izolacji Oracle obsługuje dwa poziomy izolacji Read committed Serializable Ustawienie poziomu izolacji (i start transakcji) SET TRANSACTION ISOLATION LEVEL {SERIALIZABLE READ COMMITTED} [NAME 'tekst'] Zmiana poziomu izolacji dla sesji ALTER SESSION SET ISOLATION_LEVEL= {SERIALIZABLE READ COMMITTED} - 16 -

Transakcje i poziom izolacji Przykład: transakcje-izolacja.txt - 18 -

Transakcje autonomiczne Zasada działania Główna transakcja jest zawieszana Wykonywana jest transakcja autonomiczna Główna transakcja jest kontynuowana Zalety modularyzacja i uproszczenie kodu np. osobne procedury mogą zajmować się audytem pozwalają na COMMIT w wyzwalaczach wywoływanie z SQL funkcji, które wykonują operacje DML - 19 -

Transakcje autonomiczne Deklaracja transakcji autonomicznych PRAGMA AUTONOMOUS_TRANSACTION Kiedy blok PL/SQL może być w ramach transakcji autonomicznej? Jeśli blok jest anonimowy, musi być na najwyższym poziomie, czyli nie może być blokiem zagnieżdżonym Jest procedurą lub funkcję, bezpośrednio w schemacie lub w ramach pakietu Jest metodą typu obiektowego lub wyzwalaczem Przykład: transakcje-autonomiczne.txt - 20 -