Model bazy danych – zbiór zasad (specyfikacji), opisujących strukturę danych w bazie danych. Określane są również dozwolone operacje. Definiuje się strukturę danych poprzez specyfikację reprezentacji dozwolonych w modelu obiektów (encji) oraz ich związków. W informatyce głównymi modelami baz danych są:
- hierarchiczny model danych,
- relacyjny model danych,
- sieciowy model danych,
- obiektowy model danych,
- sieci semantyczne.
- logiczny model danych
- temporalny model danych
Hierarchiczny model danych
W modelu hierarchicznym dane są przechowywane na zasadzie rekordów nadrzędnych-podrzędnych, tzn. rekordy przypominają strukturę drzewa. Każdy rekord (z wyjątkiem głównego) jest związany z dokładnie jednym rekordem nadrzędnym.
Dane w takim modelu są znajdowane na zasadzie wyszukiwania rekordów podrzędnych względem rekordu nadrzędnego. Przykładem takiego modelu może być struktura katalogów na dysku twardym komputera.
Hierarchiczna forma przechowywania danych zakłada grupowanie danych w formie kolejnych poziomów drzewa danych. Począwszy od zbioru podstawowego, będącego korzeniem drzewa (np. w przypadku podziału struktury służby zdrowia można rozpocząć od NFZ) poprzez kolejne podzbiory – rozgałęzienia (np. szpitale i przychodnie z którymi dany NFZ ma podpisaną umowę) dochodzi się do ostatnich zbiorów danych – liści (np. zbiory oddziałów, pracowni czy gabinetów). System hierarchiczny jest często przedstawiany poprzez model rodzic-potomek. Rodzic posiada pewną liczbę potomków, potomkowie ci mogą mieć swoich potomków, ci z kolei ... Zbiór danych w tym modelu (najczęściej w formie pojedynczej tabeli) jest powiązany (ma relacje) z innymi zbiorami w tym samym drzewie (w tej samej rodzinie). Wyszukiwanie danych polega więc na kolejnym zagłębianiu się w coraz to kolejne zbiory danych. System hierarchiczny budowany jest przeważnie w formie indukcyjnej, tzn. dane są grupowane od ogółu do szczegółu. Oznacza to prostą formę wyszukiwania danych danej klasy przechodząc poprzez kolejne poziomy szczegółowości. Specyficzna budowa takiej bazy danych umożliwia tworzenie prostych kryteriów wyszukiwania danych i w miarę potrzeby uszczegółowiania tych kryteriów wraz ze znajdywaniem kolejnych partii danych. Doskonałym przykładem hierarchii są wszelkie systemy klasyfikacji (np. chorób czy procedur medycznych). Często wadą tego modelu jest brak możliwości budowania relacji pomiędzy rekordami różnych drzew. Hierarchiczna baza danych zakłada podstawowe warunki integralności danych:
- każdy rekord (z wyjątkiem pierwszego i drugiego rodzica – korzeni drzewa) musi posiadać własnego, jednego rodzica
- jeżeli dany rekord posiada więcej rodziców niż jeden musi być skopiowany dla każdego rodzica oddzielnie tak, aby prawdziwa była powyższa zasada,
- jeżeli usunięty zostaje dany rekord oznacza to, że usunięte zostają również wszystkie wywodzące się z niego rekordy – potomkowie.
Podstawową relacją jaka występuje w tym modelu jest jeden do wielu (korzeń – gałęzie) i wielu do jednego (gałęzie – korzeń). Dobrym przykładem hierarchicznej organizacji kartotek jest praktycznie każdy komputerowy system plików. System plików zakłada, że istnieje dokładnie jeden korzeń drzewa hierarchii (tj. jeden dla każdego typu napędu nośnika, np. dysk stały oznaczany jako „c:” w systemach plików wywodzących się z DOS-a jak Windows 95, Windows 98, Windows NT, Windows 2000 itp.). Od korzenia systemu plików wywodzą się liczne katalogi, które mogą posiadać podkatalogi, i tak dalej. W różnych katalogach i podkatalogach znajdują się pliki danych, a więc kartoteki (rekordy) systemu plików.
Relacyjny model danych
Relacyjny model danych (RDBMS) został wymyślony przez E.F. Codda na przełomie lat 70. i 80. zeszłego stulecia. Standard RDBMS został ostatecznie opracowany przez ANSI X3H2. Dane w takim modelu przechowywane są w tabelach, z których każda ma stałą liczbę kolumn i dowolną liczbę wierszy. Każda tabela (relacja) ma zdefiniowany klucz danych (key) – wyróżniony atrybut lub kilka takich atrybutów, którego wartość jednoznacznie identyfikuje dany wiersz. Wyszukiwanie danych odbywa się za pomocą odwołania się programu do danego klucza i identyfikacji danego wiersza za jego pomocą.