Bazy danych Dr Henryk Telega BD 10/11 Wykład 1 1
R. Elmasri, S.B. Navathe Wprowadzenie do systemów baz danych, wydanie 1, Helion 2005, seria Kanon Informatyki tłumaczenie wydania 4: R. Elmasri, S.B. Navathe Fundamentals of Database Systems Fourth edition, Addison Wesley 2004. W 2006 zostało opublikowane angielskie wydanie 5, nieco zmienione. BD 10/11 Wykład 1 2
C.J. Date Wprowadzenie do systemów baz danych WNT 2000 Seria Klasyka Informatyki BD 10/11 Wykład 1 3
T. Connolly, C. Begg Systemy baz danych tom 1 i 2, wydanie 1, RM, 2004 BD 10/11 Wykład 1 4
J.D. Ullman, J. Widom Podstawowy wykład z systemów baz danych WNT 2000, Seria Klasyka Informatyki C. Delobel, M. Adiba Relacyjne bazy danych WNT 1989 BD 10/11 Wykład 1 5
H. Garcia-Molina, J.D. Ullman, J Widom, Implementacja systemów baz danych, WNT 2003, Seria Klasyka Informatyki. H. Garcia-Molina, J.D. Ullman, J Widom, Systemy baz danych. Pełny wykład, WNT 2006, Seria Klasyka Informatyki. P.A. Bernstein, E. Newcomber Principles of Transaction Processing Morgan Kaufmann, 1997. L. Banachowski, E. Mrówka-Majewska, K. Stencel Systemy baz danych. Wykłady i ćwiczenia Wyd. PJWSTK, 2004. BD 10/11 Wykład 1 6
K. Kline, D. Kline SQL Almanach Wyd. Helion 2002 (O Reilly) Dan Tow SQL Optymalizacja Wyd. Helion 2004 (O Reilly) J. Celko SQL Zaawansowane techniki programowania Wyd. Naukowe PWN 2008 S. Allen Modelowanie danych Wyd. Helion 2006 BD 10/11 Wykład 1 7
Alex Kriegel, Boris M. Trukhnov SQL Bible Wiley 2008. H. Darwen, C.J. Date SQL. Omówienie standardu języka WNT 2000 Stéphane Faroult SQL. Sztuka programowania Wyd. Helion 2007. SQL: 1999 - Understanding Relational Language Components The Morgan Kaufmann Series in Data Management Systems 2001. BD 10/11 Wykład 1 8
Według (Delobel, Adiba, 1989) Bazą danych nazywamy zbiór danych o określonej strukturze, zapisany na zewnętrznym nośniku pamięciowym komputera, mogący zaspokoić potrzeby wielu użytkowników korzystających z niego w sposób selektywny w dogodnym dla siebie czasie. BD 10/11 Wykład 1 9
Według (Connolly, Begg) Baza danych to dostępny dla wielu użytkowników zbiór powiązanych logicznie danych wraz z definicją ich struktury, zaprojektowany dla zaspokojenia potrzeb przetwarzania danych przez instytucję. BD 10/11 Wykład 1 10
Według (Date) Baza danych jest to zbiór danych trwałych, które są wykorzystywane przez system aplikacji danej organizacji (lub przedsiębiorstwa). BD 10/11 Wykład 1 11
Według (Elmasri, Navathe) Baza danych jest kolekcją powiązanych ze sobą danych. Baza danych posiada następujące właściwości: Reprezentuje pewne aspekty świata rzeczywistego. Reprezentowana rzeczywistość jest nazywana mini światem (miniworld) lub obszarem analizy, czasem dziedziną problemu (w oryginale termin universe of discourse UoD). Jest logicznie spójnym zbiorem danych o pewnym znaczeniu (nie dane przypadkowe). Jest zaprojektowana, zbudowana i wypełniona danymi w określonym celu, dla pewnej grupy użytkowników. BD 10/11 Wykład 1 12
Według R. Wrembela ( Ważniak ) Baza danych jest to zbiór danych opisujący pewien wybrany fragment rzeczywistości. Dane w bazie danych posiadają dwie podstawowe cechy. Po pierwsze, odzwierciedlają rzeczywistość w sposób z nią zgodny (prawidłowy). Po drugie, są zorganizowane w specyficzny sposób, zgodnie z tzw. modelem danych. Struktura danych i powiązania między nimi są opisane przez tzw. schemat bazy danych. BD 10/11 Wykład 1 13
System Zarządzania Bazą Danych (SZBD) Database Management System (DBMS) to system oprogramowania, który umożliwia użytkownikom definiowanie, tworzenie i utrzymywanie (pielęgnację, konserwowanie) bazy danych, umożliwia manipulowanie danymi (z wykorzystaniem transakcji) oraz kontrolowanie dostępu do danych (uprawnienia, współbieżność). Często SZBD posiada zaawansowane możliwości monitorowania, dostrajania oraz automatyzowania różnych czynności administracyjnych. SZBD dostarcza również mechanizmów bezpieczeństwa w zakresie odtwarzania systemu po awarii. System bazy danych to baza (bazy) danych wraz z SZBD. Czasami do systemu bazy danych wlicza się aplikacje użytkowników. BD 10/11 Wykład 1 14
Serwer WWW Aplikacja Aplikacja System bazy danych System zarządzania bazą danych SCHEMAT BAZA DANYCH BD 10/11 Wykład 1 15
Tworzenie baz danych (m.in. struktur danych, więzów). W niektórych systemach udostępnione są narzędzia ułatwiające poprawne modelowanie i projektowanie bazy danych. Obsługa operacji na danych: wyszukiwanie, wprowadzanie, usuwanie, modyfikacje, raportowanie, składowanie i wykonywanie procedur, funkcji, pakietów, wyzwalaczy, automatyzacja wykonania różnych operacji. Zapewnienie spójności danych (kontrola i wymuszanie warunków integralności nałożonych na dane, odporność na błędy użytkowników i awarie). BD 10/11 Wykład 1 16
Udostępnianie metadanych. Ochrona przed niepowołanym dostępem. Dostępność, niezawodność, odtwarzanie po awarii. Obsługa transakcji; cechy transakcji (ACID): Atomicity (niepodzielność), Consistency (spójność), Isolation (izolacja), Durability (trwałość). Sterowanie współbieżnością (concurrency control) transakcji. BD 10/11 Wykład 1 17
Optymalizacja zapytań, zapewnienie efektywnego dostępu do danych (np. poprzez indeksy). Umożliwienie niezależności aplikacji od budowy fizycznej bazy danych. Możliwość monitorowania i dostrajania. Możliwość komunikacji z innymi systemami. Dostęp przez różne interfejsy. BD 10/11 Wykład 1 18
Jakie są wykorzystywane: Modele danych. Narzędzia i metody (projektantów i programistów). Jak zrealizowane są: Fizyczne struktury danych i metody dostępu. Przetwarzanie transakcyjne (spójność baz danych). BD 10/11 Wykład 1 19
Analitycy systemowi. Projektanci i programiści baz danych. Projektanci i programiści aplikacji. Administratorzy (mogą być różne profile). Użytkownicy końcowi. BD 10/11 Wykład 1 20
Historyczne ( przestarzałe ) podejście: aplikacje opierające się na przetwarzaniu plików. Bazy danych jako postęp w stosunku do przetwarzania plików. BD 10/11 Wykład 1 21
Niezależność między danymi a programami (program-data independance) - można zmienić struktury danych bez konieczności zmiany aplikacji klienckich. Samoopisujący charakter SZBD system w tzw. katalogu (catalog) przechowuje opis danych. Opis ten określany jest jako meta-dane. BD 10/11 Wykład 1 22
Dostarczanie wielu widoków (perspektyw) tych samych danych dla różnych użytkowników. Zapewnienie integralności danych. Współdzielenie danych, przetwarzanie współbieżnych transakcji wielu użytkowników. Wysoka niezawodność i bezpieczeństwo. BD 10/11 Wykład 1 23
Wyższy koszt (?) Większa złożoność i rozmiary. Konieczność pielęgnacji, utrzymania (często, ale nie zawsze). Kiedy nie stosować? BD 10/11 Wykład 1 24
Model jest to zbiór abstrakcyjnych pojęć, które umożliwiają opis pewnych własności wybranych wycinków rzeczywistości. Pojęcie model danych w literaturze jest wieloznaczne. Popularne dwa podejścia (nie wykluczają one innych podejść): modele konceptualne (koncepcyjne), które umożliwiają opis konkretnego, wybranego wycinka rzeczywistości (np. działania firmy) poprzez analizę obiektów i powiązań między tymi obiektami modele implementacyjne, które mówią jak organizować struktury danych. BD 10/11 Wykład 1 25
Jednym z najpopularniejszych modeli koncepcyjnych jest model związków encji (E/R entity/relationship), (istnieją różne odmiany tego modelu). Podstawowymi pojęciami w tym modelu są: encja (z ang. entity byt, istnienie, jednostka), odpowiadająca obiektowi, o którym chcemy przechowywać dane, atrybut interesująca nas cecha encji oraz związki (zależności) między encjami (związki encji). BD 10/11 Wykład 1 26
Modele implementacyjne Historia: model hierarchiczny i sieciowy Spośród modeli implementacyjnych w chwili obecnej najpopularniejszy jest model relacyjny i różne odmiany modelu obiektowo-relacyjnego Model obiektowy BD 10/11 Wykład 1 27
Trójwarstwowa architektura ANSI-SPARC: Warstwa zewnętrzna Warstwa konceptualna (koncepcyjna, pojęciowa) Warstwa wewnętrzna BD 10/11 Wykład 1 28
Architektura klient serwer Dwuwarstwowa Trójwarstwowa, wielowarstwowa Systemy biurkowe (typu desktop ) Rozproszone systemy baz danych BD 10/11 Wykład 1 29
Przykładowe kryteria podziału: wykorzystywany model danych cel stosowania liczba węzłów / baz danych specyfika sposobu przetwarzania danych. BD 10/11 Wykład 1 30
Tradycyjne bazy OLTP (produkcyjne) Online Transactional Processing. Hurtownie danych, bazy analityczne OLAP Online Analytical Procesing. Multimedialne bazy danych. Geograficzne systemy informacyjne (GIS). Bazy specjalizowane, np. dla kodu genetycznego. Rozproszone/scentralizowane bazy danych Bazy czasu rzeczywistego przydatne np. podczas sterowania procesami w produkcji przemysłowej. Mobilne bazy danych. BD 10/11 Wykład 1 31