10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 ›...

21
10 Bazy danych Bazy Danych – pojęcia podstawowe

Transcript of 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 ›...

Page 1: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

10 Bazy danych

Bazy Danych – pojęcia podstawowe

Page 2: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

Bazy danych 11

Przegląd zagadnie ń

Czym jest baza danych

Najwazniejsze cechy bazy danych

Systemy Zarzadzania Bazami Danych

Modele baz danych

Podsumowanie

Laboratorium

Page 3: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

12 Bazy danych

Czym jest baza 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.

Trwalosc bazy danych

Ograniczonosc bazy danych

Dobra organizacja bazy danych

Gdzie i w jakim celu stosuje sie bazy danych

Page 4: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

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.

Page 5: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

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

Page 6: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

Bazy danych 15

NajwaŜniejsze cechy bazy 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.

Zgodnosc z rzeczywistoscia

Ilustracja fragmentu rzeczywistosci

Kontrola replikacji danych

Spójny model danych

Wspólbiezny dostep do danych

Bezpieczenstwo danych

Page 7: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

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ć

Page 8: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

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ę, • do niepotrzebnego angaŜowania mocy obliczeniowych

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.

Page 9: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

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.

Page 10: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

Bazy danych 19

Systemy Zarz ądzania Bazami Danych

Rodzaje, klasyfikacja i przyklady SZBD

Kryteria doboru SZBD

Uzytkownicy baz danych i ich rola w SZBD

Page 11: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

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Ŝą:

Page 12: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

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

Page 13: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

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).

Page 14: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

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.

Page 15: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

24 Bazy danych

Modele baz danych

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

Model hierarchiczny

Model relacyjny

Model obiektowy

Page 16: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

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ą

Page 17: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

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

Page 18: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

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.

Page 19: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

28 Bazy danych

Podsumowanie

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.

Czym jest baza danych

Najwazniejsze cechy bazy danych

Systemy Zarzadzania Bazami Danych

Modele baz danych

Page 20: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

Bazy danych 29

Laboratorium

W tym ćwiczeniu studenci powinni stworzyć opis słowny swojego systemu typu Biblioteka.

Page 21: 10 Bazy danych - PLD Linuxcarme.pld-linux.org › ~evil › varia › informatyka › semestr_3 › db › ... · 2008-11-19 · Bezpieczenstwo danych . 16 Bazy danych ... i stosowa

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