Module also offered within study programmes:
General information:
Name:
Databases 1
Course of study:
2018/2019
Code:
JIS-1-503-s
Faculty of:
Physics and Applied Computer Science
Study level:
First-cycle studies
Specialty:
-
Field of study:
Applied Computer Science
Semester:
5
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)
dr inż. Krupińska Grażyna (grazyna@fis.agh.edu.pl)
dr hab. inż. Zimnoch Mirosław (zimnoch@agh.edu.pl)
Module summary

Podstawowy kurs z relacyjnych baz danych i języka SQL. Umiejętność tworzenia bazodanowych aplikacji w technologii klient-serwer. Diagramy DFD i ERD w bazach danych.

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_K03, IS1A_K01 Execution of a project,
Participation in a discussion
Skills
M_U001 Student potrafi opracować poprawnie strukturę relacyjnej bazy danych wykorzystując diagramy ERD i reguły normalizacyjne. Umie wykorzystać narzędzia wspierające pracę programistyczną typu CASE. IS1A_U06 Execution of laboratory classes
M_U002 Student potrafi opracować prostą aplikację bazodanową w dowolnym systemie lub środowisku WWW. Potrafi poprawnie skonfigurować połączenie pomiędzy aplikacją a bazą danych wykorzystując odpowiednie interfejsy programistyczne. IS1A_U06, IS1A_U05, IS1A_U01, IS1A_U02 Execution of laboratory classes,
Execution of a project
Knowledge
M_W001 Student zna i rozumie podstawowe* pojęcia i zagadnienia związane z relacyjnymi bazami danych. * - pod pojęciem "podstawowe" należy rozumieć wszystkie pojęcia omawiane w ramach wykładu IS1A_W02, IS1A_W03 Execution of laboratory classes,
Execution of a project,
Participation in a discussion,
Activity during classes
M_W002 Student dysponuje aktualną wiedzą na temat realizacji projektów bazodanowych realizowanych w aplikacjach desktopowych czy serwisach WWW. IS1A_W06, IS1A_W07, IS1A_W02, IS1A_W03 Execution of laboratory classes,
Execution of a project,
Participation in a discussion,
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ć poprawnie strukturę relacyjnej bazy danych wykorzystując diagramy ERD i reguły normalizacyjne. Umie wykorzystać narzędzia wspierające pracę programistyczną typu CASE. - - + + - - - - - - -
M_U002 Student potrafi opracować prostą aplikację bazodanową w dowolnym systemie lub środowisku WWW. Potrafi poprawnie skonfigurować połączenie pomiędzy aplikacją a bazą danych wykorzystując odpowiednie interfejsy programistyczne. - - + + - - - - - - -
Knowledge
M_W001 Student zna i rozumie podstawowe* pojęcia i zagadnienia związane z relacyjnymi bazami danych. * - pod pojęciem "podstawowe" należy rozumieć wszystkie pojęcia omawiane w ramach wykładu + - + + - - - - - - -
M_W002 Student dysponuje aktualną wiedzą na temat realizacji projektów bazodanowych realizowanych w aplikacjach desktopowych czy serwisach WWW. + - + + - - - - - - -
Module content
Lectures:
  1. Podstawowa terminologia stosowana w bazach danych.

    Charakterystyka baz danych, wymagania stawiane bazom danych, cechy technologii baz danych, cechy systemu zarządzania bazą danych. Wprowadzenie do modeli baz danych. Charakterystyka użytkowników baz danych .

  2. Modelowanie diagramów ERD.

    Wprowadzenie do modelowania i projektowania systemów informatycznych. Model związków – encji z uwzględnieniem encji i ich atrybutów. Typy związków pomiędzy encjami oraz hierarchia encji. Omówienie diagramów ERD i DFD.

  3. Definicja modelu relacyjnego.

    Transformacja modelu związków – encji do modelu relacyjnego (transformacje encji, transformacje związków i transformacje hierarchii encji). Algebra relacyjna i rachunek relacyjny.

  4. Proces normalizacji w bazach danych.

    Proces normalizacji schematu logicznego. Zależności funkcyjne w procesie normalizacji, postacie normalne (pierwsza, druga, trzecia i BNCF).

  5. Wprowadzenie do języka SQL. Podstawowe operacje na danych w języku SQL.

    Grupy poleceń SQL – języki DDL, DML i DCL. Tworzenie struktury bazy danych przy pomocy języka definicji danych (DDL). Tworzenie i zarządzanie ograniczeniami integralności danych. Język manipulowania danymi (DML) – wstawianie, modyfikowanie i usuwanie danych z tabel. Wyszukiwanie informacji w relacyjnych bazach danych polecenie SELECT.

  6. Techniki złączeń i programowanie proceduralne w języku SQL.

    Łączenie tabel. Połączenia równościowe, nierównościowe, połączenia zewnętrzne i połączenia rekursywne. Podzapytania zwykłe i skorelowane. Widoki. Rozszerzenie języka SQL o mechanizmy programowania proceduralnego. Składnia programów, definiowanie zmiennych i stałych, podstawowe konstrukcje sterujące (pętle, instrukcje warunkowe), kursory i wyjątki. Programowanie procedur, funkcji i pakietów składowanych w bazie danych. Wyzwalacze.

  7. Technologia klient – serwer w dostępie do bazy danych.

    Trójwarstwowy model dostępu do baz danych. Natywny dostęp do serwerów baz danych. Interfejsy dostępu do baz danych: CLI, ODBC, BDE oraz JDBC.

  8. Transakcja i jej własności.

    Formalny model transakcji. Sekwencyjne i współbieżne realizacje zbioru transakcji. Szeregowalność transakcji. Podstawowe algorytmy zarządzania współbieżnym wykonywaniem transakcji. Zjawisko zakleszczenia i algorytmy jego rozwiązywania.

  9. Zagadnienia bezpieczeństwa w bazach danych.

    Uprawnienia systemowe użytkowników, uprawnienia obiektowe użytkowników i polecenia zarządzanie tymi uprawnieniami.

  10. Organizacja plików w bazach danych.

    Pliki nieuporządkowane, uporządkowane i haszowe. Mechanizmy i koszt dostępu do różnych struktur danych plikowych. Indeksowanie danych. Rodzaje indeksów: podstawowy, zgrupowany, wtórny, rzadki i gęsty, indeks wielopoziomowy statyczny (ISAM), indeks wielopoziomowy dynamiczny (B+ drzewo).

  11. Bazy danych NoSQL.

    Omówienie podstawowych kategorii baz danych NoSQL: bazy klucz – wartość, bazy dokumentowe, bazy kolumnowe i bazy grafowe. Teoria CAP. Funkcjonalności baz danych typu NoSQL w relacyjnych bazach danych.

  12. Wprowadzenie do tematyki hurtowni danych.

    Przetwarzanie OLTP i OLAP. Technologia ETL. Operacyjny magazyn danych i składnica danych. Metadane. Budowa hurtowni danych.

