Лаб.раб.. Лабораторная работа 2 Разработка технического задания на создание программ (Разработка программного комплекса Управление гостиницей)
Скачать 254.32 Kb.
|
ДЕПАРТАМЕНТ ОБРАЗОВАНИЯ, НАУКИ И МОЛОДЕЖНОЙ ПОЛИТИКИ ВОРОНЕЖСКОЙ ОБЛАСТИ Государственное бюджетное профессиональное образовательное учреждение Воронежской области «Воронежский институт высоких технологий» Кафедра «Информационные системы» ЛАБОРАТОРНАЯ РАБОТА №2 Разработка технического задания на создание программ (Разработка программного комплекса «Управление гостиницей») Группа: ИСЗ-198у 3 курс. Студент: Ермаков Н.М. Преподаватель: Рысцов И. А. Воронеж 2022 год Содержание 1.1 Построение концептуальной модели 4 2.1 Проектирование реляционной модели данных на основе принципов нормализации 12 3.1 Описание программы AllFusion Erwin Data Modeler 15 3.2 Ключевые характеристики AllFusion ERwin Data Modeler 16 3.3 Построение таблиц 16 3.5 Результат работы в AllFusion Erwin Data Modeler 19 Заключение 20 Цель работы: ознакомиться с правилами разработки Технического задания на создание программных продуктов согласно ЕСПД. 1. Инфологическое проектирование базы данных 1.1 Построение концептуальной моделиДля отображения полной информации по состоянию гостиницы, направлениям её деятельности и отчётности по выполненным работам, понадобится 9 таблиц. Объектами модели являются: сотрудники, должности сотрудников, номера, категории номеров, состояние номеров, клиенты, бронь, дети, способ оплаты. Основные атрибуты для сущности «сотрудники» представлены ниже в Таблице 1.1. Таблица 1.1
Основные атрибуты для сущности «Должности сотрудников» представлены в Таблице 1.2. Таблица 1.2
Основные атрибуты для сущности «Категории номеров» представлены в Таблице 1.3. Таблица 1.3
Основные атрибуты для сущности «Состояние номеров» представлены в Таблице 1.4. Таблица 1.4
Основные атрибуты для сущности «Бронь» показаны в Таблице 1.5. Таблица 1.5
Основные атрибуты для сущности «Клиенты» расписаны в Таблице 1.6. Таблица 1.6
Основные атрибуты для сущности «Дети» представлены в Таблице 1.7. Таблица 1.7
Основные атрибуты для сущности «Способ оплаты» описаны в Таблице 1.8. Таблица 1.8
Основные атрибуты для сущности «Номера» описаны Таблица 1.9. Таблица 1.9
После выбора атрибутов определяются связи между объектами. В зависимости от условий, связи между объектами могут быть: один к одному, один ко многим и многие ко многим. Между объектами Должности и Сотрудники имеется связь один ко многим, так как одна должность может быть у нескольких сотрудников, например, в штате гостиницы работают несколько горничных. Между объектами Сотрудники и Состояние номера имеется связь один ко многим, потому что один номер могут обслуживать несколько сотрудников (горничные, администратор и т.п.). Между объектами Клиенты и Дети связь один ко многим, так как у одного клиента может быть несколько детей. Между объектами Состояние номера и Клиенты связь один ко многим, так как каждый в номер могут поселиться сразу несколько клиентов. Между объектами Клиенты и Способ оплаты имеется связь многие ко многим, так как любой клиент может заплатить за проживание одним из вариантов оплаты (наличный и безналичный расчет). Между объектами Номера и Состояние номера связь один ко многим, потому что один номер может быть в различных состояниях (свободен, забронирован, занят). Между объектами Бронь и Состояние номера установлена связь один ко многим, потому что одновременно несколько номеров могут быть забронированы. Между объектами Бронь и Клиенты связь один ко многим, так как номер может быть забронирован на семью. В результате спроектирована концептуальная модель, изображена на рисунке 1. Рис. 1. Концептуальная модель ИС «Управление гостиницей» 2. Разработка структуры реляционной БД, ее нормализация и создание средствами предложенной СУБД 2.1 Проектирование реляционной модели данных на основе принципов нормализацииНа основе концептуальной модели строится реляционная модель, т.е. для каждого объекта создается таблица, содержащая все атрибуты данного объекта. Уникальный атрибут будет являться первичным ключом. Для построения связей между таблицами добавляются поля, которые будут внешними ключами. В результате, построив связи с помощью первичных и внутренних ключей, получаем реляционную модель. Рис. 2. Реляционная модель ИС «Управление гостиницей» 2.2 Нормализация Нормализация – это процесс, позволяющий гарантировать, эффективность структур данных в реляционной базе данных. Реляционная база данных считается эффективной, если она обладает следующими характеристиками: отсутствие избыточности, минимальное использование null-значений, предотвращение потери информации. Первая нормальная форма (1НФ). Говорят, что реляционная таблица находится в первой нормальной форме, если и только если все значения полей атомарные. Все таблицы реляционной модели данных находится в 1НФ по определению. Вторая нормальная форма (2НФ). Говорят, что таблица находится во второй нормальной форме, если и только если каждый его неключевой атрибут зависит от первичного ключа. Для приведения таблиц ко второй нормальной форме необходимо выделить в отдельные таблицы группы атрибутов, зависящих от части возможного ключа таблицы 1НФ. Рис.3. Вторая нормальная форма 3. Проектирование базы данных в AllFusion Erwin Data Modeler. Для проектирования базы данных была выбрана программная система разработки AllFusion Erwin Data Modeler 4.1, как одна из распространенных и, на мой взгляд, наиболее удобных систем, с очень большим функционалом. 3.1 Описание программы AllFusion Erwin Data ModelerAllFusion ERwin Data Modeler (ранее: ERwin) - CASE-средство для проектирования и документирования баз данных, которое позволяет создавать, документировать и сопровождать базы данных, хранилища и витрины данных. Модели данных помогают визуализировать структуру данных, обеспечивая эффективный процесс организации, управления и администрирования таких аспектов деятельности предприятия, как уровень сложности данных, технологий баз данных и среды развертывания. AllFusion ERwin Data Modeler (ERwin) предназначен для всех компаний, разрабатывающих и использующих базы данных, для администраторов баз данных, системных аналитиков, проектировщиков баз данных, разработчиков, руководителей проектов. AllFusion ERwin Data Modeler позволяет управлять данными в процессе корпоративных изменений, а также в условиях стремительно изменяющихся технологий. AllFusion ERwin Data Modeler (ERwin) позволяет наглядно отображать сложные структуры данных. Удобная в использовании графическая среда AllFusion ERwin Data Modeler упрощает разработку базы данных и автоматизирует множество трудоемких задач, уменьшая сроки создания высококачественных и высокопроизводительных транзакционных баз данных и хранилищ данных. Данное решение улучшает коммуникацию в вашей организации, обеспечивая совместную работу администраторов и разработчиков баз данных, многократное использование модели, а также наглядное представление комплексных активов данных в удобном для понимания и обслуживания формате. 3.2 Ключевые характеристики AllFusion ERwin Data ModelerСинхронизация моделей/баз данных Автоматизированное создание структуры базы данных и обратное проектирование Публикация моделей Поддержка нотаций: IDEF1x, IE, Dimensional Возможна совместная работа группы проектировщиков (с помощью среды AllFusion Model Manager (ModelMart)) Документирование структур баз данных Перенос структур баз данных (но не самих данных) из одного типа СУБД в другой 3.3 Построение таблицСоздаем сущности (таблицы) используем для этого панель управления для работы с созданием таблиц. Добавляем на рабочее место (display) необходимое количество сущностей, после того как добавили необходимое количество сущностей, приступаем к заполнению их. Информацию о сущностях и их атрибутах можно посмотреть в Приложении 1. Указываем имена атрибутов, используя свойства сущности. Устанавливаем ключевые поля, впоследствии по которым будет установлена связь между взаимодействующими таблицами. Устанавливаем связи, так же при помощи панели управления. 3.4 Создание SQL – запросов (Structured Query Language) SQL позволяет пользователю базы данных создавать и удалять, содержащиеся в отношениях данные, налагать обеспечивающие целостность реляционных данных правила и выполнять полный набор операций реляционной алгебры. На языке SQL напишем запросы следующего содержания: 1. Данный запрос отображает информацию о наличном способе оплаты, т.е. выведены фамилии клиентов, осуществивших эту форму оплаты, а также сумма оплаты. Здесь также есть условие отбора со значением «наличная» без вывода на экран. SELECT Klienti.FIO, Sostoyanie_nomera.Summa FROM Klienti, Sposob_oplati, Sostoyanie_nomera WHERE Sposob_oplati.Forma_oplati = ‘наличная’; В данном примере создан SQL – запрос, который осуществляет выборку (SELECT) по полям “ФИО” из (FROM) таблиц “Способ оплаты”, “Состояние номера” и “Клиенты”, где (WHERE) поле “Форма оплаты“ принимает значение «наличная». 2. Данный запрос отображает информацию о числах, когда был заезд в номера. Это упрощает поиск свободных номеров на конкретную дату. SELECT Nomera.Kod_Nomera, Sostoyanie_nomera.Zaezd FROM Nomera, Sostoyanie_nomera В данном примере создан SQL – запрос, который осуществляет выборку (SELECT) по полям “Код номера” и “Заезд” из (FROM) таблиц “Номера”, “Состояние номера”. 3. Данный запрос имеет условие выбора, который заключается в отборе сотрудников с высшим образованием. Для этого в поле «условие отбора» вводим значение - «высшее» и не выводим данное поле на экран. SELECT Dolgnosti.Dolgnosti, Sotrudniki.Familiya, Sotrudniki.Name, Sotrudniki.Otchestvo FROM Dolgnosti, Sotrudniki WHERE Sotrudniki.Obrazovanie = ‘Высшее’ В данном примере создан SQL – запрос, который осуществляет выборку (SELECT) по полям “Должности”, “Фамилия”, “Имя”, “Отчество” из (FROM) таблиц “Должности”, “Сотрудники” где (WHERE) поле “Сотрудники“ принимает значение «Высшее». 3.5 Результат работы в AllFusion Erwin Data ModelerПосле создания ИС «Клиенты предприятия» в данной программе, можно выгрузить, код для создания, данной модели в любой среде, которая умеет работать с SQL операторами, результат выгрузки можно посмотреть в виде кода (Приложении 1) и в виде схемы (Рис 4). Рис 4. Результат разработки ИС «Управление гостиницей» в AllFusion Erwin Data Modeler. ЗаключениеЛабораторная работа выполнена в соответствии с техническим заданием. Разработана программа комплекса «Управление гостиницей», содержащая необходимые данные об обслуживании клиентов. Информационная система разработана в программной системе разработки баз данных AllFusion Erwin Data Modeler, что позволяет легко понять ее организацию и простоту управления. Получить необходимую информацию из базы данных можно, используя SQL – запросы. Список литературы 1. Тиори Т., Фрай Дж. Проектирование структур баз данных. В 2 кн., М.: Мир, 2004. Кн. 1. 287 с.: Кн. 2. 320 с.. 2. Мейер М. Теория реляционных баз данных. М.: Мир, 2001. 608 с. 3. Атре Ш. Структурный подход к организации баз данных. М.: Финансы и статистика, 2006. 320 с. 4. Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. М.: Финансы и статистика, 2003. 351 с 5. Цикритизис Д., Лоховски Ф. Модели данных. М.: Финансы и статистика, 2005. 344 с Приложение 1 CREATE TABLE Bron ( Kod_Broni int NOT NULL, Kod_sostoyaniya int NULL, Spisok_familii varchar(40) NULL ) go ALTER TABLE Bron ADD PRIMARY KEY (Kod_Broni) go CREATE TABLE Deti ( Kod_Rebenka int NOT NULL, FIO_Rebenka varchar(40) NULL, Kod_Klienta int NOT NULL, Birthday_rebenka datetime NULL ) go ALTER TABLE Deti ADD PRIMARY KEY (Kod_Rebenka, Kod_Klienta) go CREATE TABLE Dolgnosti ( Kod_dolgnosti int NOT NULL, Dolgnost varchar(20) NULL ) go ALTER TABLE Dolgnosti ADD PRIMARY KEY (Kod_dolgnosti) go CREATE TABLE Kategoriya ( Kod_kategorii int NOT NULL, Kolichestvo_mest int NULL, kolichestvo_komnat int NULL, Dopolnitelnaya_informaciya text NULL, Stoimost_v_sutki money NULL ) go ALTER TABLE Kategoriya ADD PRIMARY KEY (Kod_kategorii) go CREATE TABLE Klienti ( Kod_Klienta int NOT NULL, FIO varchar(40) NULL, Birthday datetime NULL, Pol varchar(10) NULL, Vid_dokumenta varchar(20) NULL, Seriya varchar(20) NULL, Nomer_dokumenta varchar(20) NULL, Kem_vidan varchar(50) NULL, Kod_Broni int NOT NULL, Kod_nomera int NOT NULL ) go ALTER TABLE Klienti ADD PRIMARY KEY (Kod_Klienta) go CREATE TABLE Nomera ( Kod_Nomera int NOT NULL, Kategoriya varchar(20) NULL ) go ALTER TABLE Nomera ADD PRIMARY KEY (Kod_Nomera) go CREATE TABLE Nomera_Kategoriya ( Kod_Nomera int NOT NULL, Kod_kategorii int NOT NULL ) go ALTER TABLE Nomera_Kategoriya ADD PRIMARY KEY (Kod_Nomera, Kod_kategorii) go CREATE TABLE Sostoyanie_nomera ( Kod_Nomera int NOT NULL, Bron datetime NULL, Zaezd datetime NULL, Viezd datetime NULL, Summa money NULL, Kod_Broni int NOT NULL, ID_Sotrudnika int NOT NULL ) go ALTER TABLE Sostoyanie_nomera ADD PRIMARY KEY (Kod_Nomera) go CREATE TABLE Sotrudniki ( ID_Sotrudnika int NOT NULL, Family varchar(20) NULL, Name varchar(20) NULL, Otchestvo varchar(20) NULL, Birthday datetime NULL, Obrazovanie varchar(20) NULL, Dolgnost varchar(20) NULL, Adres varchar(100) NULL, Telefon varchar(11) NULL, Zarplata money NULL, Kod_dolgnosti int NULL ) go ALTER TABLE Sotrudniki ADD PRIMARY KEY (ID_Sotrudnika) go CREATE TABLE Sposob_op_Klienti ( Kod_Oplati int NOT NULL, Kod_Klienta int NOT NULL ) go ALTER TABLE Sposob_op_Klienti ADD PRIMARY KEY (Kod_Oplati, Kod_Klienta) go CREATE TABLE Sposob_oplati ( Kod_Oplati int NOT NULL, Forma_oplati varchar(20) NULL, Predoplata money NULL ) go ALTER TABLE Sposob_oplati ADD PRIMARY KEY (Kod_Oplati) go ALTER TABLE Deti ADD FOREIGN KEY (Kod_Klienta) REFERENCES Klienti go ALTER TABLE Klienti ADD FOREIGN KEY (Kod_Broni) REFERENCES Bron go ALTER TABLE Klienti ADD FOREIGN KEY (Kod_nomera) REFERENCES Sostoyanie_nomera go ALTER TABLE Nomera_Kategoriya ADD FOREIGN KEY (Kod_kategorii) REFERENCES Kategoriya go ALTER TABLE Nomera_Kategoriya ADD FOREIGN KEY (Kod_Nomera) REFERENCES Nomera go ALTER TABLE Sostoyanie_nomera ADD FOREIGN KEY (Kod_Nomera) REFERENCES Nomera go ALTER TABLE Sostoyanie_nomera ADD FOREIGN KEY (Kod_Broni) REFERENCES Bron go ALTER TABLE Sostoyanie_nomera ADD FOREIGN KEY (ID_Sotrudnika) REFERENCES Sotrudniki go ALTER TABLE Sotrudniki ADD FOREIGN KEY (Kod_dolgnosti) REFERENCES Dolgnosti go ALTER TABLE Sposob_op_Klienti ADD FOREIGN KEY (Kod_Klienta) REFERENCES Klienti go ALTER TABLE Sposob_op_Klienti ADD FOREIGN KEY (Kod_Oplati) REFERENCES Sposob_oplati Go |