Разработка базы данных 'Гостиничная сеть'

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    3,01 Мб
  • Опубликовано:
    2015-11-29
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка базы данных 'Гостиничная сеть'

Оглавление

Введение

Глава 1. Описание и анализ предметной области

1.1 Описание предметной области

Глава 2. Разработка концептуальной модели (ER-диаграммы)

2.1 Проектирование ER модели базы данных "Гостиничные сети"

Глава 3. Разработка логической модели базы данных. Нормализация таблиц базы данных

3.1 Краткий обзор современных СУБД

.2 Нормализация таблиц

Глава 4. Создание базы данных. Разработка запросов, пользовательских функций и триггеров

4.1 Создание базы данных в SQLServer

4.2 Создание SQL-запросов, хранимых процедур, пользовательских функций и триггеров

4.2.1 Создание запросов

.2.2 Хранимые процедуры

.2.3 Триггеры

Глава 5. Разработка форм, отчетов, модулей, главной формы приложения

5.1 Создание форм

.2 Создание отчётов

Глава 6. Настройка работы базы данных в многопользовательской среде

6.1 Создание пользователей базы данных

.2 Создание полной резервной копии сформированной базы данных

Заключение

Список используемых источников

Приложения

Введение

 

Целью курсовой работы является разработка базы данных "Гостиничная сеть".

Задачи работы следующие:

.        Провести проектирование ER модели разрабатываемой базы данных.

.        Провести разработку логической модели БД.

.        Разработка триггеров, хранимых процедур, запросов

.        Написать пользовательский интерфейс для работы с созданной базой данных.

.        Настройка работы БД в многопользовательской среде.

.        Автоматизация и упрощение работы сотрудников гостиничной сети по регистрации, учету, поиску и формированию отчетности о соискателях и работодателях.

Актуальность работы заключается в том, что гостиничная сеть - это многоуровневый комплекс с огромным объёмом информации, для систематизации и хранения которой создаётся база данных.

По ходу работы требуется выполнены все поставленные задачи, отчёт о которых будет представлен в заключении.

Глава 1. Описание и анализ предметной области

 

.1 Описание предметной области


Данная база данных предоставляет информацию о деятельности гостиничной сети. Работает она по следующему принципу: Гостиничная сети с названием N располагает рядом подчинённых ей гостиниц, в которых есть номера и услуги. Вся эта информация объединяется в сущности "Предложение", изучив которую, мы можем узнать стоимость проживания в той или ной гостинице с учётом выбора номера и услуги. Клиент заказывает себе то или иное предложение, выставляемое гостиницей, и на основе его заказа формируется сущность "Бронь", где храниться информация о клиенте, который выбрал одно из предложений на какой-то период времени. Значит есть 6 сущностей, каждая со своим описанием (этот аспект рассмотрим ниже при описании ER-модели): гостиницы, номера, услуги, предложение, бронь, клиенты.

Оперируя всей информацией предоставляемой базой данных, можно без проблем узнать какой номер относиться к какой гостинице, какая услуга связана с одной из имеющихся гостиниц, сколько стоит это, и какой клиент проживает в каком номере, а значит какой номер занят, а какой свободен. На основе забронированных номеров и услуг, можно вести бухгалтерский учёт проданных предложений.

 


Глава 2. Разработка концептуальной модели (ER-диаграммы)

 

.1 Проектирование ER модели базы данных "Гостиничные сети"


Для разработки базы данных "Гостиничные сети" использовалась программа AllFusionERwinDataModeler. С её помощью были определены сущности, атрибуты, и отношения между сущностями, составлена ER-диаграмма или концептуальная модель данных

Таблица 2.1.1 - Сущность - Гостиницы

Атрибут

Домен

ID_Гостиницы (PK)

Number

Название

String

Страна

String

Город

String

Улица

String

Дом

Number

Количествозвёзд

Number


Таблица 2.1.2 - Сущность-Комнаты

Атрибут

