Проектирование базы данных "Гостиница"

 

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

«ПЕРМСКИЙ ГОСУДАРСТВЕННЫЙ ГУМАНИТАРНО-ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ»

Факультет информатики и экономики

Кафедра прикладной информатики








ИНДИВИДУАЛЬНАЯ РАБОТА

Проектирование базы данных «Гостиница»




ИСПОЛНИТЕЛЬ: студентка гр. 1257

Шевердякова Н.Г.

НАУЧНЫЙ РУКОВОДИТЕЛЬ:

Кандидат технических наук, доцент

Симакина Н.И.






Пермь 2013

Оглавление


Введение

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

2. Концептуальное проектирование

2.1 Объекты и атрибуты

2.2 Связи

2.3 ER-диаграмма

3. Логическое проектирование

3.1 Таблицы и атрибуты

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

3.3 Определение целостности данных

3.3.1 Доменная целостность

3.3.2 Категорийная целостность

.3.3 Ссылочная целостность

3.4 Схема данных

4. Разработка приложения по технологии «Клиент-сервер»

4.1 Создание БД на SQL Server

4.2 Заполнение базы данных

4.3 Запросы

4.4 Процедуры

4.5 Триггер

5. Разработка пользовательского интерфейса

Заключение

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


Введение


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

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

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

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

Данная цель реализуется посредством решения конкретных задач:

создание концептуальной модели

проведение нормализации

упрощение концептуальной схемы и создание расчетной

определение целостности БД

разработка удобного пользовательского интерфейса

преобразовать разработанное приложение в MS SQL Server


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


Основной задачей является проектирование и разработка приложения для автоматизации регистрации гостиницы. Приложение предусматривает ведение системного каталога, содержащего информацию о гостях, о номерах и оплате номеров. В гостинице работают администраторы, которые регистрируют гостей. При регистрации гостей учитываются Имя, Фамилия гостя, Год рождения, Даты приезда и отъезда, Цель приезда. Гости могут выбрать номер одной из категорий: эконом, комфорт и люкс.

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


2. Концептуальное проектирование


.1 Объекты и атрибуты


На основании описания предметной области можно выделить следующие объекты и назначить им свойства (табл. 1).


Таблица 1. «Объекты и атрибуты»

объектатрибутКлючГостиницаКод_гостиницы Наименование_гостиницы Адрес_гостиницыКод_гостиницыАдминистраторКод_администратора Код_гостиницы Фамилия_администратораКод_администратораГостиКод_гостя Код_администратора Код_номера Имя Фамилия Год_ рождения Цель_приезда ПримечаниеКод_гостяАдресКод_гостя Город Улица Дата_регистрацииКод_гостяПаспортКод_гостя Номер_паспорта Дата_выдачи ВыданКод_гостяОплатаКод_гостя Код_номера Номер_квитанции Администратор Дата_приезда Дата_отъездаКод_гостя код_номера Код_администратораНомер Код_номера Число_комнат Этаж ТВ Холодильник Число_мест Категория Балкон Стоимость_за_суткиКод_номера

2.2 Связи


Описание предметной области позволяет определить связи (табл. 2).


Таблица 2. «Связи»

связьобъектыпоказатель кординальностистепень участияРаботают Гостиница Администратор1:Мполная полнаяРегистрируют Администратор Гости 1:Мполная полнаяПроживают Гости Адрес1:1полная полнаяИмеютГости Паспорт1:1полная полнаяСнимаютГости НомерМ:1частичная полнаяНачисляютАдминистратор Оплата1:МЧастичная частичнаяПроизводятГости Оплата1:1полная полнаярассчитываетсяНомер Оплата1:1полная полная

2.3 ER-диаграмма


Рис.1.ER-диаграмма


3. Логическое проектирование


При упрощении концептуальной схемы могут присутствовать следующие структуры данных:

1)объекты и атрибуты

2)бинарные связи типа 1:1 и 1:М

)связи типа суперкласс подкласс


3.1 Таблицы и атрибуты


При преобразовании объектов и атрибутов объект переходит в таблицу, атрибуты объекта переходят в атрибуты таблицы.


Таблица 3. Объекты и атрибуты

