Bazy danych. Dr inż. Paweł Kasprowski



Podobne dokumenty
BAZY DANYCH. Transakcje. opracowanie: Michał Lech

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1

Bazy danych. Andrzej Łachwa, UJ, /15

Bazy danych. Dr inż. Paweł Kasprowski

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

Właściwości transakcji

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

Transakcje. (c) Instytut Informatyki Politechniki Poznańskiej

Zarządzanie transakcjami

Oracle PL/SQL. Paweł Rajba.

Transakcje jednocześnie ACID

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

Bazy danych 2. Wykład 6 Transakcje

Tadeusz Pankowski

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

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

Wykład 8. SQL praca z tabelami 5

Bazy danych 9. SQL Klucze obce Transakcje

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

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

1 Wstęp do modelu relacyjnego

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

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Rozproszone bazy danych. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

Przechowywanie danych

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

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

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

Wykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. UŁ. Tadeusz Antczak. Transakcje

Wykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. nadzw. Tadeusz Antczak. Transakcje

Wprowadzenie (1) Przetwarzanie transakcyjne. Wprowadzenie (2) Problemy przygotowania aplikacji

Autor: Joanna Karwowska

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

Administracja bazami danych

Bazy danych Wykład zerowy. P. F. Góra

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

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

Bazy danych 9. Klucze obce Transakcje

Hbase, Hive i BigSQL

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

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

Wykład 2. Relacyjny model danych

Wrocławska Wyższa Szkoła Informatyki Stosowanej. Bazy danych. Dr hab. inż. Krzysztof Pieczarka.

Pojęcie bazy danych. Funkcje i możliwości.

Optymalizacja zapytań. Proces przetwarzania i obliczania wyniku zapytania (wyrażenia algebry relacji) w SZBD

K1A_W11, K1A_W18. Egzamin. wykonanie ćwiczenia lab., sprawdzian po zakończeniu ćwiczeń, egzamin, K1A_W11, K1A_W18 KARTA PRZEDMIOTU

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

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

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

Wykład XII. optymalizacja w relacyjnych bazach danych

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

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

BAZY DANYCH Podstawowe pojęcia

Relacyjne bazy danych a XML

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Model relacyjny. Wykład II

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

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

MongoDB. wprowadzenie. dr inż. Paweł Boiński, Politechnika Poznańska

JDBC. Plan ćwiczenia. Wywoływanie poleceń SQL z języków programowania. Plan ćwiczenia cd. Wprowadzenie do laboratorium

Technologie baz danych

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Podstawy języka SQL - dokończenie TRANSAKCJE 1

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

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM,

WPROWADZENIE DO BAZ DANYCH

PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

Paweł Rajba

Wymagania dotyczące oprogramowania bazodanowego

Transakcje Wykład z bazy danych dla studen

Projektowanie relacyjnych baz danych

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Internetowe bazy danych

Czym jest baza danych?

Podstawy teoretyczne baz danych. Recovery Transakcyjne odtwarzanie bazy danych po awarii

Podstawy frameworka Spring

Model relacyjny. Wykład II

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

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Typy sterowników. Rozdział 21 JDBC. Podstawowe kroki aplikacji. Historia. Program napisany w języku Java JDBC API. Menadżer sterowników JDBC

Cel odtwarzania. Transakcyjne odtwarzanie bazy danych. Modele awarii. Efektywność odtwarzania MTTF

DECLARE VARIABLE zmienna1 typ danych; BEGIN

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

PHP: bazy danych, SQL, AJAX i JSON

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Transakcje w systemach Java Enterprise Korzystanie z baz danych w serwerach aplikacji

Adam Cankudis IFP UAM

Protokół JDBC współpraca z relacyjnymi bazami danych lab3

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

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

Architektura ADO.NET Dostawcy danych Modele dostępu do danych model połączeniowy Model bezpołączeniowy

Bazy danych i usługi sieciowe

OLTP Przetwarzanie Transakcyjne

Fizyczna organizacja danych w bazie danych

Oracle11g: Wprowadzenie do SQL

Informatyka (7-8) dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Transkrypt:

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 dane Architektury SZBD Plik tekstowy/binarny Własny format Własna obsługa Lepiej użyć gotowych rozwiązań! Embedded driver sterownik dołączany do aplikacji, obsługujący bezpośrednio pliki Dostęp tylko lokalny i tylko przez jednego użytkownikaż Client-server sterownik łączy się we własnym protokole z częścią serwerową na innym lub tym samym komputerze Sterowniki bazodanowe Realizacja zapytań Własne producenta (na wymarciu) Wykorzystujące standardowe API ODBC JDBC OLE DB Wykorzystujące otwarte standardy (XML) Web Services Zapytanie SQL jest kompilowane Wyodrębnienie koniecznych operacji Przygotowany jest plan zapytania Kolejność wykonywania operacji 1