Домен

ID_Комнаты (PK)

Number

Этаж

Number

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

Number

Наличиесан. узла

Blob

Тип

String

ID_Гостиницы(FK)

Number


Таблица 2.1.3- Сущность-Услуги

АтрибутДомен


ID_Услуги (PK)

Number

Наименование

String

Описание

String

Number


Таблица 2.1.4 - Сущность-Предложение

Атрибут

Домен

ID_Предложение(PK)

Number

Стоимость

Number

ID_Услуги (FK)

Number

ID_Гостиницы(FK)

Number


Таблица 2.1.5 - Сущность-Бронь

Атрибут

Домен

ID_Бронь (PK)

Number

ID_Клиента (FK)

Number

ID_Предложени (FK)е

Number

ID_Номера (FK)

Number

ID_Услуги (FK)

Number

Дата_заселения

Datetime

Дата_выселения

Datetime


Таблица 2.1.6 - Сущность-Клиент

Атрибут

Домен

ID_Клиента (PK)

Number

ФИО

String

Серия_паспорта

String

Номер_Паспорта

Number

Гражданство

String


Сущности и их атрибуты определены.

Далее переходим к определению связей. Для создания новой связи следует:

) установить курсор на нужной кнопке (в палитре инструментов кнопка соответствует идентифицирующей связи, и кнопка  соответствуют неидентифицирующей связи) в палитре инструментов и нажать левую кнопку мыши;

) щелкнуть сначала по родительской, а затем по дочерней сущности.

Связь между сущностью Гостиницы и Номера - неидентифицированая, подобного рода связь установлена и между сущностями Гостиница- Услуги, Услуги - Предложение и Номера-Предложение. Между остальными сущностями установлена идентифицированная связь. В результате получаем ER-диаграмму.

 


Глава 3. Разработка логической модели базы данных. Нормализация таблиц базы данных

 

.1 Краткий обзор современных СУБД


Система управления базами данных (СУБД) - это совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.

Классификации СУБД:

. По модели данных

·        Иерархические

·        Сетевые

·        Реляционные

·        Объектно-ориентированные

. По степени распределённости

·        Локальные СУБД (все части локальной СУБД размещаются на одном компьютере)

·        Распределённые СУБД (части СУБД могут размещаться на двух и более компьютерах).

. По способу доступа к БД

·        Файл-серверные

Для разработки базы данных будет использоваться СУБД Microsoft SQL Server 2008.SQL Server- система управления реляционными базами данных (СУРБД), разработанная корпорацией Microsoft. Основной используемый язык запросов - Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для работы с базами данных размером от персональных до крупных баз данных масштаба предприятия; конкурирует с другими СУБД в этом сегменте рынка.SQL Server 2008 - интеллектуальная платформа для управления данными, позволяющая ощутимо сократить затраты как на разработку новых приложений, так и на обслуживание существующих систем. Эта надёжная и крайне эффективная система готова к работе в самых важных и требовательных бизнес-приложениях, предоставляя широкие возможности BI для каждого сотрудника компании.

Основные возможности Microsoft SQL Server2008

• Составление запросов

• Выполнение поиска

• Проведение синхронизации

• Подготовка отчётов

• Анализ данных

•Возможность доступа к информации с настольных ПК и мобильных устройств.

Ключевые преимущества Microsoft SQL Server2008:

• SQL Server 2008 обеспечивает возможность динамического шифрования полной базы данных, всех файлов данных, а также файлов журналов. При этом отсутствую изменения в уже существующих приложениях.

• SQL Server 2008 обеспечивает сжатие исходящего потока журнала, позволяя достичь оптимальной производительности зеркалирования и при этом свести к минимуму нагрузку на сеть.

• SQL Server 2008 осуществляет управление на основе политик, позволяя с лёгкостью управлять одним, либо несколькими имеющимися экземплярами SQL Server 2008.

 


3.2 Нормализация таблиц


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

