BD-2st-1.2-w12.tresc-1.1-Slajd10
Analiza semantyczna zapytania (3)
Rozwiązanie problemu zapytań niepoprawnie sformułowanych opiera się na konstrukcji tak zwanego grafu połączeń atrybutów. Graf połączeń atrybutów konstruujemy następująco. Dla każdej referencji do atrybutu tworzymy w grafie wierzchołek atrybutu lub wierzchołek 0. Następnie, tworzymy luk skierowany pomiędzy wierzchołkami reprezentującymi operację połączenia, oraz łuk skierowany pomiędzy wierzchołkiem atrybutu a wierzchołkiem 0, reprezentujący warunek selekcji. W kolejnym kroku nadajemy wagi lukom:
łuk: a -> b posiada wagę c, jeżeli luk reprezentuje warunek nierównościowy (a<= b+c),
łuk: 0 -> a posiada wagę -c, jeżeli luk reprezentuje warunek nierównościowy (a >= c).
łuki reprezentujące połączenia posiadają wagę 0.
Jeżeli graf połączeń atrybutów zawiera cykl, którego suma wag jest ujemna, zapytanie jest sprzeczne.