Modele logiczne baz danych

advertisement
Modele logiczne baz danych
Modele logiczne baz danych
Trzy najważniejsze modele danych używane w większości systemów baz danych to modele:
relacyjny, sieciowy i hierarchiczny. Są pod wieloma względami podobne do modelu związków encji.
Mają jednak pewne właściwości, dzięki którym są lepiej dopasowane do fizycznych struktór używanych
przy implementacji baz danych.
Relacyjny model baz danych
Model ten został stworzony na początku lat siedemdziesiątych przez Codda.
Do reprezentacji danych wykorzystuje się dwuwymiarowe tabele inaczej zwane relacjami.
Każda tabela opatrzona jest nazwą i posiada określoną liczbę kolumn. Z kolei każda kolumna ma swój
nagłówek czyli atrybut. Atrybut danej kolumny charakteryzuje się określonym typem. Przykłady
typów: liczbowe, tekstowe, typ czasu, daty, waluty, typ wyliczeniowy, logiczny itd. Zatem w każdej
kolumnie dopuszczalne są tylko ściśle określone wartości zgodne z jej typem.
Nazwa
Atrybut_1 Atrybut_2 Atrybut_3 ...
Atrybut_n
Pierwszy etap projektowania relacyjnej BD polega na określeniu liczby atrybutów w wierszu.
Każdy wiersz tabeli może składać się z wielu pól dlatego inaczej wiersz nazywamy rekordem. Tabela
przedstawia więc sobą zbiór rekordów.
Poniżej stworzona została tabela o nazwie „student”. Zawiera ona następujące atrybuty:
„nazwisko”, „inię”, „rok_urodzenia”, „miejsce_urodzenia”.
Student
Nazwisko Imie
rok_urodzenia miejsce_urodzenia
www.wkuwanko.pl
1
Modele logiczne baz danych
...
...
...
...
Kowalski Jan
1980
Warszawa
...
...
...
...
Patrząc na taką tabelę można wypowiadać pewne zdania np.
„Pan Kowalski ma na imię Jan, urodził się w Warszawie”
Baza taka zawiera więc najbardziej zwięzłe informacje, pomija się w niej czasowniki niezbędne do
wypowiedzenia zdania.
Rekord możemy interpretować jako encję, wynika z tego, że tabela to zbiór encji. W
relacyjnych BD stosuje się też inne określenia w miejsce rekordów: krotki, entki.
Zatem rzeczywisty świat widziany jest w postaci tabelek, ale pomimo zwięzłości mamy tu
pewien nadmiar informacji. Aby tabelki można było powiązać ze sobą to nie można ustrzec się
powielania niektórych atrybutów w różnych tabelkach. Z jednej strony jest to niekorzystne bo
informacje się powtarzają, ale z drugiej daje nam to łatwość powiązania, sklejenia ze sobą różnych
zbiorów danych bez używania wskaźników.
Inną zaletą relacyjnej BD jest to, że potrafimy wyciągnąć z niej każdą informację. Nie ma tu
„czarnych dziur” tzn informację wprowadzoną bez problemu możemy odzyskać. Podobnych twierdzeń
nie można sformułować już chociażby dla modelu sieciowych BD.
Ważnym pojęciem w modelach relacyjnych jest klucz. Wyróżniamy dwa rodzaje kluczy:
główny i obcy.
Klucz główny jest atrybutem lub zestawem atrybutów, który w sposób jednoznaczny
identyfikuje rekordy w tabeli. Jest niezbędny do jednoznaczności nawigowania po BD. Przykładowo w
powyższej tabeli „student” dla uzyskania jednoznaczności klucz musi składać się z wielu atrybutów
gdyż może istnieć kilku studentów o tym samym nazwisku. Pamiętać należy jednak, że klucz powinien
być jak najmniejszym zestawem atrybutów. Rozwiązaniem byłoby tu zastosowanie dodatkowej
kolumny „numer indeksu”, która jednoznacznie określiłaby studenta w danej uczelni. Na skalę kraju
lepiej aby kluczem był numer dowodu osobistego, gdyż istnieje szansa, że na innej uczelni inny
student ma ten sam numer indeksu.
Zate klucz główny musi mieć unikalne, niepowtarzalne wartości, a jednocześnie nie może mieć
wartości nieokreślonych (jak nieskończonośc). Poza tym musi zostać zapewniona łatwość w
wyznaczaniu jego wartości, a także powinien być łatwo przewidywalny. W BD cechy te spełnia
specjalny typ – wyliczeniowy. Kolejne liczby naturalne są najlepszym kluczem.
Klucz obcy służy do robienia powiązań między tabelkami. Zastosowano tu rozwiązania
wachlarzowe:
www.wkuwanko.pl
2
Modele logiczne baz danych
POWIĄZANIE
Model relacyjny ma solidne podstawy matematyczne. Zaczerpnięty jest z teorii mnogości i
opiera się na pojęciu relacji.
Relacja jest to pewien podzbiór iloczynu kartezjańskiego dla pewnych dziedzin. Dziedziną
może być zbiór liczb całkowitych, zbiór studentów itd.
Załóżmy, że mamy dziedziny: D1,D2,...,Dk. Wówczas iloczyn kartezjański to: D1D2...Dk.
Taki iloczyn kartezjański jest zbiorem wszystkich k-krotek (v1,v2,...,vk) takich, że: v1D1,
v2D2,...,vkDk.
Przykład:
Przyjmijmy, że k=2 (dwukrotka) i D1={0,1}, D2={a,b,c}. Wówczas iloczyn kartezjański jest zbiorem:
D1D2={ (0,a) , (0,b) , (0,c) , (1,a) , (1,b) , (1,c) }
Jeżeli z tego iloczynu wybierzemy podzbiór np.: { (0,a) , (1,b) } to będzie to pewna relacja.
Zatem relacja jest dowolnym podzbiorem iloczynu kartezjańskiego jednej lub więcej dziedzin.
Elementy relacji nazywamy krotkami. Każda krotka składa się z wartości atrybutów.
Stąd widzimy, że relacje łatwo wyobrazić sobie jako tabelkę, w której wiersze to krotki, a
kolumny (czyli atrybuty) to dziedzina.
Zbiór nazw atrybutów relacji nazywa się schematem relacji. Jeżeli relacje nazywają się REL, a
jej schemat zawiera atrybuty A1,A2,..,Ak to taki schemat określimy: REL(A1,A2,...,Ak).
Dane diagramów związków encji reprezentują dwa rodzaje tabelek:
Zbiór encji reprezentuje relacje, której schemat składa się ze wszystkich atrybutów tego zbioru. Każda
krotka to jedna encja w zbiorze encji.
www.wkuwanko.pl
3
Modele logiczne baz danych
Związek między zbiorami encji reprezentuje relacja (tabela), której schemat składa się z atrybutów
kluczy do każdego zbioru encji.
Model sieciowy
Cechy:
struktura danych przypomina graf
wierzchołki grafu – typy obiektów
łuki w grafie – wiązania między typami
opis obiektu zbudowany z pól zawierających dane opisujące obiekt
reprezentacja wiązań (wskaźniki): odesłanie bezpośrednie, odesłanie inwersyjne, wiązania codasylowe
Sieciowy model danych jest w pewnym uproszczeniu reprezentacją diagramów związków encji, w
którym wszystkie związki muszą być binarne oraz jednoznaczne co pozwala na tworzenie stosunkowo
prostego grafu.
Binarne tzn każdy związek jest między dwoma rekordami.
Jednoznaczne tzn związki są w jedną stronę, informacja przechodzi w jednym kierunku.
W modelu sieciowym zamiast o zbiorach encji mówi się o typach rekordów logicznych. Pojęcie krotki z
modelu relacyjnego zastąpiono rekordem logicznym, a zamiast schematu relacji mamy format rekordu
logicznego. Podstawową różnicą między modelem relacyjnym a sieciowym jest to, że w tym drugim
istnieją wskaźniki.
Związki binarne nazywamy powiązaniami (links). Do reprezentowania rekordów czyli sieci służy graf,
który jest uproszczonym diagramem związków encji.
Wierzchołki odpowiadają typom rekordów, krawędzie reprezentują powiązania. Wierzchołki i
krawędzie są oznaczane nazwami odpowiadającymi typom powiązań.
Zatem model ten ma bardziej naturalną reprezejtacje rzeczywistości, ale za to jest trudniejszy w
implementacji. Manipulowanie
na
takiej bazie
jest
bardziej skomplikowane, gdyż podczas
poszukiwania informacji trzeba „chodzić” po rekordach, a to może doprowadzić do zapętlenia.
Modele hierarchiczne
Hierarchia jest to pewne uporządkowanie przypominające drzewo. Jeżeli przyjmiemy węzeł głównykorzeń to będziemy mieli jego następniki, które będą się rozgałęziać aż dojdziemy do liści (rozwidlenia
nie muszą być binarne). Wszystkie powiązania wyznaczają kierunek od poprzednika do następnika.
Sprawia to, że nawigacja po takiej bazie jest stosunkowo prosta.
Za pomocą modelu hierarchicznego można przedstawić każdy diagram związków encji, który
reprezentowany jest tu przez zbiory drzew, czyli las.
www.wkuwanko.pl
4
Modele logiczne baz danych
KORZEŃ
LIŚCIE
Drzewo składa się z dwóch elementów: łuków i węzłów. Łuki reprezentują związki typy ojciecsyn, węzły natomiast są typami opisywanych obiektów. Drzewo ma uporządkowaną strukture tj. na
każdym poziomie kolejność węzłów jest określona.
Terminologia jest podobna jak w modelu sieciowym bo i są to właściwie bazy sieciowe, które
mają specyficzne grafy.
Istnieją tu pewne ograniczenia:
nie ma związków n-m
związki realizowane są jako wskaźniki
tylko jeden rodzaj związku między dwoma typami obiektów
dodawanie związków wymusz tworzenie z dodatkowych drzew hierarchii lub odsyłaczy do rekordów
oryginału.
www.wkuwanko.pl
5
Download