Рассмотрим первые 3 нормальные формы таблиц.

Первая нормальная форма характеризуется тем, что все строки должны быть различными и все элементы внутри ячеек должны быть атомарными (не списками). Другими словами, элемент является атомарным, если его нельзя разделить на части, которые могут использовать в таблице независимо друг от друга.

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

Третья нормальная форма - сущность находится в третьей нормальной форме, если она находится во второй нормальной форме и никакой неключевой атрибут не зависит от другого неключевого атрибута, то есть не должно быть взаимозависимости между неключевыми атрибутами.

Судя по приведённому описанию, таблицы разрабатываемой базы данных находятся во всех 3 нормальных формах.

Глава 4. Создание базы данных. Разработка запросов, пользовательских функций и триггеров

 

.1 Создание базы данных в SQLServer


Да этом этапе приступаем у созданию базы данных в MS SQL Server 2008. Запускаем программу "Среда SQL ServerManagementStudio". При запуске программы появляется окно "Соединение с сервером". Выбираем нужное имя сервера и нажимаем "Соединить". В окне "Обозреватель объектов" мы увидим вкладку с именем нашего SQL-сервера. Для добавления новой базы данных, в "Среде Microsoft SQL ServerManagementStudio" кликаем правой кнопкой мышки на вкладке "Базы данных" и выбираем "Создать базу данных". Появляется форма, в которой нужно указать имя базы данных - в моём случает это radevich1. Жмём кнопку OK и видим в списке баз данных только что созданную базу.

Далее нужно создать таблицы соответствующие созданной ER-модели в AllFusionERwinDataModeler. Для этого выбираем уже созданную базу данных radevich1, отмечаем ветку "Таблицы" и по правой кнопке нажимаем по пункту меню "Создать таблицу". Я для удобства в дальнейшем использовании перевёл все сущности созданные в ERwin на английский язык. В SQLServer они получили такие названия: Гостиницы - Hotel, Комнаты - Rooms, Сервис - Service, Предложение - Supply, Бронь - Booking, Клиенты - Client. Для начала создаём таблицу Hotel и заполняем её соответственно критериям приведённым выше.

Таблица 4.1.1 - Hotel

Атрибут

ТипДанных

ID

Int

Country

nvarchar(50)

City

Nchar(10)

House

int

Stars

int

Street

Nchar(10)

Name

nvarchar(50)


Таблица 4.1.2 - Rooms

Атрибут

ТипДанных

ID

Int

Hotel_ID

int

Floor

int

Seats

Char(10)

Type

Nchar(10)

Toilet

Nchar(10)


Таблица 4.1.3 - Service

Атрибут

ТипДанных

ID

Int

Hotel_ID

int

Service_Name

Nvarchar(50)

Description

text


Таблица 4.1.4 - Supply

Атрибут

ТипДанных

ID

Int

Rooms_ID

int

Service_ID

Int

Cost

int


Таблица 4.1.5 - Booking

Атрибут

ТипДанных

ID

Int

Supply_ID

Int

Int

Date_of_entry

Date

Date_of_departure

date



Таблица 4.1.6 - Client

Атрибут

ТипДанных

ID

Int

Full_Name

text

Passport_series

Nchar(10)

Pasport_number

Nchar(10)

Citizenship

Nvarchar(50)

база гостиница триггер поиск

Когда все таблицы созданы, нужно определить между ними связи, установленные в ER-диаграмме. Для этого в Обозревателе объектов нужно щёлкнуть правой кнопкой мыши на пункт "Диаграммы баз данных" и после чего в появившемся меню выбрать пункт "Создать диаграмму данных".

В открывшемся окне располагаем таблицы в зависимости от личных предпочтений и устанавливаем связи между ключевыми атрибутами.

Заключительный этап создания базы данных - заполнение таблиц. Для этого необходимо в Обозревателе объектов щёлкнуть правой кнопкой мыши на уже созданную таблицу, в результате этого действия появиться меню, в котором выбираем "Изменить первые 200 строк", после чего в отдельной вкладке появиться выбранная таблица, которую и необходимо заполнить нужной информацией.

