Transakcyj ność. danych. Iselect k.1 trom t I I sełect k.1 trom t I. I update t Software 2 O 12/2001.

Wielkość: px
Rozpocząć pokaz od strony:

Download "Transakcyj ność. danych. Iselect k.1 trom t I I sełect k.1 trom t I. I update t. 18 www.software.com.pl Software 2 O 12/2001."

Transkrypt

1 Transakcyj ność danych Michał Kwiatek W spółczesny programista oczekuje od bazy danych szeregu cech funkcjonalnych. ie cechy to, na przykład, możliwość definiowania widoków danych (views), kontrola dostępu albo wewnętrzny język programowania. Można wymienić wiele innych, ale bez wątpienia jedną z naj istotniejszych z nich jest obsługa transakcji. Co kryje się za tym pojęciem? Skojarzenie z operacjami finansowymi jest trafne - transakcje bankowe to sztandarowy przykład wykorzystania transakcji w bazach danych. Model ACO Rozważmy następujący scenariusz. W pierwszym kroku obsługi przelewu, od salda konta A ode jmowana jest kwota przelewu, która w drugim kroku ma zostać dodana do salda konta B. Do drugiego kroku jednak nie dochodzi, na przykład z powodu awarii. Konsekwencje byłyby straszne - w chwili przelewu giną pieniądze! Dlatego transakcje muszą być atomowe (ang. atomie), czyli niepodzielne. Jeżeli wszystkie elementy transakcji zostaną poprawnie przeprowadzone, transakcja jest zatwierdzana (ang. eommit), jeżeli choć jeden z jej elementów się nie uda, wówczas cała transakcja musi zostać odwołana (ang. ro/tbaek). Po zatwierdzeniu transakcji baza nie może zawierać błędnych danych, stąd mowa o spójności (ang. eonsisteney). Transakcje są również izolowane (ang. isolated) i trwałe (ang. durable). Pierwszy z tych terminów oznacza, że zmiany danych dokonane w obrębie transakcji są widoczne na zewnątrz dopiero po jej zatwierdzeniu. Drugi termin oznacza pewność, że wynik zatwierdzonej transakcji jest na dobre zapisywany w systemie i nie zginie nawet w przypadku awarii. Q W kolumnie k1 rekordu o id=n jest liczba 3 PoZOm izolacj: leac commltted ProceS 1 Proces 2 select k.1 trom t sełect k.1 trom t w/lere d:n where d:n zwraca 3 zwraca 3 update t set ki~ki+.1 where d=n; selct ki trem l t where idc" selct k1.from t where d=n zwraca 4 zwraca 3 commit; update t set 1<1=k.1+4 wbele id=n; Proces 2 Jest zablokowany do chwili gdy proces 1 wykona commit lub rollback commlł: select k1 trem t select ki from t where d=' where d=' zwraca 8 zwraca 8 RYSUNEK (1) - dea działania transakcji dla poziomu izolacji read committed. Te cztery zapewniane przez każdy system Autor jest programistą i projektantem w zespole portalu Kontakt z autorem pod adresem: michal.kwiatek@biznespartner.pl transakcyjny cechy, w języku angielskim tworzą akronim aeid. Poziomy izolacji Standard języka SQL definiuje 4 poziomy izolacji transakcji (ang. isolation levels) - patrz Tabela CD. Kolejne poziomy oznaczają ochronę 18 Software 2 O 12/2001

2 Transakcyjność w bazach danych wymagające zastosowania TABELA (l) Możliwość zaistnienia niepożądanych zjawisk na poszczególnych poziomach wyższych poziomów izolacji izolacji. są zupełnie naturalne i wcale nie należą do Poziom izolacji Odczyt niezatwierdzonych rekordów Odczyt niepowtarzalny Odczyt widm rzadkości. frasobliwe Read uncommitted Możliwy Możliwy Możliwy ich potraktowanie zaowocuje usterkami, których Read committed możliwy Możliwy Możliwy przyczyny będą niezwykle Repeatable read możliwy możliwy MOŻliwy trudne do ustalenia. Co Serializable możliwy możliwy możliwy gorsza, usterki te ujawnią się dopiero przy dużym przed trzema niepożądanymi zjawiskami: odczytem nieza dopiertwierdzonych rekordów (ang. dirty read), odczytem niepo mieć zagrożenia wynikające ze stosowania niskiego poziomu w środowisku produkcyjnym. Dlatego warto rozuwtarzalnym (ang. nonrepeatable read) oraz odczytem widm izolacji i zawczasu się przed nimi zabezpieczyć. (ang. phantom read). Odczyt niezatwierdzonych rekordów, to sytuacja, w której w obrębie jednej transakcji widać niezatwierdzone zmiany na przykład, przeprowadzane w innej transakcji. Jeżeli, użytkownik zapyta o stan konta w chwili dokonywania przelewu, a przelew z pewnych przyczyn zostanie odwołany, to może się okazać, że użytkownik zobaczył saldo konta pomniejszone o kwotę przelewu. Jeżeli następnie użytkownik oprze na tej informacji inne obliczenia, to będą one bez sensu, gdyż przelew nigdy nie doszedł do skutku. Ochrona przed tym zjawiskiem jest stosunkowo prosta i opiera się na wykorzystaniu mechanizmu blokad (ang. locks). Prześledźmy sytuację na Rysunku (1). Jeżeli proces 1 zmienia rekord n, to na ten rekord zakładana jest blokada. nny użytkownik (proces 2) widzi zmieniony rekord w postaci sprzed rozpoczęcia transakcji procesu 1. Gdy proces 2 spróbuje zmienić ten sam rekord, wówczas zostanie zablokowany do momentu zatwierdzenia (lub odwołania) zmiany tego rekordu, czyli do chwili zakończenia transakcji procesu 1. Proszę również zauważyć, że zmiana dokonana w procesie 1 jest uwzględniana w obliczeniach procesu 2. Przed odczytem niezatwierdzonych rekordów chroni standardowy poziom izolacji: read committed. Odczyt niepowtarzalny polega na tym, że wyniki wykonania tego samego zapytania w jednej transakcji, ale w pewnym odstępie czasowym różnią się: rekordy z wyniku pierwszego wykonania zapytania nie występują w wyniku powtórnego wykonania, lub wartości rekordów zmieniły się. Aby uniknąć tego zjawiska, należy korzystać z poziomu izolacji repeatable read. Z odczytem widm mamy do czynienia, gdy w wyniku drugiego wykonania tego samego zapytania pojawiły się rekordy, których poprzednio nie było - rekordy widma. Zjawisko to nie występuje, o ile aktualnym poziomem izolacji jest serializable. W praktyce stosuje się głównie zapewniający podstawową update labie U Proces 1 jest setk1;k1~ poprawność poziom read committed. Co prawda, w stan blokowandardzie języka SQL za domyślny uznawany jest serializable, gdy proces2 wykona do momentu, where d=n; commit lub rollback ale żaden producent baz danych nie traktuje tego poważnie. Każdy z kolejnych poziomów izolacji zwiększa obciążenie systemu i ryzyko wystąpienia zakleszczeń (ang. deadlocks). zmniejsza możliwość równoległego dostępu do danych i, co za tym idzie, wydajność systemu. Zazwyczaj poziom read committed rzeczywiście wystarcza, jednakże sytuacje Zakleszczenia w naj prostszym, przedstawionym na Rysunku" 2) scenariuszu dochodzi do zakleszczenia, gdyż jeden proces jest zablokowany w oczekiwaniu na zasób zajmowany przez drugi proces, i vice versa. Proces 1 modyfikuje rekord w tabeli tl i tym samym blokowana jest możliwość zapisu w tym rekordzie dla procesu 2. Analogicznie blokowany jest zapis w dla procesu l, gdyż proces 2 wykonał update. W kolejnym kroku proces 1 próbuje pisać w tym rekordzie i oczywiście jest blokowany. Ostatnim, prowadzącym do zakleszczenia krokiem jest próba modyfikacji rekordu w Tabeli (l) przez proces 2. Teraz proces 2 czeka na zasób, który może zwolnić proces 1, a proces 1 czeka na zasób zajmowany przez proces 2. Kółko się zamyka. Różne systemy z różną skutecznością radzą sobie z zakleszczeniami. System Oracle, postawiony przed sytuacją z Rysunku...2), przerywa proces 1 z błędem: ORA-00060: deadlock detected while waiting for resource. Z pewnością nie jest to jednak sytuacja pożądana - należy tak programować, żeby wykluczyć możliwość zakleszczeń. POZom lzoll:jl: read commłtlecl RYSUNEK l]) Zakleszczenie transakcji. obciążeniu systemu, często Proces 2 update table t2 set k2ak2+3 where id=m; Proces 2 jest blokowany do momentu gdy.proces 1 wykona commit lub rollback. Dochodzi do zakleszczenia.

