7) Взносы:
- donation – взнос туриста;
- id_group – подстановка из таблицы Группы;
- Код – счетчик записей;
- Туристы_Код – подстановка из таблицы Туристы.
Схема базы данных (рис. 2).
Рис. 2
Сравнение изученных методов разработки структуры базы данных.
В ходе проектирования базы данных тремя изученными методами были получены следующие проектные наборы.
Проектный набор 1 (метод декомпозиции):
Туристы(Код туриста, ФИО туриста, Адрес туриста);
Походы(Номер группы, Код руководителя, Дата начала, Планируемая дата завершения, Фактическая дата завершения Успешность, Код тура);
Туры(Код тура, Название тура, Сложность тура, Стоимость тура, Код объекта);
Объекты(Код объекта, Название объекта, Код страны);
Взносы(Номер группы, Код туриста, Взнос туриста);
Страны(Код страны, Название страны);
Руководитель(Код руководителя, ФИО руководителя).
Проектный набор 2 (метод "сущность-связь"):
Туристы(Код туриста, ФИО туриста, Адрес туриста);
Походы(Номер группы, Код руководителя, Дата начала, Планируемая дата завершения, Фактическая дата завершения Успешность, Код тура);
Туры(Код тура, Название тура, Сложность тура, Стоимость тура, Код объекта);
Объекты(Код объекта, Название объекта, Код страны);
Взносы(Номер группы, Код туриста, Взнос туриста);
Страны(Код страны, Название страны);
Руководитель(Код руководителя, ФИО руководителя).
Проектный набор 3 (использование средств СУБД Access):
Страны(country_name, код)
Уровень сложности(difficult, код)
Руководители(FIO_leader, код)
Туристы(fio, код, address)
Успешность(success, код)
Группы(id_group, tour_name, object_name, begin, end, plan, tour_cost, Страны_код, Успешность_код, Уровень_сложности_код, Руководители_код)
Взносы(donation, id_group, Код, Туристы_Код)
Сравним полученные проектные наборы.
Несколько отношений из третьего проектного набора совпадают с отношениями в первом и во втором проектных наборах и, на наш взгляд, являются правильными.
Также в третьем проектном наборе добавлено два новых отношения – Успешность и Уровень сложности. Вместо них в первом и втором проектных наборах были организованы соответствующие списки значений.
Таблица Взносы присутствовала в первых двух проектных наборах, но с другим ключом. В первых двух наборах использовался составной ключ – Номер группы, Код туриста. В третьем же наборе выделено отдельное поле для ключа – Код, что не совсем верно, так как это может привести к нескольким записям для одного и того же туриста в один и тот же поход.
Однако в третьем проектном наборе отсутствуют некоторые отношения, имеющиеся в первом и во втором наборах, и необходимые с точки зрения логики создаваемой базы данных:
Все эти отношения, вместе с отношением Группы, объединены в третьем проектном наборе в одну таблицу, что приводит к недопустимому избыточному дублированию данных в таблице в полях названия объекта покорения, уровня сложности, названия страны и стоимости тура. Это приведет к тому, что при изменении, например, стоимости какого-либо тура значение придется менять не один раз, а для каждого похода в этот тур.
Таким образом, проектный набор, полученный с помощью средств СУБД Access, с практической точки зрения является неоптимальным.
Первый и второй проектные наборы полностью совпадают.
Приходим к выводу, что самыми оптимальными являются проектные наборы, полученные с помощью метода декомпозиции и метода «сущность-связь», так как они больше третьего проектного набора удовлетворяют требованиям по минимизации затрат памяти и удобству работы с данными в таблицах.
Проектирование базы данных методом декомпозиции заключается в выявлении универсального отношения и разбиении его на простые отношения в НФБК-форме. Данный метод удобен для проектирования баз с небольшим количеством атрибутов.
Проектирование базы данных методом сущность-связь заключается в выявлении объектов и связей между ними. Этот метод нам представляется наиболее удобным, так как временные затраты на его реализацию существенно меньше аналогичных затрат для метода декомпозиции, а проектные наборы при этом совпадают.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.