объекттаблицаатрибутыпервичный ключГостиницаГостиницаКод_гостиницы Наименование_гостиницы Адрес_гостиницыКод_гостиницыАдминистратор АдминистраторКод_администратора Код_гостиницы Фамилия_администратораКод_администратораГостиГостиКод_гостя Код_администратора Код_номера Имя Фамилия Год_ рождения Цель_приезда ПримечаниеКод_гостяАдресАдресКод_гостя Город Улица Дата_регистрацииКод_гостяПаспортПаспортКод_гостя Номер_паспорта Дата_выдачи ВыданКод_гостяОплатаОплатаКод_гостя Код_номера Номер_квитанции Администратор Дата_приезда Дата_отъездаКод_гостя код_номера Код_администратораНомер Номер Код_номера Число_комнат Этаж ТВ Холодильник Число_мест Категория Балкон Стоимость_за_суткиКод_номера

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


В процессе нормализации рассматриваются различные функциональные зависимости. Функциональные зависимости определяют не текущее состояние БД, а все возможные ее состояния. то есть они отражают те связи между атрибутами, которые присуши реальному объекту, моделируемые в БД.

Функциональная зависимость. Атрибут Y некоторого отношения функционально зависит от X (атрибуты могут быть составными), если в любой момент времени каждому значению X соответствует одно значение Y. Функциональная зависимость обозначается X ?Y.

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

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

Транзитивная функциональная зависимость. Пусть X, Y, Z - три атрибута некоторого отношения. При этом X ? Y и Y ? Z, но обратное соответствие отсутствует, т.е. Z -/-> Y и Y -/-> X. Тогда Z транзитивно зависит от X.

Многозначная зависимость. Пусть X. Y, Z - три атрибута отношения R. В отношении R существует многозначная зависимость R.X R.Y только в том случае, если множество значений Y. соответствующее паре значений X и Z. зависит только от X и не зависит от Z.

Рассмотри функциональные зависимости по базе данных «Гостиница»:

ФЗ 1: Код_гостиницы - Наименование_гостиницы, Адрес_гостиницы;

ФЗ 2: Код_администратора- Код_гостиницы, Фамилия_администратора;

ФЗ 3: Код_гостя - Код_администратора, Код_номера, Имя, Фамилия, Год_ рождения, Дата_приезда, Дата_отъезда, Цель_приезда, Примечание;

ФЗ 4: Код_гостя - Город, Улица, Дата_регистрации;

ФЗ 5: Код_гостя - Номер_паспорта, Дата_выдачи, Выдан;

ФЗ6: Код_гостя, код_номера, Код_администратора - Номер_квитанции.

ФЗ7: Код_номера - Число_комнат, Этаж, ТВ, Холодильник, Число_мест, Категория, Балкон, Стоимость_за_сутки.

Нормализация позволяет избавиться от избыточности данных, что позволяет осуществлять непротиворечивое и корректное редактирование данных.

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

Использование ненормализованных таблиц может привести к нарушению целостности данных (непротиворечивости информации) в базе данных.

Рассмотрим нормализацию таблиц по БД «Гостиница»

Таблицы ГОСТИНИЦА, АДМИНИСТРАТОР, ГОСТИ, АДРЕС, ПАСПОРТ, ОПЛАТА, НОМЕР находятся в 1НФ, т.к. все атрибуты этих отношений простые (табл.3).

Таблицы ГОСТИНИЦА, АДМИНИСТРАТОР, ГОСТИ, АДРЕС, ПАСПОРТ, ОПЛАТА, НОМЕР находятся во 2НФ, т.к. они находятся в 1НФ и имеют первичные ключи: Код_гостиницы, Код_администратора, Код_гостя, Код_гостя, Код_гостя, Код_гостя, Код_номера, Код_администратора, Код_номера.

Таблицы КЛИЕНТ, ЗАКАЗ, ФИРМА, УСЛУГА, СОТРУДНИК находятся в 3НФ, т.к. они приведены ко 2НФ. и все неключевые атрибуты взаимнонезависимы и полностью зависят от ключа (ФЗ1-ФЗ6).

Гостиница (Код_гостиницы, Наименование_гостиницы, Адрес_гостиницы);

Администратор (Код_администратора, Код_гостиницы, Фамилия_администратора);

Гости (Код_гостя, Код_администратора, Код_номера, Имя, Фамилия, Год_ рождения, Цель_приезда, Примечание);

Адрес : (Код_гостя - Город, Улица, Дата_регистрации);

Паспорт (Код_гостя - Номер_паспорта, Дата_выдачи, Выдан);

