Obiektowe bazy danych: pojęcie, podstawowe pojęcia, zarządzanie, przykłady

W obiektowej bazie danych (OODB) użytkownicy mogą ustawiać operacje na określonej bazie danych składającej się z obiektów, które mogą być szeroki wachlarz rodzaje i dla których ustala się działania. Potrafią sprawnie przetwarzać informacje binarne, np. obiekty multimedialne. Kolejną dodatkową zaletą OODBMS jest możliwość zaprogramowania drobnych różnic proceduralnych bez wpływu na cały system.

Założenie normy

Historia obiektowych baz danych OODB zaczyna się pod koniec ubiegłego wieku. Zostały one stworzone w celu zaspokojenia potrzeb nowych aplikacji. Zakładano, że obiektowe bazy danych zrewolucjonizują systemy oprogramowania w latach 90. Obecnie wiadomo, że tak nie jest. Jednak odrodzenie tej koncepcji, dzięki społeczności wolnego oprogramowania i identyfikacji odpowiednich aplikacji, motywuje do ponownego przemyślenia cech OODBMS jako alternatywy dla wszechobecnych relacyjnych baz danych.

Założenie normy

Orientacja obiektowa zapewnia elastyczność w obsłudze niektórych lub wszystkich wymagań i nie jest ograniczona przez typy danych i języki zapytań tradycyjnych baz danych. Kluczową cechą systemów ODBMS jest władza, jaką dają programiście, pozwalając mu na określenie zarówno struktury złożonych obiektów, jak i operacje aplikacyjne. Kolejny powód stworzenia OODB jest coraz częściej wykorzystywanym językiem do tworzenia oprogramowania.

Bazy danych stały się podstawą wielu systemów informacyjnych, ale tradycyjne bazy danych są trudne w użyciu, gdy aplikacje, które uzyskują do nich dostęp, są napisane w C ++, Smalltalk lub Java. Na przykład obiektowe bazy danych 1C zostały zaprojektowane tak, aby można je było bezpośrednio zintegrować z aplikacjami wykorzystującymi języki obiektowe, przyjmując ich koncepcje: Visual Studio.Net,C++, C#, Microsoft SQL Server i inne.

Główną zaletą ODBMS jest całkowite wyeliminowanie potrzeby stosowania RMs1 (impedancji), a następnie poprawa wydajności.

Główną zaletą OOPD

Słabe strony:

  1. Bardzo prymitywne mechanizmy konsultacji, bez samodzielnego standardu przyjętego przez platformę.
  2. Niemożliwość stosowania procedur składowanych, ponieważ dostęp do obiektów można uzyskać tylko w kliencie.
  3. Niedojrzałość na rynku.
  4. Brak fizycznego grupowania obiektów.

Paradygmat przedmiotowy

Paradygmat przedmiotowy

Obiektowe bazy danych są programowalnymi bazami danych, które przechowują złożone dane i ich relacje bezpośrednio, bez przypisywania wierszy i kolumn, co czyni je bardziej odpowiednimi dla aplikacji obsługujących duże pakiety. Obiekty mają relacje wiele do wielu i są dostępne poprzez użycie wskaźników, które są z nimi powiązane w celu ustalenia relacji. Jak każda programowalna baza danych, OOPD zapewnia środowisko do tworzenia aplikacji i trwałe repozytorium, gotowe do użycia. Przechowuje i manipuluje informacjami, które mogą być zdigitalizowane jako obiekty, zapewnia szybki dostęp i daje duże możliwości przetwarzania.

Podstawowe pojęcia stosowane w obiektowej bazie danych:

  • tożsamość obiektu;
  • typ konstruktora;
  • Kompatybilność językowa;
  • hierarchia typów i dziedziczenie;
  • przetwarzanie złożonych obiektów;
  • polimorfizm i przeciążanie operatorów
  • wersjonowanie.
Tworzenie wersji

Aby w pełni rozważyć wszystkie aspekty, które pojęcia scharakteryzować obiektową bazę danych, należy zwrócić uwagę na wszystkie ważne paradygmaty obiektowe:

  1. Enkapsulacja jest właściwością, która pozwala na ukrycie informacji dla innych obiektów, zapobiegając w ten sposób niewłaściwemu dostępowi lub konfliktom.
  2. Dziedziczenie - właściwość, dzięki której obiekty dziedziczą zachowania w hierarchii klas.
  3. Polimorfizm to właściwość operacji, dzięki której można ją zastosować do różnych typów obiektów.
  4. Interfejs lub sygnatura operacji zawiera nazwę i typy danych jej argumentów lub parametrów.
  5. Implementacja lub metoda działania jest określona oddzielnie i może być zmieniona bez wpływu na interfejs. Programy użytkowe zdefiniowane przez użytkownika mogą pracować z danymi, wywołując określone operacje poprzez ich nazwy i argumenty, niezależnie od sposobu ich implementacji.

