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 Logowanie studentów Sporządzanie statystyk Sporządzanie statystyk Wprowadzanie materiałów Edycja materiałów Sporządzanie zestawień Klasyfikowanie materiałów Udostępnianie materiałów Raportowanie użycia mater. 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 jajka mleko cukier Proszek do pieczenia Mieszaj ciasto ciasto 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 Numer zewnętrzny Copyrights by Arkadiusz Rzucidło 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 Dane konta studenta Student Wykonanie testu Materiały dyd. Student Wyniki testów Materiały edukacyjne Obecność Internetowe wspomaganie nauczania Raporty wyników naucz. Informacje od studentów Prowadzący zajęcia oceny Inf. o zajęciach Prowadzący zajęcia Copyrights by Arkadiusz Rzucidło 26
Przykład DFD poziom 0 Dane osobowe Informacje od prowadzących Student Test zaliczeniowy Administrowanie studentami Wyniki testów Lista studentów Student Testy zaliczeniowe Prowadzący zajęcia Obecności Oceny Materiały dydaktyczne Informacje o zajęciach Sylabusy Realizacja procesu dydaktycznego Lista grup lab. Przydział materiałów do przedmiotów Raporty frekwencji Materiały dyd. Prowadzący zajęcia 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