Оплата (Код_гостя, код_номера, Код_администратора - Номер_квитанции, Дата_приезда, Дата_отъезда);

Номер (Код_номера - Число_комнат, Этаж, ТВ, Холодильник, Число_мест, Категория, Балкон, Стоимость_за_сутки).


.3 Определение целостности данных


При проектировании БД необходимо создать наиболее эффективную структуру данных. Признаками эффективности структуры БД считаются:

. Обеспечение быстрого доступа к данным в таблицах.

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

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

Целостность данных - ограничения на значения, которые могут принимать атрибуты.

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

Важнейшими ограничениями целостности данных являются:

·доменная целостность

·категорийная целостность

·ссылочная целостность.


.3.1 Доменная целостность

Ограничение домена- ограничения НА значения атрибутов из множества значений домена. Если значения атрибута неизвестно, то опция NULL- это отсутствие атрибута.

В таблице «ГОСТИ» дата ПРИЕЗДА меньше, чем дата ОТЪЕЗДА. И при неправильном введении даты база будет сообщать ошибку и попросит проверить данные.

Все остальные атрибуты принимают значения в соответствии с типом данных.

3.3.2 Категорийная целостность

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

Первичные ключи: Код гостиницы, Код администратора, Код гостя, Код гостя, Код гостя, Код гостя, Код номера, Код администратора, Код номера..

Все первичные ключи должны быть обязательно заполнены и индексированы.


.3.3 Ссылочная целостность

Ссылочная целостность - если две таблицы связаны между собой, то внешний ключ таблицы должен содержать только значения, уже имеющиеся среди значений ключа, по которому осуществляется связь. Если корректность значений внешних ключей не контролируется СУБД, то может нарушиться ссылочная целостность данных

Внешние ключи: код гостиницы, код администратора, код гостя, код, код номера.

Внешние ключи так же не могут быть пустыми.


.4 Схема данных


После проведенного анализа и выделении ключевых сущностей предметной области и выявлении связей между ними, была разработана база данных в СУБД MS Access 2007. База данных состоит из 7 таблиц, связи между которыми показаны на рис. 2.

Рис.2. Схема данных

база данные гостиница регистрация

4. Разработка приложения по технологии «Клиент-сервер»


.1 Создание БД на SQL Server


Для начала работы необходимо запустить SQL Server Management Studio Express.

Для создания базы данных используется команда create database.database gostinica

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

Для этого в MS SQL Server существуют следующие основные типы данных:

1. BIT (тип данных SQL: BOOLEAN). Хранит значения 1, 0 или NULL, которое обозначает «unknown». В одном байте может храниться до 8 значений из столбцов типа BIT таблицы. В еще одном байте можно разместить дополнительные 8 значений типа BIT. Столбцы типа BIT нельзя индексировать.

. CHAR[(n)], CHARACTER[(n)] (тип данных SQL: CHARACTER(n)).Хранит символьные данные фиксированной длины от 1 до 8000 символов. Все неиспользованное место по умолчанию заполняется пробелами. (Автоматическое заполнение пробелами можно отключить.) Тип занимает п байт.

. DATETIME (тип данных SQL: TIMESTAMP).Хранит значение даты и времени в диапазоне с 01-01-1753 00:00:00 до 31-12-9999 23:59:59. Для хранения требуется 8 байт.

. FLOAT[(n)] (тип данных SQL: FLOAT, FLOAT(n)).Хранит значения с плавающей точкой в диапазоне от-1.79Е + 308 до 1.79Е + 308. Точность, определяемая параметром п, может изменяться в пределах от 1 до 53. Для хранения 7 цифр (и - от 1 до 24) требуется 4 байта. Значения, превышающие 7 цифр, занимают 8 байт.

. IMAGE (тип данных SQL: BLOB).Хранит двоичное значение переменной длины до 2 147 483 647 байт. Этот тип данных часто используется для хранения графики, звука и файлов, таких, как документы Microsoft Word и электронные таблицы Microsoft Excel. Значениями типа IMAGE нельзя свободно манипулировать. Столбцы типа

