MODELE BAZ DANYCH
Trzy najważniejsze modele danych używane w większości systemów baz danych to modele: relacyjny, sieciowy i hierarchiczny.
Relacyjny model baz danych
-bazuje na matematycznym pojęciu relacji,
-dane i relacje reprezentowane są w postaci tabel, z których każda zawiera pewną liczbę kolumn(atrybutów) o unikalnych danych (wiersz-rekord),
-użytkownicy mają postrzegać baze danych jako zbiór tabel.
Nazwa
Atrybut_1 |
Atrybut_2 |
Atrybut_3 |
... |
Atrybut_n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Model sieciowy
-dane reprezentowane jako kolekcje rekordów, a związki między nimi są przedstawione w sieci zbiorów,
-związki są bezpośrednio modelowane przez zbiory,
-rekordy są zorganizowane w postaci uogólnionych struktur grafowych, w których rekordy występują jako węzły, a zbiory jako krawędzie grafu.
Modele hierarchiczne
-ograniczona wersja modelu sieciowego,
-dane - kolekcje rekordów, związki - zbiory,
-graf jest drzewem, w którym rekordy są weżłami(odcinkami), azbiory krawędziami.
Architekrtura ansi-sparc:
poziom zewnętrzny - sposób widzenia bazy danych przez użytkownika, opisuje tą część bazy danych, do której użytkownik ma dostęp,
poziom pojęciowy - opisuje zawartość bazy danych, mówi o tym jakie dane są w bazie danych,
poziom wewnętrzny - fizyczna reprezentacja danych w systemie komputerowym, opisuje sposób zapisu danych w pamięci komputera.
niezależność logiczna danych,
możliwość zmiany poziomu pojęciowego (dodawanie i usuwanie encji oraz ich atrybutów),
nie wymaga zmian na poziomie zewnętrznym.
System bazy danych to obramowanie, które pozwala użytkownikowi na definiowanie, tworzenie i aktualizację bazy danych z jednoczesnym zapewnieniem kontrolowanego dostępu do bazy danych. (DBMS) - system zarządzania bazą danych
Powody pojawienia się baz danych:
Format danych został włączony do pliku z danymi.
Bazy danych pozwoliły na budowę systemu kontrolowanego dostępu do danych. System zarządzania bazą danych zawiera zawsze dwa języki:
DDL - język definiowania danych;
DML - język do manipulowania danymi.
Na czym polega:
sys. zabezpieczeń uniemożliwiający dostęp;
sys. do kontroli spójności danych;
sys. umożliwiający współdziałanie danych;
sys. umożliwiający jednoczesną pracę kilku użytkowników na danych pochodzących z tego samego rekordu;
sys. baz danych mają wbudowane mechanizmy perspektyw (użytkownik uzyskuje dane, do których ma dostęp)
Zwiększenie wydajności pracy programistów.
Wady:
Złożoność
Rozmiary. System zarządzania bazą danych jako narzędzie do tworzenia i eksploatowania bazy danych jest zawsze bardziej skomplikowany i większy niż dedykowane programy do gromadzenia i przetwarzania bazy danych. Dedykowane programy mogą być optymalizowane ze względu na:
szybkość działania lub rozmiary i mogą ponadto być łatwo integrowane z innymi modułami oprogramowania (np. systemy pomiarowe).
Funkcje osób związanych z bazą danych:
administrator bazy danych - jego podstawowym zadaniem może być projektowanie struktury bazy danych, nadzór nad jej eksploatacją, sporządzanie kopii bezpieczeństwa, odtwarzanie stanu systemu sprzed awarii, przydzielanie uprawnień użytkownikom.
programiści aplikacji - tworzą praktycznie implementację pewnych perspektyw (tworzą, projektują pewne perspektywy).
tzn. użytkownicy naiwni - korzystają wyłącznie z informacji, które są pozyskiwane za pomocą mechanizmu perspektyw.
Systemy zarządzania bazami danych mają strukturę warstwową - zbudowane są z modułów rozmieszczonych na trzech poziomach.
Przesłanki stosowania:
wszyscy użytkownicy muszą mieć dostęp do tych samych danych.
perspektywa konkretnego użytkownika nie ulega zmianom przy modyfikacjach perspektyw innych użytkowników.
poszczególni użytkownicy nie mają żadnej wiedzy ani nie muszą jej mieć na temat fizycznej postaci baz danych.
administrator bazy danych powinien móc zmienić strukturę fizyczną bazy danych bez zakłócania perspektyw poszczególnych użytkowników.
możliwe jest wprowadzanie zmian do modelu logicznego bez konieczności zmian w poszczególnych perspektywach.
Encja - każde pojęcie, obiekt, które możemy nazwać i ma ono swój niezależny byt (np. encja typu student),
Krotki - atrybuty do rozróżniania typu encji,
Atrybut - wartość którą można wyrazić, liczbą lub wyrażeniem, które pozwala na rozróżnienie poszczególnych typów encji (np. atrybut człowieka będzie data ur, PESEL, imię i nazwisko),
Relacja(synonim encji) - poszczególne elementy danego typu encji,
Rekord - zbiór danych w poszczególnych kolumnach, dotyczy 1 obiektu.
Transakcje TM:
Monitor przetwarzania transakcji- program który steruje przepływem danych między klientami a serwerem. Musi on udostępniać niesprzeczne środowisko, służące w szczególności do przetwarzania transakcji online (OLTP-online transaction processing). Do zalet można zaliczyć trasowanie transakcji, zarządzanie transakcjami, równoważenie obciążenia, tunelowanie i zwiększanie niezawodności.
Architektury wielodostępowego DBMS:
Przetwarzanie zdalne:
-architektura tradycyjna lecz zanikająca,
-komputer centralny z wieloma terminalami (terminaj - jednostka do wyświetlania danych).
b) Serwer plików:
-do serwera plików przez sieć jest podłączonych wiele stacji roboczych,
-BD znajduje się na serwerze plików,
-DBMS: aplikacje zainstalowane są na każdej stacji roboczej.
Wady: duże natężenie ruchu w sieci, dla każdej stacji jest potrzebna pełna kopia DBMS, trudniejsze odzyskiwanie danych po awarii i trudniejsza kontrola integralności.
c) 2-warstwowa architektura klient-serwer:
-Klient jest warstwą pierwszą, zarządza interfejsem użytkownika (obsługuje aplikacje).
-Serwer jest warstwą drugą, przechowuje DB, DBMS.
ZALETY: wyższa wydajność systemu, redukcj kosztów sprzętu i komunikacji.
d) Architektura 3-warstwowa (architektura Ansi-Sparc).
-może być obsługiwana przez inną platformę (np. przeglądarkę internetową)
ZALETY: ocentralizowana konserwacja, łatwiejsza w modyfikacji, łatwa migracja do środowiska internetowego.
Klucze relacji:
Klucz kandydujący- taki który nie podzbioru w kluczu głównym dla danej relacji. Żaden z podzbiorów atrybutów klucza kandydującego nie ma takiej własności, że wskazuje pojedyncze krotki.
Klucz główny- jeden z kluczy głównych wybranych do identyfikacji krotek w ramach relacji (unikalnych krotek).
Klucz złożony- klucz na który składa się wiele atrybutów.
Klucz obcy- atrybut bądź zbiór atrybutów obrębie relacji, który odpowiada kluczowi kandydującemu innej relacji.
Nadklucz- atrybut lub zbiór atrybutów, który identyfikuje konkretną krotkę w relacji.
Pozostałe klucze- klucze kandydujące których nie wybrano na klucz główny.
NORMALIZACJA:
Proces normalizacji: jest to formalna def., która ma na celu aktualizowanie klucza głównego danej relacji i zależności funkcjonalne tej relacji.
Normalizację przechodzi się w szeregu kroków, osiągając kolejne postacie znormalizowane o specyficznych własnościach. W miarę postępu normalizacji format danych staje się coraz bardziej precyzyjny.
Postać nieznormalizowana: to tabela, która zawiera jedną lub więcej powtarzających się grup.
Cel normalizacji:
uniknięcie anomalii (są to możliwe źródła wad danych, które wynikają z dodawania, usuwania i modyfikacji danych. Pojawienie się anomalii wynika także ze sposobu zapisywania danych)
Redundancja danych- pojawienie się tych samych danych w różnych miejscach bazy danych.
Dekompozycja danych:
musimy odszukać komplet informacji o krotce wyjściowej korzystając z informacji zawartych w krotce wynikowej
dekompozycja oryginalnego ... - musi zachować informacje o zależnościach między atrybutami.
Zależność funkcjonalna: opisuje związki pomiędzy atrybutami danej relacji.
Przykładem zależności funkcjonalnej jest sytuacja, w której dla relacji R, której elementami są atrybuty A i B, mamy sytuację taką, że atrybut A zależy od atrybutu B w każdym przypadku, to możemy powiedzieć, że atrybut B jest funkcjonalnie zależny od atrybutu B.
R(A,B) ; A->B
A(pesel) ; B(nazwisko) ; pesel=>nazwisko
Zależność funkcjonalna obejmuje pojęcie atrybutu, który jest elementem określającym zawartość atrybutu wynikowego lub w miejsce tego jednego elementu może wystąpić grupa elementów. R(A,B,C) ; A,B=>C
Postaci normalne:
1NF
2NF
3NF
BCNF
4NF
5NF
1NF- postać, w której występują tylko informacje w postaci elementarnej na przecięciu wiersza i kolumny
Postępowanie przy normalizowaniu 1NF:
należy określić klucz główny relacji. Tym kluczem może być jeden lub więcej atrybutów.(klucz kandydujący)
należy zidentyfikować grupy powtórzeniowe, które występują jako wartości występujące w kluczu.
Należy usunąć powtarzające się grupy poprzez wprowadzenie odpowiednich danych w puste komórki w kolumnach i wierszach lub poprzez powtórzenie danych z kopią klucza.
Proces normalizacji rzadko daje w wyniku jedno rozwiązanie. Najczęściej proces normalizacji daje w wyniku wiele różnych schematów relacji z których jeden wybierany jest do budowy bazy danych. W uzasadnionych przypadkach dopuszcza się odstępstwa od postaci normalnych.
2NF- oparta jest na pojęciu pełnej zależności funkcjonalnej. Mogą w niej znajdywać się tylko te atrybuty, które są funkcjonalnie zależne.Pełna zależność funkcjonalna- ma miejsce wtedy jeśli atrybut B jest w pełni funkcjonalnie zależny od zbioru atrybutów A, ale nie jest funkcjonalnie zależny od żadnego z jego podzbiorów.
Zbiór identyfikujący relacji- to traki zbiór atrybutów relacji , który jednoznacznie identyfikuje wszystkie klucze(?) tej relacji, a żaden z jego podzbiorów nie ma tej własności.
W 2NF relacja jest:
także w 1NF
każdy atrybut nie wchodzący w skład klucza jest od niego funkcjonalnie zależny.
Tok postępowania przy normalizowaniu 2NF:
określić klucz główny dla relacji w 1NF
określić zależności funkcjonalne tej relacji
jeśli istniej zależność cząstkowa dla klucza głównego to te argumenty należy przenieść do nowo utworzonej relacji wraz z założonymi dla niej wartościami klucza głównego.
W przypadku występowania wielu kluczy kandydujących należy wybrać jeden z nich. Kryterium tego wyboru może być np.: liczba atrybutów wchodzących w skład klucza, tym samym należy wybierać klucze o najmniejszej ilości atrybutów.
Relacje(tabele) należy opatrywać nazwami, nazwy te powinny być adekwatne do zawartości tabeli.
3NF - jest oparta na przechodniej zależności funkcjonalnej( zależność, w której atrybut B jest funkcjonalnie zależny od atr. A , atrybut C jest funkcjonalnie zależny od atr. B, ale atrybut C nie zależy od B)
Relacja jest w 3NF wtedy jeśli jest w 1NF i 2NF oraz jeśli żaden atrybut nie wchodzący w skład klucza głównego nie jest funkcjonalnie zależny od klucza głównego.
Tok postępowania przy przejściu do 3NF:
należy określić klucz relacji będącej w 2NF
określić zależności funkcjonalne w tej relacji
jeśli występują zależności funkcjonalne przechodnie od klucza głównego to należy je usunąć przez przeniesienie ich do nowej relacji wraz z kopią ich klucza.
Postać normalna Boyce Codda (BCNF)
Oparta jest na zależnościach funkcjonalnych uwzględniających wszystkie klucze kandydujące danej relacji. Dla relacji, która ma tylko jeden klucz kandydujący 3NF i BCNF są równoważne. Relacja jest w postaci BCNF jeśli każdy klucz kandydujący wskazuje w sposób unikalny na ... wystąpienie danego elementu.
Pogwałcenie wymagań związanych może być sytuacja, w której w danej relacji występuje więcej niż jeden klucz złożony i taka sytuacja w której atrybuty kluczy się przekraczają.
Tok postępowania przy przejściu od 3NF do BCNF:
należy określić wszystkie klucze kandydujące w relacji
należy określić wszystkie zależności funkcjonalne w danej relacji. Jeśli w danej relacji występują zależności funkcjonalne, których atrybuty kluczowe nie są kluczami kandydującymi relacji to takie zależności funkcjonalne należy przenieść do nowej relacji wraz z kopią atrybutów kluczowych.
4NF - jest związana z pojęciem zależności wielowartościowych.(są to takie zależności pomiędzy atrybutami, w której dla każdej wartości zbioru atrybutów A mamy pewną grupę atrybutów B i jednocześnie mamy oddzielny zbiór atrybutów C , przy czym zbiór wartości atrybutów B i C są od siebie niezależne.)
Przejście do 4NF:
Relacja jest w 4NF jeśli jest w postaci BCNF i nie zawiera zależności wielowartościowej.
Przejście od relacji w postaci BCNF do 4NF polega na usunięciu zależności wielowartościowych poprzez przeniesienie atrybutów do nowej relacji wraz z kopią odpowiednich kluczy.
Projektowanie relacyjnej bazy danych
Zapoznanie się ze środowiskiem, w którym będzie funkcjonowała baza danych. Pod pojęciem środowiska rozumiemy przedsiębiorstwo i użytkowników systemu.
Należy opracować wykaz zadań, które mają być realizowane przez system. Dodatkowo należy sporządzić listę wymagań stawianych systemowi; lista taka pozwoli na określenie zbioru wymagań które mają zapewnić integralność danych. np. przyjmowanie zleceń klientów i archiwizacja tych zleceń dla celów księgowych i inwentarzowych.