Klasy i funkcjonalność

Klasy i funkcjonalność

Rozpatrując pojęcie klas w OOPD, należy rozróżnić pojęcia "klasa" i "typ". Typ jest stosowany do opisu zbioru obiektów o podobnym zachowaniu. W tym sensie zależy to od tego, jakie operacje można wywołać na obiekcie. Klasa jest zbiorem obiektów, które mają tę samą wewnętrzną strukturę, więc definiuje implementację, a typ opisuje sposób jej użycia.

Termin "tworzenie instancji" ma na celu to, że instancja klasy może być użyta do utworzenia zbioru obiektów, które mają taką samą strukturę i zachowanie, jakie zostały ustalone przez klasę.

Cechy, co jest bardzo istotne dla ewolucji obiektów, jest to, że może on zmieniać swoją klasę, w tym atrybuty i operacje, zachowując swoją tożsamość. Wymagałoby to mechanizmu do obsługi semantycznej integralności, która powstaje.

Dziedziczenie w obiektowej bazie danych umożliwia zdefiniowanie klasy jako podklasy istniejącej nadklasy. Będzie on dziedziczył wszystkie atrybuty i metody z tego ostatniego i może dodatkowo zdefiniować swoje własne. Koncepcja ta jest ważnym mechanizmem wspierającym ponowne wykorzystanie. Te same części struktury dwóch różnych klas mogą być zdefiniowane tylko raz we wspólnej nadklasie, więc mniej kodu zostanie napisane. Istnieją pewne systemy, które pozwalają, aby klasa była podklasą więcej niż jednej nadklasy. Jest to nazywane dziedziczeniem wielokrotnym, w przeciwieństwie do dziedziczenia pojedynczego.

Przykład obiektowej bazy danych

Często przydatne jest użycie tej samej nazwy dla różnych, ale podobnych metod nadklasy media z klas picture i video. Wiele plików może być oglądanych przez wiele różnych przeglądarek. Często muszą przeglądać wszystkie zdjęcia i filmy metodą "view", a do tego trzeba uruchomić program. Po wywołaniu funkcji i przekazaniu referencji do filmu, uruchamiany jest odtwarzacz multimedialny. Aby zaimplementować tę cechę, musimy najpierw zdefiniować operację "reprezentacji" we wspólnej nadklasie media klas picture i video. Każda podklasa redefiniuje operację widoku dla swoich specyficznych potrzeb. Prowadzi to do różnych metod, które mają tę samą nazwę operacji. W tym przypadku użycie tej funkcji ma ważną zaletę.

Struktura OOPD

Struktura DBS

Paradygmat obiektowy opiera się na enkapsulacji danych i kodu dotyczącego każdego obiektu w pojedynczym module. Koncepcyjnie wszystkie interakcje pomiędzy nim a resztą systemu odbywają się poprzez komunikaty. Stąd interfejs między nimi jest zdefiniowany przez dozwolony zbiór.

Ogólnie rzecz biorąc, każdy obiekt jest związany z jakimś zbiorem:

  1. Zmienne, które zawierają dane obiektu i odpowiadają atrybutom modelu ER.
  2. Komunikaty, na które odpowiada. Każdy z nich może mieć parametry, jeden lub więcej.
  3. Metody, z których każda jest kodem implementującym komunikat i zwracającym wartość w odpowiedzi na niego.

Komunikat w środowisku OO nie wiąże się z wykorzystaniem fizycznych sms-ów w sieciach komputerowych. Przeciwnie, odnosi się do wymiany żądań między obiektami niezależnie od poprawności szczegółów ich realizacji. Czasami wyrażenie wywołuje metodę, aby zainicjować fakt, że wiadomość została wysłana do obiektu, i używa odpowiedniego wykonania metody.

Tożsamość obiektu

Tożsamość obiektu

System obiektowej bazy danych zapewnia unikalną tożsamość każdemu niezależnemu obiektowi przechowywanemu w bazie danych. Zazwyczaj jest on implementowany przy użyciu unikalnego, generowanego przez system identyfikatora obiektu, czyli OID. Wartość OID jest niewidoczna dla zewnętrznego użytkownika, ale system używa jej wewnętrznie do zarządzania odwołaniami między obiektami.

Podstawową właściwością OID jest to, że jest niezmienny. Wartość OID dla danego obiektu nie może się nigdy zmienić. Pozwala to zachować tożsamość reprezentowanego świata rzeczywistego. Preferowane jest również, aby każdy OID był używany tylko raz, nawet jeśli zostanie usunięty z bazy danych, jego OID nie powinien być przypisany do innego. Często uważa się również, że niewłaściwe jest oparcie go na fizycznym adresie obiektu w repozytorium, ponieważ reorganizacja ich w bazie danych może zmienić OID. Jednak niektóre systemy używają adresu fizycznego jako OID, aby zwiększyć efektywność pobierania obiektów. Struktura obiektowa automatycznie narzuca ograniczenia relacyjne, zwykle bardziej stosowane: domena, klucz, integralność obiektu i integralność referencyjna.

