Bazy danych obiektowych: koncepcja, podstawowe pojęcia, zarządzanie, przykłady

Spisu treści:

Bazy danych obiektowych: koncepcja, podstawowe pojęcia, zarządzanie, przykłady
Bazy danych obiektowych: koncepcja, podstawowe pojęcia, zarządzanie, przykłady
Anonim

W obiektowych bazach danych (OODB) użytkownicy mogą ustawiać operacje na określonej bazie danych, która składa się z obiektów, które mogą być różnych typów i dla których są ustawione operacje. Potrafią wydajnie obsługiwać informacje binarne, takie jak obiekty multimedialne. Kolejną dodatkową zaletą OODB jest to, że można go zaprogramować z niewielkimi różnicami proceduralnymi bez wpływu na cały system.

Warunki tworzenia standardu

Historia baz danych OODB zorientowanych obiektowo zaczyna się pod koniec ubiegłego wieku. Zostały stworzone z myślą o potrzebach nowych aplikacji. Założenie było takie, że w latach 90. obiektowe bazy danych zrewolucjonizują systemy oprogramowania. Teraz jest jasne, że tak nie jest. Jednak odrodzenie tej koncepcji przez społeczności wolnego oprogramowania i identyfikacja odpowiednich dla niej aplikacji motywuje do przeglądu cechOODB, który jest alternatywą dla wszechobecnych relacyjnych baz danych.

Warunki wstępne stworzenia standardu
Warunki wstępne stworzenia standardu

Zorientowanie obiektowe zapewnia elastyczność w obsłudze niektórych lub wszystkich wymagań i nie ogranicza się do typów danych i języków zapytań tradycyjnych baz danych. Kluczową cechą OODBs jest możliwość, którą zapewniają deweloperowi, pozwalając mu określić zarówno strukturę złożonych obiektów, jak i operacje aplikacji. Innym powodem tworzenia OODB jest rosnące wykorzystanie języków do tworzenia oprogramowania.

Bazy danych stały się podstawą wielu systemów informatycznych, ale tradycyjne bazy danych są trudne w użyciu, gdy aplikacje, które mają do nich dostęp, są napisane w C++, Smalltalk lub Java. Przykładowo, obiektowe bazy danych 1C zostały zaprojektowane w taki sposób, aby można je było bezpośrednio zintegrować z aplikacjami wykorzystującymi języki obiektowe poprzez przyjęcie ich koncepcji: Visual Studio. Net, C++, C, Microsoft SQL Server oraz inne.

Główną zaletą OODB jest całkowita eliminacja potrzeby stosowania RMs1 (impedancja) z późniejszymi ulepszeniami wydajności.

Główna zaleta OODB
Główna zaleta OODB

Wady:

  1. Bardzo prymitywne mechanizmy konsultacji, brak standardowej platformy akceptowanej.
  2. Nie można przechowywać procedur, ponieważ do obiektów można uzyskać dostęp tylko w kliencie.
  3. Niedojrzałość na rynku.
  4. Brak fizycznego grupowania obiektów.

Paradygmat obiektu

Paradygmat obiektu
Paradygmat obiektu

Bazy danych obiektowych to programowalne bazy danych, które przechowują złożone dane i ich relacje bezpośrednio bez przypisywania wierszy i kolumn, dzięki czemu są bardziej odpowiednie dla aplikacji, które pracują z dużymi partiami. Obiekty mają relacje wiele-do-wielu i są dostępne za pomocą skojarzonych z nimi wskaźników w celu ustanowienia relacji. Jak każdy programowalny, OODB zapewnia środowisko do tworzenia aplikacji i trwałe repozytorium gotowe do eksploatacji. Przechowuje i manipuluje informacjami, które można zdigitalizować w postaci obiektów, zapewnia szybki dostęp i zapewnia doskonałe możliwości przetwarzania.

Podstawowe pojęcia używane w obiektowej bazie danych:

  • tożsamość obiektu;
  • typ konstruktora;
  • zgodność językowa;
  • hierarchie typów i dziedziczenie;
  • przetwarzanie złożonych obiektów;
  • polimorfizm i przeciążanie operatorów;
  • tworzenie wersji.
Wersjonowanie
Wersjonowanie

Aby w pełni rozważyć wszystkie aspekty charakteryzujące bazę danych zorientowaną obiektowo, należy zwrócić uwagę na wszystkie ważne paradygmaty dotyczące obiektów:

  1. Enkapsulacja to właściwość, która pozwala ukryć informacje o innych obiektach, zapobiegając w ten sposób nieprawidłowemu dostępowi lub konfliktom.
  2. Dziedziczenie to właściwość, dzięki której obiekty dziedziczą zachowanie w hierarchii klas.
  3. Polimorfizm jest właściwością operacji, za pomocą której można go zastosowaćróżne typy obiektów.
  4. Interfejs lub podpis operacji zawiera nazwę i typy danych jej argumentów lub parametrów.
  5. Implementacja lub metoda operacji jest określona osobno i może zostać zmieniona bez wpływu na interfejs. Aplikacje użytkownika mogą pracować z danymi, wywołując określone operacje za pomocą ich nazw i argumentów, niezależnie od tego, jak zostały zaimplementowane.

