Wprowadzenie 1
Plan rozdziału 2 Wprowadzenie Przykład bazy danych Systemy plikowe a systemy baz danych Dramatis personæ Dlaczego używać bazy danych? Dlaczego nie używać bazy danych? Podsumowanie i pytania
Wprowadzenie 3 Definicja Baza danych to kolekcja powiązanych ze sobą danych. Dane to znane fakty które mogą być odnotowane i które posiadają domniemane znaczenie. Cechy bazy danych baza danych reprezentuje wybrany fragment rzeczywistości, zwany miniświatem (ang. miniworld, universe of discourse), zmiany w miniświecie są odzwierciedlane w bazie danych, baza danych to logicznie spójna kolekcja danych, baza danych jest projektowana, budowana i wypełniana danymi w konkretnym celu; posiada docelową grupę użytkowników i zbiór aplikacji użytkowych.
Specyfika baz danych 4 Trwałość danych kilka, kilkadziesiąt, kilkaset lat, niezależne od aplikacji, platformy sprzętowo-programowej, Duży wolumen przetwarzanych danych tysiące, miliony, miliardy danych, dane nie mieszczą się w pamięci operacyjnej, przestrzeń nazw jest za mała aby nazwać wszystkie dane, ilość danych uniemożliwia liniowe przeglądanie danych, Złożoność danych złożoność strukturalna i semantyczna, istnienie złożonych ograniczeń integralnościowych, istnienie złożonych zależności między danymi.
System zarządzania bazą danych 5 System zarządzania bazą danych (ang. database management system, DBMS) to zbiór programów ogólnego przeznaczenia umożliwiających tworzenie i utrzymywanie bazy danych. SZBD umożliwia: definiowanie: określanie typów danych, struktur i ograniczeń konstruowanie: przechowywanie danych na nośniku elektronicznym manipulowanie: odczytywanie danych, wyszukiwanie danych, modyfikowanie danych w celu odzwierciedlenia zmian zachodzących w świecie rzeczywistym
Wymagania odnośnie zarządzania danymi 6 System zarządzania bazą danych musi umożliwiać opisywanie bytów świata rzeczywistego (encje) w terminach składowanych danych tworzenie i trwałe składowanie dużych kolekcji danych wydajne przeszukiwanie i aktualizowanie danych złożone zapytania do danych złożone aktualizacje danych modyfikowanie składowanych danych (np. dodawanie atrybutów) zarządzanie współbieżnym dostępem do danych odtwarzanie spójnego stanu bazy danych po awarii utrzymywanie spójności w danych zabezpieczenie dostępu do danych
Środowisko bazy danych 7 Na system bazy danych (ang. database system) składa się: baza danych, katalog bazy danych, system zarządzania bazą danych. system bazy danych system zarządzania bazą danych zapytania i programy moduł obsługi zapytań i programów moduł dostępu do danych katalog (metadane) baza danych
Technologie baz danych 8 Przetwarzanie transakcyjne dostęp do danych przez transakcje o własnościach ACID, metody synchronizacji transakcji (2PL, znaczniki czasowe), metody odtwarzania spójności (logi, punkty kontrolne, rollback), metody archiwizacji bazy danych, Fizyczne struktury danych i metody dostępu pliki uporządkowane, haszowe, zgrupowane, indeksy, bitmapy, połowienie binarne, haszowanie statyczne i dynamiczne, operacje połączenia, sortowania, grupowania, regułowe i kosztowe metody optymalizacji zapytań, Modele danych modele pojęciowe (związki encji, UML), modele logiczne (relacyjne, obiektowe, post-relacyjne), języki budowy aplikacji i narzędzia CASE.
Studenci Nazwisko Indeks Kierunek Biały 123456 INF Niebieski 778899 INF Przykład Przedmioty PrzNazwa PrzNumer PKr Wydział Systemy baz danych INF12 4 INF Wprowadzenie do informatyki INF03 2 INF Matematyka dyskretna MAT06 3 MAT 9 Wykłady WNumer PrzNumer Semestr Rok Wykładowca 56 MAT06 lato 2004 Gąsiorowski 67 INF12 zima 2005 Baranowski 78 INF03 lato 2005 Kijankowski 79 INF12 lato 2005 Owczyński 101 INF03 zima 2006 Indykowski 122 MAT06 zima 2006 Żabczyński Oceny Indeks WNumer Ocena 123456 78 dst 123456 101 bdb 778899 56 db 778899 78 db+ 778899 67 dst 778899 122 bdb
Przykład 10
Przykład 11
Czy bazy danych są niezbędne? 12 studenci.txt przedmioty.txt readfile studenci.txt readfile przedmioty.txt find inflie #Jan Kowalski update #Jan Kowalski find infile #bazy danych update #bazy danych writefile studenci.txt writefile przedmioty.txt profesorowie.txt awaria w trakcie wykonywania programu duże kolekcje danych blokowanie plików na czas edycji
Systemy plikowe a bazy danych (1/4) 13 Samoopisujący się charakter baz danych system bazy danych posiada kompletny opis (definicję) bazy danych umieszczony w słowniku bazy danych (ang. database dictionary), słownik bazy danych jest też nazywany katalogiem bazy danych (ang. database catalog), system zarządzania bazą danych działa niezależnie od aktualnie przyjętej struktury bazy danych, każdorazowy dostęp do elementu danych wymaga ustalenia w słowniku struktury pliku i pozycji żądanego elementu. Porównanie: systemy plikowe Definicja danych jest najczęściej elementem aplikacji przetwarzającej dane, w zależności od użytego języka może to być rekord (Pascal), struktura (C), klasa (C++ i Java). Systemy plikowe działają tylko z określonym rodzajem plików danych.
Systemy plikowe a bazy danych (2/4) 14 Niezależność programów i danych niezależność programów i danych (ang. program-data independence) wynika z przeniesienia definicji struktur danych do słownika bazy danych; zmiany struktury danych nie wpływają na programy 0 31 41 49 Nazwisko Indeks Kierunek DataUrodzenia niezależność programów i operacji (ang. program-operation independence) polega na rozdzieleniu sygnatury (interfejsu) od ciała operacji (implementacji), dzięki czemu zmiany implementacji operacji są transparentne dla programów korzystających z sygnatury operacji
Systemy plikowe a bazy danych (3/4) 15 Wiele różnych widoków danych widok (perspektywa) to sposób postrzegania zawartości bazy danych przez każdego użytkownika, widok może oznaczać: ograniczony podzbiór danych wirtualne dane wywiedzione z oryginalnych danych Nazwisko Średnia HistoriaStudiów PrzNumer Ocena Semestr Rok WNumer Biały 4.0 INF03 dst lato 2005 78 INF03 bdb zima 2006 101 MAT06 db lato 2004 56 Niebieski 4,125 INF03 db+ lato 2005 78 INF12 dst zima 2005 67 MAT06 bdb zima 2006 122
Systemy plikowe a bazy danych (4/4) 16 Współdzielenie danych i przetwarzanie transakcyjne kontrola współbieżności (ang. concurrency control) ma na celu umożliwienie wielu użytkownikom dokonywania jednoczesnego dostępu do współdzielonych danych z zachowaniem poprawności modyfikacji
Dramatis personæ (1/2) 17 Aktorzy na scenie administrator bazy danych (ang. DBA - database administrator): administrowanie zasobami systemu, autoryzacja dostępu, monitorowanie stanu systemu, aktualizacja sprzętu i oprogramowania projektant bazy danych (ang. database designer): wybór struktury i typów danych dla elementów danych, projektowanie powiązań między danymi, integracja perspektyw użytkowników końcowych użytkownik końcowy użytkownik dorywczy: zapytania ad hoc, język zapytań użytkownik naiwny: standardowe operacje, gotowe aplikacje użytkownik zaawansowany: zaawansowane mechanizmy b.d. użytkownik samodzielny: jednoosobowe aplikacje, gotowe pakiety analityk systemowy i programista: opracowanie wymagań użytkowników końcowych, implementacja i testowanie programów
Dramatis personæ (2/2) 18 Pracownicy za sceną projektanci i programiści SZBD: projektowanie i implementacja systemu zarządzania bazą danych, tworzenie modułów przetwarzania zapytań, interfejsów programistycznych, struktur dostępu, itp. twórcy narzędzi: budowa opcjonalnych pakietów programów narzędziowych do projektowania baz danych, odtwarzania, budowania kopii zapasowych, narzędzi do importowania i eksportowania danych, graficznych interfejsów użytkownika, narzędzi do monitorowania i strojenia bazy danych administratorzy: strojenie i pielęgnacja środowiska w którym działa system baz danych, w szczególności administratorzy systemów operacyjnych i administratorzy sieci komputerowych
Dlaczego używać bazy danych? (1/3) 19 Kontrola nadmiarowości danych nadmiarowość danych (ang. redundancy) polega na przechowywaniu tego samego elementu danych w wielu plikach pojedyncza logiczna modyfikacja pociąga wiele fizycznych modyfikacji, marnowanie przestrzeni dyskowej, niespójność danych. ze względów efektywnościowych pewien stopień nadmiarowości danych czasami bywa pożądany Oceny Studenci Nazwisko Indeks Kierunek Biały 123456 INF......... Indeks WNumer Ocena 123456 78 dst 123456 101 bdb......... RaportZOcenami Indeks Nazwisko WNumer PrzNazwa Ocena 123456 Biały 78 Wprowadzenie do informatyki dst 123456 Biały 101 Wprowadzenie do informatyki bdb...............
Dlaczego używać bazy danych? (2/3) 20 Kontrola dostępu system bazy danych autoryzuje użytkowników i zarządza przywilejami obiektowymi (prawa dostępu do danych) i systemowymi (prawa wykonywania operacji) Trwałe składowanie obiektów i struktur danych składowanie obiektów aplikacyjnych po zakończeniu programu jest trudne i pracochłonne (np. ręczna serializacja obiektów), tzw. problem niezgodności dopasowania (ang. impedance mismatch problem) Wykorzystanie reguł dedukcyjnych współczesne systemy baz danych mogą wywodzić nową wiedzę na podstawie zgromadzonych danych poprzez złożone reguły dedukcyjne stanowiące odbicie zasad miniświata Wielość interfejsów języki zapytań, interfejsy programistyczne (API), formularze i raporty, graficzne narzędzia użytkownika (GUI)
Dlaczego używać bazy danych? (3/3) 21 Reprezentowanie złożonych zależności między danymi SZBD zarządza zależnościami między elementami danych (Student Oceny studenta), umożliwia efektywne i łatwe odczytywanie i modyfikowanie powiązanych danych Wymuszanie ograniczeń integralnościowych ograniczenia integralnościowe to reguły poprawności danych typ danych (nazwisko to ciąg liter, spacji i myślników) wartości danych (płeć to znak 'K' lub 'M') zakresy danych (wiek to liczba całkowita z przedziału <0,150>) związki między danymi (numer indeksu w raporcie z ocenami musi występować w pliku z danymi studentów) unikalność (numery PESEL studentów muszą być unikalne) opcjonalność/obligatoryjność (nazwisko musi być wypełnione) Kopie bezpieczeństwa i odtwarzanie po awarii
Implikacje wykorzystania bazy danych 22 Wymuszenie standardów ułatwienie komunikacji, uspójnienie nazewnictwa, symboli, oznaczeń, formatów, struktur raportów Efekt RAD szybkie tworzenie aplikacji (ang. rapid application development) jest możliwe dzięki przeniesieniu obsługi wielu typowych operacji na poziom systemu zarządzania bazą danych Elastyczność Dostępność aktualnych danych wszyscy użytkownicy współdzielą dane, pojawia się jedno źródło prawdy (ang. single source of truth) Zyski ekonomiczne konsolidacja danych i aplikacji, eliminacja redundancji, zwolnienie zasobów sprzętowych i ludzkich, zmniejszenie kosztów zarządzania
Dlaczego nie używać bazy danych? 23 Wykorzystanie systemu baz danych pociąga za sobą istotny narzut, którego koszty mogą przekroczyć oczekiwane zyski z inwestycji. Narzut jest spowodowany: dużym kosztem początkowym inwestycji w sprzęt, oprogramowanie i szkolenie użytkowników, ogólnym charakterem SZBD, zapewnianiem współbieżności, autoryzacji i uwierzytelniania, przetwarzania transakcyjnego, wymuszania ograniczeń integralnościowych, odtwarzania po awarii Bazy danych nie wykorzystujemy gdy: baza danych i aplikacje są proste, dobrze zdefiniowane, nie podlegające ewolucji w czasie, występuje wymaganie przetwarzania w czasie rzeczywistym, wielodostęp nie jest wymagany.
Podsumowanie 24 Podstawowe pojęcia baza danych, SZBD Porównanie baz danych i systemów plikowych słownik bazy danych, izolacja programów, danych i operacji, wsparcie wielu widoków danych, zarządzanie współbieżnym dostępem Użytkownicy bazy danych administrator, projektanci, użytkownicy końcowi, analitycy systemowi, projektanci SZBD i programów narzędziowych Cechy systemu baz danych kontrola nadmiarowości, autoryzacja, zapewnianie trwałości, reguły dedukcyjne, wsparcie ograniczeń integralnościowych, odtwarzanie Zalety i wady stosowania baz danych