Реляційна операція "Розподіл"

Операція "Розподіл" з огляду на можливості її представлення за допомогою інших реляційних операцій в мову Б () Б не включається, але розуміння її суті дозволяє розробнику розуміти певні процеси над даними, які такою операцією визначаються. Дана операція передбачає, що для її проведення необхідно володіти трьома вихідними відносинами, два з яких представляються діленим і дільником, а третє - посередником обчислення. В результуючому відношенні повинні бути представлені такі кортежі, які представлені в відношенні-посереднику повністю співпадаючими кортежами.

Тут з'являється поняття "рівність кортежів", яке визначає точний збіг значень порівнюваних кортежів по всіх наявних у них атрибутів, з урахуванням того, що перелік атрибутів є повністю однаковим.

Для операції "Розподіл" (рис. 1.31) рівність кортежів розглядають кілька в спрощеному варіанті, враховуючи, що ставлення-посередник включає атрибути (домени), що містяться в обох вихідних відносинах, що не дозволяє говорити про повну рівність кортежів. Проте, при виконанні операції необхідно, щоб повний перелік атрибутів кожного вихідного відносини повністю містився відносно-посереднику і значення цих атрибутів точно відповідали (дорівнювали але кортежу) всіма значеннями вихідного відносини в рамках кожного окремого кортежу.

Як очевидно з прикладу, відносини Л і Б є вихідними відносинами, що містять певні відомості про співробітників і посадах. При цьому обидва відносини містять не всі кортежі, які можуть бути в загальній сукупності значень, а тільки ті, які отримані в результаті виконання будь-яких раніше розглянутих реляційних операцій.

Ставлення В є посередником, атрибутивний складу якого видається сукупністю атрибутів по відносинам Л і Б в їх повному складі. Таким чином, операція "Розподіл" може бути повністю виконана з урахуванням правила її виконання за рівністю кортежів вихідних відносин і відносини-посередника.

Алгоритмічно операція "Розподіл" виконується наступним чином.

1. Над відносинами А і Б виконується операція "Скалярний твір" (рис. 1.32), яка призводить до появи всіх можливих перетинів кортежів обох вихідних відносин.

image32

Мал. 1.31. Приклад виконання операції "Розподіл"


image33

Мал. 1.32. Приклад операції "Розподіл": скалярний твір вихідних відносин


2. Отримане відношення після скалярного твори порівнюється з відношенням-посередником, що містить набори значень, які визначають сукупність допустимих комбінацій значень по генеральним даними вихідних для операції "Розподіл" відносин. Дана дія володіє однією особливістю - кортеж вихідного відносини А повинен

бути представлений у відношенні-посереднику В разом з усіма кортежами вихідного відносини Б (рис. 1.33).

image34

Мал. 1.33. Приклад операції "Розподіл": порівняння кортежів


3. З результату виділяємо тільки ті домени (рис. 1.34), які відповідають відношенню-делимому (відношення А).

image35

Мал. 1.34. Приклад операції "Розподіл": виділення доменів


4. Оскільки операція "Розподіл" в якості результату виділяє тільки унікальні кортежі (рис. 1.35), то останньою дією є ліквідація дублювання кортежів.

image36

Мал. 1.35. Приклад операції "Розподіл": виділення унікальних кортежів


Представлений приклад показує, що раніше розглянуті операції реляційної алгебри дають вичерпну інструментарій для виконання операції "Розподіл", що не вимагає окремої реалізації даної операції в рамках мови БОД., Що є стандартом мови обробки маніпулювання даними в реляційних базах даних.

 
< Попер   ЗМІСТ   Наст >