объектно-ориентированный анализ. объектно-ориентир анализ. Обследование предметной области
Скачать 1.28 Mb.
|
2. Проектирование2.1. Сущности:Водители (Паспортные данные, класс, стаж, оклад) Маршрут(№маршрута, название начального пункта, название конечного пункта, время начала движения, время конца движения, интервал, протяженность) Автобус (№гос регистрации, тип, вместимость) Раскрываем термин «Паспортные данные»: Водители (Серия_номер паспорта, ФИО, Дата рождения, прописка, класс, стаж, оклад) Графическое изображение сущностей и связей между ними приведено на рис. 1. Автобусы №гос_регистрации Тип Вместимость Маршрут №маршрута назв_нач_пункта назв_кон_пункта время_нач_движ время_кон_двидж интервал протяженность Водители №паспорта ФИО Дата_рождения Прописка Класс Стаж оклад Водят Рис. 1 2.2. Построение отношенийДля связи третьего порядка Водят генерируются отношения по правилу . Получаем отношения: Водители (№паспорта, ФИО, Дата рождения, прописка, класс, стаж, оклад) Маршрут(№маршрута, название начального пункта, название конечного пункта, время начала движения, время конца движения, интервал, протяженность) Автобус (№гос регистрации, тип, вместимость) Водят(№паспорта, №маршрута, №гос регистрации, дата) Для определения технического состояния автобусов введем отношение Поломки. Причем, график поломок зависит от номера автобуса и даты поломки. Поломки(№гос регистрации, дата_поломки) Кроме того так как требуется считать величину оклада в зависимости от класса и стажа, то используем отношение Оклад. Оно должно ставить в зависимость денежное начисление в зависимость от класса водителя. Оклад(Класс, Базовая_ставка) Проверяем отношения на избыточность: Ни одно отношение не включает в себя полностью атрибуты другого отношения. Отношение Водители не является избыточным, так как его атрибуты не содержаться в других отношениях и не могут быть полученными из других отношений. Отношение Маршрут не является избыточным, так как его атрибуты не содержаться в других отношениях и не могут быть полученными из других отношений. Отношение Автобус не является избыточным, так как его атрибуты не содержаться в других отношениях и не могут быть полученными из других отношений. Отношение Водят не является избыточным, так как его атрибут ДАТА содержится только в этом отношении и не может быть получено из других отношений. Отношение Поломки не является избыточным, так как его атрибуты не содержаться в других отношениях и не могут быть полученными из других отношений. Отношение Оклад не является избыточным, так как его атрибуты не содержаться в других отношениях и не могут быть полученными из других отношений. Таким образом, избыточных отношений нет. Функциональные зависимости: Отношение Водители находится в НФБК, так как атрибут №паспорта однозначно определяет остальные атрибуты отношения. Остальные же атрибуты могут повторяться. Таким образом, атрибут №паспорта является детерминантом отношения. №паспорта ФИО, Дата_рождения, Прописка, Класс, Стаж, оклад Отношение Маршруты находится в НФБК, так как атрибут №маршрута однозначно определяет остальные атрибуты отношения. Остальные же атрибуты могут повторяться. Таким образом, атрибут №маршрута является детерминантом отношения. №маршрута назв_нач_пункта, назв_кон_пункта, время_нач_движ, время_кон_движ, интервал, протяженность Отношение Автобусы не находится в НФБК, так как атрибут №гос_регистрацииоднозначно определяет остальные атрибуты отношения, и является детерминантом, но атрибут Тип однозначно определяет атрибут Вместимость. Таким образом,пользуемся методом декомпозиции. Выполним проекцию на эту функциональную зависимость: №гос_регистрации Тип, Вместимость Тип Вместимость Отношение Водят находится в НФБК, так как атрибуты №паспорта , №маршрута, №гос регистрации однозначно определяют остальные атрибуты отношения. Остальные же атрибуты могут повторяться. №паспорта , №маршрута, №гос регистрации дата Отношение Поломки находится в НФБК, так как атрибут №гос регистрации однозначно определяет дату поломки, которая может меняться. Таким образом, атрибут №гос регистрации является детерминантом отношения. №гос регистрации дата_поломки Отношение Оклад находится в НФБК, так как атрибут Стаж однозначно определяет величину денежного начисления, которая может меняться. Таким образом, атрибут Стаж является детерминантом отношения. Стаж денежное начисление Графическое изображение поученных отношений изображено на рис. 2: Автобусы №гос_регистрации Тип Маршрут №маршрута назв_нач_пункта назв_кон_пункта время_нач_движ время_кон_двидж интервал протяженность Поломки №гос_регистрации дата Тип_автобуса Тип вместимость Водители №паспорта ФИО Дата_рождения Прописка Класс Стаж оклад Сломался Водят Является Имеет начисление Оклад Класс оклад Рис. 2 Как было доказано выше избыточных отношений нет. Рассмотрим функциональные зависимости новых отношений: Отношение Автобусы находится в НФБК, так как атрибут №гос_регистрации однозначно определяет тип автобуса, который может повторяться. Таким образом, атрибут №гос_регистрации является детерминантом отношения. № гос_регистрации тип Отношение Тип_автобуса находится в НФБК, так как атрибут Тип однозначно определяет вместимость автобуса. Таким образом, атрибут Тип является детерминантом отношения. Тип вместимость Таким образом, все указанные отношения находятся в НФБК. Автобусы №гос_регистрации Поломки №гос_регистрации дата Тип_автобуса Тип вместимость Маршрут №маршрута назв_нач_пункта назв_кон_пункта время_нач_движ время_кон_двидж интервал протяженность Водители №паспорта ФИО Дата_рождения Прописка Класс Стаж оклад Водят №паспорта №гос_регистрации №маршрута дата Структура базы данных Оклад Класс оклад 1 1 1 1 1 1 ∞ ∞ ∞ ∞ ∞ ∞ Рис. 3 |