1
BAZY DANYCH
Lekcja 3: Modele baz danych przygotowała: inż. Lidia Mamet
Celem lekcji jest zapoznanie z tematyką modelowania baz danych. Poruszone zostaną tematy takie jak podział modeli, ich najważniejsze różnice. Następnie objaśnione zostaną pojęcia związane z relacyjnymi bazami danych.
1 Wprowadzenie do modeli baz danych
Model danych – sposób zapisu za pomocą określonych symboli służący do opisu informacji Założenia wprowadzenia modeli danych:
• Łatwość obsługi przez użytkownika (nie musi być specjalistą baz danych, aby móc obsługiwać system)
• Potrzeba projektu, który określi sposób gromadzenia, przechowywania i przetwarzania danych
Składowe modelu danych:
• Struktura danych - określa jak obiekty będą przedstawiane inaczej fizyczny model danych – tablice, struktury, klasy
• Ograniczenia – określa reguły poprawności i spójności danych, np. dzień to liczba całkowita z zakresu 1-31
• Operacje na danych – działania umożliwiające uzyskanie dostępu do struktur, np. działania arytmetyczne
2 Podział modeli i ich reprezentanci
Modele pojęciowe konceptualne (ang. conceptual model)
• Model związków encji ERM (ang. Enity-Relationship Model)
• Zunifikowany język modelowania UML (Unified Modeling Language) – zunifikowany czyli połączony w jednolitą całość
2
• Język definicji obiektów ODL (Object Definition Language) Modele logiczne (ang. logical model)
• Model hierarchiczny
• Model sieciowy
• Model obiektowy
• Model relacyjny
2.1 Model hierarchiczny - właściwości
• Organizacja danych w postaci odwróconego drzewa. Obiekt podrzędny jest Wyszukiwanie danych rozpoczyna się od obiektu podstawowego i dzięki rozgałęzieniom kończy na szukanym obiekcie poprzez wszystkie inne w drzewie.
• Usunięcie obiektu nadrzędnego powoduje usunięcie obiektów podrzędnych
• połączony z jednym obiektem nadrzędnym
Źródło: J. Pokorska: Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
2.2 Model sieciowy (CODASTYL)
• Podobny do modelu hierarchicznego z możliwością połączeń na tym samym poziomie drzewa danych
• Sposób dostępu do rekordu wg łańcucha powiązań tzw. ścieżki dostępu
• Ustandaryzowany przez komitet CODASTYL (Conference on Data Systems Lanuguages)
3
2.3 MODEL OBIEKTOWY
• Oparty na językach programowania.
• Dane istnieją w formie obiektów
• Obiekty opisywane są za pomocą narzędzi charakterystycznych dla języków programowania obiektowego (metody, klasy itp.)
2.4 MODEL RELACYJNY!!!!!!
Jest oparty na tabelach (relacjach), która musi spełniać określone kryteria:
• tabela powinna mieć taką nazwę, która odzwierciedla jej zawartość np. Uczniowie, Książki
• w jednej tabeli nie może być dwóch identycznych wierszy
• wiersze i kolumny nie muszą być uporządkowane
• kolumna tabeli ma unikatową nazwę, która określa cechy np. imię, nazwisko, pesel
• w nazwach tabel i kolumn nie używa się spacji ani znaków diakrytycznych
• każde pole tabeli (miejsce przecięcia kolumn i wierszy) jest wartością atomową, czyli niepodzielną
• nazwy tabeli pisze się wielką literą, zaś atrybutów (kolumn) małą
• nazwy tabel powinny być zapisane w liczbie mnogiej i mieć formę rzeczownika
• każdy rekord może mieć jeden komponent dla danej kolumny
4
2.5 Podstawowe pojęcia modelu relacyjnego
Rekord – wiersz w tabeli z wyjątkiem wiersza nagłówkowego Liczebność tabeli – ilość rekordów w tabeli
Stopień tabeli – liczba kolumn Komponent – wartość pola w tabeli Dziedzina – typ danych w tabeli
Schemat tabeli – nazwa tabeli wraz z polami
Schemat relacyjnej bazy danych – zbiór wszystkich tabel razem z polami
Superklucz tabeli (ang. superkey) – kolumna lub zestaw kolumn, który jednoznacznie identyfikuje dany rekord w tabeli. Oznacza to, że dwa rekordy tabeli nie mogą mieć takich samych wartości w każdym polu
Klucz tabeli – minimalny superklucz, który powstaje przez usuwanie z superklucza nadmiarowych kolumny tak, żeby zachować unikatowość rekordu.
Np. niech dana będzie tabela Uczniowie
id_ucznia imie nazwisko
1 Jan Nowak
2 Lidia Nowak
3 Katarzyna Kowalska
Zestaw kolumn id_ucznia i nazwisko będzie suparkluczem. Atrybut id_ucznia gwarantuje, że dwa rekordy tabeli nie mają dwóch tych samych kompotentów we wszystkich kolumnach klucza, gdyż wartość w polu id_ucznia się zmienia, chociaż nazwisko może się powtarzać.
Ponieważ id_ucznia jest niepowtarzalny i zachowuje unikatowość rekordów będzie on minimalnym superkluczem czyli kluczem tabeli.
Klucz kandydujący (ang. cadcidate key) – każdy klucz danej tabeli, spośród których wybiera się klucz podstawowy
5
Klucz podstawowy (ang. primary key) – kolumna tabeli, która zapewnia unikatowość rekordu, np. PESEL, NIP. Np. niech dana będzie tabela Uczniowie
id_ucznia imie nazwisko
1 Jan Nowak
2 Lidia Nowak
3 Katarzyna Kowalska
Zestaw kolumn id_ucznia i nazwisko będzie suparkluczem. Atrybut id_ucznia gwarantuje, że dwa rekordy tabeli nie mają dwóch tych samych kompotentów we wszystkich kolumnach klucza, gdyż wartość w polu id_ucznia się zmienia, chociaż nazwisko może się powtarzać.
Ponieważ id_ucznia jest niepowtarzalny i zachowuje unikatowość rekordów będzie on minimalnym superkluczem czyli kluczem tabeli.
Klucz kandydujący (ang. cadcidate key) – każdy klucz danej tabeli, spośród których wybiera się klucz podstawowy
Klucz podstawowy (ang. primary key) – kolumna tabeli, która zapewnia unikatowość rekordu, np. PESEL, NIP
Klucz obcy – kolumna wskazująca na klucz podstawowy z innej tabeli. Dzięki niemu definiowane są połączenia (więzy) między tabelami.
Tabela Uczniowie
id_ucznia imie nazwisko
1 Jan Nowak
2 Lidia Nowak
3 Katarzyna Kowalska
Tabela klasy id_ucznia klasa
1 2pt3 2 2pt3 3 3ts Klucz podstawowy
Klucz obcy
6
3 PYTANIA KONTROLNE
1. Wymień konceptualne modele danych
2. Czym się różni model sieciowy od hierarchicznego?
3. Wymień logiczne modele danych
4. Wyjaśnij pojęcia: rekord, liczebność tabeli, komponent, stopień tabeli 5. Wyjaśnij pojęcia: klucz minimalny (główny), superklucz
6. Co to jest klucz kandydujący?
7. Czym się różni schemat tabeli od schematu bazy danych 8. Wymień cechy jakie powinna mieć tabela.
9. Wymień i opisz składowe modelu danych.