3 TABELA CD Poziomy izolacji dostępne w popularnych bazach danych Poziom izolacji Oracle 91 Microsoft SQL Server 2000 P08tgreSQL 7.1 MySQL 3.23 Read uncommitted Read commltted Repeatable read serializable Uwagi Dodatkowy poziom Read only Tylko dla tabel typu BerkleyDB lub nnodb Prostą, lecz skuteczną radą jest stosowanie jak najkrótszych zatwierdzenie transakcji. Z kolei, aby odwołać transakcję, transakcji, o możliwie niskim poziomie izolacji. Do poszcze należgólnych tabel należy się też odwoływać w tej samej kolejności, użyć polecenia roll back. Można też odwołać część o ile tylko jest to możliwe. Warto zauważyć, że do opisanego wyżej zakleszczenia nie doszłoby, gdyby procesy odwoływały się do Tabel 0 i 0w tej samej kolejności. Gdy zapytanie SQL, które powinno zadziałać natychmiast, a nie odpowiada przez dłuższy czas, wskazuje, że inna transakcja zajęła pewien pożądany zasób i jeszcze się nie skończyła. Zazwyczaj przyczyną takiej usterki jest po prostu niepotrzebne przeciąganie transakcji, która wykonała już wszystkie kluczowe operacje i z powodzeniem mogła zostać zatwierdzona. Warto o tym pamiętać, bo zapomniana transakcja zablokuje możliwość modyfikacji danych wszystkim innym użytkownikom. W praktyce... Transakcje są częścią standardu SQL, dlatego w większości popularnych systemów zarządzania relacyjną bazą danych ich obsługa jest dość podobna. W praktyce okazuje się, że poszczególne systemy mają różne możliwości (patrz Tabela 0). Dlatego wiedza o tym, co i w jaki sposób w konkretnej bazie danych można osiągnąć, jest niezwykle użyteczna. Poniżej opisuję cztery systemy, naj popularniejsze w zastosowaniach internetowych. Dwa z nich, MySQL i PostgreSQL, są darmowe, dostępne jako Open Source. Produkt Microsoftu posiada szerokie grono zwolenników, a Oracle oferuje bazy danych o uznanej marce. Wybór tych systemów, choć arbitralny, jest przekrojowy. Ponadto, informacje o innych produktach łatwiej zdobyć wiedząc, co oferuje konkurencja. transakcji przy pomocy rollback to, o ile wcześniej użyto instrukcji savepoi nt. Na Listingu CD przedstawiony jest mechanizm sel ect for update, szczególnie wygodny, gdy dane w rekordzie musimy zmodyfikować w sposób wykluczający użycie pojedynczej operacji update. W tej sytuacji należy uniemożliwić modyfikację tego rekordu z innej transakcji. Jeżeli tego nie zrobimy, ktoś inny może zmodyfikować wartość, którą my następnie zamażemy wynikiem obliczeń, uzyskanym bez uwzględnienia tej zmiany. W systemie bankowym doprowadziłoby to do wycieków gotówki. nną ciekawą cechą Oracle 'a jest możliwość definiowania transakcji autonomicznych, czyli takich, których działanie jest zatwierdzane (lub odwoływane) niezależnie od transakcji, z której zostały one wywołane. Nadaje się to szczególnie do logowania błędów w tabelach bazy danych. Przykład spełniającej to zadanie funkcji przestawiono na Listingu 2. Aby zaznaczyć, że dany blok programu ma stanowić transakcję autonomiczną, należy użyć dyrektywy (pragma) autonomous_transaction. Microsoft SQL Server 2000 W bazie danych Microsoftu poziom izolacji dla wszystkich transakcji w sesji ustala się poleceniem set t ransact i on i so l at i on l eve l. Wszystkie cztery poziomy izolacji są obsługiwane. Transakcję rozpoczynamy używając komendy begi n transaction, a zatwierdzamy i odwołujemy odpowiednio instrukcjami commit i rollback. Gracie Si aracie obsługuje poziomy izolacji read commited, seria izable, oraz dodatkowo transakcje tylko do odczytu, widzące jedynie te zmiany, które były zatwierdzone w chwili rozpoczęcia transakcji. W obrębie tego typu transakcji nie można dodawać, usuwać ani modyfikować wierszy. Do zmiany poziomu izolacji służą polecenia: set transaction isolation level (należy je wykonać jako pierwsze polecenie w transakcji) lub alter session set isolation level, które modyfikuje wszystkie późniejsze transakcje w obrębie danej sesji, czyli połączenia z bazą danych. Transakcje zatwierdza się poleceniem commi t, które jednocześnie rozpoczyna następną transakcję. Warto pamiętać, że każde polecenie języka definicji danych (DOL), np. create table, alter table etc. powoduje implicite LSTNG 1 Prezentacja mechanizmu select for upejste. Declare CURSOR c [S SELECT " FROM konto FOR UPDATE OF saldo; Saldo_teMP: KONTO.SALDO%TYPE: Begi n Set transaction isolation leve] read committed; FOr rekord: KONTO%ROWTYPE n C LOOP Sa ldo_temp: -ob l uga_kon t. dodalodsetki (record. onto; /"inne operacje na saldo_temp"/ UPDATe konto SEt saldo - saldo_temp WHERE CO E Of C; End loop: Commit ; End; 20 Software 2 O 12/2001

