Zapisz jako PDF

Transkrypt

Zapisz jako PDF
Spis treści
1 TI:WTBD/ModelRelacyjny
1.1 Definicja danych
1.2 Operacje na danych
1.3 Integralność danych
TI:WTBD/ModelRelacyjny
Jest najważniejszym z tzw. klasycznych modeli danych, zarówno ze względu na rozległość
zastosowań, jak i na w miarę solidne podstawy teoretyczne.
Model relacyjny (jego podstawy teoretyczne) wywodzi się z prac EF Codd'a (1970). Pierwsze
implementacje stworzono w MIT (wczesne lata 1970-te) i w U.C. Berkeley (Ingres; 1974). Pierwszą
wersję Oracle opartą na SQL wprowadzono na rynek w 1979; wkrótce potem swoje produkty
wprowadził IBM.
Inne modele danych zaliczane do klasycznych to model hierarchiczny i model sieciowy. Ich
praktyczne znaczenie jest współcześnie niewielkie, chociaż można powiedzieć, że popularność
XML jest w jakimś sensie odrodzeniem modelu hierarchicznego.
Zdecydowana większość systemów bazodanowych stosowanych w biznesie i administracji
opartych jest (przynajmniej nominalnie) na relacyjnych SZBD.
Najbardziej rozpowszechnione obecnie SZBD, oparte na zasadach modelu relacyjnego i na języku
SQL, to: Oracle, Microsoft SQL Server, IBM ~DB2, Sybase -- produkty komercyjne; PostgreSQL,
MySQL -- produkty Open Source; SQLite -- biblioteka implementująca bazę relacyjną wbudowaną w
aplikację, kod Public Domain: występuje pewnie w największej liczbie egzemplarzy (jest wbudowana
praktycznie w każdy smartfon).
Definicja danych
Relacja
Pojęcie relacji pochodzi z teorii mnogości, która jest zresztą formalną podstawą modelu
relacyjnego.
Przypomnijmy: relacja to podzbiór iloczynu kartezjańskiego dwu lub więcej dziedzin, a więc podzbiór
zbioru wszystkich krotek uporządkowanych, gdzie k-ty element pochodzi z k-tej dziedziny.
W ramach modelu relacyjnego, synonimem relacji jest tabela, ale to nie jest to samo co tabela w
języku potocznym.
baza
jest zbiorem relacji
każda relacja jest określona przez swoją nazwę
kolumny
każda kolumna (pozycja w krotce) ma swoją nazwę, jednoznaczną w ramach danej relacji, i
swoją dziedzinę - to razem określa kolumnę (posługujemy się nazwami kolumn zamiast pozycji
w krotce)
kolumny relacji (zwane też atrybutami) tworzą zbiór nieuporządkowany
wiersze tabeli
(krotki należące do relacji) również tworzą zbiór nieuporządkowany
pola
każde pole (przecięcie wiersza z kolumną) zawiera wartość atomową z dziedziny danej
kolumny. Lub też wartość specjalną NULL, oznaczającą że wartość jest nieokreślona lub
nieznana. Definicja dziedziny kolumny może wykluczać występowanie NULL.
klucz główny
każda relacja zawiera klucz główny: kolumnę lub zbiór kolumn, o wartościach różnych od
NULL, których podanie jednoznacznie wyznacza wiersz. W szczególności, wiersze się nie
powtarzają.
klucz obcy
jest podstawowym mechanizmem ustanawiania związków pomiędzy relacjami: klucz obcy
wiążący tabelę B z tabelą A to kolumna lub grupa kolumn z tabeli B, o dziedzinie ewent.
dziedzinach pokrywających się z dziedzinami kolumny lub kolumn tworzących klucz główny
tabeli A, z dodatkowym warunkiem, że wartości pól klucza obcego występują jako wartości
klucza głównego w tabeli A.
Operacje na danych
Są definiowane teoriomnogościowo. Argumentami każdej operacji są relacje (jedna lub dwie; dwie
pierwsze operacje poniżej są 1-argumentowe, a pozostałe -- 2-argumentowe); wynikiem również jest
zawsze relacja (czasami używa się określenia zbiór wynikowy dla podkreślenia, że nie chodzi o jedną
z relacji wchodzących w skład definicji danych w bazie (schematu danych), a o wynik operacji).
selekcja
wybór podzbioru wierszy relacji
rzut
wybór podzbioru kolumn relacji
iloczyn kartezjański
relacja, której zbiór wierszy stanowi iloczyn kartezjański zbiorów wierszy relacji - czynników
iloczynu (a kolumny - to suma zbiorów kolumn relacji-czynników)
równozłączenie
gdy w iloczynie kartezjańskim występują jako czynniki dwie relacje, z których każda posiada
kolumnę o tej samej dziedzinie, co odp. kolumna w drugiej relacji, to równozłączenie uzyskuje
się z iloczynu kartezjańskiego poprzez selekcję za pomocą warunku równości pól w tychże
kolumnach
złączenie naturalne
złączenie naturalne powstaje z równozłączenia poprzez rzut, redukujący do jednej kolumny
dwie kolumny, które na mocy warunku równozłączenia mają równe wartości dla każdego
wiersza
złączenie zewnętrzne
złączenie zewnętrzne (lewostronne) powstaje z równozłączenia, jeżeli zbiór wierszy je
tworzących uzupełnimy w taki sposób, że dla każdego wiersza lewego czynnika, który nie jest
reprezentowany w równozłączeniu, dodamy do równozłączenia wiersz, gdzie pola kolumn
pochodzących z prawego czynnika wypełnimy wartościami NULL. Analogicznie tworzy się
złączenie prawostronne i obustronne
suma
relacja składająca się z sumy teoriomnogościowej wiersszy dwóch relacji, o identycznych (co
do nazw i dziedzin) zestawach kolumn
przecięcie
jw. ale iloczyn teoriomnogościowy
różnica
jw. ale różnica teoriomnogościowa
Integralność danych
Do zdefiniowania co jest poprawnym stanem bazy, w modelu relacyjnym używa się następujących
narzędzi:
Integralność encji
(warunek klucza głównego) klucz główny nigdy nie jest NULL, a jego wartości się nie
powtarzają
integralność referencyjna
warunek klucza obcego -- klucz obcy przyjmuje jedynie takie wartości, które występują w odp.
kolumnie tabeli powiązanej. Zmiana danych w tabeli powiązanej mogłaby potencjalnie
prowadzić do naruszenia tego warunku (zbiór dozwolonych wartości klucza obcego ulega
zmianie), czyli niepoprawnego stanu bazy. Aby do tego nie dopuścić, stosuje się jedną z 3
reguł:
Restricted: operacja zmieniająca dane, prowadząca do unieważnienia wartości klucza
obcego, nie może być wykonana
Cascades: operacja zmieniająca dane, prowadząca do unieważnienia wartości klucza
obcego, pociąga za sobą usunięcie wierszy, której wskutek jej wykonania naruszałyby
warunek klucza obcego
Nullifies: wartości klucza obcego, które stałyby się nieważne, ulegają zastąpieniu przez
NULL
integralność dodatkowa (warunki CHECK)
w zasadzie dowolne warunki (wyrażenia logiczne), których prawdziwość jest sprawdzana jako
warunek wykonania operacji zmieniającej dane w tabeli

Podobne dokumenty