4.2 Создание SQL-запросов, хранимых процедур, пользовательских функций и триггеров

 

.2.1 Создание запросов

1. Запрос о заказах клиента

 

SELECT Booking.ID, Booking.Supply_IDBooking INNER JOIN Client ON Booking.Client_ID = Client.ID(Client.Full_Name LIKE 'Belkevich Maria Genagievna')

2. Запрос на соответсвие заданной маске

-------------Full_NameClientFull_Name

LIKE 'D_%'

. Запрос на удаление

-------------= 17

. Запрос на объединение таблиц

USEradevich1

-------------Floor, Seats, Toilet,NameHotel INNER JOIN RoomsHotel.ID = Rooms.IDService_Name, Description, NameHotel INNER JOIN Service

ON Hotel.ID = Service.ID

5. Запрос на добавление одной записи в базу

USE radevich1

-------------* from HotelINTO HOTEL (ID, Name, Country, City, House, Stars, Street)('15', 'Big Hotel Plaza', 'USA', 'New York','10', '5', 'Time Square')

6. Запрос на конкретное значение

-------------

Select * fromRooms_ID=1Hotel_ID=5

7. Запрос на множественное добавление в базу

USE radevich1

-------------* From RoomsINTO Rooms (ID,Hotel_ID, Floor, Seats, Type, Toilet)('42', '12', '4', '1', 'Family', 'Yes')* From ClientINTO Client (ID, Full_Name, Passport_series, Passport_number, Citizenship)('19', 'PetrovPetrePetrovich', 'MC', '12344321', 'Ukranian')

8. Запрос на запрашиваемую сумму предложения

--------------*SupplyCost <'500'

9. Запрос на обновление цены

-------------

UPDATE SupplyCost = 1150ID = 1

or= 15

. Запрос на сумму заказов

USEradevich1

-------------SUM (Cost) as [sum_cost]Booking INNER JOIN Supply ON Booking.Supply_ID = Supply.ID

4.2.2 Хранимые процедуры

. Хранимая процедура на объединение таблиц

CREATE PROCEDURE proc_one5FUll_Name, NameHotel INNER JOIN ClientHotel.ID = Client.IDDate_of_entry, Date_of_departure, Full_NameBooking INNER JOIN ClientBooking.ID = Client.ID

После написания процедуры необходимо выполнить её и сохранить. Для того чтобы запросить процедуру необходимо создать новый запрос, где ввести команду CREATE PROCEDURE proc_one5 GO.

. Хранимая процедура на добавление записей

_one9

as*HotelINTO Hotel (ID, Name, Country, City, House, Stars, Street)('17', 'WH', 'Russia', 'Pskov', '6', '2', 'Pushkin')*ClientINTO Client (ID, Full_Name, Passport_series, Passport_number, Citizenship)('17', 'Smirnov MichailVictorovich', 'MP', '12332145', 'Russian')

Для того чтобы запросить процедуру необходимо создать новый запрос, где ввести команду CREATE PROCEDURE proc_one9 GO.

. Хранимая процедура на запрашиваемую сумму

_one6

as*Supplycost < 1000

Для того чтобы запросить процедуру необходимо создать новый запрос, где ввести команду CREATE PROCEDURE proc_one6 GO. Результат в Приложение А4.2.2.3

.2.3 Триггеры

. Триггер на запрет смены названия отеля

CREATE TRIGGER trigger11HotelUPDATENOCOUNT ON;UPDATE (NAME)

2. Триггер на запрет ввода записи с ценойболее 2000

CREATE TRIGGER trigger20SupplyINSERTNOCOUNT ON;(select cost from inserted)>2000

ROLLBACK'действие запрещено'

. Триггер на запрет удаления заявок

