Dane
Transkrypt
Dane
BAZY DANYCH wprowadzenie Opracował: dr inż. Piotr Suchomski Prowadzący Katedra Systemów Multimedialnych dr inż. Piotr Suchomski (e-mail: [email protected]) (pok. 730) dr inż. Andrzej Leśnicki (e-mail: [email protected] ) (pok. 636) mgr inż. Dariusz Tkaczuk (e-mail: [email protected]) (pok. 636) Materiały Materiały do wykładu i laboratorium będą umieszczane w portalu: http://www.sound.eti.pg.gda.pl Login: student Hasło: lab@kaesem Zaliczenie 40% z wykładu + 60% laboratorium Wykład - zaliczenie na podstawie kolokwium. Laboratorium – punkty za wykonywane ćwiczenia + projekt i wykonanie bazy danych (szczegółowe informacje zostaną podane przez prowadzących na zajęciach). Lista prezentowanych zagadnień Zagadnienia ogólne Model związków encji Relacyjny model danych Inne modele danych Multimedialne bazy danych Język SQL Projektowanie baz danych Programowanie baz danych Co to jest baza danych? Jest to skomputeryzowany system przechowywania rekordów z danymi. Podstawowa funkcjonalność tego systemu wymaga: – Możliwość dodawania i usuwania zbiorów danych, – Możliwość dodawania, usuwania i modyfikacji pojedynczych rekordów danych, – Możliwość wydobywania danych Z czego składa się baza danych Dane – przechowywane są w bazie w sposób trwały, zintegrowany i mogą być współdzielone. Sprzęt – głównie to urządzenia pamięci masowej (dyski magnetyczne, optyczne) oraz procesory i stowarzyszone z nimi pamięci operacyjne, w których wykonywane są programy. Z czego składa się baza danych? Programy – tworzą warstwę pośredniczącą między użytkownikami a fizyczną strukturą i magazynami danych. Oprogramowanie to nazywane jest systemem zarządzania bazą danych (SZBD lub ang. DBMS – database managment system). Uwalnia użytkowników bazy od jej szczegółów technicznych. Z czego składa się baza danych? Użytkownicy – zasadniczo można wyróżnić 3 grupy: – Programiści aplikacji – tworzą aplikacje wykorzystujące bazy danych, – „Użytkownicy końcowi” (end uesers) – za pomocą specjalnie przygotowanych interfejsów użytkownika (np. formularze) korzystają z zasobów bazy danych, bardziej zaawansowana grupa potrafi korzystać z języka zapytań do bazy danych Z czego składa się baza danych? – Administrator danych (DA) i administrator bazy danych (DBA) – wyznaczone osoby pełniące funkcję kierowniczą. Administrator danych jest osobą kompetentną w kwestii definiowania danych (zna specyfikę danej dziedziny danych), natomiast administrator bazy danych jest specjalistą IT i nadzoruje bazę danych od strony technicznej, decyduje o sposobie implementacji struktur danych Cechy bazy danych Trwałe i nezawodne przechowywanie dużej ilości informacji, Szybki dostęp do żądanych informacji, Możliwość modyfikacji informacji, Zapewnienie logicznej spójności (integralności) danych, Ochrona (bezpieczeństwo) zgromadzonych danych. Integracja danych W bazie danych dane powinny tworzyć logiczną całość. Projektując schemat bazy danych należy tak zdefiniować zbiory danych aby uniknąć redundancji danych (należy unikać wielokrotnego przechowywania tych samych danych). Operacje wykonywane na bazie danych nie mogą powodować przypadkowego usuwania potrzebnych danych oraz pozostawiania danych niepotrzebnych. Składniki bazy danych Język zapytań System DBMS Pamięć zewnętrzna Pamięć zewnętrzna Trwała – dane powinny być przechowywane tak długo jak wymagają tego użytkownicy bazy danych. Niezawodna – częstotliwość występowania awarii powinna być pomijalna – Zwielokrotnianie urządzeń pamięci (np. macierze), – Kontrola poprawności zapisu, – Kody detekcji i korekcji błędów Funkcje DBMS Realizacja operacji dostępu do danych na poziomie fizycznym (np. sterowniki, algorytmy dostępu, struktury danych itp.) Zapewnienie integralności danych (przetwarzanie transakcyjne, kontrola ograniczeń nałożonych na dane itp.), Obsługa współbieżności przetwarzania (rozstrzyganie konfliktów przy próbie dostępu do tych samych danych) Funkcje DBMS Ochrona danych (kontrola praw dostępu dla określonych grup użytkowników, Restart po awariach (przywracanie z kopii zapasowej), Przetwarzanie danych rozproszonych, Przetwarzanie równoległe (przetwarzanie przy wykorzystaniu wielu procesorów). Język zapytań Dla użytkowników typu „end user” polecenia wybierane z menu lub polecenia wydawane z wiersza poleceń. Dla programistów: – Kompletny język programowania baz danych (4GL), – Typowy język trzeciej generacji (np. C/C++, Pascal) rozbudowany o funkcje obsługi baz danych Język zapytań Składa się z: – Język definiowania danych (DDL – data definition language), – Język manipulowania danymi (DML – data manipulation language), – Język kontrolowania danych (DCL – data control language). Architektura systemu baz danych Poziom użytkownika Poziom pojęciowy Poziom fizyczny aplikacje DBMS Niezależność od danych Oddzielenie poziomu użytkowników od poziomu fizycznego bazy danych pozwala uniezależnić logikę aplikacji od struktury danych. Korzyści: – można zmienić urządzenia pamięciowe, – można modyfikować/tworzyć nowe struktury danych, – można zmienić fizyczną reprezentację danych bez zmian w kodzie aplikacji bazodanowej Poziom zewnętrzny Poziom indywidualnego użytkownika, jego widok bazy jest nieco abstrakcyjny w stosunku do fizycznego sposobu przechowywania danych. Indywidualny użytkownik może nie mieć pojęcia o istnieniu w bazie innych danych, niż te które go nie interesują. Poziom pojęciowy Pojęciowy model danych stanowi reprezentację zawartości informacyjnej bazy danych. Dane prezentowane są takimi jakimi są naprawdę a nie jakimi widzi je użytkownik. Pojęciowy model danych jest sposobem widzenia całej zawartości bazy danych. Poziom wewnętrzny Wewnętrzny model danych opisywany jest za pomocą schematu wewnętrznego, który definiuje typy zachowanych rekordów, precyzuje jakie są indeksy, jak reprezentowane są pola rekordu, w jakiej kolejności zapisane są rekordy itp. Poziom wewnętrzny nie uwzględnia fizycznego poziomu bazy (pliki, dyski, cylindry itp.) Rodzaje baz danych Płaskie, jednotabelowe zbiory danych, Hierarchiczne, Sieciowe, Relacyjne, Obiektowe, Relacyjno-obiektowe. Proste bazy danych Obejmują uporządkowane dane w formie prostej tabeli lub tabel nie powiązanych ze sobą (np. forma arkusza). W tabelach o określonej strukturze gromadzone są przyrostowo kolejne rekordy danych. Gromadzenie danych polega na wypełnianiu kolejnych wierszy tabeli danymi. Proste bazy danych Zaletą jest proste, intuicyjne gromadzenie danych. Mała funkcjonalność w przypadku dużej liczby danych, dodatkowo problem komplikuje się w przypadku dużego zróżnicowania tych danych. Brak łatwej identyfikacji poszukiwanego rekordu danych. Brak powiązań, problem redundancji. Hierarchiczny model danych Dane grupowane są w postaci kolejnych poziomów drzewa. Model typu rodzicpotomek. Początek struktury tworzy jeden korzeń i przez poziomy kolejnych potomków aż do potomków „liści”. Zbiór danych w tym modelu jest powiązany z innymi danymi w tym samym drzewie. Hierarchia często budowana jest w sposób indukcyjny: od ogółu do Hierarchiczny model danych Układ hierarchiczny pozwala tworzyć proste zapytania. Zapytania mogą być iteracyjnie uszczegóławiane. Hierarchiczna baza danych zakłada podstawowe warunki integralności danych: – każdy rekord ma dokładnie jednego rodzica (z wyjątkiem korzenia), – jeżeli dany rekord posiada więcej rodziców niż jeden musi być skopiowany dla każdego rodzica oddzielnie, – jeżeli usunięty zostaje dany rekord oznacza to, że usunięte zostają również wszystkie wywodzące się z niego rekordy potomkowie Hierarchiczny model danych Wadą tego modelu jest brak możliwości budowania relacji między rekordami różnych drzew. Dobrym przykładem wykorzystania tego modelu jest system plików systemu Windows. XML – dane semistrukturalne Obecnie popularnym formatem zapisywania danych w modelu hierarchicznym są dokumenty XML (eXtensible Markup Language). Model danych semistrukturalnych wykorzystywany jest często do integracji danych z różnych baz danych zawierających podobne dane. XML a bazy danych: 1. XML jest uniwersalnym formatem składowania danych. 2. Dokument XML zawiera logicznie uporządkowane dane. 3. Dokument XML może zawierać opisy wielokrotnych instancji tej samej klasy. 4. Dokument XML jest bazą danych. 5. XML nie jest systemem zarządzania bazami danych. 6. Dokumenty XML lub dane dokumentów XML podlegają składowaniu w bazach danych. XML a bazy danych – podstawowe zadania: 1. Składowanie danych w dokumentach XML 2. Składowanie dokumentów XML 3. Wyszukiwanie dokumentów XML 4. Wyszukiwanie danych z dokumentów XML XML a bazy danych – scenariusze powiązań Prezentacja dokumentu XML RDB1 Synteza dokumentu XML RDB2 NXD1 Składowanie dokumentu XML WWW Rozbiór (analiza) dokumentu XML NXD1 RDB1 RDB2 Sieciowy model danych Nie ma nic wspołnego z sieciami komputerowymi. W modelu tym możliwe jest powiązanie dowolnego zbioru danych z każdym innym. Poprzez formę specyficznych wskaźników zbiór A wskazuje na zbiory B,C, zbiór C na zbiór D, zbiór D na zbiór B, itp. Sieciowy model danych Sieciowy model danych Różni się od modelu hierarchicznego tym, że każdy rekord danych może mieć wielu rodziców, jak również żadnego. Sieciowa baza danych składa się z dwóch typów zbiorów: zbioru formatów rekordów i powiązań. Każdy typ powiązania określa łączone ze sobą rekordy: typ rekordu rodzica i typ rekordu dziecka. Każde powiązanie wymaga zdefiniowania wskaźnika. Sieciowy model danych W przypadku małych baz danych wyszukiwanie danych jest szybkie. W przypadku dużych baz danych z dużą liczbą powiązań proces wyszukiwania jest trudny i czasochłonny. W przypadku rozbudowanej sieci powiązań wskaźniki mogą zajmować więcej miejsca niż same dane! Relacyjne bazy danych Obecnie najczęściej implementowany system baz danych. Podstawową zasadą działania jest gromadzenie danych w postaci tabel, zwanych relacjami. Identyfikacja pojedynczego rekordu danych odbywa się na podstawie wartości klucza (klucz definiowany jest dla całej relacji). Obiektowe bazy danych Bazuje na modelu danych, który wykorzystuje paradygmaty programowania obiektowego. W praktyce rzadko stosowane, sa raczej przedmiotem badań akademickich. Model obiektowy może być wykorzystywany w procesie projektowania relacyjnych baz danych. Bazy obiektowo-relacyjne Połączenie zalet baz relacyjnych i obiektowych. Pozwalają manipulować danymi w postaci obiektów. Mechanizm manipulowania jest relacyny.