Transakcyj ność. danych. Iselect k.1 trom t I I sełect k.1 trom t I. I update t. 18 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: 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 licznika 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 zmniejszenię Dopiero gdy wartość 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

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

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

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

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

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

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

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

DECLARE typ [( )] [ NOT NULL ] [ { := DEFAULT } ];

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

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

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

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

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk Wstęp wprowadzający do laboratorium 2 mgr inż. Rafał Grycuk Plan prezentacji 1. Czym jest T-SQL i czym się różni od standardu SQL 2. Typy zapytań 3. Zapytanie typu SELECT 4. Słowo o indeksach T-SQL (1)

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

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

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

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

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

Ć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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

QUERY język zapytań do tworzenia raportów w AS/400

QUERY język zapytań do tworzenia raportów w AS/400 QUERY język zapytań do tworzenia raportów w AS/400 Dariusz Bober Katedra Informatyki Politechniki Lubelskiej Streszczenie: W artykule przedstawiony został język QUERY, standardowe narzędzie pracy administratora

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

Kowalski Marcin 156439 Wrocław, dn. 3.06.2009 Jaśkiewicz Kamil 148592. Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

Kowalski Marcin 156439 Wrocław, dn. 3.06.2009 Jaśkiewicz Kamil 148592. Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami Kowalski Marcin 156439 Wrocław, dn. 3.06.2009 Jaśkiewicz Kamil 148592 Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami Spis treści Założenia Projektowe...1 Schemat Bazy Danych...1

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

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

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

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

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

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 4 Wsady Procedury składowane Procedury składowane tymczasowe, startowe Zmienne tabelowe Funkcje

Bardziej szczegółowo

z przedmiotu: Techniki Informatyczne Stanisław Flaga (stanislaw.flaga@agh.edu.pl)

z przedmiotu: Techniki Informatyczne Stanisław Flaga (stanislaw.flaga@agh.edu.pl) mysql relacyjna baza danych wstęp Materiały pomocnicze do laboratorium z przedmiotu: Techniki Informatyczne Stanisław Flaga () Wydział Inżynierii Mechanicznej i Robotyki Katedra Automatyzacji Procesów

Bardziej szczegółowo

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko Podstawowe pojęcia dotyczące relacyjnych baz danych mgr inż. Krzysztof Szałajko Czym jest baza danych? Co rozumiemy przez dane? Czym jest system zarządzania bazą danych? 2 / 25 Baza danych Baza danych

Bardziej szczegółowo

2010-11-22 PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

2010-11-22 PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH PLAN WYKŁADU Bezpieczeństwo w języku SQL Użytkownicy Uprawnienia Role BAZY DANYCH Wykład 8 dr inż. Agnieszka Bołtuć OGRANICZENIA DOSTĘPU DO DANYCH Ograniczenie danych z tabeli dla określonego użytkownika

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

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

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

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Składowe wyzwalacza ( ECA ): określenie zdarzenia ( Event ) określenie

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

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

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE Instrukcje SQL dzielimy na następujące kategorie: 1) Instrukcje języka manipulowania danymi (DML) SELECT, INSERT, UPDATE, DELETE, SET TRANSACTION, EXPLAIN PLAN 2) Instrukcje języka definicji danych DDL

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

SQL 4 Structured Query Lenguage

SQL 4 Structured Query Lenguage Wykład 5 SQL 4 Structured Query Lenguage Instrukcje sterowania danymi Bazy Danych - A. Dawid 2011 1 CREATE USER Tworzy nowego użytkownika Składnia CREATE USER specyfikacja użytkownika [, specyfikacja użytkownika]...

Bardziej szczegółowo

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

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota Laboratorium nr 3 1 Bazy Danych Instrukcja laboratoryjna Temat: Wprowadzenie do języka SQL, tworzenie, modyfikacja, wypełnianie tabel 3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota 1)

