Bazy danych. Zasady konstrukcji baz danych

Podobne dokumenty
Projektowanie Systemów Informacyjnych

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Wykład II Encja, atrybuty, klucze Związki encji. Opracowano na podstawie: Podstawowy Wykład z Systemów Baz Danych, J.D.Ullman, J.

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

Bazy danych w sterowaniu

Systemy baz danych. mgr inż. Sylwia Glińska

Relacyjny model baz danych, model związków encji, normalizacje

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

Wprowadzenie do baz danych

Modelowanie danych, projektowanie systemu informatycznego

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Bazy Danych - Projekt. Zasady przygotowania i oceny projektów

Technologia informacyjna

Normalizacja baz danych

Bazy danych. Andrzej Łachwa, UJ, /15

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Wykład 2. Relacyjny model danych

BAZY DANYCH NORMALIZACJA BAZ DANYCH. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Przykłady normalizacji

Baza danych. Modele danych

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Normalizacja relacyjnych baz danych. Sebastian Ernst

BAZY DANYCH NORMALIZACJA BAZ DANYCH. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

SZKOLENIE: Administrator baz danych. Cel szkolenia

Bazy Danych. Modele danych. Krzysztof Regulski WIMiIP, KISiM,

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

WPROWADZENIE DO BAZ DANYCH

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

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Bazy danych TERMINOLOGIA

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

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

Technologia Informacyjna

Autor: Joanna Karwowska

BAZY DANYCH. Co to jest baza danych. Przykłady baz danych. Z czego składa się baza danych. Rodzaje baz danych

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

Autor: Joanna Karwowska

Wykład 8. SQL praca z tabelami 5

PROJEKT Z BAZ DANYCH

BAZY DANYCH Podstawowe pojęcia

Związki pomiędzy tabelami

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

Bazy danych i usługi sieciowe

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Baza danych. Baza danych to:

Tworzenie bazy danych na przykładzie Access

Diagramy związków encji ERD Ćwiczenia w modelowaniu danych

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

Bazy danych. Dr inż. Paweł Kasprowski

Wykład I. Wprowadzenie do baz danych

PODSTAWY BAZ DANYCH. 5. Modelowanie danych. 2009/ Notatki do wykładu "Podstawy baz danych"

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

1 Projektowanie systemu informatycznego

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

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

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Bazy danych - wykład wstępny

WPROWADZENIE DO BAZ DANYCH

Relacyjne bazy danych. Normalizacja i problem nadmierności danych.

Księgarnia PWN: Michael J. Hernandez Bazy danych dla zwykłych śmiertelników

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

1 Przygotował: mgr inż. Maciej Lasota

Projektowanie bazy danych przykład

Bazy danych i usługi sieciowe

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

BAZY DANYCH model związków encji. Opracował: dr inż. Piotr Suchomski

Technologie baz danych

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Zarządzanie transakcjami

Autor: Joanna Karwowska

Zaawansowane Modelowanie I Analiza Systemów Informatycznych

Pierwsza postać normalna

Transakcje. (c) Instytut Informatyki Politechniki Poznańskiej

Jak wiernie odzwierciedlić świat i zachować występujące w nim zależności? Jak implementacja fizyczna zmienia model logiczny?

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

mail: strona: konsultacje: na stronie (po wcześniejszym umówieniu drogą mailową)

Program nauczania. Systemy baz danych. technik informatyk

Zajęcia 1. W następnej tabeli zebrane są dane używane w bibliotece, które są przetwarzane przez bibliotekarza w różnych fazach obsługi czytelnika.

Baza danych sql. 1. Wprowadzenie

PLAN WYKŁADU BAZY DANYCH ZALEŻNOŚCI FUNKCYJNE

Krzysztof Kluza proste ćwiczenia z baz danych

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

Przykładowa baza danych BIBLIOTEKA

TECHNIKI MODELOWANIA STRUKTURY INFORMACYJNEJ

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

SIECI KOMPUTEROWE I BAZY DANYCH

Bazy danych. Wprowadzenie. SKiBD

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

Bazy danych. Algebra relacji

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

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Wprowadzenie do baz danych

Tworzenie projektu bazy danych z kreatorem odnośników - Filmoteka. Projekt tabel dla bazy Filmoteka

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

Dazy Banych. Michał Rusnarczyk

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

Normalizacja baz danych

Transkrypt:

Bazy danych Zasady konstrukcji baz danych