CREATETRIGGERtrigger21BookingDELETENOCOUNT ON;(select Date_of_departure from deleted) <'2015-01-07'


. Триггер на запрет смены серии паспорта клиента

CREATE TRIGGER trigger23ClientUPDATENOCOUNT ON;UPDATE(Passport_series)

5. Триггер на запрет вставлять запись о клиенте без гражданства

CREATE TRIGGER trigger24ClientINSERTNOCOUNT ON;(select Citizenship from inserted)=''

ROLLBACK

Глава 5. Разработка форм, отчетов, модулей, главной формы приложения


Для создания интерфейса необходимо БД "Гостиничные сети" связать с MSAccess.

 

.1 Создание форм


Необходимо создать 6 форм, соответствующих таблицам базы данных. Для создания новой формы (например Hotels) необходимо выполнить следующее:

. В окне приложения Access 2007 выбрать вкладку Создание и выполнить щелчок на пиктограмме "Конструктор форм". В окне редактирования появится окно с пустой областью данных

.. Для отображения списка полей требуемой таблицы нужно выполнить щелчок на пиктограмме "Добавить существующие поля", появится список таблиц. Щелкнув на знак "+" необходимой таблицы, откроется список ёё полей.

. Далее нужно поместить поля таблицы на форму, для этого требуется два раза щёлкнуть по каждому полю мышью.

В этом же разделе можно создать кнопки для формы, чтобы удобнее было переключаться между содержимым полей. С помощью  можно создать гипперссылку на требуемую страницу.

В результате проделанных операций получилось 6 форм.

Рисунок 5.1.1 - Hotels

Рисунок 5.1.2 - Clients

Рисунок 5.1.3 - ФормаRooms

Рисунок 5.1.4 - Booking

Рисунок 5.1.5 - Форма Service

Рисунок 5.1.6 - Форма Supply

В завершении создания основных 6 форм, по тому же принципу создаём форму Main Menu, на которой располагаются ссылки на 6 предыдущих.

Рисунок 5.1.7 - Форма MainMenu

.2 Создание отчётов

Для начала нужно выбрать необходимую таблицу. На вкладке Создание нажать Отчёт и появляется готовый отчёт , где отображается вся информация по выбранной таблицу. необходима сделать отчёты по 3 таблицам Cliets, Booking и Supply.

Рисунок 5.2.1 - Отчёт Supply

Рисунок 5.2.2 - Отчёт Client

Рисунок 5.2.3 - Отчёт Booking

Глава 6. Настройка работы базы данных в многопользовательской среде

 

.1 Создание пользователей базы данных

 

1.      В обозревателе объектов раскройте папку Базы данных.

2.      Разверните базу данных, в которой создается новый пользователь базы данных.

.        Щелкните правой кнопкой мыши папку Безопасность, выберите пункт Создать, а затем Пользователь.

.        В диалоговом окне Пользователь базы данных - создать, на странице Общие выберите один из следующих типов пользователей из списка Тип пользователя: SQL-пользователь с именем входа, SQL-пользователь без имени входа, Пользователь, сопоставленный с определенным сертификатом, Пользователь, сопоставленный с асимметричным ключом или Пользователь Windows.

.        В поле Имя пользователя введите имя для нового пользователя. Если выбрать элемент Пользователь Windows в списке Тип пользователя, вы можете также щелкнуть многоточие (…) и открыть диалоговое окно Выбор пользователя или группы.

.        В поле Имя входа введите имя входа для пользователя. Либо можно щелкнуть многоточие (…), чтобы открыть диалоговое окно Выбор имени входа. Имя входа доступно, если выбрать элемент SQL-пользователь с именем входа или Пользователь Windows в списке Тип пользователя.

.        Укажите схему, которая будет владеть объектами, созданными пользователем, в поле Схема по умолчанию. Или щелкните многоточие (…), чтобы открыть диалоговое окно Выбор схемы. Схема по умолчанию доступна, если выбрать элемент SQL-пользователь с именем входа, SQL-пользователь без имени входа или Пользователь Windows в списке Тип пользователя.

