Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Bazy danych 1
Tok studiów:
2018/2019
Kod:
JIS-1-503-s
Wydział:
Fizyki i Informatyki Stosowanej
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Informatyka Stosowana
Semestr:
5
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Osoba odpowiedzialna:
dr inż. Dydejczyk Antoni (dydejcz@agh.edu.pl)
Osoby prowadzące:
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)
Krótka charakterystyka modułu

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.

Opis efektów kształcenia dla modułu zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń)
Wiedza
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 Wykonanie ćwiczeń laboratoryjnych,
Wykonanie projektu,
Udział w dyskusji,
Aktywność na zajęciach
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 Wykonanie ćwiczeń laboratoryjnych,
Wykonanie projektu,
Udział w dyskusji,
Aktywność na zajęciach
Umiejętności
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 Wykonanie ćwiczeń laboratoryjnych
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 Wykonanie ćwiczeń laboratoryjnych,
Wykonanie projektu
Kompetencje społeczne
M_K001 Student umie przedstawić wykonany projekt w sposób komunikatywny i potrafi określić warunki jego komercjalizacji. IS1A_K03, IS1A_K01 Wykonanie projektu,
Udział w dyskusji
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Inne
E-learning
Wiedza
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. + - + + - - - - - - -
Umiejętności
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. - - + + - - - - - - -
Kompetencje społeczne
M_K001 Student umie przedstawić wykonany projekt w sposób komunikatywny i potrafi określić warunki jego komercjalizacji. - - - + - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:
  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.

Ćwiczenia laboratoryjne:
  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.

Ćwiczenia projektowe:
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.

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 146 godz
Punkty ECTS za moduł 5 ECTS
Udział w wykładach 30 godz
Samodzielne studiowanie tematyki zajęć 30 godz
Udział w ćwiczeniach laboratoryjnych 18 godz
Dodatkowe godziny kontaktowe z nauczycielem 4 godz
Przygotowanie do zajęć 34 godz
Wykonanie projektu 30 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

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.

Wymagania wstępne i dodatkowe:

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

Zalecana literatura i pomoce naukowe:
  • 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.
Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Nie podano dodatkowych publikacji

Informacje dodatkowe:

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.