Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзамену по БД (ВФ) / !Все ответы по БД v0.2.13.docx
Скачиваний:
189
Добавлен:
10.05.2014
Размер:
3.32 Mб
Скачать

14. Типы ограничений целостности, основные типы данных, основные операции реляционной модели данных.

Ограничения целостности - совокупность правил, позволяющих обеспечить в любой момент времени правильность данных (непротиворечивость, удовлетворяемость, адекватность существующим знаниям о реальном мире). Эти правила устанавливаются исходя из семантики предметной области. Ограничения могут быть внутренними (неявными) и явными. Внутренние ограничения предусматриваются самой моделью данных и тесно связаны со структурой данных. С ограничениями этого типа хорошо согласуются операции манипулирования данными, поэтому контроль над соблюдением внутренних ограничений обычно не вызывает трудностей. Как правило, внутренние ограничения целостности задаются вместе с определением структурных спецификаций средствами языка описания данных (ЯОД - Data Definition Language(DDL)). Явные ограничения включаются в структуру базы данных с помощью средств языка контроля данных (DCL, Data Control Language). В качестве явных ограничений чаще всего выступают условия, накладываемые на значения данных. Например, номер паспорта является уникальным, заработная плата не может быть отрицательной, а дата приёма сотрудника на работу обязательно будет меньше, чем дата его перевода на другую работу.

К внутренним ограничениям целостности в нотациях IDEF1X можно отнести: 1) ограничения на значения ключевых атрибутов: уникальность значений атрибутов первичных и альтернативных ключей определяется понятием ключа. Эти ограничения задаются соответствующим выделением ключей в концептуальной схеме (PRIMARY KEY, UNIQUE); 2) ограничения на допустимые значения атрибутов: все допустимые значения атрибутов должны удовлетворять условию принадлежности соответствующему домену. Эти ограничения задаются соответствующим описанием доменов и атрибутов. Кроме того, в описании атрибутов указывается обязательность значений определенных атрибутов (NULL, NOT NULL); 3) ограничения на существующие значения (ссылочные ограничения): существование одних сущностей (дочерних, типа категория) ставится в зависимость от существования других (родительских, родовых). Эти ограничения представляются с помощью соответствующих связей между множествами сущностей. Явные ограничения целостности задаются разработчиками.

Если какое-либо ограничение целостности (ОЦ) нельзя реализовать средствами DDL, то возможны следующие способы его реализации: 1) С помощью процедурных объектов БД. Чаще всего для этой цели используются триггеры (trigger). Триггер – это процедура БД, которая привязана к конкретной таблице и вызывается автоматически при наступлении определённого события (добавления, удаления или модификации данных этой таблицы). Если триггер диагностирует нарушение ограничений целостности, он выдаст сообщение об ошибке и команда модификации данных не будет выполнена (произойдёт автоматический откат, rollback). 2) Программно (т.е. через приложение). Для большей гарантии соблюдения ОЦ желательно проектировать программу так, чтобы внесение изменений в данные и проверка ОЦ выполнялись в одном единственном месте. 3) Вручную. Ручная процедура обязательно должна быть описана в документации (в руководстве пользователя).

Требование целостности сущностей: любой кортеж любого отношения должен быть отличим от любого другого кортежа этого же отношения. Ограничения: уникальность других атрибутов (АК); обязательность значений атрибутов (NULL, NOT NULL); допустимость значений атрибутов (CHECK).

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

Типы данных: Числовые - используются для представления целых, вещественных и десятичных чисел: SMALLINT, INTEGER, REAL, DECIMAL, и далее... Строковые типы данных - используются для представления символьных строк: CHAR[(len)]), VARCHAR[(len)] Типы данных дата – время используются для представления даты и времени: DATETIME, TIMESTAMP.

Основные операции: Операция конкатенации (CONCAT или || или +) - выполняет сцепление двух строковых операндов и образует строковое выражение. Арифметические операции можно использовать с операндами числовых типов. Префиксная операция + (унарный плюс) не изменяет значение своего операнда. Префиксная операция (унарный минус) изменяет знак не нулевого операнда. Бинарные операции (/, *, +, -) определяют сложение, вычитание, умножение и деление, соответственно. Операции над датой и временем. Значения даты и времени можно увеличивать, уменьшать и вычитать. Эти операции могут включать десятичные числа – продолжительность. Продолжительность – это число, представляющее интервал времени.

По типу производимых действий различают следующие операции: идентификация данных и нахождение их позиции в БД; выборка (чтение) данных из БД; включение (запись) данных в БД; удаление данных из БД; модификация (изменение) данных БД.