4. Relacyjny model baz danych Bazy danych 4. Relacyjny model baz danych P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2004/05
Tylko jeden sposób reprezentowania danych: dwuwymiarowa tabela (Ullman i Widom nazywają ją „relacją”) Nazwa tabeli Nazwy kolumn (atrybuty) Krotka Składowa krotki Bazy danych - wykład 4
Intuicja, jaką niesie słowo „tabela”, może być myląca: Na pewno istnieje klucz! (zbiór wszystkich składowych krotki) W modelu relacyjnym „tabela” nie jest listą, ale zbiorem W jednej tabeli nie mogą wystąpić dwie takie same krotki Kolejność, w jakiej występują krotki, nie ma znaczenia Bazy danych - wykład 4
Dane a metadane Tabela (realcja) to obiekt abstrakcyjny. Ma swoje atrybuty i więzy. Zbiór wszystkich takich „projektów” tabel nazywa się schematem bazy danych. Schemat wraz z informacjami o użytkownikach i ich uprawnieniach stanowi metadane („dane o danych”). Schemat tabeli w zasadzie — w czasie normalnego użytkowania — nie zmienia się w czasie. Zbiór wszystkich krotek danej tabeli („zawartość tabeli”) może się zmieniać w czasie. Zbiór taki nazywa się instancją tabeli (relacji). Instancję istniejącą teraz nazywa się instancją bieżącą. Bazy danych - wykład 4
Nie każdy pomysł na projekt tabeli jest dobry Na ogół DBMS-y mają wbudowane funkcje operujące na łańcuchach, ale nie należy tego żądać ani oczekiwać — nie to jest funkcją DBMS! Jak w tej tabeli wyszukać imiona? DBMS tego nie zrobi, trzebaby to robić po stronie aplikacji… Bazy danych - wykład 4
Problem: Jednemu numerowi zamówienia odpowiada zbiór identyfikatorów części Bazy danych - wykład 4
Pierwsza postać normalna: Tabele zawierają wyłącznie dane atomowe. Bazy danych - wykład 4
Poprzedni przykład sprowadzony do pierwszej postaci normalnej Bazy danych - wykład 4
Dwanaście zasad Codda dla RDBMS Informacje są reprezentowane logicznie w tabelach. Dane są logicznie dostępne przez podanie nazwy tabeli, wartości klucza podstawowego i nazwy kolumny. Wartości null są traktowane w jednolity sposób jako „brakujące informacje”. Nie mogą być traktowane jako puste łańcuchy czy zera. Bazy danych - wykład 4
Dwanaście zasad Codda dla RDBMS (cd) Metadane są umieszczone w bazie danych tak, jak zwykłe dane. Język obsługi danych ma możliwość definiowania danych i perspektyw, więzów integralności, przeprowadzania autoryzacji, obsługi transakcji i manipulacji danymi. Perspektywy reagują na zmiany swoich tabel bazowych. Zmiana w perspektywie powoduje zmianę w tabeli bazowej. Bazy danych - wykład 4
Dwanaście zasad Codda dla RDBMS (cd) W praktyce w systemach komercyjnych robi się to bardzo rzadko. Z całą pewnością nie jest to operacja, jaką rutynowo przeprowadza zwykły użytkownik! Istnieją pojedyncze operacje pozwalające na wyszukanie, wstawienie, uaktualnienie i usunięcie danych. Operacje użytkownika są logicznie oddzielone od fizycznych danych i metod dostępu. Operacje użytkownika pozwalają na zmianę schematu bazy danych bez konieczności tworzenia bazy od nowa. Bazy danych - wykład 4
Dwanaście zasad Codda dla RDBMS (cd) Więzy integralności są umieszczone w metadanych, nie w zewnętrznej aplikacji. Język manipulacji danymi powinien działać bez względu na to jak i gdzie są rozmieszczone fizyczne dane oraz nie powinien wymagać zmian, gdy fizyczne dane są centralizowane lub rozpraszane. Bazy danych - wykład 4
Dwanaście zasad Codda dla RDBMS (cd) Operacje na pojedynczych rekordach przeprowadzane w systemie podlegają tym samym zasadom i więzom, co operacje na zbiorach danych. Różnica wobec programowania proceduralnego, gdzie zawsze trzeba powiedzieć jak manipulować danymi. Bazy danych - wykład 4
Caveat emptor! Bazy danych są cenne i trzeba je chronić. Bazy danych wymagają konserwacji i administracji. DBMS jest potencjalnym kanałem, przez który cracker może włamać się do systemu. Bazy danych wymagają regularnego sporządzania kopii zapasowych (backup). Bazy danych - wykład 4