Trzy podstawowe konstruktory

Trzy podstawowe konstruktory

W OBD wartości lub stany obiektów złożonych mogą być tworzone z innych za pomocą konstruktorów pewnych typów. Jednym ze sposobów ich reprezentacji jest traktowanie każdego z nich jako trójkąta (i, c, v), gdzie i jest unikalnym identyfikatorem obiektu (OID), c jest konstruktorem, czyli wskaźnikiem do tego, jak tworzona jest wartość obiektu, a v jest wartością lub stanem obiektu. W zależności od modelu danych i systemu OO, może istnieć kilka konstruktorów.

Trzy podstawowe konstruktory dla obiektowych baz danych:

  • atomy;
  • klepki;
  • ustawia.

Inne, bardziej ogólne zastosowania to listy i schematy. Istnieje również domena D, która zawiera wszystkie podstawowe wartości atomowe dostępne bezpośrednio w systemie. Są to zazwyczaj liczby całkowite, liczby rzeczywiste, ciągi znaków, daty i wszelkie inne typy danych, które system obsługuje bezpośrednio. Zarówno struktura obiektu jak i operacje są zawarte w definicjach klas.

Zgodność z językami programowania

Podstawowe pojęcia obiektowych baz danych są wykorzystywane jako narzędzia projektowe i są skodyfikowane do pracy z baza danych.

Istnieje kilka możliwych języków, w których można zintegrować te pojęcia:

  1. Rozszerzenie języka do przetwarzania danych, takiego jak SQL, poprzez dodanie typów złożonych i OOP. Systemy zapewniają obiektowe rozszerzenia systemów relacyjnych, zwane obiektowymi systemami relacyjnymi.
  2. Zastosować istniejący obiektowy język programowania i rozszerzyć go do pracy z bazami danych. Są one nazywane trwałymi języki programowania i umożliwić programistom bezpośrednią pracę z danymi, bez konieczności przechodzenia przez język dla Przetwarzanie danych, np. SQL. Są one nazywane trwałymi, ponieważ dane nadal istnieją po zakończeniu programu, który je stworzył.

Podejmując decyzję, z której opcji skorzystać, należy pamiętać, że języki trwałe mają tendencję do bycia potężnymi i stosunkowo łatwo jest popełnić błędy programistyczne, które uszkadzają bazę danych. Złożoność języków sprawia, że wysokopoziomowe automatyczne optymalizacje, takie jak zmniejszenie liczby operacji wejścia/wyjścia na dysku, są trudne. W wielu zastosowaniach możliwość deklaratywnych zapytań jest ważna, ale trwałe języki obecnie nie pozwalają na takie zapytania bez problemów.

Hierarchia typów dziedziczenia

Schematy obiektowych baz danych wymagają zwykle dużej liczby klas. Jednak kilka klas jest do siebie podobnych.Aby umożliwić bezpośrednie przedstawienie podobieństw między nimi, należałoby umieścić je w hierarchii specjalizacji. Koncepcja ta jest podobna do modeli ER. Specjalizacje klas nazywane są podklasami, które definiują dodatkowe atrybuty i metody dla istniejącej klasy. Obiekty utworzone za pomocą podklas dziedziczą wszystko po rodzicu. Niektóre z tych odziedziczonych cech mogły zostać zapożyczone z wyższych szczebli hierarchii.

