Главная страница
Навигация по странице:

  • ЛАБОРАТОРНАЯ РАБОТА №2 Разработка технического задания на создание программ

  • Воронеж 2022 год Содержание

  • Цель работы

  • 2. Разработка структуры реляционной БД, ее нормализация и создание средствами предложенной СУБД

  • 2.2 Нормализация

  • Список литературы

  • Приложение 1

  • Лаб.раб.. Лабораторная работа 2 Разработка технического задания на создание программ (Разработка программного комплекса Управление гостиницей)


    Скачать 254.32 Kb.
    НазваниеЛабораторная работа 2 Разработка технического задания на создание программ (Разработка программного комплекса Управление гостиницей)
    Дата10.04.2022
    Размер254.32 Kb.
    Формат файлаdocx
    Имя файлаЛаб.раб..docx
    ТипЛабораторная работа
    #459401




    ДЕПАРТАМЕНТ ОБРАЗОВАНИЯ, НАУКИ И МОЛОДЕЖНОЙ

    ПОЛИТИКИ ВОРОНЕЖСКОЙ ОБЛАСТИ
    Государственное бюджетное профессиональное образовательное

    учреждение Воронежской области
    «Воронежский институт высоких технологий»

    Кафедра «Информационные системы»

    ЛАБОРАТОРНАЯ РАБОТА №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

    3

    4

    5

    Код сотрудника

    Id_Sotrudnika

    int

    10

    Not null

    Фамилия

    Family

    varchar

    20




    Имя

    Name

    varchar

    20




    Отчество

    Otchestvo

    varchar

    20




    Дата рождения

    Birthday

    datetime







    Образование

    Obrazovanie

    varchar

    20




    Должность

    Dolgnost

    varchar

    20




    Адрес

    Adres

    varchar

    100




    Телефон

    Telephone

    varchar

    11




    Заработная плата

    Zarplata

    Money








    Основные атрибуты для сущности «Должности сотрудников» представлены в Таблице 1.2.

    Таблица 1.2

    Должности сотрудников

    Атрибуты сущности

    Идентификатор атрибута

    Формат

    Длина

    Допустимые значения

    1

    2

    3

    4

    5

    Код должности

    Id_dolgnosti

    int

    10

    Not null

    Должность

    dolgnost

    varchar

    20





    Основные атрибуты для сущности «Категории номеров» представлены в Таблице 1.3.
    Таблица 1.3

    Категории номеров

    Атрибуты сущности

    Идентификатор атрибута

    Формат

    Длина

    Допустимые значения

    1

    2

    3

    4

    5

    Код категории

    Kod_Kategorii

    int

    10

    Not null

    Количество мест

    Kolichestvo_mest

    int

    10




    Количество комнат

    Kolichestvo_komnat

    int

    10




    Дополнительная информация

    Dopolnitelnaya_informaciya

    text







    Стоимость в сутки

    Stoimost_v_sutki

    money








    Основные атрибуты для сущности «Состояние номеров» представлены в Таблице 1.4.
    Таблица 1.4

    Состояние номеров

    Атрибуты сущности

    Идентификатор атрибута

    Формат

    Длина

    Допустимые значения

    1

    2

    3

    4

    5

    Код номера

    Kod_Nomera

    int

    10

    Not null

    Код сотрудника

    Id_Sotrudnika

    int

    10




    Бронь

    Bron

    datetime







    Заезд

    Zaezd

    datetime







    Выезд

    Viezd

    datetime







    Сумма

    Summa

    money








    Основные атрибуты для сущности «Бронь» показаны в Таблице 1.5.
    Таблица 1.5

    Бронь

    Атрибут сущности

    Идентификатор атрибута

    Формат

    Длина

    Допустимые значения

    1

    2

    3

    4

    5

    Код брони

    Kod_broni

    int

    10

    Not null

    Код состояния

    Kod_sostoyaniya

    int

    10




    Список фамилий

    Spisok_familii

    varchar

    40





    Основные атрибуты для сущности «Клиенты» расписаны в Таблице 1.6.
    Таблица 1.6

    Клиенты

    Атрибут сущности

    Идентификатор атрибута

    Формат

    Длина

    Допустимые значения

    1

    2

    3

    4

    5

    Код клиента

    Kod_Klienta

    int

    10

    Not null

    ФИО

    FIO

    varchar

    40




    Дата рождения

    Birthday

    datetime







    Пол

    Pol

    varchar

    10




    Вид документа

    Vid_dokumenta

    varchar

    20




    Серия

    Seriya

    varchar

    20




    Номер

    Nomerйправление гостиницей___________________________________________________________________________________________________________

    varchar

    20




    Кем выдан

    Kem_vidan

    varchar

    50





    Основные атрибуты для сущности «Дети» представлены в Таблице 1.7.
    Таблица 1.7

    Дети

    Атрибут сущности

    Идентификатор атрибута

    Формат

    Длина

    Допустимые значения

    1

    2

    3

    4

    5

    Код ребенка

    Kod_rebenka

    int

    10

    Not null

    Код клиента

    Kod_Klienta

    int

    10

    Not null

    ФИО ребенка

    FIO_rebenka

    varchar

    40




    Дата рождения ребенка

    Birthday_rebenka

    datetime








    Основные атрибуты для сущности «Способ оплаты» описаны в Таблице 1.8.
    Таблица 1.8

    Способ оплаты

    Атрибут сущности

    Идентификатор атрибута

    Формат

    Длина

    Допустимые значения

    1

    2

    3

    4

    5

    Код оплаты

    Kod_oplati

    int

    10

    Not null

    Форма оплаты

    Forma_oplati

    varchar

    20




    Предоплата

    Predoplata

    money








    Основные атрибуты для сущности «Номера» описаны Таблица 1.9.
    Таблица 1.9

    Номера

    Атрибут сущности

    Идентификатор атрибута

    Формат

    Длина

    Допустимые значения

    1

    2

    3

    4

    5

    Код номера

    Kod_Nomera

    int

    10

    Not null

    категория

    Kategoriya

    varchar

    20





    После выбора атрибутов определяются связи между объектами. В зависимости от условий, связи между объектами могут быть: один к одному, один ко многим и многие ко многим.

    Между объектами Должности и Сотрудники имеется связь один ко многим, так как одна должность может быть у нескольких сотрудников, например, в штате гостиницы работают несколько горничных.

    Между объектами Сотрудники и Состояние номера имеется связь один ко многим, потому что один номер могут обслуживать несколько сотрудников (горничные, администратор и т.п.).

    Между объектами Клиенты и Дети связь один ко многим, так как у одного клиента может быть несколько детей.

    Между объектами Состояние номера и Клиенты связь один ко многим, так как каждый в номер могут поселиться сразу несколько клиентов.

    Между объектами Клиенты и Способ оплаты имеется связь многие ко многим, так как любой клиент может заплатить за проживание одним из вариантов оплаты (наличный и безналичный расчет).

    Между объектами Номера и Состояние номера связь один ко многим, потому что один номер может быть в различных состояниях (свободен, забронирован, занят).

    Между объектами Бронь и Состояние номера установлена связь один ко многим, потому что одновременно несколько номеров могут быть забронированы.

    Между объектами Бронь и Клиенты связь один ко многим, так как номер может быть забронирован на семью.

    В результате спроектирована концептуальная модель, изображена на рисунке 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 Modeler



    AllFusion 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


    написать администратору сайта