4 Transakcyjność w bazach danych LSTNG 2 Definicja transakcji autonomicznej. PROCEDURE loguj (wi adomosc VARCHAR) pragma autonomous_transacti on; Beg; n N5ERT NTO logi(tresc) VALUE5 (wiadomosc); Comm; t; End; W tym systemie istnieje możliwość zagnieżdżania transakcji. Otwarcie nowej transakcji w obrębie transakcji już działającej powoduje zwiększenie Zysk jest pozorny, gdyż realnie i tak nie można odwołać ani zatwierdzić wewnętrznej transakcji. Jedynym efektem instrukcji commi t, wywołanej w transakcji wewnętrznej, jest Dopiero gdy osiągnie wartość O, wszystkie zmiany zostaną zatwierdzone. Jeżeli zależy nam na odwołaniu jedynie części transakcji, należy skorzystać z mechanizmu savepointów (patrz część o OracJe 'u). Warto wiedzieć, że połączeni'e z SQL Serverem może działać w trybie niejawnych transakcji (ang. impjicit transactions). W tym przypadku polecenia takie jak se l ect, create etc. powodują otwarcie nowej transakcji, którą użytkownik musi potem zamknąć już Transakcja nie zostanie zatwierdzona do momentu, gdy sami tego nie zrolbimy. Domyślnie dla połączeń zupełnie jawnie. korzystających z OLE DB (w tym również Query AnaJyzera) niejawne transakcje są wyłączone, ale czasami możemy tę opcję nieświadomie włączyć, na przykład wykonując instrukcję set ans i_defaults on, Oprócz zwykłych kursorów for update, opisanych w części o OracJe'u, w SQL Serverze dostępne są optymistyczne kursory (ang. optimistic curso!'). Przy ich wykorzystaniu możliwe są pozycyjne modyfikacje rekordów poprzez kursor, analogicznie do sytuacji pokazanej na Listingu [), ale żadne rekordy nie są blokowane. Powoduje to wzrost wydajności. Bezpośrednio przed modyfikacją rekordu system sprawdza, czy ten rekord nie został przypadkiem wcześniej zmieniony przez kogoś innego. Jeżeli tak się stało, zgłaszany jest błąd, który może zostać przechwycony w aplikacji i odpowiednio tam zinterpretowany. Z optymistycznych kursorów warto korzystać, gdy prawdopodobieństwo zmiany danych jest niewielkie, a zależy nam na wydajności. PostrgreSGL 7.1 PostgreSQL obsługuje poziomy read committed i seriajibje. Transakcję rozpoczyna się poleceniem begi n, zatwierdza używając commi t, a odwołuje przy pomocy poleceń ro 11 ba ck i abort, które są synonimami. Do zmiany poziomu izolacji pojedynczej transakcji służy instrukcja set transaction isolat;on level, a dla wszystkich transakcji w sesji stosuje się komendę set session characteristics. Do obsługi równoczesnego dostępu do danych wykorzystywany jest model wielu wersji (mujti-version concurrency controd, co odróżnia PostgreSQLa od większości systemów opierających się na mechanizmie blokad. W PostgreSQLu blokady wykorzystywane są w mniejszym stopniu. O modelu wielu wersji najlepiej myśleć w następujący sposób: każda transakcja widzi dane w stanie, który był aktualny w pewnym momencie, ale od tamtej pory mógł zostać zmieniony. Daje to pewność, że nawet w przypadku modyfikacji widzimy spójne dane. Dodatkowo procesy modyfikujące dane nigdy nie blokują procesów czytających, ani na odwrót. Zwiększa to poziom równoległości systemu. Kosztem takiego rozwiązania jest dopisywanie nowych węzłów do indeksów przy każdej zmianie wartości. ndeksy są czyszczone dopiero w momencie wykonania operacji VACUUM. W rezultacie tablice, na których wykonuje się dużo zmian działają coraz wolniej. W wersji 7.1 do obsługi operacji zmieniających dane wykorzystywany jest dodatkowo specjalny dziennik WAL (Write-Ahead Lam. Każda zmiana rekordu zapisywana jest najpierw w dzienniku, a dopiero w chwili mniejszego obciążenia systemu (lub gdy użytkownik poprosi o to poleceniem checkpoi nt) zmiany są zapisywane w poszczególnych plikach danych. Dzięki temu nowa wersja PostgreSQLajest wydajniejsza i dużo bardziej odporna na awarie. MySGL 3.23 Wśród programistów aplikacji internetowych panuje pfzeświadczenie,że MySQLjest szybszy od PostgreSQLa, ale za to dużo uboższy w zakresie oferowanej funkcjonalności. Jedną z najczęściej wymienianych wad MySQLajest brak transakcji. Jest to prawda, ale nie do końca, gdyż począwszy od wersji 3.23 w MYSQL można wkompilować obsługę dwóch nowych typów tabel, które umożliwiają transakcyjny dostęp do rekordów. Należy jasno zauważyć, że te wspomniane tabele (chodzi o BerkJeyOB oraz JnnoOB) nie są zawarte w standardowych dystrybucjach binarnych. Oczywiste jest też, że korzystanie z transakcyjnych tabel pociągnie za sobą zauważalny spadek wydajności bazy. MySQL obsługuje wszystkie cztery poziomy izolacji. Do ich zmiany służy polecenie set transaction isolation l evel, które wydaje się przed rozpoczęciem nowej transakcji. Do rozpoczęcia transakcji służy begi n, ale trzeba pamiętać, aby uprzednio poleceniem set autocommi t - O zmienić domyślny tryb automatycznego zatwierdzania zmian. Transakcje zatwierdza się i odwołuje odpowiednio poleceniami commi t i roll back. Fakt współistnienia różnych typów tabel może łatwo doprowadzić do wystąpienia błędów. Dwa najczęściej spotykane scenariusze to próba obsługi transakcji w odniesieniu do tabel, które tego nie umożliwiają, oraz próba tworzenia tabel obsługujących transakcje bez uprzedniego wkompilowania ich obsługi w jądro MySQLa. W pierwszym przypadku MySQL automatycznie zatwierdzi wszystkie zmiany, w drugim bez ostrzeżenia utworzy tabele domyślnego typu MyjSAM, które nie obsługują transakcji. Autorzy MySQLa tłumaczą, że ma to służyć łatwej migracji danych pomiędzy systemami obsługującymi różne typy tabel, ale na pewno należy zachować ostrożność. dokończenie artykułu na stronie www software com pl

5 W linii 8 zawarte jest odczytanie właściwości o nazwie name, zrzutowanie tej wartości na typ 5tri ng i wypisanie jej do klienta (w systemie LeftHand przyjęliśmy, że nie używamy domyślnych konwersji typów i wszystkie konwersje trzeba wykonywać explicite). 8. <%- it.get()->get("name")->to5tring().c_str() %>(BR> Dla znającego C++ programisty, kod taki jest z pewnoś bardzo czytelny. Manipulowanie poszczególnymi cią wartościami w węzłach odbywa się za pośrednictwem kilku prostych metod: get, put, remove. Oczywiście klasa może mieć dowolną ilość swoich własnych metod, jak również z łatwością może przeciążyć i zmienić działanie metod podstawowych. Dla porównania, na Ustingu :2 przedstawiono podobny kod, napisany w JavaScript. Jak widać, w JavaScript nie trzeba rzutować typów Uest to język z typami dynamicznymi). Widać też, że konstruktor dla L_root bez parametrów wskazuje na węzeł aktualnej aplikacji. wiem jak Wam, ale nam się bardziej podoba C++. LSTNG 2 Wypisanie wszystkich klas w aplikacji w JavaScript. <% var oroot- new L_root(); var oclasses - oroot.get("classes"); var it - new L_iterator_props(oclasses); while (!it.end(» ( %> <%- it.get().get("name")%><br> <% it.next() ; ) %> Podsumowanie Połączenie serwera aplikacyjnego z drzewiastą bazą danych daje bardzo dużo korzyści. Po pierwsze, kod powstaje w jednym języku i jest pisany w jednej metodologii - obiektowej. Systemy powstają w bardzo uporządkowany sposób - żeby nie powiedzieć, że podręcznikowy. Możemy w sposób obiektowy planować przechowywane klasy, ich metody, a nawet całe aplikacje (włącznie ze stroną klienta, co nie było w tym artykule poruszane). Czysta przyjemność programowania w C++....dokończenle artykułu z strony 21 Podsumowanie Jak widać, podstawowa funkcjonalność, jaką Jest obsługa transakcji, bywa w różnych systemach mniej lub bardziej wyrafinowana. W każdym przypadku jest ona jednak wystarczająca, by zabezpieczyć się przed ewentualnym konfliktem w dostępie do danych. Pozostaje tylko korzystać z niej w umiejętny, świadomy sposób. 26

Podstawy języka SQL - dokończenie TRANSAKCJE 1

Podstawy języka SQL - dokończenie TRANSAKCJE 1 Podstawy języka SQL - dokończenie TRANSAKCJE 1 Czasami zachodzi potrzeba, aby pewna grupa operacji była nierozłączna tzn. albo wykonane powinny zostać wszystkie albo żadna z nich. Najprostszym przykładem

Bardziej szczegółowo

BAZY DANYCH. Transakcje. opracowanie: Michał Lech

BAZY DANYCH. Transakcje. opracowanie: Michał Lech BAZY DANYCH Transakcje opracowanie: Michał Lech Plan wykładu 1. Transakcje - co to jest? 2. Mechanizmy transakcji 3. Reguły ACID 4. Niekorzystne zjawiska 5. Poziomy izolacji 6. Polecenia PostgreSQL transakcji

Bardziej szczegółowo

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

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia). POZIOMY IZOLACJI TRANSAKCJI 1. Microsoft SQL Server 2012 (od SQL Server 2005) W systemie SQL Server można wybrać sposób sterowania współbieżnością. Podstawowy sposób to stosowanie blokad. Wykorzystywane

Bardziej szczegółowo

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

1 Przetwarzanie transakcyjne Cechy transakcji Rozpoczęcie i zakończenie Punkty bezpieczeństwa... 3 Plan wykładu Spis treści 1 Przetwarzanie transakcyjne 1 1.1 Cechy transakcji................................. 2 1.2 Rozpoczęcie i zakończenie........................... 3 1.3 Punkty bezpieczeństwa.............................

Bardziej szczegółowo

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

przykłady problemów; realizacja dostaw części od producenta do klienta: Przetwarzanie transakcyjne Transakcja zestaw operacji pod szczególną kontrolą transakcja to sekwencja operacji, która musi zakończyć się sukcesem w całości - w przeciwnym wypadku musi powrócić stan początkowy

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. 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

Bardziej szczegółowo

Bazy danych 9. SQL Klucze obce Transakcje

Bazy danych 9. SQL Klucze obce Transakcje Bazy danych 9. SQL Klucze obce Transakcje P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Klucze obce Klucze obce powiazanie indeksowanej kolumny jakiejś tabeli z indeksowana kolumna

Bardziej szczegółowo

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

Bazy danych wykład dziewiaty Transakcje. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa) Bazy danych wykład dziewiaty Transakcje Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa dziewiaty Transakcje 1 / 42 Outline 1 Transakcje Problemy interakcji 2 Metody usuwania konfliktów

Bardziej szczegółowo

Właściwości transakcji

Właściwości transakcji Transakcje Właściwości transakcji Transakcja jednostka operowania na bazie danych podlegająca kontroli i sterowaniu System zarządzania transakcjami ma za zadanie takie sterowanie operacjami na bazie danych,

Bardziej szczegółowo

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa Wprowadzenie do projektowania i wykorzystania baz danych Katarzyna Klessa POWTÓRKA Z PIERWSZYCH ZAJĘĆ Lista słówek - do zapamiętania na początek Z podstaw SQL: CREATE - Tworzenie tabeli, czyli Coś czego

Bardziej szczegółowo

Transakcje. (c) Instytut Informatyki Politechniki Poznańskiej

Transakcje. (c) Instytut Informatyki Politechniki Poznańskiej ransakcje Definicja i własności transakcji, zatwierdzanie i wycofywanie, punkty bezpieczeństwa, spójność, anomalie współbieżnego dostępu do danych, poziomy izolacji transakcji, blokady, zakleszczenie Definicja

Bardziej szczegółowo

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

Izolacje transakcji oraz anomalie. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Izolacje transakcji oraz anomalie Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW SZBD (DBMS) a transakcji Przetwarzanie transakcyjne wymaga znaczącego

Bardziej szczegółowo

Bazy danych 2. Wykład 6 Transakcje

Bazy danych 2. Wykład 6 Transakcje Bazy danych 2 Wykład 6 Transakcje Transakcje Def. Transakcjami nazywamy logiczne jednostki pracy które wprowadzają zmiany do bazy danych lub które wyszukują dane O transakcjach mówimy w kontekście: aktualizacji

Bardziej szczegółowo

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

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu): Utwórz bazę danych Cw: CREATE DATABASE Cw Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu): DBCC USEROPTIONS Przykład z zapisem do tabeli tymczasowej: --Jeśli istnieje tabela tymczasowa

