S y s t e m y B a z D a n y c h Wykład na przedmiot: Bazy danych Studia zaoczne i podyplomowe UAM Anna Pankowska aniap@amu.edu.pl W y k ł a d I Temat: Relacyjne bazy danych Plan wykładu: - cel stosowania baz danych - zadania Systemu Zarządzania Bazą Danych - relacyjne bazy danych - normalizacja schematów relacji 2
Kilka przykładów na początek Przykładowe wykorzystania systemów bazodanowych: Wypłacenie pieniędzy z konta bankowego Rezerwacja pokoju w hotelu Przeszukiwanie katalogów biblioteki Zakupy przez Internet Zapisy na studia System finansowo księgowy w przedsiębiorstwie Katalog filmów na Onecie Spis kontaktów w programie pocztowym Zbiór MP3 Itd... 3 Czym ściśle jest baza danych? Baza danych jest zbiorem powiązanych danych: reprezentuje wybrany aspekt świata rzeczywistego, zwany mini-światem lub dziedziną problemu jest logicznie spójnym zbiorem danych posiadających określone znaczenie jest projektowana i konstruowana w określonym celu; ma określoną grupę użytkowników Każda baza danych posiada: źródło danych użytkowników związek z reprezentowaną rzeczywistością 4
Czy sama baza danych wystarcza? Potrzeby użytkownika bazy danych: przechowywać dużą liczbę danych szybko uzyskiwać różnorodną informację tworzyć i uwzględniać powiązania między danymi kontrolować poprawność wprowadzanych danych udostępniać dane innym osobom zadania Systemu Zarządzania Bazą Danych 5 System Zarządzania Bazą Danych (SZBD) (1) System Zarządzania Bazą Danych (SZBD) ang.: Database Management System (DBMS) - jest zbiorem programów, które umożliwiają tworzenie i utrzymywanie bazy danych. SZBD umożliwia: definiowanie bazy danych: określanie typów i i struktury danych oraz ograniczeń konstruowanie bazy danych: fizyczne zapamiętanie danych na nośniku obsługiwanym przez SZBD manipulowanie bazą danych: generowanie (optymalnych) zapytań do bazy, uaktualnianie danych udostępnianie bazy danych: umożliwia operowanie na danych wielu użytkownikom; zapewnienie spójności danych (transakcje) ochronę bazy danych: ochrona systemowa (awarie) i zabezpieczenia konserwowanie bazy danych 6
System Zarządzania Bazą Danych (SZBD) (2) Zalety stosowania SZBD: kontrola nadmiarowości ograniczenie możliwości uzyskania nieautoryzowanego dostępu dostarczenie odpowiednich struktur dla efektywnego przetwarzania zapytań optymalizacja zapytań, indeksy zapewnienie możliwości tworzenia kopii bezpieczeństwa i odzyskiwania danych zapewnienie interfejsów dla wielu użytkowników reprezentowanie skomplikowanych relacji pomiędzy danymi wymuszanie ograniczeń integralnościowych 7 System Zarządzania Bazą Danych (SZBD) (3) Warto zastosować SZBD gdy: powstaje zbyt dużo plików z danymi lub pliki się rozrastają powielanie starych danych w celu rozwiązania nowych problemów konieczność udostępnienia danych innym użytkownikom konieczność kontrolowania dostępu do danych Nie stosować SZBD gdy: zbyt wysoki koszt początkowy inwestycji w sprzęt, oprogramowanie i szkolenia sama baza danych i aplikacje dodatkowe są proste, dobrze zdefiniowane, wystarczające i nie będą ulegały zmianie dane nie będą współdzielone przez wielu użytkowników SZBD nie jest w stanie spełnić szczegółowych wymagań lub zapewnić odpowiedniej wydajności (pewne mechanizmy SZBD są nadmiarowe) 8
Relacyjne bazy danych - teoria Relacyjny model danych został po raz pierwszy wprowadzony w 1970 roku przez Teda Codda Opiera się na pojęciu matematycznej relacji Schemat relacji: R(A 1, A 2,..., A n ) składa się z nazwy relacji R i listy jej atrybutów: A 1, A 2,..., A n Dla każdego atrybutu określany jest zbiór dopuszczalnych wartości, zwany dziedziną atrybutu Relacja (stan relacji) jest zbiorem n-krotek 9 Relacyjne bazy danych - przykład Klienci Ide n Imię Na zw isko Adre s 1 Tomasz Kowalik Poznań 2 Kas ia S ójka Wrocław 3... Zamówienia Nume r Data Klie nt 10 01-09-2005 1 20 02-10-2004 2 relacja (tabela) zbiór informacji tego samego typu Nazwa relacji tu: Klienci - wskazuje, jaka informacja jest w relacji przechowywana (tu: informacje o klientach opisanych czterema atrybutami) 10
Relacyjne bazy danych - przykład Klienci Ide n Imię Na zw isko Adre s 1 Tomasz Kowalik Poznań 2 Kas ia S ójka Wrocław 3... Zamówienia Nume r Data Klie nt 10 01-09-2005 1 20 02-10-2004 2 relacja (tabela) atrybut (kolumna) konkretna informacja o obiekcie Np. atrybut o nazwie Imię opisuje imiona klientów. Jego dziedziną jest zbiór liter reprezentujących imię. 11 Relacyjne bazy danych - przykład Klienci Ide n Imię Na zw isko Adre s 1 Tomasz Kowalik Poznań 2 Kas ia S ójka Wrocław 3... Zamówienia Nume r Data Klie nt 10 01-09-2005 1 20 02-10-2004 2 relacja (tabela) atrybut (kolumna) krotka (wiersz) konkretny obiekt W tym przypadku każda krotka opisuje pojedynczego klienta 12
Relacyjne bazy danych - przykład Klienci Ide n Imię Na zw isko Adre s 1 Tomasz Kowalik Poznań 2 Kas ia S ójka Wrocław 3... Zamówienia Nume r Data Klie nt 10 01-09-2005 1 20 02-10-2004 2 relacja (tabela) atrybut (kolumna) krotka (wiersz) powiązanie sposób, w jaki informacje w jednej relacji łączą się z informacjami w drugiej relacji 13 Relacyjne bazy danych - przykład Klienci Ide n Imię Na zw isko Adre s 1 Tomasz Kowalik Poznań 2 Kas ia S ójka Wrocław 3... Zamówienia Nume r Data Klie nt 10 01-09-2005 1 20 02-10-2004 2 klucz podstawowy (główny) atrybut (lub zbiór atrybutów) jednoznacznie identyfikujący każdą krotkę klucz obcy atrybut (lub zbiór atrybutów) w jednej tabeli odwołujący się do klucza podstawowego innej tabeli w celu zamodelowania powiązania 14
Relacyjne bazy danych - własności Właściwości relacji: porządek krotek w relacji nie ma znaczenia (relacja jest zbiorem) każda krotka jest uporządkowaną listą n wartości (a więc kolejność atrybutów w schemacie relacji ma znaczenie) każda wartość w krotce jest atomowa (pojedyncza); może być też wartością pustą, reprezentującą wartość nieznaną lub nieistotną relacja może reprezentować zarówno byt jak związek 15 Relacyjne (SQL-owe) bazy danych - praktyka Relacyjne bazy danych = SQL-owe bazy danych wykraczają istotnie poza teoretyczny model relacyjny (włączają koncepcje obiektowości, XML, programowanie), SQL-owe bazy danych standard SQL-92 standard SQL:1999, SQL:2003 Najważniejsze relacyjne SZBD: Oracle 9i, 10g MS SQL Server 2000, 2005 DB2, Sybase, Interbase,... Inne systemy relacyjne dbase, Clipper, Xbase (stare systemy powszechne w Polsce) Access (Microsoft) MySQL, PostgreSQL (oprogramowanie wolne). 16
Relacyjne bazy danych - normalizacja Przykład błędnej struktury relacji: Zamówienia Im ię Nazwisko Adres Kod pocztowy Długopis Teczka Spinacze Razem Tomas z Kowalik P oznań 61-245 10 90 120 220 Kasia Sójka Wrocław 48-135 300 1000 1300 Zasady tworzenia prawidłowej struktury relacji: - jedna relacja powinna dotyczyć jednego obiektu świata rzeczywistego - struktura powinna wymagać minimum przestrzeni - struktura powinna pozwalać na szybkie wyszukiwanie i aktualizację informacji - struktura powinna pokazywać jasną reprezentacją danych - powinna istnieć możliwość łatwego zabezpieczenia integralności danych 17 Relacyjne bazy danych - normalizacja Pierwsza postać normalna Dana relacja r o schemat R jest w pierwszej postaci normalnej (1NF) jeżeli wartości atrybutów są atomowe (niepodzielne) ŹLE nazwisko Kowalik Sójka Zamówie nie dlugopis, teczka, spinacze dlugopis, spinacze Na zwisko Za m ó w ie nie produkt sztuk dlugopis 10 Kowalik teczka 90 spinacze 120 Sójka dlugopis 300 spinacze 1000 DOBRZE relacja w 1NF Nazwisko Zamówie nie sztuk Kowalik dlugopis 10 Kowalik teczka 90 Kowalik spinacze 120 Sójka dlugopis 300 Sójka spinacze 1000 Istnienie pierwszej postaci normalnej wynika głównie z ograniczeń produktów komercyjnych nie dopuszczających atrybutów zagnieżdżonych 18
Relacyjne bazy danych - normalizacja Zależność funkcyjna Dana jest relacja r o schemacie R; X, Y są podzbiorami atrybutów R. W schemacie relacji R, X wyznacza funkcyjnie Y, lub Y jest funkcyjnie zależny od X, co zapisujemy X Y, wtedy i tylko wtedy, jeżeli dla dwóch dowolnych krotek t 1, t 2 takich, że t 1 [X] = t 2 [X] zachodzi zawsze t 1 [Y]=t 2 [Y]. Pełna zależność funkcyjna Zbiór atrybutów Y jest w pełni funkcyjnie zależny od zbioru atrybutów X w schemacie R, jeżeli X Y i nie istnieje podzbiór X X taki, że X Y. 19 Relacyjne bazy danych - normalizacja Druga postać normalna Dana relacja r o schemacie R jest w drugiej postaci normalnej (2NF), jeżeli każdy jej atrybut wtórny (nie należący do klucza) tej relacji jest w pełni funkcyjnie zależny od klucza podstawowego relacji r. ŹLE id_prac nr_proj godziny nazwisko nazwa_proj lokalizacja Dlaczego ten schemat jest zły? - redundancja - anomalie przy modyfikacji -anomalie przy wstawianiu id_prac nr_proj godziny nazwisko nazwa_proj lokalizacja 1 10 34 Kowalik ASP2 Poznań 1 20 12 Kowalik e-learning Poznań 2 10 90 Sójka ASP2 Poznań - anomalie przy usuwaniu 20
Relacyjne bazy danych - normalizacja Druga postać normalna Dana relacja r o schemacie R jest w drugiej postaci normalnej (2NF), jeżeli każdy jej atrybut wtórny (nie należący do klucza) tej relacji jest w pełni funkcyjnie zależny od klucza podstawowego relacji r. ŹLE id_prac nr_proj godziny nazwisko nazwa_proj lokalizacja DOBRZE relacje w 2NF id_prac nr_proj godziny id_prac nazwisko nr_proj nazwa_proj lokalizacja id_prac nr_proj godziny 1 10 34 1 20 12 2 10 90 id_prac nr_proj godziny nazwisko nazwa_proj lokalizacja 1 10 34 Kowalik ASP2 Poznań 1 20 12 Kowalik e-learning Poznań 2 10 90 Sójka ASP2 Poznań id_prac nazwisko 1Kowalik 2Sójka nr_proj nazwa_proj lokalizacja 10 ASP2 Poznań 20 e-learning Poznań 21 Relacyjne bazy danych - normalizacja Przechodnia zależność funkcyjna Zbiór atrybutów Y jest przechodnio funkcyjnie zależny od zbioru atrybutów X w schemacie R, jeżeli X Y i istnieje zbiór atrybutów Z, nie będący podzbiorem żadnego klucza schematu R taki, że zachodzi X Z i Z Y. Trzecia postać normalna Dana relacja r o schemacie R jest w trzeciej postaci normalnej (3NF), jeżeli jest w drugiej postaci normalnej i żaden atrybut wtórny nie jest przechodnio zależny od klucza podstawowego schematu R. 22
Relacyjne bazy danych - normalizacja X Z Y Na zwisko Za kła d Wyd z ia ł Na zw isko Za kła d Wydz ia ł Kowalik algebra matematyka Sójka algebra matematyka P ęcak algebra matematyka Jarząbek kręgowce biologia X Y X Z Z Y Relacja jest w 2NF, ale mimo to mamy redundancję i anomalie przy modyfikacji Na zw isko Kowalik Sójka P ęcak Jarząbek Za kła d algebra algebra algebra kręgowce Za kła d algebra kręgowce Wydział matematyka biologia Relacja w 3NF 23 Przykład Wynajmy Pesel wlasciciela Pesel lokatora Imie wlasciciela Nazwis ko wlasciciela Imie lokatora Nazwis ko lokatora Ulica Nr domu Nr lokalu Dzielnica Adres urzedu Wlasciciele Lokatorzy Pesel Imie Nazwisko Pesel Imie Nazwisko Ulica Nr domu Nr lokalu Dzielnice Urzedy Ulica Nr domu Dzielnica Dzielnica Adres urzedu Wlasnosci P es el Ulica Nr domu Nr lokalu 24