Zajęcia i funkcje

Klasy i funkcjonalność
Klasy i funkcjonalność

Rozważając pojęcie klas w OODB, konieczne jest rozróżnienie terminów „klasa” i „typ”. Typ służy do opisu zestawu obiektów o podobnym zachowaniu. W tym sensie zależy to od tego, jakie operacje można wywołać na obiekcie. Klasa to zbiór obiektów, które mają tę samą wewnętrzną strukturę, więc definiuje implementację, podczas gdy typ opisuje, jak z niej korzystać.

Termin tworzenie instancji odnosi się do faktu, że tworzenie instancji klasy może być używane do tworzenia zestawu obiektów, które mają taką samą strukturę i zachowanie, jakie zostały ustawione przez klasę.

Cechą bardzo ważną dla ewolucji obiektów jest to, że mogą one zmieniać swoją klasę, w tym atrybuty i operacje, przy jednoczesnym zachowaniu tożsamości. Wymagałoby to mechanizmu do obsługi powstałej integralności semantycznej.

Dziedziczenie obiektowej bazy danych organizacji umożliwia zdefiniowanie klasy jako podklasy już istniejącej nadklasy. Odziedziczy wszystkie atrybuty i metody z tych ostatnich i może opcjonalnie zdefiniowaćposiadać. Ta koncepcja jest ważnym mechanizmem wspierającym ponowne wykorzystanie. Te same części struktury dwóch różnych klas można zdefiniować tylko raz we wspólnej nadklasie, dzięki czemu zostanie napisane mniej kodu. Istnieją systemy, które pozwalają klasie być podklasą więcej niż jednej nadklasy. Ta funkcja nazywa się dziedziczeniem wielokrotnym w przeciwieństwie do dziedziczenia pojedynczego.

Przykład bazy danych zorientowanej obiektowo

Często przydatne jest używanie tej samej nazwy dla różnych, ale podobnych metod nadklasy mediów z klas obrazu i wideo. Wiele plików może być przeglądanych przez różnych przeglądających. Często muszą przeglądać wszystkie zdjęcia i filmy metodą „podgląd”, a odpowiedni program musi zostać uruchomiony. Po wywołaniu funkcji i przekazaniu łącza do wideo uruchamiany jest odtwarzacz multimedialny. Aby zaimplementować tę funkcję, należy przede wszystkim zdefiniować operację „prezentacji” we wspólnej nadklasie mediów z klas obrazu i wideo. Każda z podklas redefiniuje operację wyszukiwania do swoich konkretnych potrzeb. Skutkuje to różnymi metodami, które mają tę samą nazwę operacji. W takim przypadku korzystanie z tej funkcji ma ważną zaletę.

Struktura OODB

Struktura OODB
Struktura OODB

Paradygmat obiektowy opiera się na enkapsulacji danych i kodu związanego z każdym obiektem w pojedynczym module. Koncepcyjnie wszystkie interakcje między nim a resztą systemu są realizowane za pomocą komunikatów. Stąd interfejsmiędzy nimi jest określony przez dozwolony zestaw.

Ogólnie rzecz biorąc, każdy obiekt jest powiązany z zestawem:

  1. Zmienne zawierające dane opisowe i odpowiadające atrybutom modelu ER.
  2. Wiadomości, 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 komunikaty i zwracającym w odpowiedzi wartość.

Komunikacja w środowisku obiektowym nie oznacza korzystania z fizycznych wiadomości SMS w sieciach komputerowych. Wręcz przeciwnie, dotyczy wymiany żądań między obiektami, niezależnie od poprawnych szczegółów ich realizacji. Czasami wyrażenie wywołuje metodę wyzwalającą fakt wysłania wiadomości do obiektu i wykorzystuje wykonanie odpowiedniej metody.

Tożsamość obiektu

Tożsamość obiektu
Tożsamość obiektu

Zorientowany obiektowo system bazy danych zapewnia unikalną identyfikację dla każdego niezależnego obiektu przechowywanego w bazie danych. Jest to zwykle realizowane za pomocą wygenerowanego przez system unikalnego identyfikatora obiektu lub OID. Wartość OID jest niewidoczna dla użytkownika zewnętrznego, ale system używa jej wewnętrznie do zarządzania połączeniami między obiektami.

