Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИС. Систематизация и хранение информации. Базы....doc
Скачиваний:
6
Добавлен:
03.12.2018
Размер:
145.92 Кб
Скачать

Язык sql

Сами по себе данные, сосредоточенные в базе данных, не представляют интереса для пользователя, если отсутствуют средства доступа к ним. Доступ к данным осуществляется в виде запросов к базе данных, которые формулируются на стандартном языке запросов. Сегодня для большинства СУБД таким языком является SQL (Structured Query Language — структурированный язык запросов). Появление и развитие этого языка как средства описания доступа к базе данных связано с созданием теории реляционных баз данных.

История SQL началась в 70-х годах в IBM Research Laboratory в Сан-Хосе, где Э. Ф. Кодд и другие сотрудники лаборатории разработали реляционную модель баз данных, на основе которой со временем была создана СУБД DB2. По мере широкого распространения в 80-х реляционных баз данных SQL стал применяться в коммерческих информационных технологиях. В 1986 году Американский национальный институт по стандартам и Международная организация по стандартам утвердили первый стандарт на этот язык.

В середине 80-х годов компании Oracle и Sybase выпустили первые коммерческие системы управления базами данных, которые использовали язык SQL в качестве основного механизма формирования запросов. Спустя некоторое время Microsoft быстро лицензировала технологию Sybase в качестве основы для своего Microsoft SQL Server.

В 1989 и 1992 годах в стандарт были добавлены функции базового контроля целостности данных, администрирования данных, а также определения и манипуляций с данными. Примерно в это же время в дополняющей стандарт спецификации Open Database Connectivity (ODBC) был описан прикладной программный интерфейс, с помо-

щью которого программное обеспечение могло связываться с другой системой баз данных, совместимой с ODBC. Несколькими годами позже была подготовлена аналогичная спецификация, получившая название Java Database Connectivity, которая определила, как операторы SQL можно преобразовать в программы на Java.

Спецификация SQL в редакции 1992 года стала самой популярной, хотя уже появилась и используется несколько лет новая версия — SQL3 (так называемая SQL-99). Процесс стандартизации SQL3 позволил значительно усовершенствовать язык, дав возможность использовать его со сложными объектами в объектных базах данных.

SQL не является языком программирования в традиционном представлении. На нем пишутся не программы, а запросы к базе данных. Поэтому SQL — декларативный язык. Это означает, что с его помощью можно сформулировать, что необходимо получить, но нельзя указать, как это следует сделать. В частности, в отличие от процедурных языков программирования (Си, Паскаль, Ада), в языке SQL отсутствуют такие операторы, как if-then-else, for, while и т. д. Мы не будем подробно рассматривать синтаксис языка. Коснемся его лишь в той мере, которая необходима для понимания простых примеров. С их помощью будут проиллюстрированы наиболее интересные механизмы обработки данных.

Запрос на языке SQL состоит из одного или нескольких операторов, следующих один за другим и разделенных точкой с запятой. Ниже приведены основные группы операторов языка SQL..

Операторы определения данных — Data Definition Language (DDL)

Оператор

Смысл

Действие

CREATE TABLE

Создать таблицу

Создает новую таблицу в БД

DROP TABLE

Удалить таблицу

Удаляет таблицу из БД

ALTER TABLE

Изменить таблицу

Изменяет структуру существующей таблицы или ограничения целостности, задаваемые для данной таблицы

CREATE VIEW

Создать представление

Создаст виртуальную таблицу, соответствующую некоторому SQL-запросу

ALTER VIEW

Изменить представление

Изменяет ранее созданное представление

DROP VIEW

Удалить представление

Удаляет ранее созданное представление

CREATE INDEX

Создать индекс

Создает индекс для некоторой таблицы для обеспечения быстрого доступа по атрибутам, входящим в индекс

DROP INDEX

Удалить индекс

Удаляет ранее созданный индекс

Операторы манипулирования данными — Data Manipulation Language ( DMP)

Оператор

Смысл

Действие

DELETE

Удалить строки

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

INSERT

Вставить строку

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

UPDATE

Обновить строку

Обновляет значения одного или нескольких столбцов в одной или нескольких строках, соответствующих условиям фильтрации

Язык запросов — Data Query Language (DQL)

Оператор

Смысл

Действие

SELECT

Выбрать строки

Оператор, заменяющий все операторы реляционной алгебры и позволяющий сформировать результирующее отношение, соответствующее запросу

Средства управления транзакциями

Оператор

Смысл

Действие

COMMIT

Завершить транзакцию

Завершить комплексную взаимосвязанную обработку информации, объединенную в транзакцию

ROLLBACK

Откатить транзакцию

Отменить изменения, проведенные в ходе 1 выполнения транзакции

SAVEPOINT

Сохранить про-межуточную точ-ку выполнения транзакции

Сохранить промежуточное состояние БД, пометить его для того, чтобы можно было в дальнейшем к нему вернуться

Средства администрирования данных

Оператор

Смысл

Действие

ALTER DATABASE

Изменить БД

Изменить набор основных объектов в базе данных, ограничений, касающихся всей базы данных

ALTER DBAREA

Изменить область хранения БД

Изменить ранее созданную область хранения

ALTER PASSWORD

Изменить пароль

Изменить пароль для всей базы данных

CREATE DATABASE

Создать БД

Создать новую базу данных, определив основные параметры для нее

CREATE DBAREA

Создать область хранения

Создать новую область хранения и сделать ее доступной для размещения данных

DROP DATABASE

Удалить БД

Удалить существующую базу данных (только в том случае, когда вы имеете право выполнить это действие)

DROP DBAREA

Удалить область хранения БД

Удалить существующую область хранения(если в ней на настоящий момент не располагаются активные данные)

GRANT

Предоставить права

Предоставить права доступа на ряд действий над некоторым объектом БД

REVOKE

Лишить прав

Лишить прав доступа к некоторому объекту или некоторым действиям над объектом

Программный SQL — хранимые процедуры, триггеры

Оператор

Смысл

Действие

DECLARE

Определяет курсор для запроса

Задает некоторое имя и определяет связанный с ним запрос к БД, который соответствует виртуальному набору данных

OPEN

Открыть курсор

Формирует виртуальный набор данных, соответствующий описанию указанного курсора и текущему состоянию БД

FETCH

Считать строку из множества строк, определенных кур сором

Считывает очередную строку, заданную параметром команды из виртуального набора данных, соответствующего открытому курсору

CLOSE

Закрыть курсор

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

PREPARE

Подготовить оператор SQL к динамическому выполнению

Сгенерировать план выполнения запроса, соответствующего заданному оператору SQL

EXECUTE

Выполнить оператор SQL, ранее подготовленный к динамическому выполнению

Выполняет ранее подготовленный план запроса

Контрольные вопросы

  1. Что представляет база данных?

  2. Раскройте понятие концептуальной схемы

  3. Что представляет атрибут?

  4. Чем идентифицируется запись в БД?

  5. Дайте понятие внешней схемы БД.

  6. Что представляет внутренняя схема БД?

  7. Достоинства и недостатки иерархической модели данных.

  8. Достоинства и недостатки сетевой модели данных.

  9. Достоинства и недостатки реляционной модели данных.

  10. Как осуществляется доступ к данным в реляционной БД?