- •В.И. Швецов
- •Базы данных
- •Литература
- •4. Защита логической целостности базы данных.
- •Защита логической целостности базы данных.
- •Литература
- •3.5.1. Настольные субд
- •3.5.2. Серверные субд
- •Литература
- •Лекция 5. Первая стадия концептуального проектирования базы данных (концептуальное моделирование)
- •5.2.1 Основные этапы построения
- •5.2.3. Объединение локальных моделей
- •Литература
- •6.2.1. Сетевая модель данных
- •6.2.3. Реляционная модель данных
- •6.2.4. Многомерная модель данных
- •Литература
- •Литература
- •Лекция 8. Использование формального аппарата для оптимизации схем отношений
- •Литература
- •9.4.1. Последовательное размещение физических записей
- •Поиск записи с заданным значением ключа
- •9.4.2. Размещение физических записей в виде списковой структуры
- •9.4.3. Использование индексов (индексирование)
- •9.4.5. Размещение записей с использованием хэширования
- •9.4.6. Комбинированные структуры хранения
- •Литература
- •Литература
- •Возможные варианты использования программного обеспечения в субд ms sql Server
- •11.3.1. История возникновения и стандарты языка sql
- •11.3.2. Достоинства языка sql
- •11.3.2. Общая характеристика sql
- •Задача 2.
- •Литература
- •Задача 4.
- •Литература
- •Литература
- •Литература
11.3.2. Достоинства языка sql
Для ознакомления с достоинствами языка обратимся к соответствующей литературе [1]. Вот некоторые из них:
межплатформенная переносимость;
наличие стандартов;
одобрение и поддержка компанией IBM (СУБД DB2);
поддержка со стороны компании Microsoft (СУБД SQL Server, протокол ODBC и технология ADO);
реляционная основа;
высокоуровневая структура;
возможность выполнения специальных интерактивных запросов;
обеспечение программного доступа к базам данных;
возможность различного представления данных;
полноценность как языка, предназначенного для работы с базами данных;
возможность динамического определения данных;
поддержка архитектуры клиент/сервер;
поддержка корпоративных приложений;
расширяемость и поддержка объектно-ориентированных технологий;
возможность доступа к данным в Интернете;
интеграция с языком Java (протокол JDBC);
промышленная инфраструктура.
11.3.2. Общая характеристика sql
Язык запросов SQL основан на операциях реляционной алгебры и, таким образом ориентирован на работу с множествами (отношениями), а не с отдельными записями. Как и в реляционной алгебре, операндами языка являются отношения (таблицы), результатами выполнения операции также являются отношения (таблицы). Таким образом, язык SQL предназначен для выполнения операций над таблицами, причем как над таблицами в целом (создание, удаление, изменение структуры), так и над данными таблиц (выборка, изменение, добавление и удаление). Отметим, что в явном виде язык SQL не является универсальным языком программирования в обычном понимании. В нем отсутствуют операторы условного перехода, организации циклов, позволяющие управлять ходом выполнения программы. Поэтому язык SQL относится к классу непроцедурных языков программирования. Это именно язык запросов к базе данных, который служит исключительно для организации базы данных и работы с ней. Как уже отмечалось выше, для разработки прикладных программ необходимо использовать другие базовые средства программирования, в который операторы языка SQL будут встраиваться. Языку SQL посвящено большое количество литературы, в том числе и учебников. Подробное изучение языка SQL не входит в задачи настоящего курса, это может занимать отдельный курс. Заметим, что этому языку посвящено большое количество литературы, в том числе и учебников. В связи с этим , здесь будут изложены только общие сведения о языке, как фундаментальном инструменте работы с базами данных.
Терминология
Под запросом, реализуемым с помощью языка SQL- запросов к базе данных, понимается команда, предназначенная для выполнения (и выполняемая) системой управления базами данных определяемого этой командой действия с базой данных.
Запрос реализуется с помощью операторов языка SQL. Операторы состоят из отдельных логических частей, называемых предложениями. Стандарты языка SQL регламентируют синтаксис операторов. Несмотря на то, что язык SQL работает с реляционной базой данных, вместо термина «отношение» здесь используется термин «таблица», вместо терминов «кортеж» и «атрибут» используются соответственно термины «строка» и «столбец».
Разновидности SQL
Как отмечалось выше, в отличие от «обычных» языков программирования в SQL отсутствует возможность объявления переменных, нет инструкции IF, нет цикла FOR и т.д. Собственно программирование (разработка прикладных программ) на подобном языке практически невозможно. Поэтому к настоящему моменту используются следующие технологии (режимы) работы с базой данных на языке SQL (в некоторых источниках эти технологии называют разновидностями языка SQL):
формирование непосредственно пользователем запроса на языке SQL в интерактивном режиме (интерактивный SQL);
формирование запроса на языке SQL в прикладной программме (программный или встроенный SQL:
статическое формирование запроса (статический SQL);
динамическое формирование запроса (динамический SQL);
формирование запроса с помощью библиотек (API – интерфейсы вызова подпрограмм).
В интерактивном режиме работы с базой данных: пользователь работает с базой данных в прямом диалоге: вводит запрос на языке SQL – получает результат, вводит другой запрос – получает другой результат и т.д.
Встроенный SQL представляется операторами языка SQL, встроенные в прикладные программы, написанные на других языках программирования (в других программных средах). Это дает возможность работы с базой данных с помощью прикладных программ, написанных на других алгоритмических языках, но требует включения дополнительных средств, обеспечивающих интерфейс между операторами языка SQL и соответствующим языком программирования.
При статическом использовании языка (статический SQL) в текст прикладной программы включаются конкретные операторы SQL, и после компиляции исходной программы в выполняемый модуль жестко включаются соответствующие эти операторам функции SQL. Изменения в вызываемых функциях могут здесь определяться только изменениями параметров операторов SQL, инициируемых с помощью переменных языка программирования.
При динамическом использовании языка (динамический SQL) формирование SQL-запросов, соответствующие вызовы SQL-функций для обращения к базе данных осуществляется динамически в ходе выполнения программы.
Еще одним способом динамического формирования SQL-запросов в прикладной программе является обращение к соответствующим SQL-функциям с помощью специальных интерфейсов программирования приложений (библиотек функций, разработанных для связи прикладной программы и СУБД посредством SQL-запросов).
В настоящем пособии для всех указанных технологий (разновидностей SQL) будут приведены основные идеи и рассмотрены ключевые концепции. Интерактивный SQL будет рассмотрен более подробно, чем программный. Детальное рассмотрение статического, динамического SQL и различных API-интерфейсов (ODBC, JDBC, DB Library и др.) выходит за рамки нашего курса.
Краткие итоги: В лекции рассматриваются общие принципы организации программного обеспечения работы с реляционными базами данных, включающего
создание и ведение базы данных;
создание пользовательских приложений, включающих разработку пользовательского интерфейса по работе с базой данных.
Рассматриваются подходы к организации доступа к данным (навигационный подход и подход, основанный на использовании интерпретируемых языков запросов). Дается общее представление о языке SQL (история возникновения и стандарты языка SQL, достоинства языка SQL, основная терминология, технологии работы).
По языку SQL написано достаточно много литературы. Для более подробного знакомства можно указать, в частности [1-6].
Контрольные тесты
Задача 1. Какие основные направления использования программного обеспечения клиент-серверных СУБД?
Вариант 1.
Какие основные задачи программного обеспечения можно выделить при разработке прикладных программ, работающих с базой данных?
ð+ создание базы данных
ð+ организация работы с базой данных
ð+ создание пользовательского интерфейса
ð разработка программ СУБД
ð разработка вычислительных процедур
Вариант 2.
Что можно создавать с помощью программного обеспечения компьютера-сервера?
ð прикладную программу
ð интерфейс пользователя
ð+ базу данных
ð+ запросы к базе данных
Вариант 3.
Что можно делать с помощью программного обеспечения компьютера-сервера и компьютера-клиента?
ð+ Прикладную программу
ð+ Интерфейс пользователя
ð Базу данных
ð+ Запросы к базе данных