Banki danych WYKŁAD 1 dr Łukasz Murowaniecki [email protected] T-109 Łódź 2008 Plan wykładu Pojęcia podstawowe System zarządzania bazą danych (DBMS) Relacyjny model danych Inne modele baz danych Projektowanie baz danych Język SQL Zastosowania i technologie powiązane (hurtownia danych, eksploracja danych) Łódź 2008 Literatura Podstawowa: C. J. Date – Wprowadzenie do systemów baz danych Wydawnictwa Naukowo-Techniczne J. Ullman, J. Widom – Podstawowy wykład z systemów baz danych - Wydawnictwa Naukowo-Techniczne Uzupełniająca: Lech Bałachowski, Krzysztof Stencel - Systemy zarządzania bazami danych - Wydawnictwo PJWSTK (Polsko-Japońska Wyższa Szkoła Technik Komputerowych) M. Szeliga – Transact-SQL Czarna księga R. Barker – CASE Method – Modelowanie związków encji D. Tsichritzis, F. Lochovsky – Modele danych Łódź 2008 Pojęcia podstawowe Baza danych - zbiór danych uporządkowany dane trwałe istniejących przez długi czas, często przez wiele lat przechowywanych w specjalnie wyznaczonym miejscu (systemie informatycznym) Dane – wartości faktycznie przechowywane w bazie danych Informacje – znaczenie tych wartości dla użytkowników Łódź 2008 Pojęcia podstawowe System zarządzania bazą danych - SZBD (ang. Database Management System - DBMS) Program (zbiór programów), działający na serwerze bazy danych Odpowiada za organizację danych wewnątrz bazy danych Pośredniczy w uzyskaniu dostępu do danych w bazie Łódź 2008 Pojęcia podstawowe Rola DBMS Izolowanie programów korzystających z danych od reprezentacji fizycznej danych Zapewnienie mechanizmów dostępu do danych (języki zapytań i manipulacji danymi) Ochrona danych (autoryzacja dostępu, ochrona spójności, mechanizmy odtwarzania po awarii) Zapewnienie wielodostępu Dostępność przez sieć Łódź 2008 Pojęcia podstawowe Baza danych opisuje w sposób uproszczony pewien fragment rzeczywistości. Opisuje go przy pomocy modelu danych. Model danych - zbiór ogólnych zasad posługiwania się danymi. Zbiór ten obejmuje trzy główne części: Definicja danych: zbiór reguł określających strukturę danych; Operowanie danymi: zbiór reguł dotyczących procesu dostępu do danych i ich modyfikacji; Integralność danych: zbiór reguł określających, które stany bazy danych są poprawne (a więc zarazem jakie operacje prowadzące do modyfikacji danych są dozwolone) Łódź 2008 Pojęcia podstawowe System zarządzania bazą danych Baza danych Computer Computer Model danych Computer Użytkownicy Aplikacje Łódź 2008 System zarządzania bazą danych Oczekiwania stawiane DBMS Tworzenie bazy danych - język definiowania danych DDL Wyszukiwanie danych – język zapytań DQL, kwerendy Aktualizacja danych – język manipulacji danymi DML Przechowywanie danych Sterowanie dostępem do danych Łódź 2008 System zarządzania bazą danych Składowe DBMS Użytkownicy Modyfikacje schematu Zapytania Aktualizacje Procesor zapytań Moduł zarządania pamięcią Moduł zarządzania plikami Moduł zarządzania buforami Dane Metadane Łódź 2008 Moduł zarządzania transakcjami System zarządzania bazą danych Własności transakcji Zespół własności DBMS, za który odpowiedzialny jest moduł zarządzania transakcjami nazywany jest słowem Niepodzielność (Atomicity) Spójność (Consistency) Izolację (Isolaction) Trwałość (Durability) Łódź 2008 ACID: System zarządzania bazą danych Współbieżność DBMS musi sprawować kontrolę nad przebiegiem transakcji, nie dopuszczając do wzajemnej blokady poszczególnych transakcji lub stanu niezgodnego bazy danych Sytuacja konfliktowa pojawia się wówczas, gdy dwie transakcje próbują dokonać zapisu na tym samym obiekcie w jednej chwili Problem utraconej modyfikacji (zapis-zapis) Problem zależności od niezatwierdzonej wartości (zapis-odczyt) Problem niespójnej analizy (zapis-odczyt) Łódź 2008 System zarządzania bazą danych Współbieżność Typowa transakcja Transakcja A Czas Odczyt wartości t1 Zapis zmiany t2 Zatwierdzenie zmiany lub cofnięcie zmiany t3 Łódź 2008 System zarządzania bazą danych Współbieżność Problem utraconej modyfikacji (zapis-zapis) Transakcja A Odczyt wartości Czas t1 t2 Zapis zmiany Transakcja B Odczyt wartości t3 t4 Łódź 2008 Zapis zmiany System zarządzania bazą danych Współbieżność Problem utraconej modyfikacji – nie wystąpi, gdy przestrzega się następującej reguły: transakcja T1 nie powinna dokonywać zapisu wartości obiektu modyfikowanej przez inną transakcję T2, która nie osiągnęła jeszcze punktu potwierdzenia Łódź 2008 System zarządzania bazą danych Współbieżność Problem zależności od niezatwierdzonej wartości (zapis-odczyt) Transakcja A Czas Transakcja B t1 Odczyt wartości Zapis zmiany t2 Cofnięcie zmiany t3 Łódź 2008 System zarządzania bazą danych Współbieżność Problem zależności od niezatwierdzonej wartości (zapis-odczyt) Transakcja A Zapis zmiany Czas Transakcja B t1 Zapis zmiany t2 Cofnięcie zmiany t3 Łódź 2008 System zarządzania bazą danych Współbieżność Problem zależności od niezatwierdzonej wartości– nie wystąpi, gdy przestrzega się następującej reguły: Transakcja A nie powinna dokonywać dokonywać odczytu wartości niepotwierdzonych, którymi w tym czasie manipulują inne transakcje Łódź 2008 System zarządzania bazą danych Współbieżność Problem niespójnej analizy (zapis-odczyt) Transakcja A Czas Odczyt wartości A t1 Odczyt wartości B (A+B) t2 Odczyt wartości C (A+B+C) Transakcja B t3 Odczyt wartości A t4 Zapis wartości A -> A1 t5 Zatwierdzenie wartości A1 t6 Łódź 2008 System zarządzania bazą danych Współbieżność Problem niespójnej analizy – nie wystąpi, gdy przestrzega się następującej reguły: Żadna transakcja nie powinna modyfikować wartości odczytywanej przez inną transakcję, zanim ta ostatnia nie osiągnie punktu potwierdzenia Łódź 2008 System zarządzania bazą danych Architektura Architektura dwuwarstwowa (client-server) Architektura dwu i pół warstwowa Architektura trójwarstwowa Łódź 2008 System zarządzania bazą danych Architektura Architektura client-server Serwer sam stanowi DBMS. Może realizować wszystkie podstawowe funkcje: definiowanie danych, obróbkę danych, zapewnienie bezpieczeństwa i integralności danych Klienci są to rozmaite aplikacje korzystające z DBMS – zarówno napisane przez użytkowników jak i aplikacje wbudowane, czyli dostarczone wraz z DBMS Użytkownicy aplikacji Aplikacje Klienci DBMS Serwer Baza danych Łódź 2008 System zarządzania bazą danych Architektura Architektura client-server - zalety Elastyczność systemu – można pracować z różnymi środowiskami graficznymi równocześnie. Można operować danymi w sposób spójny a jednocześnie niezależny od bieżącej struktury Zarządzanie samym serwerem powoduje uniezależnienie od konkretnych użytkowników i problemów związanych z wielodostępem Zmiana jednostki serwera lub oprogramowania serwera nie wymaga zmiany aplikacji po stronie klienta Istnieje możliwość wyboru dostępu do danych w zależności od kategorii użytkowników Łódź 2008 System zarządzania bazą danych Architektura Architektura client-server - wady Duży stopień komplikacji systemu – istnieje konieczność zapewnienia mechanizmów spójności i wielodostępu Konieczność zapewnienia właściwej komunikacji aplikacji klienckiej z serwerem bazy danych Zapewnienie odpowiednich połączeń sieciowych (standardy) Łódź 2008 System zarządzania bazą danych Architektura Architektura client-server - rozwarstwienie Warstwa bazy danych Struktura bazy danych Warstwa aplikacji i prezentacji Reguły biznesowe Łódź 2008 Interface użytkownika Serwer Klient System zarządzania bazą danych Architektura Architektura dwu i pół warstwowa Warstwa bazy danych Struktura bazy danych Serwer Podwarstwa procedur wbudowanych i trigerów Procedury wbudowane, trigery Serwer Warstwa aplikacji i prezentacji Reguły biznesowe Klient Interface użytkownika Klient Łódź 2008 System zarządzania bazą danych Architektura Architektura dwu i pół warstwowa - cechy aplikacja kliencka nie odwołuje się bezpośrednio do bazy danych, ale jedynie wywołuje pewne operacje w serwerze danych, który bądź udostępnia pewne dane bądź realizuje wywołane procedury bazodanowe w bazie danych zaimplementowane są reguły biznesowe, wspólne dla wszystkich aplikacji klienckich. Wymiana takiej reguły powoduje, że sposób funkcjonowania aplikacji klienta zmieni się dla każdego klienta jednocześnie Łódź 2008 System zarządzania bazą danych Architektura Architektura trójwarstwowa Użytkownicy aplikacji Aplikacje - interface Klienci Aplikacje - procedury biznesowe Serwer aplikacji DBMS Serwer bazy danych Baza danych Łódź 2008 System zarządzania bazą danych Architektura Architektura trójwarstwowa Warstwa bazy danych Struktura bazy danych Warstwa aplikacji Reguły biznesowe Warstwa prezentacji Interface użytkownika Łódź 2008 Serwer bazy danych Serwer aplikacji Klient System zarządzania bazą danych Architektura Architektura trójwarstwowa – cechy Istnieje potrzeba wyprowadzenia kodu poza strukturę serwera bazy danych Aplikacja kliencka komunikuje się jedynie z serwerem aplikacji Serwer aplikacji wykonuje procedury na żądanie aplikacji klienckiej a one odwołują się do bazy danych Serwer aplikacji może inicjować realizowanie operacji bazodanowych na kilku serwerach aplikacji jednocześnie Warstwa aplikacji jest odpowiedzialna za spójność danych posadowionych na kilku serwerach oraz za odseparowanie aplikacji klienckiej od struktur baz danych Architektura trójwarstwowa stosowana jest m.in.. W systemach, w których komunikacja oparta jest o internet, np.. ORACLE 9i (IAS) Łódź 2008 System zarządzania bazą danych Architektura Architektura trójwarstwowa Łódź 2008