Nazwa przedmiotu:
Bazy danych 1
Koordynator przedmiotu:
Piotr PAREWICZ
Status przedmiotu:
Obowiązkowy
Poziom kształcenia:
Studia II stopnia
Program:
Informatyka
Grupa przedmiotów:
Przedmioty techniczne - podstawowe
Kod przedmiotu:
BD
Semestr nominalny:
1 / rok ak. 2018/2019
Liczba punktów ECTS:
4
Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
125 godzin oszacowanie czasowego wymiaru nakładu pracy studenta --udział w zajęciach wykładowych - 30 godz. --udział w zajęciach laboratoryjnych, wraz z uzupełnieniami projektowymi poza czasem ćwiczeń - 30 godz. --studiowanie materiału podstawowego z materiałów podręcznikowych i przeglądanie materiałów wykładowych- 30 godz --dodatkowe przygotowanie do ćwiczeń laboratoryjnych - 20 godz --powtórzenie materiału przed kolokwiami - 15 godz.
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
--udział w zajęciach wykładowych - 30 godz. --udział w zajęciach laboratoryjnych, wraz z uzupełnieniami projektowymi poza czasem ćwiczeń - 30 godz. w sumie 60 godz. co daje ok. 2 ECTS
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
--udział w zajęciach laboratoryjnych, wraz z uzupełnieniami projektowymi poza czasem ćwiczeń - 30 godz. --dodatkowe przygotowanie do ćwiczeń laboratoryjnych - 20 godz w sumie 50 godz. co daje nieco poniżej 2 ECTS
Formy zajęć i ich wymiar w semestrze:
  • Wykład30h
  • Ćwiczenia0h
  • Laboratorium30h
  • Projekt0h
  • Lekcje komputerowe0h
