47477 (608272), страница 2
Текст из файла (страница 2)
Если A является элементом кандидатного ключа, то будем называть A первичным атрибутом. Под тривиальной функциональной зависимостью здесь понимается зависимость типа xA -> A. Эта зависимость тривиальна, поскольку Х не принимает участия в идентификации первичного атрибута, лишь подразумевается в его определении.
Это определение - всего лишь оригинальный способ выразить необходимость представления системы связанных таблиц в таком виде, чтобы атрибуты каждой таблицы непосредственно определялись либо суперключом, либо кандидатным ключом этой таблицы. В предыдущем примере реализация определения ЗНФ состоит в выделении таблицы Контролирующие лица.
Для большинства существующих СУБД и инструментов CASE-технологии необходимо представить проект вашей базы данных в ЗНФ, так как этого вполне достаточно практически для всех обычных приложений. При разработке исключительно больших систем на сверхбыстродействующих компьютерах, когда необходимо обеспечить максимальное сокращение объемов хранимых данных, желательно провести дальнейшую нормализацию.
Таблица Х представлена в нормальной форме Бойса-Кодда (БКНФ), если в каждой нетривиальной функциональной зависимости В -> А, В является суперключом.
Уместно сделать несколько замечаний о недостатках, присущих даже таблицам, представленным в ЗНФ. Существуют варианты, когда имеет смысл разделить таблицу на более мелкие таблицы, если часть представленных в ней данных непостоянна и часто обновляется, а остальные данные пассивны и изменяются в редких случаях. Также есть смысл объединить таблицы, когда необходимо обеспечить высокую скорость реакции на запрос. Можно даже пойти на дублирование данных в таблицах, если это позволит снизить затраты на обработку запросов, хотя формально не следовало бы этого делать. Иногда приходится отступить от принципа полной нормализации данных проекта. Это может быть вызвано следующими причинами:
-
временем выполнения запросов;
-
временем проведения обновлений;
-
общим необходимым объемом хранилища данных;
-
аномалиями удаления, которые могут вызвать потерю целостности данных.
И ЗНФ и БКНФ являются теоретическими конструкциями, в то время как большинство разработчиков баз данных работают в реальном мире.
Четвертая и пятая нормальные формы.
Прежде чем закончить рассмотрение правил Кодда, вам будет предложен краткий обзор двух последних правил реляционных баз данных. Эти два правила предназначены для устранения еще двух аномалий, называемых многозначная зависимость и объединяющая зависимость.
Многозначная зависимость определяется следующим образом.
В таблице Х существует многозначная зависимость А -> В, если в этой таблице можно обнаружить ситуации, в которых пара строк содержит дублирующееся значение А и одновременно существуют другие пары строк, полученные путем перестановки значений В, присутствующих в первой паре.
Прежде всего, для существования многозначной зависимости требуется существование пар строк. А и В могут быть как отдельными атрибутами, так и объединением некоторого набора атрибутов. Тривиальная многозначная зависимость для А -> В существует в случае, когда В является подмножеством А или А объединяет B = xS (более крупная таблица содержит исходную таблицу). Существование многозначной зависимости порождает аномалию обновления. Четвертая нормальная форма устраняет нетривиальную многозначную зависимость в таблице посредством создания меньших таблиц. Процесс нормализации представляет собой создание как можно большего числа все более мелких таблиц в целях сокращения избыточности данных.
Определим четвертую нормальную форму.
Таблица Х представлена в 4НФ тогда и только тогда, когда она представлена в БКНФ и для любой многозначной зависимости А -> В в этой таблице можно сказать, что эта зависимость либо является тривиальной, либо А является суперключом таблицы X.
И последнее. Рассмотрим пятую нормальную форму.
Пятая нормальная форма достигается в том случае, когда таблица не может далее разбиваться на более мелкие таблицы посредством операции проектирования.
Под операцией проектирования понимается не вызывающая потерь данных декомпозиция, при которой таблица разбивается на части таким образом, что остается возможность объединения полученных меньших таблиц для получения в результате исходной таблицы.
-
Бизнес правила
-
Факты
-
При создании трубопровода создается участок трубопровода.
-
Ограничения
-
Пользователь не может удалить участок трубопровода, если их количество не превышает одного.
-
Пользователь не может сохранить изменения в базе пока не введет все необходимые данные.
-
Активаторы
-
Если срок эксплуатации участка трубопровода истек, то необходимо уведомить пользователя об этом.
-
Если в базе хранятся не все необходимы данные о трубопроводе, то необходимо уведомить пользователя об этом.
-
Вывод
-
Если удаляется трубопровода, то удаляются все его участки, комментарии к нему и обследования с целью продления срока службы.
-
Если удаляется участок трубопровода, то удаляются все его испытания, ревизии, отказы, ремонты, диагностики.
-
Вычисления
-
Общая длина трубопровода вычисляется как сумма длин участков трубопровода.
-
При вводе даты последнего обследования и выбора периодичности обследования, вычисляется дата следующего обследования.
-
Требования к БД
-
доступ через локальную вычислительную сеть;
-
вся информация должна представляться в определенном виде в соответствии с разработанной структурой;
-
в БД должен предусмотрен поиск;
-
в качестве минимальных входных данных должны рассматриваться:
-
вид трубопровода;
-
тип трубопровода;
-
наименование трубопровода.
-
предупреждать пользователя если он не ввел все данные о трубопроводе или участке трубопровода;
-
выдавать сообщения пользователю о наиболее важных изменениях в состоянии трубопровода и не введенных наиболее важных данных.
-
-
КОНСТРУКТОРСКАЯ ЧАСТЬ
-
-
Структура системы
-
Для реализации поставленной задачи необходимо разработать три подсистемы:
-
подсистема хранения данных;
-
подсистема доступа к базе данных;
Подсистема хранения данных представляет собой реляционную базу данных.
Подсистема доступа к базе данных должна предоставлять пользовательские функции для работы с информацией о магистральных трубопроводах.
-
Проектирование базы данных
Для реализации поставленной задачи необходимо создать таблицы:
-
«Трубопроводы»,
-
«Участки трубопроводов»,
-
«Примечание»,
-
«Обследование с целью продления срока службы»,
-
«Ремонт на участках»,
-
«Ревизия участков трубопроводов»,
-
«Диагностика участков трубопроводов»,
-
«Испытание участков трубопроводов»,
-
«Отказы на участках».
«Трубопроводы». В этой таблице хранятся основные данные.
-
«Вид». Значение этого атрибута является вид трубопровода. Вид трубопровода выбирается пользователем из справочника «Виды трубопровода».
-
«Наименование трубопровода». Значением этого атрибута является название трубопровода, задаваемое пользователем.
-
«Наименование начала линии(трубы)». Значением этого атрибута является название начала линии, задаваемой пользователем.
-
«№ точки подключения». Значением этого атрибута является номер точки подключения, задаваемой пользователем.
-
«Наименование конца линии(трубы)». Значением этого атрибута является название конца линии, задаваемой пользователем.
-
«Количество отказов». Значением этого атрибута является числовое значение, соответствующее количеству отказов трубопровода.
-
«Категория трубопровода». Значением этого атрибута является категория трубопровода, выбираемая пользователем из справочника «Категория трубопровода».
-
«Транспортируемый продукт». Значением этого атрибута является транспортируемый продукт, выбираемый пользователем из справочника «Транспортируемые продукты».
-
«Регистрационный № ФСТН». Значением этого атрибута является номер регистрации в ФСТН, который выдается при регистрации объекта.
-
«Дата регистрации в ФСТН». Значением этого атрибута является дата регистрации в ФСТН.
-
«Регистрационный № СТН(ОТН)». Значением этого атрибута является номер регистрации в СТН, который выдается при регистрации объекта.
-
«Дата регистрации в СТН(ОТН)». Значением этого атрибута является дата регистрации в СТН.
-
«Регистрационный № СПК». Значением этого атрибута является номер регистрации в СТН, который выдается при регистрации объекта
-
«Дата регистрации в СПК». Значением этого атрибута является дата регистрации в СПК.
-
«Дата снятия с регистрации в ФСТН». Значением этого атрибута является дата снятия с регистрации в ФСТН.
-
«Дата снятия с регистрации в СТН(ОТН)». Значением этого атрибута является дата снятия с регистрации в СТН.
-
«Дата снятия с регистрации в СПК». Значением этого атрибута является дата снятия регистрации в СПК.
-
«Организация местоположения». Значением этого атрибута является полный список организаций, которым принадлежит трубопровод.
-
«Месторождение». Значением этого атрибута является наименования месторождение, выбираемое пользователем из справочника «Месторождения».
-
«Место установки». Значением этого атрибута является наименование предприятия, где установлен трубопровод.
-
«Отношение к ОПО». Значением этого атрибута является наименование опасных промышленных объектов, который выбирается пользователем.
-
«Владелец». Значением этого атрибута является наименование владельца предприятия которому принадлежит трубопровод.
-
«Дополнительная информация». Значением этого атрибута является дополнительные сведения о трубопроводе, вводимые пользователем.
«Участки трубопроводов». В этой таблице хранятся данные, которые содержат информацию об участках трубопроводов.
-
«Трубопровод». Значением этого атрибута является указатель на трубопровод к которому принадлежит примечание.
-
«Наименование участка». Значением этого атрибута является название участка трубопровода, задаваемое пользователем.
-
«Дата врезки». Значением этого атрибута является дата, когда была осуществлена врезка трубопровода.
-
«Протяженность (м)». Значением этого атрибута является протяженность участка трубопровода.
-
«Марка стали, ГОСТ или ТУ». Значением этого атрибута является марка стали из которой сделан трубопровод.
-
«Наружный диаметр (мм)». Значением этого атрибута является наружный диаметр трубопровода.
-
«Рабочее давление, кгс/кв.см(Мпа)». Значением этого атрибута является рабочее давление трубопровода.
-
«Рабочая температура стенки, град. С». Значениме этого атрибута является рабочая температура стенки участка трубопровода.
-
«Тип изоляции». Значением этого атрибута является тип изоляции, выбираемый пользователем из справочника «Тип изоляции».
-
«Тип попутного обогрева». Значением этого атрибута является тип попутного обогрева, выбираемый пользователем из справочника «Тип попутного обогрева».
-
«Марка ингибитора». Значением этого атрибута является марка ингибитора, выбираемая пользователем из справочника «Марка ингибитора».
-
«Номинальная толщина (мм)». Значением этого атрибута является номинальная толщина участка трубопровода.
-
«Фактическая толщина стенок (мм)». Значением этого атрибута является фактическая толщина стенок, которая вычисляется при проведении экспертизы.
-
«Скорость коррозии, мм/год». Значением этого атрибута является скорость коррозии трубопровода.
-
«Номер проекта». Значением этого атрибута является номер проекта.
-
«Наименование проектной организации». Значением этого атрибута является наименование проектной организации, которая выбирается пользователем из справочника «Проектные организации»
-
«Наименование строительно-монтажной организации». Значением этого атрибута является наименование строительно-монтажной организации, которая выбирается пользователем из справочника «Строительно-монтажные организации».
-
«Дата окончания строительства». Значением этого атрибута является дата окончания строительства участка трубопровода.
-
«Дата ввода в эксплуатацию». Значением этого атрибута является дата ввода в эксплуатацию участка трубопровода.
-
«Дата окончания службы». Значением этого атрибута является дата окончания срока службы участка трубопровода.
-
«Выявленные отклонения от технических параметров». Значением этого атрибута является выявленные отклонения от технических параметров в ходе эксплуатации.
-
«Дата вывода из эксплуатации». Значением этого атрибута является дата вывода участка трубопровода из эксплуатации.
-
«Причина вывода из эксплуатации». Значением этого атрибута является информации содержащая причины вывода участка трубопровода из эксплуатации.
«Примечание». В этой таблице хранятся данные, которые могут понадобиться для правильного и быстрого анализа ситуации.
-
«Трубопровод». Значением этого атрибута является указатель на трубопровод к которому принадлежит примечание.
-
«Дата примечания». Значением данного атрибута является дата, когда примечание было добавлено.
-
«Примечание». Значением этого атрибута является дополнительные сведения о трубопроводе, вводимые пользователем.
«Обследование с целью продления срока службы». В этой таблице хранятся данные, содержащие информацию об обследовании проводившегося с целью продления срока службы трубопровода.
-
«Трубопровод». Значением этого атрибута является указатель на трубопровод к которому принадлежит обследование.
-
«Дата обследования с целью продления службы». Значением этого атрибута является дата проведения обследование для продления срока службы трубопровода.
-
«Наименование организации, проводившей обследование». Значением этого атрибута является наименование организации проводившей обследование.
-
«Ф.И.О. эксперта». Значением этого атрибута является Ф.И.О. эксперта, который проводил обследование трубопровода.
-
«Выявленные отклонения от технических параметров». Значением этого атрибута является выявленные экспертом отклонения от нормы.
-
«Дата завершения эксплуатации». Значением этого атрибута является дата завершения эксплуатации трубопровода.
-
«Заключение». Значением этого атрибута является заключение составленное экспертом в результате обследования трубопровода.
-
«Номер заключения». Значением этого атрибута является номер заключения.
-
«Регистрационный номер заключения в ФСТН». Значением этого атрибута является номер заключения в ФСТН, которое регистрируется после обследования трубопровода и составления экспертом заключения.
«Ревизия участков». В этой таблице хранятся данные, содержащие всю информацию о проводившихся ревизиях на участке трубопровода.
-
«Участок трубопровода». Значением этого атрибута является указатель на участок трубопровода к которому относится ревизия.
-
«Дата обследования». Значением этого атрибута является дата проведения ревизии на участке трубопровода.
-
«Наименование организации, проводившей обследование». Значением этого атрибута является наименование организации проводившей ревизию участка трубопровода.
-
«Ф.И.О. эксперта». Значением этого атрибута является Ф.И.О. эксперта, который проводил ревизию участка трубопровода.
-
«Дата следующего обследования». Значением этого атрибута является дата следующего проведения ревизии.
-
«Периодичность». Значением этого атрибута является периодичность проведения ревизий на участке трубопровода.
-
«Дата заключения». Значением этого атрибута является дата заключения, когда было сделано заключение на основе ревизии.
-
«Номер заключения». Значением этого атрибута является номер заключения.
-
«Заключение». Значением этого атрибута является заключение которое было сделано экспертом в ходе проведения ревизии.
«Испытания участков». В этой таблице хранятся данные, содержащие всю информацию о проводившихся испытаниях на участке трубопровода.
-
«Участок трубопровода». Значением этого атрибута является указатель на участок трубопровода к которому относится испытание.
-
«Дата обследования». Значением этого атрибута является дата проведения испытания на участке трубопровода.
-
«Наименование организации, проводившей обследование». Значением этого атрибута является наименование организации проводившей испытание участка трубопровода.
-
«Ф.И.О. эксперта». Значением этого атрибута является Ф.И.О. эксперта, который проводил испытание участка трубопровода.
-
«Дата следующего обследования». Значением этого атрибута является дата следующего проведения испытания.
-
«Периодичность». Значением этого атрибута является периодичность проведения испытаний на участке трубопровода.
-
«Дата заключения». Значением этого атрибута является дата заключения, когда было сделано заключение на основе испытания.
-
«Номер заключения». Значением этого атрибута является номер заключения.
-
«Заключение». Значением этого атрибута является заключение которое было сделано экспертом в ходе проведения испытания.
«Диагностика участков». В этой таблице хранятся данные, содержащие всю информацию о проводившихся диагностиках на участке трубопровода.
-
«Участок трубопровода». Значением этого атрибута является указатель на участок трубопровода к которому относится диагностика.
-
«Дата обследования». Значением этого атрибута является дата проведения диагностики на участке трубопровода.
-
«Наименование организации, проводившей обследование». Значением этого атрибута является наименование организации проводившей диагностику участка трубопровода.
-
«Ф.И.О. эксперта». Значением этого атрибута является Ф.И.О. эксперта, который проводил диагностику участка трубопровода.
-
«Дата следующего обследования». Значением этого атрибута является дата следующего проведения диагностики.
-
«Периодичность». Значением этого атрибута является периодичность проведения диагностик на участке трубопровода.
-
«Дата заключения». Значением этого атрибута является дата заключения, когда было сделано заключение на основе диагностики.
-
«Номер заключения». Значением этого атрибута является номер заключения.
-
«Заключение». Значением этого атрибута является заключение которое было сделано экспертом в ходе проведения диагностики.
«Ремонт участков». В этой таблице хранятся данные, содержащие всю информацию о проводившихся ремонтах на участке трубопровода.
-
«Участок трубопровода». Значением этого атрибута является указатель на участок трубопровода к которому относится ремонт.
-
«Дата поломки». Значением этого атрибута является дата поломки участка трубопровода.
-
«Дата начала ремонта». Значением этого атрибута является дата начала ремонта участка трубопровода.
-
«Заключение о поломке». Значением этого атрибута является заключение о поломке участка трубопровода.
-
«Дата конца ремонта». Значением этого атрибута является дата окончания ремонта участка трубопровода.
-
«Выполненные работы». Значением этого атрибута является информация которая содержит перечень всех выполненных работ в ходе ремонта участка трубопровода.
Описанные сущности представлены на ER-диаграмме на рис. 1.