Module also offered within study programmes:
General information:
Name:
Databases 2
Course of study:
2018/2019
Code:
JIS-1-012-s
Faculty of:
Physics and Applied Computer Science
Study level:
First-cycle studies
Specialty:
-
Field of study:
Applied Computer Science
Semester:
0
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Responsible teacher:
dr inż. Dydejczyk Antoni (dydejcz@agh.edu.pl)
Academic teachers:
dr inż. Dydejczyk Antoni (dydejcz@agh.edu.pl)
Module summary

Optymalizacja w relacyjnych bazach danych. Rozproszone bazy danych i teoria CAP. Wprowadzenie do baz danych XML, obiektowych i typu NoSQL. Przetwarzanie analityczne z wykorzystaniem języka MDX.

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
M_K001 Student umie przedstawić wykonany projekt w sposób komunikatywny i potrafi określić warunki jego komercjalizacji. IS1A_K01, IS1A_K03 Execution of laboratory classes,
Execution of a project,
Engineering project
Skills
M_U001 Student potrafi opracować prostą aplikację bazodanową z wykorzystaniem obiektów składowanych w bazie danych, danych XML składowanych w bazie danych lub danych zagregowanych składowanych w strukturach typu JSON. IS1A_U06, IS1A_U05 Execution of laboratory classes,
Execution of a project
M_U002 Student potrafi poprawnie przeprowadzić analizę zapytań SQL w oparciu o narzędzia udostępnione w systemach zarządzania w bazach danych. Potrafi wykorzystać rozbudowane struktury danych w relacyjnych bazach danych. Potrafi skonfigurować rozproszone systemy relacyjnych baz danych. IS1A_U06, IS1A_U05, IS1A_U01 Execution of laboratory classes,
Execution of a project
Knowledge
M_W001 Student dysponuje aktualną wiedzą na temat realizacji projektów bazodanowych opartych o struktury XML, dane obiektowe, struktury zagregowane przechowywane w typie JSON. IS1A_W03, IS1A_W02 Execution of laboratory classes,
Execution of a project,
Engineering project,
Examination,
Activity during classes
M_W002 Student zna i rozumie rozszerzone* pojęcia i zagadnienia związane z relacyjnymi bazami danych. * - pod pojęciem "rozszerzone" należy rozumieć wszystkie pojęcia omawiane w ramach wykładu IS1A_W03 Engineering project,
Execution of laboratory classes,
Execution of a project,
Examination,
Activity during classes
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
M_K001 Student umie przedstawić wykonany projekt w sposób komunikatywny i potrafi określić warunki jego komercjalizacji. - - - - - - - - - + -
Skills
M_U001 Student potrafi opracować prostą aplikację bazodanową z wykorzystaniem obiektów składowanych w bazie danych, danych XML składowanych w bazie danych lub danych zagregowanych składowanych w strukturach typu JSON. - - - + - - - - - + -
M_U002 Student potrafi poprawnie przeprowadzić analizę zapytań SQL w oparciu o narzędzia udostępnione w systemach zarządzania w bazach danych. Potrafi wykorzystać rozbudowane struktury danych w relacyjnych bazach danych. Potrafi skonfigurować rozproszone systemy relacyjnych baz danych. - - - + - - - - - + -
Knowledge
M_W001 Student dysponuje aktualną wiedzą na temat realizacji projektów bazodanowych opartych o struktury XML, dane obiektowe, struktury zagregowane przechowywane w typie JSON. + - + + - - - - - + -
M_W002 Student zna i rozumie rozszerzone* pojęcia i zagadnienia związane z relacyjnymi bazami danych. * - pod pojęciem "rozszerzone" należy rozumieć wszystkie pojęcia omawiane w ramach wykładu + - + + - - - - - + -
Module content
Lectures:
  1. Optymalizacja w relacyjnych bazach danych

    Porównanie możliwości oferowanych przez komercyjne relacyjne bazy danych. Bezpieczeństwo i administracja – realizacja uwierzytelnienia i autoryzacji. Buforowanie danych. Ścieżki dostępu do pojedynczych tabel. Rodzaje złączeń. Przetwarzanie zapytań – analiza, normalizacja, analiza semantyczna, uproszczenie i restrukturyzacja. Algebraiczne reguły transformacji zapytań. Kosztowa optymalizacja zapytań. Statystyki i koncepcja histogramów. Selektywność danych i jej wyznaczanie. Typy drzew zapytań i zagadnienie określania porządku wykonywania operacji połączenia. Narzędzia wspierające optymalizację przetwarzania zapytań.

  2. Rozproszone bazy danych

    Systemy rozproszonych baz danych. Zalety i wady rozproszonych baz danych. Dwanaście reguł C.J. Date’a. Podstawowa implementacja systemu rozproszonej bazy danych w oparciu o relacyjny model danych. Zarządzanie transakcjami rozproszonymi

  3. Obiektowe bazy danych

    Obiektowe bazy danych. Podstawowe koncepcje obiektowego modelu danych. Modelowanie abstrakcyjnych typów danych. Mechanizmy dziedziczenia. Hierarchiczne zależności między obiektami. Model obiektowo–relacyjnej bazy danych. Manifest systemów baz danych trzeciej generacji – CADF. Elementy obiektowe w standardzie SQL:1999 (SQL3). Model obiektowy ODMG. Opis modelu obiektowego (OM). Język definicji schematu obiektowej bazy danych (ODL). OQL – obiektowy język zapytań wzorowany na SQL. Rozszerzenia obiektowych języków OML.

  4. Bazy danych XML, dane XML w relacyjnych bazach danych

    Typy dokumentów XML i ich wpływ na rozwój baz danych. Charakterystyka języków zapytań wykorzystywanych do przetwarzania dokumentów XML – XPath i XQuery . Baza danych dokumentów XML, sposoby przechowywania i mechanizmy przetwarzania dokumentów XML. Składowanie dokumentów XML w relacyjnej bazie. Publikowanie dokumentów XML z tabel relacyjnych oraz generowanie tabel relacyjnych z dokumentów XML. Języki zapytań SQL/XML oraz publikacji dokumentów XML w standardzie SQL:2003.

  5. Technologia OLAP – przetwarzanie analityczne danych

    Wprowadzenie do technologii implementowanych w hurtowniach danych. Oprogramowanie ETL. Odświeżanie hurtowni danych. Indeksowanie danych. Partycjonowanie danych i indeksów. Kompresja danych i indeksów. Metadane opisujące dane przechowywane w hurtowni danych. Charakterystyka przetwarzania analitycznego (On–Line Analytical Processing – OLAP). Wielowymiarowy model danych (wymiary i fakty). Implementacja modelu wielowymiarowego w serwerach relacyjnych (ROLAP) oraz wielowymiarowych (MOLAP). Efektywność przetwarzania OLAP. Perspektywy zmaterializowane.

