Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД (2).doc
Скачиваний:
48
Добавлен:
17.04.2019
Размер:
133.12 Кб
Скачать

7.Язык sql. Назначение и операторы языка.

непроцедурный язык SQL (Structured Query Language – структурированный язык запросов) ориентирован на операции с данными, представленными в виде логически взаимосвязанных совокупностей таблиц. Особенность предложений этого языка состоит в том, что они ориентированы в большей степени на конечный результат обработки данных, чем на процедуру этой обработки. SQL сам определяет, где находятся данные, какие индексы и даже наиболее эффективные последовательности операций следует использовать для их получения: не надо указывать эти детали в запросе к базе данных.

Язык SQL делится на подмножества.

1) Язык определения данных (DDL – Data Definition Language) предоставляет пользователям средства указания типа данных и их структуры, а также средства задания ограничений для информации, хранимой в базе данных.

Операторы: CREATE(создание таблицы, копии таблицы), ALTER(добавление поля, внешнего ключа, первичного ключа, домена, атрибута таблицы), DROP удаление таблицы.

2) Язык манипулирования данными (DML – Data Manipulation Language) позволяет вставлять, обновлять и извлекать информацию из базы данных.

Операторы: SELECT(орг запросов), INSERT (Вставка записи в таблицу), DELETE, UPDATE(для изменения существующих строк таблиц.).

3) Язык управления данными (DCL – Data Control Language) состоит из управляющих операторов.

Наделения привилегиями(объектные системные привилегии).

Операторы – GRANT, REVOKE.

GRANT это команда используется для обеспечения доступа и привилегий на объекты базы данных для пользователей. GRANT SELECT ON employee TO user1;

Команда REVOKE удаляет прав доступа пользователей или привилегий в базе данных объектов. REVOKE SELECT ON employee FROM user1;

4) Язык управления транзакциями (TCL – Transaction Control Language) состоит из операторов, предназначенных для управления ходом выполнения транзакций.

Операторы: COMMIT, ROLLBACK, SAVEPOINT.

8.Понятие транзакции и её необходимость. Операторы commit, rollback.

Транзакция представляет собой последовательность операторов языка SQL, которая рассматривается как некоторое неделимое действие над базой данных. В то же время, это логическая единица работы системы.

Понятие транзакции имеет непосредственное отношение к целостности БД. СУБД автоматически следит, чтобы каждая отдельная команда SQL не нарушала целостность БД. В этом случае речь идет только о декларативной и ссылочной целостности. Что касается логической или семантической целостности, то существуют такие ограничения, накладываемые на БД, которые просто невозможно не нарушить, выполнив только один SQL-оператор. Для обеспечения логической целостности иногда необходимо успешное выполнение целой группы операторов, объединенных в транзакцию, например, перевод денег с одного счета на другой в банковской системе. Данная операция может состоять минимум из двух операций: снятие денег с одного счета (один оператор UPDATE или DELETE) и принятие денег на другой счет (еще один оператор UPDATE или INSERT). Если после выполнения первого действия оказывается, что второе действие совершить невозможно (например, счет закрыт), то возникает неоднозначная ситуация – куда в итоге денутся деньги? Для разрешения подобных ситуаций и используют механизм транзакций.

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

COMMIT – явная фиксация транзакции;

ROLLBACK – явная отмена изменения в текущей транзакции;

SAVEPOINT – создание контрольной точки внутри транзакции (промежуточная фиксация транзакции с возможность отката к этой точке);

Неявная фиксация транзакции, например, осуществляется самой СУБД в том случае, когда выполняется один из операторов DDL (CREATE, ALTER или DROP). Неявный откат транзакции, например, осуществляется СУБД тогда, когда происходит неожиданное завершение сессии

Пример выполнения DML операторов с фиксацией и откатом транзакций:

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