Program wykładu 1 Model relacyjny (10 godz.): podstawowe pojęcia, języki zapytań (algebra relacji, relacyjny rachunek krotek, relacyjny rachunek dziedzin), zależności funkcyjne i postaci normalne (BCNF, 3NF, 4NF), modelowanie konceptualne, denormalizacja. 2 SQL (10 godz.): język zapytań, język definiowania danych, zastosowanie w aplikacjach i PL/SQL; 3 Problemy systemów zarzadzania bazami danych (10 godz.): struktura i organizacja danych, przetwarzanie i optymalizacja zapytań, transakcje i wielodostęp, bezpieczeństwo danych.
Program ćwiczeń i pracowni 1 Listy zadań na ćwiczenia i sprawdziany 40% punktów. 2 Pracownia on-line z SQL (PostgreSQL) 30% punktów. 3 Własny projekt małej bazy danych (Java, C++ i PostgreSQL lub MySQL) 30% punktów. 4 Materiały i informacje: http://www.ii.uni.wroc.pl/ przemka
Literatura Date C. J., An Introduction to Database System, vol. II, Adison-Wesley Pub. Comp., również WNT W-wa, (seria: Klasyka Informatyki), 2000; Jeffrey D. Ullman, Jennifer Widom, Podstawowy Kurs Systemów Baz Danych, WNT, Warszawa 1999; Garcia-Molina H., Ullman J.D., Widom J., Implementacja systemów baz danych, WNT, 2003 (seria: Klasyka Informatyki); Thomas Connolly, Carolyn Begg, Database Systems, Addison Wesley 2002, także po polsku: ReadMe 2004; R. Ramakrishnan, J. Gehrke, Database Management Systems, 2nd edition, WCB/McGraw-Hill, 2001.
Zadania baz danych Udostępnić metodę opisu danych o dużych możliwościach ekspresji, a jednocześnie łatwa do opanowania i zaakceptowania jako ogólnie obowiazuj acy model. Zagwarantować wygodny i szeroki dostęp do danych. Zagwarantować trwałość i bezpieczeństwo danych. Sprostać wszystkim nowym wyzwaniom (przegladarki, dane multimedialne, intensywny dostęp przez Internet, działanie 24 godziny na dobę).
Podstawowe pojęcia Baza danych (BD, DB) zbiór danych zawierajacy zarówno informacje rzeczowe, jak i strukturę tych informacji; jest to zbiór duży, długotrwały, wielodostępny i efektywnie zorganizowany. System Zarzadzania Bazami Danych (SZBD, DBMS) oprogramowanie pozwalajace definiować strukturę bazy danych, gromadzić dane w bazie i je efektywnie udostępniać.
Języki dla baz danych Języki definiowania danych (DDL) służa do opisu struktury danych (definiowania), Języki zapytań (query language) służa do wyszukiwania danych i, ewentualnie, Języki modyfikacji danych (DML) służa do umieszczania/usuwania danych z bazy. Standard SQL (Structured query language) zawiera wszystkie te komponenty i jest zaimplementowany praktycznie we wszystkich SZBD (dialekty SQL).
Model bazy danych Opisu danych rzeczywistych w postaci przeznaczonej do zaimplementowania w postaci bazy danych dokonuje się na kilku niezależnych poziomach. Modelowanie konceptualne wyodrębnienie z zagadnienia rzeczywistego danych do przechowywania w bazie wraz ze struktura; model jest zapisywany w języku UML lub w postaci diagramów E-R; Modelowanie logiczne przeniesieniu modelu konceptualnego na struktury i pojęcia dostępne w określonym modelu. Znamy kilka modeli baz danych: relacyjny, obiektowy, relacyjno-obiektowy, dedukcyjny (logiczny, knowledge-based), sieciowy i hierarchiczny; Modelowanie fizyczne definiowanie konkretnych struktur danych i elementów w wybranym SZBD.
Relacja Nazwa: Osoba Nazwisko PESEL Data_ur... : varchar(20) : char(11) : date...... Abacki 80121304455 20-02-1980......
Relacje - pojęcia Dziedzina zbiór wartości określonego typu, spełniajacych określone ograniczenia; Atrybut to nazwa, której jest przyporzadkowana pewna dziedzina; Relacja to podzbiór iloczynu kartezjańskiego określonej liczby dziedzin. Krotność (arność) relacji to liczba atrybutów k. Krotka to element należacy do relacji. Do składowych krotki (atrybutów) odwołujemy się przez nazwę t.a i lub przez pozycję t[i]. Liczba krotek należacych w danym momencie do stanu relacji, to moc relacji.
Relacje - pojęcia cd. Dla atrybutów A 1,..., A k i zwiazanych z nimi dziedzin D 1,..., D k relacja R ma: schemat R = A 1... A k lub R(A 1,..., A k ), arność k, stan r D 1 D k, krotki (v 1, v 2,..., v k ) r. Relacyjna baza danych (schemat i stan) to zbiór relacji o różnych nazwach.
Relacje alternatywna terminologia Relację często nazywamy tabela, atrybuty kolumnami, a krotki wierszami. Istnieje także terminologia, w której krotkę określamy jako rekord, a jej atrybuty jako pola. Relację nazywamy wówczas plikiem.
Klucze Nadklucz (klucz) relacji R to taki podzbiór atrybutów R, że w żadnym stanie r relacji R nie moga istnieć dwie krotki o jednakowych wartościach atrybutów tworzacych nadklucz. Nadklucz minimalny nazywamy go kluczem. Klucz główny (pierwotny) Jeśli relacja ma kilka kluczy to nazywamy je kluczami kandydujacymi. Wybrany jeden z kluczy kandydujacych nazywamy kluczem głównym. Pozostałe nazywamy kluczami alternatywnymi. Klucz obcy. Rozważmy relacje S=(indeks, nazwisko) oraz O=(indeks,przedmiot, stopien, data). W relacji O atrybut indeks służy do zidentyfikowania studenta krotki z relacji S. Nazywamy go kluczem obcym, a powiazane przez niego tabele nadrzędna (S) i podrzędna (O).
Wartość pusta (NULL) Wartość pusta (NULL), to brak wartości (czyli de facto nie jest to żadna wartość). NULL nie jest równe żadnej konkretnej wartości (ani 0, ani ), w szczególności dwa elementy, które maja nieokreślona wartość (czyli NULL) nie sa ani sobie równe, ani od siebie różne. Do sprawdzenia, czy konkretna wartość jest pusta, służa predykaty IS NULL oraz IS NOT NULL, które zwracaja wartości TRUE i FALSE. Występowanie wartości pustych powoduje, że predykaty w bazach danych moga mieć trzy wartości logiczne: TRUE, FALSE i UNKNOWN.
Więzy integralności Integralność encji to zasada mówiaca, że wartości atrybutów tworzacych klucz główny relacji nie moga pozostawać puste. Integralność encji nie jest zasada zawsze przestrzegana. Dodatkowa niekonsekwencja jest, że nie odnosi się ona do kluczy alternatywnych. Integralność referencyjna to zasada mówiaca, że jeśli w relacji S występuje klucz obcy, to w danej krotce wszystkie jego atrybuty musza być albo jednocześnie niepuste i identyfikować (dokładnie jedna) krotkę w relacji nadrzędnej. Więzy ogólne to dodatkowe warunki poprawności nałożone na stan relacji tworzacych relacyjna bazę danych. Nie istnieje ustalony formalizm ich opisu.