Структура мови SQL-92.

SQL 92 складається з двох основних компонентів:

-мова DDL (Data Definition Language), призначений для визначення структур бази даних;

-мова DML (Data Manipulation Language), призначений для вибірки і відновлення даних.

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

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

Механізм відображень може використовуватися з кількох причин.

-надає гнучкий механізм захисту за рахунок приховання деяких частин бази даних від визначених користувачів.

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

Одні і ті ж самі дані в той самий час можуть розглядатися різними користувачами зовсім різними способами.

-дозволяє спрощувати складні операції з базовими відношеннями.

Наприклад, якщо відображення буде визначено на основі з'єднанні двох відношень, то користувач зможе виконувати над ним прості унарні операції вибірки і проекції, що будуть автоматично перетворені засобами СУБД в еквівалентні операції з виконанням з'єднання базових відношень.

10.3. Основні оператори мови DML.

-SELECT — виборка данних із БД:

SELECT <предикат> <P1, P2 AS new_name,...> Виборка з перейменуванням
SELECT <предикат> YEAR(Дата) AS Rik, MID(P1,1,5) AS PS,... В тілі речення можуть вживатись функції. По умовчаню більшість SQL-мов підтримують лише 6 агрегатних функцій. Для використання інших функцій необхідно виконати налаштування SQL-сервера IB,FB та інших.
  Предикати речення SELECT: - ALL– включити до результуючого набору всі записи - DISTINCT- включити до результуючого набору записи, у яких значення у вибраних полях не повторюються - DISTINCTROW(дістінкгроу)- включити до результуючого набору записи, у яких значення всіх полів не повторюються - TOP n- включити до результуючого набору n-записів

 

Оператор мови SQL складається з речень. Приведені вище оператори також одночасно є першими реченями відповідних операторів мови SQL. До їх складу також можуть входити інші речення:

-FROM –визначає джерело даних запиту в цілому (обов’язкове)

FROM T1  
FROM T1,T2 Декартовий добуток, якщо відсутнє речення WHERE
FROM T1 INNER JOIN T2 ON T1.P1 = T2.P1 Прпироднє з’єднання
FROM T1 LEFT JOIN T2 ON T1.P1 = T2.P1 Ліве відкрите з’єднання
FROM T1 RIGHT JOIN T2 ON T1.P1 = T2.P1 Праве відкрите з’єднання

-WHERE (веа)<предикат> -речення умови виборки (необов’язкове)

WHERE Ціна > 100  
WHERE Дата BETWEEN D1 AND D2 вибираються записи, в яких значення поля Дата приймає значення в діапазоні D1-D2 включно
WHERE Назва LIKE *ПК* Вибираються записи, в яких значення поля Назва включають підрядок ‘ПК’
WHERE Місяць IN (1;3;9) Вибираються записи, для яких поле Місяць приймає значення 1,3 та 9
WHERE Дата = #5/10/96#; Використовує американський стандарт дати 5.10.1996 чи 10.5.1996

-ORDER BY(ордер бай) <> - речення порядку сортування (необов’язкове)

ORDER BY P1 ASC, P2 DESC Сортувати результуючий набір по зростаню значень поля P1 і вседені однакових груп поля P1 по спаданю значень поля P2. Предикат ASC (від "A" до "Я" і від 0 до 9) необовязковий DESC (від "Я" до "A" і від 9 до 0)

-GROUP BY <> -речення групування (необов’язкове)

Використовується разом з агрегатними функціями

 

GROUP BY <список полів групування> вказуються поля по яких виконується групування
SELECT P1, Sum(SDEB) AS SD FROM DEP_SUM GROUP BY P1; Обчислення результуючої суми з групуванням по полю P1. Можуть використовуватись наступні функції групування: SUM(P1),MAX(P1),MIN(P1),FIRST(P1),COUNT(каунт)(P1), AVG(P1)

 

-NAVING(невінг) <предикат> - речення умови виборки для результату групування (необов’язкове)

HAVING Sum(Ціна*Кількість) > 100 Це речення може містити до 40 виразів звязаних логічними операторами AND або OR

10.4 Зміна вмісту бази даних. Запити на оновлення даних

-INSERT INTO (інсерт інту)— вставка данних в таблицю:

INSERT INTO T1 (KPIDR,NPIDR) SELECT NFAK, NAMF FROM T2; Формат, що забезпечує вставку з іншої таблиці
INSERT INTO T1 (KPIDR,NPIDR) VALUES (велуєс) (12,”ФКСП”) Формат, внесення константи

 

-UPDATE (апдейт)— оновлення данних в таблиці

UPDATE T1 SET P1=<нове значення>,P2=<нове значення>; Формат оператора редагування
UPDATE T1 SET P1=<нове значення> WHERE <предикат>; Найбільш вживаніший формат

 

-DELETE — видаленя данных із таблиці.

DELETE FROM T1; Знищує всі записи таблиці
DELETE FROM T1 WHERE <предикат>; Найбільш вживаніший формат

Є ще одна стандартна мова роботи з базами даних — Network Database Language (NDL), яка побудована на використані мережевої моделі, але має обмежене застосуваня.

 

Прості запити. Сортування результатів.

Агрегатні функції. Запити з групуванням.

Складні запити. Підзапити.

Ключові слова ANY і ALL. Багатотабличні запити.

Ключові слова EXISTS і NOT EXIST.

Комбінування результуючих таблиць (операції UNION, INTERSECT і EXCEPT).

10.5. Оператори адміністрування:

 

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

 

GRANTSELECTON VIDDIL TO BANK;- надати право SELECT (виборки, а ще можуть бути: INSERT-вставки,UPDATE-редагування,DELETE-видалення) до об’єкта БД VIDDIL(таблиця, представлення)об’єктуBANK(роль, користувач, процедура, тригер)

GRANT EXECUTE ON PROCEDURE NPERIOD TO BANK; - надати право EXECUTE (запуску) процедури NPERIOD об’єкту BANK

 
 

Рис. 7.11.1 Основні етапи процесу оптимізації запитів

10.63. Загальний огляд методів обробки запитів.

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

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

На стадії аналізу виконується лексичний та синтаксичний аналіз запиту з використанням методів, що використовуються в компіляторах мов програмування високого рівня.

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

 

 

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

SELECT P1,P2 /4 AS PP2

FROM T2

WHERE P5 > 10;

 

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


 

 

10.7. Архітектура клієнт-сервера і мова SQL.

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

У прикладній програмі, що працює на клієнтському комп'ютері, створюються команди SQL. Та частина системи СУБД, яка знаходиться на клієнтському комп'ютері, передає ці команди на сервер по каналу зв'язку, що з'єднує сервер з клієнтом. А та частина СУБД, яка знаходиться на сервері, інтерпретує і виконує отриману команду SQL, а потім по каналу зв'язку відправляє результати назад до клієнта.

Такого роду система дозволяє ефективніше використовувати пропускну здатність каналу зв'язку.

Архітектура клієнт-сервер, доповнюючи характеристики SQL, дає можливість у малих, середніх і великих мережах отримувати досить високу продуктивність при помірних витратах.