ZSBD-2st-1.2-w5.tresc-1.1-Slajd16
Heterogeniczne kolekcje danych
Tabele obiektów, których schemat jest zdefiniowany na podstawie bazowego typu danych z którego są wywiedzione typy pochodne, mogą być heterogeniczne. To znaczy, że mogą przechowywać obiekty polimorficzne. Obiekty przechowywane w tabelach heterogenicznych mogą być wystąpieniami zarówno typu bazowego jak i typów pochodnych. W związku z tym, mogą mieć różną strukturę. Wystąpienia typów pochodnych mogą posiadać dodatkowe atrybuty nie występujące w typie bazowym.
Na slajdzie pokazano przykład tabeli obiektów która może zawierać dwa typy obiektów: koła i wielokąty. Dodatkowo, jeżeli typ figura nie byłby typem abstrakcyjnym, tabela obiektów mogłaby jeszcze zawierać generyczne figury, które nie są ani kołami, ani wielokątami. Wystąpienia typu Figura mają jeden atrybut, a wystąpienia typu Koło dwa dodatkowe atrybuty: środek i promień.
Do heterogenicznej tabeli Figury zdefiniowanej na typie bazowym Figura wstawiono dwa obiekty, pierwszy typu Koło i drugi typu Wielokąt. Następnie na tabeli Figury wykonano dwa zapytania. Wynikiem pierwszego zapytania jest dwuelementowa kolekcja obiektów polimorficznych: jedno koło i jeden wielokąt. Wynik drugiego zapytania jest ograniczony do obiektów typu koło w wyniku zastosowania operatora "is of ". W naszym konkretnym przypadku wynik zapytania będzie zawierał dokładnie jeden obiekt.