Проектирование БД «Зимний отдых с ДжетТревел»
В этой базе заказчик хотел бы хранить информацию:
· о различных странах (Австрия, Германия, Италия, Франция, Швейцария, Андорра и т.п.)
· о различных регионах катания (например, различные курорты одной страны, количестве легких и сложных трасс, наличии снежных пушек и условий для беговых лыж)
· об отелях
· о необходимом уровне подготовки путешественника (включая возможности занятия freeride, helliski)
Некоторые условия, существенные для проектирования базы данных:
· в одной стране может быть несколько регионов катания
· для различных регионов катания может быть одинаковым базисный необходимый уровень подготовки катающегося
· для различных уровней подготовки катающегося могут подходжить сразу несколько мест катания
Этапы проектирования базы данных:
1. определение объектов (сущностей) предметной области - источников данных, которые должны быть включены в базу данных
2. определение атрибутов каждой сущности, первичных ключей
3. выявление связей между сущностями
4. определение степени каждой выделенной связи (один-к-одному, один-ко-многим, многие-ко-многим) и класса принадлежности каждой сущности, который характеризует обязательность включения каждого экземпляра сущности в связь
5. построение ER-диаграмм, отображающих выявленные связи
6. формирование таблиц базы данных по ER-диаграммам:
§ определение нужного количества таблиц
§ определение вторичных ключей таблиц, их связи с соответствующими первичными ключами.
1 и 2 этапы: объекты, их атрибуты и первичные ключи
Список объектов (сущностей):
· страна
· регион катания
· трассы
· отель
Сущности изображаются в виде прямоугольника, атрибуты вписываются внутрь прямоугольника, изображающего сущность.
Атрибут или набор атрибутов, используемый для идентификации экземпляра сущности, называется ключом сущности. Ключевые атрибуты каким-либо образом выделяются на диаграмме (например, подчеркиванием, более жирным шрифтом или курсивом).
Если значения ни одного из атрибутов не обладают уникальностью, то вместо набора уникальных атрибутов можно ввести дополнительный атрибут – код экземпляра (его номер).
Необходимый уровень подготовки |
Уровень катания лыжника Условия для free ride Условия для helliski Код |
Страна |
Название Въезд в страну Время перелета Разница во времени Валюта Телефонный код |
Отель |
Название Регион катания Расстояние до подъемника Звездность |
Регион катания |
Название Страна Перепад высот Легкие трассы (зеленые) Средние трассы (синие) Сложные трассы (красные) Трассы для экспертов (черные) Снежные пушки Для беговых лыж |
3, 4 и 5 этапы: выявление степени связей и классов принадлежности, их фиксация с помощью диаграмм
| |||||||
| |||||||
|
В этой диаграмме отражены свойства связи двух объектов нашей предметной области (страна и регион катания):
· в каждой стране несколько регионов катания
· каждый регион катания расположен в определенной одной стране
· в базе не будет храниться информация о странах и регионах катания, с которыми на данный момент фирма не работает
В этой диаграмме отражены свойства связи двух объектов нашей предметной области (регион катания и необходимый уровень подготовки):
· различных уровней подготовки катающегося могут подходить сразу несколько мест катания
· в базе не будет храниться информация о регионах катания, с которыми на данный момент фирма не работает
· необходимые уровни катания будут храниться в базе данных, даже если сейчас фирма не работает с соответствующими им курортами
|
В этой диаграмме отражены свойства связи двух объектов нашей предметной области (регион катания и отель):
· в одном регионе катания много отелей
· каждый конкретный отель расположен в определенном регионе катания
· в базе не будет храниться информация о регионах катания, с которыми на данный момент фирма не работает
· в базе не будет храниться информация об отелях, с которыми на данный момент фирма не работает
6 этап: формирование таблиц базы данных по ER-диаграммам
В связи сущностей СТРАНА Û РЕГИОН КАТАНИЯ и РЕГИОН КАТАНИЯ Û ОТЕЛЬ степень связи «один-ко-многим», n-связная сущность имеет обязательный класс принадлежности; следовательно, в соответствии с ER-методом
Достаточно использовать две таблицы (по одной для каждой сущности); ключ каждой сущности служит в качестве первичного ключа соответствующей таблицы. Кроме того, ключ 1-связной сущности должен быть добавлен как атрибут в таблицу, представляющую n-связную сущность.
Но у нас в таблице РЕГИОН КАТАНИЯ уже есть такой атрибут – Страна(он и будет вторичным ключом, соответствующим первичному ключу Название).
СТРАНА
Название | Время перелета | Разница во времени | Валюта | Телефонный код | Въезд в страну |
Австрия | 3 часа | … | … | … | … |
Франция | 3,5 – 4 часа | … | … | … | … |
Андорра | 3,5 часа | … | … | … | … |
… | … | … | … | … | … |
РЕГИОН КАТАНИЯ
Название | Страна | Перепад высот | Легкие трассы | Средние трассы | Сложные трассы | для экспертов | Снежные пушки | Для беговых лыж |
Ле дез Альп | Франция | 1650-3568м | … | … | … | … | … | … |
Три долины | Франция | 1350-2450м | … | … | … | … | … | … |
Обертауэрн | Австрия | 1740-2305м | … | … | … | … | … | … |
… | … | … | … | … | … | … | … | … |
Итак, через первичный ключ Название в таблице СТРАНА и вторичный ключ Страна в таблице РЕГИОН КАТАНИЯ будет фиксироваться связь двух сущностей нашей предметной области –СТРАНЫ и РЕГИОНА КАТАНИЯ.
У нас в таблице ОТЕЛЬ уже есть такой атрибут – Регион катания(он и будет вторичным ключом, соответствующим первичному ключу Название).
РЕГИОН КАТАНИЯ
Название | Страна | Перепад высот | Легкие трассы | Средние трассы | Сложные трассы | для экспертов | Снежные пушки | Для беговых лыж |
Ле дез Альп | Франция | 1650-3568м | … | … | … | … | … | … |
Три долины | Франция | 1350-2450м | … | … | … | … | … | … |
Обертауэрн | Австрия | 1740-2305м | … | … | … | … | … | … |
… | … | … | … | … | … | … | … | … |
ОТЕЛЬ
Название | регион катания | удаленность от подъемника | звездность |
Hotel Latini | Шюттдорф | … | … |
Alpina | Гармиш-Партенкирхен | … | … |
Coray | Энкамп | … | … |
… | … | … | … |
Итак, через первичный ключ Название в таблице РЕГИОН КАТАНИЯ и вторичный ключ Регион катания в таблице ОТЕЛЬ будет фиксироваться связь двух сущностей нашей предметной области –ОТЕЛЯ и РЕГИОНА КАТАНИЯ.
В связи сущностей РЕГИОН КАТАНИЯ Û НЕОБХОДИМЫЙ УРОВЕНЬ ПОДГОТОВКИ степень связи «многие-ко-многим». В этом случае классы принадлежности сущностей не влияют на количество и структуру соответствующих таблиц; следовательно,
Необходимо формирование трех таблиц – по одной для каждой сущности (ключ каждой сущности служит в качестве первичного ключа соответствующей таблицы), а также таблицы для связи. Таблица, создаваемая для связи, должна иметь по одному вторичному ключу от каждой сущности.
РЕГИОН КАТАНИЯ
Название | Страна | Перепад высот | Легкие трассы | Средние трассы | Сложные трассы | для экспертов | Снежные пушки | Для беговых лыж |
Ле дез Альп | Франция | 1650-3568м | … | … | … | … | … | … |
Три долины | Франция | 1350-2450м | … | … | … | … | … | … |
Обертауэрн | Австрия | 1740-2305м | … | … | … | … | … | … |
… | … | … | … | … | … | … | … | … |
НЕОБХОДИМЫЙ УРОВЕНЬ ПОДГОТОВКИ
Код | Уровень катания лыжника | free ride | helliski |
начинающий | - | … | |
средний | + | … | |
средний | - | … | |
… | … | … | … |
КУДА ЕХАТЬ
Регион катания | Уровень | Примерная стоимость тура |
Энкамп | ||
Солдеу | … | |
… | … | … |
В таблице-связке КУДА ЕХАТЬ поле Регион катания является вторичным ключом, соответствующим первичному ключу Название таблицы РЕГИОН КАТАНИЯ; поле Уровень является вторичным ключом, соответствующим первичному ключу Код таблицы НЕОБХОДИМЫЙ УРОВЕНЬ ПОДГОТОВКИ. С помощью этих вторичных ключей фиксируется связь сущностей РЕГИОН КАТАНИЯ и НЕОБХОДИМЫЙ УРОВЕНЬ ПОДГОТОВКИ. Дополнительные поля в таблице КУДА ЕХАТЬ могут использоваться для уточнения характеристик этой связи – примерная стоимость тура на человека на неделю.