Uniwersytet Warszawski - Centralny System Uwierzytelniania
Strona główna

Bazy danych

Informacje ogólne

Kod przedmiotu: 1000-213bBAD
Kod Erasmus / ISCED: 11.302 Kod klasyfikacyjny przedmiotu składa się z trzech do pięciu cyfr, przy czym trzy pierwsze oznaczają klasyfikację dziedziny wg. Listy kodów dziedzin obowiązującej w programie Socrates/Erasmus, czwarta (dotąd na ogół 0) – ewentualne uszczegółowienie informacji o dyscyplinie, piąta – stopień zaawansowania przedmiotu ustalony na podstawie roku studiów, dla którego przedmiot jest przeznaczony. / (0612) Database and network design and administration Kod ISCED - Międzynarodowa Standardowa Klasyfikacja Kształcenia (International Standard Classification of Education) została opracowana przez UNESCO.
Nazwa przedmiotu: Bazy danych
Jednostka: Wydział Matematyki, Informatyki i Mechaniki
Grupy:
Punkty ECTS i inne: (brak) Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.

zobacz reguły punktacji
Język prowadzenia: polski
Rodzaj przedmiotu:

obowiązkowe

Wymagania (lista przedmiotów):

Podstawy matematyki 1000-211bPM
Programowanie obiektowe 1000-212bPO
Wstęp do programowania 1000-211bWPI

Tryb prowadzenia:

zdalnie

Skrócony opis:

Funkcje i struktury systemów baz danych oraz przegląd modeli danych. Relacyjne bazy danych. Języki zapytań do relacyjnych baz danych (algebra relacji, logika pierwszego rzędu, SQL i Datalog). Projektowanie baz danych: modelowanie pojęciowe i przejście do poziomu logicznego. Fizyczne aspekty składowania danych i wykonywania zapytań, metody optymalizacji zapytań, przetwarzanie transakcji.

Pełny opis:

Co to jest baza danych? O czym będzie?

1.modelowanie danych: tabele, drzewa, grafy

2. języki zapytań: pisanie zapytań, siła wyrazu, ewaluacja

3. meta-dane: więzy i zależności

4. wykorzystywanie i utrzymywanie perspektyw

5. transakcje

Języki zapytań dla relacyjnych baz danych.

1. logika pierwszego rzędu (FO)

2. algebra relacji (RA)

3. SQL

4. równoważność jezyków

Specyfika SQLa: agregacja i nulle.

1. semantyka multizbiorowa, agregacja

2. różne role wartości NULL

3. semantyka wartości NULL w SQLu

4. semantyka pewnych odpowiedzi (*)

5. różne złączenia

Rekurencja (*)

1. czego się nie da wyrazić w FO: osiągalność

2. Datalog

3. RA z iteracją (while, inflationary while)

4. porównanie z klasami złożoności i rozszerzeniami FO

5. ograniczona rekurencja w SQLu

Pojęciowy model danych

1. modelowanie dziedziny jako analiza rzeczywistości

2. obiektowe modelowanie dziedziny

3. elementy języka UML

Logiczny model danych

1. do modelu dziedziny do projektu bazy danych

2. od obiektów do relacji (reprezentacja hierarchii dziedziczenia)

3. rola metadanych (więzy)

4. zależności funkcyjne, klucze (PRIMARY KEY, UNIQUE)

5. zależności inkluzji (REFERENCES)

6. inne więzy (CONSTRAINT)

7. krótko o anomaliach, redundancji i postaci BCNF

Normalizacja (*)

1. anomalie; co to jest redundancja?

2. wyprowadzanie zależności funkcyjnych

3. dekompozycja z rzutowaniem zależności

4. BCNF i algorytm dekompozycji

5. odzyskiwanie informacji (lossless join)

6. utrata zależności przy dekompozycji i 3NF

7. dekompozycja do 3NF

Perspektywy i wyzwalacze

1. perspektywy

2. autoryzacja (grant, revoke)

3. wyzwalacze i operacje na perspektywach

4. materializowane perspektywy i ich utrzymywanie (*)

5. utrzymywanie domknięcia przechodniego bez rekurencji (*)

XML (*)

1. jak modelować dane o hierarchicznej strukturze?

2. drzewa i dokumenty XML

3. języki definiowania schematu: DTD, XML Schema, RelaxNG.

4. jezyki zapytań: FO vs. XPath, Xquery

Grafowe bazy danych (*)

1. grafy i języki z rekurencją: RPQ

2. RDF i SPARQL

3. LPG i Cypher

Ewaluacja zapytań

1. algorytmy dla operacji RA (w modelu RAM)

a. suma, rzutowanie, selekcja przez full-scan (liniowo)

b. złączenie, różnica, eliminacja duplikatow i grupowanie przez sortowanie (liniowo-logarytmicznie + rozmiar wyniku), lub przez haszowanie

2. optymalizacja planów zapytań przez minimalizację rozmiaru pośrednich wyników: proste heurystyki (przepisywanie, SIP)

3. twierdzenie o homomorfizmie i minimalizacja zapytań koniunkcyjnych (*)

4. ewaluacja zapytań XPath bez porównań (*)

5. ograniczenie AGM i pesymistycznie optymalne algorytmy obliczania złączeń (*)

Algorytmy w modelu I/O (*)

1. model I/O: pamiec z ewnetrzna, strony i ramki

2. trzy podstawowe “operacje”: skanowanie, sortowanie i wyszukiwanie

3. skanowanie: blokowanie odczytów

4. sortowanie w pamięci zewnętrznej

5. realizacja słownika (indeksu): B+ drzewa, hash-table

