230 likes | 608 Views
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
E N D
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)
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
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))
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 danychCodd 1985 0. 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 danychCodd 1985 • Programy, za pomocą których manipuluje się bazą danych, są niezależne od tego, jak baza jest fizycznie zorganizowana • Programy, za pomocą których baza danych jest przetwarzana, są niezależne od tego, jak baza jest logicznie zorganizowana wewnętrznie • Zasady integralności danych powinny być możliwe do zdefiniowania wewnątrz języka zapytań i przechowywane w katalogu, a nie w aplikacji • Baza danych powinna działać tak samo, niezależnie od tego, czy pracuje na pojedynczej maszynie, czy jest rozproszona przez sieć • 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