Zaawansowane systemy baz danych
Forma zajęć
Wykład (30 godzin) + laboratorium (30 godzin)
Opis
Pojawiające się coraz to nowe zastosowania baz danych pociągnęły za sobą konieczność poszukiwania nowych modeli danych lub rozszerzeń modeli istniejących, i co za tym idzie nowych rozwiązań w ramach systemów zarządzania bazami danych. W ostatnich kilkunastu latach, wychodząc naprzeciw wymogom tych nowych aplikacji, były i są prowadzone intensywne badania nad wprowadzeniem do systemów zarządzania bazami danych różnego rodzaju rozszerzeń. Badania te zaowocowały powstaniem nowych generacji systemów baz danych. Celem przedmiotu jest przedstawienie podstawowych problemów projektowych i implementacyjnych dotyczących nowych generacji systemów baz danych, nazwanych tutaj umownie zaawansowanymi systemami baz danych (ZSBD). W ramach tego cyklu wykładów będą prezentowane podstawowe zagadnienia z zakresu projektowania i implementacji oraz zarządzania danymi w wybranych klasach systemów, zaliczanych do grupy ZSBD. Oprócz wspomnianych zagadnień zostaną przedstawione również rozszerzenia funkcjonalne wprowadzone w ZSBD – rozszerzenia w stosunku do konwencjonalnych relacyjnych baz danych. Problemy te zostaną omówione w kontekście systemów rozproszonych, aktywnych, obiektowych, obiektowo-relacyjnych i multimedialnych baz danych oraz baz danych dokumentów XML-owych i hurtowni danych.
Sylabus
Autor
- Zbyszko Królikowski — Politechnika Poznańska
Wymagania wstępne
- Podstawowe wiadomości z zakresu relacyjnych baz danych i języka SQL. Podstawowe wiadomości z zakresu programowania obiektowego. Wiedza podstawowa z zakresu programowania w języku Java.
Zawartość
- Wykłady:
- Pierwszą część kursu stanowią dwa moduły (5 godz.) poświęcone systemom rozproszonych baz danych. W ramach tej części kursu zostaną omówione następujące zagadnienia: wprowadzenie do problematyki rozproszonych baz danych (definicja rozproszonej bazy danych, zalety i wady rozproszonych baz danych, dwanaście reguł C.J. Date’a, które powinien spełniać system rozproszonej bazy danych), podstawowa architektura sfederowanej bazy danych, jak przykład architektury implementacyjnej, podstawowe problemy związane implementacją systemu rozproszonej bazy danych (cel i techniki fragmentacji danych (w tym: algorytmy fragmentacji), alokacja danych, cel i techniki replikacji danych, odświeżanie replik danych, zarządzania transakcjami rozproszonymi (w tym: transakcja rozproszona, architektura zarządzania transakcjami rozproszonymi, protokół 2PC i jego odmiany)).
- Kolejny moduł kursu (2 godz.) jest poświęcony aktywnym bazom danych. W ramach tej części kursu zostaną omówione następujące zagadnienia: funkcjonalność systemu aktywnej bazy danych (mechanizm aktywności baz danych jako rozszerzenie funkcjonalności systemu zarządzania bazą danych), model reguł ECA, dziedziny zastosowań, schematy aktywności, zdarzenia elementarne i złożone oraz odpowiadające im operatory, definiowanie reguł aktywnych na przykładzie systemu Oracle, metodyka projektowania reguł aktywnych.
- Trzeci moduł kursu (6 godz.) jest poświęcony obiektowym i obiektowo-relacyjnym bazom danych. W ramach tej części kursu zostaną omówione następujące zagadnienia: obiektowy model danych (w tym: przesłanki pojawienia się nowej generacji baz danych, nowe dziedziny zastosowań systemów baz danych wymagające silniejszego i bardziej elastycznego modelu danych niż model relacyjny, podstawowe koncepcje obiektowego modelu danych (możliwość modelowania abstrakcyjnych typów danych, mechanizm dziedziczenia typów danych, konstruktory złożonych typów danych, jawne związki między danymi, hierarchiczne zależności między kolekcjami obiektów oraz mechanizmy polimorfizmu i późnego wiązania), rozwiązania służące do zapewnienia obiektom przechowywanym w bazie danych systemowej tożsamości i trwałości), architektura obiektowych i obiektowo-relacyjnych baz danych, model ODMG, język ODL i OQL, implementacja obiektowych baz danych (w tym: obiektowa architektura klient-serwer, buforowanie obiektów, logiczne i fizyczne identyfikatory obiektów, składowanie obiektów, zarządzanie dużymi obiektami, indeksowanie wyrażeń ścieżkowych, hierarchia ścieżek binarnych, indeksowanie hierarchii rozszerzeń klas, sygnatury zbiorów, indeks RD-drzewo).
- Czwarty moduł kursu (5 godz.) jest poświęcony systemom multimedialnych baz danych oraz standardowi języka SQL/MM (nowy standard uzupełniający język SQL o biblioteki do obsługi specjalistycznych danych i aplikacji, głównie multimedialnych). W ramach tej części kursu zostaną omówione następujące zagadnienia: specyfika i zastosowania multimedialnych baz danych, modele danych dla multimedialnych baz danych, metadane, standard MPEG-7, techniki wyszukiwania, składowania i prezentacji danych multimedialnych, geneza standardu SQL/MM, podstawowe części standardu SQL/MM poświęcone przetwarzaniu danych tekstowych, przestrzennych i obrazów w bazach danych.
- Piąty moduł kursu (7 godz.) jest poświęcony bazom danych dokumentów XML jako przykładowi semistrukturalnych baz danych. W ramach tej części kursu zostaną omówione następujące zagadnienia: typy dokumentów XML i ich wpływ na bazy danych, charakterystyka języków zapytań wykorzystywanych do przetwarzania dokumentów XML, baza danych dokumentów XML i sposoby przechowywania i mechanizmy przetwarzania dokumentów XML, język zapytań XQuery (w roku 2005 język XQuery stał się standardem zatwierdzonym przez W3C), w tym: cechy języka XQuery, składnia, klauzule FOR, LET, WHERE, RETURN, ORDER BY, podzapytania, wyrażenia warunkowe i ilościowe, funkcje, przykłady zastosowań. W dalszej części tego modułu kursu zostaną omówione: charakterystyka innych języków semistrukturalnych baz danych, techniki modyfikacji dokumentów XML, w tym: wymagania dotyczące funkcjonalności języka modyfikacji, prosta wymiana i usuwanie dokumentów XML, DOM API oraz języki deklaratywne (XUpdate i rozszerzenia XQuery).
- Ostatni moduł kursu (5 godz.) jest poświęcony hurtowniom danych. W ramach tej części kursu zostaną omówione następujące zagadnienia: wprowadzenie do problematyki integracji rozproszonych i heterogenicznych baz danych, podstawowa architektura integracji danych opierająca się na hurtowniach danych, oprogramowanie ETL, problem wykrywania zmian w źródłach danych, charakterystyka przetwarzania analitycznego (On-Line Analytical Processing - OLAP), wielowymiarowy model danych (wymiary i fakty), implementacja modelu wielowymiarowego w serwerach relacyjnych (ROLAP) (schemat gwiazdy, płatka śniegu i konstelacja faktów) oraz wielowymiarowych (MOLAP) (implementacja i operatory MOLAP). W dalszej części tego modułu kursu zostaną omówione zagadnienia implementacyjne i efektywność przetwarzania OLAP, w tym: odświeżanie hurtowni danych w czasie jej pracy, wykorzystanie perspektyw zmaterializowanych do implementowania hurtowni, techniki zwiększające efektywność przetwarzania analitycznego, m.in. przepisywanie zapytań w oparciu o perspektywy zmaterializowane, indeksowanie danych przy użyciu różnych struktur, partycjonowanie danych i indeksów, kompresja danych i indeksów, przetwarzanie równoległe w hurtowniach danych oraz metadane opisujące hurtownię.
- Laboratoria:
- Pierwszą część zajęć laboratoryjnych kursu stanowią trzy moduły (9 godz.) poświęcone systemom rozproszonych baz danych. Cykl tych trzech ćwiczeń ilustruje fundamentalne zagadnienia związane z projektowaniem i implementacją rozproszonych baz danych, tj. replikowanie danych, zarządzanie transakcjami rozproszonymi z wykorzystaniem protokołu 2PC, techniki optymalizacji zapytań rozproszonych. W ramach tej części kursu zostaną omówione i przećwiczone następujące zagadnienia: dostępu do zdalnej bazy danych za pomocą tzw. łącznika bazy danych, replikowanie danych za pomocą tzw. migawki, parametry migawki definiowane przez użytkownika mające wpływ na jej własności, problem przyrostowego odświeżania migawki, grupa odświeżania jako mechanizm jednoczesnego odświeżania wielu migawek, definicje i podstawowe cechy transakcji rozproszonej, role baz danych biorących udział w transakcji rozproszonej, implementacja protokołu zatwierdzania transakcji rozproszonej (protokół 2-Phase-Commit - 2PC), problemy związane z awariami rozproszonej bazy danych w trakcie zatwierdzania transakcji rozproszonej, procedura odtwarzania transakcji rozproszonej, która uległa awarii (zilustrowane studium przypadku), charakterystyka zapytania rozproszonego i plan jego wykonania, narzędzia Oracle analizy planu wykonania zapytania, studium przypadku obejmujące analizę technik filtrowania danych z tabeli zdalnej, grupowania i sortowania danych z tabeli zdalnej, łączenie tabeli lokalnej i zdalnej, zastosowanie tradycyjnych perspektyw (ang. view) w optymalizacji zapytań rozproszonych, zastosowanie wskazówek optymalizatora kosztowego w optymalizacji zapytań rozproszonych. Wszystkie powyższe problemy są ilustrowane rozwiązaniami i technikami implementowanymi w systemie Oracle9i/10g.
- Drugą część zajęć laboratoryjnych kursu stanowią trzy moduły (7 godz.) poświęcone systemom obiektowych baz danych. Cykl tych trzech ćwiczeń ilustruje podstawowe zagadnienia związane z implementacją, programowaniem i użytkowaniem obiektowych baz danych. W ramach tej części kursu zostaną omówione i przećwiczone następujące zagadnienia: charakterystyka i instalacja systemu zarządzania obiektową bazą danych (SZOBD) db4o razem ze środowiskiem programistycznym, pozwalającym na tworzenie oprogramowania z nim współpracującego (db4o jest to system, pracujący na platformach Java i .NET, pozwalający na bezpośrednie składowanie obiektów w bazach danych; db4o jest rozpowszechniany bezpłatnie na licencji GPL oraz płatnie na licencji przeznaczonej dla zastosowań komercyjnych), konfiguracja środowiska Eclipse do współpracy z db4o, tworzenie nowego projektu, współpracującego z db4o, architektury aplikacji, jakie można zbudować w oparciu o SZOBD db4o, interfejsy i metody bibliotek SZOBD db4o pozwalające na wykonywanie podstawowych operacji na obiektach składowanych w obiektowej bazie danych, takich jak: zapisywanie obiektów do bazy danych, odszukiwanie i odczytywanie obiektów z bazy danych, modyfikacja obiektów w bazie danych, usuwanie obiektów z bazy danych. W dalszej części tego modułu kursu zostaną omówione zagadnienia dotyczące złożonych, dynamicznych struktur danych, w tym: sposoby zapisu, wyszukiwania, odczytu, modyfikacji i usuwania złożonych struktur danych.
- Trzecia część zajęć laboratoryjnych kursu stanowią trzy moduły (7 godz.) poświęcone systemom obiektowo-relacyjnych baz danych. Cykl tych trzech ćwiczeń ilustruje zagadnienia związane z programowaniem i użytkowaniem obiektowo-relacyjnych baz danych. W ramach tej części kursu zostaną omówione i przećwiczone następujące zagadnienia: różnice pomiędzy systemem zarządzania obiektowo-relacyjną bazą danych a SZOBD i systemem zarządzania relacyjną bazą danych, tworzenie typów obiektowych i ich instancji, składowanie obiektów w bazie danych (w tym: tworzenie typów obiektowych, składowanie obiektów), polecenia języka SQL pozwalającą na przeszukiwanie obiektów (w tym: deklaracja metod i konstruktorów, programowanie i implementacja metod i konstruktorów, aktywowanie metod, zapytania do atrybutów obiektów), posługiwanie się typami referencyjnymi (w tym: nawigowanie po referencjach, referencje puste i wiszące), inne obiekty o złożonej strukturze tj. kolekcje wartości, dwa rodzaje kolekcji: tablice o zmiennej długości (w tym: sposób, w jaki mogą być wykorzystywane z poziomu SQL i z poziomu PL/SQL) oraz zagnieżdżone tabele (w tym: różnice pomiędzy obydwoma rodzajami kolekcji, cechy charakterystyczne tabel zagnieżdżonych oraz praca z tym typem kolekcji zarówno z poziomu SQL, jak i z poziomu PL/SQL), konstrukcja CAST(MULTISET). W dalszej części tego modułu kursu zostaną omówione zagadnienia dotyczące motywacji implementacji pewnych cech modelu obiektowego w modelu relacyjnym, co zaowocowało systemami obiektowo-relacyjnych baz danych. Następnie, omówiona i przećwiczona zostanie składnia poleceń pozwalająca na: tworzenie typów dziedziczących ze zdefiniowanych wcześniej typów obiektowych, przesłanianie istniejących metod, deklarowanie typów i metod abstrakcyjnych oraz omówiony i przećwiczony zostanie polimorfizm i związane z nim dynamiczne wiązanie metod a także sposób wykorzystania tych cech przy konstrukcji zapytań, w tym: operatory TREAT i IS OF pozwalające na wykonywanie zapytań do tabel przechowujących obiekty różnych podtypów.
- Czwarta część zajęć laboratoryjnych kursu (2 godz.) dotyczy systemów multimedialnych baz danych. Ćwiczenie to ilustruje zagadnienia związane z programowaniem i użytkowaniem multimedialnych baz danych. W ramach tej części kursu zostaną omówione i przećwiczone następujące zagadnienia: możliwości przetwarzania danych multimedialnych wprowadzonych przez standard SQL/MM (w tym: część standardu, która dotyczy przetwarzania obrazów), ładowanie obrazów do bazy danych, odczytywanie ich parametrów, wykonywanie zapytań typu Content Based Retrieval i modyfikowanie obrazów zapisanych w bazie danych.
- Ostatnią część zajęć laboratoryjnych kursu stanowią trzy moduły (5 godz.) poświęcone systemom semistrukturalnych baz danych. Cykl tych trzech ćwiczeń ilustruje zagadnienia związane z programowaniem i użytkowaniem baz danych dokumentów XML. W ramach tej części kursu zostaną omówione i przećwiczone następujące zagadnienia: charakterystyka przykładowej bazy danych dokumentów XML – dbXML, wykonywanie zapytań Xpath, dostęp do bazy danych dbXML za pomocą WWW, duże kolekcje dokumentów i indeksy, zapytania dotyczące dokumentów umieszczonych w repozytorium XML oraz modyfikacje takich dokumentów.
Literatura
Literatura podstawowa
- C. Zaniolo, S. Ceri, C. Faloutsos, R.T. Snodgrass, V.S. Subrahmanian, R. Zicari, Advanced Database Systems, The Morgan Kaufmann Series in Data Management Systems, 1997.
- T. Connolly, C. Begg, Database Systems - A Practical Approach to Design, Implementation, and Management (third edition), Addison-Wesley, 2002.
- C.J. Date, Wprowadzenie do systemów baz danych, seria „Klasyka Informatyki”, Wydawnictwa Naukowo-Techniczne, Warszawa 2000.
- R. Elmasri, S.B. Navathe, Wprowadzenie do systemów baz danych, Helion, Gliwice 2005.
- H. Garcia-Molina, J.D. Ullman, J. Widom, Systemy baz danych. Pełny wykład, seria „Klasyka Informatyki”, Wydawnictwa Naukowo-Techniczne, Warszawa 2006.
- M. Jarke, M. Lenzerini, Y. Vassiliou, P. Vassiliadis, Fundamentals of Data Warehouses, Springer-Verlag, 2003.
- V.S. Subrahmanian, Principles of Multimedia Database Systems, Morgan Kaufmann, 1998.
- R. Wrembel, B. Bębel, Oracle - Projektowanie rozproszonych baz danych, HELION Publisher, 2003.
Literatura uzupełniająca
- Baldonado, M., Chang, C.-C.K., Gravano, L., Paepcke, A., The Stanford Digital Library Metadata Architecture, Int. J. Digit. Libr. 1, 1997 108–121
- Bruce, K.B., Cardelli, L., Pierce, B.C., Comparing Object Encodings, in: Abadi, M., Ito, T. (eds.): Theoretical Aspects of Computer Software. Lecture Notes in Computer Science, Vol. 1281, Springer-Verlag, Berlin Heidelberg New York1997, pp. 415–438
- Clement T. Yu, Weiyi M., Principles of Database Query Processing for Advanced Applications, Morgan Kaufmann Publishers, 1998, ISBN 1-55860-434-0
- Definicje funkcji i operatorów Xquery: http://www.w3.org/TR/xquery-operators/
- Dokumentacja techniczna API db4o. Dostarczana razem z pakietem bibliotek db4o w katalogu /doc/api/.
- Dye C.: Oracle Distributed Systems, O'Reilly & Associates, 1999, ISBN 1-56592-432-0
- E. Cattel i inni, Object Database Standard ODMG 3.0, Morgan Kaufmann, 1999
- G. Booch, J. Rumbaugh, I. Jacobson, UML przewodnik użytkownika, WNT, 2001
- G. Lausen, G. Vossem, Obiektowe bazy danych, WNT, 2000
- http://www.garshol.priv.no/download/xmltools/
- http://www.oasis-open.org/cover/xmlAndDatabases.html
- http://www.rpbourret.com/xml/
- http://xmldb-org.sourceforge.net/index.html
- ISO/IEC 13249, Information Technology – Database Languages – SQL Multimedia and Application Packages (specyfikacja standardu ISO)
- Kosch, H., Distributed Multimedia Database Technologies Supported by MPEG-7 and MPEG-21, CRC Press 2003
- Laksman, B., Oracle 9i PL/SQL Poradnik programisty, Mikom 2003
- Martínez, J. M., MPEG-7 Overview, http://www.chiariglione.org/MPEG/standards/mpeg-7/mpeg-7.htm
- Melton J., Eisenberg A.: SQL Multimedia and Application Packages (SQL/MM). SIGMOD Record 30(4), 2001
- Oracle® Database Concepts (rozdział Object Datatypes and Object Views): http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14220/objects.htm#i440066
- Oracle® Database JDBC Developer's Guide and Reference (rozdział Working with Oracle Object Types): http://download-uk.oracle.com/docs/cd/B19306_01/java.102/b14355/oraoot.htm#sthref874
- Oracle® interMedia Reference (rozdział SQL/MM Still Image): http://download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14297/ch_stimgref.htm#AIVUG7000
- P. Fortier, SQL 3 Implementing the Object–Relational Database, Mc Graw-Hill Company, 1999
- Pełna specyfikacja Xquery: http://www.w3.org/TR/xquery/
- Przykładowe edytory otwarte na Xquery: Oracle JDeveloper www.oracle.com/technology/products/jdev/ oraz Altova XMLSpy: www.altova.com
- Rozszerzenia Xquery - Funkcjonalność modyfikacji (working draft) http://www.w3.org/TR/xqupdate/
- Stolze K.: SQL/MM Spatial: The Standard to Manage Spatial Data in Relational Database Systems. BTW 2003
- Thuraisingham, B., Managing and Mining Multimedia Databases, CRC Press 2001
- Tutorial db4o. Dostarczany razem z pakietem bibliotek db4o w pliku /doc/tutorial/db4o-5.2-tutorial.pdf
- van Leeuwen, J. (ed.), Computer Science Today. Recent Trends and Developments. Lecture Notes in Computer Science, Vol. 1000, Springer-Verlag, Berlin Heidelberg New York 1995
- X-Hive XUpdate demo: www.x-hive.com/xupdate/
- Xupdate – Specyfikacja: http://xmldb-org.sourceforge.net/xupdate/index.html
Moduły
- Wprowadzenie do kursu "Zaawansowane systemy baz danych"; PDF
- Wykład 1: Systemy rozproszonych baz danych – 1. Podstawowe problemy rozproszonych baz danych; Flash, PDF, PDF-kolor, Pytania
- Wykład 2: Systemy rozproszonych baz danych – 2. Fragmentacja, replikacja, zarządzanie transakcjami; Flash, PDF, PDF-kolor, Pytania
- Wykład 5: Obiektowe bazy danych – Obiektowe i obiektowo-relacyjne bazy danych; Flash, PDF, PDF-kolor, Pytania
- Wykład 6: Obiektowe bazy danych – Implementacja obiektowych baz danych; Flash, PDF, PDF-kolor, Pytania
- Wykład 9: Bazy danych dokumentów XML – 1. Wprowadzenie; Flash, PDF, PDF-kolor, Pytania
- Wykład 10: Bazy danych dokumentów XML – 2. XQuery; Flash, PDF, PDF-kolor, Pytania
- Wykład 11: Bazy danych dokumentów XML – 3. Modyfikacja dokumentów; Flash, PDF, PDF-kolor, Pytania
- Wykład 13: Hurtownie danych – 2. Zagadnienia implementacyjne i efektywność przetwarzania OLAP; Flash, PDF, PDF-kolor, Pytania
- Laboratorium 2: Rozproszone bazy danych – 2. Zarządzanie transakcjami rozproszonymi; Flash, PDF, PDF-kolor
- Laboratorium 3: Rozproszone bazy danych – 3. Optymalizacja zapytań rozproszonych; Flash, PDF, PDF-kolor, (Pliki pomocnicze: Plan_Table, inicjowanie środowiska, zapytania rozproszone)
- Laboratorium 4: Obiektowe systemy zarządzania bazą danych – 1. Przygotowanie środowiska; Flash, PDF, (Pliki pomocnicze: Skeleton-lab4.1.java)
- Laboratorium 5: Obiektowe systemy zarządzania bazą danych – 2. Podstawy pracy z OSZBD db4o; Flash, PDF, PDF-kolor, Pytania, (Pliki pomocnicze: Skeleton-lab5.1.java, Skeleton-lab5.2.java, Skeleton-lab5.3.java, Skeleton-lab5.4.java, Skeleton-lab5.5.java)
- Laboratorium 6: Obiektowe systemy zarządzania bazą danych – 3. Obsługa złożonych struktur danych w OSZBD db4o; Flash, PDF, PDF-kolor, Pytania (Pliki pomocnicze: Skeleton-lab6.1.java, Skeleton-lab6.2.java, Skeleton-lab6.3.java, Skeleton-lab6.4.java, Skeleton-lab6.5.java , Skeleton-lab6.6.java)
- Laboratorium 7: Obiektowo–relacyjne systemy zarządzania bazą danych – 1. Podstawy; Flash, PDF, PDF-kolor, Pytania
- Laboratorium 8: Obiektowo–relacyjne systemy zarządzania bazą danych – 2. Kolekcje; Flash, PDF, PDF-kolor, Pytania, (Pliki pomocnicze: pracownicy.sql.zip)
- Laboratorium 9: Obiektowo–relacyjne systemy zarządzania bazą danych – 3. Zaawansowane zagadnienia; Flash,PDF, PDF-kolor, Pytania, (Pliki pomocnicze: gatunki.sql.zip)