Trzy podstawowe operacje Algebra relacji Selekcja wybór wierszy Projekcja wybór kolumn Złączenie ą naturalne łączenie relacji Terminologia A 1, A 2 atrybuty R, S schemat relacji, np. {A,B,C} r(r) relacja o schemacie R t x [A 1 ] wartość artybutu A 1 w krotce t x Klucz relacji Selekcja Zbiór atrybutów, których wartość jest unikalna dla każdej krotki Jest to podzbiór R K R taki, że dla każdej pary krotek z r wartości klucza są różne t t i t j r [ K ] t [ K ] i j Matematycznie: σ ( r) = { t : t r w( t) TRUE} w = Podzbiór krotek relecji dla których spełniony jest warunek Projekcja Złączenie naturalne Matematycznie: π X () r = { u : u = t[ X ] t r} gdzie X jest podzbiorem R Wybór niektórych atrybutów ze wszystkich krotek relacji Dla dwóch relacji r(r) i s(s) ( R) s( S ) = r >< { u: t r w s t [ R S] = wr [ S] u [ R] = t u[ S] = w} Połącz dwie relacje według wspólnych dla nich atrybutów 2

Przykłady zapytań (1) Przykłady zapytań (2) Znajdź pracowników z pojedynczymi dochodami większymi niż 150 Znajdź pracowników z dochodami z projektu EDYTOR TEKSTU (σ kwota>150 (pracownicy Χ wypłaty)) (σ nazwa=edytor tekstu (pracownicy X wypłaty X projekty)) Przykłady zapytań (3) Przykłady zapytań (4) Znajdź projekty w których brał udział pracownik Kowalski Znajdź id projektów i kwoty wypłat pracownika Kowalskiego Π nazwa (σ nazwisko=kowalski (pracownicy X wypłaty X projekty)) Π kwota,idpr (σ nazwisko=kowalski (pracownicy X wypłaty)) Inne operacje na relacjach Prawa operacji na relacjach UNION suma zbiorów (r lub s) INTERSECTION część wspólna zbiorów (r oraz s) DIFFERENCE krotki z r, których nie ma w s (r s) Przemienność złączeń rxs=sxr Łączność złączeń rx(sxz)=(rxs)xz Kaskada projekcji jeśli X 1 ЄX 2 to Π x1 (Π x2 (r)) = Π x1 (r) Przemienność i kaskada selekcji σ F1 (σ F2 (r)) = σ F2 (σ F1 (r)) = σ F1F2 (r) Przemienność projekcji i selekcji Π X (σ F (r)) = σ F (Π X (r)) 3

Prawa operacji na relacjach Optymalizacja operacji Przemienność operacji złączenia i selekcji σ F (r X s) = σ F (r) X s jeśli atr(f) Є R σ F (r X s) = rxσ σ F (s) jeśli atr(f) Є S σ F (r X s) = σ F1 (r) X σ F2 (s) jeśli atr(f1) Є R i atr(f2) Є S i F1+F2 = F Analogicznie dla projekcji Wykorzystujemy poznane prawa Przykład: Nazwiska pracowników zespołu nr 3, którzy mieli wypłatę większą niż 100 zł Konieczność złączenia tablic pracownicy i dochody Koszt operacji: liczba odczytów pojedynczych rekordów pracownicy (20) X wypłaty (50) Realizacja standardowa Realizacja po optymalizacji (σ kwota>100 i nrz=3 (pracownicy Χ wypłaty)) (σ nrz=3 (pracownicy) Χ σ kwota>100 (wypłaty)) pracownicy (20 rek.) wypłaty pracownicy (20 rek.) wypłaty k 1 = 20 σ nrz=3 σ kwota>100 k 2 = 50 k 1 = 20 x 50 = 1000 (5 rek.) (20 rek.) σ kwota>100 i nrz=3 k 2 = 50 k 3 = 20 x 5 = 100 koszt całkowity = k 1 + k 2 = 1050 koszt całkowity = k 1 + k 2 + k 3 = 170 Optymalizacja Kolejność złączeń Zasada 1: O ile się tylko da to najpierw selekcje, później złączenia Przykład 2: Podaj nazwiska pracowników, którzy mieli dochody w projekcie Edytor Tym razem trzy tablice: pracownicy(20) X wypłaty(50) X projekty (10) 4