Bardziej szczegółowo

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi 1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) Tworząc tabelę nie możemy określić, do którego pliku trafi, lecz możemy określić do której grupy plików trafi Zawsze istnieje grupa zawierająca

Bardziej szczegółowo

Ogólne informacje o Systemie Archiwizacji ZEUS

Ogólne informacje o Systemie Archiwizacji ZEUS Ogólne informacje o Systemie Archiwizacji ZEUS System Archiwizacji ZEUS przeznaczony jest do opracowywania zasobów archiwalnych. Oprogramowanie powstało w wyniku wielomiesięcznej analizy potrzeb jednego

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

Komunikacja za pomocą potoków. Tomasz Borzyszkowski

Komunikacja za pomocą potoków. Tomasz Borzyszkowski Komunikacja za pomocą potoków Tomasz Borzyszkowski Wstęp Sygnały, omówione wcześniej, są użyteczne w sytuacjach błędnych lub innych wyjątkowych stanach programu, jednak nie nadają się do przekazywania

Bardziej szczegółowo

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38 Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem zajęcia 1 dr Jakub Boratyński pok. A38 Program zajęć Bazy danych jako podstawowy element systemów informatycznych wykorzystywanych

Bardziej szczegółowo

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

Instrukcje SQL można podzielić na pięć kategorii, które zostały przedstawione w poniższej tabeli. SQL W JĘZYKU PL/SQL Strukturalny język zapytań SQL określa sposób manipulowania danymi w bazie danych. Konstrukcje proceduralne języka PL/SQL stają się bardziej użyteczne w połączeniu z mocą przetwarzania

Bardziej szczegółowo

Bazy danych 2. Wykład 1

Bazy danych 2. Wykład 1 Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu

Bardziej szczegółowo

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych Nr ćwiczenia: 12 Praca z bazą danych MySQL wersja 2.0 Temat: Cel ćwiczenia:

Bardziej szczegółowo

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008 JDBC w LoXiMie Interfejs Java Database Connectivity dla systemu LoXiM Adam Michalik 2008 Sterownik JDBC co to jest? Sterownik JDBC to zbiór klas implementujących interfejsy opisane w specyfikacji JDBC

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x Wdrożenie modułu płatności eservice dla systemu oscommerce 2.3.x - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

Bardziej szczegółowo

Ile rekordów będzie zawierała tabela przy założeniu, że na początku była pusta?

Ile rekordów będzie zawierała tabela przy założeniu, że na początku była pusta? Gr Masyla: 1. Zaznacz poprawne stwierdzenia dotyczące opcji recovery model w MS SQL Server a) Ustawienie Simple pozwala zaoszczędzid miejsce na dysku b) Model full jest zalecany dla baz danych, w których

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9

Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9 Wdrożenie modułu płatności eservice dla systemu Magento 1.4 1.9 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do

Bardziej szczegółowo

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

Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wprowadzenie Definiowanie wyzwalaczy DML Metadane wyzwalaczy Inne zagadnienia, tabele mutujące Wyzwalacze INSTEAD OF Wyzwalacze

Bardziej szczegółowo

Baza danych. Modele danych

Baza danych. Modele danych Rola baz danych Systemy informatyczne stosowane w obsłudze działalności gospodarczej pełnią funkcję polegającą na gromadzeniu i przetwarzaniu danych. Typowe operacje wykonywane na danych w systemach ewidencyjno-sprawozdawczych

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 6 Wyzwalacze Wprowadzenie Tworzenie wyzwalacza Wyzwalacze typu,,po'' Wyzwalacze typu,,zamiast''

Bardziej szczegółowo

Projektowani Systemów Inf.

Projektowani Systemów Inf. Projektowani Systemów Inf. Wykład VII Bezpieczeństwo Copyrights by Arkadiusz Rzucidło 1 Bezpieczeństwo Bezpieczeństwo związane z danymi Konstrukcja magazynów danych Mechanizmy zapisu i modyfikacji danych

Bardziej szczegółowo

dziennik Instrukcja obsługi

