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

 

Оглавление


Введение

1. Разработка структуры базы данных

1.1 Инфологическое проектирование

1.2 Логическая структура базы данных

1.3 Физическая структура базы данных

2. Реализация проекта БД

2.1 Создание таблиц

2.2 Создание представлений (готовые запросы)

2.3 Руководство пользователя

Заключение

Список использованной литературы

Приложение

Введение


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

С развитием информационных технологий и предпринимательства, актуальность использования баз данных значительно увеличилось. Успешные и крупные компании не могут представить свой бизнес без четко построенной информационной системы. Базы данных, построенные на SQL Server, отвечают высоким требованиям производительности и безопасности.

Предметная область: информационная система гостиницы.

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

Задачи проекта:

.Построить инфологическую (концептуальную) модель предметной области

2.Разработать логическую структуру базы данных

.Разработать физическую структуру базы данных

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

.Реализовать проект в конкретной среде

1. Разработка структуры базы данных


1.1 Инфологическое проектирование


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

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

Основными подходами к созданию инфологической модели предметной области являются:

. Функциональный подход к проектированию БД ("от задач").

. Предметный подход к проектированию БД ("от предметной области").

3. Метод "сущность-связь" (entity-relation, ER-method).

Мы будем использовать метод "сущность-связь" как наиболее распространённый. Приведём основные термины, которыми мы будем пользоваться:

Сущность - это объект, о котором в системе будут накапливаться данные. Для сущности указывается название и тип (сильная или слабая). Сильные сущности существуют сами по себе, а существование слабых сущностей зависит от существования сильных.

Атрибут - свойство сущности. Различают:

база готовый запрос гостиница

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

) Составные и простые атрибуты. Простой атрибут имеет неделимое значение. Составной атрибут является комбинацией нескольких элементов, возможно, принадлежащих разным типам данных (ФИО, адрес и др.).

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

) Основные и производные атрибуты. Значение основного атрибута не зависит от других атрибутов; значение производного атрибута вычисляется на основе значений других атрибутов. Например, возраст вычисляется на основе даты рождения и текущей даты.

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

Связь - это осмысленная ассоциация между сущностями. Для связи указывается название, тип (факультативная или обязательная), кардинальность (1: 1, 1: n или m: n) и степень (унарная, бинарная, тернарная или n-арная). Инфологическая модель предметной области "Гостиница" представлена на рис. 1.


Рисунок 1. Инфологическая (концептуальная) модель предметной области


1.2 Логическая структура базы данных


На этапе логического проектирования разрабатывается логическая (концептуальная) структура БД. Для реляционной модели существуют формальные правила, которые позволяют преобразовать инфологическую модель ПрО в виде ER-диаграммы в логическую схему базы данных. Кроме получения схемы БД в целом на этом этапе выполняют создание схем отношений и их нормализацию.

Шесть сущностей находятся в третьей нормальной форме, т.е. все атрибуты сущностей содержат атомарные значения (значения в домене не являются ни списками, ни множествами простых или сложных значений); каждый неключевой атрибут полностью зависит от первичного ключа; никакой неключевой атрибут не зависит от другого неключевого атрибута. Логическая структура предметной области "Гостиница" представлена на рис.2.


Рисунок 2 Логическая структура базы данных


1.3 Физическая структура базы данных


Этап физического проектирования заключается в определении схемы хранения, т.е. физической структуры БД. Схема хранения зависит от той физической структуры, которую поддерживает выбранная СУБД. Физическая структура БД, с одной стороны, должна адекватно отражать логическую структуруБД, а с другой стороны, должна обеспечивать эффективное размещение данных и быстрый доступ к ним. Результаты этого этапа документируются в форме схемы хранения на языке определения данных (DDL, Data Definition Language) выбранной СУБД. Принятые на этом этапе решения оказывают огромное влияние на производительность системы.

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

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

Каждое реляционное отношение соответствует одной сущности (объекту ПрО) и в него вносятся все атрибуты этой сущности. Для каждого отношения определяются первичный ключ и внешние ключи (в соответствии со схемой БД). В том случае, если базовое отношение не имеет потенциальных ключей, вводится суррогатный первичный ключ, который не несёт смысловой нагрузки и служит только для идентификации записей.

Отношения приведены в табл.1-5. Для каждого отношения указаны атрибуты с их внутренним названием, типом и длиной.


Таблица 1. "Клиенты"

