Bazy danych
Transkrypt
Bazy danych
Zaliczenie Bazy danych – Wykáad: Podstawowe informacje z zakresu baz danych - relacyjne bazy danych, SQL, indeksy, architektura baz danych Wykáad 1: Wprowadzenie do baz danych – Pracownia specjalistyczna: projekt bazy danych, SQL Maágorzata Kr towska Katedra Oprogramowania e-mail: [email protected] Bazy danych, studia zaoczne Literatura Strony WWW • 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 Bazy danych, studia zaoczne 2 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 3 Bazy danych, studia zaoczne 4 Plan wykáadu System bazy danych Skáadniki systemu bazy danych – baza danych – model danych – system zarzdzania baz danych (SZBD) • System bazy danych – Baza danych – Model danych – System zarzdzania baz danych • • • • Architektura klient-serwer Historia Relacyjne bazy danych Zapytania proste SQL Bazy danych, studia zaoczne Scenariusze powstawania systemu bazy danych – przyrostowo („kawaáek-po-kawaáku”) – system zintegrowany 5 Poj cie bazy danych Bazy danych, studia zaoczne 6 Wáaciwoci bazy danych • Baza danych: strukturalizacja zarzdzania informacj • Wspóádzielenie danych – wspóábie*ny dost p do danych przez wielu u*ytkowników • Trwaáoü danych: zbiór danych istniejcy przez dáugi czas • Kontrolowanie replikacji danych – baza jest zbiorem danych bez niepotrzebnie powtarzajcych si lub zb dnych informacji • Zgodnoü z rzeczywistoci: dotyczy pewnego fragmentu rzeczywistoci zwizanego z firm, organizacj, itp. Jest z reguáy cz ci systemu informacyjnego obsáugujcego zapotrzebowania informacyjne zwizane z tym fragmentem rzeczywistoci • 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, studia zaoczne 7 Bazy danych, studia zaoczne 8 Model danych Model danych • Model danych jako architektura - zbiór zasad posáugiwania si danymi: • Model danych jako projekt – 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. – zintegrowany, niezale*ny od implementacji zbiór wymaga dotyczcy danych dla pewnej aplikacji. Model danych w tym sensie jest wa*n cz ci skáadow ka*dej specyfikacji systemów informacyjnych 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, studia zaoczne 9 Bazy danych, studia zaoczne Hierarchiczny model danych 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 nadrz dnypodrz dny pomi dzy nimi. Operowanie danymi • 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 (cz sto 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 nadrz dny-podrz dny: 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 nadrz dnym. Zarazem ka*dy okrelony rekord typu podrz dnego jest zwizany z okrelonym rekordem wáaciwego typu nadrz dnego. Bazy danych, studia zaoczne 10 11 Typowe operacje na danych w tym modelu to wyszukiwanie rekordów okrelonego typu, podrz dnych wzgl dem 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 j zykach 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 nadrz dnym wáaciwego typu; a wi c np. usuni cie rekordu nadrz dnego wi*e si z usuni ciem wszystkich wzgl dem niego podrz dnych. Nie mo*na wstawiü rekordu bez powizania go z rekordem nadrz dnym. Zawartoü ka*dego pola rekordu musi odpowiadaü typowi danych z definicji danego typu rekordu. Bazy danych, studia zaoczne 12 System zarzdzania baz danych (SZBD) Sieciowy model danych • • Database management system (DBMS) Sieciowy model danych w ogólnym zarysie niewiele odbiega od hierarchicznego. W miejsce zwizku nadrz dny-podrz dny pomi dzy 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. Zorganizowany zbiór narz dzi umo*liwiajcy dost p i zarzdzanie jedn lub wi cej bazami danych. SZBD jest powáok, która otacza baz danych i za pomoc której dokonuj si wszystkie operacje na bazie danych. Funkcje SZBD: – – – – – Warunki integralnoci danych, poza oczywistymi ju* wi zami 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, studia zaoczne 13 Umo*liwienie utworzenia nowej bazy i okrelenie jej schematu Przechowywanie danych Obsáuga zapyta (ang. query) Zapewnienie wielodost pnoci Ochrona i zapewnienie integralnoci danych Bazy danych, studia zaoczne Systemy baz danych Konstruowanie bazy danych Skáadowe SZBD Modyfikacje schematu Zestaw narz dzi SZBD Interfejs SZBD wiat rzeczywisty Jdro SZBD 14 Zapytania Aktualizacje Procesor zapyta Model danych Moduá zarzdzania pami ci Baza danych Moduá zarzdzania transakcjami Dane Metadane Bazy danych, studia zaoczne 15 Bazy danych, studia zaoczne 16 Moduá zarzdzania pami ci Moduá zarzdzania zapytaniami • 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 zapami tany *dany plik • 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 buforami – obsáuguje pami ü operacyjn. Wybiera w pami ci operacyjnej strony, które zostan przydzielone dla wybranych bloków. Bazy danych, studia zaoczne 17 Bazy danych, studia zaoczne Moduá zarzdzania transakcjami Transakcje • 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 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 zakoczeniu transakcji jej wynik nie mo*e zostaü utracony Bazy danych, studia zaoczne 18 19 Podstawowe rozwizania techniczne zapewniajce wáaciwoci ACID: – Blokady - blokowanie elementu elementu, którego dotyczy wykonywana wáanie transakcja Po zaáo*eniu blokady dane s niedost pne dla innych transakcji. – Logi - dokumentowanie operacji tzn. rozpocz cie ka*dej transakcji, zmiany dokonywane w bazie danych przez transakcje oraz zakoczenie transakcji Log jest przechowywany w pami ci staáej. – Zatwierdzanie transakcji - gdy transakcja koczy dziaáanie, jest gotowa do zatwierdzenia zmiany kopiowane s do logu, dopiero potem nast puje aktualizacja danych. Bazy danych, studia zaoczne 20 Architektura klient-serwer U*ytkownicy bazy danych serwer Administratorzy baz danych klienci Typowe funkcje strony serwera aplikacji: - przechowywanie i organizacja dost pu do danych - wykonywanie instrukcji j zyka SQL - sprawowanie kontroli nad spójnoci danych - zarzdzanie zasobami bazy danych, w tym kontami u*ytkowników Typowe funkcje aplikacji po stronie klienta: Baza danych kontakt z u*ytkownikiem: przyjmowanie od niego zlece na operacje, wykonywanie tych zlece lub przesyáanie ich w postaci instrukcji j zyka SQL do serwera bazy danych Bazy danych, studia zaoczne Programici 21 Bazy danych, studia zaoczne Historia • • • • • • • • • • • • 22 Relacyjne bazy danych 1961 - Integrated Data Store IDS - pierwszy SZBD, pocztek sieciowego modelu danych 1965-70 - Information Management System IMS (IBM) - hierarchiczny model danych • umo*liwienie prezentowania u*ytkownikowi danych w postaci tabel, nazywanych relacjami • 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 podnosiáo wydajnoü programistów baz danych n \FK 1970 - (GJDU) &RGG ,%0Å5HODF\MQ\PRGHOGDQ\FKGODGX ZVSyà Xn \WNRZDQ\FKEDQNyZLQIRUPDFMLµ 1971 - CODASYL - sieciowy model danych pocztek 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ó(niej Oracle) wprowadziáa na rynek pierwsz komercyjn wersj SZ relacyjn BD 1987 - pierwszy standard j zyka SQL (ISO) Przykáad: Tabela Konta Nr konta 12345 87654 .......... lata 80’ - badania nad dedukcyjnymi i obiektowymi BD 1997 - standard obiektowych baz danych ODMG 2.0 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, studia zaoczne U*ytkownicy kocowi 23 Bazy danych, studia zaoczne Atrybuty Bilans 1000,00 3567,00 ........... Typ oszcz GQRFLRZ\ rozliczeniowy ............. Krotki 24 Baza üwiczeniowa Zapytania SQL Nr konta 12345 87654 .......... Bilans 1000,00 3567,00 ........... Typ oszcz GQRFLRZ\ rozliczeniowy ............. Przykáady zapyta SQL: SELECT typ FROM Konta WHERE nr_konta =12345; SELECT nr_konta FROM Konta WHERE typ=‘oszcz dnociowy” AND bilans>0; Bazy danych, studia zaoczne 25 Bazy danych, studia zaoczne Baza üwiczeniowa Baza üwiczeniowa tabele emp, dept Bazy danych, studia zaoczne 26 tabele projects, assignments 27 Bazy danych, studia zaoczne 28 SQL: Strukturalny J zyk Zapyta DQL (ang. Data Query Language) (ang. Structured Query Language) • Definiowanie danych (DDL:Data Definition Language) Zapytanie SQL • Definiowanie zapyta (DQL: Data Query Language) • Modyfikowanie danych (DML: Data Modification Language) Wynik zapytania • Sterowanie danymi (DCL: Data Control Language) Bazy danych, studia zaoczne Serwer 29 Klient Bazy danych, studia zaoczne Zapytania proste 30 Zapytania proste SELECT [ALL | DISTINCT] wyra*enie [[AS] alias], ... FROM nazwa_tabeli, ... SELECT [ALL | DISTINCT] wyra*enie [[AS] alias], ... FROM nazwa_tabeli, ... [WHERE warunek] [ORDER BY wyra*enie ASC|DESC], ...]; ALL- pokazuje wszystkie wiersze (domylny) DISTINCT - eliminuje powtarzajce si wiersze wyra*enie - nazwa kolumny lub wyra*enie zawierajce nazwy kolumn, cy wszystkie zamiast wyra*enia mo*e wystpiü znak '*’ oznaczaj kolumny alias - nazwa nadana wyra*eniu na licie SELECT, mo*e mieü postaü identyfikatora prostego (napis záo*ony z liter, cyfr i znaków podkrelenia) lub záo*onego (dowolny napis ograniczony podwójnymi cudzysáowami, np. zawierajcy spacje), Bazy danych, studia zaoczne 31 Bazy danych, studia zaoczne 32 Zapytania proste [WHERE warunek] Operatory logiczne: =; <; >; >=; <= Operatory SQL: BETWEEN ... AND ... - mi dzy dwiema wartociami (wácznie z nimi) IN (lista) - zgodnie z jednym elementów listy LIKE - zgodnie z zadanym wzorcem (interpretacja znaków typu "wildcard": ‘%’ zast puje cig znaków, ‘-’ zast puje jeden znak) IS NULL - jest wartoci NULL Operator negacji: NOT (NOT nazwa_kolumny = ...; NOT BETWEEN; NOT IN; NOT LIKE; IS NOT NULL) Kryteria záo*one: AND (i) OR (lub) Bazy danych, studia zaoczne 33