Katalog przedmiotów

Bazy danych 2

Cele
Ogólne zapoznanie z problematyką teorii relacyjnych baz danych i zagadnieniami projektowania konkretnych systemów baz danych, opartych na językach proceduralnych (np. PL/SQL, SQL*Plus, VBA) oraz językach deklaratywnych (SQL, QBE). Celem kształcenia jest przekazanie studentom podstawowej wiedzy z zakresu teorii relacyjnych baz danych oraz nabycie praktycznych umiejętności tworzenia baz danych przy użyciu pakietu ORACLE. Studenci uczą się konstruować schemat pojęciowy bazy danych, tworzyć tabele i kwerendy, formularze, raporty.

Zakres
W wariantach ID i IZ.
Języki zapytań (żądań) dla modelu relacyjnego oparte na algebrze relacji, relacyjnym rachunku krotek i relacyjnym rachunku dziedzin. Standardy ISO dla języka SQL. SQL jako podjęzyk systemów zarządzania bazami danych. Podstawowe zasady i postacie języka SQL. Typy danych SQL. Tworzenie, usuwanie i modyfikacja schematu tabel. Więzy spójności. Zakładanie i usuwanie indeksów. Wstawianie, usuwanie i modyfikacja danych. Zatwierdzanie zmian w bazie. Podstawowa składnia zapytania SELECT. Wprowadzanie wyrażeń jako kolumn do listy SELECT i aliasów dla wyrażeń. Klauzule DISTINCT (różny) i ORDER BY. Zasady wykonywania prostego zapytania. Operatory w wyrażeniach listy SELECT. Operatory algebry relacji w złożonych zapytaniach. Funkcje pomocnicze operujące na danych (funkcja warunkowa DECODE, funkcja testująca wartość Null). Hierarchia operatorów. Wartości złożonych warunków. Zgodność danych z rzeczywistością: zewnętrzna (administracyjna) i wewnętrzna (systemowa). Zapytania dokonujące złączenia kilku tabel. Zapytanie zawierające samozłączenie. Wprowadzanie aliasów dla nazw tabel. Zasady wykonywania zapytania z listą tabel w klauzuli FROM. Zapytania agregujące (sumujące) z funkcjami COUNT( ), AVG( ), SUM( ), MAX( ), MIN( ). Zasady wykonywania zapytania grupującego. Podzapytania. Przykład podzapytań: 1) zwykłe, 2) skorelowane, 3) skorelowane z predykatem NOT EXISTS, 4) podzapytania w klauzuli FROM. Perspektywy (tabele wirtualne) i ich zastosowania. Perspektywy ze złączeniem, z podzapytaniem oraz z opcją sprawdzania. Zatwierdzenie i anulowanie (COMMIT i ROLLBACK) zmian spowodowanych transakcją. Nadawanie i odwoływanie uprawnień (GRANT). Uprawnienia systemowe i uprawnienia do dostępu. Zakładanie kont (USER) użytkownikom bazy danych. Grupy użytkowników (ROLE). SQL*Plus jako prosty język proceduralny i interakcyjny interfejs. Podstawowe polecenia SQL*Plus. Skrypty SQL*Plus (z poleceniami SQL) do prostych aplikacji: wprowadzanie danych, wyszukiwanie danych, drukowanie raportów. Formatowanie wyników i tworzenie raportów. Wykonanie i wydruk obliczeń agregujących (podsumowujących). Funkcje agregujące: SUM, AVG, COUNT, MAX, MIN, NUM, STD, VAR. i III.
Powtórzenie podstawowych wiadomości z BD1: Bazy analityczne i operacyjne; hurtownie danych. Bazy hierarchiczne, sieciowe, relacyjne i obiektowe. Pojęcie relacji i klucza relacji na prostych przykładach. Liczność układów kolumn, zbiorów identyfikujących (nadkluczy), kluczy potencjalnych (kluczy) w relacji. Klucze potencjalne a klucz główny (podstawowy). Atrybuty kluczowe i niekluczowe. Zależności funkcyjne w relacji: od klucza, od części klucza, oraz między atrybutami niekluczowymi. Postacie normalne relacji: I, II i III. Złączenie naturalne (JOIN) dwóch relacji. Języki proceduralne i deklaratywne. Zagadnienia eksploatacji baz danych.
W wariancie ID.
Język PL/SQL jako język proceduralny Oracle’a. Anonimowy blok PL/SQL: DECLARE ... BEGIN ... EXCEPTION ... END. Polecenie SELECT języka PL/SQL. Zmienne. Stałe. Wyjątki. Instrukcje warunkowe typu IF ... THEN ... ELSIF ... THEN ... END IF oraz typu CASE … END CASE i CASE … END. Pętle: LOOP ... EXIT [WHEN warunek] ... END LOOP, FOR indeks IN Lmin ... Lmax LOOP ... END LOOP, WHILE ... LOOP ... END LOOP. Rekordy (wiersze) jako zmienne PL/SQL. Polecenia podstawienia. Kursory w PL/SQL jako bufory (obszary robocze). Procedury, funkcje, wyzwalacze. Przykłady złożonych podzapytań: 5) podzapytania skorelowane z predykatem NOT EXISTS realizujące iloraz relacji, 6) podzapytania w klauzulach WHERE i HAVING, 7) podzapytania jako wyrażenia skalarne na liście SELECT. Interpunkcja w językach ORACLE’a: SQL, SQL*Plus i PL/SQL. Zależności wielowartościowe i IV postać normalna. Zależności złączenia i V postać normalna. Schemat relacji R i zbiór F zależności funkcyjnych w relacji. Klucze i nadklucze. Domknięcie F+ zbioru zależności funkcyjnych F jako zbiór wszystkich zależności funkcyjnych wynikających logicznie ze zbioru zależności F. Wyznaczanie domknięcia F+ na podstawie aksjomatów Armstronga. Definiowanie klucza na podstawie schematu relacji R i domknięcia F+. Wyznaczanie domknięcia atrybutów X+ zamiast pracochłonnego domknięcia zależności F+. Reguły wnioskowania – sumowanie, pseudoprzechodniość i rozkładanie - wyprowadzone z aksjomatów Armstronga. Algorytm wyznaczania domknięcia X+ zbioru atrybutów X względem zbioru zależności F. Przykład.

