
- •Содержание
- •Основные понятия
- •Понятие данных
- •Файловые системы
- •Системы баз данных
- •История развития субд
- •Трехуровневая архитектура ansi/sparc
- •Общая характеристика моделей данных
- •Основные понятия модели данных
- •Представление статических и динамических свойств
- •Общая характеристика структурных компонентов. Множества: домены и атрибуты
- •Общая характеристика структурных компонентов. Отношения: сущности
- •Общая характеристика структурных компонентов. Отношения: связи
- •Общая характеристика ограничений целостности
- •Модель данных «сущность – связь»
- •Уровни представления информации
- •Уровень 1 – информация о сущностях и связях
- •Уровень 2. Структура информации
- •Ограничения целостности в модели сущность-связь
- •Расширенная модель данных сущность-связь: нотация idef1x
- •Реляционная модель данных
- •Базовые структурные компоненты реляционной модели данных
- •Целостная часть реляционной модели данных
- •Языковые средства описания данных
- •Манипуляционная часть реляционной модели данных
- •Подмножество sql для манипулирования данными
- •Примеры написания запросов
- •I. И еще несколько примеров написания запросов из документации [10]
- •Краткая характеристика языка sql pl db2® udb
- •Дополнительные возможности описания ограничений целостности
- •Дополнительные возможности db2
- •Описание данных
- •Манипулирование данными
- •Дополнительные возможности формирования запросов
- •Типы данных, определенные пользователем
- •Функции, определенные пользователем
- •Теория проектирования реляционных баз данных
- •Цели проектирования
- •Функциональные зависимости
- •1. Рефлексивность
- •2. Пополнение
- •3. Транзитивность
- •4. Псевдотранзитивность
- •5. Аддитивность (объединение)
- •6. Декомпозиция (проективность)
- •7. Композиция
- •Нормализация отношений
- •Внутренние структуры хранения
- •Структурная схема обработки запроса
- •Бинарные деревья
- •Многоходовые деревья
- •Сравнение методов индексирования
- •Создание индексов в db2®
- •Организация файлов базы данных в db2®
Общая характеристика ограничений целостности
Таким образом, структурными компонентами модели данных являются отношения и связи между отношениями. Отношения задаются своими схемами. Схема отношения определяется через атрибуты, определенные на доменах. Следовательно, все допустимые значения атрибутов должны удовлетворять условию принадлежности конкретному домену.
Подобные спецификации не исчерпывают свойства данных, которые целесообразно представлять в модели данных, в соответствии с предметной областью. Необходимы дополнительные средства выражения ограничений на значения данных и их соотношения, которые не могут быть выражены структурой.
Определение
Логические ограничения, накладываемые на данные, называются ограничениями целостности.
Ограничение целостности – это свойство, которое для данного множества или отношения либо истинно, либо ложно. Это свойство можно определить следующим образом: если значения данных отвечают существующим знаниям об объекте, то соответствующие ограничениям логические выражения принимают значение «истина». Это значение должно сохраняться для каждого возможного состояния, в котором может находиться объект.
Спецификация ограничений целостности обладает автономией по отношению к структурным спецификациям и реализуется средствами языка описания ограничений (ЯОО, или CDL – Constraints Definition Language).
Различают спецификации статических и динамических ограничений и, соответственно, два типа способов спецификации.
Статические спецификации выражают правила, которые определяют допустимые (достоверные) состояния базы данных. В этом случае обычно используют исчисление предикатов.
Динамические спецификации определяют допустимые переходы из одного состояния базы данных в другое. Эти спецификации зависят от используемых операций ЯМД.
Верификация ограничений выполняется с учетом следующих требований:
непротиворечивость,
удовлетворяемость,
адекватность существующим знаниям о реальном мире.
В моделировании данных особую значимость имеют обобщенные ограничения, т.е. ограничения, относящиеся ко всем объектам и реализациям, а не к одной или нескольким конкретным реализациям.
Пример ограничения целостности: зарплата подчиненных не может быть больше зарплаты руководителя. Это утверждение, являющееся ограничением целостности, должно быть справедливо в любой момент времени и не должно зависеть от изменения зарплат подчиненных и руководителей.
Введем некоторые определения.
Рассмотрим некоторую схему базы данных – S. Пусть для этой схемы указано некоторое обобщенное ограничение целостности Ci, и этой схеме соответствует некоторая реализация (состояние) базы данных – DBSk.
Тогда:
Ограничение Ci будет
правильно построено, если оно соответствует синтаксическим правилам спецификации ограничений;
удовлетворено состоянием DBSk, если оно истинно для DBSk;
удовлетворяемо, если существует некоторое DBSj, удовлетворяющее Ci;
недостоверно, если никакие состояния базы данных не удовлетворяют Ci.
Состояние базы данных
удовлетворяет схеме S, если удовлетворяет всем ее ограничениям;
непротиворечиво, если удовлетворяет всем ограничениям.
Схема S является
удовлетворяемой, если существует некоторое состояние базы данных, удовлетворяющее ей;
противоречивой, если никакое состояние базы данных ей не удовлетворяет.
Ограничения могут быть внутренними (неявными) и явными. Внутренние ограничения предусматриваются самой моделью данных и тесно связаны со структурой базы данных. Операции манипулирования данными хорошо согласуются с ними, поэтому контроль соблюдения внутренних ограничений не вызывает трудностей и, как правило, не требует от разработчика каких-либо дополнительных усилий. Явные ограничения задаются разработчиками; обеспечение контроля явных ограничений – серьезная проблема реализации.