- Nazwa przedmiotu:
- Bazy danych
- Koordynator przedmiotu:
- Dr hab. inż. Maciej Grzenda, prof. uczelni
- Status przedmiotu:
- Obowiązkowy
- Poziom kształcenia:
- Studia I stopnia
- Program:
- Informatyka i Systemy Informacyjne
- Grupa przedmiotów:
- Wspólne
- Kod przedmiotu:
- 1120-IN000-ISP-0242
- Semestr nominalny:
- 4 / rok ak. 2020/2021
- Liczba punktów ECTS:
- 4
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- Formy zajęć i ich wymiar w semestrze:
-
- Wykład30h
- Ćwiczenia0h
- Laboratorium30h
- Projekt0h
- Lekcje komputerowe0h
- Wymagania wstępne:
- brak wymagań
- Limit liczby studentów:
- Laboratorium (ćwiczenia komputerowe) – 15-24 os. /grupa
- Cel przedmiotu:
- Celem przedmiotu jest przekazanie wiedzy na temat teorii i praktycznych zastosowań baz danych. Po ukończeniu kursu studenci powinni:
- posiadać wiedzę wystarczającą do zaprojektowania struktury bazy danych, w tym wykonania procesu normalizacji bazy danych,
- znać i prawidłowo stosować mechanizmy wymuszania spójności danych, takie jak mechanizmy zapewniania spójności referencyjnej, czy też unikalności wartości klucza,
- posługiwać się językiem SQL w celu selekcji i modyfikacji zawartości bazy danych,
- rozumieć i umieć zastosować przetwarzanie transakcyjne,
- umieć wykorzystywać zaawansowane mechanizmy systemów zarządzania bazą danych takie, jak procedury składowane,
- rozumieć sposoby zapewniania wydajności, w tym indeksy,
- posiadać podstawową wiedzę na temat administracji systemów baz danych, w tym m.in. metod zapewniania bezpieczeństwa baz danych na przykładzie RDBMS Oracle,
- posiadać podstawową wiedzę na temat hurtowni danych i zarządzania danymi przestrzennymi,
- znać wybrane zagadnienia architektury zaawansowanego systemu RDBMS na przykładzie Oracle Database,
- znać podstawowe cechy systemów Big Data oraz NoSQL.
- Treści kształcenia:
- Wykład:
Bazy danych - definicja. Systemy zarządzania bazą danych (DBMS).
Relacyjne bazy danych. Normalizacja i problem redundancji danych. Zapewnianie spójności danych – spójność referencyjna, unikalność wartości klucza. Język SQL – selekcja i modyfikacja zawartości bazy danych. Projektowanie baz danych. Przetwarzanie transakcyjne, izolacja transakcji, transakcje rozproszone. Realizacja równoległego przetwarzania transakcji – problem blokad i zarządzania izolacją. Programowanie serwerów baz danych – procedury składowane, widoki, wyzwalacze. Zapewnianie wydajności – indeksy, wykorzystanie statystyk i planów realizacji procedur, metody monitorowania wydajności. Zagadnienia bezpieczeństwa i metody konfiguracji serwerów baz danych na przykładzie RDBMS Oracle. Diagramy związków encji (entity-relationship).
Wybrane zagadnienia tworzenia hurtowni danych i systemów Business Intelligence. Wybrane zagadnienia zarządzania danymi przestrzennymi. Tworzenie aplikacji baz danych - zasady projektowania i podstawowe rozwiązania architektoniczne.
Dostęp do baz danych z aplikacji Java i .NET – nawiązywanie połączeń, efektywne wykonanie poleceń SQL. Wybrane zagadnienia architektury RDBMS Oracle: bazy danych, instancje, zarządzanie fizyczną organizacją danych (przestrzenie tabel, pliki), konfiguracja dostępu sieciowego, mechanizmy ochrony danych i odzyskiwania utraconych danych.
Laboratorium:
Systemy zarządzania bazą danych (DBMS). Relacyjne bazy danych. Normalizacja i problem redundancji danych. Zapewnianie spójności danych – spójność referencyjna, unikalność wartości klucza. Język SQL – selekcja i modyfikacja zawartości bazy danych. Projektowanie baz danych. Przetwarzanie transakcyjne, izolacja transakcji, blokady i zakleszczenia. Programowanie serwerów baz danych: procedury składowane. Indeksy i problematyka wydajności. Fizyczna organizacja danych. JDBC, kluczowe zagadnienia programowania aplikacji baz danych, w tym tworzenie kodu aplikacji klienckich. Wstęp do organizacji danych w hurtowni danych.
- Metody oceny:
- 2-3 zadania realizowane w trakcie laboratorium (w sumie maks. 70 punktów) oraz egzamin z tematyki wykładu (maks. 30 punktów). Zaliczenie wymaga zdobycia co najmniej 51 punktów.
Ocena końcowa wynika z łącznej zdobytej liczby punktów tj. 0-50 pkt: ocena dwa, 51-60: ocena trzy, 61-70: ocena trzy i pół, 71-80 ocena cztery, 81-90: ocena cztery i pół, powyżej 91pkt: ocena pięć.
- Egzamin:
- tak
- Literatura:
- 1. P. Beynon-Davies, Systemy baz danych, WNT, 2003.
2. R. Kimball, M. Ross, The Data Warehouse Toolkit, Wiley, 3rd Ed., 2013.
3. M. Kleppmann, Designing Data-Intensive Applications. The Big Ideas Behind Reliable, Scalable, and Maintanable Systems, O’Reilly, 2017 (Przetwarzanie danych w dużej skali: niezawodność, skalowalność i łatwość konserwacji systemów, Helion, 2018).
4. T. Kyte, Expert Oracle Database Architecture, Apress, 3rd Ed., 2014.
5. M. Otey, D. Otey, Microsoft SQL Server 2005: podręcznik programisty, Helion, 2007.
6. S. Sumathi, S. Esakkirajan, Fundamentals of Relational Database Management Systems, Springer Berlin Heidelberg, 2007.
- Witryna www przedmiotu:
- e.mini.pw.edu.pl
- Uwagi:
Efekty uczenia się
Profil ogólnoakademicki - wiedza
- Charakterystyka W01
- Ma ogólną teoretyczną wiedzę na temat baz danych
Weryfikacja: Egzamin
Powiązane charakterystyki kierunkowe:
K_W06
Powiązane charakterystyki obszarowe:
- Charakterystyka W02
- Zna zasady projektowania relacyjnych baz danych, ich normalizacji, zapewniania jakości danych i wydajności systemów baz danych
Weryfikacja: egzamin, ocena zadań wykonywanych w ramach laboratoriów
Powiązane charakterystyki kierunkowe:
K_W08
Powiązane charakterystyki obszarowe:
- Charakterystyka W03
- Zna język SQL w stopniu umożliwiającym wykonywanie kwerend oraz tworzenie i modyfikacji struktury tabel; Zna podstawowe mechanizmy zapewniane przez współczesne systemy zarządzania bazami danych
Weryfikacja: egzamin, ocena zadań wykonywanych w ramach laboratoriów
Powiązane charakterystyki kierunkowe:
K_W13
Powiązane charakterystyki obszarowe:
Profil ogólnoakademicki - umiejętności
- Charakterystyka U01
- Potrafi formułować zapytania do baz danych w języku SQL w celu uzyskania oczekiwanych informacji, w tym w celu wykonania agregacji danych zgromadzonych w bazach danych
Weryfikacja: egzamin, ocena zadań wykonywanych w ramach laboratoriów
Powiązane charakterystyki kierunkowe:
K_U05
Powiązane charakterystyki obszarowe:
- Charakterystyka U02
- Potrafi wykonywać aplikacje baz danych z wykorzystaniem standardu JDBC
Weryfikacja: egzamin, ocena zadań wykonywanych w ramach laboratoriów
Powiązane charakterystyki kierunkowe:
K_U19, K_U20
Powiązane charakterystyki obszarowe:
Profil ogólnoakademicki - kompetencje społeczne
- Charakterystyka K01
- Zna i rozumie wpływ niewłaściwej organizacji bazy danych (brak normalizacji danych, brak właściwych indeksów) na brak akceptowalnej wydajności i brak spójności danych systemu informatycznego
Weryfikacja: egzamin, ocena zadań wykonywanych w ramach laboratoriów
Powiązane charakterystyki kierunkowe:
K_K03
Powiązane charakterystyki obszarowe: