Главная страница

В. И. Швецов Базы данных


Скачать 8.45 Mb.
НазваниеВ. И. Швецов Базы данных
АнкорV_I_Shvetsov_Bazy_dannykh.doc
Дата20.12.2017
Размер8.45 Mb.
Формат файлаdoc
Имя файлаV_I_Shvetsov_Bazy_dannykh.doc
ТипУчебное пособие
#12252
страница18 из 24
1   ...   14   15   16   17   18   19   20   21   ...   24

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.

Что можно делать с помощью программного обеспечения компьютера-сервера и компьютера-клиента?
ð+ Прикладную программу

ð+ Интерфейс пользователя

ð Базу данных

ð+ Запросы к базе данных
Задача 2.
Вариант 1.

Какие средства программирования могут быть использованы для ведения баз данных на сервере SQL-Server?
ð+ MS SQL-Server

ð библиотеки функций

ð+ Transact SQL

ð MS Acces

ð MS Visual Basic

Вариант 2.

Какие средства программирования могут быть использованы для разработки клиентской части?
ð+ библиотеки функций

ð+ Transact SQL

ð+ MS Acces

ð+ MS Visual Basic

ð+ MS Visual Studio

Вариант 3.

Операторы каких средств программирования могут быть использованы как в серверной так и в клиентской части?
ð библиотеки функций

ð+ Transact SQL

ð MS Acces

ð MS Visual Basic

ð MS Visual Studio

Задача 3. В чем состоит отличие процедурного языка программирования от языка
запросов при работе с таблицами?

Вариант 1.

Как формулируется алгоритм работы с таблицей с помощью процедурного языка программирования?
ð+ как последовательность движений по таблице с выполнением других необходимых действий

ð как указание выбрать данные, удовлетворяющие заданным условиям

ð+ осуществлением навигации по таблице

ð+ как последовательная работа с отдельными записями таблицы

Вариант 2.

Как формулируется алгоритм работы с таблицей с помощью языка запросов?
ð как последовательность движений по таблице с выполнением других необходимых действий

ð+ как указание выбрать данные, удовлетворяющие заданным условиям

ð осуществлением навигации по таблице

ð как последовательная работа с отдельными записями таблицы

Вариант 3.

Как осуществляется работа с таблицами при взаимодействии компьютера-клиента с сервером?
ð путем навигации по таблице

ð с помощью процедур

ð+ с помощью запросов

ð с помощью языков программирования
Задача 4. Почему необходимо иметь стандарт языка?
Вариант 1.

Что достигается введением стандарта языка ?
ð+ единообразие возможностей работы с базами данных в разных СУБД

ð+ создание прототипа описания языка запросов к базе данных

ð+ создание условий для устранения разных реализаций аналогичных операций с базой данных в разных СУБД

ð полная унификация языков запросов в разных СУБД

Вариант 2.

Что реализовано в современных СУБД?
ð стандарт языка запросов

ð+ диалект языка запросов

ð+ основные положения стандарта языка запросов

ð+ ядро стандарта языка запросов

Вариант 3.

Как связаны диалект языка и стандарт языка?
ð+ диалект языка игнорирует некоторые положения стандарта

ð+ имеются положения диалекта языка, не входящие в стандарт языка

ð+ имеются положения стандарта языка, не входящие в диалект языка

ð диалект языка является конкретной реализацией всех положений стандарта языка


Задача 5. Основные свойства языка запросов SQL

Вариант 1.

Каковы основные достоинства языка SQL?
Универсальный язык программирования

ð+ наличие стандарта

ð+ реляционная основа

ð+ поддержка архитектуры клиент-сервер

ð+ использование во многих СУБД

ð использование для разработки прикладных программ

Вариант 2.

Что является операндами в операторах языка SQL?
ð+ отношение

ð кортеж

ð домен

ð атрибут

Вариант 3.

Что является результатами выполнения операторов языка SQL?
ð+ отношение

ð кортеж

ð домен

ð атрибут

Задача 6. Как осуществляется работа с интерактивным SQL?

Вариант 1.

Как пользователь работает с интерактивным SQL?
ð вставляет текст на языке SQL в прикладную программу

ð+ вводит непосредственно запрос на языке SQL

ð обращается к языку SQL из прикладной программы

ð+ вводит последовательно несколько запросов к базе данных на языке SQL

Вариант 2.

Как пользователь получает результат запроса к базе данных при работе с интерактивным SQL?
ð результат получает прикладная программа

ð+ результат выдается непосредственно пользователю после выполнения каждого оператора

ð результат выводится в нужном пользователю виде

ð результат выдается непосредственно пользователю после выполнения всей последовательности операторов

Вариант 3.

Как пользователь не может работать с интерактивным SQL?
ð+ Вставлять текст на языке SQL в прикладную программу

ð Вводить непосредственно запрос на языке SQL

ð+ Обращаться к языку SQL из прикладной программы

