Bazy Danych Wykład I Wprowadzenie Opracowano na podstawie: „Podstawowy Wykład z Systemów Baz Danych”, J.D.Ullman, J.Widom Copyrights by Arkadiusz Rzucidło 1 Definicje Baza danych to uporządkowany zbiór danych, przechowywany w pamięci komputera. Bazą danych nazywamy zbiór danych o określonej strukturze, zapisany na nośniku pamięciowym komputera, mogący zaspokoić potrzeby wielu użytkowników. W bazie danych zapisywane są fakty i zdarzenia zachodzące w pewnym wycinku rzeczywistości. Bazy danych są komputerowymi reprezentacjami fragmentów istniejącego świata rzeczywistego Copyrights by Arkadiusz Rzucidło 2 Definicje Baza danych to zestaw danych, metadanych (katalogów), programów i innych środków pozwalających na utrzymywanie, zabezpieczanie, przetwarzanie i udostępnianie danych dla użytkowników Baza danych jest magazynem danych z nałożoną na niego wewnętrzną strukturą W potoczny rozumieniu Baza danych jest zbiorem danych zorganizowanym przez System Zarządzania Bazami Danych DBMS (Data Base Management System) Informacje (dane) są takim samym zasobem firmy jak każdy inny (np. pracownicy, materiały, urządzenia) Informacje mają wartość tylko wtedy, gdy są dokładne i dostępne wtedy, gdy trzeba. Baza danych jest standardową metodą strukturalizacji informacji w większości organizacji. Copyrights by Arkadiusz Rzucidło 3 Czego oczekuje się od DBMS ? Tworzenia nowej bazy danych i określenia jej schematu (logicznej struktury danych) za pomocą języka definiowania danych Możliwości tworzenia zapytań (query) o dane, aktualizowania danych za pomocą języka zapytań (query language) lub języka manipulowania danymi Możliwości przechowywania dużej ilości danych (GB) przez dłuższy czas, chroniąc je przed przypadkowym, niepowołanym dostępem a także umożliwiając efektywny dostęp do danych za pomocą języka zapytań i operacji Sterowania jednoczesnym dostępem do danych przez wielu użytkowników z zapewnieniem bezkolizyjności oraz ochrony danych przed uszkodzeniem Copyrights by Arkadiusz Rzucidło 4 Podział ze względu na budowę: Relacyjne bazy danych Hierarchiczne bazy danych Sieciowe bazy danych Obiektowe bazy danych Obiektowo - relacyjne bazy danych Copyrights by Arkadiusz Rzucidło 5 Ewolucja Copyrights by Arkadiusz Rzucidło 6 Hierarchiczne i sieciowe bazy danych Hierarchiczne { { { { Pierwsza elektroniczna baza danych Oparta o strukturę drzewiastą (lasu) Logiczne powiązania pomiędzy wartościami danych Powiązania jeden-jeden, jeden-wiele, wiele-jeden Sieciowe { { Zmodyfikowana wersja typu hierarchicznego Pozwala na definiowanie powiązań wiele-wiele w postaci struktury drzewiastej bez powtarzania poszczególnych wartości w ramach obiektu Copyrights by Arkadiusz Rzucidło 7 Relacyjne baz danych { { Dane przechowywane w tabelach (stała liczba kolumn i dowolną liczbę wierszy Typy { określone są na etapie projektowania bazy danych Jest ich określona ilość Mają stały rozmiar Zwykle są ogólnie znanymi typami prostymi (tekst, liczba) Każda tabela ma wyróżniony klucz (wyróżniony atrybut lub kilka atrybutów) Zapytania do bazy Pewien podzbiór bazy danych podawany w tabeli Dane wybierane na podstawie wartości w konkretnych polach krotki Copyrights by Arkadiusz Rzucidło 8 Obiektowe bazy danych Model danych korzysta z takich pojęć jak: klasy, atrybuty, metody, udostępnia identyfikatory obiektów (OID), hermetyzację danych oraz metod, wielokrotne dziedziczenie Łączą właściwości obiektowości oraz obiektowych języków programowania Zapytania { { { Obiektowo zorientowany język staje się językiem programowania jak i językiem bazy danych Zależność pomiędzy obiektem w aplikacji a obiektem w bazie danych Możliwość korzystania z SQL dla celów zgodności ze standardem ODBC Copyrights by Arkadiusz Rzucidło 9 Porównanie RBDMS i ODBMS Copyrights by Arkadiusz Rzucidło 10 Podział ze względu na sposób zarządzania Analityczne bazy danych { { { { Dane statyczne (historyczne, wydarzenia) Dane nie wymagają modyfikacji Dane służą jako źródło do analizy (prognozowania, analiza tendencji rynkowych) Przykład: bazy testów chemicznych, danych pomiarowych Operacyjne bazy danych { { { Dane wymagają nieustannej modyfikacji – dynamiczne Przedstawiają aktualny stan rzeczy Przykład: bazy zamówień, faktur, inwentaryzacyjne) Copyrights by Arkadiusz Rzucidło 11 Składowe RBDMS Modyfikacje schematu Zapytania Aktualizacje Procesor zapytań Moduł Zarządzania Pamięcią Moduł Zarządzania Transakcjami Dane Metadane Copyrights by Arkadiusz Rzucidło 12 Etapy projektowania baz danych Określenie wymagań systemu Analiza obszaru działania (modelowanie systemu) Projektowanie i programowanie Implementacja Projektowanie strukturalne specyfikacja funkcjonalna (diagram hierarchii funkcji DHF) model procesów i przepływu danych (diagram DFD) model danych (encje związki) (diagram związków encji ERD) współpraca z relacyjnymi bazami danych Copyrights by Arkadiusz Rzucidło 13 Analiza środowiska Wywiad środowiskowy { { Określenie zapotrzebowania Identyfikacja głównych potrzeb i niedomagań obecnego systemu informacyjnego Nakreślenie głównych założeń nowego systemu Zaplanowanie poprawek i rozwiązań dla nowego systemu Wstępna analiza funkcji systemu oraz zapotrzebowania na informację Copyrights by Arkadiusz Rzucidło 14 Diagram DHF (Diagram Hierarchii Funkcji) Reprezentuje układ hierarchiczny funkcji, które system będzie realizował w czasie pracy Zasada modelowania funkcji: pokazywać funkcje (co?), a nie mechanizmy (jak?) Funkcje pogrupowane są tematycznie Zasada dekompozycji - kompletność funkcjonalna - działanie funkcji nadrzędnej jest sumą działań funkcji podrzędnych Zawiera tylko funkcje systemu Funkcje są wyrażone za pomocą czynności Copyrights by Arkadiusz Rzucidło 15 Funkcje elementarne Muszą być w całości wykonane lub w całości zaniechane Stanowią podstawę do projektowania modułów aplikacji Mogą być dalej dekomponowane dla lepszego udokumentowania Dla f. element. modeluje się użycie danych przez funkcje (modele macierzowe) Copyrights by Arkadiusz Rzucidło 16 Metodyka tworzenia DHF Modelowanie "od góry" Konwencje: { { nazwy funkcji opisują ich działanie etykiety pokazują miejsce w drzewie Pożądane wymiary drzewa: klika na kilka Dekompozycja powinna doprowadzić do funkcji elementarnych Copyrights by Arkadiusz Rzucidło 17 Przykład DHF (fragment) Internetowe Wspomaganie Nauczania Administrowanie Studentami Administrowanie materiałami dydaktycznymi Realizacja procesu dydaktycznego Rejestracja studentów Wprowadzanie materiałów Udostępnianie materiałów Logowanie studentów Edycja materiałów Raportowanie użycia mater. Sporządzanie statystyk Sporządzanie zestawień Sporządzanie statystyk Klasyfikowanie materiałów Tworzenie i edycja grup lab. Przydzielanie studentów Rejestrowanie obecności i ocen Sporządzanie testów Copyrights by Arkadiusz Rzucidło 18 Diagram DFD (Diagram Przepływu Danych) Diagram przepływu danych jest narzędziem modelowania pozwalającym zobrazować system jako sieć procesów funkcyjnych, połączonych ze sobą „potokami” i „zbiornikami” danych Cele DFD: { { Specyfikacja czynności wykonywanych przedsiębiorstwie w powiązaniu z danymi Specyfikacja obiegu danych Copyrights by Arkadiusz Rzucidło 19 Budowa DFD Składniki: { { { { procesy magazyny danych obiekty zewnętrzne przepływy danych Każdy diagram odpowiada jednej funkcji nadrzędnej z hierarchii dekompozycji Zasady dekompozycji: { { kompletność funkcjonalna -- jak w FHD równoważenie między poziomami -- przepływy z/do funkcji nadrzędnej muszą zostać dokładnie "rozwiązane" jako przeplywy z/do funkcji podrzędnych Copyrights by Arkadiusz Rzucidło 20 Proces DFD Proces pokazuje fragment systemu przekształcający dane na wyniki Nazywane pojedynczym słowem lub frazą (jak funkcja DHF – Co robi proces ?) Różne notacje cukier jajka mleko ciasto Mieszaj ciasto Proszek do pieczenia Copyrights by Arkadiusz Rzucidło 21 Przepływ DFD Przepływ służy do reprezentacji przenoszenia jednostek informacji lub pakietów informacji z jednego fragmentu systemu do innego Oznaczony jest nazwą informacji, która jest przekazywana Nazwa powinna być jednoznaczna i nie zawierać dwóch lub więcej informacji Numer wewnętrzny Numer telefonu Weryfikacja numeru telefonicznego Copyrights by Arkadiusz Rzucidło Numer zewnętrzny 22 Magazyn danych DFD Magazyn danych służy do modelowania zbioru danych w bezruchu Często nazywany jest plikiem lub bazą danych (bez względu na fizyczną postać magazynu) Magazyny zwykło oznaczać się nazwami zgodnymi z przechowywaną w nich informacją faktura Fakturowanie Dane faktury Faktury Copyrights by Arkadiusz Rzucidło 23 Terminator DFD Terminator reprezentuje obiekty zewnętrzne z którymi komunikuje się system pobierając lub emitując informację Terminatory znajdują się na zewnątrz systemu i łączą się z systemem za pomocą interfejsu Projektant nie może wpłynąć na sposób działania terminatora Żaden związek pomiędzy terminatorami nie jest istotny dla systemu Klient Dane osobowe Pobierz dane klienta Dane klienta Klient Copyrights by Arkadiusz Rzucidło 24 Wskazówki dotyczące konstruowania DFD Nazwy znaczące dla elementów diagramów Numerowanie procesów Unikać nadmiernie złożonych DFD Brak sprzeczości logicznej { { { { Nieskończone studnie Nieskończone źródła Magazyny tylko do zapisu lub tylko do odczytu Nieetykietowane przepływy Żaden z poziomów nie powinien zawierać więcej niż 6-8 procesów Równoważenie diagramów Copyrights by Arkadiusz Rzucidło 25 Przykład – DFD kontekstowy Dane osobowe Student Dane konta studenta Wykonanie testu Materiały dyd. Student Wyniki testów Materiały edukacyjne Internetowe wspomaganie nauczania Raporty wyników naucz. Informacje od studentów Obecność Prowadzący zajęcia oceny Prowadzący zajęcia Inf. o zajęciach Copyrights by Arkadiusz Rzucidło 26 Przykład DFD – poziom 0 Informacje od prowadzących Dane osobowe Administrowanie studentami Test zaliczeniowy Student Wyniki testów Student Lista studentów Testy zaliczeniowe Obecności Oceny Prowadzący zajęcia Lista grup lab. Realizacja procesu dydaktycznego Raporty frekwencji Materiały dydaktyczne Prowadzący zajęcia Przydział materiałów do przedmiotów Informacje o zajęciach Materiały dyd. Sylabusy Administrowanie materiałami Copyrights by Arkadiusz Rzucidło 27 Koniec Copyrights by Arkadiusz Rzucidło 28 Moduł zarządzania pamięcią Wybieranie właściwych danych z pamięci Dostosowywanie danych do wymagań modułów z wyższych poziomów systemu W prostych systemach może być tym samym co system plików SO W większości RDBMS zarządzają bezpośrednio przestrzenią dysku (efektywność) Dwa moduły { { Moduł zarządzania plikami – przechowuje dane o miejscu zapisania plików na dysku Moduł zarządzania buforami – obsługuje pamięć operacyjną Powrót Copyrights by Arkadiusz Rzucidło 29 Moduł zarządzania zapytaniami Zadaniem modułu jest przekształcenie zapytania lub operacji na bazie danych Zapytania w języku bardzo wysokiego poziomu (np. SQL) Najtrudniejszym z etapów odpowiedzi na zapytania jest optymalizacja zapytania Powrót Copyrights by Arkadiusz Rzucidło 30 Moduł zarządzania transakcjami Odpowiada za spójność systemu Gwarantuje, że kilka jednocześnie wykonywanych zapytań nie będzie wzajemnie sobie przeszkadzać Właściwości transakcji: { { { { Niepodzielność – Żądanie aby cała transakcja została przeprowadzona albo, że żaden z jej elementów nie zostanie uwzględniony (bankomat – zapis na koncie) Spójność – baza musi być spójna, dane muszą zaspokajać oczekiwania klienta (miejsca w samolocie) Izolacja – Dwie transakcje przeprowadzane równocześnie nie mogą na siebie wzajemnie wpływać (bilety na ten sam rejs) Trwałość – Jeśli transakcja zakończy się jej wynik nie może być utracony z powodu awarii systemu. Powrót Copyrights by Arkadiusz Rzucidło 31