Realizacja standardowa Najpierw selekcje (σ nazwa=edytor (pracownicy Χ wypłaty X projekty)) pracownicy (20 rek.) wypłaty projekty (10 rek.) (pracownicy Χ wypłaty X σ nazwa=edytor (projekty)) pracownicy (20 rek.) wypłaty projekty (10 rek.) σ nazwa=edytor k 1 = 20 x 50 = 1000 k 1 = 20 x 50 = 1000 k 2 = 10 k 2 = 10 x 50 = 500 (1 rek.) σ nazwa=edytor k 3 = 50 k 3 = 50 x 1 = 50 koszt całkowity = k 1 + k 2 + k 3 = 1550 koszt całkowity = k 1 + k 2 + k 3 = 1060 Zmiana kolejności złączeń Optymalizacja (pracownicy Χ wypłaty X σ nazwa=edytor (projekty)) pracownicy (20 rek.) wypłaty projekty (10 rek.) σ nazwa=edytor k 1 = 10 (1 rek.) (20 rek.) k 2 = 1 x 50 = 50 (10 rek.) Zasada 1: O ile się tylko da to najpierw selekcje, później złączenia Zasada 2: Najpierw złączenia dla których relacje są najmniejsze (największa selekcja lub mało rekordów) Wniosek: Dobrze jest znać zawartość bazy - statystyki k 3 = 20 x 10 = 200 koszt całkowity = k 1 + k 2 + k 3 = 260 Optymalizacja odczytów Dziennik transakcji Podział plików na bloki strony i superbloki extenty Użycie mechanizmu cache (bufora) Odłożony zapis (konieczny dziennik transakcji) Zapis wszystkich operacji na bazie danych Umożliwia odtworzenie danych w przypadku awarii Pozwala na wycofanie zmian w bazie w przypadku wykrycia błędu (mechanizm transakcji) 5

Co to jest transakcja Przykład transakcji Pewna liczba operacji, spełniająca warunki ACID Atomicity (atomowość) muszą się wykonać wszystkie operacje, jeśli jakaś nie może się wykonać, żadna inne też nie powinna Consistency (spójność) transakcja zastaje i zostawia dane w postaci spójnej (prawidłowej) Isolation (izolacja) dane używane przez transakcje muszą być prawidłowe, dlatego transakcje muszą być od siebie izolowane Durability (trwałość) po zakończeniu transakcji efekty jej pracy są zapisane na stałe (persistence) i nie zostaną utracone Tablica: konta(nr, saldo) Operacja przelewu 100 zł z konta nr 10 na konto nr 20 update konta set saldo=saldo-100 where nr=10 update konta set saldo=saldo+100 where nr=20 Atomowość: obie aktualizacje muszą zadziałać Spójność: po zakończeniu transakcji suma pieniędzy na kontach nie zmienia się Izolacja: wycofana aktualizacja nie powoduje utraty spójności Trwałość: po zakończeniu wyniki są w zapisane w bazie Zapewnianie transakcyjności Wycofywanie transakcji AutoCommit każda operacja na danych jest osobną transakcją Implicit transactions pierwsza operacja na danych otwiera transakcję koniec transakcji: COMMIT Explicit transactions otwarcie transakcji: BEGIN TRANSACTION operacje na bazie zakończenie: COMMIT lub ROLLBACK Przez serwer: w razie awarii serwera rozłączenie się klienta bez zakończenia transakcji Przez klienta: wyniki którejś operacji są niezgodne z oczekiwaniami polecenie: ROLLBACK Przykład transakcji kcji (przelew bankowy)... con.setautocommit(false); try{ int n1 = stmt.executeupdate( "update accounts set amount=amount-100 where custid=75"); int n2 = stmt.executeupdate( "update accounts set amount=amount+100 where custid=43"); if(n1==1 && n2==1) con.commit(); else con.rollback(); }catch(sqlexception ec) {con.rollback(); System.err.println(ec.getMessage());}... Poziomy izolacji transakcji READ_UNCOMMITTED niemożliwa zmiana danych zmienionych przez inną transakcję i niezatwierdzonych READ_COMMITTED niemożliwy brudny odczyt (dirty read) REPEATABLE_READ dane raz odczytane nie mogą być zmieniane przez inne transakcje SERIALIZABLE powtórzenie zapytania w transakcji daje takie same wyniki 6

Dziękuję za uwagę Do zobaczenia... materiały dostępne pod adresem: www.kasprowski.pl 7