- •Министерство образования и науки Российской Федерации
- •2. Построение инфологической концептуальной модели (er-модели)
- •3. Построение реляционной схемы из er-модели данных
- •4. Описание приложения
- •5. Проектирование форм, запросов и отчетов
- •6. Код программы
- •7. Тестирование базы данных
- •Заключение
- •Список использованной литературы
2. Построение инфологической концептуальной модели (er-модели)
В результате анализа предметной области было выделено три класса объектов: заказ, клиент, описание номера, класс обслуживания, перечень услуг и используемые услуги.
Опишем, какими свойствами обладает каждый класс объектов для нашей конкретной задачи:
«Заказ» - номер заказа, дата заказа, дата прибытия, дата выезда, номер клиента, № номера, стоимость заказа.
«Клиент» - ФИО, номер клиента, номер паспорта, серия, адрес, гражданство
«Описание номера» - № номера, расположение, вид.
«Класс обслуживания» - вид номера, стоимость номера, периодичность обслуживания.
«Перечень услуг» - номер услуги, наименование, стоимость, ед. измерения.
«Используемые услуги» - номер заказа, номер услуги, дата, количество, общая стоимость.
Изобразим графически каждый объект и его свойства (см. рис. 1 - 6).
Рис. 1 Изображение связи «Объект - Свойство» для объекта «Заказ»
Рис. 2 Изображение связи «Объект- Свойство» для объекта «Клиент»
Рис. 3 Изображение связи «Объект - Свойство» для объекта «Описание номера»
Рис. 4 Изображение связи «Объект - Свойство» для объекта «Класс обслуживания»
Рис. 5 Изображение связи «Объект - Свойство» для объекта «Перечень услуг»
Рис. 6 Изображение связи «Объект - Свойство» для объекта «Используемые услуги»
Однако инфологическая модель предполагает наличие в себе отображения не только отдельных объектов и их свойств, но также связей между различными объектами. Изобразим графически инфологическую модель всей базы данных (см. рис. 7).
Рис. 7 Инфологическая модель базы данных гостиничного комплекса
3. Построение реляционной схемы из er-модели данных
Следующим шагом выполнения курсовой работы было построение реляционной схемы базы данных из ER-модели. Для этой цели были использованы следующие правила:
Для каждого простого объекта и его единичных свойств строится таблица, атрибутами которой являются идентификатор объекта и реквизиты, соответствующие каждому из свойств.
Если у объекта имеются множественные свойства, то каждому из них ставиться в соответствии отдельная таблица.
Если между объектом и его свойствам имеется условная связь, то при отображении в реляционной модели возможны следующие варианты:
Если многие из объектов обладают рассматриваемым свойством, то его можно хранить в базе данных так же, как и обычное.
Если только незначительное число обладает указанным свойством, то при использовании предыдущего решения для многих записей в таблице значение соответствующего поля будет пустым. Для устранения этого недостатка выделяют отдельную таблицу, которая включает в себя идентификатор объекта и атрибут, соответствующий рассматриваемому свойству (аналогично пункту 2).
Если у объекта имеется составное свойство, то составляющие составного свойства либо помещаются в отдельные поля реляционной таблицы, либо в одно поле.
Если связь между объектами 1:1 и классы принадлежности обоих объектов являются обязательными, то для отображения данных объектов и связей между ними можно:
Использовать одну таблицу, первичным ключом которой может быть идентификатор любого из двух объектов.
Для каждого из этих объектов использовать отдельные таблицы, а связь между ними отразить включив в одну из таблиц идентификатор связанного объекта из другой таблицы.
Если связь между объектами 1:1 и класс принадлежности одного объекта является обязательным, а другого – нет, то для каждого из этих объектов используют отдельные таблицы, а идентификатор объекта, для которого класс принадлежности является необязательным, добавляется в таблицу, соответствующую тому объекту, для которого класс принадлежности обязателен.
Если между объектами связь 1:1 и класс принадлежности является необязательным, то следует воспользоваться тремя таблицами: по одной для каждого объекта и одну для отображения связи между ними.
Если между объектами связь 1:М и класс принадлежности одного из них обязателен, то используют две таблицы – по одной для каждого объекта. При этом в таблицу, соответствующую объекту, класс принадлежности которого является обязательным, добавляется идентификатор второго объекта.
Если между объектами предметной области имеется связь 1:М и оба класса принадлежности не обязательны, то поступают аналогично пункту 7 (создают три таблицы: по одной для каждого объекта и одну для связи между ними)
Если между объектами предметной области имеется связь М:М, то для хранения информации требуется три таблицы: по одной для каждого объекта и одна для отображения связи между ними (классы принадлежности могут быть любыми).
Агрегированному объекту, имеющему место в предметной области, ставится в соответствии одна таблица, атрибутами которой являются идентификаторы всех объектов, задействованных в данном агрегированном объекте, а так же реквизиты, соответствующие свойствам этого объекта.
Такое объединение информации в одну таблицу возможно только в том случае, если между объектами связь 1:1, если связь другая, то выделяют по одной таблице для каждого объекта и одну для связи.
При отображении обобщенных объектов могут быть приняты разные решения:
Всему обобщенному объекту может быть поставлена в соответствии одна таблица.
Каждой из категорий ставится в соответствии отдельная таблица, которая содержит в себе идентификатор объекта, общие свойства и свойства данной категории.
Кроме этого, возможны и комбинированные варианты. Выбор конкретного решения будет зависеть от того, насколько часто информация о разных категориях объекта обрабатывается совместно, как велико различие видовых свойств и т.п.
При отображении составного объекта так же возможны варианты:
Если речь идет о составе изделий, то между изделием и деталью связь будет М:М. В этом случае – см. пункты 7, 9, 10.
Если речь идет о составе какой-нибудь организации, то между объектами скорее всего будет связь 1:М. В этом случае – см. пункты 8, 9.
В результате применения данных рекомендаций к инфологической модели была получена следующая реляционная модель:
Заказ (Номер заказа, Дата заказа, Дата прибытия, Дата выезда, Номер клиента, № номера, Стоимость);
Клиент (ФИО, Номер клиента, Номер паспорта, Серия, Адрес, Гражданство);
Описание номера (№ Номера, Расположение, Вид);
Класс обслуживания (Вид номера, Стоимость номера, Периодичность обслуживания);
Перечень услуг (Номер услуги, Наименование, Стоимость, Ед. измерения);
Используемые услуги (Номер заказа, Номер услуги, Дата, Количество, Общая стоимость).
Проверим соответствие данной модели нормальной форме Бойса-Кодда.
Данная модель удовлетворяет 1НФ, т.к. все атрибуты всех отношений имеют и всегда будут иметь атомарные значения.
Данная модель удовлетворяет 2НФ, т.к. она удовлетворяет 1НФ и во всех отношениях имеющих сложный первичный ключ, каждый не ключевой атрибут полностью зависит от первичного ключа.
Данная модель удовлетворяет 3НФ, т.к. она удовлетворяет 2НФ и никакой не ключевой атрибут не зависит от другого не ключевого атрибута.
Данная модель удовлетворяет НФБК, т.к. она удовлетворяет 3НФ и каждый из детерминантов отношений модели является ее ключом.