Разработка базы данных «Гостиница»
Инфологическая модель ПрО представляет собой описание структуры и динамики ПрО, характера информационных потребностей пользователей в терминах, понятных пользователю и не зависимых от реализации БД. Это описание выражается в терминах не отдельных объектов ПрО и связей между ними, а их типов, связанных с ними ограничений целостности и тех процессов, которые приводят к переходу ПрО из одного… Читать ещё >
Разработка базы данных «Гостиница» (реферат, курсовая, диплом, контрольная)
- Введение
- 1. Разработка структуры базы данных
- 1.1 Инфологическое проектирование
- 1.2 Логическая структура базы данных
- 1.3 Физическая структура базы данных
- 2. Реализация проекта БД
- 2.1 Создание таблиц
- 2.2 Создание представлений (готовые запросы)
- 2.3 Руководство пользователя
- Заключение
- Список использованной литературы
- Приложение
База данных — важнейший компонент любой информационной системы. База данных позволяет структурировано хранить большие объемы информации конкретного предприятия, что значительно рационализирует ведение отчетов и создание архивов. Оптимизированные базы данных значительно увеличивают производительность, построенных на их использовании, программ.
С развитием информационных технологий и предпринимательства, актуальность использования баз данных значительно увеличилось. Успешные и крупные компании не могут представить свой бизнес без четко построенной информационной системы. Базы данных, построенные на SQL Server, отвечают высоким требованиям производительности и безопасности.
Предметная область: информационная система гостиницы.
Целью данного курсового проекта является реализация программной системы «Гостиница» для автоматизации деятельности и обеспечения хранения, накопления и предоставления информации.
Задачи проекта:
1. Построить инфологическую (концептуальную) модель предметной области
2. Разработать логическую структуру базы данных
3. Разработать физическую структуру базы данных
4. Разработать пользовательский интерфейс
5. Реализовать проект в конкретной среде
1. Разработка структуры базы данных
1.1 Инфологическое проектирование
Основными задачами этапа инфологического проектирования являются определение предметной области системы и формирование взгляда на неё с позиций сообщества будущих пользователей БД, т. е. информационно-логической модели ПрО.
Инфологическая модель ПрО представляет собой описание структуры и динамики ПрО, характера информационных потребностей пользователей в терминах, понятных пользователю и не зависимых от реализации БД. Это описание выражается в терминах не отдельных объектов ПрО и связей между ними, а их типов, связанных с ними ограничений целостности и тех процессов, которые приводят к переходу ПрО из одного состояния в другое.
Основными подходами к созданию инфологической модели предметной области являются:
1. Функциональный подход к проектированию БД («от задач»).
2. Предметный подход к проектированию БД («от предметной области»).
3. Метод «сущность-связь» (entity-relation, ER-method).
Мы будем использовать метод «сущность-связь» как наиболее распространённый. Приведём основные термины, которыми мы будем пользоваться:
Сущность — это объект, о котором в системе будут накапливаться данные. Для сущности указывается название и тип (сильная или слабая). Сильные сущности существуют сами по себе, а существование слабых сущностей зависит от существования сильных.
Атрибут — свойство сущности. Различают:
база готовый запрос гостиница
1) Идентифицирующие и описательные атрибуты. Идентифицирующие позволяют отличить один экземпляр сущности от другого. Описательные атрибуты заключают в себе интересующие нас свойства сущности.
2) Составные и простые атрибуты. Простой атрибут имеет неделимое значение. Составной атрибут является комбинацией нескольких элементов, возможно, принадлежащих разным типам данных (ФИО, адрес и др.).
3) Однозначные и многозначные атрибуты (могут иметь соответственно одно или много значений для каждого экземпляра сущности). Например, дата рождения — это однозначный атрибут, а номер телефона — многозначный.
4) Основные и производные атрибуты. Значение основного атрибута не зависит от других атрибутов; значение производного атрибута вычисляется на основе значений других атрибутов. Например, возраст вычисляется на основе даты рождения и текущей даты.
5) Обязательные и необязательные (первые должны быть указаны при размещении данных в БД, вторые могут не указываться). Для каждого атрибута необходимо определить название, указать тип данных и описать ограничения целостности — множество значений, которые может принимать данный атрибут.
Связь — это осмысленная ассоциация между сущностями. Для связи указывается название, тип (факультативная или обязательная), кардинальность (1: 1, 1: n или m: n) и степень (унарная, бинарная, тернарная или n-арная). Инфологическая модель предметной области «Гостиница» представлена на рис. 1.
Рисунок 1. Инфологическая (концептуальная) модель предметной области
1.2 Логическая структура базы данных
На этапе логического проектирования разрабатывается логическая (концептуальная) структура БД. Для реляционной модели существуют формальные правила, которые позволяют преобразовать инфологическую модель ПрО в виде ER-диаграммы в логическую схему базы данных. Кроме получения схемы БД в целом на этом этапе выполняют создание схем отношений и их нормализацию.
Шесть сущностей находятся в третьей нормальной форме, т. е. все атрибуты сущностей содержат атомарные значения (значения в домене не являются ни списками, ни множествами простых или сложных значений); каждый неключевой атрибут полностью зависит от первичного ключа; никакой неключевой атрибут не зависит от другого неключевого атрибута. Логическая структура предметной области «Гостиница» представлена на рис. 2.
Рисунок 2 Логическая структура базы данных
1.3 Физическая структура базы данных
Этап физического проектирования заключается в определении схемы хранения, т. е. физической структуры БД. Схема хранения зависит от той физической структуры, которую поддерживает выбранная СУБД. Физическая структура БД, с одной стороны, должна адекватно отражать логическую структуруБД, а с другой стороны, должна обеспечивать эффективное размещение данных и быстрый доступ к ним. Результаты этого этапа документируются в форме схемы хранения на языке определения данных (DDL, Data Definition Language) выбранной СУБД. Принятые на этом этапе решения оказывают огромное влияние на производительность системы.
Одной из важнейших составляющих проекта базы данных является разработка средств защиты БД. Защита данных имеет два аспекта: защита от сбоев и защита от несанкционированного доступа. Для защиты от сбоев на этапе физического проектирования разрабатывается стратегия резервного копирования.
Для защиты от несанкционированного доступа каждому пользователю доступ к данным предоставляется только в соответствии с его правами доступа, набор которых также является составной частью проекта БД.
Каждое реляционное отношение соответствует одной сущности (объекту ПрО) и в него вносятся все атрибуты этой сущности. Для каждого отношения определяются первичный ключ и внешние ключи (в соответствии со схемой БД). В том случае, если базовое отношение не имеет потенциальных ключей, вводится суррогатный первичный ключ, который не несёт смысловой нагрузки и служит только для идентификации записей.
Отношения приведены в табл.1−5. Для каждого отношения указаны атрибуты с их внутренним названием, типом и длиной.
Таблица 1. «Клиенты»
Атрибуты | Тип | Ключ | Описание | |
Id_k | Int | primary | Код категории | |
F | Varchar (50) | Фамилия | ||
I | Varchar (50) | Имя | ||
O | Varchar (50) | Отчество | ||
Tel | Varchar (50) | Телефон | ||
Passport | Varchar (50) | Серия и номер паспорта | ||
Таблица 2. «Номера»
Атрибуты | Тип | Ключ | Описание | |
Id_n | Int | primary | Код номера | |
Id_kat | Int | Foreign | Код категории | |
Cc | Money | Стоимость за сутки | ||
Km | Int | Количество мест | ||
Таблица 3. «Персонал»
Атрибуты | Тип | Ключ | Описание | |
Id_p | Int | primary | Код работника | |
Fam | Varchar (50) | Фамилия | ||
Im | Varchar (50) | Имя | ||
Ot | Varchar (50) | Отчество | ||
Dolj | Varchar (50) | Должность | ||
Zp | Money | Заработная плата | ||
Таблица 4. «Категории номеров»
Атрибуты | Тип | Ключ | Описание | |
Id_kat | Int | primary | Код категории | |
Nazvn | Varchar (50) | Название | ||
Таблица 5. «Учет работы»
Атрибуты | Тип | Ключ | Описание | |
Id_o | Int | primary | Код отчета | |
Id_n | Int | Foreign | Код номера | |
Id_k | Int | Foreign | Код клиента | |
Dz | Datetime | Дата заселения | ||
Dv | Datetime | Дата выселения | ||
Kd | Int | Количество дней | ||
Id_p | Int | Foreign | Код работника | |
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 (Персонал)
create 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_k
GROUP BY dbo. kl. f, dbo. kl. i, dbo. kl. o, dbo. kl. dr, dbo. job. dz
HAVING (COUNT (dbo. job. id_k) > 1)
2. Учет забронированных мест
select id_n as [Номер], kat. nazvn as [Категория]
from nomer, kat, job
where nomer. id_n = job. id_n
order by id_n
3. Ведение архива выбывших постояльцев за последний год
select f as [Фамилия], i as [Имя], o as [Отчество], getdate () as [Сегодня], job. dv as [Дата выселения]
from kl, job
where job. dv < getdate () and job. id_k = kl. id_k
order by f
4. Получение списка свободных номеров
select id_n as [Номер], kat. nazvn as [Категория]
from nomer, kat, job
where nomer. id_n! = job. id_n
order by id_n
5. Полученеи списка номеров, освобождающихся сегодня
select nomer. id_n as [Номер], kat. nazvn as [Категория], getdate () as [Сегодня], dateadd (day, 1, current_timestamp) as [Завтра]
from nomer, kat, job
where job. dv = getdate () or job. dv=dateadd (day, 1, current_timestamp) and
nomer. id_kat = kat. id_kat and
job. id_n = nomer. id_n
6. Выдача информации по конкретному номеру
select nomer. id_n as [Номер], kat. nazvn as [Категория], nomer. cc as [Стоимость за сутки], nomer. km as [Количество мест]
from kat, nomer
where kat. 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, kat
WHERE kl. 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, kat
where kl. id_k = job. id_k and
nomer. id_kat = kat. id_kat and
job. id_p = personal. id_p
Создание процедур
Процедура «Броня»
ALTER PROCEDURE Броня
(
@parameter1 varchar (50) = ''
)
AS
select Фамилия, Имя, Отчество, Номер
from «Наличие брони по имени клиента»
where Фамилия = @parameter1
RETURN
Вызов процедуры
Dim a = InputBox («Введите фамилию клиента или название организации»)
Dim db As New DataClasses1DataContext
Dim b = db. Броня (a)
Броня. DataGridView1. DataSource = b
Броня. Show ()
Процедура «Клиент»
ALTER PROCEDURE Клиент
(
@parameter1 varchar (50) = ''
)
AS
select Фамилия, Имя, Отчество, «Дета рождения», Телефон, Паспорт
from «Информация о клиенте»
where Фамилия = @parameter1
RETURN
Вызов процедуры
Dim a = InputBox («Введите фамилию клиента»)
Dim db As New DataClasses1DataContext
Dim b = db. Клиент (a)
клиент. DataGridView1. DataSource = b
клиент. Show ()
Процедура «Номер»
ALTER PROCEDURE Номер
(
@parameter1 int = ''
)
AS
select Номер, Категория, «Стоимость за сутки», «Количество мест»
from «Информация по конкретному номеру»
where Номер = @parameter1
RETURN
Вызов процедуры
Dim a = InputBox («Введите значение номера»)
Dim db As New DataClasses1DataContext
Dim b = db. Номер (a)
номер. DataGridView1. DataSource = b
номер. Show ()
Процедура «Счет»
ALTER PROCEDURE Счет
(
@parameter1 int = ''
)
AS
select Фамилия, Имя, Отчество, Номер, Сумма
from «Выдача счетов на оплату»
where Номер = @parameter1
RETURN
Вызов процедуры
Dim a = InputBox («Введите значение номера»)
Dim db As New DataClasses1DataContext
Dim b = 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 с.
3. Базы данных/А.В. Кузин. — И.: Академия, — 2012. — 320 с.
4. Базы данных/И.П. Карпова. — И.: Питер, — 2013. — 240 с.
5.
Введение
в программирование на языке MS Visual Basic.net/С.Р. Гуриков. — И.: Дрофа, — 2010. — 528 с.
6.
Введение
в.net 4.0 и Visual Studio 2010 для профессионалов/Алекс Микки. — И.: Вильямс, — 2010. — 416 с.
Приложение
Рисунок 1 Главное окно
Рисунок 2 Форма «Клиенты»
Рисунок 3 Счет на оплату номера
Рисунок 4 Забронированные номера