dziennik Instrukcja obsługi Ham Radio Deluxe dziennik Instrukcja obsługi Wg. Simon Brown, HB9DRV Tłumaczenie SP4JEU grudzień 22, 2008 Zawartość 3 Wprowadzenie 5 Po co... 5 Główne cechy... 5 baza danych 7 ODBC... 7 Który produkt

Bardziej szczegółowo

Typy tabel serwera MySQL

Typy tabel serwera MySQL Typy tabel serwera MySQL Kopie zapasowe baz danych Zabezpieczanie serwera MySQL Zakładanie konta użytkownika z określonymi uprawnieniami Zarządzanie kontem i bazą danych Kilka kolejnych informacji na temat

Bardziej szczegółowo

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

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko Typy rozproszonych baz Systemy typu klient-serwer (jeden serwer) Jednorodna rozproszona baza (kilka serwerow, jeden system zarzadzania baza ) Niejednorodna

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 12 Zarządzanie bazami danych Pliki bazy danych i dzienniki Krótkie wprowadzenie do transakcji

Bardziej szczegółowo

PRZEWODNIK. Dodawanie i usuwanie rachunków bankowych

PRZEWODNIK. Dodawanie i usuwanie rachunków bankowych PRZEWODNIK Dodawanie i usuwanie rachunków bankowych Aby móc w pełni korzystać z funkcjonalności Serwisu topfx.pl, w Panelu Transakcyjnym należy zdefiniować rachunek bankowy prowadzony w PLN oraz minimum

Bardziej szczegółowo

Bazy danych i usługi sieciowe

Bazy danych i usługi sieciowe Bazy danych i usługi sieciowe Wstęp do problematyki baz danych Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) BDiUS w. I Jesień 2014 1 / 17 Plan wykładu 1 Bazy danych 1 Motywacja

Bardziej szczegółowo

Praca Magisterska "System zdalnego składania ofert kupna i sprzedaży za pośrednictwem Internetu" AUTOR PROMOTOR

Praca Magisterska System zdalnego składania ofert kupna i sprzedaży za pośrednictwem Internetu AUTOR PROMOTOR System Oferta Praca Magisterska Niniejszy system powstał w ramach pracy magisterskiej "System zdalnego składania ofert kupna i sprzedaży za pośrednictwem Internetu". Politechnika Poznańska Wydział Informatyki

Bardziej szczegółowo

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych Paweł Paduch paduch@tu.kielce.pl 06-04-2013 Rozdział 1 Wstęp Na dzisiejszych zajęciach zajmiemy się projektem bazy danych.

Bardziej szczegółowo

6. Bezpieczeństwo przy współpracy z bazami danych

6. Bezpieczeństwo przy współpracy z bazami danych 6. Bezpieczeństwo przy współpracy z bazami danych 6.1. Idea ataku SQL injection Atak znany jako SQL injection jest możliwy wtedy, gdy użytkownik ma bezpośredni wpływ na postać zapytania wysyłanego do bazy

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5 Wdrożenie modułu płatności eservice dla systemu Zen Cart 1.3.9 1.5 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Modelowanie hierarchicznych struktur w relacyjnych bazach danych Modelowanie hierarchicznych struktur w relacyjnych bazach danych Wiktor Warmus (wiktorwarmus@gmail.com) Kamil Witecki (kamil@witecki.net.pl) 5 maja 2010 Motywacje Teoria relacyjnych baz danych Do czego

Bardziej szczegółowo

Oracle11g: Programowanie w PL/SQL

Oracle11g: Programowanie w PL/SQL Oracle11g: Programowanie w PL/SQL OPIS: Kurs pozwala zrozumieć zalety programowania w języku PL/SQL. Studenci uczą się tworzyć bloki kodu wykonywanego po stronie serwera, który może być współużytkowany

Bardziej szczegółowo

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych Spis treści Wprowadzenie... ix Organizacja ksiąŝki... ix Od czego zacząć?... x Konwencje przyjęte w ksiąŝce... x Wymagania systemowe... xi Przykłady kodu... xii Konfiguracja SQL Server 2005 Express Edition...