Obiekty są uważane za złożone, ponieważ wymagają znacznego obszaru przechowywania i nie należą do standardowych typów danych, które zwykle oferuje obiektowe zarządzanie bazą danych (OODM). Ponieważ rozmiar obiektów jest znaczący, RDBMS może pobrać część obiektu i dostarczyć ją do programu aplikacji przed pobraniem całego obiektu. Mogą również używać metod buforowych i cache`owych do pobierania części obiektu z wyprzedzeniem, zanim program aplikacji uzyska do nich dostęp.

OBD pozwala użytkownikom na tworzenie nowych typów, do których należą m.in jako strukturę, jak również operacje, w którym to przypadku jest to rozszerzalny system typów. Można tworzyć biblioteki nowych typów, definiując ich strukturę i operacje. Wiele z nich może przechowywać i pobierać rozbudowany obiekt strukturalny w postaci ciągów i znaków lub bitów, które przekazują "rzeczywiście" do programu aplikacyjnego w celu interpretacji.

Metoda może bezpośrednio uzyskać dostęp do atrybutów obiektu docelowego przez nazwę, w tym wszelkich dziedziczonych z klas nadrzędnych, ale musi uzyskać dostęp do atrybutów innych obiektów za pomocą sygnałów wtórnych. Koncepcja ta pozwala na powiązanie tej samej nazwy operatora lub symbolu z dwoma lub więcej różnymi jego implementacjami, w zależności od rodzaju obiektów, do których ma zastosowanie.

Tworzenie aplikacji

Tworzenie aplikacji

Wiele aplikacji bazodanowych wykorzystujących systemy OO wymaga kilku wersji tego samego obiektu. Działania konserwacyjne są zwykle stosowane do systemu oprogramowania w miarę zmiany ich wymagań i wiążą się ze zmianą niektórych modułów rozwojowych i wdrożeniowych. Jeśli system jest już uruchomiony, a jeden lub więcej modułów wymaga modyfikacji, programista musi stworzyć nową wersję każdego modułu, wprowadzając zmiany.

Należy pamiętać, że mogą istnieć więcej niż dwie wersje obiektu, w przypadku gdy oprócz oryginalnego modułu wymagane są dwie. Zastrzeżone wersje tego samego modułu oprogramowania mogą być aktualizowane jednocześnie. Nazywa się to współbieżnym projektowaniem obiektowych baz danych. Zawsze jednak przychodzi moment, w którym konieczne jest ich połączenie, tak aby hybrydowy DBS uwzględniał wprowadzone zmiany, które będą musiały być zgodne.

Uwarunkowania obiektowe

Wszystkie systemy komputerowe muszą mieć właściwości swojej architektury, aby można je było uznać za. Na przykład, system musi posiadać tabele, aby mógł być uznany za relacyjny. OOPD nie jest wyjątkiem i zawiera niektóre z podstawowych cech architektury obiektowej. W prawdziwym świecie jednak wiele z tych właściwości jest omawianych, a niektóre, takie jak wielokrotne dziedziczenie, są traktowane jako ulepszenia modelu obiektowa baza danych, a nie jako część bazowego frameworka. Na przykład w obiektowym języku Smalltalk dziedziczenie wielokrotne nie jest obsługiwane, mimo że jest uważane za część architektury obiektowej.

Metody dla klasy określają zestaw operacji, które można wykonać na obiekcie. Na przykład, kiedy jest stosowany do obiektu, zwraca wartość lub wykonuje jakąś operację w celu aktualizacji wartości. Czasami metody nie zwracają go. Gdyby opracowano metodę aktualizacji liczby pasażerów dla pojazd, nie zostanie zwrócona żadna wartość, ale element danych w obiekcie docelowym zmodyfikuje ją.

Obiekty są podstawowym pojęciem w OOPD. W istocie obiekty są abstrakcyjną reprezentacją rzeczy świata rzeczywistego, które są w nim przechowywane. Obiekt jest instancją klasy w tym sensie, że jest wyłączony z jej definicji.

Możesz myśleć o obiekcie jako o samodzielnym pakiecie, który składa się z trzech części:

  1. Własne informacje prywatne, wartości danych.
  2. Prywatne procedury, które manipulowałyby wartościami, poprzez definicję klasy.
  3. Otwarty interfejs, aby obiekt mógł komunikować się z innymi.

Przykłady OOPD

Zastosowanie OOPD upraszcza konceptualizację, ponieważ reprezentacja informacji, które mają być przechowywane, jest bardziej naturalna. W celu zamodelowania struktury lub logiki bazy danych, zastosowanie diagramów klas pozwala na wprowadzenie klas wraz z ich strukturalnymi relacjami i dziedziczeniem. W celu zamodelowania niektórych dynamik, interakcji i zachowań pomiędzy obiektami, diagram sekwencji zostanie wykorzystany do reprezentowania interakcji pomiędzy obiektami znajdującymi się w relacji czasowej, opisując możliwe stany tak, aby można je było znaleźć biorąc pod uwagę zmieniony stan po wystąpieniu zdarzenia.

Przykłady OOPD

Przykład obiektowej bazy danych przedstawiono poniżej.

Przykłady obiektowych baz danych

Mają one swoją nazwę i czas życia, który może być krótkotrwały lub stały. Kluczem do OODBMS jest zdolność, jaką dają deweloperowi do określenia, jak wiele struktur i operacji zostanie zastosowanych do nich. Istnieje elastyczność i wsparcie dla obsługi złożonych typów danych. Można tworzyć klasy i podklasy, na przykład baza klientów może mieć podklasę tej referencji klienta i będzie ona dziedziczyć wszystkie atrybuty i cechy oryginalnej klasy, takie podejście pozwala na szybkie i elastyczne przetwarzanie złożonych danych.

Artykuły na ten temat