Обеспечение целостности и достоверности данных

При обсуждении реляционной модели говорилось, что модель содержит правила целостности, которые определяют множество непротиворечивых состояний базы данных и множество изменений ее состояний. Эти правила обеспечиваются контролем ограничения целостности.

Ограничения целостности служат для защиты данных от некорректных изменений. Различают статические ограничения, отражающие множество корректных состояний БД, и динамические, определяющие правильные переходы из состояния в состояние. Соответственно, ограничения целостности обеспечиваются вызовом при модификации данных программ статического или динамического арбитража.

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

уникальность кортежей во всех отношениях;

уникальность и непустоту первичного ключа;

уникальность возможных ключей;

зависимость между атрибутами:

формат атрибутов;

ограничение значений атрибутов.

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

Процедуры контроля исходных данных по заданным ограничениям могут быть как внешними по отношению к базам данных, так и встроенными, если СУБД допускает возможность триггеров и хранимых процедур.

Триггер – это процедура, связанная с одной таблицей базы данных. Роль триггера – обеспечение контроля добавления, удаления или изменения записи. Выполнение контроля может потребовать обращения к другим таблицам базы данных, тогда в работу включаются триггеры этих таблиц, возникает каскад триггеров. Для обеспечения корректности подобной деятельности нередко используют механизм транзакций.

Контроль полномочий

Контроль полномочий (разграничение прав доступа) служит защитой от несанкционированного доступа к данным. Для него обычно используется система паролей, отражающая статусы пользователей. Контроль полномочий позволяет в определённой степени гарантировать защиту данных от несанкционированного доступа и изменения.

 

30.Проектирование данных в CASE-средстве Erwin.

Средства создания модели

Создание ER-модели обычно сопровождается ее графическим представлениемв специальных средствах проектирования программных систем (FoxPro, Access, Oracle и т.п.).

ERwin позволяет создавать модели двух уровней: концептуального и логического. Правда называются они довольно своеобразно: концептуальный называется логическим, а логический – физическим. Представление диаграмм соответствует стандарту IDEF1X. Основные элементы модели следующие: сущности, атрибуты сущностей, домены, связи (четыре вида), индексы. Среди атрибутов выделяются первичные ключи. Кроме первичных, можно отметить возможные (альтернативные) ключи, а также ключи поиска. Внешние ключи формируются автоматически при определении связей, причем, в качестве родительского ключа выбирается первичный.

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

После выбора СУБД появляется возможность привязки к типам данных, принятых в этой СУБД.

Работа со средством создания моделей данных ERwin

Сущности, атрибуты, ключи

Логическая модель ERwin имеет несколько уровней отображения диаграммы: уровень сущностей, уровень атрибутов, уровень определений, уровень первичных ключей и уровень пиктограмм. Переключиться между первыми тремя уровнями можно с использованием кнопок панели инструментов. Переключиться на другие уровни отображения можно при помощи контекстного меню.

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

диаграмма сущность-связь (Entity Relationship Diagram, ERD);

модель данных, основанная на ключах (Key Based model, KB);

полная атрибутивная модель (Fully Attributed model, FA).

Диаграмма сущность-связь представляет собой модель данных верхнего уровня. Она включает сущности и связи, отражающие основные понятия предметной области. В нее включаются сущности и связи между ними, которые удовлетворяют основным требованиям, предъявляемым к ИС. Диаграмма сущность-связь может включать связи «многие ко многим» и не включать описание ключей.

Модель данных, основанная на ключах –более подробное представление данных. Она включает описание всех сущностей и первичных ключей, которые соответствуют предметной области.

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

Построение модели данных предполагает определение сущностей и атрибутов: необходимо определить, какая информация будет храниться в конкретной сущности или атрибуте. Сущности должны иметь наименование с четким смысловым значением, именоваться существительным в единственном числе, не носить «технических» наименований.

Рассмотрим множество типов ключей в модели IDEF1X. Общее для них – обеспечение доступа к данным. Но роли их в модели различны.