Główną właściwością OID jest bycie niezmiennym. Wartość OID dla konkretnego obiektu nigdy nie powinna się zmieniać. Zachowuje to tożsamość reprezentowanego świata rzeczywistego. Korzystne 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ż za niewłaściwe opieranie go na fizycznymadres obiektu w pamięci, ponieważ reorganizacja ich w bazie danych może zmienić OID. Jednak niektóre systemy używają adresu fizycznego jako OID, aby zwiększyć wydajność wyszukiwania obiektów. Struktura zorientowana obiektowo automatycznie nakłada ograniczenia relacyjne, zwykle bardziej odpowiednie: domena, klucz, integralność obiektu i integralność referencyjna.

Trzy główne konstruktory

Trzech głównych konstruktorów
Trzech głównych konstruktorów

W OODB wartości lub stany złożonych obiektów mogą być tworzone z innych przy użyciu konstruktorów określonych typów. Jednym ze sposobów ich przedstawienia jest myślenie o każdym z nich jako o trójce (i, c, v), gdzie i jest unikalnym identyfikatorem obiektu (OID), c jest konstruktorem, czyli wskaźnikiem, jak wartość obiektu jest utworzony, a v jest wartością lub stanem obiektu. Może istnieć wiele konstruktorów w zależności od modelu danych i systemu OO.

Trzy podstawowe, obiektowe konstruktory baz danych:

  • atomy;
  • krotki;
  • zestawy.

Inne bardziej powszechne zastosowania to listy i wykresy. Istnieje również domena D, która zawiera wszystkie podstawowe wartości atomowe bezpośrednio dostępne w systemie. Zazwyczaj obejmują 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 obiektów, jak i operacje są zawarte w definicjach klas.

Kompatybilność z językami programowania

Podstawowe koncepcje baz danych obiektowych są używane wjako narzędzia projektowe i skodyfikowane do pracy z bazą danych.

Istnieje kilka możliwych języków, w których te koncepcje mogą być zintegrowane:

  1. Rozszerzenie języka przetwarzania danych, takiego jak SQL, poprzez dodanie złożonych typów i OOP. Systemy zapewniają rozszerzenia zorientowane obiektowo do systemów relacyjnych, zwanych systemami relacyjnymi zorientowanymi obiektowo.
  2. Korzystanie z istniejącego języka programowania obiektowego i rozszerzenie go do pracy z bazami danych. Nazywane są trwałymi językami programowania i umożliwiają programistom bezpośrednią pracę z danymi bez konieczności przechodzenia przez język przetwarzania danych, taki jak SQL. Nazywa się je trwałymi, ponieważ dane nadal istnieją po zakończeniu programu, który je utworzył.

Podejmując decyzję, której opcji użyć, pamiętaj, że trwałe języki są zwykle potężne i stosunkowo łatwo jest popełnić błędy programistyczne, które niszczą bazę danych. Złożoność języków sprawia, że automatyczne optymalizacje wysokiego poziomu, takie jak redukcja I/O dysku, są trudne. W wielu aplikacjach istotna jest możliwość wykonywania zapytań deklaratywnych, ale trwałe języki obecnie nie pozwalają na takie zapytania bez problemów.

Hierarchia typów dziedziczenia

Schematy baz danych zorientowane obiektowo zazwyczaj wymagają dużej liczby klas. Jednak kilka klas jest do siebie podobnych. Aby umożliwić bezpośrednią reprezentację podobieństw między nimi, należy umieścićje w hierarchię specjalizacji. Ta koncepcja jest podobna do modeli ER. Specjalizacje klas nazywane są podklasami, które definiują dodatkowe atrybuty i metody dla istniejącej klasy. Obiekty utworzone z podklasami dziedziczą wszystko po rodzicu. Niektóre z tych odziedziczonych cech mogły same zostać zapożyczone od osób znajdujących się wyżej w hierarchii.

Obiekty są uważane za złożone, ponieważ wymagają dużej ilości miejsca do przechowywania i nie należą do standardowych typów danych oferowanych przez obiektowe zarządzanie bazami danych (OODBS). Ponieważ wielkość obiektów jest znacząca, SOOBMS może odebrać część obiektu i dostarczyć ją do aplikacji przed pozyskaniem całego obiektu. Może również używać metod buforowania i pamięci podręcznej, aby uzyskać części obiektu z wyprzedzeniem, zanim aplikacja będzie mogła uzyskać do nich dostęp.

OODB umożliwia użytkownikom tworzenie nowych typów, które obejmują zarówno strukturę, jak i operacje, w tym przypadku rozszerzalny system typów. Możesz tworzyć biblioteki nowych typów, definiując ich strukturę i działanie. Wiele z nich może przechowywać i odbierać duże obiekty strukturalne w postaci ciągów i znaków lub bitów, które są przekazywane „tak jak są” do programu użytkowego w celu interpretacji.