Diagram związków encji Cel: Opracowanie modelu logicznego danych Diagram związków encji [ang. Entity-Relationship diagram]: zapewnia efektywne operacje na danych chroni przed anomaliami (wstawiania, usuwania, istnienia) pozwala zbudować systematyczny model rzeczywistości opisywanej przez bazę danych kod PESEL pracuje Instytut nazwa nazwisko Pracownik profil imię prowadzi Przedmiot skrót stanowisk o rodzaj nazwa semestr 2

Diagram związków encji Encja Encja obiekt występujący w rzeczywistości atrybut Atrybut cecha, właściwość obiektu lub związku klucz klucz klucz atrybut kluczowy (klucz) klucz złożony z kilku atrybutów związek Związek związek zachodzący pomiędzy obiektami 3

Diagram E-R Uproszczenia Pracownik PESEL Imię Nazwisko stanowisko włączenie atrybutów do symbolu encji pominięcie atrybutów na diagramie (umieszczenie atrybutów w osobnym dokumencie) opuszczenie symbolu graficznego związku (pozostaje tylko linia) Pracownik pracuje Instytut 4

Rodzaje związków 1 1 (jedno-jednoznaczny) prawdopodobnie można połączyć encje ze sobą Instytut Pracownik Pracownik Przedmiot 1 wielu (jednoznaczny) Odpowiada funkcji każdy pracownik jest związany tylko z jednym instytutem wiele wielu (wieloznaczny) każdy pracownik prowadzi grupę (1 lub więcej) przedmiotów 5

Związki opcjonalne i rekurencyjne Instytut Pracownik Związek opcjonalny istnieją pracownicy nie przypisani do żadnego instytutu (np. stróż) Pracownik Związek rekurencyjny pracownik1 jest kierownikiem pracowników 6

Podtypy i nadtypy Towar AGD Podtypy - odmiany tej samej encji - nadtypu podobny zbiór atrybutów w encjach można określić wspólnym pojęciem RTV Narzędzia Konstrukcja nadtyp (typu uogólnionego) zbiór wszystkich pól podtypów pola niewykorzystane = NULL 7

Modelowanie zbieżne Poszukiwanie nadtypów Próba łączenia podobnych encji Zmniejszenie liczby encji w bazie danych Większa elastyczność i abstrakcyjność modelu Uproszczenie dostępu do danych Zmniejszenie liczby złączeń (kosztem selekcji) 8

Abstrakcyjny model świata Wartość atrybutu dla dla z Struktura z Obiekt Atrybut Typ atrybutu z Kwalifikowana dziedzina dla klasyfikacja z Zbudowany jako część z z klasyfikacja z klasyfikacja klasyfikacja klasyfikacja Typ struktury Typ obiektu rysunek z książki: Ulka Rodgers ORACLE, przewodnik projektanta baz danych 9

Diagram hierarchii funkcji Cel zastosowania: Zapanowanie nad dużym projektem Sprzedaż wysyłkowa towarów Zarządzanie finansami firmy Zarządzanie pracownikami Sprzedaż klientom Zaopatrzenie Na podstawie: Ulka Rodgers Oracle, przewodnik projektanta baz danych 10

Diagram hierarchii funkcji Sprzedaż wysyłkowa towarów Zarządzanie finansami firmy Płać dostawcom Zarządzanie pracownikami Obciążaj klientów Sprzedaż klientom Kontroluj stan finansów Zaopatrzenie Płać pracownikom Na podstawie: Ulka Rodgers Oracle, przewodnik projektanta baz danych 11

Budowa modelu relacyjnego na podstawie diagramu związków encji Konwersja Encja Tabela Atrybuty encji Pola w tabeli Związki encji Relacje Rozwinięcie związku wiele-wielu Pracownik Przedmiot Każdy pracownik prowadzi grupę (1 lub więcej) przedmiotów. 12

Budowa modelu relacyjnego na podstawie diagramu związków encji Konwersja Encja Tabela Atrybuty encji Pola w tabeli Związki encji Relacje Rozwinięcie związku wiele-wielu zastąpienie dwoma związkami 1-wielu Pracownik Lista przedm. Przedmiot Każdy pracownik ma tylko jedną listę prowadzonych przedmiotów. Pozycja listy zawiera tylko jeden przedmiot. 13

