- у цьому запиті зв’язаними є стовпчик Data_Otrym таблиці Zamovlennia та стовпчик Data_Pryjomu таблиці Pracivnyky:
Data_Otrym = Data_Pryjomu
Ці стовпчики не входять ні у зовнішній ключ, ні у первинний ключ; та й взагалі, відношення між рядками у цих парах – в достатній мірі дивне: спільне у цих замовленнях і працівниках лише те, що вони з’явилися у фірмі один і той самий день.
Незважаючи на це, СУБД з готовністю сполучає таблиці так, як це визначено в запиті.
Зв’язані стовпчики, подібні до тих, що наведені в нашому прикладі, створюють між таблицями відношення „багато – до – багатьох” (N : M) :може поступити багато замовлень в день прийому на роботу якогось працівника; також – в день отримання якогось замовлення на роботу може бути прийнято декілька працівників.
Відношення „багато – до – багатьох” відрізняється від відношення „один – до – багатьох”, яке створюється коли в якості зв’язаних стовпчиків використовується первинний і зовнішній ключі.
Більш типова ситуація, коли в таблиці Zamovlennia реєструється працівник, який прийняв це замовлення:
Підведемо підсумки:
1) в з’єднанні, створеному за допомогою зв’язування головного (первинного) ключа із зовнішнім ключем завжди існує відношення „один – до – багатьох” (предок/нащадок).
2) в інших з’єднаннях також можуть існувати відношення „один – до – багатьох”, якщо по крайній мірі в одній таблиці зв’язаний стовпчик містить унікальні значення в усіх рядках (якщо в обидвох таблицях зв’язані стовпчики містять в усіх рядках унікальні значення - то в з’єднанні буде відношення „ один – до – одного” ).
3) в загальному випадку в з’єднаннях, створених на основі довільних зв’язаних стовпчиків , існує відношення „багато – до – багатьох”.
Зауважимо, що відмінності цих трьох випадків не впливають на форму запису оператора SELECT, який визначає з’єднання. З’єднання всіх трьох видів записуються одним і тим самим способом: в секції WHERE записується порівняння зв’язаних стовпчиків.
12.3. q - з’єднання. З’єднання таблиць за нерівністю
q (тета) - з’єднання відношення А по атрибуту Х з відношенням В по атрибуту Y – це результат обчислення виразу.
(A B)
WHERE X Y
де A B – декартовий добуток відношень А і В.
X Y – результат порівняння значень атрибутів Х та Y, який може приймати значення TRUE, FALSE, NULL.
- одна із операцій відношення: =, <>, >, >=, <, <=
Іншими словами, - з’єднання таблиці А по стовпчику Х з таблицею В по стовпчику Y, - це результат вибірки з декартового добутку A B тих типів рядків, для яких умова
X q Y
має значення TRUE.
З’єднання за рівністю – це один із частинних випадків - сполучень. Хоча серед всіх з’єднань найбільш поширеними є з’єднання за рівністю, але інколи використовуються з’єднання таблиць за допомогою інших операцій порівняння.
60). Вивести дані про працівників (та відповідні філії), які перевищили план продаж по своїй філії.
- фірма має в різних містах свої філії, в кожній встановлено свій план продаж на одного працівника. Потрібно преміювати кращих працівників