Реляційна алгебра та реляційне числення

Основна ідея та предмет вивчення реляційної алгебри, її структура, принципи та значення в системі наук. Зміст теоретико-множинних операцій. Загальна інтерпретація реляційних операцій. Кортежні змінні і правильно побудовані формули реляційного числення.

Рубрика Математика
Вид реферат
Язык украинский
Дата добавления 20.06.2010
Размер файла 24,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

2

Реляційна алгебра та реляційне числення

Вступ

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

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

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

обєднання відношень;

перетин відношень;

взяття різниці відношень;

Декартовий добуток відношень.

Спеціальні реляційні операції включають:

обмеження відношення;

проекція відношення;

зєднання відношень;

ділення відношень.

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

Загальна інтерпретація реляційних операцій

Якщо не вдаватися в деякі тонкощі, майже всі операції з запропонованих вище володіють очевидною і простою інтерпретацією:

Операція перейменування дає відношення, тіло якого співпадає з тілом операнда, але імена атрибутів змінені.

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

Замкненість реляційної алгебри

Кожне відношення характеризується схемою (або заголовком) і набором кортежів (або тілом). Тому, якщо реалізовувати алгебру, операції якої замкнені відносно поняття відношення, кожна операція повинна породжувати відношення в повній мірі, тобто воно повинно володіти і тілом, і заголовком. Лише в цьому випадку буде можливість будувати вкладені вирази. Заголовок відношення є множиною пар <імя-атрибута, імя-домена>. Якщо зробити загальний огляд реляційних операцій, можна побачити, що домени атрибутів результуючого відношення однозначно визначаються доменами відношень-результатів.

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

Особливості теоретико-множинних операцій реляційної алгебри

Хоча в основі теоретико-множинної частини реляційної алгебри лежить класична теорія множин, відповідні операції реляційної алгебри володіють деякими особливостями.

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

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

Операція перетину двох відношень дозволяє одержати відношення, що включає всі кортежі, які входять до обох відношень-операндів.

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

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

SELECT * FROM A UNION SELECT * FROM B,

перетину

SELECT * FROM A INTERSECT SELECT * FROM B,

і взяття різниці

SELECT * FROM A EXCEPT SELECT * FROM B

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

Приклад:

SELECT P.P#

FROM P

WHERE P.WEIGHT>16.0

UNION

SELECT SP.P#

FROM SP

WHERE SP.P#='S2';

Операція взяття Декартового (або прямого) добутку двох відношень.

При виконанні прямого добутку двох відношень одержується відношення, кортежі якого є конкатенацією (счепленням) кортежів першого і другого операндів (A CROSS JOIN B).

А В

S#

P#

S1

P1

S2

P2

S3

P3

S4

P4

A TINES B

S#

P#

S1

P1

S2

P1

S3

P1

S1

P2

S2

P2

S3

P2

S1

P3

S2

P3

S3

P3

SELECT A.S#, B.P#

FROM A, B

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

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

Нехай маємо відношення А з атрибутами Х і У., а символ означає будь-який оператор порівняння (=, , >, >= та ін.), такий що умова Х У при заданих Х та У дає значення істина або хибність. Тоді -вибіркою з відношення А по атрибутам Х та У називається відношення, що має той самий заголовок, що і відношення А і тіло, що містить множину всіх кортежів t відношення А, для яких перевірка умови Х У дає значення істина. Умова найчастіше задається за допомогою ключового слова WHERE.

SELECT *

FROM S

WHERE S#='S1';

З використанням цих визначень можна використовувати операції обмеження, в яких умова обмеження є довільною булевим виразом, складеним з простих умов з використанням логічних зв'язок AND, OR і AND та дужок. На інтуїтивному рівні операцію обмеження краще за все уявити як взяття деякої «горизонтальної» вирізки з відношення-операнда.

SELECT *

FROM P

WHERE P.CITY<>'Paris'

AND P.WEIGHT>10,0;

Проекція.

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

Нехай задане відношення А з атрибутами Х, Y,…, Z. Тоді проекцією відношення А за атрибутами X, Y, …, Z (A {X, Y,…, Z}) називається відношення, що задовольняє наступним вимогам.

- Його заголовок одержується з заголовку А шляхом видалення з нього всіх атрибутів, що не входять до множини A {X, Y,…, Z}.

- Його тіло містить множину всіх кортежів виду {X:х, Y:у,…, Z:z}, таких, що х, у, z у відношенні А є значеннями відповідних атрибутів (SELECT DISINCT X, Y,… Z FROM A).

SELECT S.S#, S.SNAME

FROM S

Таким чином, за допомогою проекції можна створити вертикальну підмножину заданого відношення.

Спеціальні реляційні операції

Операція зєднання відношень (горизонтальна)

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