АтрибутыТипКлючОписаниеId_kIntprimaryКод категорииFVarchar (50) ФамилияIVarchar (50) ИмяOVarchar (50) ОтчествоTelVarchar (50) ТелефонPassportVarchar (50) Серия и номер паспорта

Таблица 2. "Номера"

АтрибутыТипКлючОписаниеId_nIntprimaryКод номераId_katIntForeignКод категорииCcMoneyСтоимость за суткиKmIntКоличество мест

Таблица 3. "Персонал"

АтрибутыТипКлючОписаниеId_pIntprimaryКод работникаFamVarchar (50) ФамилияImVarchar (50) ИмяOtVarchar (50) ОтчествоDoljVarchar (50) ДолжностьZpMoneyЗаработная плата

Таблица 4. "Категории номеров"

АтрибутыТипКлючОписаниеId_katIntprimaryКод категорииNazvnVarchar (50) Название

Таблица 5. "Учет работы"

АтрибутыТипКлючОписаниеId_oIntprimaryКод отчетаId_nIntForeignКод номераId_kIntForeignКод клиентаDzDatetimeДата заселенияDvDatetimeДата выселенияKdIntКоличество днейId_pIntForeignКод работника

2. Реализация проекта БД


2.1 Создание таблиц


1.Отношение kl (Клиенты)

create table kl (id_k int identity (1,1) not null primary key, f varchar (50) not null, i varchar (50) not null, o varchar (50) not null, dr datetime not null, tel varchar (50) not null, pasport varchar (50) not null);

2.Отношение nomer (Номер)

create table nomer (id_n int identity (1,1) not null primary key, id_kat int not null references kat, cc money not null, km int not null char between 1 and 4);

3.Отношение Personal (Персонал)table personal (id_p int identity (1,1) not null primary key, fam varchar (50) not null, im varchar (50) not null, ot varchar (50), dolj varchar (50) not null, zp money not null);

4.Отношение kat (Категории номеров)

create table kat (id_kat int identity (1,1) not null primary key, nazvn varchar (50) not null);

5.Отношение job (Учет работы)

create table job (id_o int identity (1,1) not null primary key, id_n int not null references nomer, id_k int not null references kl, dz datetime not null, dv datetime not null, id_p int not null references personal);


2.2 Создание представлений (готовые запросы)


1.Ведение списка постояльцев

SELECT dbo. kl. f AS Фамилия, dbo. kl. i AS Имя, dbo. kl. o AS Отчество, dbo. kl. dr AS [Дата рождения], dbo. job. dz AS [Дата заселения]

FROM dbo. kl INNER JOIN dbo. job ON dbo. kl. id_k = dbo. job. id_kBY dbo. kl. f, dbo. kl. i, dbo. kl. o, dbo. kl. dr, dbo. job. dz(COUNT (dbo. job. id_k) > 1)

2.Учет забронированных местid_n as [Номер], kat. nazvn as [Категория]nomer, kat, jobnomer. id_n = job. id_nby id_n

3.Ведение архива выбывших постояльцев за последний год

select f as [Фамилия], i as [Имя], o as [Отчество], getdate () as [Сегодня], job. dv as [Дата выселения]

from kl, jobjob. dv < getdate () and job. id_k = kl. id_kby f

4.Получение списка свободных номеровid_n as [Номер], kat. nazvn as [Категория]nomer, kat, jobnomer. id_n! = job. id_nby id_n

.Полученеи списка номеров, освобождающихся сегодня

select nomer. id_n as [Номер], kat. nazvn as [Категория], getdate () as [Сегодня], dateadd (day, 1, current_timestamp) as [Завтра]nomer, kat, jobjob. dv = getdate () or job. dv=dateadd (day, 1, current_timestamp) and. id_kat = kat. id_kat and. id_n = nomer. id_n

6.Выдача информации по конкретному номеру

select nomer. id_n as [Номер], kat. nazvn as [Категория], nomer. cc as [Стоимость за сутки], nomer. km as [Количество мест]

from kat, nomerkat. id_kat = nomer. id_kat

7.Автоматизация выдачи счетов на оплату

SELECT kl. f AS [Фамилия], kl. i AS [Имя], kl. o AS [Отчество], nomer. id_n AS [Номер], job. kd * nomer. cc AS [Сумма]

FROM kl, nomer, job, katkl. id_k = job. id_k AND nomer. id_kat = kat. id_kat and nomer. id_n = job. id_n

