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.