Загальна операція з'єднання (яку також називають з'єднанням за умовою) потребує наявності двох операндів - відношень, що з'єднуються і третього операнда - простої умови. Нехай з'єднуються відношення A і B, що не мають спільних імен атрибутів. Тоді -з'єднання відношення А за атрибутом Х з відношенням В за атрибутом У називається результат наступного виразу

(A JOIN B) WHERE XY;

S JOIN P USING CITY

Є часткові випадки з'єднання - просте і еквіз'єднання. Операція природного з'єднання застосовується до пари відношень A і B, що володіють спільним атрибутом c (тобто, атрибутом з одним і тим самим іменем і визначеним на тому самому домені). Нехай відношення А і В мають заголовки

{X1, X2, …, Xm, Y1, Y2, … Yn}

та

{Y1, Y2, …Yn, Z1, Z2, …Zp}

відповідно, тобто атрибути Y1, Y2, …Yn (і лише вони) - спільні для двох цих відношень, Х1, Х2,… Хм - решта атрибутів відношення А і Z1, Z2, …Zp - решта атрибутів для В. далі ми будемо їх називати як X, Y, Z. Тоді операція природного з'єднання відношень А і В називається відношення з заголовком {X, Y, Z} і тілом, що містить множину всіх кортежів вигляду {X:x, Y:y, Z:z}. Таке з'єднання необов'язково виконується по значенню первинного і відповідного зовнішнього ключа.

S NATURAL JOIN P

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

SELECT S.*, P.P#, P.PNAME

FROM S, P

WHERE S.CITY=P.SITY

Операція ділення відношень

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

Ця операція є найменш очевидною з увсіх операцій реляційної алгебри і тому потребує детального пояснення. Нехай задані два відношення - A з заголовком {a1, a2,…, an, b1, b2,…, bm} і B з заголовком {b1, b2,…, bm}. Будемо вважати, що атрибут bi відношення A і атрибут bi відношення B не лише володіють одним і тим самим іменем, але й визначені на одному і тому самому домені. Назвемо множину атрибутів {aj} складовим атрибутом a, а множину атрибутів {bj} - складовим атрибутом b. Після цього будемо говорити про реляційне ділення бінарного відношення A (a, b) на унарне відношення B(b). Результатом ділення A на B є унарне відношення C(a), що cкладається з кортежів v таких, що у відношенні A є кортежі <v, w> такі, що множина значень {w} включає множину значень атрибута b у відношенні B. Припустимо, що в базі даних робітників підтримуються два відношення: РОБІТНИКИ (ВІД_НОМЕР, ІМЯ) і ІМЕНА (ІМЯ), причому унарне відношення ІМЕНА містить всі прізвища, які мають робітники організації. Тоді після виконання операції реляційного ділення відношення РОБІТНИКИ на відношенне ІМЕНА буде отримане унарне відношення, що міститиме номера відділів, робітники яких мають всі можливі в цій організації імена.

2. Реляційне числення

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

виконати з'єднання відношення S і SP за атрибутом S#;

вибрати з результату цього зєднання кортежі з номером деталі Р2;

спроектувати результат попередньої операції за атрибутами S# і CITY

Ми чітко сформулювали послідовність кроків виконання запиту, кожен з яких відповідає одній реляційній операції. Якщо ж сформулювати той самий запит з використанням реляційного числення, про яке йтиметься зараз, то ми одержимо формулу, яку можна було б прочитати, наприклад, наступним чином: Видати S# і CITY для робітників таких, що постачають деталь з номером Р2. У другому способі формулювання ми вказуємо лише характеристики результуючого відношення, але нічого не говоримо про спосіб його формування. В цьому випадку система повинна сама вирішити, які операції і в якому порядку потрібно виконати над відношеннями. Зазвичай говорять, що алгебраїчне формулювання є процедурним, тобто таким, що задає правила виконання запиту, а логічне - описовим (або декларативним), оскільки воно лишень описує властивості бажаного результату. Як ми зазначали, на справді ці два механізми еквівалентні і існують не дуже складні правила перетворення одного формалізму в інший.

Кортежні змінні і правильно побудовані формули

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

В численні кортежів областями визначення змінних є відношення бази даних, тобто допустимим значенням кожної змінної є кортеж деякого відношення.

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

Для визначення кортежної змінної, областю визначення якої є деяке базове відношення потрібно вжити конструкцію (наприклад використану в операторі SELECT):

Select PX.COLOR, PX.CITY

FROM P AS PX

WHERE PX.CITY<>'Paris'

AND PX.WEIGHT>10.0;

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

РХ.CITY

В мові SQL допускається неявне звернення до змінних кортежів, що дозволяє переписати наш запит у наступному вигляді:

Select P.COLOR, P.CITY

FROM P

WHERE P.CITY<>'Paris'

AND P.WEIGHT>10.0;

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

Правильно побудовані формули (WFF - Well-Formed Formula) служать для виразу умов, що накладаються на кортежні змінні. Основою WFF є прості порівняння, які є операціями порівняння скалярних значень (значень атрибутів змінних або літерально заданих констант). Наприклад, конструкція

«A.CITY=B.CITY»

є простим порівнянням. Більш складні варіанти WFF будуються за допомогою логічних зв'язок NOT, AND, OR. Нарешті, допускається побудова WFF за допомогою кванторів. Якщо form - це WFF, в якій бере участь змінна var, то конструкції EXISTS var (form) і FORALL var (form) є wff. Змінні, що входять до WFF, можуть бути вільними або зв'язаними. Всі змінні, що входять до WFF, при побудові якого не використовується квантор, є вільними. Вказати імена постачальників деталі з номером Р2:

SELECT DISTINCT S.SNAME

FROM S

WHERE EXISTS

(SELECT*

FROM SP

WHERE SP.S#=S.S#

AND SP.P#='P2');

SQL EXISTS (SELECT … FROM) буде мати значення істина тоді і лише тоді, коли результат обчислення виразу SELECT … FROM буде непустим.

SQL не містить деякої безпосередньої підтримки універсального квантора FORALL; відповідно запити типу «ДЛЯ ВСІХ» звичайно виражаються через заперечення квантора існування, як у наступному прикладі вибрати імена постачальників, які не постачають деталь з номером Р2:

SELECT DISTINCT S.NAME

FROM S

WHERE NOT EXISTS

(SELECT *

FROM SP

SP.S#=S.S#,

AND SP.P#='P2');

В численні доменів областю визначення змінних є не відношення, а домени. По відношенню до БД Постачання деталей можна говорити, наприклад, про домени-змінні S# (значення - допустимі номери постачальників) або SNAME (значення - допустимі імена постачальників). Основною формальною відмінністю числення доменів від числення кортежів є наявність додаткового набору предикатів, що дозволяють виражати так звані умови входження. Якщо R - це n-арне відношення з атрибутами a1, a2,…, an, тоді умова членства має вигляд R (ai1:vi1, ai2:vi2,…, aim:vim) (m <= n), де vij - це або літеральна константа, або ім'я доменої змінної. Умова членства приймає значення true в тому і лише тому випадку, якщо у відношенні R існує кортеж, що містить вказані значення вказаних атрибутів.


Подобные документы

  • Характеристика алгебри логіки. Система числення як спосіб подання довільного числа за допомогою алфавіту символів, які називають цифрами. Представлення чисел зі знаком: прямий, обернений і доповняльний код. Аналіз булевої функції та методів Квайна, Вейча.

    курсовая работа [2,6 M], добавлен 05.09.2011

  • Алгоритми переведення чисел з однієї позиційної системи числення в іншу. Перетворення і передавання інформації. Булеві функції змінних, їх мінімізація. Реалізація функцій алгебри логіки на дешифраторах. Синтез комбінаційних схем на базі мультиплексорів.

    курсовая работа [3,2 M], добавлен 02.09.2011

  • Ознайомлення із символікою та апаратом логіки висловлень. Сутність алгебри Жегалкіна. Дослідження питань несуперечності, повноти та незалежності логічних та спеціальних аксіом числення предикатів. Визначення поняття та характерних рис алгоритмів.

    курс лекций [538,2 K], добавлен 02.04.2011

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

    презентация [50,1 K], добавлен 06.02.2014

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

    учебное пособие [487,6 K], добавлен 10.04.2009

  • Варіаційне числення. Обчислення варіації інтегрального функціонала. Варіаційна задача з рухливими границями. Розв’язання диференційних рівнянь з лінійним відхиленням аргументу. Варіації розв’язків диференціального рівняння із розривною початковою умовою.

    курсовая работа [7,8 M], добавлен 21.11.2011

  • Методи скінченних різниць або методи сіток як чисельні методи розв'язку інтегро-диференціальних рівнянь алгебри диференціального та інтегрального числення. порядок розв’язання задачі Діріхле для рівняння Лапласа методом сіток у прямокутної області.

    курсовая работа [236,5 K], добавлен 11.06.2015

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

    реферат [1,1 M], добавлен 18.07.2010

  • Визначення основних понять і вивчення методів аналізу безкінечно малих величин. Техніка диференціального і інтегрального числення і вирішення прикладних завдань. Визначення меж числової послідовності і функції аргументу. Обчислення інтегралів.

    курс лекций [570,1 K], добавлен 14.03.2011

  • Функціональна повнота системи функцій алгебри логіки. Клас самодвоїстих функцій і його замкненість. Леми теореми Поста. Реалізація алгоритму В середовищі програмування С#, який визначає чи є система функцій алгебри логіки функціонально повна, вид повноти.

    курсовая работа [388,6 K], добавлен 17.05.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.