Wymagania wstępne:
znajomość podstaw programowania
Limit liczby studentów:
100
Cel przedmiotu:
Kurs jest wprowadzeniem do technologii baz danych. Tematyka wykładu obejmuje problematykę modelowania danych, metodykę projektowania i implementacji relacyjnych baz danych (podstawowe zagadnienia), podstawy programowania aplikacji do baz danych i wybrane zagadnienia z zakresu zarządzania bazami danych. Relacyjny model danych jest omawiany zarówno od strony podstaw teoretycznych, jak i od strony praktycznych problemów implementacyjnych. W zakresie programowania aplikacji. Wykład zawiera wprowadzenie do języka SQL oraz omówienie technik konstruowania modułów programowych po stronie serwera i po stronie klienta. Ćwiczenia projektowe polegają na skonstruowaniu prostej bazy danych wraz z programem użytkowym - z wykorzystaniem narzędzi do projektowania i konstruowania baz danych i aplikacji.
Treści kształcenia:
Treść wykładu Baza danych, system zarządzania bazami danych, system bazy danych.Podstawowe własności bazy danych jako zorganizowanego zbioru danych. Dane a informacja: baza danych jako "magazyn informacji". Semantyka danych: obiekty rzeczywistego świata, atrybuty, związki, rekordy b.d. jako reprezentacja faktów. Rola SZBD. Interfejs użytkowy systemu bazy danych. Abstrakcyjny widok b.d. prezentowany na poziomie użytkowym. Model trójpoziomowy. Przegląd podstawowych zadań SZBD. Modele danych.Pojęcie modelu danych. Wstępna charakterystyka modelu relacyjnego, porównanie z modelami "przedrelacyjnymi": struktury danych i operacje widziane na poziomie użytkowym. Główne cechy modelu obiektowego. Modele danych w kontekście historii techlogii b.d. Model relacyjny w ujęciu nieformalnym. Własności tabeli jako implementacyjnej struktury danych w modelu relacyjnym. Dwa wymiary agregacji,przypisanie dziedzin wartości kolumnom, podstawowe operacje na tabelach, język operacji na tabelach jako język typu "set-at-a-time". Identyfikacja wierszy przez zawartość: pojecie klucza. Reprezentacja związków: pojęcie klucza obcego. Konfiguracja klas związków, min. i maks.krotność uczestnictwa (cardinality). Semantyczne warunki poprawności (Integrity constraints) dotyczące kluczy i kluczy obcych. Wprowadzenie do projektowania baz danych. Model ER. Zasady opisu struktury bazy danych w kategoriach klas encji i klas związków. Podstawowe decyzje projektowe na poziomie konceptualnym (przekształcenie klas związków do klas encji, problem atrybutów wielowartościowych, klasy encji o identyfikacji zewnętrznej, problem atrybutów opcjonalnych, itd. Zasady normalizacji (ujęcie nieformalne). Odwzorowanie do modelu relacyjnego. Specyfikacja struktury b.d. w DDL. Definiowanie dziedzin i semantycznych warunków poprawności. Opis struktury b.d. w słowniku danych. Język SQL.Konstrukcje DML. Konstrukcje DQL: wyrażenie SELECT jako specyfikacja sekwencji operacji na tabelach. Sładnia i semantyka podstawowych postaci wyrażenia SELECT, pojęciowa kolejność przetwarzania sekcji (klauzul). Wyrażenia akceptowalne w poszczególnych klauzulach. Konstrukcje wielopoziomowe: podzapytania skorelowane i nieskorelowane. Zasady formułowania zapytań w postaci wyrażeń SELECT: postacie równoważne. Semantya deklaratywna i semantyka proceduralna wyrażeń SELECT. Logika trójwartościowa w SQL: problem "wartości brakujących", anomalie związane ze znacznikiem NULL. Tabele wirtualne (tzw. perspektywy), dopuszczlne operacje na tabelach wirtualnych. Specyfikowanie złożonych warunków poprawności (frazy CHECK z podzapytaniami). Zarys matematycznych podstaw modelu relacyjnego. Relacja jako matematyczny model zbioru rekordów. Relacja, zmienna relacyjna, schemat relacji. Warunki poprawności w ujęciu formalnym. Przegląd operatorów algebry relacyjnej (z rozszerzeniem Date`a). Programowanie aplikacji do baz danych - wprowadzenie. Konstruowanie i programowanie aplikacji po stronie klienta. Poziom wywołań procedur API (CLI, ODBC...) - krótka charakterystyka. Poziom Embedded SQL: przekazywanie danych z/do programu użytkowego, kursory. Poziom wyspecjalizowanych klas obiektów w środowiskach do konstruowania aplikacji-porównanie (SQL* Forms, Visual, Basic, Delphi, Power Builder...). Programowanie aplikacji po stronie serwera. Rozszerzenia proceduralne SQL. Konstrukcja procedur wbudowanych, procedury wyzwalane zdarzeniami Ochrona spójności baz danych. Podstawowe problemy spójności bazy danych. Pojęcie transakcji. Mechanizmy zarządzaniam transakcjami w SZBD. Mechanizmy zarządzania współbieżnym dostępem do b.d. Wprowadzenie do organizacji fizycznej relacyjnych baz danych. Fizyczne rozmieszczenie tabel w pamięci zewnętrznej. Podział na bloki, adresowanie bloków. Rozwiązania organizacyjne i mechanizmy usprawniające dostęp do danych. Organizacja indeksów. Zasady korzystania z mechanizmów dostępu, podstawy optymalizajci zapytań. Zakres laboratorium Projektowanie baz danych: zaprojektowanie za pomocą narzędzia CASE struktury bazy danych dla prostego systemu informacyjnego i zdefiniowanie jej implementacji relacyjnej. Programowanie aplikacji klienckich do baz danych: opracowanie poleceń w języku SQL realizujących zadane operacje na bazie danych i wbudowanie ich w prosty interakcyjny program użytkowy skonstruowany w środowisku narzędzia do budowy aplikacji Programowanie aplikacji po stronie serwera: opracowanie pakietu procedur wbudowanych w bazę danych (w tym również procedur wyzwalanych zdarzeniami), realizujących zadane operacje. Podstawy optymalizacji zapytań: zbadanie przebiegu wykonania zapytań w zależności od zdefiniowanych ścieżek dostępu i postaci zapytań.
Metody oceny:
--ocena wiedzy i umiejętności wykazanych w opracowaniach zadań na kolokwiach (zadania o charakterze przeglądowym, problemowym i programistycznym) --ocena wiedzy i umiejętności wykazanych w ramach wykonania ćwiczeń laboratoryjnych
Egzamin:
nie
Literatura:
Garcia-Molina , Ullman , Widom Database Systems The Complete Book ed. 2 Pearson 2009 tłumaczenie polskie: Garcia-Molina , Ullman , Widom Systemy baz danych. Kompletny podręcznik Wyd II Helion 2011
Witryna www przedmiotu:
https://usosweb.usos.pw.edu.pl/kontroler.php?_action=katalog2/przedmioty/pokazPrzedmiot&prz_kod=103B-INxxx-ISP-BD
Uwagi:

Efekty uczenia się

Profil ogólnoakademicki - wiedza

Charakterystyka W_01
zna podstawowe własności relacyjnego modelu danych, zasady reprezentowania zbiorów rekordów jako relacji/tabel oraz podstawowe operacje na tabelach
Weryfikacja: kolokwium 1
Powiązane charakterystyki kierunkowe: K_W11
Powiązane charakterystyki obszarowe: I.P7S_WG
Charakterystyka W_02
zna podstawowe konstrukcje modelu ER i zasady reprezentowania struktury bazy danych w tym modelu
Weryfikacja: kolokwium 1
Powiązane charakterystyki kierunkowe: K_W11
Powiązane charakterystyki obszarowe: I.P7S_WG
Charakterystyka W_03
zna kryteria dla podstawowych decyzji projektowych podejmowanych w procesie konstruowania relacyjnych baz danych, w tym kryteria normalizacyjne
Weryfikacja: kolokwium 1, laboratorium ćwicz. 2,3
Powiązane charakterystyki kierunkowe: K_W11
Powiązane charakterystyki obszarowe: I.P7S_WG
Charakterystyka W_04
zna podstawowe konstrukcje języka SQL używane do definiowania tabel oraz do formułowania poleceń dostępu do danych
Weryfikacja: kolokwium 1, laboratorium ćwicz. 3-5
Powiązane charakterystyki kierunkowe: K_W08, K_W11
Powiązane charakterystyki obszarowe: I.P7S_WG, III.P7S_WG.o
Charakterystyka W_05
zna podstawowe konstrukcje wybranej implementacji SQL/PSM używane do zapisu procedur składowanych, w tym procedur wyzwalanych
Weryfikacja: laboratorium ćwicz. 7
Powiązane charakterystyki kierunkowe: K_W08, K_W11
Powiązane charakterystyki obszarowe: I.P7S_WG, III.P7S_WG.o
Charakterystyka W_06
zna podstawowy repertuar procedur interfejsu aplikacyjnego SZBD oraz podstawowe konstrukcje Embedded SQL używane do programowania interakcji między programem użytkowym i SZBD
Weryfikacja: kolokwium 1, laboratorium ćwicz. 5
Powiązane charakterystyki kierunkowe: K_W11
Powiązane charakterystyki obszarowe: I.P7S_WG
Charakterystyka W_07
zna na poziomie ogólnym architekturę i podstawowe zadania SZBD
Weryfikacja: kolokwium 2
Powiązane charakterystyki kierunkowe: K_W10, K_W11
Powiązane charakterystyki obszarowe: I.P7S_WG, III.P7S_WG.o
Charakterystyka W_08
ma elementarną wiedzę z zakresu fizycznej organizacji plików danych i indeksów relacyjnej bazy danych
Weryfikacja: kolokwium 2
Powiązane charakterystyki kierunkowe: K_W11
Powiązane charakterystyki obszarowe: I.P7S_WG
Charakterystyka W_09
zna metody wykonania przez SZBD operacji dostępu do danych i zasady szacowania czasu wykonania operacji
Weryfikacja: kolokwium 2
Powiązane charakterystyki kierunkowe: K_W11
Powiązane charakterystyki obszarowe: I.P7S_WG
Charakterystyka W_10
ma elementarną wiedzę z zakresu zasad zarządzania transakcjami przez SZBD
Weryfikacja: kolokwium 2
Powiązane charakterystyki kierunkowe: K_W11
Powiązane charakterystyki obszarowe: I.P7S_WG

Profil ogólnoakademicki - umiejętności

Charakterystyka U_01
potrafi zaprojektować w modelu ER strukturę prostej bazy danych na podstawie zadanych wymagań
Weryfikacja: laboratorium ćwicz. 2
Powiązane charakterystyki kierunkowe: K_U06
Powiązane charakterystyki obszarowe: I.P7S_UW
Charakterystyka U_02
potrafi przekształcić konceptualny schemat struktury prostej bazy danych w schemat implementacyjny, stosując kryteria normalizacyjne i inne podstawowe kryteria decyzji projektowych dla modelu relacyjnego
Weryfikacja: laboratorium ćwicz. 3
Powiązane charakterystyki kierunkowe: K_U06
Powiązane charakterystyki obszarowe: I.P7S_UW
Charakterystyka U_03
potrafi konstruować polecenia dostępu do tabel relacyjnej bazy danych w języku SQL
Weryfikacja: kolokwium 1, laboratorium ćwicz. 3,4
Powiązane charakterystyki kierunkowe: K_U06
Powiązane charakterystyki obszarowe: I.P7S_UW
Charakterystyka U_04
potrafi zaprogramować w podstawowym zakresie współpracę programu użytkowego z SZBD na poziomie wywołań interfejsu aplikacyjnego
Weryfikacja: laboratorium ćwicz. 5
Powiązane charakterystyki kierunkowe: K_U06
Powiązane charakterystyki obszarowe: I.P7S_UW
Charakterystyka U_05
potrafi zapisać złożony warunek poprawności w postaci procedury wyzwalanej
Weryfikacja: laboratorium ćwicz. 7
Powiązane charakterystyki kierunkowe: K_U06
Powiązane charakterystyki obszarowe: I.P7S_UW
Charakterystyka U_06
potrafi pogrupować operacje na danych w transakcje stosując kryteria zapewnienia niepodzielności sekwencji operacji
Weryfikacja: laboratorium ćwicz. 6
Powiązane charakterystyki kierunkowe: K_U06
Powiązane charakterystyki obszarowe: I.P7S_UW
Charakterystyka U_07
potrafi określić uwarunkowania i ograniczenia poszczególnych fizycznych metod wykonania operacji na tabelach
Weryfikacja: kolokwium 2
Powiązane charakterystyki kierunkowe: K_U06, K_U12
Powiązane charakterystyki obszarowe: I.P7S_UW, I.P7S_UO, III.P7S_UW.4.o
Charakterystyka U_08
potrafi oszacować porównawczo efektywność fizycznych metod wykonania operacji na tabelach dla różnych wielkości tabel i różnych konfiguracji zapytań
Weryfikacja: kolokwium 2
Powiązane charakterystyki kierunkowe: K_U08, K_U12, K_U06
Powiązane charakterystyki obszarowe: I.P7S_UW, III.P7S_UW.3.o, I.P7S_UO, III.P7S_UW.4.o
Charakterystyka U_09
potrafi ocenić-biorąc pod uwagę przewidywane operacje na tabelach-celowość utworzenia indeksów dla poszczególnych tabel
Weryfikacja: kolokwium 2, laboratorium ćwicz. 9
Powiązane charakterystyki kierunkowe: K_U06, K_U13
Powiązane charakterystyki obszarowe: I.P7S_UW, III.P7S_UW.3.o