Bardziej szczegółowo

Transakcje jednocześnie ACID

Transakcje jednocześnie ACID Transakcje Transakcja to zbiór operacji (u nas - instrukcji języka SQL), które mogą być wykonane jedynie wszystkie lub żadna. Nazwa takiego ciągu instrukcji pochodzi od operacji bankowych - przelew musi

Bardziej szczegółowo

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

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie

Bardziej szczegółowo

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

Rozdział 17. Zarządzanie współbieżnością zadania Rozdział 17. Zarządzanie współbieżnością zadania Transakcja DML 1. Uruchom narzędzie Oracle SQL Developer i przyłącz się do bazy danych. Następnie rozpocznij nową transakcję, zmieniając pracownikowi o

Bardziej szczegółowo

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ą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ą Definicja i własności transakcji, zatwierdzanie i wycofywanie, punkty bezpieczeństwa, spójność, anomalie współbieżnego dostępu do danych, poziomy

Bardziej szczegółowo

Bazy danych. Andrzej Łachwa, UJ, /15

Bazy danych. Andrzej Łachwa, UJ, /15 Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 12/15 WSPÓŁBIEŻNOŚĆ Serwer bazodanowy nie może obsługiwać klientów sekwencyjnie: wszyscy musieli by czekać

Bardziej szczegółowo

