Методические указания по выполнению лабораторных занятий



бет41/102
Дата01.09.2022
өлшемі3,94 Mb.
#38357
түріМетодические указания
1   ...   37   38   39   40   41   42   43   44   ...   102
Байланысты:
Технология проектирования программных систем

5NF (нормальная форма проекции соединения, PJNF). Отношение находится в 5NF, если в нем нет зависимостей соединения.
Зависимость соединения. В отношении с атрибутами А, В и С существует зависимость соединения, если для каждого значения атрибута А имеется набор значений атрибута В (A −>> B) и набор значений атрибута С (A −>> С), а также существует многозначная зависимость между атрибутами В и С (В −>> С или С −>> B).
Например, таблица «Дисциплины» характеризуется набором атрибутов {Кафедра, Преподаватель, Дисциплины}, первичный ключ – весь набор атрибутов. В данной таблице имеется несколько многозначных зависимостей: на кафедре работает несколько преподавателей (Кафедра −>> Преподаватель), кафедра ведет несколько дисциплин учебного плана (Кафедра −>> Дисциплина), преподаватель может вести несколько дисциплин (Преподаватель −>> Дисциплина) и, наоборот, одну дисциплину могут вести разные преподаватели (Дисциплина −>> Преподаватель). Для устранения зависимости соединения следует разбить исходную таблицу на три (рис. 7.18).

Рис. 7.18. Приведения отношения к 5NF
3. Проверка выполнения транзакций.
Наиболее частыми операциями по работе с БД являются ввод, удаление и модификация записей, а также выборка данных. На основе текущей ERD необходимо проверить выполнимость и, далее, корректность выполнения всех требуемых операций по работе с БД. Примеры транзакций:
 изменение наименования раздельного пункта;
 удаление задания на расчет;
 выборка данных по раздельным пунктам расчетного пути участка и т. д.
4. Определение требований поддержки целостности данных.
Ограничения целостности данных представляют собой ограничения, которые вводятся с целью предотвращения помещения в базу противоречивых данных.
К этим ограничениям относятся:
 обязательные данные – атрибуты, которые всегда должны содержать одно из допустимых значений (NOT NULL). Например, поворот кривой (влево или вправо) должен быть обязательно задан. Обязательными также являются все атрибуты, входящие в первичный ключ сущности;
 домены – наборы допустимых значений для атрибута. Например, радиус кривой должен быть положительным числом не более 4 цифр или поворот кривой может принимать одно из двух допустимых значений – «Л» (влево) или «П» (вправо);
 бизнес-правила (бизнес-ограничения) – ограничения, принятые в рассматриваемой предметной области. Например, сумма длин переходных кривых не должна быть более длины всей кривой, километраж начала или конца кривой должен быть в пределах общего километража пути и т. д.;
 ссылочная целостность – набор ограничений, определяющих действия при вставке, обновлении и удалении записей (экземпляров сущности). Например:
o при наличии обязательной связи вставка записи в дочернюю сущность требует обязательного заполнения атрибутов внешнего ключа, и введенному значению должна соответствовать запись родительской сущности;
o аналогичное требование выдвигается при обновлении внешнего ключа в дочерней сущности;
o удаление записи из дочерней сущности или вставка записи в родительскую не вызывают нарушения ссылочной целостности;
o удаление записи в родительской сущности может требовать удаления всех связанных записей в дочерней сущности.
Автоматическая поддержка всех видов ограничений целостности возможна за счет использования операторов SQL.
Ссылочная целостность может быть обеспечена за счет использования триггеров. Триггер – это хранимая в БД процедура, вызываемая автоматически при выполнении удаления (DELETE), вставки (INSERT) или обновления (UPDATE) записи. Набор команд, входящих в триггер, зависит от принятой стратегии (типа триггера) поддержания целостности. Рассмотрим типы триггеров на примере удаления записи:
 RESTRICT (ограничение действия). Удаление записи из родительской таблицы запрещается, если в дочерней таблице существует хотя бы одна зависимая запись;
 CASCADE (каскадное удаление или обновление). При удалении записи из родительской таблицы автоматически удаляются все связанные с ней записи дочерней таблицы. Если удаляемая запись из дочерней таблицы выступает в качестве родительской стороны в некоторой другой связи, то операция удаления применяется ко всем записям дочерней таблицы этой связи и т.д.;
 SET NULL (установка неопределенного значения). При удалении записи из родительской таблицы во всех связанных с ней записях дочерней таблицы в атрибуты внешнего ключа записываются неопределенные значения (NULL). Такой тип триггера возможен только для необязательных связей;
 SET DEFAULT (установка значения по умолчанию). При удалении записи из родительской таблицы во всех связанных с ней записях дочерней таблицы в атрибуты внешнего ключа записываются заранее определенные значения по умолчанию. Такой тип триггера возможен только для необязательных связей;
 NO CHECK или NONE или IGNORE (без проверки). При удалении записи из родительской таблицы никаких действий по сохранению ссылочной целостности данных не предпринимается.
Назначение типа триггера на действия с записями является ответственной операцией. Выбор неверного типа может привести к нарушению ссылочной целостности в БД. Особой осторожности требует выбор каскадного удаления, ведь при таком удалении по цепочке могут быть удалены сотни и тысячи записей из разных таблиц. 
7.5. Пример построения логической модели
На рис. 7.19 приведен блок «Информация об участках дороги» логической информационной модели. Данная модель соответствует третьей нормальной форме.

Рис. 7.19. Блок «Информация об участках дороги» логической информационной модели
На рис. 7.19 также показаны триггеры на действия, выполняемые как со стороны родительской сущности, так и со стороны дочерней. Триггеры показаны в следующем формате «Действие : Тип триггера». Действие может быть одного из трех типов: D (DELETE), I (INSERT) и U (UPDATE). Тип триггера обозначается: C (CASCADE) и R (RESTRICT).
Логическая модель построена с использованием ERwin 4.0. 
7.6. Физическое проектирование с использованием методологии IDEF1X


Достарыңызбен бөлісу:
1   ...   37   38   39   40   41   42   43   44   ...   102




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет