BAZY DANYCH
Dr inŜ. Wikarek Jarosław
Katedra Systemów Sterowania i Zarządzania
E-MAIL: j.wikarek@tu.kielce.pl
1
Baza danych to zbiór danych zapisanych w ściśle
określony sposób w strukturach odpowiadających
załoŜonemu modelowi danych.
Bazy danych
O czym będziemy mówić:
Wprowadzenie do przedmiotu
Normalizacja
2
Normalizacja
Język SQL
PL/SQL
Bazy danych
Baza danych
Zbiór powiązanych danych
3
Abstrakcyjne,
informatyczne
odzwierciedlenie
wybranego
fragmentu rzeczywistości – mikroświata
Logicznie
spójny
zbiór
danych
posiadających
określone
znaczenie
Bazy danych
Baza a świat zewnętrzny
Źródło danych - z niego wyprowadzane są dane (modelowany
fragment świata rzeczywistego),
4
fragment świata rzeczywistego),
UŜytkownicy:
Projektanci
Zwykli uŜytkownicy
Administratorzy
…
Związki z reprezentowaną rzeczywistością.
Bazy danych
System bazy danych
Baza danych
Dane
5
Schemat
System zarządzania bazą danych (ang. Data Base Management
System, DBMS)
Moduł zarządzania transakcjami
Moduł zarządzania dostępem do danych
Bazy danych
6
Bazy danych
System zarządzania bazą danych
Współdzielenie danych
Informacje przechowywane w bazie danych są zazwyczaj
przeznaczone do wykorzystania przez wielu uŜytkowników,
7
przeznaczone do wykorzystania przez wielu uŜytkowników,
często w tym samym czasie.
Integralność danych
Powierzenie faktycznych operacji na danych jednemu, dobrze
sprawdzonemu
programowi
serwera
zmniejsza
ryzyko
naruszenia integralności danych w stosunku do sytuacji, gdy
operacje te wykonywane są za pomocą wielu, tworzonych
niezaleŜnie i często ad hoc narzędzi.
Bazy danych
System zarządzania bazą danych
Bezpieczeństwo danych
Scentralizowanie dostępu do danych umoŜliwia zastosowanie w
DBMS własnego mechanizmu kontroli i autoryzacji dostępu,
8
DBMS własnego mechanizmu kontroli i autoryzacji dostępu,
bardziej szczegółowego aniŜeli umoŜliwia to sam system
operacyjny w stosunku do dostępu do plików.
Dzięki
wykorzystaniu modelu klient-serwer nie jest konieczne, aby
kaŜdy uŜytkownik posiadał dostęp do maszyny serwera bazy
danych
poprzez
inne
mechanizmy,
aniŜeli
protokół
komunikacyjny danego DBMS.
Bazy danych
System zarządzania bazą danych
Abstrakcja i niezaleŜność danych
PoniewaŜ końcowy uŜytkownik bazy danych jest oddzielony
przez DBMS od wewnętrznych mechanizmów działania bazy
9
przez DBMS od wewnętrznych mechanizmów działania bazy
danych, formatu zapisu itp., i ma tylko do czynienia (poprzez
program klienta i ew. protokół komunikacji) jedynie z logiczną
strukturą
danych,
to
ułatwia
to
rozwijanie
aplikacji
korzystających z tych danych w kierunku nowych zastosowań
czy np. wprowadzenie zmian w wewnętrznej organizacji bazy
danych bez konieczności zmian w klientach.
Bazy danych
Model danych
Model danych moŜna rozumieć jako zbiór ogólnych zasad
posługiwania się danymi. Zbiór ten obejmuje trzy główne
części:
10
części:
Definicja danych
Zbiór reguł określających strukturę danych.
Operowanie danymi
Zbiór reguł dotyczących procesu dostępu do danych i ich
modyfikacji.
Integralność danych
Zbiór reguł określających, które stany bazy danych są
poprawne (a więc zarazem jakie operacje prowadzące do
modyfikacji danych są dozwolone).
Bazy danych
Typy modli danych
Proste modele danych.
Dane zorganizowane są w strukturę rekordów zgrupowanych
w plikach.
11
w plikach.
Klasyczne modele danych.
NaleŜą do nich modele hierarchiczne, sieciowe i relacyjne.
Semantyczne modele danych.
Semantyka to inaczej
znaczenie
. Klasyczne modele danych nie
dostarczają
łatwego
sposobu
odczytania
informacji
o
semantyce danych, stąd podejmuje się próby stworzenia
innych
modeli,
uzupełniających
ten
brak.
Przykładem
częściowej realizacji tego programu są obiektowe modele
danych.
Bazy danych
Hierarchiczny model danych
Hierarchiczny model danych jest pewnym rozszerzeniem
modelu prostego, opartego na rekordach składających się z pól
i zgrupowanych w plikach. W schemacie hierarchicznym
12
i zgrupowanych w plikach. W schemacie hierarchicznym
wprowadza się:
Typy rekordów
Typ rekordu to nazwana struktura danych, złoŜona ze
zbioru nazwanych pól; kaŜde
pole
słuŜy do zapisu
pojedynczego atrybutu obiektu opisywanego przez rekord, i
charakteryzuje się określonym typem danych, np. liczba
całkowita, napis, data, itp.
Bazy danych
Hierarchiczny model danych
Klucz
Na ogół jedno z pól danego typu rekordu wyróŜnia się jako
klucz, tj. unikalny identyfikator rekordu wśród rekordów
13
klucz, tj. unikalny identyfikator rekordu wśród rekordów
danego typu
Związki nadrzędny-podrzędny
Relacje nadrzędny-podrzędny tworzą strukturę drzewa, tj.
kaŜdy typ rekordu (z wyjątkiem najwyŜszego w hierarchii,
tzw. korzenia -- root) związany jest z dokładnie jednym
typem nadrzędnym. Model hierarchiczny operowanie na
danych danych
Bazy danych
Hierarchiczny model danych
14
Bazy danych
Hierarchiczny model danych
Operacje na danych
Wyszukiwanie rekordów określonego typu, podrzędnych
względem
danego
rekordu,
i
spełniających
warunki
15
względem
danego
rekordu,
i
spełniających
warunki
dotyczące zawartości określonych pól
Usuwanie lub dodawanie rekordów i edycja ich pól.
Realizowane są poprzez funkcje lub procedury pisane w
językach
programowania
o
charakterze
zazwyczaj
proceduralnym, np. C.
Bazy danych
Hierarchiczny model danych
Integralność danych
Podstawowe warunki integralności wynikają z samej definicji
struktury danych modelu:
16
struktury danych modelu:
KaŜdy rekord (z wyjątkiem korzenia) musi być powiązany z
rekordem nadrzędnym właściwego typu; a więc np.
usunięcie rekordu nadrzędnego wiąŜe się z usunięciem
wszystkich względem niego podrzędnych.
Zawartość kaŜdego pola rekordu musi odpowiadać typowi
danych z definicji danego typu rekordu.
Bazy danych
Sieciowy model danych
Sieciowy model danych w ogólnym zarysie niewiele odbiega od
hierarchicznego.
W miejsce związku nadrzędny-podrzędny pomiędzy rekordami
17
W miejsce związku nadrzędny-podrzędny pomiędzy rekordami
wprowadza się w nim tzw. typ kolekcji (
set
), który jest
złoŜonym typem danych z polami zawierającymi odniesienia do
innych rekordów określonego typu.
Operowanie danymi ma teŜ charakter proceduralny:
Warunki integralności danych, poza oczywistymi juŜ więzami
dotyczącymi zgodności zawartości pól rekordu z określeniem
typu
rekordu
i
unikalności
pól
kluczowych,
mogą
być
formułowane w terminach wymogu przynaleŜności rekordu do
jakiegoś wystąpienia określonego typu kolekcji.
Bazy danych
Relacyjny model danych
Relacyjny model danych został opracowany przez E. F. Codda
w latach 1970-1980
18
w latach 1970-1980
Od mniej więcej połowy lat 80 stał się podstawą architektury
większości popularnych SZBD.
Bazy danych
Relacyjny model danych
Podstawowe pojęcia
Schemat relacji R
Skończony zbiór nazw atrybutów (dla uproszczenia atrybutów):
19
Skończony zbiór nazw atrybutów (dla uproszczenia atrybutów):
R = {A
1
, A
2
, ..., A
k
}
Dziedziną atrybutu A
i
Zbiór wartości jakie atrybut moŜe przyjąć D
i
Relacja r
o
schemacie
R =
{A
1
A
2
, ... , A
k
}
Dowolny podzbiór iloczynu kartezjańskiego dziedzin atrybutów:
r
⊂
D
1
x D
2
... x D
k
Bazy danych
Relacyjny model danych
Najczęściej relacja r jest prezentowana jako tabela, której zbiór
kolumn odpowiada zbiorowi atrybutów tworzącemu schemat, a
kaŜdy wiersz tablicy stanowi tzw. krotkę relacji.
20
kaŜdy wiersz tablicy stanowi tzw. krotkę relacji.
Schematem relacyjnej bazy danych jest zbiór schematów
relacji
Z = {R
1
, R
2
, ...,R
n
„}
tworzony nad określonym zbiorem atrybutów U = {A
1
, A
2
, ..., A
k
}.
Bazy danych
Relacyjny model danych
Stosując do projektowania bazy danych model relacyjny stajemy
często przed koniecznością wyboru między róŜnymi zbiorami
schematów relacji. Z rozmaitych powodów pewne schematy są
21
schematów relacji. Z rozmaitych powodów pewne schematy są
bardziej odpowiednie niŜ inne.
Podstawą procesu projektowania struktury logicznej (schematu)
relacyjnych baz danych jest analiza powiązań (zaleŜności) między
atrybutami.
Bazy danych
Relacyjny model danych – integralność danych
Model relacyjny dostarcza dodatkowych, specyficznych dla siebie
postaci reguł integralności:
Integralność encji
22
Integralność encji
KaŜda tabela musi posiadać klucz główny, a wartości klucza
głównego muszą być w ramach tabeli unikalne i nie równe
NULL
. W szczególności, zapobiega to wystąpieniu w tabeli
powtórzeń wierszy.
Bazy danych
Relacyjny model danych – integralność danych
Integralność referencyjna
KaŜda wartość klucza obcego jest równa wartości klucza
głównego występującej w tabeli powiązanej, lub ewentualnie
NULL
. Pociąga to za sobą konieczność określenia reguły
23
NULL
. Pociąga to za sobą konieczność określenia reguły
postępowania
w
wypadku
usuwania
wiersza
z
tabeli
powiązanej,
Restricted
Usunięcie wiersza jest zabronione,
Cascades
Powoduje usunięcie z innych tabel wszystkich wierszy
Nullifies
NiewaŜne wartości kluczy ulegają zastąpieniu przez NULL.
Bazy danych
Relacyjny model danych – integralność danych
W praktyce zazwyczaj jest poŜądane stosowanie dalszych
warunków integralności (integralność dodatkowa). Na ogół
24
warunków integralności (integralność dodatkowa). Na ogół
istnieją w DBMS mechanizmy narzucenia takich warunków,
sformułowanych w języku algebry relacyjnej lub zbliŜonym.
Bazy danych
Relacyjny model danych – typy operacji
Selekcja
Selekcja
jest
operacją
jednoargumentową,
określoną
przez
warunek dotyczący wartości kolumn danej relacji. Wynikiem jej
25
warunek dotyczący wartości kolumn danej relacji. Wynikiem jej
jest relacja zawierające te wszystkie encje (wiersze) wyjściowej
relacji, których atrybuty spełniają dany warunek.
Rzut
Rzut to operacja jednoargumentowa określona przez podzbiór
zbioru kolumn danej relacji, dająca w wyniku tabelę składającą się
z tychŜe kolumn wyjściowej relacji.
Bazy danych
Relacyjny model danych – typy operacji
Iloczyn kartezjański.
Argumentami są dwie relacje, wynikiem -- relacja, której wiersze
są zbudowane ze wszystkich par wierszy relacji wyjściowych.
26
są zbudowane ze wszystkich par wierszy relacji wyjściowych.
Operacja o znaczeniu raczej teoretycznym.
Równozłączenie.
Argumentami są dwie relacje, posiadające kolumny o tych samych
dziedzinach np. klucz główny jednej z nich i klucz obcy drugiej.
Wynikiem jest tabela otrzymana z iloczynu kartezjańskiego relacji
wyjściowych poprzez selekcję za pomocą warunku równości tych
,,wspólnych'' atrybutów.
Bazy danych
Relacyjny model danych – typy operacji
Złączenie naturalne.
Powstaje z równozłączenia dwóch tabel poprzez rzutowanie
usuwające powtarzające się kolumny złączenia. Rzeczywiście jest
27
usuwające powtarzające się kolumny złączenia. Rzeczywiście jest
to operacja bardziej ,,naturalna'' aniŜeli równozłączenie.
Bazy danych
Relacyjny model danych – typy operacji
Złączenia zewnętrzne.
Złączenia
zewnętrzne
tworzone
są
podobnie
jak
złączenie
naturalne, lecz z pozostawieniem w tabeli wynikowej takŜe
28
naturalne, lecz z pozostawieniem w tabeli wynikowej takŜe
wierszy, dla których nie zachodzi równość atrybutów złączenia:
Złączenie lewostronne - złączenie naturalne uzupełnia się o
wiersze z pierwszego argumentu nie posiadające odpowiednika
(wierszu o równym atrybucie złączenia) w drugim argumencie;
,,brakujące'' atrybuty przyjmują wartość
NULL
.
Złączenie prawostronne robi się to samo, ale względem
drugiego argumentu.
Złączenie obustronne obejmuje obydwie tabele wyjściowe tą
samą operacją.
Bazy danych
Relacyjny model danych – typy operacji
Suma
Suma jest operatorem działającym na dwóch zgodnych relacjach
(to jest o tych samych kolumnach), produkującym relację której
29
(to jest o tych samych kolumnach), produkującym relację której
wiersze są sumą teoriomnogościową wierszy z relacji wyjściowych.
Przecięcie
Przecięcie znowu wymaga dwóch zgodnych tabel, wynikiem jest
tabela zawierająca wiersze wspólne dla obu argumentów.
RóŜnica
RóŜnica jest określona dla dwóch zgodnych relacji i odpowiada
dokładnie róŜnicy teoriomnogościowej zbiorów wierszy tabel
wyjściowych.