(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 1: Wprowadzenie do baz danych
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Architektura logiczna systemu informatycznego
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Model danych
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Funkcje systemu zarządzania bazą danych Wymagania: spójność bazy danych po awariispójność bazy danych po awarii trwałość danychtrwałość danych wielodostępwielodostęp poufność danychpoufność danych wydajnośćwydajność rozproszenie danychrozproszenie danych Funkcje DBMS: odtwarzanie bazy danychodtwarzanie bazy danych archiwizacja bazy danycharchiwizacja bazy danych zarządzanie współbieżnością transakcjizarządzanie współbieżnością transakcji identyfikacja użytkowników, autoryzacja dostępu, szyfrowanie danych, kontrola dostępuidentyfikacja użytkowników, autoryzacja dostępu, szyfrowanie danych, kontrola dostępu fizyczne struktury danych, optymalizacja zapytańfizyczne struktury danych, optymalizacja zapytań dwufazowe zatwierdzanie transakcji, replikacja danychdwufazowe zatwierdzanie transakcji, replikacja danych
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Architektura systemu bazy danych
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Fizyczna i logiczna niezależność danych
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Spójność bazy danych Definicja: Baza danych jest spójna jeżeli jej stan jest zgodny ze stanem reprezentowanego przez nią fragmentu świata rzeczywistegoBaza danych jest spójna jeżeli jej stan jest zgodny ze stanem reprezentowanego przez nią fragmentu świata rzeczywistego Zagrożenia spójności bazy danych: awarie sprzętu komputerowego i oprogramowaniaawarie sprzętu komputerowego i oprogramowania utrata danych w wyniku uszkodzenia pamięci masowejutrata danych w wyniku uszkodzenia pamięci masowej użytkownicyużytkownicy współbieżny dostęp do danychwspółbieżny dostęp do danych
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Definicja transakcji Transakcja: jest sekwencją logicznie powiązanych operacji na bazie danych, która przeprowadza bazę danych z jednego stanu spójnego w inny stan spójny. Systemy bazy danych umożliwiają łączenie operacji w transakcje i gwarantują poprawne zarządzanie transakcjami. jest sekwencją logicznie powiązanych operacji na bazie danych, która przeprowadza bazę danych z jednego stanu spójnego w inny stan spójny. Systemy bazy danych umożliwiają łączenie operacji w transakcje i gwarantują poprawne zarządzanie transakcjami.Przykład: Transakcja przelewu kwoty N z konta A na konto B:Transakcja przelewu kwoty N z konta A na konto B:begin // odejmij kwotę N z konta A; UPDATE konta SET stan = stan - N WHERE id_konta = A; // dodaj do konta B kwotę N; UPDATE konta SET stan = stan + N WHERE id_konta = B; COMMIT; end end
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Diagram stanów transakcji Begin_transaction: początek wykonywania transakcji.Begin_transaction: początek wykonywania transakcji. Read, Write: operacje odczytu i zapisu danych w bazie danych.Read, Write: operacje odczytu i zapisu danych w bazie danych. End_transaction: zbiór operacji zapisu i odczytu składający się na transakcję został wyczerpany.End_transaction: zbiór operacji zapisu i odczytu składający się na transakcję został wyczerpany. Commit: zatwierdzenie wyników transakcji.Commit: zatwierdzenie wyników transakcji. Rollback: wycofanie wyników transakcji.Rollback: wycofanie wyników transakcji.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Spójność bazy danych. Własności transakcji A(tomicity) C(onsistency) I(solation) D(urability) Atomowość Zbiór operacji wchodzących w skład transakcji jest niepodzielny; albo zostaną wykonane wszystkie operacje transakcji albo żadna.Zbiór operacji wchodzących w skład transakcji jest niepodzielny; albo zostaną wykonane wszystkie operacje transakcji albo żadna.Spójność Poprawne wykonanie transakcji przeprowadza bazę danych z jednego stanu spójnego do innego stanu spójnego.Poprawne wykonanie transakcji przeprowadza bazę danych z jednego stanu spójnego do innego stanu spójnego.Izolacja Transakcje są od siebie logicznie odseparowane. Mogą wzajemnie oddziaływać na siebie w taki sposób jak gdyby były wykonywane sekwencyjnie.Transakcje są od siebie logicznie odseparowane. Mogą wzajemnie oddziaływać na siebie w taki sposób jak gdyby były wykonywane sekwencyjnie.Trwałość Wyniki zatwierdzonych transakcji nie mogą zostać utracone, niezależnie od awarii systemu.Wyniki zatwierdzonych transakcji nie mogą zostać utracone, niezależnie od awarii systemu.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Relacyjny Model Danych Historia Podstawy teoretyczne: Codd: A Relational Model for Large Shared Data Banks, rok 1970Codd: A Relational Model for Large Shared Data Banks, rok 1970 Projekty badawcze (lata siedemdziesiąte): IBM System RIBM System R Berkley IngresBerkley Ingres Produkty komercyjne (lata osiemdziesiąte): DB2 (1982), Oracle (1979), Ingres (1979), Sybase, InformixDB2 (1982), Oracle (1979), Ingres (1979), Sybase, Informix Paradox, dBaseParadox, dBase
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Model relacyjny (definicja intuicyjna) Elementy modelu struktury danychstruktury danych ograniczenia integralnościoweograniczenia integralnościowe operacjeoperacje
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Struktury danych (1) Dziedzina D jest zbiorem wartości atomowych nazwiska osóbnazwiska osób numery PESELnumery PESEL numery rejestracyjne samochodów w Polscenumery rejestracyjne samochodów w Polsce kolory włosówkolory włosów wiek osóbwiek osób wydziały uniwersytetówwydziały uniwersytetów Format danych format numerów rejestracyjnych AAA9999format numerów rejestracyjnych AAA9999 format numerów telefonów (99) format numerów telefonów (99) Schemat relacji R, oznaczony przez R(A1,..., An) łączy nazwę relacji z listą atrybutów i służy do opisu relacji. R jest nazwą relacji. Każdy atrybut Ai jest nazwą roli odgrywanej przez odpowiednią dziedzinę D w schemacie relacji R. D jest nazywana dziedziną atrybutu Ai i jest oznaczana przez dom(Ai ). Krotność relacji określa liczbę atrybutów występujących w schemacie relacji. STUDENT(Imię, Nazwisko, Miasto, Wiek, Płeć, NrIndeksu) dom(Imię) = Imiona dom(Nazwisko) = Nazwiska...
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Struktury danych (2) Definicja I Relacja (lub wystąpienie relacji) r o schemacie R(A1,..., Ak), oznaczona r(R), jest zbiorem krotek:Relacja (lub wystąpienie relacji) r o schemacie R(A1,..., Ak), oznaczona r(R), jest zbiorem krotek: r = {t1, t2,..., tn}. Wystąpienie relacji r(R) nazywane jest również stanem relacji.Wystąpienie relacji r(R) nazywane jest również stanem relacji. Każda krotka jest uporządkowaną listą k wartości:Każda krotka jest uporządkowaną listą k wartości: t =, t =, gdzie każda wartość vi, 1<= i <= k, jest elementem dziedziny dom(Ai) lub wyróżnioną wartością null (wartość pusta). Definicja II Relacja r(R) jest podzbiorem iloczynu kartezjańskiego dziedzin definiujących schemat relacji r:Relacja r(R) jest podzbiorem iloczynu kartezjańskiego dziedzin definiujących schemat relacji r: r(R) (dom(A1) x dom(A2) x... dom(Ak)).
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Wbudowane ograniczenia integralnościowe Uporządkowanie krotek w relacji Krotki w relacji nie mają określonego porządku. Podczas przeglądania relacji można określić wiele alternatywnych porządków.Krotki w relacji nie mają określonego porządku. Podczas przeglądania relacji można określić wiele alternatywnych porządków. Relacja STUDENT może być porządkowana według: nazwisk studentów, wieku lub numerów indeksów.Relacja STUDENT może być porządkowana według: nazwisk studentów, wieku lub numerów indeksów. Wartości krotek (relacje znormalizowane) Wartości krotek są atomowe: proste i jednowartościoweWartości krotek są atomowe: proste i jednowartościowe Identyfikacja krotek Krotki identyfikowane są jedynie poprzez wartość. Lokalizacja krotki nie ma żadnego wpływu na jej tożsamość.Krotki identyfikowane są jedynie poprzez wartość. Lokalizacja krotki nie ma żadnego wpływu na jej tożsamość.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Jawne ograniczenia integralnościowe Ograniczenie na unikalność krotek relacji Każdy podzbiór SK atrybutów relacji R, taki że dla dwóch dowolnych krotek ze zbioru r(R), prawdą jest, że: t1[SK] <> t2[SK], jest nazywany nadkluczem (ang. super key) relacji R. Każda relacja ma co najmniej jeden nadklucz - schemat relacji.Każdy podzbiór SK atrybutów relacji R, taki że dla dwóch dowolnych krotek ze zbioru r(R), prawdą jest, że: t1[SK] <> t2[SK], jest nazywany nadkluczem (ang. super key) relacji R. Każda relacja ma co najmniej jeden nadklucz - schemat relacji. SK(STUDENT) = {NrIndeksu, Nazwisko, Wiek} Kluczem relacji R nazywamy taki nadklucz tej relacji, że żaden z jego podzbiorów nie jest nadkluczem. K(STUDENT) = {NrIndeksu} Jeżeli relacja zawiera więcej niż jeden klucz, to są one nazywane kluczami potencjalnymi (ang. candidate key). Jeden z nich może pełnić rolę klucza podstawowego (ang. primary key) relacji. Pozostałe są wtedy kluczami drugorzędnymi.Jeżeli relacja zawiera więcej niż jeden klucz, to są one nazywane kluczami potencjalnymi (ang. candidate key). Jeden z nich może pełnić rolę klucza podstawowego (ang. primary key) relacji. Pozostałe są wtedy kluczami drugorzędnymi. Ograniczenie integralności klucza podstawowego Wartości klucza podstawowego identyfikują krotki relacji i dlatego nie mogą przyjmować wartości pustych.Wartości klucza podstawowego identyfikują krotki relacji i dlatego nie mogą przyjmować wartości pustych. Ograniczenie referencyjne Dane są relacje R1 i R2. Podzbiór FK atrybutów relacji R1 nazywamy kluczem obcym R1 (ang. foreign key), jeżeli:Dane są relacje R1 i R2. Podzbiór FK atrybutów relacji R1 nazywamy kluczem obcym R1 (ang. foreign key), jeżeli: 1.Atrybuty w FK mają taką samą dziedzinę jak atrybuty klucza podstawowego PK relacji R2 ; 2.Dla każdej krotki t1 relacji R1 istnieje krotka t2 relacji R2, taka że: t1 [FK] = t2 [PK], lub t1 [FK] = null.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Weryfikacja ograniczeń integralnościowych odrzucenie operacjiodrzucenie operacji podstawienie wartości domyślnejpodstawienie wartości domyślnej propagacja operacjipropagacja operacjiPrzykład Wstaw do relacji Pracownicy krotkę:Wstaw do relacji Pracownicy krotkę: t = t = Zmodyfikuj krotkę relacji Zespoły: t[Zespoły.IdZesp] = 30, taką że:Zmodyfikuj krotkę relacji Zespoły: t[Zespoły.IdZesp] = 30, taką że:t[Zespoły.IdZesp]=20 Usuń krotkę relacji Pracownicy, taką że:Usuń krotkę relacji Pracownicy, taką że: t[Nazwisko] = 'Tarzan'