8.Проверка наличия брони по имени клиента

select kl. f as [Фамилия], kl. i as [Имя], kl. o as [Отчество], nomer. id_n as [Номер]

from kl, nomer, job, personal, katkl. id_k = job. id_k and. id_kat = kat. id_kat and. id_p = personal. id_p

Создание процедур

Процедура "Броня"PROCEDURE Броня

(

@parameter1 varchar (50) = ''

)

AS

select Фамилия, Имя, Отчество, Номер

from "Наличие брони по имени клиента"

where Фамилия = @parameter1

RETURN

Вызов процедурыa = InputBox ("Введите фамилию клиента или название организации")

Dim db As New DataClasses1DataContextb = db. Броня (a)

Броня. DataGridView1. DataSource = b

Броня. Show ()

Процедура "Клиент"

ALTER PROCEDURE Клиент

(

@parameter1 varchar (50) = ''

)

AS

select Фамилия, Имя, Отчество, "Дета рождения", Телефон, Паспорт

from "Информация о клиенте"

where Фамилия = @parameter1

RETURN

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

Dim a = InputBox ("Введите фамилию клиента")

Dim db As New DataClasses1DataContextb = db. Клиент (a)

клиент. DataGridView1. DataSource = b

клиент. Show ()

Процедура "Номер"PROCEDURE Номер

(

@parameter1 int = ''

)

AS

select Номер, Категория, "Стоимость за сутки", "Количество мест"

from "Информация по конкретному номеру"

where Номер = @parameter1

RETURN

Вызов процедурыa = InputBox ("Введите значение номера")

Dim db As New DataClasses1DataContextb = db. Номер (a)

номер. DataGridView1. DataSource = b

номер. Show ()

Процедура "Счет"PROCEDURE Счет

(

@parameter1 int = ''

)

AS

select Фамилия, Имя, Отчество, Номер, Сумма

from "Выдача счетов на оплату"

where Номер = @parameter1

RETURN

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

Dim a = InputBox ("Введите значение номера")

Dim db As New DataClasses1DataContextb = db. Счет (a)

счет. DataGridView1. DataSource = b

счет. Show ()


2.3 Руководство пользователя


Приложение не требует инсталляции, пользователю необходимо зaпустить файл Гoстиница. exe. После чего на экран появится главное окно. Пользователь имеет право редактировать данные, используя формы "Категории", "Номера", "Персонал", "Клиенты".

В каждом диaлогoвом oкне есть кнoпки нaвигации, дoбавления новой записи и окно поиска нужной записи.

Также у пользователя существует вoзможность произвести отбор нужных записей с помoщью запросов, работа которых описана выше. Пользователь имеет доступ к отчетaм.

Для выхода из программы необходимо закрыть окно.

Заключение


Курсовая работа выполнена в соответствии с техническим заданием. Разработана и спроектирована автоматизированная информационная система основанная на базе данных "Магазин продуктовый, содержащая необходимые данные. База данных разработана в программной системе разработки баз данных MS SQL Server Management Studio 2005, что позволяет легко понять ее организацию и простоту управления. Получить необходимую информацию из базы данных можно, используя SQL - запросы. На основе данной автоматизированной информационной системы возможно проектирование подобных баз данных для схожих целей.

Список использованной литературы


1.Visual Studio.net: разработка приложений для баз данных. - СПб.: БХВ-Петербург, 2011. - 544 с.

2.Знакомство с MS SQL Server /В. Вшивцев. - И.: Русская редакция, - 2009. - 288 с.

.Базы данных/А.В. Кузин. - И.: Академия, - 2012. - 320 с.

.Базы данных/И.П. Карпова. - И.: Питер, - 2013. - 240 с.

.Введение в программирование на языке MS Visual Basic.net/С.Р. Гуриков. - И.: Дрофа, - 2010. - 528 с.

.Введение в.net 4.0 и Visual Studio 2010 для профессионалов/Алекс Микки. - И.: Вильямс, - 2010. - 416 с.


Приложение


Рисунок 1 Главное окно


Рисунок 2 Форма "Клиенты"


Рисунок 3 Счет на оплату номера


Рисунок 4 Забронированные номера


Оглавление Введение 1. Разработка структуры базы данных 1.1 Инфологическое проектирование 1.2 Логическая структура базы данных 1.3 Физическая

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

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

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

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

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