Bazy danych
Transkrypt
Bazy danych
Bazy danych © Andrzej Łachwa, UJ, 2013 [email protected] www.uj.edu.pl/web/zpgk/materialy 1/15 Literatura obowiązkowa ● Elmasri R., Navathe S., Wprowadzenie do systemów baz danych. Wyd. Helion, 2005 ● Garcia‐Molina H., Ullman J.D., Widom J., Systemy baz danych. Pełny wykład. WNT, 2006 (seria: Klasyka Informatyki) ● Celko J., SQL. Zaawansowane techniki programowania. WN PWN 2008 ● Morzy T., Wykłady z baz danych dla informatyków. http://wazniak.mimuw.edu.pl/ Inne źródła będą podawane w trakcie wykładów! Ważne informacje Strona przedmiotu na www.usosweb.uj.edu.pl Konsultacje: wtorki 12.30‐13.30, piątki 10.30‐11.30, pok. 450a Wykłady rozpoczynamy o 10.15. Slajdy z wykładów będą udostępnione na stronie Zakładu PiGK w zakładce Dydaktyka/Materiały. Materiały te są przeznaczone wyłącznie dla uczestników zajęć. Efekty kształcenia: K_W03, K_W04, K_U03, K_U04, K_U06, K_U09, K_U11, K_U12, K_U14, K_U15, K_K01, K_K04 Zasady zaliczenia modułu obecność na zajęciach w pracowni wykonanie projektu (zob. Instrukcja) zaliczenie kolokwium z języka SQL zdanie egzaminu pisemnego (po uzyskaniu zaliczenia ćwiczeń‐pracowni) Baza danych (ang. database) jest – zorganizowanym zbiorem danych zapisanych w ściśle określony sposób w strukturach odpowiadających przyjętemu modelowi danych, – zbiorem reprezentującym pewien fragment świata rzeczywistego, zwany dalej obszarem analizy (ang. universe of discourse) – zbiorem zaprojektowanym, zbudowanym i utrzymywanym dla określonej grupy użytkowników, – i dla określonego sposobu korzystania z tych danych. Dane w bazie składają się z jednostek elementarnych. Są to zwykle liczby, napisy, daty etc. Nazywamy je danymi strukturalnymi. Obecnie coraz częściej korzystamy z takich danych, jak utwory muzyczne, audycje lub inne twory dźwiękowe, rysunki techniczne, fotografie lub inne obrazy stałe (ang. still picture), dokumenty języka naturalnego, animacje, nagrania wideo, filmy z dźwiękiem i napisami, mapy cyfrowe. Myślimy również o przechowywaniu obiektów, które dopiero w przyszłości będziemy umieli odpowiednio reprezentować (np. znaczenia, zapachy, smaki, odczucia estetyczne, dotykowe, stany psychiczne ...). Są to tzw. dane multimedialne. Jednostki danych, które nie mają stałej struktury lecz zawierają informacje o swojej strukturze, nazywamy semistrukturalnymi. Przykładem takiej jednostki jest dokument XML. Natomiast jednostki, które mogą mieć różną strukturę i nie zawierają informacji o swojej strukturze nazywamy niestrukturalnymi. Przykładem takiej jednostki jest rysunek techniczny. Informacja, to dane do których zostało przypisane znaczenie, to dane zinterpretowane! Informacja ma zawsze charakter subiektywny i jest związana z kontekstem. Różne dane mogą stanowić tę samą informację i na odwrót: te same dane mogą dostarczać różnych informacji. Zob. Z. Jurkiewicz: Semistrukturalne bazy danych – wprowadzenie. Wykład dla studentów matematyki. http://students.mimuw.edu.pl/~zbyszek/bazy‐danych/mat/pl/slides/semi.pdf Rodzaje baz danych – – – – – – – – Active database – Knowledge base Cloud database – Operational database Data warehouse – Parallel database Distributed database – Real‐time database Document‐oriented database – Spatial database Embedded database – Temporal database End‐user database – In‐memory database Federated database and – Unstructured‐data multi‐database database – Graph database – Hypermedia databases – Hypertext database Struktura tradycyjnej – atrybutowej (!) – bazy danych reprezentowana jest w jej schemacie, a wszystkie zapytania odwołują się do tej sztywnej struktury. W przypadku baz relacyjnych są to nazwy tabel, nazwy, typy, własności i zakresy wartości atrybutów, oraz związki referencyjne między atrybutami. Multimedialne bazy danych to systemy, w których informacja przechowywana jest w węzłach różnego rodzaju mediów (np. teksty, dźwięki, filmy, obrazy) połączonych za pomocą tzw. „wiązań asocjacyjnych” i które oferują użytkownikom zarówno możliwość nawigacji oraz udostępniania tych informacji, jak i korzystanie z tzw. „urządzeń wyszukiwawczych”, które przetwarzają dane multimedialne. Od multimedialnych baz danych odróżnia się bazy danych z multimedialną zawartością, np.: • katalogi zdjęć z miniaturami prowadzącymi do obrazów w pełnej rozdzielczości, • systemy „wideo na żądanie” z wyszukiwaniem dotyczącym opisu parametrów filmu (aktor, tytuł, streszczenie …), • księgarnie internetowe ze zdjęciami okładek książek, abstraktami, spisami treści i próbkami tekstów, • … ze zdjęciami okładek płyt, spisami zawartości i próbkami utworów – o ile tylko wyszukiwanie zorganizowane jest tradycyjnie, tj. gdy obiektami przeszukiwanymi są opisy zdjęć, filmów, książek czy płyt wpisane w sztywną strukturę (schemat bazy). Multimedialną zawartość da się „upchnąć” do popularnych relacyjnych bądź obiektowo‐relacyjnych baz danych w postaci obiektów typu BLOB. Wtedy do każdego takiego obiektu dodaje się „nagłówek”, tj. opis zawartości obiektu binarnego, a wszelkie operacje wyszukiwania mogą uwzględniać wyłącznie zawartość tych „nagłówków”. Pójdźmy jednak krok dalej: umieśćmy w nagłówku każdego obiektu listę słów charakteryzujących treść obiektu binarnego. Załóżmy, że da się to zrobić w sposób zautomatyzowany przy pomocy pewnej procedury X. W takiej sytuacji da się wyszukiwać obrazy, filmy, nagrania dźwiękowe czy teksty języka naturalnego – według zawartych w nich treści, a nie tylko po wartościach atrybutów tworzących nagłówek. Jeżeli teraz usuniemy z nagłówków opisy treści, a procedurę X włączymy do procesu wyszukiwania treści przez system zarządzania bazą, to taka baza będzie już bazą multimedialną, a nie zwykłą bazą relacyjną z multimedialną zawartością! Jak się okazuje różnica między tymi dwoma rodzajami baz danych jest bardzo subtelna. System z bazą danych Aplikacja bazodanowa to każdy system z bazą danych wykonany przy użyciu technologii informatycznej (sprzęt komputerowy + oprogramowanie + telekomunikacja). Przykłady aplikacji bazodanowych www.flags.net http://fdb.pl/katalog www.filmpolski.pl/fp/index.php/9 w w w.newsweek.pl/wydania/archiwum Katalog (kartoteka) to spis obiektów jednego typu o ustalonej strukturze, spis w postaci listy atrybutów, umożliwiający klasyfikację obiektów według kategorii lub wybór obiektów według określonych kryteriów wyszukiwania. Przykład http://mak.bn.org.pl/cgi‐bin/makwww.exe?BM=9 System zarządzania bazami danych SZBD (ang. DBMS, Database Management System) to oprogramowanie do tworzenia baz i zarządzania bazami danych. Komponent SZBD przeznaczony do wykonywania operacji CRUD (od ang. create, read, update, delete) na bazie danych nazywamy motorem lub silnikiem bazodanowym (ang. jet, engine). W ramach danego SZBD możemy mieć do wyboru kilka motorów, np. w MySQL mamy motory InnoDB, MyISAM, Memory, Archive, Blackhole i in.). Komponenty tworzące jądro SZBD i świadczące usługi na rzecz innych programów nazywamy serwerem bazodanowym. Przykłady SZBD na licencji GPL: komercyjne: PostgreSQL (www.postgresql.org.pl) MySQL (www.mysql.com) Firebird (www.firebirdsql.org) SQLite (www.sqlite.org) . . . Adabas DB2 Informix SQL Server Oracle . . . Własności SZBD: – możliwość bezpiecznego przechowywania przez długi czas danych mierzonych w tera‐ i petabajtach, – istnienie mechanizmów „masowego” wprowadzania danych, – zapewnienie bezpieczeństwa danych, – efektywny dostęp do danych (m. in. możliwość tworzenia zapytań o dane oraz aktualizowania danych za pomocą odpowiedniego języka operacji na danych), – sterowanie współbieżnością, – trójwarstwowa struktura (jądro, interfejs i narzędzia). – możliwość tworzenia nowej bazy danych, tzn. określenia jej schematu i więzów integralności za pomocą jakiegoś języka definiowania danych. Zalety podejścia bazodanowego: • niezależność między danymi a programami, • ukrywanie szczegółów dotyczących sposobu przechowywania danych w pamięci fizycznej, • przechowywanie metadanych, • dostarczanie wielu widoków (perspektyw) danych dla różnych grup użytkowników, • zapewnienie integralności danych, • współdzielenie danych i współbieżne transakcje wielu użytkowników, • wysoka niezawodność i bezpieczeństwo • . . .