- •Конспект лекций
- •Основные определенИя. Элементы субд.
- •Основные определения.
- •Система управления базами данных (субд)
- •Характеристика различных моделей баз данных.
- •Иерархические модель базы данных
- •1.4. Сетевая модель базы данных
- •Вопросы для самопроверки.
- •Общая характеристика реляционной модели данных
- •Фундаментальные свойства отношений.
- •Состав реляционной бд.
- •Базисные средства манипулирования реляционными данными
- •Элементы реляционной алгебры.
- •Реляционное исчисление.
- •Проектирование реляционных баз данных.
- •Проектирование баз данных на основе модели "Сущность-связь"
- •Элементы модели "сущность-связь"
- •Отображение подтипов в er-модели.
- •Общий порядок разработки модели бд на основе er моделирования.
- •4.1.4. Нормальная форма Бойса - Кодда (bcnf )
- •Механизмы работы с бд.
- •Ограничения
- •Описание ограничений
- •Механизмы реализации прикладной логики
- •Объявление курсора
- •Глобальные переменные работающие с курсорами
- •9.4. Исключения
- •Разработка клиентских приложений на основе архитектуры «Клиент – сервер»
- •Управление транзакции
- •Управление транзакциями (ут)
- •Управление на основе метода блокировок
- •Управление параллелизмов с использованием меток времени
- •Восстановление транзакций
- •Восстановление бд при различных режимах ведения журналов транзакций
- •Объектно-ориентированная модель бд
- •Отображение связей объектов в оом
- •Системы управления распределенными бд (сурбд)
- •Механизмы обеспечения прозрачности транзакций
- •Особенности проектирования распределенных бд
- •Типы пользователей
- •Создание учетных записей пользователей
- •Создание учетных записей пользователей в Sybase и Microsoft sql Server
- •Создание схемы.
- •Привилегии
-
Механизмы работы с бд.
Под механизмами подразумеваются действия над данными, выполняемые автоматически, обеспечивающие сохранение целостности данных и реализующие логику работы предметной области.
Механизмы обеспечения целостности. Механизмы обеспечения целостности реализуются в виде ограничений и более сложных элементов – триггеров (об этом позже)
-
Ограничения
Ограничения позволяют обеспечить целостность БД с точки зрения соответствия их основным свойствам реляционных отношений
-
уникальность первичных ключей,
-
сохранение связей по внешним ключам,
кроме того ограничения позволяют реализовать обеспечение целостности с точки зрения соответствия требованиям предметной области (запись в качестве значения атрибутов только тех данных, которые отвечают предъявленным к ним ограничениям)
Ограничения можно разделить на следующие группы:
-
ограничения первичного ключа;
-
уникальность значения атрибута;
-
ограничение внешнего ключа;
-
ограничение типа check;
-
not NULL;
-
ограничения общего вида;
триггеры, (хотя триггеры, в общем случае, объекты более широкого назначения, чем ограничения, но часто используются для реализации ограничений.).
По месту объявления,
ограничения разделяют на ограничения
-
уровня атрибута , то есть при описании атрибута в операторах создания или модификации отрношения
-
и уровня кортежа.
На уровне атрибута могут задаваться ограничения первичного ключа, уникальности, типа check, not NULL.
Ограничения уровня кортежа задаются после описания атрибутов, отдельно, так же в операторах создания нового отношения или модификации.
CREATE TABLE или ALTER TABLE.
-
Описание ограничений
Ограничения первичного ключа
[contraint ИмяОгр] primary Key [(Атр1[Атр2])]
ИмяОгр, имя, присваемое ограничению, его можно использовать при модификации ограничений. Если ограничения задаются на уровне, атрибута, то оно указывается после описания соответствующего атрибута. Если ограничение задаётся на уровне кортежа, то его описание задаётся после описания всех атрибутов. При этом указывается список атрибутов, на основе которых задаётся первичный ключ.
Ограничения уникальности задаются аналогично, ключевое слово UNIQUE – ограничение внешнего ключа.
Ограничение внешнего ключа задает целостность отношений по ссылкам, т.е. чтобы на каждый картеж, в котором задан внешний ключ, существовал кортеж связанном с ним отношении.
Задание ограничений внешнего ключа.
[constraint ИмяОгранич] Foreign Key [(Атр1[Атр2]…)]
references БазОтн (АтрБ1[АтрБ2]…)
[on delete {cascade/ no action }]
[on update {cascade/no action}]
АтрБ1[АтрБ2]…– атрибуты базового отношения, на которые ссылается внешний ключ.
Ограничение внешнего ключа обеспечивает целостность по ссылкам следующими способами:
1. Отмена выполняемых действий
2. Каскадная модификация, т.е. если модифицируется атрибут внешнего ключа, то производится модификация соответствующего ключа атрибута базового отношения.
3. Задаётся значение NULL для атрибутов, для которых нет соответствия в атрибутах базового отношения.
Ограничение check.
Данное ограничение позволяет задавать произвольные условия, контролирующие значение вводимого атрибута.
[constrant ИмяОгр] check (условие)
Ограничение NOT NULL позволяет исключить возможность ввода значения NULL в атрибут отношения. Используются только на уровне атрибута.
Ограничение первичных ключей, внешних ключей, check и NOT NULL можно модифицировать с помощью оператора ALTER.
Alter table Отн {drop|Add} constrant ИмяОгр
Удалять можно ограничения уровня атрибута и кортежа, а добавлять ограничения только как ограничения кортежа.
Ограничения общего вида не связаны с какой-либо одной таблицей. Они выполняются при модификации любой таблицы базы
CREATE ASSERTION ИмяОгр CHECK(c)
c – условие, которое должно иметь значение true, чтобы выполнить любое действие по изменению кортежей отношений к базе данных. Данное ограничение не поддерживает Transact SQL.