Zaliczenie Wykład: Podstawowe informacje z zakresu baz danych - relacyjne Bazy danych bazy danych, SQL, indeksy, architektura baz danych Wykład 1: Wprowadzenie do baz Pracownia specjalistyczna: projekt bazy danych, SQL danych Małgorzata Krętowska, Agnieszka Oniśko Katedra Oprogramowania Wydział Informatyki Bazy danych 2 Literatura Strony WWW " Ullman J.D., Widom J., Podstawowy wykład z baz danych, WNT Materiały do wykładu: 1999 " http://aragorn.pb.bialystok.pl/~gkret " Garcia-Molina H., Ullman J.D. Widom J., Systemy baz danych. Pełny wykład, WNT, 2006 " Banachowski L., Chądzyńska A., Mrówka-Matejewska E., Inne strony: Matejewski K., Stencel K., Bazy danych. Wykłady i ćwiczenia, " http:// www.oracle.com Wydawnictwo PJWSTK, 2003 " Beynon-Davies P., Systemy baz danych, WNT, 1998 " http://www.wsp.krakow.pl/~wmkolasa/bazy/101.html " Elmasri R., Navathe S.B., Wprowadzenie do systemów baz danych, Helion, 2005 " http://www.w3schools.com/sql/default.asp Bazy danych 3 Bazy danych 4 Plan wykładu System bazy danych Składniki systemu bazy danych baza danych " System bazy danych model danych Baza danych system zarządzania bazą danych (SZBD) Model danych System zarządzania bazą danych " Architektura klient-serwer Scenariusze powstawania systemu bazy danych przyrostowo ( kawałek-po-kawałku ) " Historia system zintegrowany " Relacyjne bazy danych " Zapytania proste SQL Bazy danych 5 Bazy danych 6 Pojęcie bazy danych Właściwości bazy danych " Baza danych: strukturalizacja zarządzania informacją " Współdzielenie danych współbieżny dostęp do danych przez wielu użytkowników " Trwałość danych: zbiór danych istniejący przez długi czas " Kontrolowanie replikacji danych baza jest zbiorem danych bez niepotrzebnie powtarzających się lub zbędnych informacji " Zgodność z rzeczywistością: dotyczy pewnego fragmentu rzeczywistości związanego z firmą, organizacją, itp. Jest z " Spójność reprezentacji danych reguły częścią systemu informacyjnego obsługującego reprezentacja w oparciu o jeden model danych zapotrzebowania informacyjne związane z tym fragmentem " Abstrakcja danych rzeczywistości baza nie jest dokładnym modelem rzeczywistości, a jedynie jej wycinkiem " Bezpieczeństwo danych " Niezależność danych celem jest sytuacja, w której organizacja danych jest niewidoczna dla użytkowników i programów korzystających z danych Bazy danych 7 Bazy danych 8 Model danych Hierarchiczny model danych Hierarchiczny model danych jest pewnym rozszerzeniem modelu prostego, " Model danych jako architektura - zbiór zasad posługiwania się opartego na rekordach składających się z pól i zgrupowanych w plikach. W danymi: schemacie hierarchicznym wprowadza się typy rekordów i związki nadrzędny- Definicja danych. Zbiór reguł określających, jaka jest struktura podrzędny pomiędzy nimi. danych. Definicja danych Operowanie danymi. Zbiór reguł określających, jak operuje się " Typ rekordu to nazwana struktura danych, złożona ze zbioru nazwanych pól; każde pole danymi. służy do zapisu pojedynczego atrybutu obiektu opisywanego przez rekord, i Integralność danych. Zbiór reguł określających, które stany bazy charakteryzuje się określonym typem danych, np. liczba całkowita, napis, data, itp. Na danych są poprawne. ogół jedno z pól danego typu rekordu wyróżnia się jako klucz, tj. unikalny identyfikator rekordu wśród rekordów danego typu (często przydzielany dość arbitralnie, podobnie Typy modeli: jak np. nr albumu studenta lub nr PESEL w ewidencji ludności) oraz zakłada się Proste modele danych - struktury rekordów zgrupowanych w uporządkowanie rekordów wg. wartości jednego z pól (zwykle klucza, choć strukturach plików niekoniecznie). Klasyczne modele danych: hierarchiczne, sieciowe, relacyjne " Relacja nadrzędny-podrzędny: typy rekordów tworzą strukturę drzewa, tj. każdy typ Semantyczne modele danych rekordu (z wyjątkiem najwyższego w hierarchii, tzw. korzenia -- root) związany jest z dokładnie jednym typem nadrzędnym. Zarazem każdy określony rekord typu Obiektowe modele danych podrzędnego jest związany z określonym rekordem właściwego typu nadrzędnego. Bazy danych 9 Bazy danych 10 Hierarchiczny model danych Sieciowy model danych " Sieciowy model danych w ogólnym zarysie niewiele odbiega od Operowanie danymi hierarchicznego. W miejsce związku nadrzędny-podrzędny pomiędzy " Typowe operacje na danych w tym modelu to wyszukiwanie rekordów określonego rekordami wprowadza się w nim tzw. typ kolekcji (set), który jest złożonym typu, podrzędnych względem danego rekordu, i spełniających warunki dotyczące zawartości określonych pól; usuwanie lub dodawanie rekordów i edycja ich pól. typem danych pola zawierającym odniesienia do innych rekordów określonego Realizowane są poprzez funkcje lub procedury pisane w językach programowania o typu. Tzn. określenie typu kolekcji polega na podaniu typu rekordu- charakterze zazwyczaj proceduralnym, np. C. ,,właściciela'' i typu rekordów-elementów kolekcji (oraz ew. klucza porządkowania elementów). Operowanie danymi ma też charakter proceduralny: typowe operacje to wyszukiwanie rekordu na podstawie Integralność danych zawartości pól i/lub przynależności do danego wystąpienia typu kolekcji, i Podstawowe warunki integralności wynikają z samej definicji struktury danych dokonywanie modyfikacji bieżącego rekordu. modelu: " Każdy rekord (z wyjątkiem korzenia) musi być powiązany z rekordem nadrzędnym " Warunki integralności danych, poza oczywistymi już więzami dotyczącymi właściwego typu; a więc np. usunięcie rekordu nadrzędnego wiąże się z usunięciem zgodności zawartości pól rekordu z określeniem typu rekordu i unikalności pól wszystkich względem niego podrzędnych. Nie można wstawić rekordu bez powiązania go z rekordem nadrzędnym. kluczowych, mogą być formułowane w terminach wymogu przynależności rekordu do jakiegoś wystąpienia określonego typu kolekcji. " Zawartość każdego pola rekordu musi odpowiadać typowi danych z definicji danego typu rekordu. Bazy danych 11 Bazy danych 12 System zarządzania bazą danych (SZBD) Systemy baz danych Database management system (DBMS) Zorganizowany zbiór narzędzi umożliwiający dostęp i zarządzanie Konstruowanie Zestaw narzędzi SZBD jedną lub więcej bazami danych. SZBD jest powłoką, która bazy danych otacza bazę danych i za pomocą której dokonują się wszystkie Interfejs SZBD operacje na bazie danych. Jądro SZBD Model Funkcje SZBD: Świat danych Umożliwienie utworzenia nowej bazy i określenie jej schematu rzeczywisty Przechowywanie danych Baza danych Obsługa zapytań (ang. query) Zapewnienie wielodostępności Ochrona i zapewnienie integralności danych Bazy danych 13 Bazy danych 14 Składowe SZBD Moduł zarządzania pamięcią " Moduł zarządzania plikami Modyfikacje Zapytania Aktualizacje przechowuje dane o miejscu zapisania plików na dysku i na schematu polecenie modułu zarządzania buforami przesyła zawartość bloku lub bloków gdzie jest zapamiętany żądany plik Procesor zapytań Moduł zarządzania " Moduł zarządzania buforami transakcjami obsługuje pamięć operacyjną. Wybiera w pamięci operacyjnej Moduł zarządzania strony, które zostaną przydzielone dla wybranych bloków. pamięcią Dane Metadane Bazy danych 15 Bazy danych 16 Moduł zarządzania zapytaniami Moduł zarządzania transakcjami " Zadaniem modułu jest przekształcenie zapytania lub operacji na " Transakcja - nieformalna grupa operacji przeznaczonych do bazie danych w ciąg poleceń żądających dostarczenia wykonania razem w jednym ciągu, jako duża operacja określonych danych, takich jak konkretne krotki zadanej relacji jednostkowa lub fragmenty indeksu relacji " Najtrudniejsza operacja: optymalizacja zapytania " Właściwości (ACID): niepodzielność (atomicity) - cała transakcja powinna zostać przeprowadzona, albo żaden z jej elementów nie zostanie uwzględniony spójność (consistency) - np. miejsce w danym rejsie lotniczym nie może być przydzielone dwóm różnym pasażerom izolacja (isolation) - brak wpływu transakcji na siebie przy jednoczesnym ich przetwarzaniu trwałość (durability) - po zakończeniu transakcji jej wynik nie może zostać utracony Bazy danych 17 Bazy danych 18 Transakcje Architektura klient-serwer Podstawowe rozwiązania techniczne zapewniające właściwości serwer ACID: Blokady - blokowanie elementu elementu, którego dotyczy klienci wykonywana właśnie transakcja Po założeniu blokady dane są niedostępne dla innych transakcji. Typowe funkcje strony serwera aplikacji: Typowe funkcje aplikacji po Logi - dokumentowanie operacji tzn. rozpoczęcie każdej transakcji, stronie klienta: zmiany dokonywane w bazie danych przez transakcje oraz - przechowywanie i organizacja dostępu do danych kontakt z użytkownikiem: zakończenie transakcji Log jest przechowywany w pamięci stałej. przyjmowanie od niego zleceń na - wykonywanie instrukcji języka SQL operacje, wykonywanie tych zleceń - sprawowanie kontroli nad spójnością danych lub przesyłanie ich w postaci Zatwierdzanie transakcji - gdy transakcja kończy działanie, jest instrukcji języka SQL do serwera gotowa do zatwierdzenia zmiany kopiowane są do logu, dopiero - zarządzanie zasobami bazy danych, w tym bazy danych kontami użytkowników potem następuje aktualizacja danych. Bazy danych 19 Bazy danych 20 Użytkownicy bazy danych Historia " 1961 - Integrated Data Store IDS - pierwszy SZBD, początek sieciowego modelu danych " 1965-70 - Information Management System IMS (IBM) - hierarchiczny model danych Administratorzy baz danych " 1970 - I " 1971 - CODASYL - sieciowy model danych " początek lat 70 - prototyp języka SQL o nazwie Sequel (IBM) " 1973 - pierwszy SZ relacyjną BD - system R w firmie IBM " 1979 - firma Relational Software (pózniej Oracle) wprowadziła na rynek pierwszą komercyjną wersję SZ relacyjną BD Baza danych " 1987 - pierwszy standard języka SQL (ISO) " lata 80 - badania nad dedukcyjnymi i obiektowymi BD " 1997 - standard obiektowych baz danych ODMG 2.0 Programiści Użytkownicy końcowi " 1999 nieoficjalna wersja standardu języka obiektowo-relacyjnych baz danych (SQL 1999) " lata 90 - rozszerzenie baz danych o nowe aspekty - architektury wielowarstwowe; rozproszenie; równoległość; Internet; hurtownie danych; multimedia; GIS Bazy danych 21 Bazy danych 22 Relacyjne bazy danych Zapytania SQL Nr konta Bilans Typ " umożliwienie prezentowania użytkownikowi danych w postaci 12345 1000,00 oszczędnościowy tabel, nazywanych relacjami 87654 3567,00 rozliczeniowy " użytkownik nie musiał nic wiedzieć o wewnętrznej, często .......... ........... ............. skomplikowanej, strukturze wewnętrznej " zapytania można było wyrażać w języku wysokiego poziomu, co Przykłady zapytań SQL: podnosiło wydajność programistów baz danych SELECT typ FROM Konta Przykład: Atrybuty WHERE nr_konta =12345; Tabela Konta Nr konta Bilans Typ SELECT nr_konta FROM Konta 12345 1000,00 oszczędnościowy WHERE typ= oszczędnościowy AND bilans>0; 87654 3567,00 rozliczeniowy .......... ........... ............. Krotki Bazy danych 23 Bazy danych 24 Baza ćwiczeniowa Baza ćwiczeniowa tabele emp, dept Bazy danych 25 Bazy danych 26 Baza ćwiczeniowa tabele projects, assignments Bazy danych 27