Laboratory classes:
-
Project classes:
  1. Optymalizacja zapytań w relacyjnych bazach danych

    Efekty kształcenia:

    • student potrafi określić i przeprowadzić analizę zapytania SQL w oparciu o narzędzia zawarte w bazie danych,
    • student potrafi określić rodzaj wykorzystanych w zapytaniu metod dostępu do danych,
    • student potrafi określić selektywność poszczególnych elementów zapytania.

  2. Wykorzystanie procedur składowanych do realizacji określonych zadań w bazach danych

    Efekty kształcenia:

    • student potrafi wykorzystać wbudowany w bazę danych język do realizacji procedur składowanych,
    • student rozumie warunki wykorzystania języka wewnętrznego do realizacji procedur składowanych,
    • student umie utworzyć proste procedury składowane realizujące określoną funkcjonalność.

  3. Tworzenie struktur danych w relacyjnej bazie danych z wykorzystaniem języka C#

    Efekty kształcenia:

    • student potrafi wykorzystać języki programowania do tworzenia procedur składowanych,
    • student umie poprawnie uruchomić procedurę składowaną opracowaną w języku programowania,
    • student rozumie warunki wykorzystania języków programowania do tworzenia procedur składowanych.

  4. Tworzenie rozproszonej struktury relacyjnych baz danych

    Efekty kształcenia:

    • student potrafi opracować prosty schemat rozproszonej bazy danych,
    • student potrafi prawidłowo opracować połączenia pomiędzy węzłami rozproszonej bazy danych,
    • student potrafi wykonać proste zapytanie rozproszone w ramach rozproszonej bazy danych.

  5. Przetwarzanie danych obiektowych w relacyjnych bazach danych

    Efekty kształcenia:

    • student potrafi wykorzystać obiekty w obiektowo-relacyjnych bazach danych,
    • student potrafi opracować prostą aplikację wykorzystującą obiekty składowane w obiektowo-relacyjnej bazie danych.

  6. Przetwarzanie danych XML w relacyjnych bazach danych

    Efekty kształcenia:

    • student potrafi wykorzystać struktury i narzędzia dostępne w relacyjnych bazach danych do przetwarzania dokumentów XML,
    • student potrafi opracować prostą aplikację wykorzystującą dokumenty XML składowane w relacyjnej bazie danych.

  7. Język MDX w przetwarzaniu OLAP

    Efekty kształcenia:

    • student potrafi opracować proste zapytania MDX do struktur OLAP.