Realizacja związku 1-wielu Instytut Pracownik Tabela Instytuty Nazwa Instytut Metrologii I-14 Instytut Elektrotechniki ID I (klucz) I-15 Instytut Elektroniki I-16 Tabela nadrzędna Tabela Pracownicy Instytut ID A Nazwisko Tytuł I-16 1 Kowalski mgr I-16 2 Nowak dr I-15 3 Dębski mgr I-14 4 Wrocławski mgr I-14 5 Kamiński dr Tabela podrzędna 14

Integralność związku Wartość klucza do której się odwołuje encja podrzędna musi istnieć w encji nadrzędnej. Tabela Instytuty Nazwa Instytut Metrologii I-14 Instytut Elektrotechniki ID I (klucz) I-15 Instytut Elektroniki I-16? Tabela Pracownicy Instytut ID A Nazwisko Tytuł I-16 1 Kowalski mgr I-16 2 Nowak dr I-20 3 Dębski mgr I-14 4 Wrocławski mgr I-14 5 Kamiński dr 15

Integralność związku Utrzymywanie integralności przez system (opcjonalne) - system nie pozwala dodać danych naruszających integralność - postępowanie przy usuwaniu rekordów encji nadrzędnej usuwanie kaskadowe (rekordów powiązanych) blokada usuwania jeśli istnieją powiązane rekordy - postępowanie przy modyfikacji wartości klucza blokada pola klucza kaskadowe uaktualnianie w tabelach podrzędnych 16

Klucze, zależność funkcyjna Klucz główny minimalny zbiór pól (pole) na podstawie których można jednoznacznie zidentyfikować każdy rekord Klucz obcy odwołanie do klucza głównego innej tabeli Zależność funkcyjna ( istnienie funkcji ) Pomiędzy zbiorem pól A oraz polem b zachodzi zależność funkcyjna jeśli wartość pola b można jednoznacznie określić na podstawie wartości pól zbioru A. A b 17

Klucz główny Tabela: lista przedmiotów prowadzonych przez nauczycieli IDnauczyciela Skrót_przedmiotu LiczbaGodzin 10 ALG 5 10 ANAL 30 11 ALG 10 12 TPROB 15 12 ANAL 30 13 TMNOG 45 Klucz główny tabeli: IDnauczyciela i Skrót_przedmiotu 18

Klucz obcy Tabela: lista przedmiotów prowadzonych przez nauczycieli IDnauczyciela Skrót_przedmiotu LiczbaGodzin 10 ALG 5 10 ANAL 30 11 ALG 10 12 TPROB 15 12 ANAL 30 13 TMNOG 45 Dwa klucze obce tabeli: 1. IDnauczyciela 2. Skrót_przedmiotu 19

Zależność funkcyjna Tabela: lista przedmiotów prowadzonych przez nauczycieli IDn SkrPrzedm LiczbaGodzin 10 ALG 5 10 ANAL 30 11 ALG 10 12 TPROB 15 12 ANAL 30 13 TMNOG 45 Zależność funkcyjna: (IDn, SkrPrzedm) LiczbaGodzin Brak zależności funkcyjnej: (IDn) SkrPrzedm (IDn) LiczbaGodzin... 20

Normalizacja tabel Normalizacja: doprowadzanie tabel do postaci umożliwiającej efektywne wykonywanie operacji na danych uniknięcie anomalii przy zmianach danych podział tabeli (pola) na kilka tabel (pól) Tabele utworzone na podstawie diagramu E-R są znormalizowane. Formy normalne [ang. Normal Form = NF]: numeracja form 1NF, 2NF,... zawieranie się form normalnych w sobie (tabela w 3NF jest w 2NF) 21

Pierwsza i druga postać normalna 1NF każde pole zawiera niepodzielną część informacji 2NF każde pole niekluczowe zależy jedynie od całego klucza głównego (nie można znaleźć zależności funkcyjnej od części klucza) Jak wykryć postać nie 2NF? Należy sprawdzić czy istnieją pola, które zależą tylko od podzbióru (części) klucza głównego Jak doprowadzić do 2NF? Podział na dwie związane tabele. Anomalie w nie 2NF Anomalia usuwania, aktualizacji, istnienia 22