.        Введите сертификат для пользователя базы данных в поле Имя сертификата. Вместо этого, можно щелкнуть многоточие (…) и открыть диалоговое окноВыбор сертификата. Имя сертификата доступно, если выбрать элемент Пользователь, сопоставленный с сертификатом в списке Тип пользователя.

.        Введите ключ для пользователя базы данных в поле Имя асимметричного ключа. Вместо этого можно щелкнуть многоточие (…), чтобы открыть диалоговое окно Выбор асимметричного ключа. Имя асимметричного ключа доступно, если выбрать элемент Пользователь, сопоставленный с асимметричным ключом в списке Тип пользователя.

.        Нажмите кнопку ОК.

6.2 Создание полной резервной копии сформированной базы данных


Для создания резервной копии необходимо в контекстном меню на БД "radevich1" правой кнопкой "мыши" выбрать Задачи → Создать резервную копию…

Имя резервной копии:radevich1-Полная База данных Резервное копирование

Заключение

В данной курсовой работе для создания базы данных "Гостиничные сети" было проделано следующее:

В AllFusionERwinDataModeler была разработана концепция будущей базы данных, определены сущности и атрибуты, а для их графического отражения была создана ER-диаграмма, затем в MS SQL Server 2008 разрабатывалась сама база данных. На её основе были созданы запросы на добавление данных, их удаление, модернизацию выборку и т.д., были созданы хранимые процедуры и триггеры. Затем для более удобного использования база данных была перенесена в MS Access для создания пользовательского интерфейса, который разрабатывался с помощью конструктора форм. Формы были сделаны по шести таблицам базы данных и добавлена ещё одна форма в качестве главного меню. По основным таблицам разработаны отчёты. Завершилась работа созданием резервной копии для безопасности базы данных.

Список используемых источников


1. Голицына О.Л. Базы данных: учебное пособие. / О.Л. Голицына, Н.В. Максимов, И.И. Попов - М.: ФОРУМ: ИНФРА-М, 2006. - 352 с: ил. - (Профессиональное образование).

. Википедия - Режим доступа:://ru.wikipedia.org/wiki/Microsoft_SQL_Server- Дата доступа: 11.05.2015.

. Режим доступа: #"867659.files/image014.gif">

Рисунок 1 - ER-диаграмма

Приложение 2

Рисунок 2 - Готовая база данных

Приложение 3

Рисунок 3 - Запрос о заказах клиента

Приложение 4

Рисунок 4 - Запрос на соответствие заданной маске

Приложение 5

Рисунок 5 - Запрос на удаление

Приложение 6

Рисунок 6 - Запрос на объединение таблиц

Приложение 7

Рисунок 7 - Запрос на добавление одной записи в базу

Приложение 8

Рисунок 8 - Запрос на конкретное значение

Приложение 9

Рисунок 9 - Запрос на множественное добавление в базу

Приложение 10

Рисунок 10 - Запрос на запрашиваемую сумму предложения

Приложение 11

Рисунок 11 - Запрос на обновление цены

Приложение 12

Рисунок 12 - Запрос на сумму заказов

Приложение 13

Рисунок 13

Приложение 14

Рисунок 14 - Хранимая процедура на добавление записей

Приложение 15

Рисунок 15 - Хранимая процедура на запрашиваемую сумму

Приложение 16

Рисунок 16 - Результат триггера на запрет смены названия отеля

Приложение 17

Рисунок 17 - Результат триггера на запрет ввода записи с ценой более 2000

Приложение 18

Рисунок 18 - Результат триггера на запрет удаления заявок

Приложение 19

Рисунок 19 - Результат триггера на запрет смены серии паспорта клиента

Приложение 20

Рисунок 20 - Результат триггера на запрет вставлять запись о клиенте без гражданства

Похожие работы на - Разработка базы данных 'Гостиничная сеть'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!