НЕДОСКОНАЛІСТЬ МОВИ SQL

Як зазначалося в розділі 41 цієї глави, мова SQL аж ніяк не можна назвати досконалим реляційним мовою, оскільки він має багато недоліків, викликаних численними недоробками і переробками Конкретні критичні зауваження будуть представлені в наступних розділах Відзначимо лише основний недолік, який полягає в тому, що в цілому мова SQL, строго кажучи, некоректно підтримує реляційну модель Тому виникає сумнів, чи дійсно сучасні продукти SQL заслужили право називатися реляційними Фактично, наскільки це відомо автору, на сьогоднішній день на ринку немає жодного продукту, який підтримував би реляційну модель в повному обеме6 Ми не хочемо цим сказати, що якщо сучасні продукти обходяться без якихось елементів реляційної моделі, то останні не дуже важливі навпаки, в моделі важливий кожен елемент Більше того, кожен з її елементів важливий виключно з практичних міркувань Не можна не підкреслити той незаперечний факт, що призначення реляційної теорії полягає не в тому, щоб бути просто теорією заради теорії . Зовсім ні, її призначення – закласти основу для побудови систем, які будуть практично застосовними на всі сто відсотків Але, як це не сумно, з боку виготовлювачів продуктів ще не зроблено реальних кроків до вирішення проблеми реалізації реляційної теорії у всій її повноті В результаті, з дозволу сказати, реляційні продукти сьогоднішнього дня всі як один з тих чи інших причин виявляються нездатними реалізувати переваги, які можуть бути досягнуті в результаті використання реляційної технології в пітному обсязі

47 РЕЗЮМЕ

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

Мова SQL складається з двох компонентів: мови визначення даних (Data Definition Language – DDL) і мови маніпулювання даними (Data Manipulation Language – DML) Мова маніпулювання даними може застосовуватися і на зовнішньому рівні (по

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

можливості управління даними, тобто можливості, які не можна віднести ні до мови DDL, ні до мови DML Прикладом тут може служити оператор GRANT, який одні користувачі можуть застосовувати для надання привілеїв доступу іншим користувачам системи (глава 17)

Було показано, як можна використовувати мову SQL для створення базових таблиць за допомогою оператора CREATE TABLE (Крім того, був коротко розглянуто оператор

CREATE TYPE) Потім було наведено кілька прикладів використання операторів

6 Однак див [201]

SELECT, INSERT, DELETE  і UPDATE і, зокрема, продемонстровано, як можна застосовувати оператор SELECT для реалізації реляційних операцій скорочення, проекції і зєднання Також деяку увагу було приділеноінформаційній схемі, що з безлічі зумовлених уявлень гіпотетичної схеми визначення, і можливостям мови SQL по роботі з уявленнями і транзакціями

Значна частина цієї глави була присвяченавпровадженим операторам SQL Основний задум, що лежить в основі використання впроваджених операторів SQL, називаєтьсяпринципом дворежимним,тобто принципом, відповідно до якого (наскільки це можливо) будь-який вираз SQL, яке можна використовувати інтерактивно, можна запровадити і в прикладну програму Головне виключення з цього принципу має місце у звязку з операціями многострочной вибірки, для яких потрібно використовувати курсори,дозволяють подолати розрив між можливістю вибірки даних на рівні множин в мові SQL і можливістю вибірки даних на рівні рядка в базові мови програмування, таких, наприклад, як PL / I

Далі ми обговорювали переважно питання синтаксису, в тому числі зясували призначення змінної SQLSTATE І розглянули такі оператори, як однорядковий оператор SELECT і оператори INSERT, DELETE І UPDATE, ДЛЯ яких курсор не потрібен

Потім ми звернулися до операторів, для яких дійсно вимагається використання курсору, та обговорили оператори DECLARE CURSOR, OPEN, FETCH, CLOSE, а також оператори DELETE і UPDATE з конструкцією CURRENT (У стандарті мови SQL форму цих операторів з конструкцією CURRENT називають, відповідно, позиційним оператором UPDATE і DELETE, а термін пошуковий використовують для інших форм цих операторів, відмінних від використовують CURRENT) Нарешті, ми коротко обговорили концепцію динамічного мови SQL, зокрема – оператори PREPARE і EXECUTE, а також коротко торкнулися (порівняно з ODBC і JDBC) призначення інтерфейсу рівня викликів SQL (SQL CallLevel Interface — SQL/CLI)

Джерело: Дейт К Дж, Введення в системи баз даних, 8-е видання: Пер з англ – М: Видавничий дім «Вільямс», 2005 – 1328 с: Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*