Введение в системы управления базами данных




Глава 9. Транзакции и целостность баз данных


    Глава 9. Транзакции и целостность баз данных
    Глава 9. Транзакции и целостность баз данных В данной и в последующих главах изучается фундаментальное понятие транзакции. Это понятие не входит в реляционную модель данных, т.к. транзакции рассма...
    Пример нарушения целостности базы Для иллюстрации возможного нарушения целостности базы данных рассмотрим следующий пример: Пример 1
    . Пусть имеется система, в которой хранятся данные о подразделениях и работающих в них сотрудниках. Список подразделений хранится в таблице DEPART(Dep_Id, Dep_Name, Dept_Kol), где Dept_Id - иденти...
    Таблица 1
    Таблица 1 Dept_Id Dept_Name Dept_Kol 1 Кафедра алгебры 3 2 Кафедра программирования 2 Таблица 1 DEPART...
    Таблица 2
    Таблица 2 Pers_Id Pers_Name Dept_Id 1 Иванов 1 2 Петров 2 3 Сидоров 1 4 Пушников 2 5 Шарипов 1 Таблица 2 PERSON Ограничение целостности этой базы данных состоит в том, что поле Dept_Kol не может з...
    Шаг 1. Вставить сотрудника в таблицу...
    Шаг 1. Вставить сотрудника в таблицу PERSON: INSERT INTO PERSON (6, Муфтахов, 1) Шаг 2. Увеличить значение поля Dept_Kol: UPDATE DEPART SET Dept=Dept+1 WHERE Dept_Id=1 Если после выполнения первой...
    Понятие транзакции Определение 1
    Определение 1 . Транзакция - это последовательность операторов манипулирования данными, выполняющаяся как единое целое (все или ничего) и переводящая базу данных из одного целостного состояния в д...
    Ограничения целостности
    Ограничения целостности Свойство (С) - согласованность транзакций определяется наличием понятия согласованности базы данных....
    Определение 2
    Определение 2 . Ограничение целостности - это некоторое утверждение, которое может быть истинным или ложным в зависимости от состояния базы данных....
    Примерами ограничений целостности могут служить следующие утверждения: Пример 2
    Примерами ограничений целостности могут служить следующие утверждения: Пример 2 . Возраст сотрудника не может быть меньше 18 и больше 65 лет....
    Пример 3
    Пример 3 . Каждый сотрудник имеет уникальный табельный номер....
    Пример 4
    Пример 4 . Сотрудник обязан числиться в одном отделе....
    Пример 5
    Пример 5 . Сумма накладной обязана равняться сумме произведений цен товаров на количество товаров для всех товаров, входящих в накладную. Как видно из этих примеров, некоторые из ограничений целос...
    Пример 3 представляет ограничение...
    Пример 3 представляет ограничение, реализующее целостность сущности. Пример 4 представляет ограничение, реализующее ссылочную целостность. Другие ограничения являются достаточно произвольными утве...
    Определение 3. База данных находится в согласованном (целостном) состоянии
    , если выполнены (удовлетворены) все ограничения целостности, определенные для базы данных. В данном определении важно подчеркнуть, что должны быть выполнены не все вообще ограничения предметной о...
    Классификация ограничений целостности
    Классификация ограничений целостности Ограничения целостности можно классифицировать несколькими способами: По способам реализации. По времени проверки. По области действия....
    Классификация ограничений целостности по способам реализации
    Классификация ограничений целостности по способам реализации Каждая система обладает своими средствами поддержки ограничений целостности. Различают два способа реализации: Декларативная поддержка...
    Определение 4
    Определение 4 . Декларативная поддержка ограничений целостности заключается в определении ограничений средствами языка определения данных (DDL - Data Definition Language). Обычно средства декларат...
    Определение 5
    Определение 5 . Процедурная поддержка ограничений целостности заключается в использовании триггеров и хранимых процедур. Не все ограничения целостности можно реализовать декларативно....
    Примером такого ограничения может...
    Примером такого ограничения может служить требование из примера 1, утверждающее, что поле Dept_Kol таблицы DEPART должно содержать количество сотрудников, реально числящихся в подразделении. Для р...
    Классификация ограничений целостности...
    Определение 6 . Немедленно проверяемые ограничения проверяются непосредственно в момент выполнения операции, могущей нарушить ограничение. Например, проверка уникальности потенциального ключа пров...
    Определение 7
    Определение 7 . Ограничения с отложенной проверкой проверяется в момент фиксации транзакции оператором COMMIT WORK. Внутри транзакции ограничение может не выполняться. Если в момент фиксации транз...
    Примером ограничения, которое...
    Примером ограничения, которое не может быть проверено немедленно является ограничение из примера 1. Это происходит оттого, что транзакция, заключающаяся во вставке нового сотрудника в таблицу PERS...
    Определение 8
    Определение 8 . Ограничения целостности домена представляют собой ограничения, накладываемые только на допустимые значения домена. Фактически, ограничения домена обязаны являться частью определени...
    Определение 9
    Определение 9 . Ограничение целостности атрибута представляют собой ограничения, накладываемые на допустимые значения атрибута вследствие того, что атрибут основан на каком-либо домене. Ограничени...
    Определение 10
    Определение 10 . Ограничения целостности кортежа представляют собой ограничения, накладываемые на допустимые значения отдельного кортежа отношения, и не являющиеся ограничением целостности атрибут...
    Пример 6
    Пример 6 . Атрибут "Возраст сотрудника" в таблице "Спецподразделение", может иметь дополнительное ограничение "Возраст сотрудника не менее 25 и не более 45", помимо того, что этот атрибут уже имее...
    Пример 7
    Пример 7 . Для отношения "Сотрудники" можно сформулировать следующее ограничение: если атрибут "Должность" принимает значение "Директор", то атрибут "Зарплата" содержит значение не менее 1000$. Эт...
    Пример 8
    Пример 8 . В накладной можно установить следующую взаимосвязь атрибутов - "Цена*Количество=Сумма", связывающую атрибуты "Цена", "Количество", "Сумма". Данный пример кажется неестественным, т.к. су...
    Таблица 3
    Таблица 3 Наиме-нование атрибута Описание атрибута Базовый ли атрибут Формула для вычислимого атрибута Name Наименование товара Да N Количество Да P1 Учетная цена товара Да S1 Учетная сумма на все...
    Определение 11
    Определение 11 . Ограничения целостности отношения представляют ограничения, накладываемые только на допустимые значения отдельного отношения, и не являющиеся ограничением целостности кортежа. Тре...
    Пример 9
    Пример 9 . Ограничение целостности сущности (см. гл. 3), задаваемое потенциальным ключом отношения, является ограничением отношения, т.к. для его проверки необходимо иметь информацию обо всех корт...
    Пример 10
    Пример 10 . Ограничение целостности, определяемые наличием функциональных, многозначных зависимостей и зависимостей соединения, являются ограничениями отношения....
    Пример 11
    Пример 11 . Предположим, что в отношении PERSON (см. пример 1) задано следующее ограничение - в каждом отделе должно быть не менее двух сотрудников. Это ограничение можно сформулировать так - коли...
    Пример 12
    Пример 12 . Ограничение целостности, определяемое требованием, что некоторая таблица должна быть не пуста, являются ограничениями отношения. Проверка ограничения . К моменту проверки ограничения о...
    Определение 12
    Определение 12 . Ограничения целостности базы данных представляют ограничения, накладываемые на значения двух или более связанных между собой отношений (в том числе отношение может быть связано са...
    Пример 13
    Пример 13 . Ограничение целостности ссылок (см. гл. 3), задаваемое внешним ключом отношения, является ограничением базы данных....
    Пример 14
    Пример 14 . Ограничение на таблицы DEPART и PERSON из примера 1 является отношением базы данных, т.к. оно связывает данные, размещенные в различных таблицах. Проверка ограничения . К моменту прове...
    Общие принципы реализации ограничений средствами SQL
    Общие принципы реализации ограничений средствами SQL Стандарт SQL не предусматривает процедурных ограничений целостности, реализуемых при помощи триггеров и хранимых процедур. В стандарте SQL 92 о...
    Синтаксис ограничений стандарта SQL
    Синтаксис ограничений стандарта SQL Понятие ограничения используется во многих операторах определения данных (DDL). Ограничение check ::= CHECK Предикат Ограничения таблицы ::= [ CONSTRAINT Имя ог...
    Примеры предикатов различного...
    Примеры предикатов различного вида приведены в главе 5. Ограничение типа CHECK может быть использовано как часть описания домена, таблицы, столбца таблицы или отдельного ограничения целостности -...
    Пример ограничения типа CHECK...
    Пример ограничения типа CHECK: CHECK (Salespeaple.Salary IS NOT NULL) OR (Salespeaple.Commission IS NOT NULL) Данное ограничение утверждает, что каждый продавец должен иметь либо ненулевую зарплат...
    Таблица 4
    Таблица 4 X Y 1 Aa 1 Bb 2 Cc 2 Dd 3 Ee 3 Ff Таблица 4 таблица A (Родительская)...
    Таблица 5
    Таблица 5 Z X Y 1 1 Aa 2 1 Null 3 Null Cc 4 Null Null 5 4 Gg Таблица 5 Таблица B (Дочерняя) Таблица A имеет первичный ключ (X, Y). Таблица B имеет первичный ключ Z, и внешний ключ (X, Y), ссылающи...
    Таблица 6
    Таблица 6 Колонки X и Y таблицы B допускают null-значения Колонки X и Y таблицы B не допускают null-значений MATCH отсутствует 1 строка - допустима, совпадает с 1 строкой таблицы A. 2 строка - доп...
    Синтаксис операторов SQL, использующих ограничения
    Синтаксис операторов SQL, использующих ограничения Стандарт SQL описывает следующие операторы, в которых может быть использованы ограничения: CREATE DOMAIN - создать домен ALTER DOMAIN - изменить...
    Пример 18
    Пример 18 . Приведенный ниже оператор создает домен Salary на основе целочисленного типа данных, причем значения из этого домена не могут принимать неположительные значения (но могут принимать зна...
    Определение столбца
    Определение столбца ::= Имя столбца { Имя домена | Тип данных [ Размер ]} [ Ограничение столбца… ] [ DEFAULT Значение по умолчанию ] Этот оператор (синтаксис приведен не полностью - пропущены опци...
    Пример 19
    Пример 19 . CREATE TABLE Salespeaple (Salespeaple_Id Id_Nums PRIMARY KEY, Fam CHAR(20) NOT NULL, Im CHAR(15), BirthDate DATE, Salary Salary_Domain DEFAULT 1000, City_Id INTEGER REFERENCES City ON...
    Определение столбца
    Определение столбца } | { ALTER [ COLUMN ] Имя столбца { SET DEFAULT Значение по умолчанию | DROP DEFAULT }} | { DROP [ COLUMN ] Имя столбца RESTRICT | CASCADE } | { ADD Ограничение таблицы } | {...
    Пример 20
    Пример 20 .CREATE ASSERTION Check_Pay CHECK (Salespeaple.Salary IS NOT NULL) OR (Salespeaple.Commission IS NOT NULL) DEFERRABLE INITIALLY IMMEDIATE DROP ASSERTION Имя утверждения Этот оператор поз...
    Выводы
    Выводы Транзакция - это неделимая, с точки зрения воздействия на СУБД, последовательность операций манипулирования данными, выполняющаяся по принципу " все или ничего ", и переводящая базу данных...








Начало