Повна версія

Головна arrow Інформатика arrow Бази даних: проектування

  • Увеличить шрифт
  • Уменьшить шрифт


<<   ЗМІСТ   >>

Реляційна алгебра

Реляційна алгебра вперше була сформульована Е. Коддом [1] в 1972 р, де основним операндом для операцій визначені відносини. Саме вони (відносини) є основними компонентами всіх операцій в реляційній алгебрі.

Під реляційної алгеброю прийнято розуміти комплекс операцій, які в якості основних операндів і повертається результату використовують відносини.

Важливо розуміти, що реляційна алгебра формулюється на основі математичних операцій з множинами, але, оскільки всі даних формуються у відносини, які є окремим випадком безлічі, то реляційна алгебра, яка використовується при побудові баз даних, розглядає, що в якості множин, над якими будуть виконуватися реляційні операції, будуть розглядатися саме відносини. Подання реляційної алгебри для роботи з відносинами включає вісім операцій, які розділені на дві групи з чотирма операціями кожна:

  • • стандартні операції над відносинами - об'єднання, перетин, різниця, декартовій твір;
  • • спеціалізовані операції над відносинами - скорочення (вибірка), проекція, з'єднання, розподіл.

Хоча автором реляційної алгебри з відносинами визначені ці вісім операцій, ними не обмежуються можливості обробки відносин. Насправді може бути визначено безліч інших операцій над відносинами. Головне, щоб всі важливі визначаються операції відповідали рамкам реляційної алгебри і використовували в якості операндів і повертається результату відносини.

Щоб показати зв'язок операцій над відносинами з операціями над множинами і для кращого їх розуміння, будемо розглядати операції реляційної алгебри з двох позицій: операції над множинами з графічною ілюстрацією і операції над відносинами.

Реляційна операція "Об'єднання"

Математика при операціях над множинами визначає, що об'єднання двох множин призводить до появи безлічі, що містить всі елементи, що належать або одному з множин, або обом множинам (рис. 1.16).

image16

Мал. 1.16. Операція об'єднання (і) над множинами


Результатом виконання даної операції буде ставлення, що складається з усіх кортежів одного з відносин або обох вихідних відносин [2] . Однак варто пам'ятати, що операції з множинами в математиці і операції з відносинами в базах даних є близькими, але не однаковими операціями. Обумовлено це тим, що в реляційній алгебрі, що реалізується в сучасних базах даних, операція об'єднання може виконуватися тільки над однотипними відносинами, оскільки необхідно зберігати реляционное властивість замкнутості.

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

Наприклад, на рис. 1.17 показано, що два відносини "Співробітник" і "Посада" не можуть бути об'єднані, оскільки складаються з різного набору атрибутів, тобто є різнотипними. Така операція над цими відносинами буде неможлива, але якщо буде два відносини з однаковим набором атрибутів, тобто однотипні, то виконати операцію об'єднання буде можливо.

image17

Мал. 1.17. Операція об'єднання (і) над різнотипними відносинами


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

image18

Мал. 1.18. Операція об'єднання (і) над однотипними відносинами


Операція об'єднання досить часто застосовується в базах даних, коли необхідно отримати відомості про одне й те ж об'єкті предметної області, але але різних умов, об'єднавши отримані відомості в єдину сукупність значень. Прикладом такої необхідності може бути такий варіант (рис. 1.19): сформувати списки людей, які працюють в університеті, і людей, що навчаються на першому та другому курсах із зазначенням типу людини { "Співробітник", "Учень"}. Такий запит вимагає реалізації вибірки співробітників і окремої вибірки учнів, оскільки для виконання такого запиту потрібно звернутися до різних відносин, не пов'язаних один з одним.


 



 Мал.  1.19.  Вихідні відносини для співробітника і учня


 
Мал.  1.20.  Приклад виконаного об'єднання з поданням результуючого відносини

Як видно, обидва відносини не пов'язані один з одним, але мають ідентичними атрибутами: "Табельний номер" і "Студентський квиток" є атрибутами, описаними символьним типом, і їх можна розглядати як ідентичних, а ПІБ є однаковим атрибутом за змістом і типу ( символьний) збережених даних. В результаті виконання операції об'єднання буде отримано відношення, що містить два атрибути - ідентифікатор людини (тут відбувається перейменування вихідного атрибута з метою забезпечення операції об'єднання, оскільки саме однакові назви атрибутів, а не тільки однакові типи даних, дозволяють її виконати) і ПІБ (рис. 1.20 ).



Отримане відношення буде складатися з усіх кортежів відносини "Співробітник", представляючи атрибут "Табельний номер" у вигляді атрибуту "ІДФ людини", і з усіх кортежів відносини "Учень", представляючи атрибут "Студентський квиток" у вигляді атрибуту "ІДФ людини".

  • [1] Codd EF Relational Completeness of Data Base Sublanguages / Randall J. Rustin (ed.). Data Base Systems, Courant Computer Science Symposia Series 6. Englewood Cliffs, NJ: Prentice-Mali, 1972.
  • [2] У мові SQL реляційна операція "Об'єднання" представляється операцією "Union".
 
<<   ЗМІСТ   >>