Transakcje

1. realistyczny model: wielu klientów, awarie systemu

2. ACID

3. poziomy izolacji

4. implementacja poziomu serializable: “conflict-serializable” i 2PL (*)

5. wykrywanie zakleszczenia (*)

Rozproszone bazy danych (*)

1. model rozproszony

2. 2PC

(*) – tematy opcjonalne, do wyboru dla prowadzącego

Literatura:

1. J. Ulmann, J. Widom, Podstawowy wykład z systemów baz danych, WNT 2000.

2. S. Abiteboul, R. Hull, V. Vianu, Foundations of databases , Addison - Wesley 1995

3. L. Banachowski, K. Stencel, Bazy danych. Projektowanie aplikacji na serwerze, EXIT, 2001.

Efekty uczenia się:

Wiedza

* Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie programowania, algorytmów i złożoności, architektury systemów komputerowych, systemów operacyjnych, technologii sieciowych, języków i paradygmatów programowania, baz danych, inżynierii oprogramowania (K_W02).

* Ma wiedzę na temat zarządzania informacją, w tym dotyczącą systemów baz danych, modelowania danych, składowania i wyszukiwania informacji (K_W08), w szczególności:

1. Ma uporządkowaną wiedzę w zakresie składni i semantyki języka zapytań pierwszego rzędu.

2. Zna najważniejsze własności algebry relacji.

3. Ma pełną wiedzę w zakresie teorii zależności funkcyjnych i postaci normalnych.

4. Zna podstawowe własności języka zapytań SQL.

5. Ma ogólną wiedzę na temat zasad projektowania baz danych.

6. Dobrze rozumie rolę i znaczenie transakcji w bazach danych.

Umiejętności

* Potrafi pozyskiwać informacje z literatury, baz wiedzy, Internetu oraz innych wiarygodnych źródeł, integrować je, dokonywać ich interpretacji oraz wyciągać wnioski i formułować opinie (K_U02).

* Potrafi samodzielnie planować i realizować własne uczenie się przez całe życie (K_U09).

* Potrafi tworzyć proste, bezpieczne aplikacje internetowe z wykorzystaniem baz danych oraz projektować dla nich wygodny interfejs użytkownika (K_U14),

* Potrafi budować proste systemy bazodanowe wykorzystujące przynajmniej jeden z najbardziej popularnych systemów zarządzania bazą danych; potrafi formułować zapytania do bazy danych w wybranym języku zapytań (K_U15)

* Ponadto:

1. Potrafi formułować zapytania SQL.

2. Potrafi pisać programy składowanie i wyzwalacze w co najmniej jednym języku programowania składowanego.

3. Potrafi rozpoznać anomalie w projekcie bazy danych i doprowadzić ją do odpowiedniej postaci normalnej.

4. Potrafi zaprojektować i zaimplementować relacyjną bazę danych.

5. Ma podstawowe umiejętności w zakresie strojenia relacyjnych baz danych.

Kompetencje

* Student jest gotów do krytycznej oceny posiadanej wiedzy i odbieranych treści (K_K01).

* Student jest gotów do pracy z zachowaniem uczciwości intelektualnej w działaniach własnych i innych osób; przestrzegania zasad etyki zawodowej i wymagania tego od innych oraz dbałości o dorobek i tradycje zawodu informatyka (K_K02).

* Student jest gotów do uznawania znaczenia wiedzy w rozwiązywaniu problemów poznawczych i praktycznych oraz wyszukiwania informacji w literaturze oraz zasięgania opinii ekspertów (K_K03).

* Student jest gotów do wypełniania zobowiązań społecznych związanych z racjonalnym i bezpiecznym przetwarzaniem danych (K_K04).

Metody i kryteria oceniania:

Składniki oceny:

- mikrozadania: 10 małych prac domowych, każde warte 1 punkt = 10 punktów;

- projekt: oceniany w skali 0-20 punktów;

- klasówka z SQLa (w czasie laboratorium, 90 minut): 5 zadań po 4 punkty = 20 punktów;

- klasówka z modelowania (w czasie wykładu, 90 minut): 2 zadania po 10 punktów = 20 punktów;

- egzamin pisemny (120 minut): 3 zadania po 10 punktów = 30 punktów.

Suma punktów (0-100) decyduje o uzyskanej ocenie, zgodnie z następującymi progami: 50 na 3, 60 na 3+, 70 na 4, 80 na 4+, 90 na 5.

Istnieje możliwość zastąpienia egzaminu pisemnego egzaminem ustnym w terminie zerowym. Dopuszczenie do tego egzaminu wymaga zdobycia co najmniej 65 punktów z mikrozadań, projektu i obu klasówek (łącznie).

W drugim terminie można poprawić każdy ze składników oceny (do ostatecznej liczby punktów brany jest lepszy z dwóch wyników). Sumaryczna liczba punktów możliwa do uzyskania za każdy składnik oraz progi na poszczególne oceny w drugim terminie będą takie same, jak w pierwszym terminie. Podejście do którejś z klasówek lub egzaminu w drugim terminie polega na oddaniu rozwiązań zadań z odpowiedniego segmentu egzaminu poprawkowego (180 minut). Reguły poprawiania mikrozadań i projektu ustalają prowadzący laboratoria.

Przedmiot nie jest oferowany w żadnym z aktualnych cykli dydaktycznych.
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski.
Krakowskie Przedmieście 26/28
00-927 Warszawa
tel: +48 22 55 20 000 https://uw.edu.pl/
kontakt deklaracja dostępności USOSweb 7.0.2.0-1 (2024-03-12)