I. Techniki wielowersyjne sterowania współbieżnością

I. Techniki wielowersyjne sterowania współbieżnością I. Techniki wielowersyjne sterowania współbieżnością Techniki wielowersyjne multiversion concurrency control. Technika wielowersyjna oparta na znacznikach czasu Dla każdej wersji X i elementu X przechowywane

Bardziej szczegółowo

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

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach Indeksy dodatkowe struktury służące przyśpieszeniu dostępu do danych o użyciu indeksu podczas realizacji poleceń decyduje SZBD niektóre systemy bazodanowe automatycznie tworzą indeksy dla kolumn o wartościach

Bardziej szczegółowo

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych. Dr inż. Paweł Kasprowski Plan wykładu Bazy danych Architektura systemów zarządzania bazami danych Realizacja zapytań algebra relacji Wielodostęp do danych - transakcje Dr inż. Paweł Kasprowski pawel@kasprowski.pl Aplkacja przechowująca

Bardziej szczegółowo

Plan ćwiczenia. Rozdział 17 Zarządzanie 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 Plan ćwiczenia Rozdział 17 Zarządzanie współbieżnością Definicja i własności transakcji, zatwierdzanie i wycofywanie, punkty bezpieczeństwa, spójność, anomalie współbieżnego dostępu do danych, poziomy

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

Obsługa błędów w SQL i transakcje. Obsługa błędów w SQL

Obsługa błędów w SQL i transakcje. Obsługa błędów w SQL Obsługa błędów w SQL i transakcje Zacznijmy od najprostszego przykładu: CREATE PROCEDURE podziel1 Obsługa błędów w SQL Powyższa procedura w większości przypadków zadziała prawidłowo, lecz na przykład poniższe

Bardziej szczegółowo

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

Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie. Temat: Wyzwalacze (triggery). Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie. W poniższym przykładzie definiujemy tablicę a następnie trigger

Bardziej szczegółowo

Internetowe bazy danych

Internetowe bazy danych Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy Internetowe bazy danych wykład 3 dr inż. Jacek Mazurkiewicz e-mail: Jacek.Mazurkiewicz@pwr.wroc.pl Typy tabel MySQL domyślny MyISAM inne możliwe:

Bardziej szczegółowo

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

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze Funkcje użytkownika Tworzenie funkcji Usuwanie funkcji Procedury składowane Tworzenie procedur składowanych Usuwanie procedur składowanych Wyzwalacze Wyzwalacze a ograniczenia i procedury składowane Tworzenie

