Modele baz danych - spojrzenie na poziom fizyczny SZB, L.Banachowski 1 Typ i plik rekordów v Schemat bazy danych to: – zbiór typów rekordów (którym odpowiadają pliki rekordów), i – zbiór związków jednoznacznych (jeden do wiele) między nimi, nazywanych też powiązaniami. v v v Rekord po stronie jeden związku nazywa się nadrzędny. Rekord po stronie wiele związku nazywa się podrzędny. Jednemu rekordowi nadrzędnemu odpowiada kolekcja rekordów podrzędnych pozostających z nim w rozważanym związku. SZB, L.Banachowski 2 Model sieciowy Oprócz wskazanych powiązań, powiązania od rekordów podrzędnych do nadrzędnych (czyli od pracowników do departamentów i stanowisk). SZB, L.Banachowski 3 Model hierarchiczny SZB, L.Banachowski 4 Model relacyjny Tabele – zbiory rekordów. Powiązania miedzy rekordami przez wartości klucz obcy – klucz główny. SZB, L.Banachowski 5 Zalety SZBD v v Niezależność danych – Programy aplikacyjne są niezależne od szczegółów reprezentacji danych i ich przechowywania na dysku. Szybki dostęp do danych – SZBD ma do dyspozycji wiele skomplikowanych metod przechowywania i wyszukiwania danych: – bardzo dużo danych i są one przechowywane w pamięci zewnętrznej. v Spójność i ochrona danych – Dostęp do danych odbywa się wyłącznie za pomocą SZBD: – jednolite więzy spójności niezależne od aplikacji przetwarzającej dane – jednolity system kontroli dostępu do danych określający, jakie dane są dostępne dla jakich użytkowników. SZB, L.Banachowski 6 Zalety SZBD v Administracja danymi – Dane używane przez różnych użytkowników są centralnie administrowane: – dopasowanie reprezentacji danych w celu zminimalizowania redundancji ich zapisu – dopasowanie struktury przechowywania danych na dysku w celu przyśpieszenia wyszukiwania danych. v v Współbieżny dostęp i odtwarzanie po awarii – SZBD umożliwia i kontroluje współbieżny dostęp do danych przez wielu użytkowników tak, że każdy z nich ma wrażenie, że tylko on używa tych danych w danej chwili. SZBD zabezpiecza dane przed utratą w sytuacji zaistnienia różnego rodzaju awarii. Zmniejszony czas tworzenia aplikacji – SZBD dostarcza wspólnych funkcji dla aplikacji korzystających z danych w bazie danych; dostarcza interfejsu wysokiego poziomu do danych. SZB, L.Banachowski 7 Trzy poziomy schematu bazy danych w SZBD v v v logiczny (koncepcyjny) – opisuje przechowywane dane w kategoriach modelu danych SZBD, np. w modelu relacyjnym jest to zbiór tabel tworzących bazę danych. Na tym poziomie są definiowane niektóre obiekty używane na innych poziomach jak np. perspektywy, indeksy. fizyczny – opisuje jak dane (w modelu relacyjnym tabele) są zapisywane na dysku i jak są implementowane indeksy. zewnętrzny - opisuje sposób użycia bazy danych przez aplikację, końcowego użytkownika – np. w modelu relacyjnym za pomocą perspektyw – wirtualnych tabel zamiast rzeczywistych. SZB, L.Banachowski 8 Przykład v Poziom logiczny - tabele: – Studenci(sid: string, nazwisko: string, login: string, wiek: integer, gpa:real) – Kursy(kid: string, nazwa:string, punkty:integer) – Zapisany(sid:string, kid:string, stopień:string) v Poziom zewnętrzny nr. 1 – perspektywa: – Course_info(kid:string, nazwa:string, punkty:integer, liczba_studentów:integer) v Poziom zewnętrzny nr. 2– perspektywa: – Student_info(sid:string, nazwisko:string, login: string, wiek: integer, gpa:real, liczba_kursów:integer) SZB, L.Banachowski 9 Niezależność danych v logiczna – użytkownicy jak i aplikacje są osłaniane przed zmianami w logicznej strukturze danych – np. w wyborze tabel przy pomocy których będą reprezentowane dane na poziomie logicznym, – możliwość integracji różnych aplikacji bez ich zmiany. v fizyczna – schemat logiczny osłania użytkowników przed zmianami w schemacie fizycznym opisującym w jaki sposób są zapisane dane na dysku i jakie indeksy są używane. SZB, L.Banachowski 10 Postulaty Codda – relacyjny system zarządzania bazą danych v v v v Postulat informacyjny. Na poziomie logicznym dane są reprezentowane wyłącznie za pomocą tabel wartości. Postulat dostępu. Do każdej pojedynczej danej jest możliwy dostęp za pomocą tabel, kolumn i wartości klucza głównego. Postulat obiektu null. W systemie jest dostępny specjalny obiekt reprezentujący stan braku wartości (tj. reprezentujący wartość brakującą, nieokreśloną lub nieznaną) – różny od każdej konkretnej wartości jak 0 lub napis pusty. Postulat struktury metadanych. Informacje o obiektach bazy danych tworzących schemat bazy danych są na poziomie logicznym pogrupowane w tabele i dostępne w taki sam sposób jak każde inne dane. SZB, L.Banachowski 11 Postulaty Codda v v v v Postulat pełnego języka danych. W systemie jest zaimplementowany pełny język obejmujący definiowanie tabel, perspektyw, więzów spójności, operowanie danymi (interaktywne i przez interfejs programistyczny), nadawanie uprawnień użytkownikom, transakcje. Postulat modyfikowania bazy danych przez perspektywy. System umożliwia modyfikowanie danych przy użyciu perspektyw, w przypadku gdy taka modyfikacja jest semantycznie sensowna. Postulat modyfikowania danych na wysokim poziomie abstrakcji. System umożliwia modyfikowanie danych za pomocą operacji, których argumentami są tabele (perspektywy) Fizyczna niezależność danych. Zmiany w metodach przechowywania danych i dostępu do nich nie mają wpływu na aplikacje. SZB, L.Banachowski 12 Postulaty Codda v v v v Logiczna niezależność danych. Zmiany w tabelach zachowujące informacje i dopuszczalne semantycznie nie mają wpływu na aplikacje. Niezależność więzów spójności. Więzy spójności są definiowalne w języku bazy danych (nie muszą być wyrażane w aplikacji). Niezależność dystrybucyjna. System (i jego język) umożliwiają używanie danych zapisanych w różnych fizycznie miejscach (w różnych węzłach sieci). Zabezpieczenie przed operacjami na niższych poziomach abstrakcji. Jeśli system umożliwia operacje na niższych poziomach abstrakcji, nie mogą one naruszać relacyjnego modelu danych (w tym nie mogą pomijać ograniczeń określonych przez więzy spójności). SZB, L.Banachowski 13