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:
1. model świata rzeczywistego
2. zbiór struktur danych
3. uniwersum interpretacji języka danych – czyli zbiór wartości wyrażeń pewnego języka danych
4. zasób systemu informatycznego – zasób o którego przydział współzawodniczą ze sobą procesy współbieżne
5. 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 ZASÓB SYSTEMU
RZECZYWISTEGO INFORMATYCZNEGO
STRUKTUR SYSTEMU
DANYCH INFORMATYCZNEGO
INTERPRETACJI
JĘZYKA
DANYCH
W bazie danych odwzorowana jest wiedza odnosząca się do pewnego wydzielonego fragmentu świata rzeczywistego. Powstają dwa pytania:
1. Jaki zakres wiedzy może być odwzorowany w bazie danych?
2. 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.
SYSTEMATYZACJA
FRAGMENTU ŚWIATA
IMPLEMENTACJA
W JĘZYKU DML I DDL
NISKIEGO POZIOMU
(NP. W C)
MODEL
KONCEPCYJNY
ŚWIAT
ANALIZA
SYSTEMOWA
MODEL LOGICZNY DANYCH
REALIZACJA
FIZYCZNA
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)
(2)
(3)
(4)
(5)
FAKTY W ŚWIECIE RZECZYWISTYM
PODZBIÓR JĘZYKA NATURALNEGO DO FORMUŁOWANIA WYPOWIEDZI O FAKTACH W ŚWIECIE RZECZYWISTYM
PRZEDSTAWIENIE ABSTRAKCYJNEGO MODELU ZA POMOCĄ DIAGRAMU O-Z
ABSTRAKCYJNY MODEL
ŚWIATA RZECZYWISTEGO
KONCEPTUALNA BAZA DANYCH
LOGICZNA BAZA DANYCH
Zakładamy, że istnieje pewien obiektywny i poznawalny świat rzeczywisty (1), który chcemy 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ą 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: ENTn®VAL
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
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
PRACOWNIK
NAZWISKO
NAZWISKO (np. Kowalski)
WIEK
LICZBA_LAT
101
C1
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.
1. Zbiór wartości:
Nr_Pracownika={1001,1002,...,5000}
Nr_Wydziału={W1,W2}
Liczba_Lat={0,1,...,70}
Procent={0.1, 0.2, 1,... ,100}
Nr_Projektu={101,102,...,200}
2. Zbiory obie...
skuter24