Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
124.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
188.42 Кб
Скачать

22.Транзакции. Управление транзакциями.

Поддержание механизма транзакции - показатель уровня развитости СУБД, корректное поддержание является основой целостности БД и составляют основу изолированности пользователя с многопользовательскими системами.

Транзакция - неделимое с точки зрения БД последовательность операторов манипулирования БД (чтение удаление вставка и др) причем такая, что либо результаты всех операторов входящих в транзакции отображаются в БД либо воздействие всех этих операторов полностью отсутствует.

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

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

  1. Отсутствие потерянных изменений.

Пример: Трансакция №1 - изменяет объект БД «А» до завершения транзакции №1 транзакция №2 так же изменяет объект «А»транзакция №2 завершается по причине нарушения ограничения целостности. Тогда при повторном чтении объекта А транзакция №1 не видит изменения этого объекта произведенных раннее, такая ситуация называется ситуация потерянных изменений и противоречит требованию изолированности пользователя, чтобы избежать такой ситуации в транзакции №1 требуется чтобы до ее завершения никакая другая транзакция не могла изменять объект «А».

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

  1. Отсутствие чтения грязных данных

Трансакция №1 - изменяет объект БД «А» параллельно транзакция №2 читает объект «А» т.к. операция изменения не завершена транзакция №2 видит несогласованные «грязные данные»

Минимальным требованием является блокировка чтения объекта А до завершения операции по изменению транзакцией №1

  1. Отсутствие неповторяющихся чтений

Трансакция №1 - читает объект БД «А» до завершения транзакции №1, транзакция №2 изменяет объект А и успешно завершается. Транзакция №1 повторно читает объект А и видит его измененное состояние, чтобы избежать неповторяющихся чтений до завершения транзакции №1 никакая другая транзакция не должна изменять объект А. это является максимальным требованием к синхронизации транзакции, но не гарантирует изолированности пользователей.

23. Язык манипулирования данными sql: общие сведения, формы построения запросов.

Все операторы языка SQL можно условно разделить на три группы операторов. Оператор языка запросов – SELECT, операторы языка манипуляции данными (Insert, Update, Delete) и операторы языка определения данных (Create, Drop, Alter).

Запросы DML (ЯМД)

К запросам языка манипуляции данными (Data Manipulation Language) относятся запросы на добавление, удаление и модификацию кортежей.

Добавление кортежа производится командой:

INSERT INTO имя_таблицы [(<список столбцов>)] VALUES (<список значений>)

Список столбцов и список значений указываются через запятую, а значения добавляются в соответствующие столбцы. Если необходимо добавить кортеж целиком (т.е. значения есть для всех полей и их порядок совпадает с порядком полей в отношении), то описание списка столбцов можно опустить.

Оператор удаления данных DELETE позволяет удалить одну или несколько строк из таблицы в соответствии с условиями, которые задаются для удаляемых строк. Синтаксис оператора DELETE следующий:

DELETE FROM <имя_таблицы> [WHERE <условия_отбора>]

Если условия отбора не задаются, то из таблицы удаляются все строки.

Операция обновления данных UPDATE требуется тогда, когда происходят изменения данных, которые надо отразить в базе данных.

Запрос на обновление может изменить сразу целую группу записей. Этот запрос состоит из трех частей:

• Предложение UPDATE, которое указывает на обновляемую таблицу;

• Предложение SET, задающее данные для обновления;

• Необязательный критерий WHERE, ограничивающий число записей, на которые воздействует запрос на обновление.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]