ZSBD-2st-1.2-w6.tresc-1.1-Slajd18

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Związki wielokrotne i atrybuty wielowartościowe

Związki wielokrotne i atrybuty wielowartościowe


Obiektowy model danych pozwala bezpośrednio modelować struktury zbiorowe, takie jak związki wielokrotne i atrybuty wielowartościowe. Ze strukturami zbiorowymi skojarzone są operacje logiczne na zbiorach, na przykład niepustego przecięcia, podzbioru lub przynależności elementu do zbioru.

Na slajdzie pokazano przykład operacji na zbiorach dotyczącej atrybutów wielowartościowych. Definicja klasy Wielokąt zawiera atrybut wielowartościowy będący zbiorem punktów, który reprezentuje zbiór wierzchołków wielokąta. Definicja klasy Koło obejmuje z kolei jednowartościowy atrybut typu Punkt, który reprezentuje środek koła.

Pokazane na dole slajdu zapytanie wyszukuje w bazie danych pary Koło i Wielokąt takie, że środek koła pokrywa się z jednym z wierzchołków wielokąta. Zapytanie to zawiera operator zbiorowy, testowania przynależności elementu do zbioru.

Fizyczna implementacja zapytań zawierających operację łączenie kolekcji obiektów, w której warunek połączeniowy zawiera operacje porównania zbiorów jest bardzo czasochłonna z dwóch podstawowych powodów. Po pierwsze, realizacja takich operacji wymaga porównania wszystkich elementów dwóch łączonych kolekcji obiektów, i dodatkowo dla każdej pary porównywanych obiektów porównania wszystkich elementów zbiorów, to jest atrybutów wielowartościowych lub związków wielokrotnych. Dla dwóch kolekcji obiektów o rozmiarach M i N, i dla średniej liczebności atrybutów zbiorowych lub związków wielokrotnych równej O i P, złożoność kombinatoryczna operacji połączenia wynosi: M?N?O?P. Drugą przyczyną czasochłonności takich operacji połączeń jest niemożność zastosowania w tym wypadku szybszych metod wykonywania połączeń, takich jak metody sort-merge lub hash-join. Metoda sort-merge nie może być zastosowana w tym wypadku ze względu na brak relacji porządkującej zbiór zbiorów wartości lub związków. Natomiast metoda hash-join nie może być zastosowana ze względu na jej ograniczenie do warunków połączenia zawierających operator równości.


<< Poprzedni slajd | Spis treści | Następny slajd >>