Bardziej szczegółowo

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

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, 2017 Spis treści O autorze 9 Wprowadzenie 11 Lekcja 1. Zrozumieć SQL 15 Podstawy baz danych 15 Język SQL

Bardziej szczegółowo

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski Transakcje i ich właściwości Transakcje Tadeusz Pankowski wwwputpoznanpl/~tadeuszpankowski W SZBD stosuje się pojęcie transakcji jako jednostki operowania na bazie danych podlegającej sterowaniu i kontroli

Bardziej szczegółowo

Wykład 8. SQL praca z tabelami 5

Wykład 8. SQL praca z tabelami 5 Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu

Bardziej szczegółowo

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

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ]; Braki w SQL obsługi zdarzeń i sytuacji wyjątkowych funkcji i procedur użytkownika definiowania złożonych ograniczeń integralnościowych Proceduralny SQL Transact- SQL używany przez Microsoft SQL Server

Bardziej szczegółowo

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie

Bardziej szczegółowo

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

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe -- Definicje relacji i utworzenie stanu początkowego dla ćwiczeń z synchronizacji transakcji DROP TABLE Konta cascade constraints; DROP TABLE

Bardziej szczegółowo

PHP: bazy danych, SQL, AJAX i JSON

PHP: bazy danych, SQL, AJAX i JSON 1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji

Bardziej szczegółowo

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

Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski. Poznań, 30.09.2015 Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski Poznań, 30.09.2015 Plan Geneza Architektura Cechy Instalacja Standard SQL Transakcje i współbieżność Indeksy Administracja Splice Machince vs.

Bardziej szczegółowo

MySQL. Æwiczenia praktyczne

MySQL. Æwiczenia praktyczne IDZ DO PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG MySQL. Æwiczenia praktyczne Autor: Marek Nowakowski ISBN: 83-7197-884-7 Format: B5, stron: 114 TWÓJ KOSZYK DODAJ

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Transakcje i blokady Wprowadzenie do transakcji, rodzaje transakcji Punkty zapisu, odzyskiwanie

Bardziej szczegółowo

Zarządzanie transakcjami

Zarządzanie transakcjami Zarządzanie transakcjami Właściwości ACID Przyjmuje się, że transakcje i protokoły zarządzania transakcjami powinny posiadać właściwości ACID: Atomowość (atomicity) każda transakcja stanowi pojedynczą

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 2 Kusory Wprowadzenie Kursory użytkownika Kursory domyślne Zmienne kursora Wyrażenia kursora - 2 - Wprowadzenie Co to jest kursor?

Bardziej szczegółowo

BAZY DANYCH Cz III. Transakcje, Triggery

BAZY DANYCH Cz III. Transakcje, Triggery BAZY DANYCH Cz III Transakcje, Triggery Transakcje Definicja: Zbiór operacji (modyfikacja danych, usuwanie, wstawianie, tworzenie obiektów bazodanowych), które albo wszystkie kończone są sukcesem, albo

Bardziej szczegółowo

Wyzwalacze (triggery) Przykład

Wyzwalacze (triggery) Przykład Wyzwalacze (triggery) Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie. W poniższym przykładzie definiujemy tablicę, a następnie trigger związany

Bardziej szczegółowo

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Wprowadzenie do projektowania i wykorzystania baz danych Relacje Wprowadzenie do projektowania i wykorzystania baz danych Relacje Katarzyna Klessa Dygresja nt. operatorów SELECT 2^2 SELECT 2^30 SELECT 50^50 2 Dygresja nt. operatorów SELECT 2^30 --Bitwise exclusive OR

Bardziej szczegółowo

DECLARE VARIABLE zmienna1 typ danych; BEGIN

DECLARE VARIABLE zmienna1 typ danych; BEGIN Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;

Bardziej szczegółowo

Zarządzanie bazą danych. Bazy Danych i Systemy informacyjne Wykład 4. Piotr Syga

Zarządzanie bazą danych. Bazy Danych i Systemy informacyjne Wykład 4. Piotr Syga Bazy Danych i Systemy informacyjne Wykład 4 Piotr Syga 26.10.2018 Procedury review Przypomnienie składni procedur Tworzenie DELIMITER $$ CREATE PROCEDURE zliczacz (OUT wynik INT) BEGIN operacje... END

Bardziej szczegółowo

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł mysqli ma dwa interfejsy: proceduralny i obiektowy) PostgreSQL Oracle MS

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

Bardziej szczegółowo

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15 T-SQL dla każdego / Alison Balter. Gliwice, cop. 2016 Spis treści O autorce 11 Dedykacja 12 Podziękowania 12 Wstęp 15 Godzina 1. Bazy danych podstawowe informacje 17 Czym jest baza danych? 17 Czym jest

Bardziej szczegółowo

Bazy danych 9. Klucze obce Transakcje

Bazy danych 9. Klucze obce Transakcje Bazy danych 9. Klucze obce Transakcje P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2007/08 Dygresja: Metody przechowywania tabel w MySQL Tabele w MySQL moga być przechowywane na kilka

Bardziej szczegółowo

OLTP Przetwarzanie Transakcyjne

OLTP Przetwarzanie Transakcyjne ZTB: OLTP Przetwarzanie Transakcyjne 1 Zaawansowane Technologie Bazodanowe Wykład p.t. OLTP Przetwarzanie Transakcyjne ZTB: OLTP Przetwarzanie Transakcyjne 2 Pojęcie transakcji w bazach danych Transakcje

Bardziej szczegółowo

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

Bazy danych 9. Klucze obce Transakcje. P. F. Góra Bazy danych 9. Klucze obce Transakcje P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2009 Dygresja: Metody przechowywania tabel w MySQL Tabele w MySQL moga być przechowywane na kilka sposobów. Sposób

Bardziej szczegółowo

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

070 TRANSAKCJE. Prof. dr hab. Marek Wisła 070 TRANSAKCJE Prof. dr hab. Marek Wisła Transakcja - definicja Transakcja jest sekwencją logicznie powiązanych operacji na bazie danych, przeprowadzających bazę danych z jednego stanu spójnego w inny

Bardziej szczegółowo