Первичный ключ (primary key) – это атрибут или группа атрибутов, однозначно идентифицирующая экземпляр сущности.

Внешние ключи (Foreign Key(FK)) создаются автоматически, когда связь соединяет сущности: связь образует ссылку на атрибуты первичного ключа в дочерней сущности, и эти атрибуты образуют внешний ключ в дочерней сущности (миграция ключа).

Связи

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

Каждая связь должна именоваться глаголом. Имя связи выражает некоторое ограничение и облегчает чтение диаграммы, например:

Каждый Студент<входит в> Группу;

Каждая Группа<содержит> Студента.

Связь показывает, какие именно студенты входят в группу и какая именно группа содержит студента.

В модели «сущность-связь» определены независимые и зависимые сущности, причём, степень зависимости отображается на диаграмме. В стандарте IDEF1X на диаграмме выделяется только сильная зависимость, которая определяется идентифицирующей связью. Слабо зависимая сущность по виду не отличаются от независимой, но её можно определить по наличию неидентифицирующей связи. Связь устанавливается между независимой (родительский конец связи) и зависимой (дочерний конец связи) сущностями. При установлении связи атрибуты первичного ключа родительской сущности автоматически переносятся в состав дочерней сущности. Эта операция называется миграцией атрибутов. В дочерней сущности новые атрибуты помечаются как внешний ключ (FK).

Когда проводится идентифицирующая связь, ERwin автоматически преобразует дочернюю сущность в зависимую, которая изображается прямоугольником со скруг-ленными углами. Экземпляр зависимой сущности определяется только через отноше-ние к родительской сущности. При установлении идентифицирующей связи миграцией атрибутов производится в состав первичного ключа дочерней сущности.

Идентифицирующая связь показывается на диаграмме сплошной линией с жир-ной точкой на дочернем конце связи, неидентифицирующая – пунктирной.

Можно задать мощность, имя и тип связи.

Мощность связи (Cardinality) служит для обозначения отношения числа экземпляров родительской сущности к числу экземпляров дочерней. Различают четыре типа мощности:

общий случай, когда одному экземпляру родительской сущности соответствуют 0, 1 или более экземпляров дочерней сущности, не помечается;

символом Рпомечается случай, когда одному экземпляру родительской сущности соответствуют один или более экземпляров дочерней сущности (исключено нуле-вое значение);

символом Zпомечается случай, когда одному экземпляру родительской сущности соответствуют 0 или 1 экземпляр дочерней сущности (исключены множественные значения);

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

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

Рассмотрим типы зависимых сущностей.

Характеристическая – зависимая сущность, которая связана только с одной родительской и хранит информацию о её характеристиках.

Ассоциативная – связанная с несколькими родительскими сущностями. Содержит информацию о связях сущностей.

Именующая – частный случай ассоциативной, не имеющей собственных атрибутов, только атрибуты родительских сущностей, мигрировавших в качестве внешнего ключа.

Категориальная – дочерняя сущность в иерархии наследования.

Иерархия наследования (или иерархия категорий) представляет собой особый тип объединения сущностей, которые разделяют общие характеристики. Иерархии категорий делятся на два типа – полные и неполные. В полной категории одному экземпляру родового предка обязательно соответствует экземпляр в каком-либо потомке. Если категория еще не выстроена полностью и в родовом предке могут существовать экземпляры, которые не имеют соответствующих экземпляров в потомках, то такая категория будет неполной.

Индексы

Чтобы решить проблему поиска данных, СУБД использует особый объект, называемый индексом. Индекс указывает на строки, в которых хранится конкретное значение колонки. Поскольку значения (статьи) в индексе хранятся в определенном порядке, просматривать нужно гораздо меньший объем данных. Индекс создаётся для тех колонок, по которым часто производится поиск.

При генерации схемы физической БД ERwin автоматически создает отдельный индекс на основе первичного ключа каждой таблицы, а также на основе всех альтернативных ключей, внешних ключей и инверсионных входов, поскольку эти колонки наиболее часто используются для поиска данных.