I.
Wprowadzenie do  języków zapytań (1)
II.
Wprowadzenie do  języków zapytań (2)
III.
Pojęcia obiektowości w bazach danych (1)
  Wstęp
  1. Co to jest obiektowość?
  2. Obiekt
  3. Metody związane z obiektem
  4. Obiekt złożony
  5. Relatywizm obiektów
  6. Zasada wewnętrznej identyfikacji
  7. Powiązania pomiędzy obiektami
  8. Hermetyzacja i ukrywanie informacji
  9. Mechanizm komunikatów
  Podsumowanie
  Zadania
IV.
Pojęcia obiektowości w bazach danych (2)
V.
Podstawy semantyczne języków zapytań
VI.
Modele składu obiektów
VII.
Stos środowisk, rezultaty zapytań, funkcja nested
VIII.
Język SBQL (Stack-Based Query Language) (1)
IX.
X.
Dalsze własności SBQL
XI.
Operatory order by i group by
XII.
Przetwarzanie struktur nieregularnych
XIII.
Rozszerzenie języków zapytań o konstrukcje imperatywne
XIV.
Procedury, procedury funkcyjne, metody, reguły zakresu
XV.
Parametry procedur i metod, procedury rekurencyjne, optymalizacja poprzez modyfikację zapytań

 

4. Obiekt złożony

Obiekt może być złożony, tj. składać się z pewnej liczby komponentów (atrybutów), które także mogą być złożone. W zależności od języka lub systemu komponenty złożone mogą być traktowane jako obiekty (podobiekty) lub mogą być uważane za kategorię różną od obiektów. Niektóre języki lub systemy wprowadzają dalsze ograniczenia w zakresie możliwości tworzenia złożonych obiektów, z reguły podyktowane pewnymi względami implementacyjnymi.

Z estetycznego punktu widzenia nie powinno istnieć ograniczenie rozmiaru obiektu, liczby komponentów składających się na obiekt, rodzajów komponentów lub liczby poziomów hierarchii komponentów.

Obiekt złożony reprezentujący pewien byt świata rzeczywistego powinien zawierać wewnątrz siebie wszelkie informacje, które odnoszą się do tego bytu. Ustalenia, które informacje odnoszą się do danego obiektu, a które do innego, zależą wyłącznie od projektanta lub programisty (czyli od jego modelu pojęciowego) i nie podlegają ograniczeniom ze strony bazy realizacyjnej. Przykładowo, projektant może uznać, że dzieci pracownika są albo komponentami obiektu PRACOWNIK (i dokładnie tak to zaimplementować), albo całkowicie niezależnymi obiektami (pozostającymi w pewnym związku z obiektem PRACOWNIK). Niezależnie od stopnia złożoności obiektu i jego wielkości projektant lub programista może rozpatrywać go i wykonywać na nim operacje (np. wyszukiwać, tworzyć, przesuwać, kopiować, zmieniać, usuwać) jak na pojedynczym elemencie bez wnikania w jego wewnętrzną budowę.

Podane wyżej założenia stwarzają nową sytuację w stosunku do modelu relacyjnego, gdzie informacje o obiekcie wyróżnialnym w rzeczywistości modelowanej przez dane są często rozproszone w krotkach wielu tablic, zaś manipulacja tym zestawem jako całością jest w ogóle niemożliwa lub silnie ograniczona. Przykładowo, gdybyśmy przyjęli, że pracownik może posiadać wiele stanowisk, wówczas informacje o stanowiskach Kowalskiego byłyby trzymane w jednej tablicy, zaś podstawowe informacje o Kowalskim w innej. Pewne środki systemowe, np. więzy referencyjne (referential integrity) lub tzw. kaskadowe usuwanie, wzmacniają możliwości systemowego odwzorowania semantyki złożonych obiektów w systemie relacyjnym. Są to jednak środki ad hoc, niekompletne i nieco przypadkowe. Podkreślimy tu fakt, że w stosunku do modelu relacyjnego pojęcie złożonego obiektu stanowi kolejny krok uwalniający analityka, projektanta i programistę od myślenia o reprezentacji obiektów na etapie budowy modelu pojęciowego i programowania.

Wielu autorów implicite lub explicite zakłada pewne dynamiczne własności obiektów. Przykładowo, obiekt PRACOWNIK może składać się z komponentów WYPOSAŻENIE, których stan i ilość mogą ulegać dynamicznym zmianom. Koncepcja złożonych obiektów odchodzi więc od stałych formatów zapisów.

Copyrights © 2006 PJWSTK
Materiały zostały opracowane w PJWSTK w projekcie współfinansowanym ze środków EFS.