Wykład 2 Relacyjny model danych
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 w 1969 Wywodzi się z teorii zbiorów Jedyną strukturą danych jest Relacja Relacja zapisywana jest w formie Tabeli Relacja - stosunek między (dwoma lub więcej) przedmiotami, pojęciami wielkościami itp. Zależność między nimi zapisana w formie tabeli spełnia pewien zbiór zasad
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 Intuicyjnie relacja oznacza związek pomiędzy elementami zbiorów (w relacyjnych BD jest tożsama z tabelą) Elementami n-argumentowej relacji są n-elementowe uporządkowane zbiory zwane krotkami (rekordami, wierszami tabeli)
Reguły, które musi spełniać relacja (tabela) 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 (podręcznikowa) Żargon informatyczny Obiektowa Relacja Tabela Tablica (Plik) Klasa Krotka Wiersz Rekord Obiekt (encja) Atrybut Kolumna Pole Właściwość
Tabele Tabela składa się z nagłówka (head) 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ć odpowiedniej klauzuli (np. CHECK w SQL)
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ść i jednoznaczność wiersza Przykłady kluczy głównych (podstawowych) Imię + nazwisko + imię ojca + data urodzenia PESEL NIP Numer dowodu osobistego Numer paszportu Numer albumu ID
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 tego klucza Poszczególne wiersze 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. Ma wartości z tej samej dziedziny co klucz główny tabeli, która jest z nią powiązana w bazie danych Klucz obcy identyfikuje wiersz w powiązanej tabeli
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 jest różna od NULL i 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ść w kolumnie 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ść wiersza relacja (tabela) 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ącego wiersza albo są NULL Integralność dziedziny - wymuszanie poprawnych wartości dziedziny niektóre kolumny nie są ze sobą powiązane logicznie, ale są powiązane w rzeczywistości
Kryteria relacyjności bazy danych 1. 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 2. Baza danych gromadzi wszystkie informacje wewnątrz wierszy 3. Każda wartość może być dostępna przez kombinację nazwy relacji (tabeli), nazwy kolumny i wartości klucza podstawowego dla tego wiersza 4. Wartości NULL wprowadzane są systematycznie 5. Katalog bazy danych jest przechowywany wewnątrz jednej lub wielu relacji (tabeli), które mogą być czytane przez autoryzowanych użytkowników 6. System (SZBD) wykorzystuje język zapytań (np. SQL) 7. System musi być zdolny do uaktualniania przez perspektywę 8. System musi być zdolny do wstawiania, aktualizowania i usuwania grup wierszy, nie tylko jednego wiersza na raz
Kryteria relacyjności bazy danych 8. 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 Żaden z istniejących SZBD nie spełnia wszystkich kryteriów