
Краткий обзор языка sql.
SQL–StructuredQueryLanguage. Структурированный язык запросов. Это слабоструктурированный язык программирования, предназначен для выборки и обработки информации, содержащейся в реляционных БД.
SQLявляется слабоструктурированным языком по сравнению с высокоуровневыми языками программирования. ИнструкцииSQLсодержат английские предложения, в которых не все слова влияют на смысл. В нём отсутствуют возможности по организации циклов и операторы сравнения (case,if).
SQLне является СУБД и не распространяется как отдельный программный продукт.
Состав SQL:
Ядро БД является сердцем СУБД и отвечает за физическое структурирование данных, запись и чтение данных на диск. К ядру БД передаются непосредственные инструкции SQLв виде отдельных строк. СтандартSQLобразует однобазовую архитектуру СУБД без подразделения её на различные БД, т.е. все таблицы хранятся в одном файле.
Многобазовая архитектура позволяет хранить различного назначения в отдельных БД.
Каталоговая архитектура, в которой БД организуется как древовидная структура каталогов.
Схема SQLявляется описанием структуры БД с описанием взаимосвязей всех объектов.SQL является «контейнером», содержащим описание следующих объектов БД:
Таблиц и связанных с ними структурами
Представлений – виртуальных таблиц на основе запросов
Доменов – пользовательских типов данных с дополнительными ограничениями
Утверждений, являющихся условием целостности БД
Привилегий, предоставляемых пользователям на доступ к данным и обновлениям
Наборов символов, предназначенных для задания правил сортировки пакета
Порядки сортировки, для задания правил сортировки текста
Правила конвертирования текста
Алгоритм взаимодействия СУБД с SQL:
Программа получает доступ к БД путём вызова одной или нескольких API-функций
Для пересылки инструкций SQLв СУБД программа формирует инструкцию в виде текстовой строки и присваивают её в качестве параметраAPI-функции
Программа вызывает API-функции для проверки состояния переданной в СУБД инструкции и обрабатывает ошибки
При организации SQL-запроса программа записывает результат в свои переменные (при одном запросе возвращается 1 строка, либо столбец)
Обращение к БД программа заканчивает вызовом API-функции, отключающей её от СУБД.
Протокол ODBC – Open Data Base Connectivity. Открывает доступ к БД, предназначен для организации универсального программного интерфейса доступа к БД. Реализован в виде отдельного драйвера, учитывающего специфические функции конкретных СУБД.
При вызове функции ODBCинструкцииSQLявляются её аргументами.
ODBCсостоит из 3-х уровней:
Интерфейс вызовов функций – реализован в виде библиотеки .dll
Драйверы ODBC– для организации трансляции стандартных функцийODBCк СУБД
Диспетчер драйверов – обеспечивает загрузку и выгрузку драйверов по запросам приложений
Основные возможности SQL:
Извлечение из БД содержащейся в ней информации.
Изменение БД, т.е. добавление, удаление или обновление данных.
Изменение структуры объектов БД и установление отношений между элементами.
Управление доступом.
Организация совместного использования данных за счёт координации параллельно работающих пользователей.
Обеспечение целостности данных, т.е. защита от разрушения, несогласованных изменений или отказа системы.
В SQLотсутствуют инструкции выбора и организаций переходов. Невозможно создавать циклы.SQLформирует инструкции, которые встраиваются в базовый язык или используются в качестве аргументов специальной функцииAPI–ApplicationProgramInterface. Ядро БД отвечает за физическое структурирование, запись и чтение, аSQLпередаёт ему инструкции.
Достоинства SQL:
Реляционная основа
Независимость от конкретных СУБД
Межплатформенная переносимость
Поддержка официальных информационных стандартов
Поддержка Microsoft в виде ODBC и ADO(Active Data Object)
Интеграция с языком Java(JDBC)
Архитектура клиент-сервер
Объектно-ориентированные технологии
Инструкции SQLвыглядят как обычные английские предложения и облегчают создание интерактивных запросов
Динамическое определение данных
Совместное использование в различных информационных сетях
Стандарты SQLреализованы основными производителями программного обеспечения
Высокоуровневая структура
Доступ к данным в среде Интернет