Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


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

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

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

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

Презентация на тему Ограничение целостности в Oracle

Содержание

Целостность базы данных Целостность базы данных (DATABASE INTEGRITY) - соответствие информации в БД её структуре и правилам. Каждое правило, налагающее ограничение на состояние базы данных, называется ограничением целостности (integrity constraint). Примеры ограничений: возраст сотрудника не может быть меньше
Ограничение целостности в Oracle Подготовил: слушатель группы 7342 ряд.Евдокимов В.А. Целостность базы данных 	Целостность базы данных (DATABASE INTEGRITY) - соответствие информации в БД Работу системы по проверке ограничений ТранзакцииТранзакция – последовательность операций с данными, выполняющаяся как единое целое.Свойства:АтомарностьИзоляцияСогласованностьДолговечность Команды управления транзакциямиТранзакция начинается автоматически с момента присоединения пользователя к СУБД и Свойства и классификация ограничений целостности	Ограничения целостности обладают следующими свойствами: навязывают правила на уровне Классификация ограничений целостности Задание декларативных ограниченийСтандарт SQL позволяет задавать декларативные ограничения следующими способами:Как ограничения домена.Как Способы определенияCONSTRAINT Имя ограничения]{ 	PRIMARY KEY (Имя столбца, …)}	{UNIQUE (Имя столбца, …)}	{FOREIGN Типы ограничений NOT NULL 	Ограничение NOT NULL используется для тех столбцов таблицы, которые требуют, чтобы Определение ограничения NOT NULL	При создании таблицы:	CREATE TABLE EMP	(	ID number(20,0) primary key, 	ENAME UNIQUE 	Ограничения UNIQUE проверяет столбец на уникальность строк. 	Таблица DEPT:Строка SALES уже естьNAME пусто Определение ограничения UNIQUE	Пример при создании таблицы на уровне столбцов:	CREATE TABLE DEPT	(ID number(20, PRIMARY KEY 	PRIMARY KEY используется для тех столбцов таблицы, которые позволяют идентифицировать Определение ограничения PRIMARY KEY	Пример при создании таблицы на уровне столбцов:	CREATE TABLE DEPT	(ID CHECK 	Ограничения CHECK позволяет ставить ограничение на значение столбцов. 	Пример ограничения при Определение ограничения CHECK	В этом случае мы сами явно задаем имя нашему ограничению: 	CREATE Ссылочная целостность	В базе существуют связи между таблицами, к примеру таблицы DEPT и Интерпретация	А теперь переведем верхнее сказанное на наш язык:	·  каждой строки EMP Родительские и дочерние таблицы Таблица EMP получается зависимой от DEPT. Таблицы, которые FOREIGN KEY	FOREIGN KEY - это ссылочное ограничение, устанавливается на дочерний таблицы, которое Определение ограничения FOREIGN KEY	СREATE TABLE EMP	(ID number(20,0) primary key,	ENAME varchar(50) not null,	SAL Управление ограничениями 	Для добавление ограничений к уже созданной таблице используется синтаксис: 	ALTER TABLE Список литературы:http://www.sql.az/http://oracle.bulldogss.com/http://citforum.ru/http://oarcle.livejournal.com/http://www.ngpedia.ru/
Слайды презентации

Слайд 2 Целостность базы данных
Целостность базы данных (DATABASE INTEGRITY) -

Целостность базы данных 	Целостность базы данных (DATABASE INTEGRITY) - соответствие информации в

соответствие информации в БД её структуре и правилам. Каждое

правило, налагающее ограничение на состояние базы данных, называется ограничением целостности (integrity constraint).

Примеры ограничений:
возраст сотрудника не может быть меньше 18 и больше 65 лет.
каждый сотрудник имеет уникальный табельный номер.
сотрудник обязан числиться в одном отделе.

Слайд 3 Работу системы по проверке ограничений

Работу системы по проверке ограничений

Слайд 4 Транзакции
Транзакция – последовательность операций с данными, выполняющаяся как

ТранзакцииТранзакция – последовательность операций с данными, выполняющаяся как единое целое.Свойства:АтомарностьИзоляцияСогласованностьДолговечность

единое целое.
Свойства:
Атомарность
Изоляция
Согласованность
Долговечность


Слайд 5 Команды управления транзакциями
Транзакция начинается автоматически с момента присоединения

Команды управления транзакциямиТранзакция начинается автоматически с момента присоединения пользователя к СУБД

пользователя к СУБД и продолжается, пока не произойдет одно

из событий:
Подана команда COMMIT WORK (зафиксировать транзакцию).
Подана команда ROLLBACK WORK (откатить транзакцию).
Произошло отсоединение пользователя от СУБД.
Произошел сбой системы.


Слайд 6 Свойства и классификация ограничений целостности
Ограничения целостности обладают следующими

Свойства и классификация ограничений целостности	Ограничения целостности обладают следующими свойствами: навязывают правила на

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

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


Слайд 7 Классификация ограничений целостности

Классификация ограничений целостности

Слайд 8 Задание декларативных ограничений
Стандарт SQL позволяет задавать декларативные ограничения

Задание декларативных ограниченийСтандарт SQL позволяет задавать декларативные ограничения следующими способами:Как ограничения

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

ограничения, хранящиеся в базе данных в виде независимых утверждений (assertion).


Слайд 9 Способы определения
CONSTRAINT Имя ограничения]
{ PRIMARY KEY (Имя столбца,

Способы определенияCONSTRAINT Имя ограничения]{ 	PRIMARY KEY (Имя столбца, …)}	{UNIQUE (Имя столбца,

…)}
{UNIQUE (Имя столбца, …)}
{FOREIGN KEY (Имя столбца, …) REFERENCES

Имя таблицы [(Имя столбца, ...)] [Ссылочная спецификация]}
{Ограничение check } }
[Атрибуты ограничения]
 
Ограничения столбца:
[CONSTRAINT Имя ограничения]
{ {NOT NULL}
{PRIMARY KEY}
{UNIQUE}
{REFERENCES Имя таблицы [(Имя столбца)] [Ссылочная спецификация]}
{ Ограничение check } }

Ссылочная спецификация:
[MATCH {FULL | PARTIAL}]
[ON UPDATE {CASCADE | SET NULL | SET DEFAULT | NO ACTION}]
[ON DELETE {CASCADE | SET NULL | SET DEFAULT | NO ACTION}]
Атрибуты ограничения:
{DEFERRABLE [INITIALLY DEFERRED | INITIALLY IMMEDIATE]}
{NOT DEFERRABLE}

Слайд 10 Типы ограничений

Типы ограничений

Слайд 11 NOT NULL
Ограничение NOT NULL используется для тех столбцов

NOT NULL 	Ограничение NOT NULL используется для тех столбцов таблицы, которые требуют,

таблицы, которые требуют, чтобы значение было всегда.
Таблица EMP:


Замечание:

NOT NULL можно лишь определить на уровне столбца



NOT NULL

НЕ NOT NULL


Слайд 12 Определение ограничения NOT NULL
При создании таблицы:

CREATE TABLE EMP
(
ID

Определение ограничения NOT NULL	При создании таблицы:	CREATE TABLE EMP	(	ID number(20,0) primary key,

number(20,0) primary key,
ENAME varchar (50) not null,
JOB varchar

(50),

);

На имеющуюся таблицу, :

ALTER TABLE EMP
MODIFY ENAME NOT NULL


Слайд 13 UNIQUE
Ограничения UNIQUE проверяет столбец на уникальность строк.

UNIQUE 	Ограничения UNIQUE проверяет столбец на уникальность строк. 	Таблица DEPT:Строка SALES уже естьNAME пусто



Таблица DEPT:



Строка SALES уже есть

NAME пусто


Слайд 14 Определение ограничения UNIQUE
Пример при создании таблицы на уровне

Определение ограничения UNIQUE	Пример при создании таблицы на уровне столбцов:	CREATE TABLE DEPT	(ID

столбцов:
CREATE TABLE DEPT
(ID number(20, 0) primary key ,
NAME varchar2

(50) UNIQUE,
LOC varchar2 (50));

  На уровне таблицы:
CREATE TABLE DEPT
(ID number(20, 0) primary key ,
NAME varchar2 (50),
LOC varchar2 (50),
constraint my_con_uq UNIQUE(NAME));

На имеющуюся таблицу:
ALTER TABLE DEPT
ADD CONSTRAINT con_uq UNIQUE(NAME [, column_name, ...])



Слайд 15 PRIMARY KEY
PRIMARY KEY используется для тех столбцов

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

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

не будет повторяющихся.

PRIMARY KEY = UNIQUE + NOT NULL

Ограничение  PRIMARY KEY обладает следующими свойствами:
в одной таблице может быть только одно ограничение типа  PRIMARY KEY
ограничение проверяет строки на уникальность и на то, чтобы они не были NOT NULL
оно может быть определенно, как на уровне столбца так и на уровне таблицы
поиск по столбцу с ограничением PRIMARY KEY является быстрым поиском (так как по ним автоматически создается индекс)


Слайд 16 Определение ограничения PRIMARY KEY
Пример при создании таблицы на

Определение ограничения PRIMARY KEY	Пример при создании таблицы на уровне столбцов:	CREATE TABLE

уровне столбцов:
CREATE TABLE DEPT
(ID number(20, 0) primary key ,
NAME

varchar2 (50) UNIQUE,
LOC varchar2 (50));

На уровне таблицы:
CREATE TABLE DEPT
(ID number(20, 0),
NAME varchar2 (50) unique not null,
LOC varchar2 (50) not null,
PRIMARY KEY(ID));

На имеющуюся таблицу:
ALTER TABLE DEPT
ADD PRIMARY KEY (ID)



Слайд 17 CHECK
Ограничения CHECK позволяет ставить ограничение на значение

CHECK 	Ограничения CHECK позволяет ставить ограничение на значение столбцов. 	Пример ограничения

столбцов.

Пример ограничения при создании таблицы:
CREATE TABLE EMP
(
ID number(20,0)

primary key,
ENAME varchar (50) not null,
SAL number CHECK(SAL >= 1000)

);

При этом система сама автоматически назначит имя нашему ограничению.

Слайд 18 Определение ограничения CHECK
В этом случае мы сами явно

Определение ограничения CHECK	В этом случае мы сами явно задаем имя нашему

задаем имя нашему ограничению:
 
CREATE TABLE EMP
(
ID number(20,0) primary key,
ENAME

varchar(50) not null,
SAL number,
constraint con_chk CHECK (SAL >= 1000),
);
 
На имеющуюся таблицу:
 
ALTER TABLE EMP
ADD CONSTRAINT con_chk CHECK (SAL>= 0);

Слайд 19 Ссылочная целостность
В базе существуют связи между таблицами, к

Ссылочная целостность	В базе существуют связи между таблицами, к примеру таблицы DEPT

примеру таблицы DEPT и EMP связаны через столбец ID_DEPT.

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


Слайд 20 Интерпретация
А теперь переведем верхнее сказанное на наш язык:
·

Интерпретация	А теперь переведем верхнее сказанное на наш язык:	· каждой строки EMP

каждой строки EMP должен быть определено поле ID_DEPT,

определенное в таблице DEPT в поле ID, или NULL,
· невозможно INSERT INTO EMP указав значение ID_DEPT, которое отсутствует в таблице DEPT в поле ID (за искл. NULL),
· можно запустить INSERT INTO DEPT – указав любое значение полю ID,
· DELETE FROM EMP – срабатывает успешно
·   при DELETE FROM DEPT WHERE ID=XXX – если в EMP нет строк, у которых поле ID_DEPT имеет значение XXX, то DELETE сработает, а если же есть хотя бы одна строка из EMP, у которой поле ID_DEPT имеет значение XXX, то
а) DELETE не сработает, пока все строки из EMP, у которых поле ID_DEPT имеет значение XXX не будут удалены
б) сработает DELETE и автоматически запустится DELETE FROM EMP WHERE ID_DEPT=XXX
в) сработает DELETE и автоматически запустится UPDATE EMP SET ID_DEPT = NULL WHERE DEPTNO=XXX


Слайд 21 Родительские и дочерние таблицы
Таблица EMP получается зависимой

Родительские и дочерние таблицы Таблица EMP получается зависимой от DEPT. Таблицы,

от DEPT.
Таблицы, которые ссылаются на значения других таблиц

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

EMP - дочерняя

DEPT - родительская



Слайд 22 FOREIGN KEY
FOREIGN KEY - это ссылочное ограничение, устанавливается

FOREIGN KEY	FOREIGN KEY - это ссылочное ограничение, устанавливается на дочерний таблицы,

на дочерний таблицы, которое ссылается на столбец в родительской

таблице.
Свойства:
·         FOREIGN KEY может принимать значение из родительского столбца или NULL
·         родительский столбец должен иметь ограничение PRIMARY KEY или UNIQUE.

Назначать FOREIGN KEY  можно как на уровне таблице, так и на уровне столбца.
Пример определения:
 
СREATE TABLE EMP
(ID number(20,0) primary key,
ENAME varchar(50) not null,
SAL number(10) check(SAL >= 1000),
ID_DEPT number not null
REFERENCES DEPT(ID)
[NULL | ON DELETE CASCADE | ON DELETE SET NULL],
);

Слайд 23 Определение ограничения FOREIGN KEY
СREATE TABLE EMP
(ID number(20,0) primary

Определение ограничения FOREIGN KEY	СREATE TABLE EMP	(ID number(20,0) primary key,	ENAME varchar(50) not

key,
ENAME varchar(50) not null,
SAL number(10) check(SAL >= 1000),
ID_DEPT number

not null
CONSTAINT dept_fkey FOREIGN KEY (ID_DEPT)
REFERENCES DEPT(ID)
[NULL | ON DELETE CASCADE | ON DELETE SET NULL],
);
  
NULL - это значение по умолчанию, то есть при удаление родительской записи, удаление разрешается только если нет дочерних записей ссылающихся на родительскую запись,
 
ON DELETE CASCADE - при удаление родительской записи автоматически удаляются все дочерние записи,
 
ON DELETE SET NULL - при удаление родительской записи, автоматически все дочерние записи обновляются на значение NULL.

Слайд 24 Управление ограничениями
Для добавление ограничений к уже созданной

Управление ограничениями 	Для добавление ограничений к уже созданной таблице используется синтаксис: 	ALTER

таблице используется синтаксис:
 
ALTER TABLE table_name
ADD [CONSTRAINT constraint_name]  type (column);

Для

удаление ограничений используется синтаксис:
 
ALTER TABLE table_name
DROP  PRIMARY KEY | UNIQUE (column) |
CONSTRAINT constraint_name [CASCADE]
 
Для просмотра всех имеющихся ограничений, используется представление USER_CONSTRAINTS:
 
SELECT * FROM USER_CONSTRAINTS

  • Имя файла: ogranichenie-tselostnosti-v-oracle.pptx
  • Количество просмотров: 133
  • Количество скачиваний: 1