Model danych

advertisement
Relacyjny model danych
Wprowadzenie do systemów baz danych
Podstawowe wymagania stawiane
modelowi danych
 Unikanie nadmiarowości danych (redundancji) – jedna
informacja powinna być wpisana do bazy danych tylko jeden raz
 Problem powtarzających się grup
 Wypisując wiele faktur dla jednego odbiorcy, na każdej
fakturze należy umieścić dane tego odbiorcy, w bazie
danych dane odbiorcy powinny być zapisane tylko w jeden
raz
Relacyjny model danych
 Opublikowany przez E.F. Codda w 1969
 Wywodzi się z teorii zbiorów
 Jedyną strukturą danych jest RELACJA
 Relacja zapisywana jest w formie tabeli
 Relacja (tabela) spełnia zbiór zasad
Relacja w języku potocznym
 sprawozdanie z ...
 stosunek między (dwoma lub więcej) przedmiotami, pojęciami
wielkościami itp., zależność między nimi
 droga pociągu ...
Popularny słownik języka polskiego
Relacja (matematyka)
 Relacją n-argumentową nazywamy podzbiór iloczynu
kartezjańskiego n zbiorów
 Relacja jest zwykle takim podzbiorem iloczynu
kartezjańskiego, którego elementy spełniają pewien warunek,
np. formułę zdaniową n zmiennych
 Intuicyjnie relacja oznacza związek pomiędzy elementami
zbiorów
 Elementami n-argumentowej relacji są n-elementowe
uporządkowane zbiory zwane n-elementowymi krotkami
Reguły, które musi spełniać relacja
 Każda relacja w bazie danych ma jednoznaczną nazwę
 Każda kolumna w relacji ma jednoznaczną nazwę w ramach





jednej relacji
Wszystkie wartości w kolumnie muszą być tego samego typu
Kolejność kolumn w relacji nie jest istotna
Każdy wiersz w relacji musi być różny
Porządek wierszy nie jest istotny
Każde pole leżące na przecięciu kolumny i wiersza powinno
zawierać wartość atomową (w jednym polu relacji nie jest
dozwolony zbiór wartości)
Terminologia
Oryginalna
dla modelu
Powszechnie
stosowana
Żargon
informatyczny
Obiektowa
(podręcznikowa)
Relacja
Tabela
Tablica (Plik)
Klasa
Krotka
Wiersz
Rekord
Obiekt (encja)
Atrybut
Kolumna
Pole
Właściwość
Tabela
 Tabela składa się z nagłówka (heading) i treści (body) – w tej




formie jest najczęściej zapisywana jako plik
Nagłówek tabeli – nazwy kolumn tabeli
Treść tabeli – wiersze danych
Liczba kolumn – stopień tabeli
Liczba wierszy – liczebność tabeli
Dziedzina
 Dziedzina (domain) to zbiór wartości, z których pochodzą
elementy pojawiające się w kolumnach tabeli
 Integralność dziedziny oznacza, że wartości atrybutów
przyjmują tylko poprawne wartości
 Aby wymusić poprawne modyfikacje można użyć (w języku
SQL) klauzuli CHECK
Klucz główny
 Klucz główny (primary key)to jedna lub więcej kolumn tabeli, w
których wartości jednoznacznie identyfikują każdy wiersz w
tabeli
 Klucz główny wymusza integralność encji
 Przykłady kluczy głównych (podstawowych)
 Imię + nazwisko + imię ojca + data urodzenia
 PESEL
 NIP
 Numer dowodu osobistego
 Numer paszportu
 Numer albumu
Właściwości klucza głównego
 Wartość klucza głównego musi być zawsze określona – nie
może zawierać NULL
 Wartości klucza głównego muszą być unikatowe w obrębie
klucza
 Poszczególne wiersze (krotki) rozpoznajemy po zawartości
klucza głównego
Klucze obce
 Klucze obce są sposobem łączenia danych przechowywanych
w różnych tabelach
 Klucz obcy (foreign key) jest kolumną lub grupą kolumn tabeli,
która czerpie swoje wartości z tej samej dziedziny co klucz
główny tabeli powiązanej z nią w bazie danych
 Klucz obcy identyfikuje wiersz w powiązanej tabeli