Others:

W trakcie semestru student realizuje projekt. Temat projektu wybiera z dostępnej listy student po konsultacji z prowadzącym laboratorium. W ramach projektu należy rozwiązać problem bazodanowy, dostarczając rozwiązanie programistyczne, środowisko testowe do realizacji projektu oraz dokumentację techniczną projektu. Język do realizacji projektu uzgodniony zostaje z prowadzącym laboratorium.
Efekty kształcenia:

  • student potrafi samodzielnie opracować projekt bazodanowy, czyli: zdefiniować cele i przeprowadzić analizę wymagań użytkownika, zaprojektować podstawową funkcjonalność realizowaną przez zaproponowane rozwiązanie,
  • student potrafi opracować aplikację realizującą założoną funkcjonalność,
  • student potrafi opracować dokumentację opisującą proces tworzenia aplikacji bazodanowej, dokumentację wdrożeniową i techniczną umożliwiającą rozbudowę opracowanego projektu.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 151 h
Module ECTS credits 6 ECTS
Participation in lectures 30 h
Realization of independently performed tasks 50 h
Participation in laboratory classes 24 h
Preparation for classes 20 h
Contact hours 5 h
Completion of a project 20 h
Examination or Final test 2 h
Additional information
Method of calculating the final grade:

W ramach laboratorium komputerowego studenci wykonują szereg ćwiczeń, za które mogą zdobyć określoną liczbę punktów. Procent uzyskanych punktów przeliczany jest zgodnie z Regulaminem Studiów AGH na ocenę końcową z laboratorium.
Projekt programistyczny oceniany będzie zgodnie ze szczegółowymi kryteriami zamieszczonymi na stronie przedmiotu oraz przedstawionymi na pierwszych zajęciach.
Moduł kończy się egzaminem.

Ocena końcowa z laboratorium jest średnią ważoną z punków uzyskanych podczas zajęć laboratoryjnych i z realizacji projektu, przy czym ocena z zajęć wchodzi z wagą 60% a z projektu z wagą 40%.
Ocena końcowa z modułu obliczana jest jako średnia ważona ocen zaliczenia laboratorium i egzaminu, przy czym ocena z laboratorium wchodzi do oceny końcowej z wagą 45%, a ocena z egzaminu z wagą 55%.

Prerequisites and additional requirements:
  • Umiejętność tworzenia aplikacji w języku C++ i Java
  • Ukończony kurs bazy danych I
Recommended literature and teaching resources:
  • Thomas M. Connolly, Carolyn E. Begg, „Systemy baz danych”, Warszawa, RM 2004.
  • Ramez Elmasri, Shamkant B. Navathe, „Wprowadzenie do systemów baz danych”, Gliwice, Helion 2005.
  • Jeffrey D. Ullman, Jennifer Widom, „Podstawowy wykład z systemów baz danych”, WNT 2000.
Scientific publications of module course instructors related to the topic of the module:

Additional scientific publications not specified

Additional information:

Nieobecność na zajęciach wymaga od studenta samodzielnego opanowania przerobionego na zajęciach materiału i jego zaliczenia w formie sprawozdania lub projektu w wyznaczonym przez prowadzącego terminie.
Istnieje możliwość odrobienia nieobecności w innej grupie laboratoryjnej pod warunkiem dostępności miejsc w laboratorium i zgody prowadzącego zajęcia.
Student, który bez usprawiedliwienia opuścił więcej niż dwa zajęcia może zostać pozbawiony przez prowadzącego zajęcia możliwości wyrównania zaległości.