. INT [IDENTITY [(seed, increment)] (тип данных SQL: INTEGER).Хранит целые числа со знаком или без знака в диапазоне от -2 147 483 648 до 2 147 483 647. Занимает 4 байта. Все целочисленные типы данных, а также типы, хранящие десятичные дроби, поддерживают свойство IDENTITY, identity - это автоматически инкрементируемый идентификатор строки. Обращайтесь к разделу «Инструкция CREATE/ALTERTABLE».

. MONEY (тип данных SQL: отсутствует). Хранит денежные значения в диапазоне от -922337203685477.5808 до 922337203685477.5807. Значение занимает 8 байт.

. VARBINARY[(п)] (тип данных SQL: BLOB). Представляет собой двоичное значение переменной длины, до 8000 байт. Занимаемое место соответствует размеру вставленных данных плюс 4 байта.

. VARCHARf[(n)], CHAR VARYING [(п)], CHARACTER VARYING f(n)J (тип данных SQL: CHARACTER VARYING [(n)]. Хранит символьные данные фиксированной длины размером от 1 до 8000 символов. Занимаемое место равно реальному размеру введенного значения в байтах, а не значению n.

После создания БД в MS SQL Server необходимо создать таблицы. Для этого используем команду:

После создания базы данных следует создать таблицы с помощью команды create table. Для этого введем:

CREATE TABLE [dbo].[ГОСТИНИЦА](

[Код_гостиницы] [int] NOT NULL,

[Наименование_гостиницы] [nvarchar](20) NULL,

[Адрес_гостиницы] [nvarchar](50) NULL)key (Код_гостиницы) references Гостиница(Код _гостиницы),TABLE [dbo].[АДМИНИСТРАТОР](

[Код_администратора] [int] NOT NULL,

[Фамилия_администратора] [nvarchar](20) NULL,

[Код_гостиницы] [int] NULL)key (Код_Администратора) references Администратор(Код_ Администратора),TABLE [dbo].[ГОСТЯ](

[Код_гостя] [int] NOT NULL,

[Имя] [nvarchar](15) NULL,

[Фамилия] [nvarchar](20) NULL,

[Год_рождения] [datetime] NULL,

[Цель_приезда] [nvarchar](20) NULL,

[Примечание] [nvarchar](30) NULL)key (Код _Гостя) references Гости (Код _Гостя),TABLE [dbo].[Адрес](

[Код_гостя] [int] NOT NULL,

[Город] [nvarchar](15) NULL,

[Улица] [nvarchar](25) NULL,

[Дата_регистрации] [datetime] NULL)TABLE [dbo].[НОМЕР](

[Код_номера] [int] NOT NULL,

[Число_комнат] [int] NULL,

[Этаж] [ntext] NULL,

[ТВ] [bit] NULL DEFAULT ((0)),

[Холодильник] [bit] NULL DEFAULT ((0)),

[Число_мест] [int] NULL,

[Категория] [nvarchar](15) NULL,

[Балкон] [bit] NULL DEFAULT ((0)),

[Стоимость_за_сутки] [money] NULL,key (Код _Номера) references Номер(Код _номера),

Первичный ключ обозначается как PRIMARY KEY (имя поля)

Вторичный ключ создается в дочерней таблице следующим образом: FOREIGN KEY (имя поля), REFERENCES имя родительской таблицы (имя поля).


4.2 Заполнение базы данных


Заполним базу данных, используя команду insert.

Заполняем данные в таблицу Гостиница

Insert Гостиница (Код_гостиницы, Наименование_гостиницы, Адрес_гостиницы)values('1',' StarPalace', ' Москва, ул.Ленина, 44')

Заполняем данные в таблицу Администратор.

insert Администратор (Код_Администратора,Код_гостиницы, Фамилия_администратора)values('1', '1', ' Васильев ')Администратор (Код_Администратора,Код_гостиницы, Фамилия_администратора)values('2', '1', ' Максимов ')Администратор (Код_Администратора,Код_гостиницы, Фамилия_администратора)values('3', '1', ' Сергеев ')

Заполняем данные в таблицу Гости.

insert Гости (Код_Гостя, Имя, Фамилия, Год_рождения, Цель_приезда, примечание)values('1', ' Илья', 'Семенов ', ' 12.03.1976', 'Бизнес' )Гости (Код_Гостя, Имя, Фамилия, Год_рождения, Цель_приезда, примечание)values('2', ' Максим', 'Петров', ' 12.03.1976', 'Туризм' )Гости (Код_Гостя, Имя, Фамилия, Год_рождения, Цель_приезда, примечание)values('3', 'Сергей', 'Лосов ', ' 12.03.1976', 'Бизнес' )Гости (Код_Гостя, Имя, Фамилия, Год_рождения, Цель_приезда, примечание)values('4', ' Илья', 'Петров ', ' 12.03.1976', 'Туризм' )Гости (Код_Гостя, Имя, Фамилия, Год_рождения, Цель_приезда, примечание)values('5', ' Денис', 'Семенов ', ' 12.03.1976', 'Бизнес' )

4.3 Запросы


1. Запрос. Показать какой гость, в каком номере проживает.


Рис.4. Простой запрос


2. Запрос. Сгруппировать гостей по номеру и по администратору, регистрирующего их.


Рис. 5. Запрос с группировкой


3. Запрос. Список гостей, который регистрировал администратор Васильев (Код-администратора 1).


Рис. 6. Запрос с вычисляемым полем


.4 Процедуры


1. Процедура. Определить гостей, у которых цель приезда - бизнес.



Вызов процедуры.


Рис. 7.Вызов процедуры.

4.5 Триггер


Дата отъезда должна быть больше даты отъезда.



Рис. 9. Выполнение триггера


5. Разработка пользовательского интерфейса


Интерфейс пользователя разработан таким образом, что работать в программе было очень легко и просто.


Рис. 10 Схема меню


При запуске программы появляется «Главное меню», где определены следующие пункты меню: НОМЕРА И ГОСТИ, КВИТАНЦИЯ.


Рис.11. Главная форма


Первый пункт главного меню: НОМЕРА.

При выборе первого пункта, в меню мы видим две кнопки: «ПРАЙСИСТ» и «ПОИСК».


Рис. 12. Форма номер.


При нажатие на «ПРАЙСЛИСТ», открывается список из всех номеров гостиницы.


Рис. 13. Прайслист


При выборе «ПОИСК», открывается меню, где указаны две кнопки «ПОИСК ПО КАТЕГОРИИ» и «ПОИСК ПО ЧИСЛУ МЕСТ».


Рис. 14. Форма поиск номера


При нажатии на кнопку «ПОИСК ПО КАТЕГОРИИ» появляется запрос на поиск номера по категории.

При нажатии на кнопку «ПОИСК ПО ЧИСЛУ МЕСТ» появляется запрос на поиск номера по числу мест.


Второй пункт меню: ГОСТИ.

При выборе второго пункта, в меню мы видим четыре кнопки: «РЕГИСТРАЦИЯ НОВЫХ ГОСТЕЙ», «СПИСОК ГОСТЕЙ» и «ПОИСК ПО ФАМИЛИИ».


Рис. 15. Форма ГОСТИ


При нажатии кнопки «РЕГИСТРАЦИЯ НОВЫХ ГОСТЕЙ» появляется форма регистрации нового гостя.


Рис. 16. Форма РЕГИСТРАЦИЯ ГОСТЕЙ


При нажатии кнопки «СПИСОК ГОСТЕЙ» открывается список гостей, снимающих номера.

При нажатии кнопки «КВИТАНЦИЯ», открывается запрос, в котором по коду гостя можно узнать сумму, которую гость должен заплатить за проживание в номере.

При нажатии кнопки «ПОИСК ПО ФАМИЛИИ» появляется запрос на поиск гостей по фамилии.

Третий Пункт меню: КВИТАНЦИЯ.

При нажатии кнопки «КВИТАНЦИЯ», открывается запрос, в котором по коду гостя можно узнать сумму, которую гость должен заплатить за проживание в номере. В форме «КВИТАНЦИЯ» добавлена кнопка «ПЕЧАТЬ», которая позволяет распечатать квитанцию.


Рис. 17. Форма Квитанция


Заключение


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


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


1.Бураков П. В., Петров В. Ю. Введение в системы баз данных: учебное пособие. Санкт-Петербург, 2010.

.Грекул, В.И. Проектирование информационных систем: учебник / В.И. Грекул, Г.Н. Денищенко, Н.Л. Коровкина. - М.: Интернет-Университет информационных технологий, 2005. - 304 с.

.Диго, С.М. Создание баз данных в среде СУБД Access: учебное пособие / С.М. Диго. - М.: МЭСИ, 2000.

.http://sql.itsoft.ru/- интернет-справочник с примерами по языку SQL.(дата последнего посещения: 27.01.2013г. )


Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования «ПЕРМСКИЙ ГОСУДАРСТВЕННЫЙ ГУМАН

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