Literatura podstawowa
1. Beynon-Davies P.: Systemy baz danych. WNT, Warszawa 2003.
2. Hernandez M.J., Viescas J.L.: Zapytania SQL dla zwykłych śmiertelników. Wydawnictwo MIKOM, Warszawa 2001.
3. Wersje instalacyjne i dokumentacja: www.Oracle.com

Literatura uzupełniająca
1. Banachowski L.: Bazy danych - Tworzenie aplikacji. Akademicka Oficyna Wydawnicza PLJ, Warszawa 1998.
2. Date C.J.: Relacyjne bazy danych dla praktyków. Wydawnictwo HELION, Gliwice 2006.
3. Ullman J.D.: Systemy baz danych. WNT, Warszawa 1988.

Punkty ECTS
4 - niestacjonarne,
4 - stacjonarne

Rodzaje studiów, na których przedmiot jest realizowany
niestacjonarne - 1-go stopnia,
stacjonarne - 1-go stopnia

Specjalności, na których przedmiot jest realizowany
Informatyka w telekomunikacji,
Bazy danych,
Inżynieria oprogramowania,
Komputerowe wspomaganie grafiki,
Sieci komputerowe

Prowadzący
dr hab. Sławomir Zadrożny, dr Włodzimierz Kuzak, inż. Piotr Wagner, mgr inż. Grzegorz Stanio, mgr inż. Józef Woźniak, mgr inż. Przemysław Cholajda, prof. Kazimierz Mańczak