Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / Л-4 - Структурир язык запросов SQL

.pdf
Скачиваний:
12
Добавлен:
28.06.2021
Размер:
310.16 Кб
Скачать

Структурированный язык запросов SQL

Общие сведения и стандарты SQL Соглашения синтаксиса

Состав языка SQL Процедурные расширения SQL

Общие сведения об SQL (1)

SQL (Structured Quyery Language) – язык структури-

рованных запросов («эс-ку-эл», а не «сиквел», хотя приверженцы спорят) – стандартный язык, специально предназначенный для работы с реляционными БД.

SQL позволяет создавать базы данных, добавлять новые данные, сохранять данные и получать выборки данных.

Запрос – вопрос, задаваемый базе данных. Если какиелибо данные базы удовлетворяют условиям запроса, то они будут возвращены.

Общие сведения об SQL (2)

SQL – непроцедурный (декларативный) язык. Он позволяет сформулировать, какой результат необходимо получить, но не объясняет, как его достичь.

Стандартные реализации SQL не имеют программных конструкций, являющихся фундаментальными для других ЯП. Поэтому SQL на самом деле представляет собой подъязык данных.

Даже с расширениями, добавленными в 1999, 2003, 2005 и 2008 гг., для создания полноценного приложения все равно приходится использовать SQL в сочетании с про-

цедурным языком (например, C#).

Краткая история SQL (1)

В конце 1970-х в IBM разработали экспериментальную реляционную БД System/R. Для работы с данными в нее включили язык SEQUEL (Structured English QUEry Language – структурированный англ. язык запросов).

Позже выяснилось, что SEQUEL является уже зарегистрированной торговой маркой. Поэтому аббревиатуру SEQUEL сократили до SQL.

Новые коммерческие СУБД Oracle (Relational Software), INGRES (Relational Technology), SQL/DS (реляцонная СУБД IBM 1982 г.) имели в своем составе подъязык данных SQL.

Краткая история SQL (2)

Термин реализация используют при упоминании каждой версии SQL от разных поставщиков (Oracle 11g, Oracle 12c, MS SQL Server 2008 R2, MS SQL Server 2012 и MS SQL Server 2015 – имеют разные реализации SQL).

Производители других СУБД выпустили свои версии SQL. Их реализации имели все основные возможности продуктов IBM, а также расширения, дающие преимущества сильным сторонам своих РСУБД.

В результате, хотя почти все поставщики и использовали варианты одного языка SQL, платформенная совмести-

мость была слабой.

Достоинства языка SQL

Независимость от конкретной СУБД

Наличие стандартов

Декларативность

Независимость от конкретной СУБД

Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своем тексты SQL-запросов, содержащие DDL и DML, могут быть легко перенесены из одной СУБД в другую.

Есть системы, разработчики которых изначально ориентировались на применение нескольких СУБД (система электронного документооборота Documentum работает с

Oracle Database, Microsoft SQL Server и DB2).

Естественно, что при применении некоторых специфичных для реализации возможностей такой переносимости добиться уже очень трудно.

Наличие стандартов

Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту способствует

стабилизации языка.

С другой стороны, сами стандарты местами чересчур формализованы и раздуты в размерах (базовая часть стандарта SQL:2003 состоит из более чем 1300 страниц текста).

Декларативность

С помощью SQL программист описывает только то, какие данные нужно извлечь или модифицировать. Как это сделать, решает СУБД непосредственно при обработке SQL-запроса.

Однако это не универсальный принцип – программист описывает набор данных для выборки или модификации, но ему полезно представлять, как СУБД будет разбирать текст его запроса.

Чем сложнее запрос, тем больше он допускает вариантов написания, различных по скорости выполнения, но одинаковых по итоговому набору данных.

Недостатки языка SQL

Несоответствие реляционной модели данных

Сложность

Отступления от стандартов

Сложность работы с иерархическими структурами