10. Реляційна алгебра і реляційне числення. Основні операції реляційної алгебри
В маніпуляційній складовій реляційної моделі даних визначаються два базові механізми маніпулювання реляційними даними: основана на теорії множин реляційна алгебра і реляційне числення, що базується на математичній логіці (вірніше, на численні предикатів першого порядку). Всі ці механізми володіють однією важливою властивістю: вони замкнені відносно поняття відношення. Це означає, що вирази реляційної алгебри і формули реляційного числення визначаються над відношеннями реляційні БД і результатами обчислень також є відношення. Як наслідок, будь-який вираз або формула можуть інтерпретуватися як відношення, що дозволяє використовувати їх в інших виразах або формулах. Основна ідея реляційної алгебри полягає в тому, що оскільки відношення є множинами, засоби маніпулювання відношеннями можуть базуватися на традиційних теоретико-множинних операціях, додатково до деяких спеціальних операцій, специфічних для баз даних. Набір основних алгебраїчних операцій, запропонований Коддом, складається з восьми операцій, які діляться на два класи, - теоретико-множинні операції і спеціальні реляційні операції. До складу теоретико-множинних операцій входять операції:
· об¢єднання відношень;
· перетин відношень;
· взяття різниці відношень;
· Декартовий добуток відношень.
Спеціальні реляційні операції включають:
· обмеження відношення;
· проекція відношення;
· з¢єднання відношень;
· ділення відношень.
Крім того, до складу алгебри входить операція присвоювання, що дозволяє зберігати в базі даних результати обрахунку алгебраїчних виразів, і операція перейменування атрибутів, яка дає можливість коректно сформувати заголовок (схему) результуючого відношення. При виконанні операції об¢єднання двох відношень одержується відношення, щ містять всі кортежі, що входять хоча б в одне з відношень-операндів. Операція перетину двох відношень дозволяє одержати відношення, що включає всі кортежі, які входять до обох відношень-операндів. Відношення, що є різницею двох відношень, включає всі кортежі, що входять у відношення - перший операнд; такі, що жоден з них не входить у відношення, яке є другим операндом. Результат операцій: відношення. При виконанні цієї операції необхідно пам¢ятати про сумісність відношень по об’єднанню: два відношення сумісні по об’єднанню в тому і лише в тому випадку, коли володіють однаковими заголовками. Вибірка (обмеження). Результатом обмеження відношення за деякою умовою є відношення, що містить кортежі відношення-операнда, яке задовольняє цій умові.
При виконанні проекції відношення на заданий набір його атрибутів одержується відношення, кортежі якого одержуються шляхом взяття відповідних значень з заданих стовпців кортежів відношення-операнда.
При з¢єднанні двох відношень за деякою умовою утворюється результуюче відношення, кортежі якого є конкатенацією кортежів першого і другого відношень і задовольняють цій умові. У операції реляційного ділення два операнди - бінарне і унарне відношення. Результуюче відношення складається з одноатрибутних кортежів, що містять значення першого атрибута кортежів першого операнда таких, що множина значень другого атрибута (при фіксованому значенні першого атрибута) співпадає з множиною значень другого операнда.
11. Агрегатні функції
За допомогою запиту можна одержувати узагальнене групове значення полів так само як і значення одного поля. Це робиться за допомогою агрегатних функцій. Агрегатні функції повертають одне значення для всієї групи таблиці. Всього таких функцій, що підтримуються будь-яким діалектом мови 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, не можна використовувати агрегат агрегату.
... який застосовує модель собівартості для інвестиційної нерухомості відповідно до МСБО (МСБУ) 40, має застосовувати модель собівартості Стандарту. Розділ 2 Облік операцій з придбання і використання основних засобів на підприємстві 2.1 Особливості обліку основних засобів Найкращим відображенням особливостей обліку основних засобів на підприємстві є облік між головним підприємством та філією. ...
... фірм, але і для окремих користувачів. Комп'ютери стали інструментом для ведення документації і власних облікових функцій. Це все зіграло як позитивну, так і негативну роль в області розвитку баз даних. Простота, що здається, і доступність персональних комп'ютерів і їх програмного забезпечення породила безліч дилетантів. Ці розробники, вважаючи себе за знавців, почали проектувати недовговічні бази ...
... читачів на комп’ютері, в середовищі Access. 1. Розробка структурної схеми БД 1.1 Змістовна постановка задачі У даному курсовому проекті повина бути розроблена система управління базою даних бібліотеки в середовищі Access. У базі даних міститься інформація про книги, а також інформація про читача. Інформація про книги та читачів міститься в дев’яти таблицях: - Жанри книг; - Картки ...
... і працівника в поставки 3. Розробник 3.1Початок 3.2 Кінець 1.4 Висновок В результаті аналізу функціонування автоматизованої системи Розробка бази даних діяльності магазину автозапчастин" було обрано 3 функції, які охвачують дану предметну область. РОЗДІЛ 2 ПРОЕКТУВАННЯ ЛОКАЛЬНОЇ ER-МОДЕЛІ Даний розділ присвячено проектуванню локальних ER-МОДЕЛЕЙ, які відповідають окремим ...
0 комментариев