Fandom

Education

PWr - Obiektowy i dedukcyjny model danych jako kierunki rozwoju baz danych

429pages on
this wiki
Add New Page
Talk0 Share

Rozrost danych składowanych w bazach (co pięc lat ilość danych rośnie dwuktornie) wymusza opracowywanie nowych metod składowania i filtrowania (wyszukiwania) informacji. Istnieje wiele modeli baz danych:

  • hierarchiczny
  • sieciowy
  • relacyjny
  • obiektowy
  • dedukcyjny
  • rozproszony
  • kwantowy

Większość istniejących serwerów baz danych operuje na modelu relacyjnym. Istnieją jednak alternatywy zdające się stanowić dobrą alternatywę dla systemów obecnych.

Dedukcyjna baza danychEdit

Dedukcyjna baza danych - baza danych, która dzięki posiadanym regułom i faktom potrafi metodą dedukcji tworzyć nowe reguły i fakty. Dedukcyjne bazy oparte są na logice oprogramowanej przy pomocy języków deklaratywnych (np. prolog)

BudowaEdit

Dedukcyjna baza danych składa się z dwóch baz (lub grup baz) składowych:

  • Baza ekstensjonalna, zwana bazą faktów, jest typową bazą danych (taką jak np. relacyjna baza danych lub obiektowa baza danych), przechowującą trwale fakty określonego typu.
  • Baza intensjonalna, zwana bazą reguł wnioskowania, jest również typową bazą danych, z tym że przechowuje nie fakty lecz aksjomaty (reguły wnioskowania i więzy integralności).

Zarówno dane jak i aksjomaty mogą być opisane w języku logiki zdań lub logiki predykatów I rzędu. Przykładem takiego języka jest Prolog lub Datalog (stworzony specjalnie dla dedukcyjnych baz danych).

Współcześnie bazy składowe realizowane są jako typowe aplikacje bazodanowe dowolnego typu, przy użyciu wybranego języka programowania.

Bazy składowe spaja ze sobą dedukcyjny system zarządzania bazą danych (SZBD). Jest to System Zarządzania Bazą Danych, który potrafi przeprowadzać dedukcję, dla której korzysta z zawartości baz składowych. System ten może być aplikacją lokalną lub rozproszoną. Możliwe jest też wykonanie go jako systemu wieloagentowego.

Zasada działaniaEdit

Dane, które znajdują się w bazie ekstensjonalnej, są dostępne użytkownikowi bazy dedukcyjnej bezpośrednio. Wówczas dedukcyjny SZBD nie przeprowadza dedukcji.

Dane, które nie znajdują się w bazie ekstensjonalnej są generowane na bieżąco w procesie wnioskowania. Wówczas dedukcyjny SZBD, wykonując algorytm wnioskowania (dedukcji), pobiera potrzebne do tego reguły wnioskowania z bazy intensjonalnej a fakty z bazy ekstensjonalnej)

Dane często generowane mogą zostać zmaterializowane w bazie ekstensjonalnej.

Dedukcyjna baza danych a system ekspertowyEdit

Główną różnicą między dedukcyjną bazą danych a systemem ekspertowym jest to, że ten drugi na czas działania powinien (wg tradycyjnego podejścia) wszystkie potrzebne fakty i reguły wnioskowania posiadać w głównej bezpośrednio dostępnej pamięci. Tymczasem dedukcyjna baza danych jako źródło wiedzy wykorzystuje tradycyjne bazy danych (intensjonalną i ekstensjonalną). Co do samej idei działania nie ma istotnych różnic.

ZastosowanieEdit

  • mechanizm funkcjonowania systemu ekspertowego
  • zmniejszenie ilości gromadzonych danych
  • testowanie hipotez
  • odkrywanie nowych relacji między danymi

Obiektowa baza danychEdit

Obiektowa baza danych - to baza danych, która przechowuje obiekty w odróżnieniu od wierszy lub krotek przechowywanych w relacyjnej bazie danych. Ponieważ dane przechowywane są w postaci obiektów, mogą być odczytywane tylko przy pomocy metod udostępnianych przez te obiekty.

Obiekty przechowywane w takiej bazie danych są widoczne jako obiekty języka programowania.

W połączeniu z obiektowymi językami programowania, obiektowe bazy danych działają szybciej od baz relacyjnych, ponieważ nie ma potrzeby przemapowywania rekordów przechowywanych w tabelach na obiekty (ang. impedance mismatch).

Obiektowe bazy danych rozszerzają obiektowe języki programowania o funkcjonalność zarządzania wielowątkowością, obiektowy język zapytań, funkcje odzyskiwania danych.

BudowaEdit

W czystej postaci ODB składuje obiekty. Istnieje możliwość operowania na metodach zdefiniowanych w klasach tych obiektów. Obiekty są organizowane w hierarchie typów. Obiekty mogą zawierać odniesienia do innych obiektów w bazie.

Większość ODB posiada także język zapytań pozwalający na wybór obiektów. Istnieje próba standardyzacji języka zapytań. Stworzony przez Object Data Management nosi nazwę Object Query Language (OQL). Dostęp do danych jest szybszy niż w przypadku relacyjnych baz, gdyż złączenia (join) nie są potrzebne.

Problematyczne może się stać mapowanie typów danych (np. pól klasy albo parametrów metody) między bazą a programem, przyjmuje się jednak, że są one jednakie.

Badania wykazały wyższość baz obiektowych nad relacyjnymi w przypadku niektórych zadań. Nawigacyjny system (system, w którym program odwołuje się przeważnie do obiektów związanych z obiektem wcześniej używanym) pozwala na uzyskanie lepszych osiągów ze względu na wykorzystanie wskaźników do obiektów zamiast sekwencji zapytań. W przypadku deklaratywnego dostępu do danych (wyboru "losowego") bazy relacyjne wykazują lepsze osiągi.

Zobacz teżEdit

  • Prezentacja mgr. inż. Olgi Siedleckiej z Instytutu Informatyki Teoretycznej i Stosowanej Politechniki Częstochowskiej: Dedukcyjne Bazy Danych [slajdy PDF, ~1MB] rzuca trochę światła na zagadnienie.

Pizdencja

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.