SYSTEMY BAZY DANYCH, SYSTEMY ZARZĄDZANIA BAZĄ DANYCH I MODELE BAZ DANYCH CEL NAUCZANIA: 1Wykonywać obliczenia i opracowania graficzne z wykorzystaniem programów komputerowych Osiągnięcia: 1) Rozróżniać podstawowe pojęcia z baz danych: • baza danych, • system zarządzania bazą danych, • system bazy danych Baza danych • Baza danych jest to uporządkowany zbiór danych z pewnej dziedziny tematycznej, zorganizowany w sposób ułatwiający dostęp do danych i operowanie nimi wg określonych kryteriów. • Baza danych jest abstrakcyjnym, informatycznym odzwierciedleniem wybranego fragmentu rzeczywistości, zwanego mini światem. Bazą danych może być np. zbiór danych o uczniach i ich ocenach czy kartoteka pacjentów. • Baza danych – model świata rzeczywistego. Obiekty w opisywanej rzeczywistości są encjami, a charakteryzowane są przez atrybuty. • Baza danych – system, który przechowuje dane na nośniku elektronicznym, mający zdefiniowaną strukturę, format i reguły poprawności. Baza danych • Każda baza danych posiada – swoje źródło danych – swoich użytkowników – związki z reprezentowaną rzeczywistością • Projektanci baz danych definiują strukturę baz danych i przygotowują programy - aplikacje BD. • Baza danych musi być wypełniona danymi a następnie przetworzona. SYSTEM ZARZĄDZANIA BAZĄ DANYCH • SZBD - DBMS - Data Base Management System • SZBD jest oprogramowaniem ogólnego przeznaczenia ułatwiającym procesy definiowania, konstruowania i przetwarzania baz danych dla różnych aplikacji. • System zarządzania bazą danych to oprogramowanie zarządzające danymi w bazie i umożliwiające tworzenie i przetwarzanie danych. • Moduły SZBD – Moduł zarządzania transakcjami – Moduł zarządzania dostępem do danych Umożliwia on m.in. właściwą interpretację danych, wprowadzanie nowych danych, usuwania i modyfikowanie danych. Główne zadania SZBD • Sprawne wykonywanie zapytań w celu wyszukiwania informacji w bazie • Zapewnienie integralności danych – wyłącznie takie modyfikacje bazy, po których powiązania wszystkich rekordów są poprawne • Zabezpieczenie przed utratą danych – odporność na awarie systemu i sprzętu (np. automatyczne tworzenie kopii zapasowych) • Zapewnienie wielodostępu – dostęp do danych wielu użytkowników w sposób wykluczający kolizję • Ochrona danych – autoryzacja z podziałem na różne poziomy uprawnień użytkowników System bazy danych składa się z Bazy Danych i Systemu Zarządzania bazą danych Baza danych: DANE i SCHEMAT • Dane opisują cechy obiektu. • Schemat jest opisem struktury przechowywanych danych oraz powiązań wzajemnych między nimi. • Przykładowe struktura informacji dot. grup studenckich: 1) Studenci Tabela STUDENT (Nazwisko, NrIndeksu, Rok, Kierunek) - schemat Dane: Nowak, 18175, I, informatyka Kowalik, 33573, II, telekomunikacja 2) Prowadzone wykłady Tabela: WYKŁAD (Nazwa, Nr, Godziny, Prowadzący) Dane: Języki programowania, CS201, 8, Misiak Bazy danych, C8100, 8, Pilecki 3) Grupy studenckie Tabela: GRUPA (NrGrupy, NrWykładu, Semestr, Rok) Dane: 85, CS201, letni, 96 92, CS445, zimowy, 96 4) Oceny z zaliczeń modułów dydaktycznych Tabela: OCENY (NrIndeksu, NrGrupy, NrWykładu, Ocena) Dane: 18175, 92, CS100, 4 19551, 101, CS445, 5 Własności baz danych • Niezależność aplikacji i danych. Dane wprowadzane bez konieczności modyfikowania aplikacji • Abstrakcyjna reprezentacja danych. Przygotowanie aplikacji realizowane przy użyciu deklaratywnych języków programowania na wyższym poziomie niż w przypadku klasycznych języków programowania. • Różnorodność sposobów widzenia danych. Różni użytkownicy widzą różnie te same dane - filtry, perspektywy. • Fizyczna i logiczna niezależność danych - rozszerzenie systemu komputerowego nie narusza danych bazie danych. Korzyści stosowana BD • Zmniejszenie nadmiarowości przechowywania danych - dane nie są duplikowane • Współdzielenie danych - na tych samych danych pracują różne aplikacje, bez zagrożenia zniszczenia • Autoryzacja dostępu do danych uniemożliwiająca użytkowanie poufnych danych przez niepowołanych użytkowników • Wielość interfejsów do danych - wizualizacja tych samych danych w różnych formatach, np. formularze • Reprezentacja złożonych związków pomiędzy danymi • Ograniczenia integralnościowe - zabezpieczenie przed wpisywaniem do BD niewłaściwych wartości • Ochrona przed awariami - uodpornienie SZBD, np. na zanik zasilania - odtworzenie poprawnego stanu sprzed awarii. Kiedy nie zaleca się stosowania Baz Danych • W przypadku ograniczonych możliwości firmy • W przypadku gdy mechanizmy SZBD w zakresie współbieżności, dostępu, bezpieczeństwa itp. są nadmiarowe • W przypadku przetwarzania danych przez pojedynczego użytkownika lub grupę użytkowników pracujących w sposób ściśle skoordynowany, np. sekwencyjny. • W przypadku przechowywania prostych danych o niskim stopniu powiązania oraz używania prostych programów, nie rozwijanych w przyszłości. • W przypadku istotnych ograniczeń czasowych na czas realizacji transakcji, np. czasu rzeczywistego. Podział baz danych ze względu na sposób dostępu • Mogą być niewielkie bazy danych, np. baza znajomych, z której korzysta jedynie właściciel albo duże bazy danych jak np. baza danych w banku, do której jest konieczny dostęp z wielu stanowisk. • Baza danych może pracować jako – baza jednostanowiskowa – baza i SZBD są na jednym komputerze, dostęp ma jeden użytkownik – baza ze współdzieleniem plików – baza i SZBD są dostępne na wielu komputerach. W bazach tego typu współdzielone są jedynie pliki danych, ale przetwarzanie danych odbywa się na każdym komputerze oddzielnie – baza typu klient serwer – baza i system zarządzania nią stanowią odrębny proces, na wydzielonym komputerze – serwerze bazy danych. Serwer BD odpowiada za zarządzanie danymi, przetwarzanie danych i udostępnianie. Z serwerem są połączone przez sieć komputery użytkowników, zwane klientami. Modele baz danych • Aby przechowywać informacje, konieczne jest określenie formy ich przechowywania. Na potrzeby baz danych zostały zdefiniowane klasyczne techniki organizowania informacji, zwane modelami baz danych. • Bazy danych mogą różnić się sposobem, w jaki dane są zorganizowane i powiązane ze sobą. Przez model danych rozumiemy zbiór pojęć stosowanych do opisu struktury bazy danych. • Struktura BD obejmuje: – typy danych, związki miedzy nimi i ograniczenia nałożone na dane – zbiór operacji do definiowania, wyszukiwania i uaktualniania BD • Wśród modeli danych można wyróżnić następujące kategorie: – Koncepcyjne modele danych. Są to modele najbardziej zbliżone poziomem abstrakcji do wymagań projektantów BD, stosowane w pierwszych etapach projektów, w celu weryfikacji wyróżnionych w mini-świecie obiektów i związków miedzy nimi – Implementacyjne modele danych, stosowane do transformacji wcześniej przygotowanego modelu koncepcyjnego do konkretnego modelu BD, a więc do postaci, która jest z godna z wymaganiami określonego SZBD. Modele implementacyjne baz danych • Wśród modeli implementacyjnych wyróżniamy modele: – hierarchiczny – sieciowy – relacyjny – obiektowy • Modele hierarchiczne i sieciowe są już prawie nie stosowane w praktyce. Model relacyjny dominuje w komercyjnych bazach danych. Przykładem jest relacyjny model w bazie danych Oracle. • Fizyczne modele danych, określają sposoby organizacji danych w pamięci zewnętrznej komputerów. Operuje się tu pojęciami takimi jak np. rekord, plik, adres. Model hierarchiczny • Dane są zorganizowane w postaci drzewa. Informacja jest zawarta w dokumentach oraz w strukturze drzewa (podobnie jak foldery na dysku komputera). • W modelu hierarchicznym baza ma strukturę drzewiastą, z jednym punktem początkowym i wieloma rozgałęzieniami, podobną do struktury drzewa, folderów na dysku komputera czy drzewa genealogicznego. Zbiór nadrzędny nazywamy rodzicem zawiera podzbiory zwane potomkami. Model sieciowy • Powiązania miedzy dokumentami tworzą sieć. Informacja jest zawarta w dokumentach oraz w przebiegu połączeń sieci. • W odróżnieniu od hierarchicznej, w bazie sieciowej dowolny zbiór danych może być powiązany z każdym innym. Model obiektowy • Model obiektowy łączy cechy programów komputerowych tworzonych w językach programowania obiektowego z cechami aplikacji bazodanowych. Obiekt w bazie reprezentuje obiekt w świecie rzeczywistym. • Aplikacje bazodanowe w modelu obiektowym bazują na obiektach (zbiorach połączonych danych i procedur umożliwiających manipulowanie tymi danymi) i tzw. klasach obiektów. Model relacyjny • Bazy relacyjne Prawie najpopularniejsza grupa baz danych. Model wykorzystywany najczęściej przy projektowaniu baz danych. Dane przechowywane w wielu tabelach, pomiędzy tabelami tworzone są specjalne powiązania zwane relacjami. • Przykład: Tabele: Pracownik, Zespół, Etat Tabela • Tabela to zbiór powiązanych ze sobą danych. Jest to układ poziomych wierszy zwanych rekordami i pionowych kolumn zwanych polami rekordu. • Tabela jest identyfikowana przez nazwę. • Przecięcie kolumny i wiersza tworzy pole. Nazwa kolumny jest jednocześnie nazwą pola. Baza kartotekowa • Nazywana również bazą 2-wymiarową. Bazy takie składają się tylko z jednej tabeli, w której zgromadzone są wszystkie dane. Każdy rekord takiej bazy można przedstawić w postaci pojedynczej karty. Przykład: zestaw kart katalogowych książek w bibliotece lub kart pacjentów. Kartotekowa baza danych oparta jest o 1 plik danych. Ogólne zagadnienia relacyjnych baz danych • Relacyjna baza danych oparta jest zwykle o kilka tablic danych, które powiązane są ze sobą przez pole o wspólnej nazwie. Przykładem może być baza hurtowni, zawierająca dane o klientach, towarach i wystawionych fakturach. Wszystkie te tabele pozwalają na wprowadzanie danych, przechowywanie w pamięci masowej, sortowanie, wyszukiwanie, wydruk. Tabele i rekordy • Dane przechowywane są w formie strukturalnej. • Każda informacja zapisywana jest w podstawowym elemencie jakim jest rekord. Rekordy są podzielone na pola. • Każde pole ma swoją nazwę, wielkość oraz definicję typu danych, jakie będą umieszczone. • Główne typy pól: znakowe, numeryczne, datownikowe, logiczne, notatnikowe. Algebra relacji • Relacyjny model BD został opracowany w oparciu o dziedzinę matematyki zwanej algebrą relacyjną. Twórcą modelu był amerykański matematyk E. F. Codd. Dane są przechowywane w strukturach zwanych tabelami. Tabele są podstawowymi obiektami BD. Przechowują one dane wykorzystywane przez inne obiekty jak np. zapytania, formularze czy raporty. Tabela (table) - zbiór powiązanych ze sobą danych w BD, przedstawiony w postaci poziomych wierszy zwanych rekordami (krotki) i pionowych kolumn zwanych polami rekordu. Każde pole posiada unikatową nazwę w obrębie tabeli oraz określony typ danych, np. Nr, Imie, Nazwisko, Data_urodz, NrTelefon Podział danych na tabele i klucze w relacyjnych bazach danych – normalizacja baz danych • W modelu relacyjnym dane wewnątrz bazy są dzielone między tabele. Podział nazywamy normalizacją baz danych. W najprostszym przypadku baza danych może sie składać tylko z jednej tabeli. Przy złożonych danych mogą wystąpić niepożądane zjawiska utrudniające lub uniemożliwiające poprawne funkcjonowanie bazy. Przykład normalizacji • Baza danych z jedną tabelą: Uczen_Wypozyczenia (Imie_Ucznia, Nazwisko_Ucznia, Klasa ImieAutora, NazwAutora, Tytuł, Wydawnictwo DataWypozycz, DataOddania) • W takiej prostej bazie danych z jedną tabelą można zauważyć zjawisko redundendancji, czyli wielokrotnego powtarzania sie pewnych danych w bazie. • Np. jeśli ten sam uczeń wypożyczy kilka książek, to w każdym rekordzie pojawią się te same dane ucznia. Gdy np. popełnimy błąd w nazwisku to musimy poprawić osobno w każdym rekordzie dot. tego ucznia. Gdy uczeń odda wszystkie książki to usuwając rekordy tracimy dane o uczniu. Później trzeba od nowa wprowadzić. Baza danych po normalizacji • Baza danych z wieloma tabelami. Model tej samej Bazy Danych, ale dane zostały podzielone na 3 tabele: – Uczniowie (IDUcznia, IMUcznia, NazwUcznia, Klasa) – Ksiazki (IDKsiazki, ImAutor, NazwAutor, Tytiul, Wydawn) – Wypozyczenia (IDwypoz, IDUcznia, IDKsiazki, DataWypoz, DataZwrotu) Systemy relacyjnych baz danych • Do najczęściej spotykanych profesjonalnych systemów relacyjnych baz danych należą: – ORACLE Universal Server – DB2 Universal Database firmy IBM – Informix Dynamic Server IBM – PostgreSQL – SQL Anywhere Studio (Sybase) – Microsoft SQL Server W komputerach osobistych popularne systemy to: Access (Microsoft), FoxPro, Paradox i dBase (dBase Inc.) oraz MySQL (firmy MySQL AB)