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
• . . .

Podobne dokumenty