Разделы презентаций


Целостность данных

Содержание

Monday, August 12, 2019СОДЕРЖАНИЕПонятие про ограничения целостности и их классификацияДекларативные ограничения целостностиДинамические ограничения целостности Семантические ограничения целостности Транзакции как механизм поддержания целостности Триггеры как механизм поддержания целостности

Слайды и текст этой презентации

Слайд 1Лекция 12. Целостность данных
Национальный авиационный университет
Факультет компьютерных наук
Кафедра инженерии программного

обеспечения

Лекция 12. Целостность данныхНациональный авиационный университетФакультет компьютерных наукКафедра инженерии программного обеспечения

Слайд 2Monday, August 12, 2019
СОДЕРЖАНИЕ
Понятие про ограничения целостности и их классификация

Декларативные

ограничения целостности

Динамические ограничения целостности
Семантические ограничения целостности
Транзакции как механизм поддержания

целостности
Триггеры как механизм поддержания целостности
Monday, August 12, 2019СОДЕРЖАНИЕПонятие про ограничения целостности и их классификацияДекларативные ограничения целостностиДинамические ограничения целостности  Семантические ограничения

Слайд 3Monday, August 12, 2019
Понятие про ограничения целостности
Целостность данных –

это полнота, достоверность и точность данных, сохраняемых в БД.
Ограничения целостности

- это правила, которые ограничивают множество возможных состояний базы данных и множество возмож- ных переходов из одного состояния в другое теми состояниями (переходами), которые рассматриваются как "допустимые".

БД находится в целостном состоянии, если он соответствует определенным для нее ограничениям целостности.

Monday, August 12, 2019Понятие про ограничения целостности Целостность данных – это полнота, достоверность и точность данных, сохраняемых

Слайд 4Monday, August 12, 2019
Классификация ограничений целостности
По происхождению (структурные, семантические)

По способу

поддержания (декларативные, процедурные)

По времени проверки (проверяются немедленно, отложенные)
По области