Metoda może uzyskać bezpośredni dostęp do atrybutów obiektu docelowego według nazwy, w tym wszelkich odziedziczonych z klas nadrzędnych, ale musi mieć dostęp do atrybutów innych obiektów z sygnałami wtórnymi. Koncepcja umożliwia powiązanie tej samej nazwy operatora lub symbolu zdwie lub więcej różnych implementacji, w zależności od typu obiektów, których dotyczy.

Aplikacje budowlane

Tworzenie aplikacji
Tworzenie aplikacji

Wiele aplikacji bazodanowych korzystających z systemów obiektowych wymaga wielu wersji tego samego obiektu. Zazwyczaj czynności konserwacyjne są stosowane do systemu oprogramowania, gdy zmieniają się jego wymagania i wiążą się ze zmianą niektórych modułów rozwojowych i wdrożeniowych. Jeśli system jest już uruchomiony i jeśli jeden lub więcej modułów wymaga zmiany, programista musi utworzyć nową wersję każdego z nich, wprowadzając zmiany.

Zauważ, że mogą istnieć więcej niż dwie wersje obiektu, w przypadku gdy wymagane są dwie oprócz oryginalnego modułu. Własne wersje tego samego modułu oprogramowania mogą być aktualizowane w tym samym czasie. Nazywa się to równoległym, obiektowym projektowaniem baz danych. Jednak zawsze przychodzi moment, w którym muszą zostać połączone, aby hybrydowy OODB mógł uwzględnić zmiany, które zostały wprowadzone, tak aby były kompatybilne.

Warunki zorientowane na obiekt

Wszystkie systemy komputerowe muszą mieć właściwości swojej architektury, aby były brane pod uwagę. Na przykład system musi mieć tabele, aby można go było uznać za relacyjny. OODB nie jest wyjątkiem i zawiera kilka podstawowych właściwości architektury obiektu. Jednak w prawdziwym świecie wiele z tych właściwości jest omawianych, a niektóre, takie jak dziedziczenie wielokrotne, są uważane raczej za ulepszenia zorientowanego obiektowo modelu bazy danych niżjako część linii bazowej. Na przykład w zorientowanym obiektowo języku Smalltalk dziedziczenie wielokrotne nie jest obsługiwane, mimo że jest uważane za część architektury obiektowej.

Metody dla klasy definiują zestaw operacji, które można wykonać na obiekcie. Na przykład, gdy jest stosowany do obiektu, zwraca wartość lub wykonuje jakąś operację, aby zaktualizować wartości. Czasami metody go nie zwracają. Jeśli metoda została zaprojektowana w celu aktualizacji liczby pasażerów pojazdu, żadna wartość nie zostanie zwrócona, ale element danych w miejscu docelowym zmieni ją.

Przedmioty są podstawowym pojęciem w OODB. Zasadniczo obiekty są abstrakcyjną reprezentacją przechowywanych w nich rzeczy ze świata rzeczywistego. Obiekt jest instancją klasy w tym sensie, że jest wykluczony ze swojej definicji.

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

  1. Własne dane osobowe, wartości danych.
  2. Prywatne procedury, które będą manipulować wartościami poprzez definicję klasy.
  3. Otwórz interfejs, aby ten obiekt mógł komunikować się z innymi.

Przykłady OODB

Korzystanie z OODB upraszcza konceptualizację, ponieważ reprezentowanie informacji, które należy przechowywać, jest bardziej naturalne. Do modelowania struktury lub logiki bazy danych wykorzystanie diagramów klas pozwala na wprowadzenie klas wraz z ich strukturalnymi powiązaniami i dziedziczeniem. W celu modelowania części dynamiki, interakcji izachowanie między obiektami, diagram sekwencji zostanie użyty do przedstawienia interakcji między obiektami znajdującymi się w tymczasowej relacji, opisując możliwe stany, tak aby można je było znaleźć w zmienionym stanie po wystąpieniu zdarzenia.

Przykłady OODB
Przykłady OODB

Przykład bazy danych zorientowanej obiektowo jest pokazany poniżej.

Przykłady baz danych obiektowych
Przykłady baz danych obiektowych

Mają imię i życie, które może być tymczasowe lub stałe. Klucz OODB to zdolność, którą zapewniają programiście do określenia, ile struktur i operacji zostanie do nich zastosowanych. Istnieje elastyczność i wsparcie dla obsługi złożonych typów danych. Możesz tworzyć klasy i podklasy, na przykład baza klientów może mieć podklasę łącza tego klienta i odziedziczy wszystkie atrybuty i cechy oryginalnej klasy, takie podejście pozwala szybko i elastycznie przetwarzać złożone dane.

Zalecana: