Bazy Danych i Systemy informacyjne Wykład 1 Piotr Syga 09.10.2017
Ogólny zarys wykładu Podstawowe zapytania SQL Tworzenie i modyfikacja baz danych Elementy dynamiczne, backup, replikacja, transakcje Algebra relacji Schematy, zależności funkcyjne, normalizacja Kilka słów o bezpieczeństwie } Podstawy SQL
Literatura J.D. Ullman, J. Widom A First Course in Database Systems. J.D. Ullman, Principles of Database Systems. H. Garcia-Molina, J.D. Ullman, J. Widom, Systemy baz danych. T. Pankowski, Podstawy baz danych. W3Schools, manual dialektu
Ocena końcowa Zasady zaliczenia Możliwe opcje Wariant I dwa kolokwia na ćwiczeniach obowiązkowe kolokwium na ostatnim wykładzie Wariant II jedno kolokwium na ćwiczeniach (przedostatnie zajęcia) opcjonalne kolokwium na ostatnim wykładzie
Ocena końcowa Wariant I 3 listy + projekt na laboratorium ocena z lab. L dwa kolokwia po 10 punktów + aktywność ocena z ćw. C 3.0-10 3.5-12 4.0-14 4.5-16 5.0-18 5.5-21 kolokwium na ostatnim wykładzie ocena z wykł. W Ocena końcowa: Ocena = Rnd(0.4W + 0.3L + 0, 3C), gdzie Rnd(y) jest zaokrągleniem do najbliższej oceny dla y 3 oraz Rnd(y) = 2.0, dla y < 3.
Ocena końcowa Wariant II 3 listy + projekt na laboratorium ocena z lab. L kolokwium na przedostatnich ćwiczeniach (20 pkt.) + aktywność Ocena końcowa O: 3.0 - L 3.0 i co najmniej 11 pkt. z ćwiczeń (co najmniej 8 z kolokwium) 3.5 - L 3.0 i co najmniej 13 pkt. z ćwiczeń (co najmniej 11 z kolokwium) 4.0 - L 4.0 i co najmniej 15 pkt. z ćwiczeń (co najmniej 13 z kolokwium) 4.5 - L 4.5 i co najmniej 15 pkt. z kolokwium 5.0 - L 4.5 i co najmniej 17 pkt. z kolokwium 5.5 - L 5.0 i co najmniej 20 pkt. z ćwiczeń (co najmniej 18 z kolokwium) Dla chętnych: kolokwium na ostatnim wykładzie z oceną końcową liczoną zgodnie z wariantem I (Ocena) rezygnując jednocześnie z O.
Bazy danych po co? Wartość informacji Przechowywanie informacji Przetwarzanie informacji
Reprezentacja danych (zielony, gruszkowaty, słodki) (czerwony, okrągły, słodki) Kolor Kształt Smak string string string (pomarańczowy, podłużny, słodki)
SQL Krótka charakterystyka język nieproceduralny z wbudowanym optymalizatorem moduł zarządzania pamięcią typizowany z wbudowanym porządkiem
Szkielet zapytania Select, From, Where Schemat podstawowego zapytania Select kolumny From zbiór Where warunek
Szkielet zapytania Select, From, Where Schemat podstawowego zapytania Select kolumny From zbiór Where warunek Przykład podstawowego zapytania Select Smak From A Where Kolor<> czerwony ;
Szkielet zapytania Select, From, Where Schemat podstawowego zapytania Select kolumny From zbiór Where warunek Przykład podstawowego zapytania Select Distinct Smak From A Where Kolor<> czerwony ;
Szkielet zapytania Kilka słów o warunkach Operatory logiczne Podstawowe operatory: =, <> (!=), >, <, <=, >= spójniki AND, OR, NOT BETWEEN a AND b LIKE %wzorzec_ (NOT) IN set IS (NOT) NULL wbudowane funkcje (np. wyrażenia regularne, sprawdzenie struktury)
Szkielet zapytania Kilka słów o warunkach Operatory logiczne Podstawowe operatory: =, <> (!=), >, <, <=, >= spójniki AND, OR, NOT BETWEEN a AND b LIKE %wzorzec_ (NOT) IN set IS (NOT) NULL wbudowane funkcje (np. wyrażenia regularne, sprawdzenie struktury) Np. SELECT kształt FROM A WHERE kolor LIKE %ny ;
Szkielet zapytania Wybieranie z większej liczby tabel Rodzaje złączeń SELECT kolumny FROM A JOIN B (ON condition) JOIN (,) iloczyn kartezjański wszystkich krotek INNER JOIN łączone są tylko te krotki, w których warunek jest spełniony LEFT JOIN do krotek z A dostawiane są krotki z B jak w INNER JOIN lub NULL RIGHT JOIN do krotek z B dostawiane są krotki z A jak w INNER JOIN lub NULL FULL JOIN rekordy jak w LEFT i RIGHT
Szkielet zapytania Łączenie wyników Operacje na zbiorach UNION INTERSECT EXCEPT \ (nie wszystkie dialekty) Uwaga: schematy muszą się zgadzać Podzapytania Wyniki można łączyć również za pomocą podzapytań: SELECT kolor FROM ( SELECT kolor, smak FROM A WHERE kształt <> gruszkowaty ) TAB1;
Szkielet zapytania Przemianowania Podobnie jak dla podzapytań aliasy można nadawać tabelom oraz kolumnom. SELECT T1.kolor AS Barwa, T2.smak FROM A (AS) T1 JOIN A (AS) T2 ON T1.kolor=T2.kolor;
Szkielet zapytania Porządkowanie wyniku Wyniki zapytania nie są zbiorami, można je porządkować: sortowanie ORDER BY kolumna(, kolumna2,... ) (DESC) grupowanie GROUP BY kolumna(, kolumna2,... ) Uwaga: rozstrzyganie konfliktów funkcje agregujące filtrowanie HAVING warunek odfiltrowanie na końcu wykonywania zapytania, tzn. można użyć też dla funkcji agregujących ograniczenie LIMIT (TOP, ROWNUM< liczba) Uwaga: odmienna składnia i pozycja w zapytaniu dla każdego dialektu
Szkielet zapytania Funkcje agregujące MIN(kolumna), MAX(kolumna), AVG(kolumna) SUM(kolumna) COUNT(kolumna), COUNT(kolumna, kolumna2), COUNT(*)