logo search
rektorska_pi

27.Реляційна алгебра. Основні і додаткові операції реляційної алгебри.

Мови реляційних СУБД

У сучасних реляційних СУБД – дві групи мов:

– реляційна алгебра (операнди і результати – відношення);

– реляційне числення (декларативні мови – запити).

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

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

кількома недоліками:

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

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

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

Реляційне числення не має нічого спільного з диференціальним або інтегральним численням, а його назва походить від тієї частини символьної логіки, яка називається обчисленням предикатів. В контексті баз даних воно існує в двох формах: у формі запропонованого Коддом реляційного обчислення кортежів і в формі запропонованого Лакруа і Піро реляційного обчислення доменів. У логіці першого порядку (або теорії числення предикатів) під предикатом мається на увазі функція істиності з параметрами. Після підстановки значень замість параметрів функція стає виразом, яке називається судженням, яке може бути істинним або хибним. Наприклад, речення "Іван Сидор є співробітником цієї організації" і "Іван Сидор має більш високу зарплату, ніж Ганна Буценко" є судженнями, оскільки можна визначити їх істинність або хибність. У першому випадку функція “є співробітником цієї організації” має один параметр ("Іван Сидор"), а в другому випадку функція “має більш високу зарплату, ніж” має два параметри ("Іван Сидор" і "Ганна Буценко").

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

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