Bazy danych 2 Wykład 1
Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl
Sprawy organizacyjne Program wykładu - jeszcze dokładnie nieznany (może ulec modyfikacji) Ilość godzin Wykład Ilość godzi n Laboratorium 5h Architektura baz danych DBMS- System Zarządzania Bazą Danych Modelowanie baz danych 6h Model konceptualny danych Model logiczny danych (Power Designer) 5h Język SQL 4h Fizyczny model danych w wybranym DBMS (Adaptive Server Anywhere) 4h Optymalizacja bazy danych Dostrajanie bazy danych Tworzenie indeksów, perspektyw. Określanie grup użytkowników i ich uprawnień (Adaptive Server Anywhere) Procedury przechowywane i wyzwalane Implementacja procedur i wyzwalaczy (Adaptive Server Anywhere) Zdarzenia Transakcje Osadzony SQL Odtwarzanie bazy danych Obiektowe bazy danych Obiektowo-relacyjne bazy danych 16h Budowa aplikacji bazodanowych w architekturze klient-serwer. (Power Builder) XML
Sprawy organizacyjne Literatura C.J. Date Wprowadzenie do systemów baz danych T. Conolly, C. Begg Systemy baz danych R.Stones, N. Matthew Bazy danych i PostgreSQL Zasoby Internetu
Tytułem wstępu Baza danych - dostępny dla wielu użytkowników zbiór powiązanych logicznie danych wraz z definicją ich struktury, zaprojektowany dla zaspokojenia potrzeb przetwarzania danych przez instytucję System zarządzania bazą danych (database management system, DBMS) system oprogramowania, który pozwala użytkownikom definiować, tworzyć i utrzymywać bazę danych oraz kontrolować do niej dostęp.
Tytułem wstępu DBMS pełni różne funkcje Pozwala zdefiniować bazę danych przy użyciu języka definicji danych (Data Definition Language, DDL) język ten pozwala określić typy danych, struktury i więzy dla danych przechowywanych w bazie Pozwala dopisywać, modyfikować, usuwać i wyszukiwać dane z bazy przy użyciu języka manipulowania danymi ( Data Manipulation Language, DML) Pozwala na kontrolowany dostęp do danych (szczegóły za chwilę)
Trójwarstwowa architektura systemów baz danych Użytkownik A1 Użytkownik A2 Użytkownik B1 Warstwa zewnętrzna Zewnętrzny model danych A Schemat zewnętrzny A Zewnętrzny model danych B Odwzorowanie zewnętrzno-pojęciowe Odwzorowanie zewnętrzno-pojęciowe Warstwa pojęciowa Schemat pojęciowy Pojęciowy model danych DBMS Odwzorowanie pojęciowo-wewnętrzne Warstwa wewnętrzna Schemat wewnętrzny Wewnętrzny model danych (zapamiętana baza danych)
Trójwarstwowa architektura systemów baz danych (c.d.) Główne zadanie takiej architektury to zapewnienie niezależności danych Logiczna niezależność danych oznacza odporność schematów zewnętrznych na zmiany dokonywane w schemacie pojęciowym Fizyczna niezależność danych oznacza odporność schematu pojęciowego na zmiany dokonywane w schemacie wewnętrznym
Zadania DBMS DBMS system oprogramowania, który pozwala użytkownikom definiować, tworzyć i utrzymywać bazę danych oraz kontrolować do niej dostęp. W 1982 roku Codd podał listę usług, które powinny być realizowane przez pełny DBMS
Zadania DBMS 1. Zapis odczyt i aktualizacja danych DBMS musi umożliwiać użytkownikom zapis, odczyt i aktualizację bazy danych, przy czym powinien realizować te funkcje w sposób, który nie ujawnia użytkownikom szczegółów fizycznej implementacji bazy danych. 2. Katalog dostępny dla użytkowników DBMS musi udostępniać użytkownikom katalog w którym zapamiętane są opisy elementów danych (katalog systemowy). Katalog ten jest miejscem przechowywania informacji opisujących dane w bazie, czyli inaczej: jest zbiorem danych o danych lub metadanych. 3. Obsługa transakcji DBMS musi zawierać pewien mechanizm, który będzie się troszczył o to, aby albo wykonane zostały wszystkie aktualizacje związane z daną transakcją, albo żadna z nich nie została wykonana
Zadania DBMS 1. Sterowanie współbieżnością DBMS musi zawierać pewien mechanizm, który zagwarantuje, że aktualizacje bazy danych będą wykonywane poprawnie w sytuacji, gdy wielu użytkowników będzie jednocześnie aktualizować dane w bazie. 2. Obsługa odtwarzania bazy DBMS powinien zawierać mechanizm służący do odtwarzania bazy danych w sytuacji, gdy ulegnie ona jakiemukolwiek uszkodzeniu. 3. Obsługa autoryzacji DBMS powinien zawierać pewien mechanizm zapewniający, że dostęp do bazy danych uzyskają tylko uprawnieni użytkownicy.
Zadania DBMS 1. Obsługa integralności danych DBMS musi dostarczać środki, które zapewnią, że zarówno dane, jak i dokonywane na nich zmiany spełniają ustalone nienaruszalne warunki spójności danych zwane więzami; 2. Obsługa transmisji danych SZBD musi być w stanie współpracować z oprogramowaniem transmisji danych (DCM, z ang. Data Communication Manager); większość użytkowników korzysta z bazy z poziomu stacji roboczych, które mogą być bezpośrednio podłączone do komputera obsługującego DBMS lub komunikować się z nim poprzez sieć- w obu przypadkach system otrzymuje żądania w postaci przesyłanych komunikatów i odpowiada w podobny sposób; konieczne jest aby system potrafił współpracować z różnymi DCM
Zadania DBMS 1. Usługi wspierające niezależność danych SZBD powinien zawierać elementy wspierające niezależność programów od rzeczywistej struktury danych możliwość zmiany fizycznej charakterystyki bazy danych bez wpływu na sposób widzenia danych przez uzytkownika 2. Programy narzędziowe SZBD powinien zawierać zestaw programów narzędziowych np. Programy importujące, programy eksportujące Programy nadzorujące, służące do kontrolowania bazy danych Programy analizy statystycznej Programy służące do reorganizacji indeksów Programy odśmiecające
Architektura klient - serwer Klient Obsługuje interfejs użytkownika Akceptuje wprowadzane dane i sprawdza ich poprawność składniową Obsługuje sterowanie w aplikacji Tworzy żądanie do bazy danych i przesyła je do serwera Przekazuje odpowiedź z powrotem do użytkownika Serwer Akceptuje i przetwarza żądania do bazy danych od klientów Sprawdza uprawnienia Zapewnia nienaruszalność więzów integralności Realizuje przetwarzanie zapytań/aktualizacji i przekazuje odpowiedzi klientom Konserwuje katalog systemowy Obsługuje współbiezny dostęp Realizuje odzyskiwanie danych po awarii
Architektura klient - serwer
Architektura klient - serwer Zalety Umożliwia szerszy dostęp do istniejących baz danych Zwiększa wydajność systemu jednostki robocze mogą równolegle wykonywać aplikacje Pozwala na redukcje kosztów Redukuje koszty komunikacji aplikacje wykonują część operacji w komputerach klientów, a przez sieć przesyłają tylko żądanie dostępu do bazy danych Rozszerza zakres niesprzeczności danych więzy integralności są sprawdzane tylko w jednym miejscu Konfiguracja tylko jednego serwera
Dziękuję za uwagę!!!