Śledź nas na:



Modele danych - bazy danych

Sieciowy model danych

Sieciowy model danych w ogólnym zarysie niewiele odbiega od hierarchicznego. W miejsce związku nadrzędny-podrzędny pomiędzy rekordami wprowadza się w nim tzw. typ kolekcji (set), który jest złożonym typem danych pola zawierającym odniesienia do innych rekordów określonego typu. Tzn. określenie typu kolekcji polega na podaniu typu rekordu-,,właściciela'' i typu rekordów-elementów kolekcji (oraz ew. klucza porządkowania elementów). Operowanie danymi ma też charakter proceduralny: typowe operacje to wyszukiwanie rekordu na podstawie zawartości pól i/lub przynależności do danego wystąpienia typu kolekcji, i dokonywanie modyfikacji bieżącego rekordu.

Warunki integralności danych, poza oczywistymi już więzami dotyczącymi zgodności zawartości pól rekordu z określeniem typu rekordu i unikalności pól kluczowych, mogą być formułowane w terminach wymogu przynależności rekordu do jakiegoś wystąpienia określonego typu kolekcji.

Relacyjny model danych

Relacyjny model danych został opracowany przez E. F. Codda w latach 70-80, i od mniej więcej połowy lat 80 stał się podstawą architektury większości popularnych SZBD. Naszkicuję tu dość pobieżnie teoretyczne zasady modelu. Należy przy tym pamiętać, że w realnych implementacjach teoria ta bywa traktowana dość luźno tzn. jej zasady niekoniecznie są w pełni przestrzegane czy implementowane. Stąd omówienie to będzie raczej powierzchowne, ze względów praktycznych skupimy się w dalszym ciągu wykładu raczej na realnych implementacjach modelu poprzez język SQL.

Definicja danych

Model relacyjny oparty jest na tylko jednej podstawowej strukturze danych -- relacji. Pojęcie relacji można uważać za pewną abstrakcję intuicyjnego pojęcia tabeli, zbudowanej z wierszy i kolumn, w której na przecięciu każdej kolumny z każdym wierzem występuje określona wartość. Baza danych jest zbiorem relacji, o następujących własnościach:

  • Każda relacja w bazie danych jest jednoznacznie określona przez swoją nazwę.

  • Każda kolumna w relacji ma jednoznaczną nazwę (w ramach tej relacji).

  • Kolumny relacji tworzą zbiór nieuporządkowany. Kolumny nazywane bywają również atrybutami.

  • Wszystkie wartości w danej kolumnie muszą być tego samego typu. Zbiór możliwych wartości elementów danej kolumny nazywany bywa też jej dziedziną.

  • Również wiersze relacji tworzą nieuporządkowany zbiór; w szczególności, nie ma powtarzających się wierszy. Wiersze relacji nazywa się też encjami.

  • Każde pole (przecięcie wiersza z kolumną) zawiera wartość atomową z dziedziny określonej przez kolumnę. Brakowi wartosci odpowiada wartość specjalna NULL, zgodna z każdym typem kolumny (chyba, że została jawnie wykluczona przez definicję typu kolumny).

  • Każda relacja zawiera klucz główny -- kolumnę (lub kolumny), której wartości jednoznacznie identyfikują wiersz (a więc w szczególności nie powtarzają się). Wartością klucza głównego nie może być NULL.

Do wiązania ze sobą danych przechowywanych w różnych tabelach używa się kluczy obcych. Klucz obcy to kolumna lub grupa kolumn tabeli, o wartościach z tej samej dziedziny co klucz główny tabeli z nią powiązanej.

Np. baza danych instytucji składającej się z wielu zakładów może zawierać tabele zakłady i pracownicy: tabela zakłady zawiera m. in. kolumny kod_zakladu (klucz główny), nazwa, adres, kierownik,...; a tabela pracownicy: kolumny nr_prac (klucz główny), nazwisko, zakład, pokój, telefon, email,...; kolumna zakłady.kierownik może być kluczem obcym odnoszącym się do kolumny pracownicy.nr_prac; zaś kolumna pracownicy.zakład - kluczem obcym odnoszącym się do zakłady.kod_zakładu, etc. Unika się w ten sposób powielania tych samych danych w różnych tabelach, co m. in. ułatwia utrzymanie zgodności pomiędzy zawartością bazy danych a stanem faktycznym.



Zobacz także