ZSBD-2st-1.2-w5.tresc-1.1-Slajd8
Operacje połączenia
Język OQL rozróżnia dwa rodzaje operacji łączenia (ang. join) kolekcji obiektów. Oprócz znanej z modelu relacyjnego operacji dynamicznego łączenia krotek, na podstawie zdefiniowanego warunku połączeniowego, wprowadzono nową klasę łączenia strukturalnego, na podstawie związków zdefiniowanych w bazie danych. Składniowo połączenia strukturalne są definiowane jako wielowartościowe wyrażenia ścieżkowe umieszczone w klauzuli FROM.
W podanym przykładzie łączenie obiektów rozszerzania „Osoby ” z obiektami rozszerzenia „Obrazy ” jest wykonywane przez nawigację wzdłuż związku o nazwie „utworzyła ”. System zarządzania obiektową bazą danych w tym wypadku nie dopasowuje dynamicznie par obiektów na podstawie warunku połączeniowego, tylko nawiguje wzdłuż już ustalonych powiązań.
W języku OQL pozostawiono możliwość wykonywania relacyjnych operacji połączenia. Przykładem jest drugie zapytanie, w którym są łączone dwie kolekcje osób na podstawie dynamicznie weryfikowanego warunku zamieszkiwania w tym samym mieście. Dodatkowy warunek połączeniowy „o1” != „o2” wyklucza łączenie tych samych osób.