CREATE USER

CREATE USER Temat: Administrowanie użytkownikami bazy danych. Po instalacji serwera MYSQL dostępne jest konto o nazwie root. Domyślnie nie ma ono przypisanego hasła, aczkolwiek podczas procesu konfiguracji jest możliwość

Bardziej szczegółowo

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

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście. Rodzaje triggerów Triggery DML na tabelach INSERT, UPDATE, DELETE Triggery na widokach INSTEAD OF Triggery DDL CREATE, ALTER, DROP Triggery na bazie danych SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN

Bardziej szczegółowo

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH Kopie bezpieczeństwa NAPRAWA BAZ DANYCH Sprawdzanie spójności bazy danych Jednym z podstawowych działań administratora jest zapewnienie bezpieczeństwa danych przez tworzenie ich kopii. Przed wykonaniem

Bardziej szczegółowo

Bazy danych 6a. Transakcje. P. F. Góra

Bazy danych 6a. Transakcje. P. F. Góra Bazy danych 6a. Transakcje P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2018 Transakcje Pojedynczy użytkownik ochrona szczególnie wrażliwych fragmentów. Transakcja wykonuje się albo w całości, albo

Bardziej szczegółowo

15. Funkcje i procedury składowane PL/SQL

15. Funkcje i procedury składowane PL/SQL 15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp

Bardziej szczegółowo

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Laboratorium nr 4. Temat: SQL część II. Polecenia DML Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze

Bardziej szczegółowo

Algorytmy zarządzania współbieżnym wykonywaniem transakcji część II

Algorytmy zarządzania współbieżnym wykonywaniem transakcji część II Algorytmy zarządzania współbieżnym wykonywaniem transakcji część II Wykład przygotował: Tadeusz Morzy BD wykład 9 Kontynuujemy prezentację i omówienie algorytmów zarządzania współbieżnym wykonywaniem transakcji.

Bardziej szczegółowo

Wykład 5: PHP: praca z bazą danych MySQL

Wykład 5: PHP: praca z bazą danych MySQL Wykład 5: PHP: praca z bazą danych MySQL Architektura WWW Podstawowa: dwuwarstwowa - klient (przeglądarka) i serwer WWW Rozszerzona: trzywarstwowa - klient (przeglądarka), serwer WWW, serwer bazy danych

Bardziej szczegółowo

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych

Bardziej szczegółowo

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued

Bardziej szczegółowo

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

Procedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu Procedury składowane Kolejnym typem programu języka PL/SQL są procedury składowane. Procedury mogą posiadać parametry typu IN, OUT lub IN OUT. Umożliwiają wykonanie operacji na danych w bazie, mogą też

Bardziej szczegółowo

Pojęcie systemu baz danych

Pojęcie systemu baz danych Pojęcie systemu baz danych System baz danych- skomputeryzowany system przechowywania danych/informacji zorganizowanych w pliki. Składa się z zasadniczych elementów: 1) Danych 2) Sprzętu 3) Programów 4)

Bardziej szczegółowo

Zarządzanie obiektami bazy danych Oracle11g

Zarządzanie obiektami bazy danych Oracle11g Zarządzanie obiektami bazy danych Oracle11g Wstęp Obiekty to struktury przechowujące, porządkujące lub operujące na danych takie jak: Tabele Więzy integralności Indeksy Widoki Sekwencje Procedury Linki

Bardziej szczegółowo

Pakiety podprogramów Dynamiczny SQL

Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora), dynamiczny SQL 1 Pakiety Pakiet (ang. package)

Bardziej szczegółowo

System Oracle podstawowe czynności administracyjne

System Oracle podstawowe czynności administracyjne 6 System Oracle podstawowe czynności administracyjne Stany bazy danych IDLE nieczynna, pliki zamknięte, procesy tła niedziałaja NOMOUNT stan po odczytaniu pfile-a, zainicjowaniu SGA i uruchomieniu procesów

Bardziej szczegółowo

PODSTAWY BAZ DANYCH 13. PL/SQL

PODSTAWY BAZ DANYCH 13. PL/SQL PODSTAWY BAZ DANYCH 13. PL/SQL 1 Wprowadzenie do języka PL/SQL Język PL/SQL - rozszerzenie SQL o elementy programowania proceduralnego. Możliwość wykorzystywania: zmiennych i stałych, instrukcji sterujących

Bardziej szczegółowo

Projektowanie baz danych za pomocą narzędzi CASE