ð Вводить последовательно несколько запросов к базе данных на языке SQL

Задача 7. Как осуществляется работа с встроенным статическим SQL?
Вариант 1.

Как пользователь работает с встроенным статическим SQL?
ð+ вставляет текст на языке SQL в прикладную программу

ð вводит непосредственно запрос на языке SQL

ð текст запроса формируется прикладной программой

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

Вариант 2.

Как пользователь получает результат запроса к базе данных при работе с встроенным статическим SQL?
ð+ результат получает прикладная программа

ð результат выдается непосредственно пользователю после выполнения каждого оператора

ð+ результат обрабатывается прикладной программой и выводится в нужном пользователю виде

ð результат выдается непосредственно пользователю после выполнения всей последовательности операторов запроса

Вариант 3.

Как пользователь не может работать с встроенным статическим SQL?
ð вставлять текст на языке SQL в прикладную программу

ð+ вводить непосредственно запрос на языке SQL

ð обращаться к языку SQL из прикладной программы

ð+ формировать текст запроса работой прикладной программы


Задача 8. Как динамически осуществляется работа с SQL?
Вариант 1.

Как пользователь работает с встроенным динамическим SQL?
ð вставляет текст на языке SQL в прикладную программу

ð вводит непосредственно запрос на языке SQL

ð+ текст запроса формируется прикладной программой

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

Вариант 2.

Как пользователь получает результат запроса к базе данных при работе с встроенным динамическим SQL?
ð+ результат получает прикладная программа

ð результат выдается непосредственно пользователю после выполнения каждого оператора

ð+ результат обрабатывается прикладной программой и выводится в нужном пользователю виде

ð результат выдается непосредственно пользователю после выполнения всей последовательности операторов запроса

Вариант 3.

Как пользователь может работать с SQL, в условиях необходимости динамического формирования запроса во время выполнения прикладной программы?
ð вставлять текст на языке SQL в прикладную программу

ð+ использовать интерфейсы вызова подпрограмм

ð обращаться к языку SQL из прикладной программы

ð+ формировать текст запроса работой прикладной программы

Литература


  1. Грофф Дж., Вайнберг П. Энциклопедия SQL. 3-е изд. СПб.: Питер, 2003.

  2. Грабер М. SQL. Справочное руководство. – М: Лори, 1997. – 291с.

  3. Грофф Дж., Вайнберг П. SQL: полное руководство: Пер. с англ. – К.: Издательская группа BHV, 2000. – 608 с.

  4. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для вузов. – СПб.: КОРОНА принт, 2000. – 416 с.

  5. Реализация баз данных Microsoft SQL Server 7.0 Учебный курс: официальное пособие Microsoft для самостоятельной подготовки. М.: Издательско-торговый дом «Русская редакция», 2000.

  6. Карпова Т. Базы данных. Модели, разработка, реализация. – СПб.: Питер, 2001. – 304 с.


Лекция 12. Основные операторы языка SQL.
Интерактивный SQL

В лекции дается общая характеристика операторов языка SQL, используемых, в частности, для работы с базой данных в интерактивном режиме (создание таблиц, выбор информации из таблиц, добавление, удаление и модификация элементов). Приводятся примеры запросов к базе данных на языке SQL.

Ключевые термины: язык SQL, интерактивный SQL, интерактивный режим работы с SQL, операторы SQL, select, insert, update,delete.

Цель лекции: дать общую характеристику операторов языка SQL и показать, как записываются основные запросы к базе данных на языке SQL (в интерактивном режиме).
12.1. Общее представление об основных операторах языка SQL

Как уже отмечалось в лекции 11, все операторы языка SQL разделяются на три составные части: DDL – язык определения данных, DCL – язык управления данными, DML – язык обработки данных.

Приведем примеры основных операторов из вышеуказанных частей (без описания синтаксиса). Описание синтаксиса операторов SQL можно посмотреть в многочисленных книгах по языку SQL, в меню «Справка» конкретных СУБД.

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

GRANT – создание в системе безопасности записи, разрешающей пользователю работать с данными или выполныять определенные операции SQL

DENY - создание в системе безопасности записи, заперщающей доступ для определенной учетной записи.

Операторы определения данных (язык DDL).

Соответствующие операторы предназначены для создания, удаления, изменения основных объектов модели данных релюционных СУБД: таблиц, представлений, индексов.

CREATE TABLE <имя> - создание новой таблицы в базе данных.

DROP TABLE <имя> - удаление таблицы из базы данных.

ALTER TABLE<имя> - изменение структуры существующей таблицы или ограничений целостности, задаваемых для данной таблицы.

При выполнении аналогичных операций с представлениями или индексами в указанных операторах вместо служебного слова TABLE записывается слово VIEW (представление) или слово INDEX (индекс)
1   ...   14   15   16   17   18   19   20   21   ...   24


написать администратору сайта