Laboratory classes:
  1. Projektowanie diagramów DFD i ERD

    Efekty kształcenia:

    • student potrafi określić związki jeden do jeden, jeden do wiele i wiele do wiele w rozpatrywanym zagadnieniu,
    • student potrafi opracować prosty diagram DFD dla zadanego problemu przepływu informacji w bazach danych,
    • student potrafi opracować prosty diagram encji dla projektowanej bazy danych.

  2. Tworzenie struktur danych w relacyjnej bazie danych z wykorzystaniem języka SQL

    Efekty kształcenia:

    • student potrafi nawiązać połączenie z bazą danych z pomocą terminala znakowego,
    • student umie wykorzystać interfejs terminalowy do tworzenia i przeglądania utworzonych struktur danych,
    • student umie utworzyć tabelę danych, zmodyfikować jej strukturę, usunąć oraz wprowadzić ograniczenia,
    • student potrafi wykorzystać interfejs terminalowy do wprowadzenia danych do tabeli oraz wyświetlić jej zawartość.

  3. Struktury jeden do jeden, jeden do wiele oraz wiele do wiele w relacyjnych bazach danych

    Efekty kształcenia:

    • student potrafi opracować schemat tabel zależnych z wykorzystaniem klucza obcego,
    • student potrafi prawidłowo opracować zapytanie z wykorzystanie słów kluczowych JOIN, UNION i INTERSECT,
    • student potrafi opracować zapytanie wykorzystując słowa kluczowe GROUP BY i HAVING,
    • student potrafi utworzyć i wykorzystać widoki,
    • student potrafi opracować zapytania podrzędne – powiązane i niepowiązane.

  4. Narzędzia CASE do tworzenia struktur danych w relacyjnych bazach danych

    Efekty kształcenia:

    • student potrafi wykorzystać narzędzia CASE do tworzenia diagramów ERD,
    • student potrafi zweryfikować opracowany strukturę tabel zgodnie z zasadami normalizacji w bazach danych,
    • student umie wykorzystać narzędzia CASE do generowania skryptów tworzących struktury bazy danych.

  5. Programowanie w języku SQL i języku wbudowanym w bazie danych

    Efekty kształcenia:

    • student potrafi wykorzystać język SQL i język wbudowany do tworzenia procedur składowanych i wyzwalaczy,
    • student umie opracować procedurę składowaną realizującą prostą funkcjonalność bazodanową,
    • student umie opracować wyzwalacz do realizacji prostych zadań w bazie danych.

  6. Język C i wbudowany SQL, tworzenie statycznych i dynamicznych zapytań SQL

    Efekty kształcenia:

    • student potrafi opracować, skompilować i uruchomić prosty program w języku C z wykorzystaniem wbudowanego języka SQL,
    • student potrafi wykorzystać strukturę kursora do przeglądania danych w tabelach bazodanowych,
    • student potrafi opracować aplikację zawierającą strukturę dynamicznego zapytania SQL – funkcjonalność PREPARE.

  7. Dostęp do baz danych z języków C czy Java poprzez uniwersalne interfejsy

    Efekty kształcenia:

    • student potrafi opracować, skonfigurować, a następnie uruchomić aplikację w języku C przetwarzającą dane w relacyjnej bazie danych poprzez interfejs ODBC,
    • student potrafi opracować, skonfigurować, a następnie uruchomić aplikację w języku Java przetwarzającą dane w relacyjnej bazie danych poprzez interfejs JDBC,
    • student potrafi poprawnie napisać obsługę błędów generowanych podczas przetwarzania danych przez interfejsy ODBC lub JDBC.

  8. Dostęp do baz danych, bezpieczeństwo

    Efekty kształcenia:

    • student potrafi opracować schematy dostępu do opracowanych obiektów bazodanowych,
    • student potrafi poprawnie skonfigurować role bazodanowe,
    • student potrafi wykorzystać widoki i procedury składowane do realizacji zadań bezpieczeństwa w bazie danych.

Project classes:
Przygotowanie projektu

W trakcie semestru student realizuje projekt. Temat projektu wybiera student po konsultacji z prowadzącym laboratorium. W ramach projektu należy stworzyć działającą aplikację bazodanową z prostym interfejsem graficznym oraz szczegółową dokumentację wykonania 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 bazę danych,
  • student potrafi opracować diagram przepływu danych (DFD), zdefiniować encje (obiekty) i opracować diagram encji (ERD),
  • student potrafi opracować logiczną strukturę tabel, przeprowadzić analizę zależności funkcyjnych i normalizację tabel,
  • student potrafi opracować prostą aplikację realizującą założoną funkcjonalność,
  • student potrafi opracować dokumentację opisującą proces tworzenia aplikacji bazodanowej, dokumentację użytkownika oraz dokumentację techniczną umożliwiającą rozbudowę opracowanego projektu.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 146 h
Module ECTS credits 5 ECTS
Participation in lectures 30 h
Realization of independently performed tasks 30 h
Participation in laboratory classes 18 h
Contact hours 4 h
Preparation for classes 34 h
Completion of a project 30 h
Additional information
Method of calculating the final grade:

Ocena końcowa z przedmiotu jest wystawiona w oparciu o liczbę punktów, które student uzyskuje w trakcie realizacji zadań w ramach laboratorium. Uzyskana liczba punktów przeliczana jest zgodnie z Regulaminem Studiów AGH na ocenę końcową z przedmiotu.
Punkty uzyskiwane są za aktywny udział w laboratoriach, realizację projektu i kolokwium.
a. W ramach laboratorium komputerowego studenci wykonują szereg ćwiczeń, za które mogą zdobyć określoną liczbę punktów.
b. Projekt programistyczny oceniany będzie zgodnie ze szczegółowymi kryteriami zamieszczonymi na stronie przedmiotu oraz przedstawionymi na pierwszych zajęciach. Uzyskana liczba punktów za projekt stanowi kolejną składową oceny końcowej z przedmiotu.
c. W ramach zajęć na koniec odbędzie się jedna praca kontrolna sprawdzająca przygotowanie teoretyczne studentów za które można uzyskać dodatkowe punkty do zaliczenia.

Uzyskanie 50 punktów nie jest gwarantuje uzyskania zaliczenia. Warunkiem koniecznym do uzyskania zaliczenia jest oddanie projektu wraz z dokumentacją projektu oraz pozytywna ocena z kolokwium.

Prerequisites and additional requirements:

Umiejętność tworzenia aplikacji w języku C i Java

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 na laboratorium i zgody prowadzącego zajęcia.
Student, który bez usprawiedliwienia opuścił więcej niż 2 zajęcia może zostać pozbawiony, przez prowadzącego zajęcia, możliwości wyrównania zaległości.