Задача № 6:
Ø ФИО водителя;
Ø Класс водителя;
Ø Номерной знак его автомобиля;
Ø Марка автомобиля;
Ø Номинальный расход топлива л/ч данной марки;
Ø Средняя скорость данной марки км/ч;
Ø Наименование груза;
Ø Дата выезда;
Ø Номерной знак автомобиля-перевозчика груза.
Структура БД:
ФИО водителя | класс водителя | номерной знак его автомобиля | марка автомобиля | номинальный расход топлива л/ч данной марки | средняя скорость данной марки км/ч | наименование груза | дата выезда | номерной знак автомобиля-перевозчика груза |
Решение: Выделение ИЭл и ИОб. Выделим ИЭлементы и рассмотрим несколько возможных вариантов организации их в ИОбъекты:
Вариант 1. БзД в виде одной таблицы «Сведения о перевозке грузов …» (одного ИОб).
«Сведения о перевозке грузов …»:
Ø ФИО водителя;
Ø Класс водителя;
Ø Номерной знак его автомобиля;
Ø Марка автомобиля;
Ø Номинальный расход топлива л/ч данной марки;
Ø Средняя скорость данной марки км/ч;
Ø Наименование груза;
Ø Дата выезда;
Ø Номерной знак автомобиля-перевозчика груза.
Вариант 2. БзД в виде трех таблиц (трех ИОб).
«Личные данные»:
Ø ФИО водителя;
Ø Класс водителя;
Ø Номерной знак его автомобиля;
Ø Марка автомобиля;
«Характеристики машины»:
Ø Номерной знак его автомобиля;
Ø Марка автомобиля;
Ø Номинальный расход топлива л/ч данной марки;
Ø Средняя скорость данной марки км/ч;
«Сведения о перевозке грузов»:
Ø ФИО водителя;
Ø Номерной знак его автомобиля;
Ø Наименование груза;
Ø Дата выезда;
Ø Номерной знак автомобиля-перевозчика груза.
По приведенным вариантам видно, что при одном и том же количестве ИЭл в предметной области, может быть выделено большое количество различных ИОб. Какой же вариант предпочтительнее? Тот, в котором меньшее число дублированных ИЭл, так как такой вариант позволит упростить изменение ИЭл и внесение новых экземпляров в ИОб данной БзД. Другая сторона предпочтительности такого выделения ИОб (таблиц) – использование в каждой из них функциональной зависимости (X ®Yi, где X – ключ таблицы, а Yi, – её описательные атрибуты, причем каждое значение ключа xÎX определяет одно значение описательного атрибута yÎ Yi).
Для того, чтобы в предметной области рационально выделить ИОб, надо учесть требование функциональной зависимости и для остальных ИОб. Таким требованиям удовлетворяют ИОб, приведенные в
Варианте 2.
Для удобства работы с таблицами целесообразно уменьшить имена атрибутов (полей) ИОб:
1) Определение таблицы «Личные данные» (ИОб1):
Название ИЭл из предметной области | Имя ИЭл (атрибута/поля) ИОб1 | Тип поля |
ФИО водителя; | ФИО | Текстовый 20* |
Класс водителя; | Категория | Текстовый 20 |
Номерной знак его автомобиля; | Номер | Текстовый 20* |
Марка автомобиля; | Марка | Текстовый 20 |
Таким образом, ИОб1 Личные данные имеет следующую структуру:
(ФИО*, категория, номер*, марка).
Приведем пример таблицы Личные данные:
Иванов И.И | А | А111АА | Ауди А7 |
Петров П.П | В | В222ВВ | BMW X5 |
Сидоров С.С | С | С333ВВ | Ауди 80 |
Экземпляры ИОб1
Поле Поле Поле Поле «ФИО» «Категория» «Номер» «Марка»
2) Определение таблицы Характеристики машины (ИОб2):
Название ИЭл из предметной области | Имя ИЭл (атрибута/поля) ИОб2 | Тип поля |
Номерной знак его автомобиля; | Номер | Текстовый 20* |
Марка автомобиля; | Марка | Текстовый 20 |
Номинальный расход топлива л/ч данной марки; | Расход | Числовой |
Средняя скорость данной марки км/ч; | Скорость | Числовой |
Таким образом, ИОб2 Характеристики машины имеет следующую структуру:
(Номер*, марка, расход, скорость)
Приведем пример таблицы Характеристики машины:
А111АА | Ауди А7 | ||
В222ВВ | BMW X5 | ||
С333ВВ | Ауди 80 |
3) Определение таблицы Сведения о перевозке грузов (ИОб3):
Название ИЭл из предметной области | Имя ИЭл (атрибута/поля) ИОб3 | Тип поля |
ФИО водителя; | ФИО | Текстовый 20* |
Номерной знак его автомобиля; | Номер | Текстовый 20* |
Наименование груза; | Груз | Текстовый 20 |
Дата выезда; | Дата | Дата |
Номерной знак автомобиля-перевозчика груза. | Номер | Числовой |
Таким образом, ИОб3 Сведения о перевозке грузов имеет следующую структуру: (ФИО*, Номер*, Груз, Дата, Номер)
Приведем пример таблицы Сведения о перевозке грузов:
Иванов И.И | А111АА | Продукты | 12.12.2014 | А11 |
Петров П.П | В222ВВ | Техника | 11.11.2014 | В12 |
Сидоров С.С | С333ВВ | Одежда | 10.10.2014 | С13 |