- •Классификация субд [5]
- •Функции субд
- •Централизованная архитектура
- •Технология с сетью и файловым сервером (архитектура «файл-сервер»)
- •Технология «клиент-сервер»
- •Трехзвенная (трехуровневая) архитектура
- •Реляционная модель данных
- •Методология idef1x
- •Определение отношения, домена, кортежа, реляционной базы данных, ключей
- •Связи между отношениями (таблицами)
- •Базовые теоретико-множественные операции реляционной алгебры
- •Специальные операции реляционной алгебры
- •Аномалии обновления
- •Первая Нормальная Форма
- •Определение функциональной зависимости
- •Функциональные зависимости отношений и математическое понятие функциональной зависимости
- •Вторая Нормальная Форма
- •Определение
- •3Нф (Третья Нормальная Форма)
- •Алгоритм нормализации (приведение к 3нф)
- •Реляционная модель данных: сравнение нормализованных и ненормализованных моделей.
- •16, Сравнение нормализованных и ненормализованных моделей
- •Null-значения
- •Потенциальные ключи
- •Целостность сущностей
- •Внешние ключи
- •Целостность внешних ключей
- •Замечания к правилам целостности сущностей и внешних ключей
- •Операции, которые могут нарушить ссылочную целостность
- •Для родительского отношения
- •Для дочернего отношения
- •20, Целостность реляционных данных: стратегии поддержания ссылочной целостности.
- •Стратегии поддержания ссылочной целостности
- •Операторы ddl (Data Definition Language) - операторы определения объектов базы данных
- •Create table – создать таблицу
- •Оператор check
- •Определение первичных и альтернативных ключей с помощью оператора alter
- •Операторы drop
- •Выборка данных
- •Сортировка результатов
- •Встроенные функции sql
- •Средства модификации данных языка sql
- •Вставка данных – insert
- •Изменение данных – update
- •Удаление данных – delete
- •Выборка данных
- •Представления
- •Применение представлений
- •Обновление представлений
- •Триггеры
- •Хранимые процедуры
- •Большая безопасность и меньший сетевой трафик.
- •Sql можно оптимизировать
- •Совместное использование кода:
- •Структура памяти эвм
- •Представление экземпляра логической записи
- •Организация обмена между оперативной и внешней памятью
- •Структуры хранения данных во внешней памяти эвм
- •Назначение и проверка полномочий, проверка подлинности
- •Средства защиты базы данных
- •Архитектура системы безопасности ms sql Server
- •34.Роли сервера
- •35, Права доступа
- •36, Необходимость в атомарных транзакциях
- •П , Параллельная обработка транзакций
- •Проблема потерянного обновления
- •Блокировка ресурсов
- •Блокировочная терминология
- •Сериализуемые транзакции
- •Взаимная блокировка
- •Оптимистическая и пессимистическая блокировки
- •Объявление характеристик блокировки
- •Свойства транзакций
- •Атомарность
- •Долговечность или устойчивость
- •Согласованность
- •Изолированность транзакции. Уровни изоляции
- •Типы курсоров
Объявление характеристик блокировки
Управление параллельной обработкой – предмет сложный; некоторые решения о типах и стратегиях блокировки должны делаться методом проб и ошибок. По этой и другим причинам прикладные программы базы данных обычно не налагают явных блокировок. Вместо этого они указывают рамки транзакций, а затем объявляют, какого рода поведение им требуется от СУБД. Таким образом, если поведение при блокировке нужно изменить, то нет необходимости переписывать приложение, чтобы налагать блокировки на других участках транзакции. Вместо этого просто меняется объявление характеристик блокировки. В листинге 3 изображена транзакция с карандашами, рамки которой обозначены с помощью операторов BEGIN TRANSACTION, COMMIT TRANSACTION и ROLLBACK TRANSACTION. Рамки транзакции – это та информация, которая жизненно необходима СУБД, чтобы реализовывать различные стратегии блокировки. Если разработчик объявит теперь (через системный параметр или каким-либо другим способом), что ему нужна оптимистическая блокировка, СУБД неявным образом наложит блокировки, соответствующие этой стратегии, в правильном месте. Если после этого разработчик сменит тактику и запросит пессимистическую блокировку, СУБД неявно наложит свои блокировки в другом месте.
Листинг 3. Указание рамок транзакции
BEGIN TRANSACTION:
SELECT ТОВАР.Название, ТОВАР.Количество
FROM ТОВАР
WHERE ТОВАР.Название='Карандаш'
СтароеКоличество = ТОВАР.Количество
Set НовоеКоличество = ТОВАР.Количество - 5
UPDATE ТОВАР
SET ТОВАР.Количество = НовоеКоличество
WHERE ТОВАР.Название - 'Карандаш'
{продолжение обработки транзакции}...
IF транзакция выполнена успешно THEN
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
END IF
Далее выполняются другие действия, не входящие в эту транзакцию...
СВОЙСТВА ТРАНЗАКЦИЙ: АТОМАРНОСТЬ, ДОЛГОВЕЧНОСТЬ, СОГЛАСОВАННОСТЬ.
Свойства транзакций
Транзакция - это неделимая, с точки зрения воздействия на СУБД, последовательность операций манипулирования данными, выполняющаяся по принципу "все или ничего", и переводящая базу данных из одного целостного состояния в другое целостное состояние.
Транзакция обладает четырьмя важными свойствами, известными как свойства ACID (atomicity, consistency, isolation, durability):
Атомарность.
Согласованность.
Изолированность.
Долговечность или устойчивость.
Атомарность
Атомарная транзакция – это такая транзакция, в которой либо выполняются все содержащиеся в ней действия с базой данных, либо не выполняется ни одно из них.
Долговечность или устойчивость
Если транзакция выполнена, то результаты ее работы должны сохраниться в базе данных, даже если в следующий момент произойдет сбой системы.
Устойчивая транзакция – это транзакция, в которой все сохраненные изменения остаются в базе данных. СУБД не будет удалять эти изменения даже в случае ошибки. Если транзакция устойчивая, СУБД при необходимости предоставит возможность для восстановления изменений, произведенных всеми выполненными действиями.