Tabele nie spełniające 2NF Tabela: lista rachunków za telefony (tylko jeden w miesiącu) NRklienta Nazwisko Imię Telefon Data Kwota 102034 Nowak Jan 656-23-00 10-01 34,56 102034 Nowak Jan 656-23-00 11-02 40,50 103000 Kowalska Anna 724-00-01 12-04 120,00 103000 Kowalska Anna 724-00-01 10-01 30,45 103000 Kowalska Anna 724-00-01 9-02 100,32 301988 Woźniak Stefan 546-00-23 5-01 80,87 301988 Woźniak Stefan 546-00-23 6-02 70,65 Klucz główny: (NRklienta i Data) Zależności funkcyjne: (NRklienta) Nazwisko, Imię, Telefon (Data, NRklienta) Kwota 23

Anomalie gdy nie jest spełniona 2NF Tabela: lista rachunków za telefony (tylko jeden w miesiącu) NRklienta Nazwisko Imię Telefon Data Kwota 102034 Nowak Jan 656-23-00 10-01 34,56 102034 Nowak Jan 656-23-00 11-02 40,50 103000 Kowalska Anna 724-00-01 12-04 120,00 103000 Kowalska Anna 724-00-01 10-01 30,45 103000 Kowalska Anna 724-00-01 9-02 100,32 301988 Woźniak Stefan 546-00-23 5-01 80,87 301988 Woźniak Stefan 546-00-23 6-02 70,65 Anomalie: Nie można dodać klienta, który jeszcze nie zapłacił rachunku Zmiana telefonu dla jednego klienta musi być wykonywana w wielu miejscach 24

Normalizacja do 2NF Podział na dwie tabele: Klienci i Rachunki NRklienta Nazwisko Imię Telefon Data Kwota 102034 Nowak Jan 656-23-00 10-01 34,56 102034 Nowak Jan 656-23-00 11-02 40,50 103000 Kowalska Anna 724-00-01 12-04 120,00 103000 Kowalska Anna 724-00-01 10-01 30,45 103000 Kowalska Anna 724-00-01 9-02 100,32 301988 Woźniak Stefan 546-00-23 5-01 80,87 301988 Woźniak Stefan 546-00-23 6-02 70,65 Klucz główny: (NRklienta i Data) Zależności funkcyjne: (NRklienta) Nazwisko, Imię, Telefon (Data, NRklienta) Kwota 25

Normalizacja do 2NF Tabela Rachunki Tabela Klienci NRklienta Nazwisko Imię Telefon 102034 Nowak Jan 656-23-00 103000 Kowalska Anna 724-00-01 301988 Woźniak Stefan 546-00-23 NRk Data Kwota 102034 10-01 34,56 102034 11-02 40,50 103000 12-04 120,00 103000 10-01 30,45 103000 9-02 100,32 301988 5-01 80,87 301988 6-02 70,65 Klucz główny: (NRklienta) Klucz główny: (NRk i Data) Klucz obcy: (NRk) 26

Trzecia postać normalna 3NF nie istnieją zależności funkcyjne pól od innych pól niekluczowych Jak wykryć nie 3NF? Należy sprawdzić czy istnieją pola, które zależą tylko od innych pól Jak doprowadzić do 3NF? Podział na dwie związane tabele. Anomalie w nie 3NF istnienia i modyfikacji 27

Anomalie gdy nie jest spełniona 3NF Tabela Pracownicy NRpracownika Nazwisko Imię Stanowisko Średnie zarobki 102034 Nowak Jan profesor 3000 102035 Nowak Janina adiunkt 2500 103000 Kowalska Anna adiunkt 2500 103103 Kowalczyk Tomasz asystent 2000 103000 Kowalski Dariusz asystent 2000 301988 Woźniak Stefan asystent 2000 Klucz: (NRpracownika) Anomalie aktualizacji i istnienia: Zmiana wynagrodzenia osób na określonym stanowisku musi być wykonywana w wielu miejscach. Nie można wprowadzić nowego stanowiska bez konkretnej osoby 28

Normalizacja do 3NF Podział na dwie tabele: Pracownicy, wynagrodzenie na stanowisku NRpracownika Nazwisko Imię Stanowisko Średnie zarobki 102034 Nowak Jan profesor 3000 102035 Nowak Janina adiunkt 2500 103000 Kowalska Anna adiunkt 2500 103103 Kowalczyk Tomasz asystent 2000 103000 Kowalski Dariusz asystent 2000 301988 Woźniak Stefan asystent 2000 Klucz: (NRpracownika) Zależność funkcyjna: Stanowisko Średnie zarobki 29