Bardziej szczegółowo

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

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678'); polecenie UPDATE służy do aktualizacji zawartości wierszy tabel lub perspektyw składnia: UPDATE { } SET { { = DEFAULT NULL}, {

Bardziej szczegółowo

Administracja bazami danych

Administracja bazami danych Administracja bazami danych dr inż. Grzegorz Michalski Na podstawie wykładów dra inż. Juliusza Mikody Klient tekstowy mysql Program mysql jest prostym programem uruchamianym w konsoli shell do obsługi

Bardziej szczegółowo

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

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów SQL3 wprowadza następujące kolekcje: zbiory ( SETS ) - zestaw elementów bez powtórzeń, kolejność nieistotna listy ( LISTS ) - zestaw

Bardziej szczegółowo

Hbase, Hive i BigSQL

Hbase, Hive i BigSQL Hbase, Hive i BigSQL str. 1 Agenda 1. NOSQL a HBase 2. Architektura HBase 3. Demo HBase 4. Po co Hive? 5. Apache Hive 6. Demo hive 7. BigSQL 1 HBase Jest to rozproszona trwała posortowana wielowymiarowa

Bardziej szczegółowo

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

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze 1 Funkcje i procedury pamiętane Następujące polecenie tworzy zestawienie zawierające informację o tym ilu jest na naszej hipotetycznej

Bardziej szczegółowo

Migracja do PostgreSQL za pomocą narzędzi Enterprise DB

Migracja do PostgreSQL za pomocą narzędzi Enterprise DB Migracja do PostgreSQL za pomocą narzędzi Enterprise DB Przemysław Deć Konsultant IT Linux Polska Sp. z o.o. Cele prezentacji Czym jest Enterprise DB Korzyści migracji do opensource`owej bazy danych Kompatybilność

Bardziej szczegółowo

2. Tabele w bazach danych

2. Tabele w bazach danych 1. Uczeń: Uczeń: 2. Tabele w bazach danych a. 1. Cele lekcji i. a) Wiadomości zna sposób wstawiania tabeli do bazy danych, wie, w jaki sposób rozplanować położenie pól i tabel w tworzonej bazie, zna pojęcia

Bardziej szczegółowo

Podstawy programowania III WYKŁAD 2

Podstawy programowania III WYKŁAD 2 Podstawy programowania III WYKŁAD 2 Jan Kazimirski 1 Komunikacja z bazami danych 2 PHP i bazy danych PHP zapewnia dostęp do wielu popularnych baz danych. Kilka poziomów abstrakcji: Funkcje obsługujące

Bardziej szczegółowo

Bazy danych. Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI

Bazy danych. Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI Bazy danych Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI Wszechnica Poranna Trzy tematy: 1. Bazy danych - jak je ugryźć? 2. Język SQL podstawy zapytań. 3. Mechanizmy wewnętrzne baz danych czyli co

Bardziej szczegółowo

Fizyczna struktura bazy danych w SQL Serwerze

Fizyczna struktura bazy danych w SQL Serwerze Sposób przechowywania danych na dysku twardym komputera ma zasadnicze znaczenie dla wydajności całej bazy i jest powodem tworzenia między innymi indeksów. Fizyczna struktura bazy danych w SQL Serwerze

Bardziej szczegółowo

Naprawa uszkodzonej bazy danych

Naprawa uszkodzonej bazy danych Naprawa uszkodzonej bazy danych mgr Grzegorz Skoczylas gskoczylas@rekord.pl Spis treści I. Powody uszkodzeń baz danych II. Ratowanie uszkodzonej bazy danych 1. Zablokuj dostęp do bazy danych 2. Wykonaj

Bardziej szczegółowo

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika Prowadzący: Dr inż. Jacek Habel Instytut Technologii Maszyn i Automatyzacji Produkcji Zakład Projektowania Procesów

Bardziej szczegółowo