Wprowadzenie do baz danych Wprowadzenie do baz danych Każde przedsiębiorstwo przechwuje jakieś dane. Zajmijmy się przykładowo linią lotniczą. Firma taka musi zbierać informacje o pasażerach, rejsach, samolotach i personelu. Pomiędzy tymi danymi zachodzą jakieś związki, które także należy przechowywać w komputerze. Związki te to np. rezerwacje (kórzy pasażerowie zarezerwowali miejsca na które rejsy) lub załogi samolotów (kto ma być pierwszym pilotem, w których rejsach). Tego rodzaju dane, przechowywane w komputerze stale lub czasowo, nazywamy bazą danych (BD). Baza danych może być traktowana na wiele sposobów, np. jako: model świata rzeczywistego zbiór struktur danych uniwersum interpretacji języka danych – czyli zbiór wartości wyrażeń pewnego języka danych zasób systemu informatycznego – zasób o którego przydział współzawodniczą ze sobą procesy współbieżne element składowy systemu informatycznego – o ustalonych związkach między systemem zarządzania bazą danych a systemem operacyjnym komputera oraz o określonych środkach sprzętowych i programowych do przechowywania danych, transmisji, komunikacji z człowiekiem MODEL ŚWIATA RZECZYWISTEGO ZASÓB SYSTEMU INFORMATYCZNEGO BAZA DANYCH ELEMENT SKŁADOWY ZBIÓR STRUKTUR DANYCH INFORMATYCZNEGO SYSTEMU UNIWERSUM INTERPRETACJI JĘZYKA www.wkuwanko.pl DANYCH 1 Wprowadzenie do baz danych W bazie danych odwzorowana jest wiedza odnosząca się do pewnego wydzielonego fragmentu świata rzeczywistego. Powstają dwa pytania: Jaki zakres wiedzy może być odwzorowany w bazie danych? W jaki sposób odwzorowanie to może być zrealizowane? W przypadku sformatowanych baz danych (takimi się tu zajmujemy), tj. w których można podać skończony zbiór wzorców służących do wyrażania pewnych informacji o stanie świata rzeczywistego – zakres odwzorowywanej wiedzy nie może być szeroki. O wiele szerszy zakres wiedzy można odwzorować stosując np. pewne metody opracowane w dziedzinie sztucznej inteligencji, takie jak sieci semantyczne, specjalne języki oparte na rachunku predykatów lub wyspecjalizowane języki opisu wiedzy. Ustalenie związków między danymi w BD a faktami w świecie rzeczywistym (czyli ustalenie semantyki danych) nie odbywa się bezpośrednio. Pomostem umożliwiającym określenie tych związków jest tzw. schemat konceptualnej bazy danych. ŚWIAT SYSTEMATYZACJA FRAGMENTU ŚWIATA ANALIZA SYSTEMO WA MODEL KONCEPCYJN Y IMPLEMENTACJA W JĘZYKU DML I DDL MODEL LOGICZNY DANYCH IMPLEMENTACJA NISKIEGO POZIOMU REALIZACJA (NP. W C) FIZYCZNA www.wkuwanko.pl 2 Wprowadzenie do baz danych Fizyczna baza danych jest stale przechowywana w pamięci pomocniczej np. na dyskach, taśmach. W fizycznej BD można wyróżnić kilka poziomów abstrakcji, poczynając od poziomu rekordów i plików w językach programowania (np. Pascal, C) przez poziom rekordów logicznych w systemie operacyjnym, na którym opiera się system zarządzania bazą danych, aż do poziomu bitów i adresów fizycznych w pamięci. Proces przejścia od faktów w świecie rzeczywistym do danych w BD podzielono poniżej na pięć etapów: (1) FAKTY W ŚWIECIE RZECZYWISTYM (2) PODZBIÓR JĘZYKA NATURALNEGO DO FORMUŁOWANIA WYPOWIEDZI O FAKTACH W ŚWIECIE RZECZYWISTYM (3) ABSTRAKCYJNY MODEL ŚWIATA RZECZYWISTEGO (4) KONCEPTUALNA BAZA DANYCH PRZEDSTAWIENIE ABSTRAKCYJNEGO MODELU ZA POMOCĄ DIAGRAMU O-Z LOGICZNA BAZA DANYCH (5) że istnieje pewien obiektywny i poznawalny świat rzeczywisty (1), który chcemy Zakładamy, odwzorować w bazie danych (5). Możliwe jest (jak to zaznaczono strzałkami) przejście zarówno od świata rzeczywistego do baz danych jak i odwrotne (5)(1). Zakres wiedzy podlegającej odwzorowaniu wyznacza nam zasób wyrażeń języka naturalnego, w którym wiedza ta ma być formułowana. W ten sposób wyznaczany jest pewien podzbiór języka naturalnego (2). Etap (3) to tworzenie abstrakcyjnego modelu świata rzeczywistego, który zawiera pojęcia ściśle związane z wyrażeniami wybranego podzbioru języka naturalnego, a jednocześnie umożliwia formalne sformułowanie pewnych niezmienniczych praw istniejących w świecie rzeczywistym. Kolejnym etapem jest przedstawienie języka służącego do opisu modelu abstrakcyjnego. Zbiór wyrażeń tego języka nazywamy schematem konceptualnej bazy danych (4). Formułowanie i przekazywanie wiedzy o świecie rzeczywistym możliwe jest tylko za pomocą specjalnego języka. Mamy wówczas do czynienia z trzema procesami: nazywaniem, selekcją i klasyfikowaniem pewnych interesującyh faktów występujących w świecie. W dalszym ciągu zajmować się będziemy jedynie sformatowaną wiedzą opisową (deskryptywną, sytuacyjną), a więc dotyczącą www.wkuwanko.pl 3 Wprowadzenie do baz danych faktów odnoszących się do ustalonych stanów świata rzeczywistego, nie będziemy rozważać wiedzy operacyjnej, proceduralnej – opisującej zjawiska przyczynowo skutkowe. Skorzystamy dalej z metodyki zaproponowanej przez Chena, szeroko przyjętej w teorii i praktyce baz danych. Do podstawowych faktów rozpatrywanych w świecie rzeczywistym, o których wiedza reprezentowana jest w bazie danych, zaliczamy: występowanie obiektów, encji (entity), pozostawanie tych obiektów we wzajemnych powiązaniach (relationship) między sobą oraz posiadanie przez obiekty powiązania określonych wartości (value) atrybutów (attribute). Obiekt (encja) jest przedmiotem (materialnym lub abstrakcyjnym), który może być wyróżniony i określony w świecie rzeczywistym i o którym chcemy pamiętać informacje. Informacjami tymi jest to, że ma on określone wartości swoich atrybutów oraz że pozostaje w pewnych powiązaniach z innymi obiektami. Jest to byt konceptualny (pojęciowy). Np. mrówki w mrowisku nie mogą być encjami, bo nie można ich odróżnić. Atrybut określony jest jako funkcja częściowa ze zbioru obiektów lub zbioru powiązań w zbiór wartości: A: ENTnVAL Formalnie rzecz biorąc opis świata rzeczywistego jest pewną teorią w sensie logiki matematycznej, natomiast model stanu świata rzeczywistego jest modelem tej teorii. Dla celów baz danych wymagane jest formalne określenie pewnego podzbioru języka naturalnego. Podzbiór ten nazwiemy językiem opisu stanu JOS. JOS=<X,P> Alfabet języka JOS składa się ze zbiorów: nazw jednostkowych X i predykatów P. Modelem abstrakcyjnym stanu świata rzeczywistego generowanym przez język JOS nazywamy następującą strukturę matematyczną: MAS=<X,R> gdzie R = W O Z A , przy czym: X – zbiór wartości (nazw jednostkowych język JOS) W – rodzina zbiorów wartości www.wkuwanko.pl 4 Wprowadzenie do baz danych O – rodzina zbiorów obiektów Z – rodzina relacji wyrażających powiązania A – rodzina relacji wyrażających wartości atrybutów obiektów i powiązań Przykład: ZBIÓR OBIEKTÓW ATRYBUTY ZBIORY WARTOŚCI NR_PRACOWNIKA NR_PRACOWNIKA PRACOWNIK 101 C1 NAZWISKO NAZWISKO (np. Kowalski) WIEK LICZBA_LAT 38 Na rysunku został określony zbiór obiektów PRACOWNIK. Atrybuty: NR_PRACOWNIKA, NAZWISKO i WIEK przyporządkowują każdemu obiektowi ze zbioru PRACOWNIK wartości w zbiorach wartości, odpowiednio NR_PRACOWNIKA, NAZWISKO i LICZBA_LAT. Zbiór wartości: Nr_Pracownika={1001,1002,...,5000} Nr_Wydziału={W1,W2} www.wkuwanko.pl 5 Wprowadzenie do baz danych Liczba_Lat={0,1,...,70} Procent={0.1, 0.2, 1,... ,100} Nr_Projektu={101,102,...,200} Zbiory obiektów: Pracownik={1001,1002,1003,1004} Wydział={W1,W2} Projekt={101,102,103,104} Zbiory powiązań (relacje wyrażające powiązania): Pr_Wydz={(1001,W1), (1002,W1), (1003,W2)} Pr_Proj={(1001,101), (1001,102), (1002,101), (1003,103)} Relacje wyrażające wartości atrybutów: Nazwisko={(1001,Kowalski), (1002,Rysiuk), (1003,Janicki)} Udział={(1001,101,10), (1001,102,50), (1002,101,41)} Staż={(1001,W1,5), (1002,W1,15), (1003,W2,1)} Bazy danych są przedmiotem intensywnych badań w informatyce co najmniej od początku lat siedemdziesiątych. Wówczas to szybko wzrastała liczba komputerów i ich moc obliczeniowa. Łączyło się to ze zmniejszeniem kosztów przechowywania i przetwarzania informacji co pociągnęło za sobą szybki rozwój metod tworzenia systemów informatycznych w tym i systemów zarządzania danymi. Poniżej przedstawiono etapy rozwoju komputerów prowadzące do powstania systemów informatycznych. KOMPUTER BIERNA ROLA SPRZĘTU W ŚRODOWISKU I UŻYTKOWANIA ZMIANY ILOŚCIOWE W ZAKRESIE OPROGRAMOWANIA SYSTEM KOMPUTEROWY METOD 6 www.wkuwanko.pl ZMIANY Wprowadzenie do baz danych SYSTEM INFORMATYCZ NY Rozwój sieci komputerowych doprowadził do możliwości terytorialnego rozproszenia bazy danych na różne stanowiska komputerowe. Przy czym celowe stało się duplikowanie niektórych danych na kilku stanowiskach. Wszystko to spowodowało, że efektywna obsługa wielu współbieżnych procesów stała się zadaniem złożonym. Stąd też pojawiła się konieczność tworzenia oprogramowania niezbędnego do zarządzania wielowymiarowymi danymi - programów, które umożliwiłyby różnym osobom korzystanie lub zmienianie danych. Powstały więc systemy zarządzania bazami danych - SZBD (Data Base Managment System – DBMS). Głównym zadaniem takiego systemu jest zapewnienie użytkownikowi możliwości operowania danymi za pomocą pojęć abstrakcyjnych w możliwie niewielkim stopniu odwołujących się do sposobu przechowywania danych przez komputer. Tak rozumiany system działa jak interpreter języka programowania wysokiego poziomu. Oprogramowanie DBMS stanowi najważniejsze zastosowanie komputerów w przedsiębiorstwach, a jednocześnie jest jednym z najbardziej skomplikowanych systemów wśród istniejących rodzajów oprogramowania. Wykorzystywane jest m.in. w gospodarce materiałowej i magazynowej, obsłudze kadrowej, finansowo-księgowej, bibliotecznej, dokumentacyjnej. Poniżej przedstawiono schemat systemu bazy danych. ZAPYTANIE UŻYTKOWNIKA - KWERENDA www.wkuwanko.pl 7 Wprowadzenie do baz danych PROCESOR ZAPYTAŃ PROGRAMY ZARZĄDZAJĄCE BAZĄ DANYH PROGRAMY ZARZĄDZAJĄCE PLIKAMI FIZYCZNA BAZA DANYCH Procesor zapytań jest czymś w rodzaju kompilaora zapytań. Wyniki uzyskuje się w postaci ciągu rozkazów przekazywanych do innych części systemu. Programy zarządzania bazą danych często realizują jeszcze kilka innych zadań. Należą do nich: Ochrona. Nie każdy użytkownik powinien mieć dostęp do wszystkich danych dlatego stosuje się hasła. Integralność. System zarządzający może sprawdzić niektóre rodzaje więzów spójności (consistency constraints), tj. wymaganych własności danych. Synchronizacja. Często zdarza się, że wielu użytkowników korzysta z BD w tym samym czasie. System powinien chronić przed niespójnością powstającą w wyniku wykonania na jednostce danych dwóch prawie równoczesnych operacji. W BD naturalne jest rozdzielenie funkcji deklaracji i obliczania między dwa różne języki. Wynika to stąd, iż zmienne zwyczajnego programu istnieją tylko w czasie jego wykonywania, podczas gdy w systemach BD dana istnieje „wiecznie” i może być deklarowana raz na zawsze. DANE OPIS DANYCH www.wkuwanko.pl 8 Wprowadzenie do baz danych Opis BD wyraża się w secjalnym języku zwanym językiem definicji danych (data definition language DDL). Nadaje mu się postać tablic używanych przez pozostałe częsci systemu DBMS. Natomiast działanie na BD wymaga specjalnego języka, zwanego językiem manipulacji danymi (data monipulation language DML) lub językiem zapytań. W języku tym można wyrażać m.in. takie polecenia jak: Wyszukaj w BD liczbę wolnych miejsc w rejsie 123 w dniu 20 lipca Znajdź wszystkie rejsy do Nowego Jorku Przetłumaczenie zapytania na operacje na plikach nie jest zadaniem łatwym, gdyż bazy danych mogą reprezentować skomplikowne struktury plików. Te struktury tworzy się po to, aby w możliwie największym stopniu przyspieszyć dostęp do bazy danych i działanie na niej. Z baz danych korzysta kilka rodzajów użytkowników mających określone funkcje i różniących się „stopniem wtajemniczenia” w problematykę BD: Naiwny użytkownik, np. szef lub słabo wyszkolona sekretarka. Pracują oni z wykorzystaniem makropoleceń, formularzy itd. Dobrze wyszkolony użytkownik. Potrafi tworzyć zapytania, raporty itd. Programista użytkowy. Tworzy programy użytkowe, makra itd. www.wkuwanko.pl 9 Wprowadzenie do baz danych Administrator baz danych. Jest odpowiedzialny za sprawy dotyczące BD jako całości. Do jego obowiązków należą m.in.: Tworzenie pierwotnego opisu struktury BD i sposobu odwzorowywania go w plikach fizycznej BD. Udzielanie rozmaitych zezwoleń na korzystanie z BD lub jej fragmentów. Modyfikacja opisu BD lub jego związków z fizyczną organizacją BD, gdy wnioski z jej eksploatacji wskazują, że inna organizacja błaby bardziej efektywna. Wykonywanie archiwalnych kopii BD i przywracanie jej poprawnego stanu po uszkodzeniach powstałych na skutek awarii lub niewłaściwego użycia sprzętu bądź oprogramowania Kierunki rozwoju baz danych: Rozproszone bazy danych Obiektowo zorientowane bazy danych Bazy relacyjno-obiektowe Aktywne bazy danych Database legacy Database mining www.wkuwanko.pl 10