Modelowanie baz danych - Widoki obiektowe

1. Widoki obiektowe to specjalne rodzaje widoków w systemie baz danych, które pozwalają na prezentowanie danych z bazy danych jako obiekty w języku programowania. Dzięki temu, programiści mogą pracować z danymi w sposób naturalny, zgodny z ich modelem obiektowym zamiast korzystać z języka zapytań SQL. Widoki te pozwalają na tworzenie obiektów, które odpowiadają poszczególnym rekordom w bazie danych, a także na uzyskanie dostępu do tych rekordów poprzez właściwości i metody obiektów.

2. Widoki obiektowe są często używane w ORM, które pozwalają na mapowanie relacyjnych baz danych na modele obiektowe w językach programowania. Są one dostarczane przez różne frameworki tj.:
  • Hibernate
  • Entity Framework
  • Django ORM
3. Typy widoków obiektowych:
  • widok obiektowy pojedynczy (reprezentuje pojedynczy obiekt bazowy, taki jak pojedynczy rekord w tabeli relacyjnej)
  • widok obiektowy złożony (reprezentuje złożony obiekt bazowy, taki jak grupa rekordów z różnych tabel relacyjnych)
  • widok obiektowy hierarchiczny (reprezentuje dane w postaci hierarchii obiektów, gdzie każdy obiekt może mieć podobiekty)
  • widok obiektowy złożony zagnieżdżony (reprezentuje zagnieżdżone obiekty bazowe, takie jak obiekt złożony zawierający inne obiekty złożone)
  • widok obiektowy z referencją (reprezentuje obiekt bazowy z referencjami do innych obiektów bazowych, takich jak powiązania między tabelami relacyjnymi)
Na przykład, aby utworzyć widok obiektowy na podstawie tabeli EMPLOYEES i typu obiektowego ADDRESS_TY, możesz użyć następującego kodu SQL:

CREATE TYPE address_ty AS OBJECT (
  street VARCHAR2(30),
  city VARCHAR2(20),
  state CHAR(2),
  zip VARCHAR2(6)
);

CREATE OR REPLACE VIEW employee_view OF address_ty
WITH OBJECT IDENTIFIER (employee_id)
AS SELECT employee_id, address FROM employees;

Widok obiektowy employee_view pozwala na dostęp do danych adresowych pracowników jako obiektów typu address_ty. Możesz używać widoku obiektowego do wyświetlania, aktualizowania lub usuwania danych adresowych pracowników.