Normalizacja do 3NF Tabela Pracownicy NRpracownik a Nazwisko Imię Stanowisko 102034 Nowak Jan profesor 102035 Nowak Janina adiunkt 103000 Kowalska Anna adiunkt 103103 Kowalczyk Tomasz asystent 103000 Kowalski Dariusz asystent 301988 Woźniak Stefan asystent Klucz główny: (NRpracownika) Klucz obcy: Stanowisko Tabela wynagrodzenie na stanowisku Stanow. Średnie zarobki profesor 3000 adiunkt 2500 asystent 2000 Klucz: (Stanow.) 30

Aktualność a rejestracja historii Normalizacja pozwala przechowywać aktualne dane w jednym miejscu upraszcza modyfikowanie danych Rejestracja historii zachowanie wartości z określonej chwili czasowej niezmienność wartości w istniejących dokumentach aktualna wartość dla nowo tworzonych dokumentów realizacja przez kopiowanie do jednej tabeli wartości z innych związanych tabel problem wprowadzania poprawek do wystawionych dokumentów 31

Wielostanowiskowe bazy danych

Zagadnienia wykładu Architektura klient-serwer Problemy równoczesnego dostępu do bazy danych Blokowanie dostępu do przetwarzanych danych Transakcje 33

Zapotrzebowanie Wspólna baza danych Jednoczesny dostęp wielu użytkowników Współbieżne wykonywanie operacji Użytkownik 1 Użytkownik 2 Baza danych Użytkownik 3 Użytkownik 4 Użytkownik 5 34

Architektura klient-serwer Serwer Klient Podział na dwa procesy Klient wydaje polecenia Serwer realizuje polecenia i zwraca wynik Możliwość konfiguracji sieciowej 35

Architektura klient-serwer Serwer Podział na dwa procesy Klient wydaje polecenia Serwer realizuje polecenia i zwraca wynik Możliwość konfiguracji sieciowej Klient 3 Klient 1 Klient 2 36

Struktura aplikacji bazy danych SQL System Bazy Danych Serwer SQL Implementacja modelowanych pojęć i reguł poprawności Różne możliwości podziału na części klient i serwer : - uniwersalny serwer bazy danych (SQL) - serwer dostosowany do określonego zadania Bezpieczeństwo bazy danych Ilość przesyłanych danych Interfejs użytkownika Klient 37

Struktura aplikacji bazy danych SQL System Bazy Danych Implementacja modelowanych pojęć i reguł poprawności Serwer Interfejs użytkownika Klient Różne możliwości podziału na części klient i serwer : - uniwersalny serwer bazy danych (SQL) - serwer dostosowany do określonego zadania Bezpieczeństwo bazy danych Ilość przesyłanych danych 38

Problemy równoczesnego dostępu Stracona modyfikacja NR operacji Od Do Kwota 102 112400 112088 1000,00 Pobranie treści tego samego rekordu Użytkownik 1 Użytkownik 2 NRop Od Do Kwota 102 112400 112088 1000,00 NRop Od Do Kwota 102 112400 112088 1000,00 39

Problemy równoczesnego dostępu Stracona modyfikacja NR operacji Od Do Kwota 102 112400 112088 1000,00 Pobranie treści tego samego rekordu Użytkownik 1 Użytkownik 2 NRop Od Do Kwota 102 112400 112088 1200,00 NRop Od Do Kwota 102 112400 112088 1000,00 Modyfikacja pola Kwota 40

Problemy równoczesnego dostępu Stracona modyfikacja NR operacji Od Do Kwota 102 112400 112088 1000,00 Użytkownik 1 Użytkownik 2 NRop Od Do Kwota 102 112400 112088 1200,00 NRop Od Do Kwota 102 112400 143000 1000,00 Modyfikacja pola Do 41

Problemy równoczesnego dostępu Stracona modyfikacja NR operacji Od Do Kwota 102 112400 112088 1200,00 Zwrócenie rekordu do bazy Użytkownik 1 Użytkownik 2 NRop Od Do Kwota 102 112400 112088 1200,00 NRop Od Do Kwota 102 112400 143000 1000,00 Modyfikacja pola Do 42

Problemy równoczesnego dostępu Stracona modyfikacja NR operacji Od Do Kwota 102 112400 143000 1000,00 Zwrócenie rekordu do bazy Użytkownik 1 Użytkownik 2 NRop Od Do Kwota 102 112400 143000 1000,00 43

Problemy równoczesnego dostępu Stracona modyfikacja Jest: NR operacji Od Do Kwota 102 112400 143000 1000,00 Powinno być: NR operacji Od Do Kwota 102 112400 143000 1200,00 44

Problemy równoczesnego dostępu Odczytanie nieaktualnych danych Niedopuszczalny debet na koncie. NRrachunku Saldo 10203 1000,00 Opłata 1. Kwota 800zł Opłata 2. Kwota 400zł 45

Problemy równoczesnego dostępu Odczytanie nieaktualnych danych Niedopuszczalny debet na koncie. NRrachunku Saldo 10203 1000,00 Sprawdzenie stanu konta Opłata 1. Kwota 800zł Opłata 2. Kwota 400zł Stan konta 1000zł 46

Problemy równoczesnego dostępu Odczytanie nieaktualnych danych Niedopuszczalny debet na koncie. NRrachunku Saldo 10203 1000,00 Sprawdzenie stanu konta Opłata 1. Kwota 800zł Opłata 2. Kwota 400zł Stan konta 1000zł 47

Problemy równoczesnego dostępu Odczytanie nieaktualnych danych Niedopuszczalny debet na koncie. NRrachunku Saldo 10203 200,00 Realizacja opłaty 1. -800zł Opłata 1. Kwota 800zł Opłata 2. Kwota 400zł 48

Problemy równoczesnego dostępu Odczytanie nieaktualnych danych Niedopuszczalny debet na koncie. NRrachunku Saldo 10203 200,00 Opłata 1. Kwota 800zł Debet na koncie 200zł Realizacja opłaty 2. -400zł Opłata 2. Kwota 400zł 49

Blokowanie dostępu do danych Rodzaj blokady Uprawnienie zakładającego Uprawnienia innych tylko do odczytu odczyt odczyt do zapisu odczyt i zapis odczyt wyłączność odczyt i zapis brak dostępu Granulacja blokady: baza danych, tabela, zestaw rekordów, rekord, pole 50

Zakleszczenie Wzajemne zablokowanie się dwóch procesów, spowodowane zakładaniem blokad na wspólne dane. Przykład Założenie blokady Tabela A Proces 1 Proces 2 Tabela B Założenie blokady 51

Zakleszczenie Wzajemne zablokowanie się dwóch procesów, spowodowane zakładaniem blokad na wspólne dane. Przykład Proces 1 Proces 2 Próba założenia blokady, oczekiwanie na zwolnienie blokady Tabela A Tabela B Próba założenia blokady, oczekiwanie na zwolnienie blokady 52

Rozwiązanie problemu zakleszczenia Blokowanie wszystkich obiektów na początku, usuwanie blokad na zakończenie ciągu operacji Systemowe wykrywanie zakleszczenia (rozwiązanie blokad, anulowanie procesów) Przeterminowanie blokady (nie wolno zablokować obiektu na zbyt długo) 53

Transakcja Niepodzielny ciąg operacji na danych, który może być wykonany w całości albo wcale. Przykład Rezerwacja biletów lotniczych przy podróży z przesiadką: Warszawa -> Paryż -> Nowy Jork SET TRANSACTION READ WRITE rezerwacja biletu Warszawa-Paryż ciąg operacji rezerwacja biletu Paryż-Nowy Jork COMMIT albo ROLLBACK Zatwierdzenie Anulowanie Transakcja 54

Cechy transakcji Niepodzielność transakcja może być wykonana w całości albo wcale Spójność po wykonaniu transakcji, dane w bazie danych muszą być spójne; transakcja nie może naruszyć reguł poprawności (np. nie można przydzielić jednego miejsca w samolocie dwóm osobom) Izolacja transakcje powinny być tak wykonywane jak gdyby były wykonywane po kolei, oddzielnie Trwałość zakończenie transakcji oznacza, że wprowadzono wynik do bazy danych (nawet gdyby wystąpiła awaria) 55

Przykład operacji bez użycia transakcji Realizacja przelewu bankowego: z konta 102030 na konto 400023 należy przelać kwotę 1000zł krok 1: zmniejszyć stan konta 102030 o kwotę 1000zł Awaria krok 2: zwiększyć stan konta 400023 o kwotę 1000zł Wynik: Konto 102030, zmniejszono saldo o kwotę 1000zł Konta 400023 bez zmian (nie wpłynęły pieniądze) Jak gdyby po drodze zgubiono pieniądze 56