Przykład klucza obcego
oceny
studenci
Nazwisko
Imię
PID
Papkin
Jan
1
Drozd
Andrzej
PID
Przedmiot
Ocena
2
J. angielski
5
2
J. rosyjski
5
2
J. francuski
5
2
J. hiszpański
4
3
J. angielski
3
3
J. niemiecki
4
4
J. węgierski
5
2
Kowalski
Jan
3
Papkin
Marek
4
Klucz obcy – związek jeden do wiele
Diagram standardu Integration DEFinition (IDEF1X)
MS Access
Diagram MS SQL Server
Właściwości klucza obcego
 Wartość klucza obcego powinna wskazywać na istniejący
wiersz w powiązanej tabeli albo być nieokreślona (NULL)
 Jeśli wartość klucza obcego różna od NULL nie wskazuje na
istniejący wiersz w powiązanej tabeli mówimy, że naruszona jest
integralność referencyjna bazy danych
 Klucz obcy odnosi się zwykle do klucza podstawowego innej
tabeli, i identyfikuje jeden wiersz w tej tabeli
Symbol NULL
 NULL stosujemy wtedy, kiedy wartość atrybutu jest nieokreślona




(nieznana)
NULL nie porównuje żadnej informacji niezależnie od jej
wartości
NULL nie dobiera NULL – NULL nie jest ani równe, ani różne
NULL
NULL nie ma żadnej wartości
Istnienie NULL zmienia logikę z dwuwartościowej (prawda,
fałsz) na trójwartościową (prawda, fałsz, nieznane (NULL))
Tabela prawdy AND (i) – koniunkcja
TRUE
FALSE
NULL
TRUE
TRUE
FALSE
NULL
FALSE
FALSE
FALSE
FALSE
NULL
NULL
FALSE
NULL
Tabela prawdy OR (lub) – alternatywa
TRUE
FALSE
NULL
TRUE
TRUE
TRUE
TRUE
FALSE
TRUE
FALSE
NULL
NULL
TRUE
NULL
NULL
Integralność bazy danych
 Integralność encji – relacja musi mieć unikalny klucz główny,
który powinien być unikatowy i nie zawierać wartości NULL –
klucz główny uniemożliwia wystąpienie powtórzeń wierszy
 Integralność referencyjna – wszystkie wartości kluczy obcych
odnoszą się do istniejącej krotki albo są NULL
 Integralność dziedziny - wymuszanie poprawnych wartości
dziedziny – niektóre atrybuty nie są ze sobą powiązane
logicznie, ale są powiązane w rzeczywistości
Kryteria relacyjności bazy danych
Codd 1985
0.
1.
2.
3.
4.
5.
6.
7.
Każdy system, który pretenduje do miana systemu
zarządzania relacyjnymi bazami danych, musi być w stanie
zarządzać danymi wyłącznie dzięki swoim funkcjom
relacyjnym
Baza danych gromadzi wszystkie informacje wewnątrz krotek
Każda wartość może być dostępna przez kombinację nazwy
relacji, nazwy atrybutu i wartości klucza podstawowego tej
krotki
Wartości NULL wprowadzane są systematycznie
Katalog bazy danych jest przechowywany wewnątrz jednej lub
wielu relacji, które mogą być czytane przez autoryzowanych
użytkowników
System wdraża język zapytań
System musi być zdolny do uaktualniania przez perspektywę
System musi być zdolny do wstawiania, aktualizowania i
usuwania grup krotek, nie tylko jednej krotki na raz
Kryteria relacyjności bazy danych
Codd 1985
Programy, za pomocą których manipuluje się bazą danych, są
niezależne od tego, jak baza jest fizycznie zorganizowana
9.
Programy, za pomocą których baza danych jest przetwarzana,
są niezależne od tego, jak baza jest logicznie zorganizowana
wewnętrznie
10. Zasady integralności danych powinny być możliwe do
zdefiniowania wewnątrz języka zapytań i przechowywane w
katalogu, a nie w aplikacji
11. Baza danych powinna działać tak samo, niezależnie od tego,
czy pracuje na pojedynczej maszynie, czy jest rozproszona
przez sieć
12. Nie można użyć języka niższego rzędu do obalenia jedności
zasad bazy danych
8.
Żaden z istniejących SZBD nie spełnia wszystkich kryteriów
Download