- •1.Основні поняття. Бази даних, банк даних, інформаційна система. Традиційні файлові системи. Бази даних. Системи управління базами даних (субд). Компоненти банку даних.
- •2.Розподіл обов'язків в системах з базами даних. Історія розвитку субд. Класифікація банків даних. Переваги та недоліки субд.
- •3.Середовище бази даних. Трьохрівнева архітектура ansi-spark. Зовнішній рівень. Концептуальний рівень.
- •4.Внутрішній рівень. Мови баз даних. Моделі даних і концептуальне моделювання. Функції субд. Компоненти субд.
- •5.Етап концептуального проектування. Основні поняття концептуального проектування. Концептуальне проектування. Об'єкти і їх властивості. Взаємовідношення об'єктів.
- •6.Слабкі та складні сутності. Проведення етапу концептуального проектування субд.
- •8. Реляційна модель бази даних. Історія розвитку реляційної моделі. Структура реляційних даних. Відношення в базі та їх властивості. Типи даних.
- •9. Нормалізація відношень баз даних. Нормальні форми. Цілі нормалізації. Надлишковість даних і аномалії оновлення.
- •Шоста нормальна форма.Таблиця знаходиться у 6nf, якщо вона знаходиться у 5nf та задовольняє вимозі відсутності нетривіальних залежностей. Зазвичай 6nf ототожнюють з dknf.
- •10. Аномалії вставки. Аномалії вилучення.
- •11. Функціональні залежності. Процес нормалізації. Перша нормальна форма (1нф)
- •12. Друга нормальна форма (2нф).
- •14. Нормальна форма Бойса — Кодда
- •Null-значення
- •19 Мова sql. Формат sql-операторів. Маніпулювання даними
- •1. Формат sql-операторів
- •2. Маніпулювання даними
- •2.1. Вибірка всіх рядків
- •20. Вибірка всіх рядків. Вибірка рядків (речення where). Сортування результату (фраза order by).
- •2.2. Вибірка рядків (речення where)
- •2.3. Сортування результату (фраза order by)
- •21. Використання узагальнюючих функцій мови sql
- •22. Групування результатів (фраза Group), Обмеження на виконання групування (фраза having)
- •2.6. Обмеження на виконання групування (фраза having)
- •23. Підзапити
- •25. Особливості і синтаксис речень модифікації. Речення delete. Видалення одиничного запису. Видалення множини записів. Видалення з вкладеним підзапитом.
- •26 .Речення insert.
- •1. Вставка єдиною записи в таблицю
- •2. Вставка безлічі записів
- •1. Оновлення єдиною записи
- •2. Оновлення безлічі записів
- •3. Оновлення з підзапитом
- •28.Етап фізичного проектування. Основні структури зберігання та методи доступу до даних. Основні поняття. Невпорядковані послідовні файли.
- •29. Впорядковані послідовні файли. Хешовані файли. Індексно-послідовні файли.
- •31. Розподілені бази даних. Концепція розподілених баз даних. Розподілені транзакції. Реплікація даних. Розподілена оптимізація запитів.
- •32. Експертні системи та бази знань. Призначення експертних систем. Структура експертних систем. Представлення знань в експертних системах. Поняття експертної системи. Властивості знань.
19 Мова sql. Формат sql-операторів. Маніпулювання даними
В ідеалі, будь-яка мова роботи з базами даних повинна надавати користувачу наступні можливості:
• створювати базу даних і таблиці з повним описом їх структури;
• виконувати основні операції маніпулювання даними, такі як вставка, модифікація і видалення даних з таблиць;
• виконувати прості і складні запити, що здійснюють перетворення необроблених даних в необхідну інформацію.
Крім того, мова роботи з базами даних повинна вирішувати всі вказані вище задачі при мінімальних зусиллях з боку користувача, а структура і синтаксис його команд повинні бути достатньо прості і доступні для вивчення. І, нарешті, вона повинна бути універсальною, тобто відповідати деякому визнаному стандарту, що дозволить використовувати один і той же синтаксис і структуру команд при переході від однієї СУБД до іншої. Мова SQL задовольняє практично всім цим вимогам.
SQL є прикладом мови з трансформуючою орієнтацією, або ж мови, призначеного для роботи з таблицями з метою перетворення вхідних даних до необхідного вихідного вигляду. Мова SQL має два основних компоненти:
• Мова DDL (Data Definition Language), призначена для визначення структур бази даних;
• Мова DML (Data Manipulation Language), призначена для вибірки і оновлення даних.
Мова SQL відносно проста у вивченні.
• Це не процедурна мова, тому в ній необхідно вказувати, яка інформація повинна бути одержана, а не як її можна одержати. Інакше кажучи, мова SQL не вимагає вказівки методів доступу до даних.
• Як і більшість сучасних мов, SQL підтримує вільний формат запису операторів. Це означає, що при введенні окремі елементи операторів не пов'язані з фіксованими позиціями екрану.
• Структура команд задається набором ключових слів, що є звичайними словами англійської мови — такі, як
CREATE TABLE (Створити таблицю), INSERT (Вставити), SELECT (Вибрати).
Наприклад:
CREATE TABLE staff(sno VARCHAR(5), Iname VARCHAR(15), salary DECIMAL(7,2));
INSERT INTO staff
VALUES ('SG16', 'Brown', 8300);
SELECT sno, Iname, salary
FROM staff
WHERE salary > 10000;
• Мова SQL може використовуватися широким колом користувачів, включаючи адміністраторів баз даних (АБД), керівний персонал компанії, прикладних програмістів і багатьох інших типів кінцевих користувачів.
Визначення мови SQL в стандарті ANSI передбачає розділення мови DDL на два компоненти: власне мова DDL, призначеної для визначення структури бази даних, і мови DCL (Data Control Language), що використовується для управління доступом до даних.
1. Формат sql-операторів
SQL-оператор складається із зарезервованих слів, а також із слів, визначуваних користувачем. Зарезервовані слова є постійною частиною мови SQL і мають фіксоване значення. Їх слід записувати в точності так, як це встановлено, і не можна розбивати на частини для перенесення з одного рядка в інший. Слова, визначувані користувачем, задаються самим користувачем (відповідно до певних синтаксичних правил) і є іменами різних об'єктів бази даних — таблиць, стовпців, представлень, індексів і т.д. Слова в операторі розміщуються відповідно до встановлених синтаксичних правил. Хоча в стандарті це не вказано, багато діалектів язика SQL вимагають завдання в кінці оператора деякого символу, що позначає закінчення його тексту (як правило, з цією метою використовується символ крапки з комою (;)).
Більшість компонентів SQL-операторів не чутлива до регістра. Це означає, що можуть використовуватися будь-які букви — як рядкові, так і прописні. Одним важливим виключенням з цього правила є символьні літерали-дані, які повинні вводитися точно так, як і були введені відповідні їм значення, що зберігаються в базі даних. Наприклад, якщо в базі даних зберігається значення прізвища 'SMITH', а в умові пошуку вказаний символьний літерал 'Smith', то цей запис не буде знайдений.
Оскільки мова SQL має вільний формат, окремі SQL-оператори і їх послідовності матимуть більш читабельний вигляд при використовуванні відступів і вирівнювання. Рекомендується дотримуватися наступних правил.
• Кожна фраза в операторі повинна починатися з нового рядка.
• Початок кожної фрази повинен бути вирівняно з початком решти фраз оператора.
• Якщо фраза має декілька частин, кожна з них повинна починатися з нового рядка з деяким відступом щодо початку фрази, що вказуватиме на їх підлеглість.
Для визначення формату SQL-операторів ми застосовуватимемо наступну розширену форму BNF-нотації (Backus Naur Form).
• Великі букви використовуватимуться для запису зарезервованих слів і повинні указуватися в операторах точно так, як і це буде показано.
• Малі букви використовуватимуться для запису слів, визначених користувачем.
• Вертикальна риска (|) указує на необхідність вибору одного з декількох приведених значень — наприклад, а | b | з.
• Фігурні дужки визначають обов'язковий елемент — наприклад {а}.
• Квадратні дужки визначають необов'язковий елемент — наприклад [а].
• (...) використовується для вказівки необов'язкової можливості повторення конструкції, від нуля до декількох разів — наприклад {a|b} [,с...]. Цей запис означає, що після а або b може слідувати від нуля до кількох повторень с, розділених комами.
На практиці для визначення структури бази даних (тобто її таблиць) використовуються DDL-оператори, а для заповнення цих таблиць даними і вибірки з них інформації за допомогою запитів — DML-оператори. В цьому розділі спочатку ми познайомимося з DML-операторами і лише потім звернемося до операторів мови DDL. Подібний підхід відображає велику важливість DML-операторів з погляду рядового користувача.