Bazy Danych – pojęcia podstawowe

Transkrypt

Bazy Danych – pojęcia podstawowe
10
Bazy danych
Bazy Danych – pojęcia podstawowe
Bazy danych
Przegląd zagadnień
Czym jest baza danych
Najwazniejsze cechy bazy danych
Systemy Zarzadzania Bazami Danych
Modele baz danych
Podsumowanie
Laboratorium
11
12
Bazy danych
Czym jest baza danych
Trwalosc bazy danych
Ograniczonosc bazy danych
Dobra organizacja bazy danych
Gdzie i w jakim celu stosuje sie bazy danych
Na pewno pojęcie bazy danych nie jest dla Ciebie nowe. Pewnie
kaŜdy korzystał teŜ z jakiejś bazy danych. Czy jednak zastanawiałeś się, co to
jest baza danych? Od kiedy ludzie posługują się bazami danych? Właśnie na te
i inne podstawowe pytania dotyczące pojęcia baz danych spróbujemy
odpowiedzieć w tym module
Zastanów się, co rozumiesz pod pojęciem bazy danych, co to takiego? Zapisz
swoje określenie, a następnie porównaj z naszym.
Bazy danych
13
Bazą danych (ang. database) będziemy nazywać trwały, zamknięty i dobrze
zorganizowany magazyn danych
Tak więc baza danych charakteryzuje się trzema waŜnymi cechami: trwałością,
ograniczonością (zamkniętością) i dobrą organizacją (co dla kogo jest dobre,
jest rzeczą dyskusyjną - postaramy się jednak sprecyzować, co dla nas będzie
oznaczać dobra organizacja magazynu).
Trwałość bazy danych
Trwałość oznacza, Ŝe dane zapisane w bazie danych są w niej zapisane
w sposób nieulotny. Nie moŜna więc zbudować bazy danych w pamięci
operacyjnej komputera, gdyŜ po dołączeniu zasilania dane w niej zapisane są
tracone. Na trwały magazyn danych dobrze natomiast nadaje się kamień (zapisy
dokonane w kamieniu przetrwały tysiące lat), papier (ten nie jest juŜ tak trwały)
czy dyski magnetyczne lub inne nośniki magnetooptyczne. Trwałość danych
zapisanych w bazie danych jest bardzo waŜnym postulatem. Wszystkie
współczesne systemy baz danych muszą go spełniać.
Ograniczoność bazy danych
Ograniczoność oznacza, Ŝe w bazie danych nie moŜna zapisać zupełnie
dowolnych danych. Baza oparta jest na pewnym modelu rzeczywistości
(modelu danych). Modele te mogą być bardzo róŜne i niektóre z nich pokrótce
omówimy w dalszej części. Model danych definiowany jest przez projektanta
bazy danych. Określa on, w jaki sposób dane występujące w rzeczywistości
(np. dane adresowe studentów) będą reprezentowane w bazie. Przyjęty model
ogranicza więc (determinuje) dane, które moŜemy trwale przechowywać w
bazie.
Dobra organizacja bazy danych
Aby zbiór danych moŜna było uwaŜać za bazę danych, musi on być
odpowiednio zorganizowany. Organizacja ta musi zapewniać moŜliwość nie
tylko sprawnego umieszczania danych w bazie, ale równieŜ moŜliwość
odszukiwania i odczytywania danych juŜ w niej zapisanych. Jeśli więc
znalezienie danych zapisanych w magazynie wymaga od nas miesiąca
przeglądania zapisanych danych, to taki magazyn nie moŜe być uznany za bazę
danych.
Baza danych to oczywiście kaŜdy magazyn danych spełniający powyŜsze
warunki. Ludzkość dostrzegła potrzebę tworzenia baz danych juŜ bardzo
dawno. J. Diamond w swojej ksiąŜce "Guns, Germs and Steel: The Fastest of
Human Societies" twierdzi, Ŝe bazy danych istniały od czasów, kiedy
cywilizacja umeryjska i egipska zaczęły korzystać z pisma klinowego
i hieroglifów do zapisu informacji w formie trwałej i moŜliwej do odczytania na
kaŜde Ŝądanie. Stosowane w tamtych czasach nośniki danych były mało
wygodne. Nasza cywilizacja przez całe wieki budowała swoje bazy danych
wykorzystując jako trwały nośnik danych papier. Bazy "papierowe" mają
jednak bardzo wiele wad takich jak duŜe rozmiary magazynu, trudności w
wyszukiwaniu danych, brak wielodostępu itd. Do budowy i obsługi baz danych
nadają się natomiast znakomicie maszyny cyfrowe. Dzisiaj mówiąc baza
danych mamy w zasadzie na myśli komputerowe bazy danych. W dalszej części
naszych wykładów pod pojęciem bazy danych będziemy więc rozumieli bazę
zorganizowaną i zarządzaną z wykorzystaniem komputera.
14
Bazy danych
Gdzie i w jakim celu stosuje się bazy danych
Bazy danych spotykamy właściwie na kaŜdym kroku. KaŜdy na pewno
korzystał z bazy papierowej takiej jak encyklopedia, ksiąŜka telefoniczna czy
kartoteka w bibliotece. Bazy danych są teŜ powszechne w świecie informatyki.
Większość systemów informatycznych współpracuje z bazami danych, gdyŜ
muszą one przechowywać dane. Są aplikacje, których głównym zadaniem jest
przechowywanie, zarządzanie i udostępnianie danych. Potocznie są one
nazywane bazami danych lub, dla podkreślenia faktu istnienia odpowiednich
dodatków ułatwiających pracę, aplikacjami bazodanowymi. NaleŜy jednak mieć
świadomość, Ŝe znakomita większość aplikacji, to aplikacje które współpracują
z bazami danych mniej lub bardziej skomplikowanymi
Bazy danych
15
NajwaŜniejsze cechy bazy danych
Zgodnosc z rzeczywistoscia
Ilustracja fragmentu rzeczywistosci
Kontrola replikacji danych
Spójny model danych
Wspólbiezny dostep do danych
Bezpieczenstwo danych
Zastanowimy się teraz nad najwaŜniejszymi cechami bazy danych,
które powinna ona spełniać, aby mogła sprostać stawianym przed nią dzisiaj
wymaganiom.
Proponujemy, abyś przyjrzał się dowolnej bazie danych, z którą się spotkałeś,
przeanalizował jej cechy (te które ma i które Twoim zdaniem powinna
mieć) i wypisał je. Następnie sprawdź, ile z wypisanych przez Ciebie cech
pokrywa się uznanymi przez nas za najwaŜniejsze.
16
Bazy danych
Zgodność z rzeczywistością
Postulat zgodności danych zapisanych w bazie z rzeczywistością jest
jednym z waŜniejszych postulatów stawianych bazom danych. Na przykład,
jeśli baza opisuje dane osobowe pracowników, takie jak ich imię, nazwisko,
telefon, adres zamieszkania, stanowisko itd., to postulat zgodności
z rzeczywistością oznacza, Ŝe w chwili gdy pracownik zmienia stanowisko
pracy (a tym samym równieŜ telefon), to równieŜ w bazie danych dokonywane
są odpowiednie zmiany danych.
Postulat zgodności z rzeczywistością oznacza więc, Ŝe dane zgromadzone
w bazie są danymi prawdziwymi, odpowiadającymi faktycznemu stanowi
świata, którego dotyczą. Na pewno kaŜdy z nas spotkał się z bazą, która nie
spełniała tego postulatu i przechowywała dane dawne juŜ nie aktualne.
Z takimi bazami często spotykam się dzisiaj zaglądając do oferty sklepów i firm
internetowych. Niezwykle rzadko zdarza mi się, aby dane podawane w bazach
udostępnianych przez te podmioty były prawdziwe. Najczęściej nie zgadzają się
ani ceny towarów ani ich dostępność w magazynie.
Powoduje to nie tylko stratę mojego czasu (bo i tak trzeba zadzwonić do
"Ŝywego człowieka"), ale równieŜ utratę zaufania do firmy, która udostępnia
bazę z danymi niezgodnymi z rzeczywistością.
Spełnienie postulatu zgodności z rzeczywistością nie jest łatwe. Trudności nie
leŜą w zasadzie po stronie technicznej, ale po stronie ludzkiej. Nie moŜna
bowiem (jak na razie) całkowicie zautomatyzować procesów biznesowych i w
kaŜdym z nich niezbędnym ogniwem jest człowiek. Aby zapewnić zgodność
danych przechowywanych w bazie z danymi rzeczywistymi, trzeba opracować
i stosować w firmie odpowiednie procedury.
Na przykład w wypadku zmiany stanowiska przez pracownika, dział kadr
mógłby (obowiązkowo) przesyłać odpowiednie zgłoszenie do operatora bazy
(albo wprowadzać samodzielnie) z informacją o zaistniałych zmianach. Sposób
przesyłania takiego zgłoszenia, jego zawartość, określenie odpowiedzialności
itd. powinien być właśnie określony w takiej procedurze.
Problem aktualności danych w bazie jest jednym z trudniejszych problemów do
rozwiązania, szczególnie kiedy w przedsiębiorstwie działa wiele róŜnych
systemów i baz danych. Dlatego teŜ obserwuje się dzisiaj silną tendencję do
integracji róŜnych systemów w jeden spójny system, który potrafiłby
automatycznie wymieniać dane między swymi modułami (częściami).
Rozwiązania tego typu noszą nazwę rozwiązań EAI (ang. Enterprise
Architecture Integration) i są oferowane i rozwijane przez wiodących
dostawców systemów bazodanowych.
Ilustracja fragmentu rzeczywistości
Projektując bazę danych naleŜy pamiętać, Ŝe stanowi ona pewien
model otaczającego nas świata. Aby baza spełniała swoje zadania, musi być
ilustracją kompletnego i dobrze zdefiniowanego fragmentu rzeczywistości.
MoŜna oczywiście zbudować działającą bazę danych, która będzie pozwalała
na poprawne wprowadzanie, usuwanie i modyfikację danych, ale która nie
będzie związana ze światem rzeczywistym. Przydatność takiej bazy stoi
oczywiście pod znakiem zapytania.
Aby spełnić ten postulat, naleŜy prawidłowo zdefiniować dziedzinę
problemową, która będzie modelowana za pomocą bazy oraz wykonać
Bazy danych
17
odpowiadający tej rzeczywistość model logiczny bazy. Określaniem wymagań
i budową modelu logicznego bazy danych będziemy się zajmować w module 2
Kontrola replikacji danych
Replikacja danych oznacza reprezentowanie w bazie tego samego faktu
w wielu jej miejscach lub w róŜnych formach. Na przykład baza danych
zawierająca informacje o dostawach towarów moŜe przechowywać nazwę
i adres dostawcy w specjalnej liście dostawców współpracujących z naszą firmą
oraz te same dane w wykazie zamówień. Taka sytuacja jest zazwyczaj
niepoŜądana.
MoŜe ona prowadzić:
• do niepotrzebnego zwiększenia miejsca zajmowanego przez bazę,
mocy
obliczeniowych
• do
niepotrzebnego
angaŜowania
w przeprowadzanie operacji w wielu miejscach (np. zmiana adresu
dostawcy będzie musiała być wykonana i na liście dostawcy i przy
kaŜdym zamówieniu),
• do powstania błędów i niezgodności danych gromadzonych w bazie
z danymi rzeczywistymi (np. zapomnimy o zmianie adresu dostawcy
przy zamówieniach z lipca).
Więcej miejsca temu problemowi oraz sposobowi radzenia sobie z nim
poświęcimy w module 2 poświęconym normalizacji bazy danych.
Czasem jednak zachodzi potrzeba replikacji danych. MoŜe ona wynikać ze
względów wydajnościowych lub ze względów bezpieczeństwa. Trzeba jednak
zawsze pamiętać, Ŝe jeśli decydujemy się na zastosowanie (dopuszczenie)
replikacji, to zawsze naleŜy poświęcić jej szczególną uwagę, aby pozostawała
pod kontrolą.
Spójny model danych
Baza danych powinna być zbudowana na podstawie spójnego modelu.
Spójny model danych oznacza, Ŝe fragment rzeczywistości, którego dotyczy
baza został zamodelowany w jednym z moŜliwych modeli oraz Ŝe dane
i pojęcia (np. pojęcie: faktura) reprezentowane w bazie będą ze sobą połączone
tworząc jedną, spójną logicznie całość.
Spójny model naleŜy zapewnić na etapie projektowania logicznego bazy, a jego
wyegzekwowanie w czasie eksploatacji bazy jest moŜliwe dzięki narzuceniu na
bazę odpowiednich warunków i więzów (np. związków, o których więcej
w module 2
WspółbieŜny dostęp do danych
MoŜna sobie oczywiście wyobrazić bazę (a nawet znaleźć takie
działające bazy), która będzie umoŜliwiać dostęp w danej chwili tylko jednemu
uŜytkownikowi. Taka cecha nie powinna nikogo z nas dziwić, gdyŜ wiele baz
papierowych, z których korzystamy działa w ten właśnie sposób.
Nie jest to jednak wygodne, w szczególności jeśli baza ma słuŜyć wielu
uŜytkownikom. Problem ten zauwaŜono juŜ dawno i radzono sobie z nim
powielając zbiory danych. Na przykład ksiąŜka telefoniczna jest drukowana
w wielu tysiącach egzemplarzy, dzięki czemu z danych w niej zawartych moŜe
jednocześnie korzystać wielu uŜytkowników. Nikogo jednak nie trzeba
przekonywać, jak wiele wad ma to rozwiązanie.
18
Bazy danych
Systemy komputerowe pozwalają na dostęp do danych wielu uŜytkownikom
jednocześnie. Oczywiście udostępnienie danych wielu osobom na raz stwarza
dodatkowe problemy związane z zarządzaniem dostępem do tych danych
i wymaga odpowiedniego zaprojektowania i organizacji bazy danych.
Bezpieczeństwo danych
Bazy danych są dzisiaj obecne w bardzo wielu miejscach
i instytucjach, wspomagają nasze Ŝycie codzienne i biorą udział w licznych
procesach biznesowych. Są w nich gromadzone informacje finansowe,
księgowe, dane osobowe, transakcje bankowe itp. Z oczywistych więc
powodów wymagają one ochrony. Dobra baza danych musi zapewniać
odpowiednie mechanizmy identyfikacji, uwierzytelnienia, autoryzacji,
poufności, integralności i dostępności.
Więcej na temat bezpieczeństwa systemów bazodanowych znajdziesz
w module 11.
Bazy danych
Systemy Zarządzania Bazami Danych
Rodzaje, klasyfikacja i przyklady SZBD
Kryteria doboru SZBD
Uzytkownicy baz danych i ich rola w SZBD
19
20
Bazy danych
Rodzaje, klasyfikacja i przykłady SZBD
Sprostanie wymaganiom stawianym dzisiaj bazom danych nie jest
łatwe. Dlatego budowane są złoŜone systemy zawierające zbiór gotowych
narzędzi zapewniających odpowiedni dostęp, manipulację i aktualizację do
danych gromadzonych w systemach komputerowych. Narzędzia te to Systemy
Zarządzania Bazą Danych - w skrócie SZBD (ang. Database Management
Systems - DBMS).
Do najwaŜniejszych cech charakteryzujących SZBD moŜemy zaliczyć:
• operowanie na duŜych i bardzo duŜych zbiorach danych,
• zarządzanie złoŜonymi strukturami,
• działanie w długim cyklu Ŝycia.
Schemat SZBD wraz z otaczającym go środowiskiem pokazuje poniŜszy
rysunek.
Rys 1.1 System Zarządzania Bazami Danych
SZBD składa się z:
• managera bazy danych (ang. DB manager) - jego rola polega na
zarządzaniu obiektami bazy danych,
• procesora zapytań (ang. processing query) - jego rola polega na
przetwarzaniu zapytań (poleceń) kierowanych do bazy danych,
• kompilatora definicji schematu (ang. pattern compiler) - jego rola
polega na przetwarzaniu definicji obiektów znajdujących się w bazie
na postać zrozumiałą dla managera bazy.
Jak widać na rys. 1.1, SZBD komunikuje się jednej strony z managerem plików
(ang. file manager), a z drugiej z warstwą wyŜszego poziomu. Manager plików
jest odpowiedzialny za obsługę fizycznych nośników danych, zna i rozumie
sposób organizacji tych nośników (systemu plików).
W warstwie wyŜszego poziomu mogą natomiast znajdować się aplikacje
uŜytkownika (ang. application), zapytania formułowane przez uŜytkownika
(ang. user query), narzędzia do definiowania schematu bazy danych (ang.
pattern description) itp.
Na rynku dostępnych jest wiele Systemów Zarządzania Bazami Danych
dostarczanych przez róŜnych producentów. Do najwaŜniejszych naleŜą:
Bazy danych
21
Oracle,
MS SQL Server,
DB2,
Sybase,
Informix,
Adabase,
ObjectStore,
MS Access
oraz wiele innych.
Kryteria doboru SZBD
Wybór odpowiedniego systemu SZBD nie jest łatwy. Przed podjęciem
decyzji warto jest rozwaŜyć wiele aspektów związanych zarówno z tym co baza
danych ma robić, jak i innymi uwarunkowaniami po stronie dostawcy systemu
i jego uŜytkownika.
Do najwaŜniejszych kryteriów doboru SZBD naleŜą:
•
Wydajność (ang. performance)
Wydajność określa, jak szybko system będzie reagował na wydawane mu
polecenia, ile jednocześnie będzie potrafił obsłuŜyć zleceń czy uŜytkowników.
•
Skalowalność (ang. scalability)
Skalowalność określa, jak zmieni się działanie systemu (jego wydajność) jeśli
wzrośnie liczba uŜytkowników lub danych. Cecha ta określa równieŜ
moŜliwość adaptacji systemu do nowych warunków obciąŜenia i moŜliwość
jego rozbudowy w celu sprostania nowym, większym obciąŜeniom.
•
Funkcjonalność (ang. functionality)
Funkcjonalność określa, jakie funkcje są dostępne w systemie. Warto zwrócić
uwagę zarówno na funkcje wykorzystywane przez uŜytkownika, jak
i administratora czy projektanta takiego systemu. Najczęściej brak
odpowiednich
funkcji
szczególnie
potrzebnych
projektantom
i administratorom pociąga za sobą konieczność dokupienia dodatkowych
narzędzi i zwiększa koszty systemu.
•
Zgodność ze standardami
Zgodność ze standardami oznacza spełnienie przez system pewnych zasad
i reguł uznanych za powszechne, czyli standardów (np. standard języka,
standard protokołu, itp.). Spełnienie powszechnie stosowanych standardów
uniezaleŜnia nas od dostawcy systemu i pozwala na dokładanie do niego innych
elementów proponowanych przez róŜnych dostawców (oczywiście jeśli są
godne ze standardem).
•
Łatwość uŜycia (ang. usability)
Łatwość uŜycia jest waŜną cechą systemu. Zdarzają się systemy o bardzo
dobrych parametrach wydajnościowych lub duŜej niezawodności, które jednak
są tak trudne w obsłudze, Ŝe uŜytkownicy z nich rezygnują. Ocena tej cechy
zaleŜy od uŜytkownika systemu, jego przygotowania i doświadczenia. Jest więc
22
Bazy danych
cechą subiektywną i ten sam system przez róŜnych uŜytkowników moŜe być
zakwalifikowany jako łatwy lub trudny w uŜyciu.
•
Niezawodność (ang. reliability)
Niezawodność oznacza, jak często system przestaje działać. Oczywiście, im
większa niezawodność systemu, tym większe są jego koszty wytworzenia.
Trzeba więc wywaŜyć odpowiednią proporcję między niezawodnością systemu
a potrzebami uŜytkownika. Choć kaŜdy chciałby, aby jego system działał bez
błędnie (był niezawodny) w jak największym stopniu, to jednak często jesteśmy
gotowi zaakceptować przestój systemu trwający godzinę w zamian za
przystępną cenę.
•
Wspomaganie (ang. support)
Wspomaganie oznacza zapewnienie odpowiedniej pomocy przez dostawcę
systemu. Z całą pewnością jest to bardzo waŜna cecha systemu. Z pewnością
warto zapłacić wyŜszą cenę za produkt, którego producent zapewnia dobry
i stabilny serwis. Nie ma przecieŜ systemów niezawodnych w stu procentach
ani systemów, które nie kryją tajemnic o sposobie ich uŜytkowania.
•
Środowisko (ang. environment)
Środowisko określa, na jakim sprzęcie czy systemie operacyjnym będzie
działać nasz system.
•
Cena (ang. price)
Cena oznacza nie tylko koszt zakupu systemu, ale równieŜ wszystkie pozostałe
koszty związane z wdroŜeniem tego systemu oraz przewidywanymi kosztami
jego eksploatacji. Koszt zakupu jest często tylko elementem składowym
ogólnej ceny systemu.
UŜytkownicy baz danych i ich rola w systemie
Wśród najwaŜniejszych grup uŜytkowników systemów SZBD moŜemy
wyróŜnić następujące grupy:
Administrator systemu (ang. system administrator)
Zadaniem administratora systemu jest nadzór nad całym systemem. To on
definiuje bazy danych w systemie, zakłada uŜytkowników o charakterze
globalnym itp.
Administrator bazy danych (ang. database administrator)
Administrator bazy danych administruje jedynie bazą, którą ma pod swoją
opieką. Ma on uprawnienia do zakładania i administrowania obiektami bazy ale
tylko w obrębie danej bazy danych.
Programista aplikacji (ang. application programmer)
Rolą programisty jest pisanie kodu, który będzie wspomagał uŜytkowanie bazy
(np. procedur składowanych).
Bazy danych
23
Operator
Operator czuwa nad codzienną eksploatacją bazy. Czuwa nad wykonaniem
kopii bezpieczeństwa i wykonuje inne proste, codzienne czynności
admnistracyjne.
UŜytkownik (ang. user)
UŜytkownik to ktoś wykonujący czynności nie wchodzące w zakres
obowiązków pozostałych grup.
24
Bazy danych
Modele baz danych
Model hierarchiczny
Model relacyjny
Model obiektowy
Modele struktury logicznej bazy danych mogą być bardzo róŜne.
Modele te starają się odzwierciedlić rzeczywistość, której baza dotyczy oraz
mają zasadniczy wpływ na implementacje i działanie bazy. Dzisiaj
najpopularniejszym modelem stosowanym w SZBD jest model relacyjny. Obok
niego funkcjonują teŜ inne modele - starszy model hierarchiczny i zyskujący
sobie powoli popularność model obiektowy
Bazy danych
25
Model hierarchiczny
Model hierarchiczny przypomina odwrócone drzewo. Jeden
z elementów pełni role korzenia, a pozostałe tworzą gałęzie i liście. W modelu
tym występują związki między obiektami zwane związkami "ojciec-syn".
Związki takie charakteryzują się tym, Ŝe obiekt nadrzędny (ojciec) moŜe
pozostawać w związku z wieloma innymi obiektami podrzędnymi (synowie),
natomiast tylko z jednym obiektem nadrzędnym w stosunku do niego (jego
ojcem).
Rys. 1.2 Model hierarchiczny
Na rys. 1.2 przedstawiono przykład modelu hierarchicznego dla bazy
przechowującej informacje o wykładach, wykładowcach oraz studentach
uczęszczających na te wykłady.
Model hierarchiczny ma jednak wiele wad. Do najwaŜniejszych naleŜą:
• niemoŜność zapisania w bazie danych, które nie mają ojca (np.
wykładowcy, który w danym roku nie prowadzi wykładów),
• nadmiarowość danych (np. dane o przedmiocie są wpisane w bazie
dwa razy - w wykładach i przedmiotach),
• brak moŜliwości obsługi bardziej złoŜonych związków między
obiektami (np. związków "wiele do wiele").
Zaletą tego modelu jest łatwość (a co za tym idzie szybkość) dojścia do
szukanych danych (idziemy od korzenia wzdłuŜ gałęzi aŜ do celu), ale pod
warunkiem, Ŝe znamy strukturę tego modelu.
Model hierarchiczny stosowany jest dziś w systemach plików (struktura
katalogów ma strukturę drzewiastą) oraz w wielu popularnych aplikacjach (np.
MS Outlook, Lotus Notes).
Model relacyjny
W celu wyeliminowania wad modelu hierarchicznego opracowano na
początku lat siedemdziesiątych nowy model zwany modelem relacyjnym.
Podstawy teoretyczne dla modelu relacyjnego opracował dr E. Codd pracując
w firmie IBM i opublikował w roku 1970 w ksiąŜce pod tytułem "Relacyjny
model logiczny dla duŜych banków danych". Model ten oparty jest na silnych
podstawach matematycznych głownie teorii mnogości.
Idea modelu relacyjnego bazuje na pojęciu relacji - czyli tabeli. Wszystkie
dane w tym modelu są przechowywane w tabelach (relacjach). Tabele te mogą
26
Bazy danych
być ze sobą powiązane tak zwanymi związkami. Rysunek rys. 1.3 przedstawia
przykład modelu relacyjnego. Zasadniczą wadą modeli relacyjnych jest ich
znaczna rozbieŜność w stosunku do świata rzeczywistego, który mają
modelować. Pozwalają za to na efektywne przechowywanie danych, obniŜają
redundancję danych (powtarzalność) i pozwalają na łatwe wyszukiwanie
danych.
Rys. 1.3 Model relacyjny
Bazy danych oparte na modelu relacyjnym są obecnie najbardziej
rozpowszechnionym rodzajem baz danych.
Model obiektowy
Obecnie technologią, która pozwala najlepiej odwzorowywać świat rzeczywisty
w projektowaniu oprogramowania, jest technologia obiektowa. O jej sukcesie
świadczy popularność takich języków programowania jak C++ czy Java.
Technologia obiektowa jest obecnie dominującym narzędziem przy tworzeniu
duŜych i złoŜonych projektów.
Obiektowość nie ogranicza się jedynie do nowego sposobu organizacji kodu
w językach programowania. Jest ona pewną ideologią w informatyce, której
cechą jest chęć dopasowania modeli pojęciowych stosowanych w informatyce
do modelu świata postrzeganego przez człowieka. Jest to kolejny krok
w ewolucji kontaktów człowiek-maszyna (a ściślej programista-komputer).
Śledząc, nawet pobieŜnie, rozwój języków programowania widzimy, Ŝe
ewolucja ta przebiega ciągle w stronę ułatwiania Ŝycia człowiekowi. Wynika to
z rozwoju technologii i związanego z tym zwiększania złoŜoności
modelowanych procesów. Bez wprowadzania nowych metod, wyŜszych
poziomów abstrakcji w projektowaniu i programowaniu , człowiek szybko staje
się najsłabszym ogniwem w procesie tworzenia oprogramowania.
Większość producentów systemów relacyjnych baz danych wyposaŜa obecnie
swoje produkty w rozszerzenia obiektowe. Są one implementowane w róŜnym
stopniu i zakresie. Obejmują takie funkcje jak obsługa abstrakcyjnych typów
danych, klas, przechowywanie obiektów, wyzwalacze, procedury składowane.
Podstawą takiego systemu jest najczęściej ten sam 'silniczek' jaki był stosowany
w wersji relacyjnej - dobry i sprawdzony, ale pisany z myślą o modelu
Bazy danych
27
relacyjnym a nie obiektowym. Systemy tego typu nie spełniają w pełni
paradygmatu obiektowości, mogą być traktowane raczej jako rozszerzenie
systemów relacyjnych o pewne atrakcyjne cechy umoŜliwiające efektywne
tworzenie aplikacji, a nie jako pełnowartościowe systemy obiektowe.
Systemy w pełni obiektowe zrywają natomiast z załoŜeniami modelu
relacyjnego i opierają się w całości na technologii obiektowej. Zapewniają
tradycyjną funkcjonalność bazy danych (trwałość, integralność danych, obsługę
wielodostępu, odtwarzanie danych) przy zastosowaniu obiektowego modelu
danych. Wiele tego typu systemów obsługuje równieŜ bardziej zaawansowane
funkcje jak np. obsługa rozproszonych baz danych.
Systemy obiektowych baz danych są najlepiej dopasowane do potrzeb
zorientowanych obiektowo aplikacji przetwarzających duŜe ilości danych oraz
obsługujących wielu uŜytkowników. Istniejące rozwiązania obejmują róŜne
zakresy funkcjonalności - od prostych systemów przeznaczonych do obsługi
małej liczby uŜytkowników, dostosowanych do jednego języka programowania
aŜ do bardzo zaawansowanych rozwiązań w których wydajny serwer
obiektowej bazy danych jest sercem całego systemu serwera aplikacji.
NaleŜy jednak zwrócić uwagę, Ŝe systemy obiektowe ciągle stanowią przedmiot
badań i nie osiągnęły jeszcze pełnej dojrzałości.
28
Bazy danych
Podsumowanie
Czym jest baza danych
Najwazniejsze cechy bazy danych
Systemy Zarzadzania Bazami Danych
Modele baz danych
Współczesne systemy informatyczne wykorzystują bazy danych od
małych baz budowanych specjalnie na ich potrzeby aŜ po duŜe i bardzo duŜe
uniwersalne bazy i systemy baz danych. W zasadzie trudno byłoby znaleźć
program komputerowy, który nie korzystał by z baz danych.
Nie kaŜdą strukturę przechowującą dane moŜemy jednak uznać za bazę danych.
Baza danych musi charakteryzować się odpowiednimi cechami. PoniewaŜ
dzisiaj przed bazami danych stawia się coraz większe wymagania związane
z wydajnością, bezpieczeństwem itd. Wymaganiom tym mogą sprostać dopiero
Systemy Zarządzania Bazami Danych, które są wyposaŜone w odpowiednie
mechanizmy zapewniające bezpieczeństwo, spójność, wydajność i łatwość
obsługi.
Modele baz danych są róŜne. Do najpopularniejszych naleŜą model
hierarchiczny, relacyjny i obiektowy. KaŜdy z nich nadaje się do innych celów,
a najbardziej rozpowszechnionym modelem w bazach spotykanych
w rozwiązaniach przemysłowych jest model relacyjnym. Nasz wykład
poświęcony jest właśnie temu modelowi.
Bazy danych
29
Laboratorium
W tym ćwiczeniu studenci powinni stworzyć opis słowny swojego systemu
typu Biblioteka.
30
Bazy danych
Krok 1. Podział na zespoły.
Dzielimy się na zespoły, maksimum 3 osobowe. Dalsze ćwiczenia będą
wykonywane z ustalonych zespołach. Nic nie stoi na przeszkodzie
wykonywania wszystkich ćwiczeń indywidualnie
Krok 2. Dyskusja
W zespołach omawiamy wygląd i działanie systemu typu Biblioteka.
PoniewaŜ zapewne kaŜdy z członków zespołu ma trochę inną wizję naleŜy
uzgodnić wspólne stanowisko.
Krok 3. Dokumentacja
NaleŜy stworzyć dokument w MS Word zawierający:
•
dane identyfikujące treść i przeznaczenie dokumentu
•
dane identyfikacyjne autorów
•
jak najbardziej szczegółowy opis słowny systemu:
o
z jakich komponentów system się składa
o
jakie są powiązania pomiędzy nimi
o
jak system funkcjonuje
o
jakie są interakcje systemu z otoczeniem
o
jacy są uŜytkownicy systemu
Krok 4. Zapisanie dokumentów
NaleŜy zapisać dokumenty we wspólnej bibliotece serwera SharePoint
lub odpowiednika. Sposób nazewnictwa dokumentów powinien być jasno
sprecyzowany.
Na początku kolejnych zajęć prowadzący komentuje dokumenty poszczególnych
zespołów oraz przedstawia własną (modelową) wizję systemu Biblioteka

Podobne dokumenty