Wykład podstawowy stanowiący wprowadzenie do systemów baz danych i hurtowni danych. Zakres wykładu obejmuje model relacyjnej bazy danych, system zarządzania bazą danych, język zapytań SQL, struktury fizyczne i logiczne bazy danych, programowanie funkcji i procedur składowanych, wielowymiarowe modele hurtowni danych, procesy ETL, przetwarzanie analityczne danych. Materiał teoretyczny jest ilustrowany ćwiczeniami praktycznymi w środowisku PostgreSQL.
Zawartość:
- Wprowadzenie do baz danych: motywacje, definicja pojęcia "baza danych", relacyjna baza danych, rozwój systemów baz danych, własności systemu zarządzania bazą danych
- Modelowanie baz danych - diagramy E/R: cel modelowania danych, zbiory encji, atrybut czy zbiór encji, zbiory związków, notacja diagramów E/R, krotność zbioru związków, role, związki wielokrotne, klucze, słabe zbiory encji, modelowanie atrybutów wielowartościowych, podklasy
- Relacyjny model danych: pojęcie relacji, powiązania między relacjami, transformacja zbioru encji do schematu relacji, transformacja słabych zbiorów encji, transformacja podklas
- Normalizacja relacji: anomalie, pierwsza, druga i trzecia postac normalna relacji, klucze i zależności funkcyjne
- Zarządzanie współbieżnym dostępem użytkowników do bazy danych: problemy współbieżnego dostępu (brudny odczyt, niepowtarzalny odczyt, fantom), definiowanie transakcji, poziomy izolacji transakcji
- Struktury fizyczne w bazach danych: plik sekwencyjny, plik posortowany, indeks, indeks wielopoziomowy B-drzewo, indeks haszowany
- Wprowadzenie do języka SQL: pełny odczyt tabeli, sortowanie, ograniczanie wyników zapytania, selekcja, operatory selekcji, projekcja, funkcje SQL, wartości puste, eliminacja duplikatów, komentarze, połączenie kartezjańskie, połączenie z warunkiem połączeniowym, połączenie wielokrotne, połączenie zewnętrzne, połączenie zwrotne, operacje zbiorowe, agregacja i funkcje grupowe, selekcja grup, podzapytania, podzapytania skorelowane, podzapytania With, podzapytania rekursywne, funkcje okna, funkcje rankingowe, zaawansowana agregacja, tworzenie tabel, dodawanie/usuwanie kolumn, wstawianie/usuwanie/modyfikacja rekordów, zarządzanie transakcjami, ograniczenia integralnościowe, widoki, widoki materializowane, bazy danych, schematy, tworzenie indeksów.
- Wprowadzenie do języka programowania PL/pgSQL: blok kodu, zmienne, instrukcje sterujące (warunkowe, pętle), tablice, tablice wielowymiarowe, wyjątki, debugowanie i testowanie kodu, wykonywanie operacji SQL, zapytania jednorekordowe i wielorekordowe, kursory, operacje na plikach, procedury i funkcje składowane, tryby przekazywania parametrów, przeciążanie, wyzwalacze reagujące na zmiany danych, wyzwalacze reagujące na zdarzenia systemowe.
- Wprowadzenie do Business Intelligence: architektura środowiska hurtowni danych, przetwarzanie OLAP, procesy ETL, wielowymiarowy model danych i jego implementacje, relizacja procesów ETL w środowisku Pentaho Data Integration
- Zaawansowane systemy baz danych: systemy NoSQL (MongoDB, Cassandra, Redis), przetwarzanie danych przestrzennych (PostGIS), przetwarzanie strumieni danych, replikacja baz danych
|