Теоретико-множинні операції (операції з теорії множин) Нехай А, В - відношення з еквівалентною схемою (множини кортежів з однаковим набором атрибутів), a1...ak - кортежі відношень A b1...bk - кортежі відношень B F G H
b g a
d a f
A B C D E
a b c
d a f
c b d
а) об'єднання - відношення зі схемою, еквівалентною А і B, що включає всі різні кортежі з A і B (об'єднання множин кортежів A і B). А і В мають мати однокову арність (кількість стовпців в табличці). А(В = a b c
d a f
c b d
b g a
- однокові кортежі мають тільки одне входження
б) різниця - відношення зі схемою, еквівалентною А і B, що включає всі кортежі з A, які відсутні в B (різниця множин кортежів A і B). А і В мають мати однокову арність (кількість стовпців в табличці). А-В= a b c
c b d
в) перетин - відношення зі схемою, еквівалентною А і B, що включає тільки співпадаючі в A і B кортежі (перетинання множин A і B). А і В мають мати однокову арність (кількість стовпців в табличці). А(В = А - ( А - В) = d a f
г) декартовий добуток (А, В - відношення, схеми яких не мають однакових атрибутів.) - нове відношення зі схемою, що включає всі атрибути схем A і B, і множиною кортежів, отриманою комбінаторною підстановкою кортежів з A і B: для кожної пари кортежів і добуток містить кортеж. А х В = 3+3 C D E F G H
a b c b g a
a b c d a f
d a f b g a
d a f d a f
c b d b g a
c b d d a f
Якщо схеми A і B містять однакові атрибути, то перед добутком виконується операція перейменування таким чином, щоб схеми містили різнойменні атрибути, після чого виконується операція добутку, як зазначено вище. Спеціальні реляційні операції (операції обробки даних) а) вибірка (селекція) - відношення зі схемою, еквівалентною схемі R, що включає тільки ті кортежі з R, для яких логічний вираз f є істиним. Вираз f - синтаксично вірний вираз, що включає: - круглі дужки для групування операндів; - логічні зв'язування AND, OR, NOT; - оператори порівняння - константи (D=b(A) = C D E
a b c
c b d
б) проекція - відношення зі схемою, що включає тільки атрибути A1...AN зі схеми R, тобто - це відношення R, у якому вилучені всі атрибути, крім A1...AN. При відсутності списку атрибутів, вважається, що проекція виконана на всі атрибути. (C,D (A) = C D
a b
d a
c b
в) з'єднання - вибірка по f з декартового добутку A на B f – арифметичне порівняння (К<H, К=Н, К!=Н, наприклад). Стовпці мають бути іменовані. Якщо f має довільний вигляд, з'єднання називається Q - з'єднанням. Якщо f має вигляд Z=X (де Z, X - прості або складові атрибути однакової структури, а рівність, у випадку складених атрибутів, розуміється як поелементна), то з'єднання називається эквіз’єднанням. Якщо схеми відношень A і B мають один загальний атрибут (простий або складовий), по ньому виконано эквіз’єднання, і в результуючу частину необхідно включити тільки одну копію даного атрибута, то дана операція називається природним з'єднанням (натуральним з’єднанням). A B C D E
1 2 3
4 5 6
7 8 9
F G
3 1
6 2
A>< B = D<F C D E F G
1 2 3 3 1
1 2 3 6 2
4 5 6 6 2
Природне з’єднання: A B C D E
a b c
d b c
b b f
c a d
D E F
b c d
b c e
a d b
A>< B = C D E F
a b c d
a b c e
d b c d
d b c e
c a d b
г) ділення Нехай схема A включає прості або складені атрибути A1 і A2 , а схема B - атрибут B1=A2. Ділення - відношення зі схемою, що включає тільки атрибут A1, і тілом, що містить такі значення aі з A1 , що для будь-якого значення bj з B1 у відношенні А є кортеж виду aі bj. Інакше кажучи, операція ділення є практично (але не в точному значенні) зворотна до операції добутку, і коректність виконання ділення можна перевірити множенням результату на дільник. A BC D E F
a b c d
a c e f
b c e f
e d c d
e d e f
a b d e
G H
c d
e f
A(B= a b
a c
e d
Правила запису виразів реляційної алгебри Кожна операція реляційної алгебри приймає в якості операндів одне або кілька відношень. У якості відношення може бути зазначене ім'я деякого відношення або деякий інший вираз реляційної алгебри. Результатом обчислення виразу реляційної алгебри є результат останньої виконаної операції. Для виконання операції реляційної алгебри повинні бути попередньо обчислені її операнди. Вирази реляційної алгебри обчислюються відповідно до пріоритету операцій: спочатку операції перетинання й декартового добутку (вищий пріоритет), потім - операції об'єднання й віднімання (нижчий пріоритет). У випадку однакових пріоритетів операції виконуються зліва направо. Порядок виконання операцій можна задати явно за допомогою круглих дужок, що групують. Поняття. Сутність Сутністю або інформаційним об'єктом предметної області називається деяке поняття, загальне для ряду об'єктів реального світу. Атрибут Сутність описується набором ознак (атрибутів), важливих для розглянутої предметної області, склад яких дозволяє відокремити об'єкти (екземпляри) однієї сутності від об'єктів (екземплярів) іншої сутності предметної області, а значення яких дозволяють відрізнити різні екземпляри однієї сутності. Тобто назви стовпців таблички. Домен Домен атрибута можна визначити як сукупність можливих значень атрибута. Таким чином, у поняття домена входить і тип даних, і область їхніх можливих значень. Для кожного атрибута може бути заданий тільки один домен, але на кожному домені може бути визначена множина атрибутів. На рівні інфологічної моделі домени можна описати без конкретних фізичних властивостей. На фізичному рівні вони автоматично одержують специфічні властивості, які можна змінити вручну. Так, домен "Вік" може мати на логічному рівні тип Number, на фізичному рівні стовпчикам домена буде привсвоєно тип ІNTEGER. Приклад приведення бази даних з 2-ої до 3-ої НФ. Для приведення відносини з 2НФ до 3НФ треба: а) для кожної транзитивної залежності виду X->Y1->...->Yк , де X - ключ, треба виконати проекцію на атрибути, що послужили причиною транзитивної залежності - атрибути Y1...Yк б) виконати проекцію на всі атрибути, крім тих, які транзитивно залежать від ключа: крім Y2...Yк. Приклад: Відношення A B C D F (Викладач, Посада, Оклад, Група, Предмет) ПК: DF ФЗ: DF->A -> B -> C перебуває в другій нормальній формі. При цьому воно допускає наступні аномалії оновлення: а) аномалія модифікації - при зміні значення посади викладача, необхідно буде виконати зміну значення посади для всіх рядків з даним викладачем і зміна значення окладу відповідно до нової посади; б) аномалія видалення - полягає у втраті інформації про оклад викладача в деякій посаді при видаленні єдиного викладача, що займає дану посаду; в) аномалія додавання - полягає в необхідності призначення хоча б одного співробітника на нову посада додаванні в БД окладу за посадою. Перетворимо дане відношення із приклада з 2НФ в 3НФ: A B C D F (Викладач, Посада, Оклад, Група, Предмет) ПК: DF ФЗ: DF->A -> B -> C а) 1. Виконаємо проекцію відношення на атрибути A, B, C A B C (Викладач, Посада, Оклад) ПК: A ФЗ: A-> B->C 2. Зауважимо, що отримане відношення знову містить транзитивну залежність, знову зробимо декомпозицію його на два відношення:
B C Зарплата(Посада, Оклад) ПК: B ФЗ: B->C A B Обов'язок(Викладач, Посада,) ПК: A ФЗ: A->B б) виконаємо проекцію відношення на атрибути, крім B, C A D F План(Викладач, Група, Предмет) ПК: DF ФЗ: DF->A До вихідної схеми без втрати кортежів і функціональних залежностей можна повернутися природним з'єднанням відношень Зарплата й Обов'язок, потім - природним з'єднанням отриманого відношення й відношень План.