действия (атрибут, отношение, связь, и.т.д.)
Возможность поддержания переходов из одного состояния в другое (статичные, динамичные).
Monday, August 12, 2019Классификация ограничений целостностиПо происхождению (структурные, семантические)По способу поддержания (декларативные, процедурные)По времени проверки (проверяются немедленно,

Слайд 5Monday, August 12, 2019
Декларативные ограничения целостности

Декларативное ограничение целостности – это

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

ограничения целостности задаются для таких объектов:

таблица,

столбцы,
связи между таблицами,
связи между столбцами.
Monday, August 12, 2019Декларативные ограничения целостностиДекларативное ограничение целостности – это ограничения, которые фиксируют условия, которым должна удовлетворять

Слайд 6Monday, August 12, 2019
Целостность таблицы
В реляционных СУБД целостность таблицы задается

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

не могут содержать значений NULL.
Значение первичного ключа (как одного столбца так и совокупности столбцов) не могут дублироваться в таблице, то есть они должны быть уникальными (UNIQUE).

Синтаксис:

CONSTRAINT constraint_name PRIMARY KEY (column_list)

Пример:

CONSTRAINT DepPrk PRIMARY KEY (DepName, FacNO)

Monday, August 12, 2019Целостность таблицыВ реляционных СУБД целостность таблицы задается первичным ключом, который предполагает поддержание следующих ограничений

Слайд 7Monday, August 12, 2019
Целостность столбцов
В реляционной СУБД целостность столбцов представляется:
Заданием

типов данных и их размеров (обязательное свойство).
Определением, является ли обязательными

значения столбца (NULL/NOT NULL).
Определением может ли значение столбца дублироваться (UNIQUE).
Определением значения по умолчанию.
Определением условия, которому должны удовлетворять значения столбца
Для производных (выводимых, вычисляемых) столбцов задается процедура их вычисления
Monday, August 12, 2019Целостность столбцовВ реляционной СУБД целостность столбцов представляется: Заданием типов данных и их размеров (обязательное

Слайд 8Monday, August 12, 2019
Целостность столбцов. Типы данных
CREATE TABLE TEACHER (

TchNO INTEGER, Name VARCHAR(50),

HireDate DATE, Salary NUMERIC (5,2));

Распространенными типами данных SQL являются:
Строка фиксированной длины (CHR(n)).
Строка переменной длины (VARCHAR(n)).
Целые числа (INTEGER, INT, BIGINT, SMALLINT)/.
Числа с фиксированной запятой (NUMERIC (p,s)).
Числа с плавающей запятой (REAL, FLOAT)
Дата (DATE) и время (TIME).

Пример:

Monday, August 12, 2019Целостность столбцов. Типы данныхCREATE TABLE TEACHER (   TchNO  INTEGER,

Слайд 9Monday, August 12, 2019
Целостность столбцов. Обязательность значений атрибута
NULL - указывает,

что в столбце значения могут отсутствовать (значения по умолчанию).
NOT NULL

– указывает, что значения в столбце являются обязательными.

CREATE TABLE TEACHER ( TchNO INTEGER NOT NULL, Name VARCHAR(50) NOT NULL, Post VARCHAR(30) NOT NULL HireDate DATE NULL, Salary NUMERIC (5,2));

Пример:

Monday, August 12, 2019Целостность столбцов.  Обязательность значений атрибутаNULL - указывает, что в столбце значения могут отсутствовать

Слайд 10Monday, August 12, 2019
Целостность столбцов. Уникальность значений столбца
Наличие ограничения UNIQUE

свидетельствует, что значение столбца (совокупности столбцов) являются уникальными (то есть

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

Синтаксис:

[CONSTRAINT constraint_name] UNIQUE (column_list)

Пример:

CONSTRAINT TchUnq UNIQUE (Name, Post, HireDate)

Monday, August 12, 2019Целостность столбцов.  Уникальность значений столбцаНаличие ограничения UNIQUE свидетельствует, что значение столбца (совокупности столбцов)

Слайд 11Monday, August 12, 2019
Целостность столбцов. Значение по умолчанию

Значение по умолчанию

– это то значение, которое принимает столбец конкретной строки, если

при вводе этой строки значение данного столбца отсутствует.

Синтаксис:

Column_name data_type DEFAULT default-value

Пример:

CREATE TABLE TEACHER ( TchNO INTEGER NOT NULL, Name VARCHAR(50) NOT NULL, Post VARCHAR(30) DEFAULT ’NOT DEFINED’ HireDate DATE NULL, Salary NUMERIC (5,2) DEFAULT 0);

Monday, August 12, 2019Целостность столбцов.  Значение по умолчаниюЗначение по умолчанию – это то значение, которое принимает

Слайд 12Monday, August 12, 2019
Целостность столбцов. Условия на значения столбца
С помощью

ограничения CHECK можно задать условие на допустимость значений столбца.
Синтаксис:
[CONSTRAINT constraint_name]

CHECK (condition)

Пример:

CREATE TABLE SGROUP ( GrpNO INTEGER NOT NULL, Num CHAR(3) NOT NULL, Course CHAR(1) DEFAULT ’1’CONSTRAINT Crs_chk CHECK (Course IN (’1’,’2’,’3’,’4’,’5’)));

Monday, August 12, 2019Целостность столбцов.  Условия на значения столбцаС помощью ограничения CHECK можно задать условие на

Слайд 13Monday, August 12, 2019
Целостность столбцов. Домен как тип данных
Домен –

именованное описание множества допустимых значений столбцов.
Домен – это объект базы

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

Синтаксис:

CREATE DOMAIN name [AS] data_type [DEFAULT] value [CONSTRAINT name] CHECK (condition);

Пример:

CREATE DOMAIN Fund_Domain AS NUMERIC (5,2) CHECK (VALUE BETWEEN 0 AND 10000.00); -- Определение столбцов с использованием этого домена Salary Fund_Domain Commission Fund_Domain

Monday, August 12, 2019Целостность столбцов.  Домен как тип данныхДомен – именованное описание множества допустимых значений столбцов.Домен

Слайд 14Monday, August 12, 2019
Целостность связей между таблицами
Целостность связей между отношениями

определяется внешним ключом, с помощью которого производится ссылка на первичный

ключ или уникальный ключ другой таблицы
Внешний ключ может содержать NULL значение. Это означает, что связь с другой таблицей является факультативной .
Внешний ключ определяет ссылочное ограничение целостности, которое предполагает, с помощью внешнего ключа нельзя ссылаться на отсутствующее значение того первичного (уникального) ключа, на который делается ссылка.

Синтаксис:

CONSTRAINT constr_name FOREIGN KEY (column_list_1) REFERENCES table_name [column_list_2] [ON DELETE {RESTRICT|CASCADE|SET NULL}SET DEFAULT}] [ON UPDATE {RESTRICT|CASCADE|SET NULL}SET DEFAULT}];

Monday, August 12, 2019Целостность связей между таблицамиЦелостность связей между отношениями определяется внешним ключом, с помощью которого производится

Слайд 15Monday, August 12, 2019
Целостность связей между столбцами
Пример: Количество студентов на лекции

не должно превышать количества мест в аудитории
CREATE TRIGGER Lecture_Insert_Update

FOR INSERT, UPDATE ON LECTURE
WHEN (SELECT Seats FROM ROOM WHERE ROOM.RomNO = LECTURE.RomNO) <
(SELECT Quantity FROM GROUP WHERE SGROUP.GrpNO = LECTURE.GrpNO)
begin
ROLLBACK TRANSACTION
end;


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

Monday, August 12, 2019Целостность связей между столбцамиПример:	Количество студентов на лекции не должно превышать количества мест в аудиторииCREATE

Слайд 16Monday, August 12, 2019
Динамические ограничения целостности
Динамические ограничения целостности – это

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

различные моменты времени.
Другими словами – это ограничения, связанные с переходом базы данных из одного состояние в другое.

Выделяют такие динамические ограничения:
ситуационно-ориентированные;
операционно-ориентированные.

Monday, August 12, 2019Динамические ограничения целостностиДинамические ограничения целостности – это ограничения, которые устанавливают зависимость между различными частями

Слайд 17Monday, August 12, 2019
Ситуационно-ориентированные динамические ограничения целостности
Ситуационно-ориентированные ограничения задаются в

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

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


CREATE TRIGGER Person_MaritalState
FOR INSERT, UPDATE ON PERSON
WHEN (OLD.MarSt=’холост’ AND NEW.marSt IN (‘разведен’,‘вдовец’)) OR
(OLD.MarSt=‘женат’ AND NEW.marSt = ‘холост’) OR
(OLD.MarSt=‘разведен’ AND NEW.MarSt IN (‘холост’,’вдовец’)) OR
(OLD.MarSt=‘вдовец’ AND NEW.MarSt IN (‘холост’,‘разведен’))
begin
ROLLBACK TRANSACTION
end;

Monday, August 12, 2019Ситуационно-ориентированные  динамические ограничения целостностиСитуационно-ориентированные ограничения задаются в виде требований, которым должны удовлетворять последовательные

Слайд 18Monday, August 12, 2019
Операционно-ориентированные динамические ограничения целостности
Операционно-ориентированые ограничения целостности задаются

в виде допустимых последовательностей операций. Допустимость операции или последовательности операций

может зависеть от текущего состояния базы данных.
Monday, August 12, 2019Операционно-ориентированные  динамические ограничения целостностиОперационно-ориентированые ограничения целостности задаются в виде допустимых последовательностей операций. Допустимость

Слайд 19Monday, August 12, 2019
Пример операционно-ориентированного ограничения целостности
Пример: Вставка в базу

данных информации о том, что х является супругом y допустима

только в том случае, если текущее семейное положение x и y не есть женат/замужем
MARRIAGE(Husb, Wife), PERSON(Name, MarSt)

CREATE TRIGGER Marriage_Insert_Check ON MARRIAGE
FOR INSERT
WHEN (MARRIAGE.Husb = PERSON.Name AND PERSON.MarSt = ‘женат’ ) OR
(MARRIAGE.Wife = PERSON.Name AND PERSON.MarSt = "married")
begin
ROLLBACK TRANSACTION
end;

Monday, August 12, 2019Пример операционно-ориентированного  ограничения целостности Пример:	Вставка в базу данных информации о том, что х

Слайд 20Monday, August 12, 2019
Семантические (прикладные) ограничения целостности
Примеры семантических ограничений:
Описанное выше

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

с ним ознакомлены все заинтересованные лица и по нему принято соответствующее решение
Должностные оклады имеют следующие "вилки": …
Студент может перейти на следующий курс или остаться на том же, но не на предыдущий
Одно и то же лицо не может быть заведующим двух кафедр

Семантические ограничения целостности или, как еще говорят, прикладные правила целостности (бизнес-правила) – это правила, которые характеризуют ограничения, действующие в ПО.

Поддерживаются фразой CONSTRAINT, триггерами, хранимыми процедурами и функциями.

Monday, August 12, 2019Семантические (прикладные)  ограничения целостностиПримеры семантических ограничений:Описанное выше правило изменения состояния столбца

Слайд 21Monday, August 12, 2019
Транзакции как механизм поддержания целостности
Либо все предложения

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

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

Тразакция – это последовательность предложений SQL, которые рассматриваются как единое целое.

Monday, August 12, 2019Транзакции как механизм  поддержания целостностиЛибо все предложения в транзакции выполняются успешно, либо ни

Слайд 22Monday, August 12, 2019
Общая схема транзакции
Установка проверки ограничений целостности:
SET CONSTRAINTS

{ALL | constraint_list}

{DEFERRED | IMMEDIATE}
Monday, August 12, 2019Общая схема транзакцииУстановка проверки ограничений целостности:SET CONSTRAINTS {ALL | constraint_list}

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика