Zaliczenie Bazy danych Wykáad 1: Wprowadzenie do baz danych Wykáad: Podstawowe informacje z zakresu baz danych - relacyjne bazy danych, SQL, indeksy, architektura baz danych Pracownia specjalistyczna: projekt bazy danych, SQL Maágorzata Krtowska, Agnieszka Oniko Katedra Oprogramowania Wydziaá Informatyki Bazy danych 2 Literatura Ullman J.D., Widom J., Podstawowy wykáad z baz danych, WNT 1999 Garcia-Molina H., Ullman J.D. Widom J., Systemy baz danych. Peány wykáad, WNT, 2006 Banachowski L., Chdzyska A., Mrówka-Matejewska E., Matejewski K., Stencel K., Bazy danych. Wykáady i üwiczenia, Wydawnictwo PJWSTK, 2003 Beynon-Davies P., Systemy baz danych, WNT, 1998 Elmasri R., Navathe S.B., Wprowadzenie do systemów baz danych, Helion, 2005 Strony WWW Materiaáy do wykáadu: http://aragorn.pb.bialystok.pl/~gkret Inne strony: http:// www.oracle.com http://www.wsp.krakow.pl/~wmkolasa/bazy/101.html http://www.w3schools.com/sql/default.asp Bazy danych 3 Bazy danych 4
Plan wykáadu System bazy danych Baza danych Model danych System zarzdzania baz danych System bazy danych Skáadniki systemu bazy danych baza danych model danych system zarzdzania baz danych (SZBD) Architektura klient-serwer Historia Relacyjne bazy danych Zapytania proste SQL Scenariusze powstawania systemu bazy danych przyrostowo ( kawaáek-po-kawaáku ) system zintegrowany Bazy danych 5 Bazy danych 6 Pojcie bazy danych Baza danych: strukturalizacja zarzdzania informacj Trwaáoü danych: zbiór danych istniejcy przez dáugi czas Zgodnoü z rzeczywistoci: dotyczy pewnego fragmentu rzeczywistoci zwizanego z firm, organizacj, itp. Jest z reguáy czci systemu informacyjnego obsáugujcego zapotrzebowania informacyjne zwizane z tym fragmentem rzeczywistoci Bazy danych 7 Wáaciwoci bazy danych Wspóádzielenie danych wspóábie*ny dostp do danych przez wielu u*ytkowników Kontrolowanie replikacji danych baza jest zbiorem danych bez niepotrzebnie powtarzajcych si lub zbdnych informacji Spójnoü reprezentacji danych reprezentacja w oparciu o jeden model danych Abstrakcja danych baza nie jest dokáadnym modelem rzeczywistoci, a jedynie jej wycinkiem Bezpieczestwo danych Niezale*noü danych celem jest sytuacja, w której organizacja danych jest niewidoczna dla u*ytkowników i programów korzystajcych z danych Bazy danych 8
Model danych Model danych jako architektura - zbiór zasad posáugiwania si danymi: Definicja danych. Zbiór reguá okrelajcych, jaka jest struktura danych. Operowanie danymi. Zbiór reguá okrelajcych, jak operuje si danymi. Integralnoü danych. Zbiór reguá okrelajcych, które stany bazy danych s poprawne. Typy modeli: Proste modele danych - struktury rekordów zgrupowanych w strukturach plików Klasyczne modele danych: hierarchiczne, sieciowe, relacyjne Semantyczne modele danych Obiektowe modele danych Bazy danych 9 Hierarchiczny model danych Hierarchiczny model danych jest pewnym rozszerzeniem modelu prostego, opartego na rekordach skáadajcych si z pól i zgrupowanych w plikach. W schemacie hierarchicznym wprowadza si typy rekordów i zwizki nadrzdnypodrzdny pomidzy nimi. Definicja danych Typ rekordu to nazwana struktura danych, záo*ona ze zbioru nazwanych pól; ka*de pole sáu*y do zapisu pojedynczego atrybutu obiektu opisywanego przez rekord, i charakteryzuje si okrelonym typem danych, np. liczba caákowita, napis, data, itp. Na ogóá jedno z pól danego typu rekordu wyró*nia si jako klucz, tj. unikalny identyfikator rekordu wród rekordów danego typu (czsto przydzielany doü arbitralnie, podobnie jak np. nr albumu studenta lub nr PESEL w ewidencji ludnoci) oraz zakáada si uporzdkowanie rekordów wg. wartoci jednego z pól (zwykle klucza, choü niekoniecznie). Relacja nadrzdny-podrzdny: typy rekordów tworz struktur drzewa, tj. ka*dy typ rekordu (z wyjtkiem najwy*szego w hierarchii, tzw. korzenia -- root) zwizany jest z dokáadnie jednym typem nadrzdnym. Zarazem ka*dy okrelony rekord typu podrzdnego jest zwizany z okrelonym rekordem wáaciwego typu nadrzdnego. Bazy danych 10 Hierarchiczny model danych Operowanie danymi Typowe operacje na danych w tym modelu to wyszukiwanie rekordów okrelonego typu, podrzdnych wzgldem danego rekordu, i speániajcych warunki dotyczce zawartoci okrelonych pól; usuwanie lub dodawanie rekordów i edycja ich pól. Realizowane s poprzez funkcje lub procedury pisane w jzykach programowania o charakterze zazwyczaj proceduralnym, np. C. Integralnoü danych Podstawowe warunki integralnoci wynikaj z samej definicji struktury danych modelu: Ka*dy rekord (z wyjtkiem korzenia) musi byü powizany z rekordem nadrzdnym wáaciwego typu; a wic np. usunicie rekordu nadrzdnego wi*e si z usuniciem wszystkich wzgldem niego podrzdnych. Nie mo*na wstawiü rekordu bez powizania go z rekordem nadrzdnym. Zawartoü ka*dego pola rekordu musi odpowiadaü typowi danych z definicji danego typu rekordu. Bazy danych 11 Sieciowy model danych Sieciowy model danych w ogólnym zarysie niewiele odbiega od hierarchicznego. W miejsce zwizku nadrzdny-podrzdny pomidzy rekordami wprowadza si w nim tzw. typ kolekcji (set), który jest záo*onym typem danych pola zawierajcym odniesienia do innych rekordów okrelonego typu. Tzn. okrelenie typu kolekcji polega na podaniu typu rekordu-,,wáaciciela'' i typu rekordów-elementów kolekcji (oraz ew. klucza porzdkowania elementów). Operowanie danymi ma te* charakter proceduralny: typowe operacje to wyszukiwanie rekordu na podstawie zawartoci pól i/lub przynale*noci do danego wystpienia typu kolekcji, i dokonywanie modyfikacji bie*cego rekordu. Warunki integralnoci danych, poza oczywistymi ju* wizami dotyczcymi zgodnoci zawartoci pól rekordu z okreleniem typu rekordu i unikalnoci pól kluczowych, mog byü formuáowane w terminach wymogu przynale*noci rekordu do jakiego wystpienia okrelonego typu kolekcji. Bazy danych 12
Systemy baz danych System zarzdzania baz danych (SZBD) Database management system (DBMS) Konstruowanie bazy danych Zestaw narzdzi SZBD Interfejs SZBD Zorganizowany zbiór narzdzi umo*liwiajcy dostp i zarzdzanie jedn lub wicej bazami danych. SZBD jest powáok, która otacza baz danych i za pomoc której dokonuj si wszystkie operacje na bazie danych. wiat rzeczywisty Jdro SZBD Baza danych Model danych Funkcje SZBD: Umo*liwienie utworzenia nowej bazy i okrelenie jej schematu Przechowywanie danych Obsáuga zapyta (ang. query) Zapewnienie wielodostpnoci Ochrona i zapewnienie integralnoci danych Bazy danych 13 Bazy danych 14 Skáadowe SZBD Moduá zarzdzania pamici Modyfikacje schematu Zapytania Procesor zapyta Moduá zarzdzania pamici Aktualizacje Moduá zarzdzania transakcjami Moduá zarzdzania plikami przechowuje dane o miejscu zapisania plików na dysku i na polecenie moduáu zarzdzania buforami przesyáa zawartoü bloku lub bloków gdzie jest zapamitany *dany plik Moduá zarzdzania buforami obsáuguje pamiü operacyjn. Wybiera w pamici operacyjnej strony, które zostan przydzielone dla wybranych bloków. Dane Metadane Bazy danych 15 Bazy danych 16
Moduá zarzdzania zapytaniami Zadaniem moduáu jest przeksztaácenie zapytania lub operacji na bazie danych w cig polece *dajcych dostarczenia okrelonych danych, takich jak konkretne krotki zadanej relacji lub fragmenty indeksu relacji Najtrudniejsza operacja: optymalizacja zapytania Moduá zarzdzania transakcjami Transakcja - nieformalna grupa operacji przeznaczonych do wykonania razem w jednym cigu, jako du*a operacja jednostkowa Wáaciwoci (ACID): niepodzielnoü (atomicity) - caáa transakcja powinna zostaü przeprowadzona, albo *aden z jej elementów nie zostanie uwzgldniony 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 zakoczeniu transakcji jej wynik nie mo*e zostaü utracony Bazy danych 17 Bazy danych 18 Transakcje Podstawowe rozwizania techniczne zapewniajce wáaciwoci ACID: serwer Architektura klient-serwer Blokady - blokowanie elementu elementu, którego dotyczy wykonywana wáanie transakcja Po zaáo*eniu blokady dane s niedostpne dla innych transakcji. klienci Logi - dokumentowanie operacji tzn. rozpoczcie ka*dej transakcji, zmiany dokonywane w bazie danych przez transakcje oraz zakoczenie transakcji Log jest przechowywany w pamici staáej. Zatwierdzanie transakcji - gdy transakcja koczy dziaáanie, jest gotowa do zatwierdzenia zmiany kopiowane s do logu, dopiero potem nastpuje aktualizacja danych. Typowe funkcje strony serwera aplikacji: - przechowywanie i organizacja dostpu do danych - wykonywanie instrukcji jzyka SQL - sprawowanie kontroli nad spójnoci danych - zarzdzanie zasobami bazy danych, w tym kontami u*ytkowników Typowe funkcje aplikacji po stronie klienta: kontakt z u*ytkownikiem: przyjmowanie od niego zlece na operacje, wykonywanie tych zlece lub przesyáanie ich w postaci instrukcji jzyka SQL do serwera bazy danych Bazy danych 19 Bazy danych 20
U*ytkownicy bazy danych Administratorzy baz danych Baza danych Historia 1961 - Integrated Data Store IDS - pierwszy SZBD, pocztek sieciowego modelu danych 1965-70 - Information Management System IMS (IBM) - hierarchiczny model danych 1970 - (GJDU) &RGG,%0Å5HODF\MQ\PRGHOGDQ\FKGODGX n \FK ZVSyà Xn \WNRZDQ\FKEDQNyZLQIRUPDFMLµ 1971 - CODASYL - sieciowy model danych pocztek lat 70 - prototyp jzyka SQL o nazwie Sequel (IBM) 1973 - pierwszy SZ relacyjn BD - system R w firmie IBM 1979 - firma Relational Software (pó(niej Oracle) wprowadziáa na rynek pierwsz komercyjn wersj SZ relacyjn BD 1987 - pierwszy standard jzyka SQL (ISO) Programici U*ytkownicy kocowi lata 80 - badania nad dedukcyjnymi i obiektowymi BD 1997 - standard obiektowych baz danych ODMG 2.0 1999 nieoficjalna wersja standardu jzyka 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 umo*liwienie prezentowania u*ytkownikowi danych w postaci tabel, nazywanych relacjami u*ytkownik nie musiaá nic wiedzieü o wewntrznej, czsto skomplikowanej, strukturze wewntrznej zapytania mo*na byáo wyra*aü w jzyku wysokiego poziomu, co podnosiáo wydajnoü programistów baz danych Zapytania SQL Nr konta Bilans Typ 12345 1000,00 oszczgqrflrz\ 87654 3567,00 rozliczeniowy......... Przykáady zapyta SQL: Przykáad: Tabela Konta Atrybuty SELECT typ FROM Konta WHERE nr_konta =12345; Nr konta Bilans Typ 12345 1000,00 oszczgqrflrz\ 87654 3567,00 rozliczeniowy......... Krotki SELECT nr_konta FROM Konta WHERE typ= oszczdnociowy AND bilans>0; 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