Celem wykładu jest omówienie zasad konstrukcji relacyjnych baz danych oraz
opanowanie przez słuchaczy umiejętności profesjonalnej obsługi systemu baz
danych od strony użytkownika, czyli:
* umiejętności projektowania i tworzenia relacyjnych baz danych dla rzeczywistych zagadnień;
* sprawnego wyszukiwania i odzyskiwania informacji z baz danych przy pomocy języków SQL.
* pisania aplikacji z dostępem do baz danych;
* efektywnego wykorzystania dodatkowych możliwości systemu (perspektyw, transakcji, więzów, itp.).
Ponadto wykład pozwala słuchaczom poznać elementy systemów baz danych spoza
warstwy użytkownika (system nadzoru transakcji, zapewnienia bezpieczeństwa i
optymalizacji) oraz zapoznać się z innymi koncepcjami baz danych
wykraczającymi poza standard relacyjny (np. grafowe bazy danych, elementy
rozproszonych baz danych).
**Program wykładu:**
1. Podstawowe pojęcia baz danych i modelowanie konceptualne.
2. Relacyjne bazy danych. Języki opisu danych i języki zapytań. SQL.
3. Elementy aktywnych baz danych (więzy integralności, wyzwalacze).
4. Elementy systemów baz danych (transakcje, bezpieczeństwo i autoryzacja danych, połączenie relacyjnych języków zapytań z językami macierzystymi).
5. Teoria relacyjnych baz danych (zależności funkcyjne, normalizacja i denormalizacja).
6. Metody pisania aplikacji z dostępem do baz danych.
7. Inne modele baz danych (m.in. bazy grafowe, przetwarzanie dużych danych).
**Program ćwiczeń i pracowni:**
1. Zajęcia konwersatoryjne pomagające w praktycznym opanowaniu projektowania relacyjnych baz danych.
2. Opanowanie zapytań w językach SQL.
3. Zajęcia laboratoryjne pozwalające zapoznać się z systemami zarządzania bazami danych (PostgreSQL itp.).
4. Wykonanie kompletnego projektu niewielkiej bazy danych.
**Wymagania:** Podstawowa znajomość logiki nabyta np. na Logice dla
informatyków lub Wstępie do matematyki; Podstawowa znajomość algorytmiki, np.
Algorytmy i struktury danych (L); Umiejętność programowania wystarczająca do
napisania aplikacji.