Projektowanie baz danych za pomocą narzędzi CASE Projektowanie baz danych za pomocą narzędzi CASE Metody tworzenia systemów informatycznych w tym, także rozbudowanych baz danych są komputerowo wspomagane przez narzędzia CASE (ang. Computer Aided Software

Bardziej szczegółowo

Rok szkolny 2015/16 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. ADMINISTROWANIE BAZAMI DANYCH kl. 4c

Rok szkolny 2015/16 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. ADMINISTROWANIE BAZAMI DANYCH kl. 4c Wymagania edukacyjne w technikum ADMINISTROWANIE BAZAMI DANYCH kl. 4c Lp. 1 2 4 5 Temat Zasady dotyczące zarządzania projektem podczas prac związanych z tworzeniem bazy oraz cykl życiowy bazy Modele tworzenia

Bardziej szczegółowo

Składowane procedury i funkcje

Składowane procedury i funkcje Składowane procedury i funkcje Procedury i funkcje są zestawem poleceń SQL, które są przechowywane na serwerze (tak jak dane w tablicach). Istnieją sytuacje, kiedy procedury i funkcje są szczególnie przydatne.

Bardziej szczegółowo

Tworzenie zapytań do Microsoft SQL Server

Tworzenie zapytań do Microsoft SQL Server MS 20461 Tworzenie zapytań do Microsoft SQL Server Czas trwania: 5 dni (40 h) Poziom trudności: Średnio Zaawansowany Autoryzacja: Microsoft Opis: Szkolenie administratorów baz danych oraz programistów

Bardziej szczegółowo

Paweł Rajba

Paweł Rajba Paweł Rajba pawel@cs.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Używanie kursorów Rodzaje kursorów Praca z kursorami Co to jest kursor? Cykl życia kursora utworzenie pobieranie wartości ewentualnie

Bardziej szczegółowo

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop. 2016 Spis treści O autorach 11 Podziękowania 12 Część I Wprowadzenie do języka SQL 13 Godzina 1. Witamy w świecie języka SQL 15

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

Uprawnienia, role, synonimy

Uprawnienia, role, synonimy Uprawnienia, role, synonimy Schemat, użytkownicy, autoryzacja użytkowników, uprawnienia systemowe i obiektowe, nadawanie i odbieranie uprawnień, tworzenie ról, przywileje, synonimy Schematy i użytkownicy

Bardziej szczegółowo

5.3. Tabele. Tworzenie tabeli. Tworzenie tabeli z widoku projektu. Rozdział III Tworzenie i modyfikacja tabel

5.3. Tabele. Tworzenie tabeli. Tworzenie tabeli z widoku projektu. Rozdział III Tworzenie i modyfikacja tabel 5.3. Tabele Tabela jest podstawowym elementem bazy danych. To właśnie w tabelach gromadzone są w bazie rekordy danych. Projektując tabelę, definiujemy, jakie pola będzie zawierał pojedynczy rekord informacji.

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

Plan wykładu. Przykład. Wprowadzenie BAZY DANYCH. Transakcje Hurtownie danych

Plan wykładu. Przykład. Wprowadzenie BAZY DANYCH. Transakcje Hurtownie danych Plan wykładu 2 BAZY DANYCH Wykład 5: Transakcje. Hurtownie danych. Transakcje Hurtownie danych Małgorzata Krętowska Wydział Informatyki Politechnika Białostocka Wprowadzenie Przykład Zmiany zachodzące

Bardziej szczegółowo

Tabela wewnętrzna - definicja

Tabela wewnętrzna - definicja ABAP/4 Tabela wewnętrzna - definicja Temporalna tabela przechowywana w pamięci operacyjnej serwera aplikacji Tworzona, wypełniana i modyfikowana jest przez program podczas jego wykonywania i usuwana, gdy

Bardziej szczegółowo

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych Plan wykładu Bazy danych Cechy rozproszonej bazy danych Implementacja rozproszonej bazy Wykład 15: Rozproszone bazy danych Małgorzata Krętowska, Agnieszka Oniśko Wydział Informatyki PB Bazy danych (studia

Bardziej szczegółowo

Ref. 7 - Język SQL - polecenia DDL i DML

Ref. 7 - Język SQL - polecenia DDL i DML Ref. 7 - Język SQL - polecenia DDL i DML Wprowadzenie do języka SQL. Polecenia generujące strukturę bazy danych: CREATE, ALTER i DROP. Polecenia: wprowadzające dane do bazy - INSERT, modyfikujące zawartość

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z dużej ilości danych zapisanych na serwerze jest współpraca z relacyjną bazą danych. 2 1. Utworzyć bazę danych.

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej   Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Laboratorium 1 Wprowadzenie, podstawowe informacje o obsłudze

Bardziej szczegółowo

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , , Celem ćwiczeń jest zaprojektowanie oraz utworzenie na serwerze bazy danych przechowującej informacje na temat danych kontaktowych. Celem jest również zapoznanie z podstawowymi zapytaniami języka SQL służącymi

Bardziej szczegółowo

PTI S1 Tabele. Tabele. Tabele

PTI S1 Tabele. Tabele. Tabele Tabele Tabele 43 1.3. Tabele Jako że bazy danych składają się z tabel, musimy nauczyć się jak je zaprojektować, a następnie stworzyć i zarządzać nimi w programie Microsoft Access 2013. Zajmiemy się również

Bardziej szczegółowo

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PRZESTRZENNE BAZY DANYCH WYKŁAD 2 PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie

Bardziej szczegółowo

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

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, 2016 Spis treści Wprowadzenie Podziękowania xiii xvii 1 Podstawy zapytań i programowania T-SQL 1 Podstawy

Bardziej szczegółowo

Database Connectivity

Database Connectivity Oprogramowanie Systemów Pomiarowych 15.01.2009 Database Connectivity Dr inŝ. Sebastian Budzan Zakład Pomiarów i Systemów Sterowania Tematyka Podstawy baz danych, Komunikacja, pojęcia: API, ODBC, DSN, Połączenie

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 5 Kursory w SQL Serverze Wprowadzenie Modele kursorów Używanie kursorów Rodzaje kursorów Praca

Bardziej szczegółowo

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu Zbiór pytań nr 5 1 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu connect athos/musketeer grant select,insert,update,delete on athos.services to porthos with grant option; grant

Bardziej szczegółowo

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

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X Wrocław 2006 INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl INTERNETOWE BAZY DANYCH PLAN NA DZIŚ zajęcia 1: 2. Procedury składowane

Bardziej szczegółowo

SIECI KOMPUTEROWE I BAZY DANYCH

SIECI KOMPUTEROWE I BAZY DANYCH KATEDRA MECHANIKI I ROBOTYKI STOSOWANEJ WYDZIAŁ BUDOWY MASZYN I LOTNICTWA, POLITECHNIKA RZESZOWSKA SIECI KOMPUTEROWE I BAZY DANYCH Laboratorium DB2: TEMAT: Relacyjne bazy danych Cz. I, II Cel laboratorium

Bardziej szczegółowo

Cele. Definiowanie wyzwalaczy

Cele. Definiowanie wyzwalaczy WYZWALACZE Definiowanie wyzwalaczy Cele Wyjaśnić cel istnienia wyzwalaczy Przedyskutować zalety wyzwalaczy Wymienić i opisać cztery typy wyzwalaczy wspieranych przez Adaptive Server Anywhere Opisać dwa

Bardziej szczegółowo

Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE,

Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE, Programowanie w SQL definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE, kontynuacja działania od instrukcji za podaną etykietą GOTO etykieta, wyjście bezwarunkowe

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie. Wydział Geologii, Geofizyki i Ochrony Środowiska. Bazy danych 2

AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie. Wydział Geologii, Geofizyki i Ochrony Środowiska. Bazy danych 2 AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie Wydział Geologii, Geofizyki i Ochrony Środowiska Wydajnośd w bazach danych Grzegorz Surdyka Informatyka Stosowana Kraków, 9 Spis treści. Wstęp...

Bardziej szczegółowo