Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по БД. Тема 4..doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
249.34 Кб
Скачать

Тема 4 – Языки работы с базами данных.

SQL.

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

Язык SQL разработан в середине 70-х годов научно-исследовательской лабораторией фирмы IBM в рамках проекта реляционной СУБД System R. Исходное название языка – SEQUEL (Structured English QUEry Language). Язык основан на реляционном исчислении с переменными кортежами. Кроме основных операторов формулирования запросов и манипулирования БД, он включал также средства описания и изменения схемы БД, определения ограничений целостности, защиты доступа (авторизации) к отношениям и их полям, получения точек сохранения транзакций, выполнения откатов и прочее.

Постепенно SQL был взят на вооружение различными организациями и фирмами-разработчиками ПО и появились стандарты SQL следующих организаций: ANSI (American National Standards Institute – Американский Национальный Институт Стандартов), SAG (SQL Access Group), X/Open (группа стандартов для UNIX), ISO (International Standard Organization – Международная организация по стандартизации), федерального правительства США, а также фирмы IBM.

Наиболее широко используемыми стандартами являются стандарт 1989 года ANSI SQL-89 и стандарты 1992 года: ANSI SQL-92 и ISO SQL-92.

Стандарт ANSI SQL-89 описывает три варианта использования SQL (три интерфейса): «модульный язык», «встроенный SQL» и «непосредственный вызов».

Модульный язык предусматривает возможность создания процедур, вызываемых из программ на традиционных языках программирования (С, Кобол, Фортран и другие).

Встроенный SQL предусматривает включение в программы на обычных языках программирования SQL-операторов. Совокупность SQL-операторов называют HOST-языком. Обработка программы с использованием SQL-операторов происходит в два этапа: сначала работает препроцессор, преобразующий SQL-операторы в некоторые команды языка программирования с учетом используемой СУБД, а затем – обычный компилятор с основного языка программирования. При включении SQL-операторов используется статический метод, означающий полное определение параметров операторов до выполнения программы.

Интерфейс на уровне непосредственных вызовов отличается от встроенного SQL тем, что исключена предварительная обработка препроцессором и используются внешние библиотеки функций.

Основной набор операторов SQL включает операторы определения схемы БД, выборки и манипулирования данными, управления транзакциями, авторизации доступа к данным, поддержки встраивания SQL в системы программирования и другие вспомогательные средства.

Несмотря на широкий набор возможностей, этот стандарт обладал функциональной неполнотой. Работа над SQL была продолжена, что привело к появлению в 1992 г. новых стандартов. Получили широкое применение и оказались по сути эквивалентными стандарты ISO SQL-92 и ANSI SQL-92.

Стандарт SQL-92 поддерживается практически всеми современными программами работы с базами данных. Он расширяет функции предыдущего стандарта, а главное, – предусматривает динамический SQL. Отличием динамического метода выполнения SQL-операторов от статического является то, что параметры SQL-операторов определяются непосредственно при выполнении программы. Несмотря на некоторое снижение быстродействия выполнения программы, динамический метод выполнения SQL-операторов позволяет повысить гибкость работы с базами данных и повысить независимость приложений от типов баз данных.

С принятием этого стандарта начата работа над новым стандартом SQL3.

Стандарт языка SQL3 разрабатывался ANSI совместно с ISO. Более точно: комитетом ХЗН2 по стандартам в области синтаксиса и семантики языков баз данных института ANSI (ANSI ХЗН2) и рабочей группой WG3 по базам данных подкомитета SC21, занимающегося взаимосвязью открытых систем, управлением данными и открытой распределенной обработкой, Объединенного комитета Международной организации по стандартизации и Международной электротехнической комиссии (ISO/IEC JTCI). Кроме того, на разработку стандарта оказывали влияние организации, работающие в области объектно-ориентированных технологий, в частности: консорциум поставщиков программного обеспечения объектно-ориентированных баз данных ODMG (The Object Database Management Group) и консорциум по программному обеспечению, разрабатывающий спецификации объектно-ориентированных интерфейсов OMG (Object Management Group).

Текущий проект SQL3 практически полностью включает спецификацию SQL2, а также содержит ряд новых возможностей, в том числе две весьма существенных: объектные функциональные возможности и средства обеспечения вычислительной полноты языка – Управление хранимыми процедурами PSM (Procedure Storage Management).

К новой объектной возможности SQL3 прежде всего относится обеспечение объектной ориентированности таблиц БД. По сравнению с обычными реляционными таблицами теперь строки таблиц могут содержать абстрактные типы данных (АТД) и ссылки на АТД из других строк, а также иметь однозначные идентификаторы (вместо поиска строки по значениям). Поддержка АТД предусматривает средства определения типов и методов доступа к ним, аналогичных объектно-ориентированным языкам программирования типа С++, Smalltalk, Ada и других.

Хранимые процедуры ­­­­– это группы выполняемых операторов, которые хранятся не в приложении, а в базе данных. К разрешенным внутри хранимых процедур операторам относятся: операторы SQL, арифметические операторы, операторы передачи управления, описания функций и т. д.