Проектирование реляционной базы данных средствами СУБД Access. Проектирование реляционной базы данных средствами Access, страница 2

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, с практической точки зрения является неоптимальным.

Первый и второй проектные наборы полностью совпадают.

Приходим к выводу, что самыми оптимальными являются проектные наборы, полученные с помощью метода декомпозиции и метода «сущность-связь», так как они больше третьего проектного набора удовлетворяют требованиям по минимизации затрат памяти и удобству работы с данными в таблицах.

Проектирование базы данных методом декомпозиции заключается в выявлении универсального отношения и разбиении его на простые отношения в НФБК-форме. Данный метод удобен для проектирования баз с небольшим количеством атрибутов.

Проектирование базы данных методом сущность-связь заключается в выявлении объектов и связей между ними. Этот метод нам представляется наиболее удобным, так как временные затраты на его реализацию существенно меньше аналогичных затрат для метода декомпозиции, а проектные наборы при этом совпадают.