- •9. Організація баз даних
- •1. Файлові системи. Особливості та недоліки використання традиційних файлових систем.
- •2. Системи керування баз даних. Основні компоненти і функції сучасних скдб.
- •3. Концептуальна модель даних. Сутність, атрибут, в’язок. Діаграма «сутність-зв’язок».
- •4. Реляційна модель даних та її аспекти. Поняття відношення.
- •5. Основні поняття реляційної моделі даних. Тип даних, домен, кортеж, атрибут, кардинальність, степінь відношення. Схема відношення та бази даних.
- •6. Властивості відношень.
- •7. Цілісність бази даних. Первинний та зовнішній ключ.
- •9. Створення запиту. Поняття вибірки. Оператор select та приклади його використання.
- •10. Реляційна алгебра і реляційне числення. Основні операції реляційної алгебри.
- •11. Агрегатні функції.
- •12. Операції з’єднання відношень.
- •13. Створення базових відношень за допомогою оператора create table.
- •14. Обмеження відношень.
- •15. Групування даних таблиці за допомогою директив order by і group by.
9. Створення запиту. Поняття вибірки. Оператор select та приклади його використання.
Назва мови запитів SQL є англійською абривіатурою слів, що перекладаються як Структурована Мова Запитів. Ця назву вона одержала не дарма, адже Запити — ймовірно найбільш часто використовуваний аспект SQL. Найбільша частина користувачів SQL пользователей найчастіве використовують цю мову саме для створення запитів. Тому сьогодні розглянемо SQL з точки зору запиту і того як він виконується в цій мові.
Запит — команда яку користувач віддає своїй СКБД, і яка повідомляє їй, яку інформацію потрібно вивести з таблиць у пам’ять. Ця інформація звичайно надсилається безпосередньо на екран комп’ютера, хоча в більшості випадків, її можна також передати принтеру, зберегти у файлі (как об’єкт у пам’яті комп’ютера), або надати як вихідну інформацію для іншої команди або процеса.
Всі запити в SQL складаються з одиночної команди, структура якої оманливо проста, тому що її потрібно розширяти таким чином щоб виконати складні оцінки і обробки даних. Ця команда називається — SELECT (ВИБІР).
У найпростішій формі, команда SELECT просто дає інструкції базі даних щоб вибрати інформацію з таблиці. Например, можна було б вивести повний вміст таблиці STUDENTS надрукувавши наступне:
SELECT snum, sname, syear, sgrup
FROM Students;
Якщо ВИ хочете бачити кожен стовпець таблиці, існує необов’язкове скорочення. Зірочка (*), яке може використовуватися для виведення повного списку стовпців наступним чином:
SELECT * FROM Students;
В загальному випадку, команда SELECT починається з ключового слова SELECT, за яким стоїть пропуск. Після цього повинен стояти список імен стовпців, які потрібно вибрати, відокремлених комами. Ключове слово FROM, що йде далі, супроводжується пропуском і іменем таблиці, до якої робиться запит. В кінці ставиться крапка з комою (;).
Таблиці мають тенденцію ставати дуже великими, оскільки з чаосм до них дадається все більше і більше рядків, з яких користувача цікавлять лише деякі. SQL дає зможливість встанаовлювати критерії для визначення рядків, що будуть обрані для виведення.
WHERE — пропозиція команди SELECT, яка дозволяє устанавлювати логічні функції (предикати), умова яких може бути істиним або хибним для будь-якої таблиці. Команда вибирає лише ті рядки, для яких таке твердження вірне.
SELECT *
FROM Students
WHERE syear=1984;
Синтаксис директиви WHERЕ дозволяє вказувати після імені стовпчика оператор порівняння, а потім вказувати значення. У наведеному вище прикладі використовується лише рівність. Але можна застосовувати також інші оператори порівняння після WHERE:
!= ,<> не рівно
<, >,<=, >= менше, більше, менше рівне, більше рівне
LIKE-рівне фрагментові тексту.
10. Реляційна алгебра і реляційне числення. Основні операції реляційної алгебри.
В маніпуляційній складовій реляційної моделі даних визнаяаються два базові механізми маніпулювання реляційними даними: основана на теорії множин реляційна алгебра і реляційне числення, що базується на математичній логіці (вірніше, на численні предикатів першого порядка). Всі ці механізми володіють однією важливою властивістю: вони замкнені відносно поняття відношення. Це означає, що вирази реляційної алгебри і формули реляційного числення визначаються над відношеннями реляційни БД і результатами обчислень також є відношення. Як наслідок, будь-який вираз або формула можуть інтерпретуватися як відношення, що дозволяє використовувати їх в інших виразах або формулах.
Основна ідея реляційної алгебри полягає в тому, що оскільки відношення є множинами, засоби маніпулювання відношеннями можуть базуватися на традиційних теоретико-множинних операціях, додатково до деяких спеціальних операцій, специфічних для баз даних. Набір основних алгебраічних операцій, запропонований Коддом, складається з восьми операцій, які діляться на два класи, - теоретико-множинні операції і спеціальні реляційні операції. До складу теоретико-множинних операцій входять операції:
обєднання відношень;
перетин відношень;
взяття різниці відношень;
Декартовий добуток відношень.
Спеціальні реляційні операції включають:
обмеження відношення;
проекція відношення;
зєднання відношень;
ділення відношень.
Крім того, до складу алгебри входить операція присвоювання, що дозволяє зберігати в базі даних результати обрахунку алгебраїчних виразів, і операція перейменування атрибутів, яка дає можливість коректно сформувати заголовок (схему) результуючого відношення.
При виконанні операції обєднання двох відношень одержується відношення, щ містять всі кортежі, що входять хоча б в одне з відношень-операндів. Операція перетину двох відношень дозволяє одержати відношення, що включає всі кортежі, які входять до обох відношень-операндів. Відношення, що є різницею двох відношень, включає всі кортежі, що входять у відношення - перший операнд; такі, що жоден з них не входить у відношення, яке є другим операндом. Результат операцій: відношення. При виконанні цієї операції необхідно памятати про сумісність відношень по об’єднанню: два відношення сумісні по об’єднанню в тому і лише в тому випадку, коли володіють однаковими заголовками.Вибірка (обмеження). Результатом обмеження відношення за деякою умовою є відношення, що містить кортежі відношення-операнда, яке задовольняє цій умові.
При виконанні проекції відношення на заданий набір його атрибутів одержується відношення, кортежі якого одержуються шляхом взяття відповідних значень з заданих стовпців кортежів відношення-операнда.
При зєднанні двох відношень за деякою умовою утворюється результуюче відношення, кортежі якого є конкатенацією кортежів першого і другого відношень і задовольняють цій умові.
У операції реляційного ділення два операнди - бінарне і унарне відношення. Результуюче відношення складається з одноатрибутних кортежів, що містять значення першого атрибута кортежів першого операнда таких, що множина значень другого атрибута (при фіксованому значенні першого атрибута) співпадає з множиною значень другого операнда.