Общая характеристика ограничений целостности
Определение
Логические ограничения, накладываемые на данные, называются ограничениями целостности.
Ограничение целостности – это свойство, которое для данного множества или отношения либо истинно, либо ложно. Это свойство можно определить следующим образом: если значения данных отвечают существующим знаниям об объекте, то соответствующие ограничениям логические выражения принимают значение «истина». Это значение должно сохраняться для каждого возможного состояния, в котором может находиться объект.
Спецификация ограничений целостности реализуется средствами языка описания ограничений (ЯОО).
Различают спецификации статических и динамических ограничений и, соответственно, два рода средств спецификации.
Статические спецификации выражают правила, которые определяют допустимые (достоверные) состояния базы данных. В этом случае обычно используют исчисление предикатов.
Динамические спецификации определяют допустимые переходы из одного состояния базы данных в другое. Эти спецификации зависят от используемых операций ЯМД.
Верификация ограничений выполняется с учетом следующих требований:
- непротиворечивость,
- удовлетворяемость,
- адекватность существующим знаниям о реальном мире.
Пример ограничения целостности: зарплата подчиненных не может быть больше зарплаты руководителя. Это утверждение, являющееся ограничением целостности, должно быть справедливо в любой момент времени и независимо от изменения зарплат подчиненных и руководителей.
В моделировании данных особую значимость имеют обобщенные ограничения, т.е. ограничения, относящиеся ко всем объектам и реализациям, а не к одной или нескольким конкретным реализациям. Введем некоторые определения.
Рассмотрим некоторую схему базы данных – S. Пусть для этой схемы указано некоторое обобщенное ограничение целостности Ci, и этой схеме соответствует некоторая реализация (состояние) БД – DBSk.
Тогда:
1. Ограничение Ci будет
- правильно построено, если оно соответствует синтаксическим правилам спецификации ограничений;
- удовлетворено состоянием DBSk, если оно истинно для DBSk;
- удовлетворяемо, если существует некоторое DBSj, удовлетворяющее Ci;
- недостоверно, если никакие состояния БД не удовлетворяют Ci.
2. Состояние БД
- удовлетворяет схеме S, если удовлетворяет всем ее ограничениям;
- непротиворечиво, если удовлетворяет всем ограничениям.
3. Схема S является
- удовлетворяемой, если существует некоторое состояние БД, удовлетворяющее ей;
- противоречивой, если никакое состояние БД ей не удовлетворяет.
Ограничения могут быть внутренними (неявными) и явными. Внутренние ограничения предусматриваются самой моделью данных и тесно связаны со структурой БД. Операции манипулирования данными хорошо согласуются с ними, поэтому контроль соблюдения внутренних ограничений не вызывает трудностей и, как правило, не требует от разработчика каких-либо дополнительных усилий. Явные ограничения задаются разработчиками; обеспечение контроля явных ограничений – серьезная проблема реализации.
• Внутренние (неявные)
– принадлежность атрибута домену
• Явные
– возраст > стаж работы
9. Модель данных «сущность – связь» Чена
В модели "сущность-связь" используется более естественное представление, в соответствии с которым реальный мир состоит из "сущностей" и "связей". Эта модель основывается на некоторой важной семантической информации о реальном мире. Модель может обеспечить высокую степень независимости данных и основывается на теории множеств и реляционной теории.
Модель "сущность-связь" предложена в 1976 году Ченом и с тех пор неоднократно усовершенствовалась Ченом и многими другими.
Чен предложил уровни абстракции представления информации.
Питер Чен (P. Chen), разрабатывая модель данных «сущность-связь», предложил следующие четыре уровня представления информации:
1. Информация, относящаяся к объектам и связям, как она существует в нашем представлении.
2. Структура информации – организация информации, в которой объекты и связи представлены данными.
3. Структура данных, независимая от способа доступа (т.е. не связанная со схемами поиска, индексации и т.п.)
4. Структура данных, зависимая от способа доступа.
Средством, позволяющим представить данные на определенном уровне абстракции, служат модели данных.
Определение
Модель данных – это интегрированный набор понятий для описания данных, связей между ними и ограничений, накладываемых на данные в некоторой организации.
Наиболее распространенные модели данных:
– семантические (к ним можно отнести модели данных сущность-связь, бинарные, семантические сети, объектно-ориентированные);
– реляционная,
– сетевая,
– иерархическая.
Модель данных «сущность – связь» поддерживает первый и второй уровни абстракции. Как и любая модель данных, она включает три компонента: определение структуры, ограничения целостности, набор операций. Прежде всего, рассмотрим структурные компоненты модели данных.
9.1. Уровень 1 – информация о сущностях и связях
Информация, относящаяся к объектам и связям, как она существует в нашем представлении.
В соответствии с названием, основными структурными компонентами модели данных являются сущности (entity) и связи (relationship).
Определение
Сущность – нечто, принадлежащее объективной реальности, облаченное в материальную форму или форму идеи; любой объект, который может быть идентифицирован некоторым способом, отличающим его от других объектов, и информацию о котором надо хранить в БД.
Примеры сущностей: ЛИЧНОСТЬ, КОМПАНИЯ, СДЕЛКА
Определение
Связь – некоторая ассоциация, устанавливаемая между двумя или более сущностями.
Пример: СОТРУДНИК ПРЕДПРИЯТИЯ – связь между сущностями ЛИЧНОСТЬ и ПРЕДПРИЯТИЕ.
Сущности: тип сущности и множество сущностей
Будем обозначать сущности, которые существуют в нашем воображении, через e.
Тип сущности – некоторое обобщенное представление однородных сущностей. Например, имеем некоторое множество сущностей: {МОСКВА, ОРЕЛ, КУРСК, …}. Обобщая сущности из этого множества, получаем тип сущности: ГОРОД. Экземпляр сущности – конкретный элемент из множества, например, КУРСК. Таким образом, тип сущности – это интенсионал, а конкретное множество сущностей – экстенсионал типа сущности.
С каждым множеством сущностей связывается предикат, позволяющий проверить, принадлежит ли сущность данному множеству. Следовательно, предикат входит в число свойств, общих для множества сущностей. Например, для множества сущностей СОТРУДНИК можно определить следующий предикат: человек, работающий на предприятии. Задавая предикат, можно включать в него дополнительные условия, например: возраст сотрудника в пределах …, или занимает определенную должность, или что-нибудь еще.
Будем обозначать множество сущностей через E.
Заметим, что множества сущностей не обязаны быть непересекающимися. Например, сущность, принадлежащая множеству сущностей СТУДЕНТ, принадлежит также и множеству сущностей ЛИЧНОСТЬ. В этом случае множество сущностей СТУДЕНТ является подмножеством множества сущностей ЛИЧНОСТЬ.