Bazy danych
1000-ZiBAD
W ramach przedmiotu omówione zostaną następujące tematy:
- historia rozwoju i różne rodzaje baz danych aż po czasy współczesne, własności baz danych
- język SQL (w szczególności stosowanie wbudowanych funkcji, operatory teorii zbiorów, złączenia, podzapytania, agregacje, perspektywy, zapytania rekurencyjne, DDL, DML, kwestie null, zaawansowane typy danych jak XML, JSON, CLOB, BLOB, różnice pomiędzy dialektami SQL w różnych relacyjnych SZBD)
- zarządzanie użytkownikami, uprawnieniami, schematami i bazami danych z poziomu języka zapytań
- algebra relacji i prezentacja innych wybranych podejść formalnych
- projektowanie relacyjnych baz danych, diagramy encji
- zależności funkcyjne i normalizacja
- transakcje i współbieżność,
- proceduralne rozszerzenia języka SQL (rodzaje języków, funkcje składowane, pakiety, wyjątki, kursory, wyzwalacze, reguły)
- plany zapytań, modele kosztów i optymalizacja
- języki Datalog i JsonPath
- fizyczna struktura SZBD, budowa indeksów
- konfiguracja nasłuchu w wybranych SZBD
- bezpieczeństwo baz danych
- wprowadzenie do rozproszonych bazy danych i hurtowni danych
Wykład przede wszystkim skupi się na teoretycznych aspektach powyższych tematów, podczas gdy zajęcia laboratoryjne skoncentrowane będą na rozwijaniu praktycznych umiejętności obsługi baz danych z poziomu SQL.
Całkowity nakład pracy studenta
1. Godziny realizowane z udziałem nauczycieli: 70 godzin (26 – wykład, 26 – laboratorium, 18 – konsultacje)
2. Czas poświęcony na pracę indywidualną studenta: 90 godzin
3. Czas wymagany do przygotowania się do uczestnictwa w procesie oceniania: 40 godzin
Razem: 200 h
Efekty uczenia się - wiedza
Po ukończeniu kursu student osiąga następujące efekty (kody odnoszą się do efektów dla studiów 1 stopnia na kierunku informatyka - studia inżynierskie):
W1. ma uporządkowaną wiedzę ogólną z relacyjnych baz danych (w tym o zależnościach funkcyjnych, transakcjach i procesie normalizacji) - K_W09
W2. ma uporządkowaną wiedzę o podstawach języka SQL (podstawowe typy danych, główne polecenia DDL i DML, wykorzystanie wbudowanych funkcji, złączenia wszystkich typów, agregacje, podzapytania, perspektywy, rekurencja) - K_W02
W3. ma ogólną wiedzę o różnicach pomiędzy różnymi implementacjami relacyjnych SZBD, w szczególności o różnicach w dialektach SQL - K_W09
W4. ma ogólną wiedzę o różnych typach diagramów encji oraz szczegółową wiedzę o minimum jednym z nich - K_W11
W5. ma uporządkowaną wiedzę o proceduralnych rozszerzeniach
języka SQL (funkcje, kursory, wyzwalacze) - K_W03
W6. ma ogólną wiedzę na temat planów zapytań, modelów kosztów
oraz budowy i zastosowań indeksów - K_W02, K_W04
W7. ma ogólną wiedzę na temat budowy relacyjnego SZBD -
K_W02, K_W09
W8. ma podstawową wiedzę o rozproszonych bazach danych -
K_W02, K_W09
Efekty uczenia się - umiejętności
Po ukończeniu kursu student osiąga następujące efekty (kody odnoszą się do efektów dla studiów 1 stopnia na kierunku informatyka - studia inżynierskie):
U1. umie stworzyć w języku encji i związków prosty projekt konceptualnej bazy danych i przekształcić go w model relacyjny,
U2. potrafi formułować zapytania do bazy danych w języku SQL (w szczególności łączące dane z wielu tabel jednocześnie), - K_U19
U3. potrafi tworzyć i normalizować schematy baz danych - K_U14, K_U17
U4. potrafi komunikować się z bazą danych z użyciem minimum jednego narzędzia wizualnego oraz jednego narzędzia tekstowego -K_U17,
U5. potrafi pozyskiwać informacje z Internetu oraz literatury na temat baz danych i elementów języka SQL - K_U02
U6. potrafi tworzyć zaawansowane funkcje i wyzwalacze w
proceduralnym rozszerzeniu języka SQL (np. PL/SQL lub
PL/pgSQL) - K_U19
U7. potrafi analizować i optymalizować zapytania - K_U19
U8. potrafi formułować zapytania o dane w więcej niż 1 języku
zapytań (np. SQL i JsonPath) - K_U19, K_U21
U9. potrafi skonfigurować wybrany SZBD w celu uzyskania
optymalnej wydajności i bezpiecznego udostępniania danych -
K_U13, K_U17
U10. potrafi pozyskiwać informacje z Internetu oraz literatury na
temat baz danych i elementów języka SQL - K_U02
Efekty uczenia się - kompetencje społeczne
Efekty kształcenia – kompetencje społeczne Po ukończeniu kursu student osiąga następujące efekty (kody odnoszą się do efektów dla studiów 1 stopnia na kierunku informatyka - studia inżynierskie):
K1. jest nastawiony na zdobywanie nowej wiedzy, umiejętności i doświadczeń, rozumie potrzebę ciągłego podnoszenia kompetencji zawodowych; - K_K06
K2. właściwie posługuje się terminologią fachową; - K_K05
K3. potrafi pozyskiwać informacje z literatury i Internetu, - K_K07
K4. samodzielnie i efektywnie pracuje z dużą ilością danych, dostrzega zależności i poprawnie wyciąga wnioski posługując się zasadami logiki - K_K04
Metody dydaktyczne podające
- wykład informacyjny (konwencjonalny)
- wykład konwersatoryjny
- pogadanka
Metody dydaktyczne poszukujące
- ćwiczeniowa
- klasyczna metoda problemowa
- laboratoryjna
Metody dydaktyczne w kształceniu online
- gry i symulacje
- metody służące prezentacji treści
Wymagania wstępne
Zna podstawowe pojęcia logiki i teorii zbiorów
Koordynatorzy przedmiotu
Kryteria oceniania
Zaliczenie laboratoriów na podstawie kolokwiów i pracy na zajęciach
Zaliczenie wykładu na podstawie egzaminu oraz dodatkowych projektów składowych zamieszczonych na Moodle
Literatura
Literatura podstawowa:
[1] S. Abiteboul, R. Hull, V. Vianu, "Foundations of databases", Addison-Wesley, 1995.
[2] L. Banachowski, E.Mrówka, K.Stencel, "Systemy baz danych. Wykłady i ćwiczenia, Wydawnictwo PJWSTK, 2004
[3] C. J. Date, H. Darwen, "SQL. Omówienie standardu języka", WNT 2000.
[4] Elmasri R., Navathe S., "Wprowadzenie do systemów baz danych." Wyd. Helion, 2005
[5] H. Garcia-Molina, J.D. Ullman, J. Widom, "Systemy baz danych. Pełny wykład." WNT, 2006
[6] U. Rogers, "Oracle: Przewodnik projektanta baz danych", WNT 1995.
[7] http://postgresql.org/docs/ (m.in. dokumentacja SQL w dialekcie PostgreSQL z odniesieniami do standardu SQL)
Literatura uzupełniająca:
[8] http://dev.mysql.com/doc/ (dokumentacja SQL w dialekcie MySQL)
[9] http://education.oracle.com/ (zbiór różnorodnych materiałów edukacyjnych, m.in. dotyczących SQL)
[10] https://msdn.microsoft.com/en-us/library/ms177563.aspx (dokumentacja języka MS Transact-SQL)
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i
terminach zajęć) mogą być dostępne w serwisie USOSweb: