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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Агрегатні функції.

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

* COUNT (лічильник) виробляє кількість рядків або не-NULL значення полів, які вибрав запит.

* SUM (Сума) знаходить арифметичну суму всіх вибраних значень даного поля.

* AVG (Середнє) виконує усреднення всіх вибраних значень даного поля.

* MAX знаходить найбільше з усіх вибраних значень даного поля.

* MIN знаходить найменше з усіх вибраних значень даного поля.

Агрегатні функції використовуються подібно іменам полів у команді SELECT запиту. Їх аргументами є імена стовпців. З SUM і AVG можуть використовуватись лише числові поля. Функції COUNT, MAX, и MIN, допускають використання і числових і символьних полів. Коли вони використовуються з символьними полями, MAX і MIN будуть транслювати їх у еквівалент ASCII, за яким MIN будет означати перше, а MAX – останнє значення за алфавітом.

AVG() – повертає середнє арифметичне значень для заданого стовпця. Результатом буде таблиця з додатковим стовпцем, що міститиме середнє значення, причому йому можна давати окрему назву:

SELECT AVG(amt) as avamt

From Orders;

Функція COUNT дещо відрізняється від усіх. Вона повертає кількість значень у даному столпці, або кількість рядків у таблиці.

Select count(snum) from orders;

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

МАХ(), MIN() повертають, відповідно найбільше і найменше значення стовпчика. Причому пошук можна здійснювати не серед всіх значень стовпчика, а лише у тих рядках, які задовольняють критерію, вказаному в директиві WHERE:

SELECT MAX (amt) as maxamt, MIN(amt) as minamt

FROM Orders

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

Згідно строгій інтерпретації ANSI SQL, не можна викорситовувати агрегат агрегата.

 



Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 481; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.187.24 (0.008 с.)