39904

Разработка информационной системы автоматизации фронт-офисных задач в гостиничном бизнесе

Дипломная

Информатика, кибернетика и программирование

АНАЛИЗ СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ MS SQL SERVER И ИНТЕГРИРОВАННОЙ СРЕДЫ РАЗРАБОТКИ BORLAND C BUILDER. Анализ системы управления базами данных. Масштабируемый доступ к базам данных. Проектирование базы данных Гостиница SRL Kiwiban.

Русский

2013-10-11

2.04 MB

170 чел.

157

Содержание

ВВЕДЕНИЕ 7

1. ИССЛЕДОВАНИЕ ОСОБЕННОСТЕЙ ИСПОЛЬЗОВАНИЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ В ФРОНТ-ОФИСНЫХ ЗАДАЧАХ ГОСТИНИЧНОГО БИЗНЕСА 10

1.1. Понятие и история развития информационных технологий 10

1.2. Исследование особенностей организации информационных систем гостиничного комплекса 11

1.2.1. Классификация информационных технологий 11

1.2.2. Общая характеристика гостиничного комплекса 14

1.2.3. Специфика компьютеризации гостиничного бизнеса 15

1.3. Обзор технологий и программ – аналогов управления гостиничными комплексами 16

1.3.1. Hotel-2000 16

1.3.2. Система «Эдельвейс» 17

1.3.3. Fidelio 18

1.3.4. Система Lodging Touch 19

1.3.5. Сравнительная характеристика основных систем управления гостиничным комплексом 21

1.4. Постановка задачи 22

1.5. Выводы 23

2. АНАЛИЗ СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ MS SQL SERVER И ИНТЕГРИРОВАННОЙ СРЕДЫ РАЗРАБОТКИ BORLAND C++ BUILDER 24

2.1. Анализ системы управления базами данных 24

2.1.1. Понятие СУБД 24

2.1.2. Архитектура СУБД 25

2.1.3. Нормализация 28

2.1.4. Возможности MS SQL SERVER 29

2.1.5. Инструменты MS SQL SERVER 31

2.1.6. Администрирование 33

2.1.7. Безопасность 34

2.1.8. Преимущества MS SQL SERVER 34

2.2. Анализ интегрированной среды разработки Borland C++ Builder 36

2.2.1. Основные характеристики C++ Builder 6 36

2.2.2. Масштабируемый доступ к базам данных 39

2.2.3. Преимущества 42

2.3. Выводы 42

3. РАЗРАБОТКА ИНФОРМАЦИОННОЙ СИСТЕМЫ АВТОМАТИЗАЦИИ ФРОНТ – ОФИСНЫХ ЗАДАЧ В ГОСТИНИЧНОМ БИЗНЕСЕ 43

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

3.1.1. Описание предметной области «Гостиница» SRL Kiwiban 43

3.1.2. Построение концептуальной модели базы данных «Гостиница» SRL Kiwiban 44

3.1.3. Построение логической модели базы данных «Гостиница» SRL Kiwiban 52

3.1.4. Построение физической модели данных  на языке SQL средствами СУБД MS SQL SERVER 53

3.2. Программная реализация системы автоматизации фронт офисных задач в гостиничном бизнесе 60

3.2.1. Подключение к базе данных 60

3.2.2. Создание модулей информационной системы 61

3.2.3. Интерфейс 64

3.2.4. Справка 68

3.2.5. Установщик 68

3.3. Выводы 69

4. УПРАВЛЕНИЕ БЕЗОПАСНОСТЬЮ ПРОЕКТА, РАСЧЕТ ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ И ТЕСТИРОВАНИЕ СИСТЕМЫ 71

4.1. Управление безопасностью проекта управление 71

4.2. Тестирование системы автоматизации 74

4.3. Расчет экономической эффективности 79

4.4. Выводы 82

ЗАКЛЮЧЕНИЕ 83

Библиографический список 84

Список приложений 87


ВВЕДЕНИЕ

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

Решив однажды автоматизировать бизнес, некоторые предприниматели делают ошибку, погнавшись за рекламой фирмы, предлагающей подобные услуги. Не редко выбирают самый дорогой пакет услуг, придерживаясь принципа – «чем больше функций, тем лучше», а затем меняют свое оборудование, т.к. оно не совместимо с купленной автоматизированной системой, либо не совсем соответствует требованиям для нормального функционирования. Это ведет к дополнительным затратам, а ведь и система сама стоит внушительных денег. Поэтому данного принципа лучше всего избегать и выбирать или создавать систему под нужды компании и обязательно совместимую с компьютерами и их операционными системами. Такой подход будет самым оптимальным и сравнительно недорогим.

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

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

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

Субъектом исследования является гостиница “Weekend Boutique Hotel”, г. Кишинев.

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

Научные и практические задачи выпускной квалификационной работы:

  1. Исследовать особенности использования информационных технологий в фронт – офисных задачах гостиничного бизнеса.
  2. Проанализировать особенности работы с базами данных:
  3. изучить и сформировать требования к базам данных;
  4. изучить и определить целостности сущностей и внешних ключей.
  5. Разработать базу данных в MS SQL Server, описать этапы проектирования и механизмы доступа к базе данных.
  6. Создать приложение в среде C++ Builder для работы с базой данных.
  7. Провести тестирование системы.
  8. Рассчитать затраты и экономическую эффективность проекта.
  9. Сформулировать выводы и предложения.

Методы и база исследования:

1. Для решения поставленных задач применен комплекс аналитических методов исследования: анализ, моделирование и проектирование; наблюдения; анализ документов и результатов деятельности; экспертная оценка; изучение независимых характеристик; мониторинг различных программных продуктов и др.

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

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

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

Новизной работы является разработка по требованию заказчика индивидуальной конфигурации информационной системы (ИС) для выполнения специфических функций органайзера (просмотр и корректировка информации по временному промежутку – день, месяц, год) и многооконного конструктора форм (заселение, бронирование, ремонт, баланс клиента и др). В среде C++ Borland 2006 реализован алгоритм отлавливания кликов на форме в зависимости от выбранного компонента Edit (800 значений).

Структурно работа состоит из введения, четырех глав, заключения, списка терминов и сокращений, списков использованной литературы и приложений. Написана на 86 листах компьютерного текста, содержит 23 рисунка, 11 таблиц, 44 наименования литературных и научных источников, 3 приложения.

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


1. ИССЛЕДОВАНИЕ ОСОБЕННОСТЕЙ ИСПОЛЬЗОВАНИЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ В ФРОНТ-ОФИСНЫХ ЗАДАЧАХ ГОСТИНИЧНОГО БИЗНЕСА

1.1. Понятие и история развития информационных технологий

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

Согласно определению, принятому ЮНЕСКО, информационные технологии — это комплекс взаимосвязанных научных, технологических, инженерных дисциплин, изучающих методы эффективной организации труда людей, занятых обработкой и хранением информации; вычислительную технику и методы организации и взаимодействия с людьми и производственным оборудованием, их практические приложения, а также связанные со всем этим социальные, экономические и культурные проблемы. [43]

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

История развития информационных технологий может быть разбита на несколько этапов. Первый этап – это ручная технология сбора и обработки информации, господствовавшая до второй половины XIX века. Основными инструментами в то время являлись перо, чернила и простейшие счетные аппараты, а средства коммуникации были представлены в форме курьерской и почтовой связи. В конце XIX в. начался этап механической технологии. К этому времени относится создание пишущей машинки, телефона, которые существенно изменили технологию обработки информации и организационную структуру предприятий. С появлением электронных пишущих машинок, копировальных машин и диктофонов в 40 – 60-х гг. XX в. связывается этап электронной технологии. Массовое производство электронно-вычислительных машин в 60-х гг. и их широкое проникновение во все сферы деятельности являются началом новой компьютерной информационной технологии. Особо успешно эта технология начала внедряться с 70-х гг., когда были созданы персональные электронно-вычислительные машины. [21]

Если рассматривать информационные технологии по степени автоматизации, то они бывают: ручные; автоматизированные и автоматические.

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

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

В системах организационного управления наиболее распространены автоматизированные информационные технологии, в которых главным лицом выступает человек. К таким системам относятся практически все информационные системы, используемые в области социально-культурного сервиса и туризма. [21]

1.2. Исследование особенностей организации информационных систем гостиничного комплекса

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

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

Цель информационной технологии — производство информации для ее анализа человеком и принятия на его основе решения по выполнению какого-либо действия. [39]

1.2.1. Классификация информационных технологий

Выделяют следующие виды информационных технологий:

  1. информационная технология обработки данных;
    1. информационная технология управления;
    2. информационная технология поддержки принятия решений;
    3. информационная технология экспертных систем.

Информационная технология обработки данных технология применяется на уровне операционной (исполнительской) деятельности персонала невысокой квалификации в целях автоматизации некоторых рутинных, постоянно повторяющихся операций управленческого труда.[39]

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

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

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

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

Главная идея технологии экспертных систем заключается в том, чтобы получить от эксперта его знания и, загрузив их в память компьютера, использовать всякий раз, когда в этом возникнет необходимость. Являясь одним из основных приложений искусственного интеллекта, экспертные системы представляют собой компьютерные программы, трансформирующие опыт экспертов в какой-либо области знаний в форму эвристических правил (эвристик). Эвристики не гарантируют получения оптимального результата с такой же уверенностью, как обычные алгоритмы, используемые для решения задач в рамках технологии поддержки принятия решений. Однако часто они дают в достаточной степени приемлемые решения для их практического применения. Все это делает возможным использовать технологию экспертных систем в качестве советующих систем.[39]

Если рассматривать классификацию автоматизированных информационных систем, то можно их разделить по ряду признаков:

  1. По способу реализации в АИС:
  2. традиционные;
  3. новые информационные технологии.
  4. По степени охвата задач управления:
  5. электронная обработка данных;
  6. автоматизация функций управления;
  7. поддержка принятия решений;
  8. электронный офис;
  9. экспертная поддержка.
  10. По классу реализуемых технологических операций:
  11. работа с текстовым редактором;
  12. работа с табличным процессором;
  13. работа с СУБД;
  14. работа с графическими объектами;
  15. мультимедийные системы;
  16. гипертекстовые системы.
  17. по типу пользовательского интерфейса:
  18. пакетные;
  19. диалоговые;
  20. сетевые.
  21. По способу построения сети:
  22. локальные;
  23. многоуровневые;
  24. распределенные.
  25. По обслуживаемым предметным областям:
  26. бухгалтерский учет;
  27. банковская деятельность;
  28. налоговая деятельность;
  29. страховая деятельность;
  30. другие.

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

1.2.2. Общая характеристика гостиничного комплекса

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

К основным типовым службам относятся:

  1. служба управления номерным фондом;
  2. административная служба;
  3. коммерческая служба;
  4. служба питания;
  5. инженерно-технические службы;
  6. вспомогательные службы.

Служба управления номерным фондом осуществляет основные бизнес-процессы по приему и обслуживанию гостей, и во многом именно она определяет качество предоставляемых услуг. С этой точки зрения эта служба является одним из основных объектов, в первую очередь подлежащих автоматизации. В состав этого подразделения входят работники службы приема и размещения (front-office), персонал по обслуживанию номерного фонда (housekeeping), объединенная сервисная служба, включая швейцаров, посыльных, носильщиков, водителей автомобилей, службу безопасности и др.

К основным функциям службы относятся:

  1. бронирование номеров;
  2. прием, регистрация и размещение гостей;
  3. прием оплаты за предоставленные услуги и оформление необходимой документации при выезде гостей;
  4. оказание разнообразных бытовых услуг гостям;
  5. поддержание санитарно-гигиенического состояния номеров.

Организовать работу гостиничного комплекса с максимальной эффективностью и в соответствии с современными мировыми требованиями можно только с использованием современных компьютерных технологий. Вопрос комплексной автоматизации процессов бронирования, регистрации и размещения гостей, расчетов с ними, агентами, туроператорами является весьма актуальным для российских гостиниц. Автоматизацией управления гостиничными комплексами занимались еще несколько десятилетий назад в эпоху создания первых автоматизированных систем управления предприятиями. Тогда преимущественно осуществлялась разработка индивидуальных информационных систем на заказ для конкретной гостиницы. Такого рода подход практикуется и сейчас, но он не является перспективным, так как создавать заказные системы стало экономически невыгодно. Кроме этого, к настоящему времени разработано достаточно много различных систем управления гостиничными комплексами как зарубежных, так и отечественных, среди которых можно выбрать наиболее подходящую. При необходимости всегда можно сделать дополнительные доработки с учетом особенностей функционирования конкретной гостиницы. [21]

1.2.3. Специфика компьютеризации гостиничного бизнеса

Компьютеризация гостиницы позволяет:

  1. повысить эффективность системы управления;
  2. повысить безопасность гостей и личного имущества, а также имущества отеля;
  3. расширить клиентскую базу отеля и решить ряд маркетинговых задач;
  4. увеличить доходы, связанные с расширением предложения дополнительных услуг отеля.

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

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

Система позволяет решить следующие задачи:

  1. оптимизация бизнес-процессов, снижение бумажного документооборота;
  2. повышение контроля над деятельностью служб и персонала;
  3. повышение качества обслуживания гостей;
  4. оптимизация операционных затрат;
  5. статистические и аналитические функции.

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

Так, программа автоматизации службы управления номерным фондом (Front office) позволяет обеспечить управление номерным фондом, резервирование, бронирование и размещение, регистрацию гостей, ведение гостевых счетов с автоматическим начислением стоимости проживания и оказанных услуг. [13]

1.3. Обзор технологий и программ – аналогов управления гостиничными комплексами

1.3.1. Hotel-2000

Система автоматизации гостиниц Hotel-2000 была создана в 1996-1997 гг. компанией «Интур-Софт» при участии Правительства Москвы в рамках Программы развития гостинично - туристического комплекса столицы.

Система Hotel-2000 предусматривает выполнение следующих функций:

  1. управление номерным фондом, оптимизацию загрузки гостиницы и своевременное предоставление актуальной информации о состоянии номеров;
  2. управление работой горничных и контроль над своевременной уборкой номеров;
  3. индивидуальное и групповое бронирование в реальном режиме времени с проверкой наличия свободных номеров и возможностью оптимизации загрузки гостиницы;
  4. бронирование блоков номеров с гарантированной и негарантированной формами оплаты;
  5. просмотр и изменение информации о бронировании, и моментальное восстановление отмененных броней и не заездов;
  6. автоматизацию процедур регистрации и оформления индивидуальных гостей и групп как по предварительной брони, так и без нее с моментальным поиском необходимого для гостя номера;
  7. выписку счетов с автоматическим начислением стоимости проживания и оказанных дополнительных услуг;
  8. получение в любой момент по требованию клиента всей необходимой информации о проживании с выдачей промежуточных счетов;
  9. ведение архива гостей;
  10. быстрое и простое ежесуточное закрытие дня, позволяющее осуществить все начисления за прошедшие сутки и проверить работу кассиров без остановки работы гостиницы;
  11. управление ценовой политикой гостиницы с учетом сезонных колебаний, условий взаимоотношений с партнерами и т.д.;
  12. управление финансами гостиницы;
  13. ведение бухгалтерского учета, обеспечение связи с российскими и западными бухгалтерскими системами для формирования отчетности в соответствии с российским планом счетов и планом счетов в стандарте GAAP. [21]

1.3.2. Система «Эдельвейс»

Система «Эдельвейс - это автоматизированная система управления гостиницами различного класса. Система построена по модульному принципу, и ее можно легко настроить на выполнение различных задач автоматизации работы Front-office (служба приема и размещения) и Back-office (служба регистрации и бухгалтерия).

Система «Эдельвейс» обладает рядом следующих функциональных возможностей по следующим позициям.

  1. Бронирование:
  2. использование графического плана резервирований с выделением конкретного номера на плане резервирования или по типу (категории) комнаты без выделения конкретного номера;
  3. возможность масштабирования плана резервирований и отображение только заданных типов комнат с использованием технологии «drag-and-drop», которые выполняются визуально;
  4. осуществление всех операций с бронированием через локальное меню (по правой клавише мыши);
  5. работа с бронированием простая и интуитивно понятная, соответствующая стандартам Windows.
  6. Работа со счетами гостей:
  7. поддержка нескольких счетов для одного гостя;
  8. удобная работа со счетом с использованием технологии «drag-and-drop»;
  9. визуальный контроль сальдо счета гостя;
  10. автоматическое занесение на счет гостя платы за проживание и других предопределенных услуг;
  11. возможность автоматического отключения телефона по истечении депозита;
  12. возможность предварительного просмотра счета перед печатью.
  13. Сервисные модули:
  14. встроенный текстовый процессор для подготовки и печати документов и писем;
  15. возможность вставки в документ информации о счете гостя и данных о бронировании;
  16. встроенный генератор отчетов, обеспечивающий предварительный просмотр и печать отчетов;
  17. набор высококачественных отчетов;
  18. возможность разработки дополнительных отчетов или изменение внешнего вида существующих отчетов по требованию заказчика.
  19. Работа с внешними системами:
  20. возможность приема и обработки данных от внешних устройств (POS – кассовые системы, Pay TV – платные телеканалы и др.
  21. интеллектуальный интерфейс с бухгалтерскими системами (например, «1С»);
  22. интеграция с АСУ «Ресторан»;
  23. тесная интеграция с биллинговой системой «Барсум», предназначенной для тарификации телефонных переговоров;
  24. возможность приема и обработки данных от любого тарификатора;
  25. поддержка систем контроля доступа (электронные замки с магнитными картами). [21]

1.3.3. Fidelio

Система Fidelio разработана немецкой фирмой Fidelio, которая является производителем таких известных автоматизированных систем для гостинично-ресторанного бизнеса, как Fidelio FO (Fidelio front office), Fidelio F&B (Fidelio food & Beverage) и Fidelio eng. Система Fidelio является составной частью глобальных компьютерных систем бронирования Amadeus, Sabre, Galileo, Worldspan. Все гостиницы, представленные в Fidelio, автоматически загружаются в эти глобальные компьютерные системы бронирования.

К основным функциям системы Fidelio FO относятся:

  1. бронирование и заселение гостей;
  2. начисления за проживание и другие услуги, оказываемые гостиницей;
  3. аккумулирование информации о неоплаченных счетах клиентов, поступающих из различных точек продаж;
  4. выставление промежуточных и окончательных счетов для расчетов с клиентами;
  5. учет информации о безналичных расчетах;
  6. получение финансовых и статистических отчетов.

Ведение информации о клиентах и клиентских счетах. Сюда включается следующая информация:

  1. ведение истории по клиентам;
  2. бронирование;
  3. заселение;
  4. ведение счетов;
  5. выписка;
  6. безналичные расчеты с клиентами.

К основным преимуществам системы Fidelio относятся:

  1. возможность интегрирования многих отдельных участков в один глобальный комплекс;
  2. наличие версий программ на русском языке;
  3. широкая функциональность данных систем;
  4. удобство и быстрота работы для пользователей;
  5. удобства и быстрота обслуживания, наглядность и различные формы выставленных счетов для клиентов;
  6. конфиденциальность хранения информации. [21]

1.3.4. Система Lodging Touch

Разработчиком автоматизированной системы Lodging Touch (Лоджинг Тач) является американская компания (США) Hotel Information System (HIS), официальным дистрибьютором в России – компания «Либра Интернэшнл».

Система функционирует в операционной среде Windows NT на СУБД MS SQL Server, является 32-битным приложением, использует архитектуру клиент-сервер, отличается интегрированной структурой и открытостью, русифицирована в соответствии с требованиями России и стран СНГ.

Основные функциональные возможности системы Lodging Touch:

  1. Модуль гостевой истории хранит информацию о гостях и компаниях. Все основные данные о гостях, числе броней, ночей проживания, незаездов и отмен, а также о полученном гостиницей доходе от каждого гостя или компании отображаются на одном экране и легко доступны. Получение детальной дополнительной информации обеспечивается нажатием определенной клавиши. В системе имеется запатентованный функциональный блок табличного отображения списков гостей и клиентов-компаний, облегчающий поиск необходимой информации, а мастер запросов позволяет задавать неограниченное число критериев и условий сортировки для поиска нужной информации.
  2. Функция планирования проживания позволяет автоматически отображать на экране дисплея все изменения тарифа, типа номера, а также другие условия на каждый день проживания гостя.
  3. Поддержка множественности счетов гостя (до шести) позволяет осуществлять как автоматическое, так и ручное перенаправление начислений и платежей на счета гостя, группы, организации либо на счета других гостей.
  4. Функция обработки кредитных карт заносит в картотеку все полученные коды подтверждения, а также отслеживает кредитное состояние счета каждого клиента. При использовании интерфейса с системами авторизации кредитных карт запрос на авторизацию посылается автоматически с получением подтверждения в реальном режиме времени. Система также позволяет мгновенно выводить на экран необходимую для поселения или расчета форму гостя при считывании его кредитной карты.
  5. Модуль управления тарифами позволяет проводить гибкую тарифную политику с учетом разных пороговых величин и ограничений. Возможно установление специальных тарифов по договорам, в любой валюте, а также для различных сегментов рынка.
  6. Экран статуса гостиницы содержит графическую и табличную информацию о состоянии гостиницы на текущий момент времени, включая сведения об уровне загрузки, наличии номеров, числа приходящих броней и др.
  7. Календарный статус номерного фонда показывает статус и состояние каждого номера на текущую и будущие даты. С помощью «мыши» пользователи имеют прямой доступ в гостевую карточку для просмотра информации, внесения изменений, начисления платежей либо записи оставленного для гостя сообщения.
  8. Процедура ночного аудита занимает 5-15 мин. Нажатием одной клавиши происходит перевод системной даты и осуществляется автоматическое начисление суточного тарифа и фиксированных дополнительных услуг на счета гостей.
  9. Мастер запросов дает возможность пользователям составлять произвольную выборку данных для экранных таблиц и отчетов по любым критериям и условиям сортировки.
  10. Модуль отчетности позволяет выводить на экран и распечатывать отчеты для гостиничных служб. Возможно создание произвольных отчетов как с помощью генератора отчетов Lodging Touch, так и ODBC-совместимыми программами для Windows. [21]

1.3.5. Сравнительная характеристика основных систем управления гостиничным комплексом

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

Таблица 1.3.5.1.

Сравнительная характеристика основных систем управления гостиничным комплексом

Включенные функции

Наименование автоматизированной системы

«Hotel-2000»

«Эдельвейс»

«Fidelio»

«Lodging Touch»

Бронирование

есть

есть

есть

есть

Прием и размещение гостя

есть

есть

есть

есть

Расчет с гостем

есть

есть

есть

есть

Управление ремонтом номеров

нет

нет

есть

есть

Работа с группами

есть

нет

есть

есть

История гостя

есть

есть

есть

есть

Программа частого гостя (поощрения)

нет

нет

есть

есть

Бюро находок

нет

нет

нет

есть

Регистрация паспортных данных

есть

есть

есть

есть

Разграничение прав доступа

есть

есть

есть

есть

Отчетность

есть

есть

есть

есть

Операционная система

Solaris x86 Server Edition

Windows 95, NT

Windows 98, NT

Windows 2000, NT

СУБД

dbase

Sybase SQL Anywhere или MS SQL Server

dbase

MS SQL Server

Клиент-серверная технология

есть

есть

нет

есть

≈ Стоимость

1000 USD

11500 USD

30000 USD

10000 USD

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

1.4. Постановка задачи

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

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

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

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

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

Использование автоматизированной информационной системы обеспечит:

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

1.5. Выводы

На основании исследований, проведенных в главе 1, можно сформулировать следующие выводы:

  1. В настоящее время любое предприятие может улучшить качество своей работы, пользуясь современными автоматизированными информационными системами.
  2. Несмотря на разнообразие, все же можно выбрать подходящую именно этой организации, как, например, в нашем случае, где необходима АИС для реализации фронт - офисных задач в гостиничном бизнесе.
  3. Использование таких систем явно лидирует по сравнению с бумажной волокитой, здесь можно подчеркнуть такие плюсы, как скорость, безопасность, упорядоченность и понятность.
  4. Также хочется отметить большое разнообразие автоматизированных информационных систем для гостиниц, однако цена и сложность в понимании и следовательно, необходимость в обучении персонала, заставляет задуматься о том, какой эта система должна быть. Самое главное не стоимость и количество функций, а конкретные потребности гостиницы.


2. АНАЛИЗ СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ MS SQL SERVER И ИНТЕГРИРОВАННОЙ СРЕДЫ РАЗРАБОТКИ BORLAND C++ BUILDER

2.1. Анализ системы управления базами данных

2.1.1. Понятие СУБД

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

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

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

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

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

СУБД должна обеспечивать:

  1. возможность представления внутренней структуры данных;
  2. физическую и логическую независимость данных;
  3. минимальную избыточность данных;
  4. возможность быстрого поиска;
  5. эффективные языки запросов к данным;
  6. требования безопасности, надежности, конфиденциальности, целостности:
  7. данные должны быть защищены от искажения, хищения, разрушения;
  8. данные должны быть восстанавливаемыми;
  9. данные должны быть контролируемыми;
  10. должна быть установлена процедура идентификации пользователей;
  11. должна быть организована система санкционированного доступа;
  12. должен быть установлен контроль за действиями пользователя с целью обнаружения ошибочных операций;

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

  1. физическом размещении в памяти данных и их описаний;
  2. механизмах поиска запрашиваемых данных;
  3. проблемах, возникающих при одновременном запросе одних и тех же данных многими пользователями (прикладными программами);
  4. способах обеспечения защиты данных от некорректных обновлений и (или) несанкционированного доступа;
  5. поддержании БД в актуальном состоянии и множестве других функций СУБД.

При выполнении основных из этих функций СУБД должна использовать различные описания данных. Естественно, что проект базы данных надо начинать с анализа предметной области и выявления требований к ней отдельных пользователей (сотрудников организации, для которых создается база данных). Подробнее этот процесс будет рассмотрен ниже, а здесь отметим, что проектирование обычно поручается человеку (группе лиц) – администратору базы данных (АБД). Им может быть как специально выделенный сотрудник организации, так и будущий пользователь БД, достаточно хорошо знакомый с машинной обработкой данных. [9]

2.1.2. Архитектура СУБД

Одна и та же БД в зависимости от точки зрения может иметь различные уровни описания. По числу уровней описания данных, поддерживаемых СУБД, различают одно-, двух- и трехуровневые системы. В настоящее время чаще всего поддерживается трехуровневая архитектура описания БД, представленная на рис.1. с тремя уровнями абстракции, на которых можно рассматривать базу данных. [18]

Такая архитектура включает:

  1. внешний уровень, на котором пользователи воспринимают данные, где отдельные группы пользователей имеют свое представление (ПП) на базу данных;
  2. внутренний уровень, на котором СУБД и операционная система воспринимают данные;
  3. концептуальный уровень представления данных, предназначенный для отображения внешнего уровня на внутренний уровень, а также для обеспечения необходимой их независимости друг от друга; он связан с обобщенным представлением пользователей.

Рис. 1. Трехуровневая архитектура СУБД

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

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

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

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

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

2.1.2.1. Внешний уровень

Внешний уровень — это пользовательский уровень. Пользователем может быть программист, или конечный пользователь, или администратор базы данных. Представление базы данных с точки зрения пользователей называется внешним представлением. Каждая группа пользователей выделяет в моделируемой предметной области, общей для всей организации, те сущности, атрибуты и связи, которые ей интересны. Эти частичные или переопределенные описания БД для отдельных групп пользователей или ориентированные на отдельные аспекты предметной области называют подсхемой. [18]

2.1.2.2. Концептуальный уровень

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

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

Концептуальная схема должна содержать:

  1. сущности и их атрибуты;
  2. связи между сущностями;
  3. ограничения, накладываемые на данные;
  4. семантическую информацию о данных;
  5. обеспечение безопасности и поддержки целостности данных. [18]

2.1.2.3. Внутренний уровень

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

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

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

  1. распределение дискового пространства для хранения данных и индексов;
  2. описание подробностей сохранения записей (с указанием реальных размеров сохраняемых элементов данных);
  3. сведения о размещении записей;
  4. сведения о сжатии данных и выбранных методах их шифрования.

СУБД отвечает за установление соответствия между всеми тремя типами схем разных уровней, а также за проверку их непротиворечивости.

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

2.1.3. Нормализация

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

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

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

Первая нормальная форма:

  1. запрещает повторяющиеся столбцы (содержащие одинаковую по смыслу информацию)
  2. запрещает множественные столбцы (содержащие значения типа списка и т.п.)
  3. требует определить первичный ключ для таблицы, то есть тот столбец или комбинацию столбцов, которые однозначно определяют каждую строку [44]

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

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

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

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

Таблицу, находящуюся в четвертой нормальной форме и, казалось бы, уже нормализованную до предела, в некоторых случаях еще можно бывает разбить на три или более (но не на две!) таблиц, соединив которые, мы получим исходную таблицу. Получившиеся в результате такой, как правило, весьма искусственной, декомпозиции таблицы и называют находящимися в пятой нормальная форме. Формальное определение пятой нормальной формы таково: это форма, в которой устранены зависимости соединения. В большинстве случаев практической пользы от нормализации таблиц до пятой нормальной формы не наблюдается. [44]

2.1.4. Возможности MS SQL SERVER

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

Установка или обновление SQL Server 2000 происходит под управлением приложения с графическим интерфейсом (GUI-приложения), которое направляет действия пользователя при вводе сведений, необходимых программе установки. Программа установки автоматически определяет наличие ранней версии SQL Server. После завершения установки SQL Server 2000 она спрашивает пользователя, не желает ли он запустить мастер обновления SQL Server 2000 (SQL Server 2000 Upgrade wizard), под руководством которого будет быстро выполнен процесс обновления. Таким образом, весь процесс установки или обновления завершается быстро, причем пользователю приходится вводить минимум информации. 

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

SQL Server 2000 предлагает администраторам баз данных такие инструменты управления системами, как Enterprise Manager и SQL Profiler. 

SQL Server 2000 работает с другими программными продуктами, образуя стабильное и безопасное хранилище информации для Интернета и интрасетей:

  1.  SQL Server 2000 работает с механизмами безопасности и шифрования Windows .1000  Server и Windows NT Server, реализуя безопасное хранилище информации.
  2.  SQL Server 2000 является высокопроизводительной службой хранения данных для Web-приложений, работающих по управлением Microsoft Internet Information Services;
  3.  SQL Server 2000 можно использовать вместе с Site Server для обслуживания больших и сложных Web-сайтов электронной коммерции;
  4.  поддержка TCP/IP Sockets позволяет интегрировать SQL Server 2000 с Microsoft Proxy Server для реализации безопасной связи через Интернет и в интрасетях.

Производительность SQL Server 2000 можно довести до уровня, необходимого для работы огромных Интернет-узлов. Кроме того, в механизме баз данных SQL Server 2000 есть встроенная поддержка XML, а мастер Web Assistant помогает генерировать страницы HTML (Hypertext Markup Language) на основе данных SQL Server 2000 и публиковать эти данные для доступа по протоколам HTTP (Hypertext Transport Protocol) и FTP (File Transfer Protocol).

SQL Server поддерживает аутентификацию Windows, что позволяет применять в качестве учетных записей SQL Server 2000 пользовательские и доменные учетные записи Windows NT и Windows 2000. Аутентификацию пользователей при подключении к сети осуществляет Windows 2000. При соединении с SQL Server, клиентское ПО запрашивает доверенное соединение, которое может быть предоставлено, только если пользователи прошли аутентификацию Windows NT или Windows 2000. Таким образом, SQL Server сам не выполняет проверку пользователей, а пользователям не требуются отдельные имена и пароли для подключения к каждой системе SQL Server.

SQL Server 2000 может посылать и получать электронную почту и пейджинговые сообщения от Microsoft Exchange или других почтовых серверов, совместимых с MAPI (Message Application Programming Interface). Эта функция обеспечивает отсылку почты с помощью пакетов, хранимых процедур и триггеров SQL Server 2000. События и уведомления SQL Server 2000 можно настроить так, чтобы в случае возникновения серьезных проблем или даже при риске их возникновения администратор сервера автоматически получал уведомления по электронной почте или на пейджер.[29]

2.1.5. Инструменты MS SQL SERVER

Рассмотрим состав SQL Server 2000 основных инструментов с графическим интерфейсом, предназначенных для работы с SQL Server и его администрирования:

1. Enterprise Manager. SQL Server Enterprise Manager — основной инструмент администрирования SQL Server 2000, поддерживающий пользовательский интерфейс, совместимый с ММС (Microsoft Management Console) и позволяющий решать ряд административных задач:

  1.  определять группы серверов, работающих под управлением SQL Server;
  2.  регистрировать отдельные серверы в группе;
  3.  настраивать любые параметры SQL Server для всех зарегистрированных серверов;
  4.  создавать и администрировать любые базы данных, объекты, идентификаторы пользователей, учетные имена и права доступа к SQL Server на каждом из зарегистрированных серверов;
  5.  определять и исполнять все административные задачи SQL Server на каждом зарегистрированном сервере;
  6.  интерактивно конструировать и тестировать операторы SQL, пакеты и сценарии, вызывая SQL Query Analyzer;
  7.  вызывать различные мастера SQL Server.

2. SQL Server Agent. SQL Server Agent работает на сервере, который функционирует под управлением экземпляра SQL Server 2000 или более ранних версий SQL Server. SQL Server Agent отвечает за решение следующих задач:

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

3. SQL Profiler. SQL Profiler — это инструмент для записи событий SQL Server 2000. События сохраняются в файле трассировки, который впоследствии можно проанализировать или использовать для повтора некоторой последовательности действий при диагностировании возникшей проблемы. SQL Profiler применяется для:

  1.  пошагового исполнения проблемных запросов и определения источника проблемы;
  2.  поиска и диагностики медленных запросов;
  3.  записи последовательностей SQL-операторов, приводящих к возникновению проблем;
  4.  мониторинга производительности SQL Server и регулирования его загруженности.

4. Утилита Client Network. Client Network используется для управлений1 клиентскими библиотеками Net-Libraries и определения псевдонимов серверов. Кроме того, эта утилита позволяет устанавливать параметры по умолчанию, которые используются приложениями DB-Library.

5. Утилита Server Network. Утилита Server Network применяется для управления серверными библиотеками Net - Libraries, а также позволяет задавать:

  1.  стеки сетевых протоколов, используемые экземпляром SQL Server 2000 для прослушивания клиентских запросов;
  2.  последовательность, в которой серверные библиотеки Net-Libraries определяют, не устанавливает ли приложение соединение;
  3.  новые сетевые адреса для детального прослушивания запросов экземпляром SQL Server 2000.

6. Service Manager. SQL Sewer Service Manager предназначен для запуска, останова и приостановки серверных компонентов SQL Server 2000. Эти компоненты работают как службы в Microsoft Windows NT или Windows 2000, а в Windows 95 и Windows 98 — как отдельные исполняемые программы:

  1.  SQL Server, Реализует механизм баз данных SQL Server. Для каждого экземпляра SQL Server, работающего на компьютере, существует по одной службе SQL Server.
  2.  SQL Server Agent. Реализует агент, который запускает запланированные административные задачи SQL Server. Для каждого экземпляра SQL Server, работающего на компьютере, имеется по одной службе SQL Server Agent.
  3.  Microsoft Search (только для Windows NT и Windows 2000). Реализует механизм полнотекстового поиска. Существует в единственном экземпляре, независимо от числа экземпляров SQL Server на компьютере.
  4.  MSDTC (только для Windows NT и Windows 2000). Управляет распределенными транзакциями. Существует в единственном экземпляре, независимо от числа экземпляров SQL Server на компьютере.

7. SQL Query Analyzer. SQL Query Analyzer — это инструмент с графическим интерфейсом, предназначенный для решения множества различных задач:

  1.  создания запросов и сценариев SQL, а также исполнения их с базами данных SQL Server;
  2.  создания часто используемых объектов баз данных в стандартных сценариях;
  3.  копирования существующих объектов баз данных;
  4.  исполнения хранимых процедур без задания их параметров;
  5.  отладки хранимых процедур;
  6.  отладки запросов, имеющих проблемы с производительностью;
  7.  поиска объектов в базах данных, а также просмотра и работы с объектами;
  8.  добавления, обновления и удаления строк в таблице;
  9.  определения комбинаций клавиш для запуска часто используемых запросов;
  10.  добавления часто используемых команд в меню Tools. [29]

2.1.6. Администрирование

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

Возможности автоматизации не ограничены такими задачами администрирования баз данных, как планирование резервирования. Они также позволяют автоматизировать деловые операции, которые поддерживает база данных. Можно запланировать запуск приложений в заданные моменты или через определенные промежутки времени. Некоторые условия, возникшие в системе, способны инициировать запуск этих приложений в тех случаях, когда те должны быть исполнены раньше заданного времени. К средствам поддержки автоматизации административных задач относятся SQL Server Agent, задания, события и оповещения, операторы и триггеры. [29]

2.1.7. Безопасность

SQL Server 2000 обладает шестиуровневой моделью системы безопасности SQL Server. Нижний уровень этой модели представлен физической системой безопасности. Она подразумевает защиту доступа к инфраструктуре, содержащей внутренние сетевые компоненты и серверное оборудование, поддерживающее работу SQL Server. На втором уровне обеспечивается безопасность сетевого протокола. Она включает такие компоненты, как изоляция транспортного протокола и шифрование пакетов. Третий уровень — доменная безопасность. Она реализуется в сетях Microsoft с помощью служб каталога Active Directory (AD) и самих доменов. На четвертом уровне обеспечивается безопасность локального компьютера. Это означает аудит средствами ОС, поддержка прав доступа к файлам и реестру, а также служб шифрования. Пятый уровень — система безопасности SQL Server, которая включает аутентификацию, авторизацию, шифрование и службы аудита. Наконец, шестой уровень занимает безопасность приложений. Приложение может расширять возможности системы безопасности SQL Server, дополняя ее собственными функциями безопасности. [29]

2.1.8. Преимущества MS SQL SERVER

Основными преимуществами MS SQL SERVER являются:

  1.  Безопасная и надежная работа многих пользователей с многими приложениями на одном компьютере.
  2.  Распределение нагрузки по серверам для обеспечения требуемой масштабируемости при наличии у разработчиков последовательной модели программирования.
  3.  Автоматическая синхронизация нескольких систем.
  4.  Эффективное использование систем с симметричной многопроцессорной обработкой.
  5.  Повышение надежности и доступности за счет более простого управления и более гибкого применения отказоустойчивых кластеров.
  6.  Повышение быстродействия за счет симметричной многопроцессорной обработки, использования до 32 процессоров и 64 ГБ ОЗУ для больших наборов данных и высоких транзактных нагрузок.
  7.  Ускорение передачи данных между серверами с целью увеличения общего быстродействия.
  8.  Значительное увеличение быстродействия даже в случае наиболее сложных отчетов.
  9.  Анализ очень больших наборов данных.
  10.  Выполнение критически важных операций без перехода в автономный режим.
  11.  Ускорение архивирования за счет копирования только измененных данных.
  12.  Архивирование, не влияющее на быстродействие сервера
  13.  Встроенные полнофункциональные решения для анализа данных при помощи интегрированных средств, позволяющие эффективно использовать накопленную информацию.
  14.  Автоматическое управление бизнес-процессами на основе результатов анализа данных.
  15.  Гибкие возможности получения результирующих наборов данных при помощи задаваемого пользователем свертывания с применением сложнейших вычислений.
  16.  Централизованное управление базами данных SQL Server, осуществляемое совместно с управлением всеми ресурсами предприятия.
  17.  Экономия времени и усилий благодаря динамическим средствам автоматического управления и настройки.
  18.  Возможность простого перемещения или копирования базы данных с компьютера на компьютер или между экземплярами сервера без перехода в автономный режим.
  19.  Интерактивная настройка и отладка запросов.
  20.  Быстрое перемещение и преобразование данных из любого источника.
  21.  Определение и использование функций аналогичное работе со встроенными функциями языка T/SQL.
  22.  Переключение пользовательского интерфейса с английского языка на любой из поддерживаемых языков простым щелчком мыши.
  23.  Наглядная разработка и программирование приложений баз данных с использованием любого средства Visual Studio. [40]

2.2. Анализ интегрированной среды разработки Borland C++ Builder

Borland C++Builder 6 — очередная версия системы объектно-ориентированного программирования для 32-разрядных операционных систем Microsoft Windows. Интегрированная среда системы (Integrated Development Environment, IDE) обеспечивает продуктивность многократного использования визуальных компонентов в сочетании с усовершенствованными инструментами и разномасштабными средствами доступа к базам данных. Основное предназначение IDE — радикально ускорить производственный цикл разработки сложнейших программных проектов для различных областей применения. [14]

Система C++Builder может быть использована везде, где требуется дополнить существующие приложения (как прикладные, так и системные) расширенным стандартом языка C++, повысить быстродействие и надежность программ, придать пользовательскому интерфейсу качество профессионального уровня. [14]

2.2.1. Основные характеристики C++ Builder 6

Для разработки приложения был выбран C++Builder Enterprise за счет его отличных характеристик. Enterprise (Ent) применяется для разработки СУБД всевозможных видов, распределенных коммерческих приложений клиент/сервер с поддержкой web-служб и обмена XML-документами, переноса CLX-проектов на Linux.

C++Builder 6 представляет собой совершенную интерактивную среду программирования на языке C++. Система обеспечивает высокую продуктивность и производительность, удовлетворяя современным требованиям к разработке приложений под Windows. Расширенный Менеджер проектов с множественными типами исполняемого кода, усовершенствованный компилятор с оптимизацией кода по размеру и эффективности, инкрементальный компоновщик, мощные средства интегрированной отладки, стройная архитектура распределенных приложений клиент-сервер, новые технологии разработки приложений для сети Интернет — наиболее существенные достижения последней версии.

Не имеет аналогов высокопроизводительная адаптивная технология компиляции. Совершенно оригинальны методика Decision Cube для проведения факторного анализа многомерных данных в системах принятия решений, а также архитектура многозвенных распределенных приложений MIDAS (зачем-то переименованная в DataSnap). Приложения баз данных, созданные с помощью C++Builder, способны пользоваться всеми преимуществами взаимодействия с сервером транзакций (Microsoft Transaction Server, MTS). При этом приложение становится защищенным, масштабируемым и устойчивым к сбоям.

В контексте C++Builder быстрая разработка приложений (Rapid Application Development, RAD) не только подразумевает реальное ускорение типичного цикла “редактирование — компиляция — компоновка — прогон — отладка”, но и придает создаваемым проектам изящество компонентной модели.

C++Builder Enterprise обладает следующими характеристиками:

  1. Высокопроизводительный оптимизирующий компилятор.
  2. Быстродействующий инкрементальный компоновщик.
  3. Менеджер пакетов для получения короткого и эффективного исполняемого кода.
  4. Шаблоны классов, функций и компонентов.
  5. Динамические массивы.
  6. Поддержка приложений, базирующихся на стандартных библиотеках.
  7.  STL 2.0, ATL 3.0, RTL и COFF.
  8.  MFC 6.0. Мастер MFC приложений Microsoft Visual C++. Импорт
    и компиляция исходных и заголовочных файлов.
  9. OWL 5.5. Мастер OWL приложений Borland C++. Утилита миграции. Мастер импорта ресурсных файлов.
  10. Win32. Импортируемые библиотеки и заголовочные файлы Microsoft Platform SDK.
  11. Настройка вида панели инструментов.
  12. Расширенный Менеджер проектов на языке XML.
  13. Механизмы двунаправленной разработки (Two-Ways-Tools).
  14. Упорядочивание свойств по категориям в Инспекторе объектов.
  15. Встроенное дерево объектов (Object TreeView), новые режимы Редактора кода (Code Editor), суфлер кода (CodeInsight).
  16. Эксперт инсталляторов и дистрибутивов (InstallShield Express).
  17. Полный комплект элементов управления Windows.
  18. Мастер создания компонентов (Component Wizard).
  19. Визуальное наследование и связывание форм.
  20. Расширенная справочная служба.
  21. Исходные тексты примеров приложений.
  22. Исходные тексты компонентов.
  23. Контейнер для вложенных форм TFrame.
  24. Список действий TActionList.
  25. Менеджер действий TActionManager.
  26. Причаливание форм и компонентов (свойство DockSite).
  27. Якоря компонентных окон (свойство Anchors).
  28. Ограничители размеров (свойство Constraints).
  29. Поддержка мыши с колесом постраничной прокрутки окон (события OnMouseWheel).
  30. Плавающие инструментальные панели.
  31. Компоненты для связи с приложениями MS Office.
  32. Компоненты управления в стиле Windows 3.1.
  33. Расширенное Хранилище объектов (Object Repository).
  34. DLL.
  35. Мастер консольных приложений.
  36. Мастер создания компонентов ActiveX.
  37. Редактор и компилятор библиотеки активных шаблонов ATL.
  38. Мастер сервера OLE Automation.
  39. Удаленные модули данных.
  40. Мастер приложения web-сервера.
  41. Мастер приложения SOAP-сервера.
  42. Мастер импорта WSDL-документов.
  43. Новый формат библиотеки типов TypeLib 2.
  44. Полная поддержка механизма связи и обработка событий автоматизированных объектов OLE Automation.
  45. Мастер создания COM-объектов с интерфейсами.
  46. Мастер создания и распространения по сети компонентов MTS.
  47. Инспектор объектов (Debug Inspector).
  48. Отладчик низкого уровня (CPU View).
  49. Диагностика утечки ресурсов (CodeGuard) с контролем за распределением памяти для динамических объектов.
  50. Отладка DLL в многомодульных приложениях.
  51. Усовершенствованный механизм Borland Database Engine (BDE) с поддержкой кэшированных обновлений и вызовов Windows API низкого уровня
  52. Компоненты доступа к наборам данных BDE.
  53. Компоненты соединений с наборами данных ADO посредством альтернативного механизма Microsoft OLE DB.
  54. Компоненты эффективного доступа к базам данных InterBase в соединении с локальным или многопользовательским сервером.
  55. Компоненты быстрого однонаправленного доступа dbExpress.
  56. Унифицированные компоненты представления данных.
  57. Анализ многомерных данных Decision Cube.
  58. Генераторы отчетов QuickReports 3.0.
  59. Графические диаграммы TeeCharts.
  60. Дизайнер модуля данных для наглядного отображения иерархии компонентов и реляционных соотношений.
  61. Создание таблиц Paradox и dBASE (Database Desktop).
  62. Проводник по базам данных (SQL Explorer) с масштабируемым словарем (Data Dictionary).
  63. Интерактивное построение SQL запросов любого уровня сложности
    (SQL Builder).
  64. Испытание и оптимизация SQL запросов (SQL Monitor).
  65. Мастер передачи данных между различными источниками и платформами (DataPump).
  66. Высокопроизводительные 32-разрядные драйверы прямого доступа.
  67. Microsoft ODBC.
  68.  dBASE, Paradox, Microsoft Access и FoxPro.
  69.  SQL Links для InterBase 6.5, Oracle 8i, Microsoft SQL Server 7, Sybase, Informix 9 и DB2. [14]

2.2.2. Масштабируемый доступ к базам данных

Визуальная разработка методом “перетаскивания” (drag-and-drop) многократно упрощает и ускоряет трудоемкий процесс программирования приложений СУБД. В основе объектно-ориентированного взаимодействия клиент/сервер лежит понятие наборов данных (dataset) — таблиц, запросов, хранимых процедур — основных сущностей БД, которыми оперируют компоненты доступа. Широкий выбор компонентов визуализации и редактирования позволяет легко изменять вид представления наборов данных. C++Builder использует проводник баз данных и масштабируемый словарь данных для того, чтобы автоматически настроить средства отображения и редактирования применительно к специфике вашей информации.

Многопрофильный механизм Borland Database Engine поддерживает работу высокопроизводительных драйверов, обеспечивающих 32-разрядный доступ к удаленным базам данных InterBase, Sybase, Oracle, MS SQL Server, Informix и DB2. Поддерживаются распространенные форматы серверов локальных баз данных dBASE, Paradox, FoxPro и Access, а также соединения ODBC (Open Database Connectivity) с электронными таблицами Excel, Btrieve и другими источниками. Являясь фундаментом типового приложения базы данных, механизм BDE тесно связан с Хранилищем объектов и модулями данных. Конфигурирование BDE выполняется с помощью усовершенствованной утилиты BDE Administrator.

Инструментарий разработки драйверов Driver Development Kit (DDK) позволяет достраивать конфигурацию BDE новыми унифицированными драйверами, в частности, предназначенными для доступа к удаленным наборам данных (remote dataset). Драйверы, созданные с помощью DDK, применимы в родственных системах IntraBuilder, Delphi и JBuilder, обеспечивая более высокую эффективность по сравнению со средствами ODBC.

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

“Живые” данные (live data) предоставляются разработчику в процессе визуального проектирования прототипов и при испытании приложений баз данных. Вам не потребуется более разрабатывать ловушки ошибок или многократно перетранслировать и запускать приложение — данные на стадии проектирования будут в том же виде, в котором они предстанут перед пользователем законченной программы.

Кэшируемые обновления (cached updates) заметно ускоряют отклик SQL-сервера за счет уменьшения общего числа сетевых обменов с клиентом. Будучи упакованными, множественные коммуникации проявляют себя как одиночные транзакции, снижая тем самым загруженность сервера и улучшая производительность вашего приложения.

Усовершенствованный проводник (SQL Explorer) графически отображает иерархическую структуру баз данных, обеспечивая создание и модификацию псевдонимов, таблиц, запросов и указателей.

Мощная подсистема SQL Builder помогает создавать и сразу же исполнять запросы, не требуя от программиста никаких априорных знаний синтаксиса языка структурированных запросов (SQL). Вы сможете выстраивать предложения SQL любой степени сложности, от простейшего оператора SELECT до хитроумных многотабличных запросов с вычисляемыми полями и выражениями. Проводя редактирование в интерактивном режиме с помощью механизмов двунаправленной разработки, вы добиваетесь построения корректных предложений простыми манипуляциями мышью.

Характерными особенностями SQL Builder являются:

  1. генерация и синтаксический разбор предложений SQL;
  2. вычисление вложенных выражений полей;
  3. динамическое форматирование строк запроса;
  4. запись названий таблиц без кавычек;
  5. надежные механизмы поиска и замены данных во множественных таблицах.

SQL Monitor позволяет испытывать и существенно оптимизировать SQL-запросы к конкретному серверу. Незаменимое средство для точной настройки и отладки транзакций с использованием “живых” данных.

Технология MIDAS позволяет с минимальными издержками превратить традиционное двухзвенное приложение клиент/сервер в многозвенную распределенную систему. Благодаря независимым от языка программирования многократно используемым COM-объектам приложения MIDAS приобретают требуемую унификацию, а благодаря брокерам (специализированным программным модулям) — необходимую функциональность и надежность.

Компоненты отчетов (Quick Reports) позволяют визуально конструировать стилизованные отчеты по информации, поставляемой любыми источниками, главным образом, наборами данных. Отчеты могут содержать типовые поля заголовков, колонтитулов, сносок и итогов. Компоненты отчетов предоставляют мощные средства отображения и печати отчетов в разных видах, автоматического подведения итогов и подсчета выражений для полей — на любом уровне группировки данных. [14]

2.2.3. Преимущества

Основными преимуществами интегрированной среды разработки приложений C++Builder Enterprise являются:

  1. Качественно новый уровень разработки приложений на C++
  2. Полная интеграция с web-службами бизнес-партнеров
  3. Быстрая и эффективная разработка web-приложений
  4. Высокопроизводительное промежуточное ПО для web-служб
  5. Кросс-платформенные решения
  6. Эффективная работа с корпоративными базами данных
  7. Корпоративные приложения для электронного бизнеса
  8. Технология быстрой разработки приложений
  9. Диагностический инструмент CodeGuard
  10. Полный контроль над сложными проектами
  11. Встроенный менеджер объектных запросов Borland VisiBroker для разработки CORBA-приложений на C++
  12. Решения "под ключ" на основе Borland InterBase

2.3. Выводы

Проведя тщательный анализ программных средств необходимых для разработки информационной системы автоматизации фронт -офисных задач в гостиничном бизнесе были выбраны: Microsoft SQL Server и C++ Builder 6. Использование данных программных продуктов обеспечит разрабатываемой автоматизированной системе:

  1. Безопасность
  2. Высокую производительность
  3. Бесперебойную работу
  4. Качество
  5. Конкурентоспособность
  6. Скорость
  7. Функциональность
  8. Надежность
  9. Простоту использования
  10. Удобство
  11. Наглядность
  12. Быстрый доступ к информации
  13. Конфиденциальность
  14. Возможность работы с неограниченным количеством гостей


3. РАЗРАБОТКА ИНФОРМАЦИОННОЙ СИСТЕМЫ АВТОМАТИЗАЦИИ ФРОНТ – ОФИСНЫХ ЗАДАЧ В ГОСТИНИЧНОМ БИЗНЕСЕ

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

3.1.1. Описание предметной области «Гостиница» SRL Kiwiban

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

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

Таким образом, каждый номер, имеющийся в базе, характеризуется следующими параметрами:

  1. уникальное имя;
  2. этаж;
  3. класс номера;
  4. цена за сутки;
  5. состояние.

Конечно же, параметр состояния неоднозначен и требует разделения, так как если номер занят заселившимся клиентом на определенное время, нужно зафиксировать в базе данных, что это за человек, сколько он будет должен оплатить за номер, и когда заканчивается его проживание в гостинице, то же самое касается забронированных номеров. Если рассматривать состояние «на ремонте», то тут невозможно однозначно установить дату снятия номера с ремонта, поэтому тут, намного легче – либо на ремонте, либо нет.

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

  1. Номер паспорта, как уникальное имя.
  2. Фамилия клиента.
  3. Имя.
  4. Отчество.
  5. Страна проживания.
  6. Количество визитов.
  7. История предыдущих визитов.
  8. Баланс клиента.

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

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

Администратор SQL:

  1. имеет все права к базе данных;
  2. не имеет доступа к информационной системе.

Администратор гостиницы:

  1. имеет все права к информационной системе.

Менеджеры:

  1. имеют ограниченные права;
  2. не могут просматривать отчеты;
  3. не могут редактировать или удалять любую информацию;
  4. не могут создавать резервную копию базы данных, а также восстанавливать ее;
  5. не могут менять пароль доступа к информационной системе и создавать новых пользователей.

3.1.2. Построение концептуальной модели базы данных «Гостиница» SRL Kiwiban

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

1. Определение сущностей

Сущность - это реальный или представляемый объект, информация о котором должна сохраняться в проектируемой системе. Сущность имеет имя, уникальное в пределах системы. Сущность соответствует некоторому классу однотипных объектов, то есть в системе существует множество экземпляров данной сущности. Примеры сущностей: люди, продукты, студенты и т.д. Примеры экземпляров сущностей: конкретный человек, конкретный продукт, конкретный студент и т.д. Сущности не обязательно должны быть непересекающимися. Например, экземпляр сущности СТУДЕНТ, также принадлежит сущности ЛЮДИ.

Объект, которому соответствует понятие сущности, имеет свой набор атрибутов – характеристик, определяющих свойства данного объекта. Атрибут должен иметь имя, уникальное в пределах данной сущности.

На первом этапе проектирования БД мы определяем сущности для  корректного использования их значений при определении типов связей между ними:

  1. Номер – объект, включающий в себя все необходимые данные (характеристику) о номере гостиницы.
  2. Клиент – лицо, о котором хранится вся необходимая информация.
  3. Сотрудник – лицо, о котором хранится вся необходимая информация.
  4. Услуга – объект, включающий в себя все необходимые данные об услугах гостиницы.
  5. Минибар – объект, включающий в себя все необходимые данные о продуктах из минибара.
  6. Касса – объект, включающий в себя все необходимые данные о платежах клиента.
  7. Баланс клиента – объект, включающий в себя все необходимые данные о денежном обороте между клиентом и гостиницей за одно посещение.
  8.  Определение типов связей между сущностями

На втором этапе проектирования БД мы предварительно строим связи между сущностями, которые в дельнейшем будут использоваться при построении физической модели. Типы связей представлены в табл. 3.1.2.1.

Таблица 3.1.2.1.

Построение связей между сущностями

Сущность

Связь

Сущность

Тип связи

Клиент

оплачивает в

Кассе

1:М

Клиент

Имеет

Баланс

1:М

Клиент

живет в

Номере

М:М

Клиент

пользуется

Услугами

М:М

Клиент

приобретает продукты из

Минибара

М:М

Так как у нас связи получились многие ко многим, то добавим промежуточные таблицы. «Забронированные номера» - будет содержать информацию о забронированных номерах (точнее будет ссылаться на них, чтоб не привести к избыточности). Так мы обеспечим связь 1:М (один ко многим).

«Заселенные номера» - будет содержать информацию о заселенных номерах гостиницы, тем самым логически разделив занятость номеров, и также обеспечим связь 1:М.

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

«История минибара» - будет содержать информацию о клиентах, которые приобрели продукты из минибара,  точнее будет только ссылаться на них, что обеспечит связь 1:М.

3. Определение атрибутов

На этом этапе проектирования БД определяем атрибуты для наших сущностей, которые описывают будущую физическую модель. Атрибуты для основных и дополнительных таблиц представлены в табл. 3.1.2.2. – 3.1.2.5.

Таблица 3.1.2.2.

Определение атрибутов

Номер

Клиент

Сотрудник

Касса

Номер

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

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

Номер счета

Этаж

Фамилия клиента

Фамилия

Номер паспорта клиента

Класс номера

Имя

Имя сотрудника

Дата оплаты

Телефон номера

Отчество

Отчество

Тип оплаты

Цена за сутки

Страна

Должность

Оплаченная сумма

Пометки

Телефон

Адрес проживания

Фото номера

Количество посещений

Телефон стационарный

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

Телефон мобильный

Таблица 3.1.2.3.

Определение атрибутов

Услуга

Минибар

Баланс клиента

История услуг

История минибара

Номер услуги

Номер продукта

Номер баланса

Номер операции

Номер операции

Название

Название

Номер паспорта клиента

Номер паспорта клиента

Номер паспорта клиента

Цена

Стоимость

Сумма к оплате за номер

Номер услуги

Номер продукта из минибара

Пометки

Состояние

Сумма к оплате за услуги

Дата, когда клиент воспользовался услугой

Дата, когда клиент приобрел продукт

Состояние

Сумма к оплате за продукты из минибара

Количество

Состояние

Долг

Состояние

Количество

Предоплата

Состояние баланса

Таблица 3.1.2.4.

Определение атрибутов

Забронированные номера

Заселенные номера

Пользователи

Посещение

Номер бронирования

Номер заселения

Номер пользователя

N

Номер комнаты

Номер комнаты

Фамилия (логин)

Номер пользователя

Фамилия клиента

Номер паспорта клиента

Имя пользователя

Дата/время входа в программу

Имя

Дата въезда

Пароль

Дата/время выхода из программы

Страна проживания

Дата выезда

Права

Контактный телефон

Количество дней проживания

Состояние

Дата заезда

Счет

Дата выезда

Номер пользователя

Состояние

Номер пользователя

Дата бронирования

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

Таблица 3.1.2.5.

Определение атрибутов для дополнительных таблиц

Поиск

Номер комнаты

Максимальная дата

Минимальная дата

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

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

Найти номер

Номер комнаты

Цена за сутки

Выход

Номер комнаты

4. Определение доменов

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

Таблица 4.1.

Определение доменов

Сущность

Атрибут

Диапазон допустимых значений

Тип данных

1. Номер

Номер

От -231 до 231

Целое

Этаж

От -231 до 231

Целое

Класс номера

До 25 символов

Текстовый

Телефон номера

От -231 до 231

Целое

Цена за сутки

От -231 до 231

Целое

Пометки

До 50 символов

Текстовый

Фото номера

Картинка

Картинка

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

До 10 символов

Текстовый

2. Сотрудник

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

До 25 символов

Текстовый

Фамилия

До 50 символов

Текстовый

Имя сотрудника

До 50 символов

Текстовый

Отчество

До 50 символов

Текстовый

Должность

До 25 символов

Текстовый

Адрес проживания

До 50 символов

Текстовый

Телефон стационарный

До 25 символов

Текстовый

Телефон мобильный

До 25 символов

Текстовый

3. Клиент

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

До 25 символов

Текстовый

Фамилия клиента

До 50 символов

Текстовый

Имя

До 50 символов

Текстовый

Отчество

До 50 символов

Текстовый

Страна

До 50 символов

Текстовый

Телефон

До 25 символов

Текстовый

Количество посещений

От -231 до 231

Целое

4. Касса

Номер счета

От -231 до 231

Целое

Номер паспорта клиента

До 25 символов

Текстовый

Дата оплаты

Дата

Дата

Тип оплаты

До 25 символов

Текстовый

Оплаченная сумма

От -1.79E+38 до 1.79E+38

С плавающей точкой


Продолжение таблицы 4.1.

Сущность

Атрибут

Диапазон допустимых значений

Тип данных

5. Услуги

Номер пользователя

От -231 до 231

Целое

Номер услуги

От -231 до 231

Целое

Название

До 25 символов

Текстовый

Цена

От -1.79E+38 до 1.79E+38

С плавающей точкой

Пометки

До 50 символов

Текстовый

Состояние

До 10 символов

Текстовый

6. Минибар

Номер продукта

От -231 до 231

Целое

Название

До 50 символов

Текстовый

Стоимость

От -1.79E+38 до 1.79E+38

С плавающей точкой

Состояние

До 5 символов

Текстовый

7. Баланс клиента

Номер баланса

От -231 до 231

Целое

Номер паспорта клиента

До 25 символов

Текстовый

Сумма к оплате за номер

От -1.79E+38 до 1.79E+38

С плавающей точкой

Сумма к оплате за услуги

От -1.79E+38 до 1.79E+38

С плавающей точкой

Сумма к оплате за продукты из минибара

От -1.79E+38 до 1.79E+38

С плавающей точкой

Долг

От -1.79E+38 до 1.79E+38

С плавающей точкой

Предоплата

От -1.79E+38 до 1.79E+38

С плавающей точкой

Состояние баланса

До 5 символов

Текстовый

8. История услуг

Номер операции

От -231 до 231

Целое

Номер паспорта клиента

До 25 символов

Текстовый

Номер услуги

От -231 до 231

Целое

Дата, когда клиент воспользовался услугой

Дата

Дата

Количество

От -231 до 231

Целое

Состояние

До 10 символов

Текстовый

9. История минибара

Номер операции

От -231 до 231

Целое

Номер паспорта клиента

До 25 символов

Текстовый

Номер продукта из минибара

От -231 до 231

Целое

Дата, когда клиент приобрел продукт

Дата

Дата

Состояние

До 50 символов

Текстовый

Количество

От -231 до 231

Целое


Продолжение таблицы 4.1.

Сущность

Атрибут

Диапазон допустимых значений

Тип данных

10. Забронированные номера

Номер бронирования

От -231 до 231

Целое

Номер комнаты

От -231 до 231

Целое

Фамилия клиента

До 50 символов

Текстовый

Имя

До 50 символов

Текстовый

Страна

До 50 символов

Текстовый

Контактный телефон

До 25 символов

Текстовый

Дата заезда

Дата

Дата

Дата выезда

Дата

Дата

Состояние

До 10 символов

Текстовый

Номер пользователя

От -231 до 231

Целое

Дата бронирования

Дата

Дата

11. Заселенные номера

Номер заселения

От -231 до 231

Целое

Номер комнаты

От -231 до 231

Целое

Номер паспорта клиента

До 25 символов

Текстовый

Дата въезда

Дата

Дата

Дата выезда

Дата

Дата

Количество дней проживания

От -231 до 231

Целое

Счет

От -1.79E+38 до 1.79E+38

С плавающей точкой

Номер пользователя

От -231 до 231

Целое

12. Пользователи

Номер пользователя

От -231 до 231

Целое

Фамилия (логин)

До 50 символов

Текстовый

Имя пользователя

До 50 символов

Текстовый

Пароль

До 10символов

Текстовый

Права

До 5 символов

Текстовый

Состояние

До 5 символов

Текстовый

13. Посещение

N

От -231 до 231

Целое

Номер пользователя

От -231 до 231

Целое

Дата/время входа в программу

Дата

Дата

Дата/время выхода из программы

Дата

Дата


Окончание таблицы 4.1.

Сущность

Атрибут

Диапазон допустимых значений

Тип данных

14. Поиск

Номер комнаты

От -231 до 231

Целое

Максимальная дата

Дата

Дата

Минимальная дата

Дата

Дата

15. Поиск номера

Номер комнаты

От -231 до 231

Целое

Цена за сутки

От -1.79E+38 до 1.79E+38

С плавающей точкой

16. Состояние номера

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

До 5 символов

Текстовый

17. Выход

Номер комнаты

От -231 до 231

Целое

5. Определение первичных и потенциальных ключей

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

Таблица 5.1.

Определение первичных и потенциальных ключей

Сущность

Первичный ключ

Потенциальный ключ

1. Номер

Номер комнаты

2. Сотрудник

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

3. Клиент

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

4. Касса

Номер счета

Номер паспорта клиента

5. Услуги

Номер услуги

6. Минибар

Номер продукта

7. Баланс клиента

Номер баланса

Номер паспорта клиента

8. История услуг

Номер операции

Номер паспорта клиента

Номер услуги

9. История минибара

Номер операции

Номер паспорта клиента

Номер продукта

10. Забронированные номера

Номер бронирования

Номер комнаты

Номер пользователя

11. Заселенные номера

Номер заселения

Номер комнаты

Номер паспорта клиента

Номер пользователя

12. Пользователи

Номер пользователя

13. Посещение

N

Номер пользователя

Концептуальная схема разработанной модели представлена на рис.2.

Рис. 2. Схема концептуальной модели базы данных «Гостиница»

3.1.3. Построение логической модели базы данных «Гостиница» SRL Kiwiban

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

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

Процесс решения такой задачи называется нормализацией отношений информационной модели предметной области и заключается в превращении ее объектов в логические таблицы базы данных.[41]

В соответствии с установленными целями и задачами, а также выполненной в Главе 1 постановкой задачи, выполним логическое проектирование базы данных «Гостиница» - представлено на рис. 3.

Рис. 3 Диаграмма, определяющая цепь событий осуществляемых пользователем

3.1.4. Построение физической модели данных  на языке SQL средствами СУБД MS SQL SERVER

Переход к физической модели был осуществлен путем задания доменов атрибутов логических сущностей. Необходимо точно определить типы данных атрибутов, возможные диапазоны принимаемых ими значений, первичные ключи и задать прочие ограничения целостности. Задание физических атрибутов осуществлялось логически, например, логический атрибут «Номер паспорта», отвечающий за хранение номера паспорта, переходит в физический атрибут с аналогичным именем, имеющий тип данных VARCHAR с максимальной длиной 25 символов.

Используя  скрипты на языке SQL, создаются таблицы базы данных:

  1.  Client – таблица, содержащая информацию о клиентах гостиницы;
  2.  ClientBalance – таблица, содержащая информацию о балансе клиента;
  3.  Room – таблица, содержащая информацию о номерах гостиницы;
  4.  Reservation – таблица, содержащая информацию о забронированных номерах гостиницы;
  5.  Occupy – таблица, содержащая информацию о заселенных номерах гостиницы;
  6.  Payment – таблица, содержащая информацию об оплаченных счетах;
  7.  MiniBar – таблица, содержащая информацию о продуктах из минибара;
  8.  HistoryOfMiniBar – таблица, содержащая информацию об истории покупок каждого клиента гостиницы;
  9.  Service – таблица, содержащая информацию об услугах гостиницы;
  10.  HistoryOfService – таблица, содержащая информацию об истории услуг каждого клиента гостиницы;
  11.  Managers – таблица, содержащая информацию о пользователях информационной системы;
  12.  Sotrudnic – таблица, содержащая информацию о сотрудниках гостиницы;
  13.  Pose6enie – таблица, содержащая информацию о посещении информационной системы пользователями;
  14.  FindRoom, Poisk, StateOfRoom, Vihod – вспомогательные таблицы, необходимые для расшерения функциональности информационной системы.

На рис. 4. и 5 выборочно представлены примеры создания таблиц «Client» и «Room». Все таблицы приведены в Приложении 2.

Рис. 4. Схема таблицы

Для создания таблицы клиентов «Client» используется следующий скрипт:

CREATE TABLE [Client] (

[NPassport] [varchar] (25) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[FirstName] [varchar] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[LastName] [varchar] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[Patronymic] [varchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

[Country] [varchar] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[Phone] [varchar] (25) COLLATE Cyrillic_General_CI_AS NULL ,

[QtyVisits] [int] NOT NULL CONSTRAINT [DF_Client_QtyVisits] DEFAULT (1),

CONSTRAINT [PK_Client] PRIMARY KEY  CLUSTERED

(

 [NPassport]

)  ON [PRIMARY]

) ON [PRIMARY]

Рис. 5. Схема таблицы «Room»

Для создания таблицы номеров «Room» используется следующий скрипт:

CREATE TABLE [Room] (

[NApartment] [int] NOT NULL ,

[Floor] [int] NOT NULL ,

[Class] [varchar] (25) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[ApartmentPhone] [int] NULL ,

[DayPrice] [int] NULL ,

[Mark] [varchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

[Picture] [image] NULL ,

[Repair] [varchar] (10) COLLATE Cyrillic_General_CI_AS NULL CONSTRAINT [DF_Room_Repair] DEFAULT ('false'),

CONSTRAINT [PK_Room] PRIMARY KEY  CLUSTERED

(

 [NApartment]

)  ON [PRIMARY]

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

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

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

В созданной информационной системе использовалась 41 процедура:

  1. AddInMiniBarClient – цель: добавление данных в таблицу ClientBalance (обновление суммы к оплате за минибар и долг), а также добавление данных о продуктах в таблицу HistoryOfMiniBar.
  2. AddMenager – цель: добавление данных о менеджере в таблицу Managers.
  3. AddProduct – цель: добавление данных о продукте в таблицу MiniBar.
  4. AddService – цель: добавление данных об услуге  в таблицу Service.
  5. AddSot – цель: добавление данных о сотруднике  в таблицу Sotrudnic.
  6. AddUslugaClient – цель: добавление данных в таблицу ClientBalance (обновление суммы к оплате за услугу и долг), а также добавление данных об услугах в таблицу HistoryOfService.
  7. AnulBron – цель: аннулирование бронирования номера.
  8. DeleteMenager – цель: удаление менеджера из списка, имеющего возможность зайти в программу.
  9. DiagBron – цель: вывести данные по каждому менеджеру о количестве им забронированных номеров за выбранный период.
  10. DiagSum – цель: вывести данные по каждому менеджеру о сумме им получившим за выбранный период.
  11. DiagZas – цель: вывести данные по каждому менеджеру о кол-ве им заселенных номеров за выбранный период.
  12. Dohod – цель: вывести данные о доходе гостиницы за выбранный период.
  13. DropProduct – цель: удалить выбранный продукт (поставить в состоянии false).
  14. DropService – цель: удалить выбранную услугу (поставить в состоянии false).
  15. EditMenager – цель: изменить данные о пользователе программой (менеджера).
  16. Erase – цель: удаление всех данных с таблицы Poisk.
  17. FindARoom – цель: найти свободный номер по заданным параметрам.
  18. Itogo – цель: найти сумму за номер (количество дней на цену за сутки).
  19. ManadgerEnter – цель: занести в таблицу Pose6enie дату/время посещения менеджера.
  20. ManadgerExit – цель: занести в таблицу Pose6enie дату/время выхода из программы менеджером.
  21. Menu – цель: вывести состояние номеров на дату.
  22. One – цель: добавление картинки к номеру.
  23. Pass – цель: проверка пароля при вхождении в программу.
  24. PayForMiniBar – цель: оплатить за минибар, при этом занести соответствующую информацию в таблицы: ClientBalance, Payment и в случае ошибки сделать откат.
  25. PayForRoom – цель: оплатить за номер, при этом занести соответствующую информацию в таблицы: ClientBalance, Payment и в случае ошибки сделать откат.
  26. PayForUslugaClient – цель: оплатить за услуги, при этом занести соответствующую информацию в таблицы: ClientBalance, Payment и в случае ошибки сделать откат.
  27. PiskB – цель: поиск клиента в забронированных номерах.
  28. Question – цель: определить был ли клиент в гостинице ранее, если да, то какой этот по счету раз и вывести всю его информацию, если же нет - оповестить, что это первый раз.
  29. QuestionTwo – цель: определить был ли клиент в гостинице ранее, если да, то какой этот по счету раз, если же нет - оповестить, что это первый раз.
  30. RepairF – цель: снятие номера с ремонта.
  31. RepairT – цель: установление номера в статус ремонтируемых.
  32. Reserv  - цель: резервирование номера, занесение соответствующих данных в таблицу Reservation.
  33. ReservTwo – цель: резервирование номера, занесение соответствующих данных в таблицу Reservation.
  34. Uvolit – цель: увольнение сотрудника.
  35. UznatiClass – цель: узнать класс выбранного класса и его суточную цену.
  36. UznatiDolg – цель: узнать сумму долга у выбранного клиента.
  37. UznatiImea – цель: узнать все данные о клиенте, проживающем в выбранном номере.
  38. UznatiImeaBron – цель: узнать все данные о клиенте, забронировавшем выбранный номер.
  39. Vibor – цель: сохранение выбранных номеров и дату для последующего бронирования.
  40. Visel – цель: выселение клиента из номера.
  41. Zaselenie – цель: заселение клиента в номер.

Для создания процедуры поиска номера «FindARoom» используется следующий скрипт SQL:

CREATE PROC FindARoom

@Class varchar (25),

@DateEntry datetime,

@DateExit datetime

AS

DELETE FROM FindRoom

IF EXISTS (SELECT DISTINCT NApartment, DayPrice FROM Room

WHERE

NApartment NOT IN (

 SELECT DISTINCT NApartment FROM Occupy

 WHERE

  DateEntry BETWEEN @DateEntry AND @DateExit OR

  DateExit BETWEEN @DateEntry AND @DateExit

) AND

NApartment NOT IN (

 SELECT DISTINCT NApartment FROM Reservation

 WHERE

  DateEntry BETWEEN @DateEntry AND @DateExit OR

  DateExit BETWEEN @DateEntry AND @DateExit

) AND  Class=@Class)

BEGIN

INSERT FindRoom SELECT DISTINCT NApartment, DayPrice FROM Room

WHERE

NApartment NOT IN (

 SELECT DISTINCT NApartment FROM Occupy

 WHERE

  DateEntry BETWEEN @DateEntry AND @DateExit OR

  DateExit BETWEEN @DateEntry AND @DateExit

) AND

NApartment NOT IN (

 SELECT DISTINCT NApartment FROM Reservation

 WHERE

  DateEntry BETWEEN @DateEntry AND @DateExit OR

  DateExit BETWEEN @DateEntry AND @DateExit

) AND  Class=@Class

END

Для процедуры «Itogo», отвечающей за нахождение суммы за номер использовался следующий скрипт SQL:

CREATE PROC Itogo

@Summa int OutPut

AS

SELECT @Summa = SUM(R.DayPrice * DATEDIFF(day, P.DateMin, P.DateMax))

FROM Room R, Poisk P

WHERE R.NApartment = P.NRoom

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

Помимо процедур, необходимо создание двух представлений:

  1. ProductBezFalse – цель: отображение данных о продуктах с состоянием true
  2. ServiceBezFalse – цель: отображение данных об услугах с состоянием true

Для создания представления ProductBezFalse был использован следующий скрипт SQL:

CREATE View ProductBezFalse

AS

SELECT NProduct AS '№ продукта', NameProduct AS 'Название', Cost AS 'Цена'

FROM MiniBar

WHERE State = 'true'

Для создания представления ServiceBezFalse был использован следующий скрипт SQL:

CREATE View ServiceBezFalse

AS

SELECT NService AS '№ услуги', ServiceName AS 'Название', Cost AS 'Цена', Mark AS 'Заметки'

FROM Service

WHERE State = 'true'

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

3.2. Программная реализация системы автоматизации фронт офисных задач в гостиничном бизнесе

3.2.1. Подключение к базе данных

После создания базы данных в Microsoft SQL Server 2000 необходимо подключить ее к C++Builder 6. Для этого на главной форме программы необходимо разместить компонент ADOConnection с вкладки ADO; в Object Inspector выбрать свойство Connection String; в появившемся окне нажать кнопку «Build».Форма подключения показана на рис.6.

Рис. 6. Подключение БД к  C++Builder

В окне «Свойства связи с данными» как показано на рис.7. выбираем необходимого провайдера, т.е. Microsoft OLE DB Provider for SQL Server и, выбрав провайдера, нажимаем кнопку «Далее».

Рис. 7. Выбор провайдера

В появившемся окне на вкладке «Подключение» (рис.8.) указываем путь, где находится БД созданная в MS SQL Server 2000.

Рис. 8. Указание сведений для подключения к данным MS SQL Server

Для подключения таблиц к БД используем компоненты:

  1. ADOTable1 в свойстве Connection указать ADOConnection1, в свойстве TableName указать название подключаемой таблицы и установить True в Active.
  2. DataSource1 в свойстве DataSet указать ADOTable1.
  3. DBGrid1 в свойстве DataSource указать DataSource1.

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

3.2.2. Создание модулей информационной системы

В созданной информационной системе было разработано 47 модулей:

  1. About.cpp – модуль «О программе». Выводит информацию о создателе приложения.
  2.  AddInBar.cpp – модуль, отвечающий за добавление товара в список минибара.
  3.  AddInbarClient.cpp – модуль, отвечающий за добавление приобретенных продуктов из минибара в текущий баланс клиента.  
  4.  AddMenedger.cpp – модуль, отвечающий за добавление нового пользователя программным средством.
  5.  AddServ.cpp – модуль, отвечающий за добавление услуг в таблицу «Услуги».
  6.  AddSotrud.cpp – модуль, отвечающий за добавление сотрудников в таблицу «Сотрудники».
  7.  AddUslugForClient.cpp – модуль, отвечающий за добавление стоимости полученных услуг в текущий баланс клиента.
  8.  Bronirov.cpp – модуль, отвечающий за бронирование номера прямо с главной формы, выбрав мышкой диапазон дат в нужной строке (номер гостиницы).
  9.  Bronirovanie.cpp – модуль, отвечающий за бронирование номера с пункта меню.
  10.  Clients.cpp – модуль, отвечающий за обзор клиентов.
  11.  DeleteSotrud.cpp – модуль, отвечающий за удаление сотрудника из базы данных.
  12.  DiagCountry.cpp – модуль, отвечающий за вывод диаграммы по странам поселившихся клиентов.
  13.  DiagOplata.cpp – модуль, отвечающий за отчет по доходности гостиницы.
  14.  DiagramBronirovanie.cpp – модуль, отвечающий за отчет по бронированию номеров по каждому пользователю программным средством.
  15.  DiagramOplata.cpp – модуль, отвечающий за передачу в отчет о доходности гостиницы выбранный диапазон дат.
  16.  DiagramZaselenie.cpp – модуль, отвечающий за отчет по заселенным номерам по каждому пользователю программным средством.
  17.  DropManager.cpp – модуль, отвечающий за удаление пользователя программным средством.
  18.  DropProduct.cpp – модуль, отвечающий за удаление продукта из списка минибара.
  19.  DropServ.cpp – модуль, отвечающий за удаление услуги из списка услуг.
  20.  Hotel.cpp – модуль проекта.
  21.  MainForm.cpp – модуль, является главным в этом проекте. Он отвечает за обзор состояния всех номеров гостиницы.
  22.  ManagerEdit.cpp – модуль, отвечающий за изменения данных пользователя программным средством.
  23.  ObzorMenagers.cpp – модуль, отвечающий за обзор пользователей.
  24.  Ot4et2.cpp – модуль, отвечающий за передачу в отчет о бронировании номеров выбранный диапазон дат.
  25.  Ot4et.cpp – модуль, отвечающий за передачу в отчет о заселении номеров выбранный диапазон дат.
  26.  Pass.cpp – модуль, отвечающий за авторизацию пользователя.
  27.  PayForClientServ.cpp – модуль, отвечающий за оплату за услуги полученные клиентом.
  28.  PayForMiniBarClient.cpp – модуль, отвечающий за оплату за приобретенные продукты из минибара клиентом.
  29.  PayZaNomer.cpp – модуль, отвечающий за оплату номера клиента.
  30.  PoiskB.cpp – модуль, отвечающий за поиск забронированных номеров.
  31.  Raschet.cpp – модуль, отвечающий за передачу выбранный диапазон дат в отчет по оплате клиентами по каждому пользователю принявшему данную оплату.
  32.  ReportDoh.cpp – модуль, отвечающий за отчет по оплате клиентами по каждому пользователю, принявшему данную оплату.
  33.  ReportPose6.cpp – модуль, отвечающий за отчет по посещению пользователей.
  34.  ReportPose6enie.cpp – модуль, отвечающий за передачу в отчет о посещении выбранный диапазон дат.
  35.  RoomEdit.cpp – модуль, отвечающий за изменения параметров номера гостиницы.
  36.  RoomView.cpp – модуль, отвечающий за обзор номеров гостиницы.
  37.  SearchClient.cpp – модуль, отвечающий за поиск клиентов в БД.
  38.  ViewBron.cpp – модуль, позволяющий увидеть данные клиента забронировавшего выбранный номер, с последующим заселением, или аннулированием бронирования.
  39.  ViewClientMinibar.cpp – модуль, отвечающий за обзор продуктов приобретенных клиентом.
  40.  ViewProduct.cpp – модуль, отвечающий за обзор списка продуктов в минибаре.
  41.  ViewServ.cpp – модуль, отвечающий за обзор услуг в списке услуг гостиницы.
  42.  ViewServClient.cpp – модуль, отвечающий за обзор услуг полученных клиентом.
  43.  ViewSotrud.cpp – модуль, отвечающий за обзор сотрудников гостиницы.
  44.  Visilenie.cpp – модуль, отвечающий за обзор баланса клиента проживающего в выбранном номере, с последующей оплатой по счетам и возможностью выселения.
  45.  ZaselBron.cpp – модуль, отвечающий за заселение клиента, предварительно бронировавшего номер.
  46.  Zaseleie.cpp – модуль, отвечающий за заселение клиента в номер.
  47.  ZaselMenucpp.cpp – модуль, отвечающий за заселение клиента в номер за выбранный диапазон дат в соответствующий номер, выбрав в главном окне.

Модуль – это форма, отвечающая за определенные функции приложения.

3.2.3. Интерфейс

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

На рис. 9 - 17 приведены основные формы информационной системы автоматизации для гостиницы «Weekend Boutique Hotel»:

Рис. 9. Форма авторизации

Рис. 10. Форма главного окна

Рис. 11. Форма заселенного клиента (его баланс)

Рис. 12. Форма добавления продуктов из минибара в баланс клиента

Рис. 13. Форма оплаты за номер

Рис. 14. Отчет по доходности гостиницы

Рис. 15. Форма обзора клиентов

Рис. 16. Форма поиска клиента

Рис. 17.Форма обзора номеров гостиницы

3.2.4. Справка

Для разрабатываемого приложения было создано три справки:

  1. Справка по установке приложения;
  2. Справка для администратора – представлена на рис. 18;
  3. Справка для менеджера.

Рис. 18 Справка администратора

Остальные модули были представлены в Приложении 3.

3.2.5. Установщик

Для полноценного приложения необходимо наличие установщика. Для разрабатываемого проекта выбрана программа Inno Setup Compiler.

Ниже приведен скрипт, для компилирования приложения.

; DESIGN BY Shulicka Nataly

[Setup]

AppName=Weekend Boutique Hotel

AppVerName=Hotel. Version 1.0.

AppPublisher=Weekend Boutique Hotel, Inc.

DefaultDirName={pf}\Weekend Boutique Hotel

DisableDirPage=no

DefaultGroupName=Weekend Boutique Hotel

DisableProgramGroupPage=yes

InfoAfterFile=D:\Setup\design.txt

[Tasks]

Name: "desktopicon"; Description: "Создать ярлык на &Рабочем столе"; GroupDescription: "Дополнительные ярлыки:"

[Files]

Source: "D:\Setup\Hotel.exe"; DestDir: "{app}"; DestName: "Hotel.exe";

Source: "D:\Setup\design.txt"; DestDir: "{app}";

Source: "D:\Setup\help_admin.chm"; DestDir: "{app}";

Source: "D:\Setup\help_manager.chm"; DestDir: "{app}";

Source: "D:\Setup\hotel.ico"; DestDir: "{app}";

[Dirs]

Name: "{app}\Rezerve"

[Icons]

Name: "{group}\Weekend Boutique Hotel"; Filename: "{app}\Hotel.exe" ;WorkingDir: "{app}";IconFilename:{app}\hotel.ico

Name: "{userdesktop}\Weekend Boutique Hotel"; Filename: "{app}\Hotel.exe" ;WorkingDir: "{app}"; IconFilename:{app}\hotel.ico;Tasks: desktopicon

3.3. Выводы

Система автоматизации фронт офисных задач для гостиницы «Weekend Boutique Hotel» обладает стабильными эксплуатационными характеристиками, а многие рутинные операции, например, создание резервных копий базы данных, печать ежедневных отчетов, выполняются нажатием нескольких кнопок. Разработанная система позволяет обеспечить:

  1. разграничение доступа к информации на уровне базы данных;
  2. использование транзакций для сохранения целостности данных;
  3. возможность автоматического создания зеркальной копии данных;
  4. получать информацию о состоянии номерного фонда (заезд, выезд и т.д.) на любой произвольный период в графической форме;
  5. оформлять заявки на бронирование частных лиц, групп, организаций и туроператоров;
  6. проводить поселение по брони;
  7. заселение номеров без предварительного бронирования на свободные места;
  8. осуществлять быстрый поиск гостей по фамилии или номеру;
  9. получать анализ истории гостя и истории брони;
  10. вести лицевые счета для каждого гостя;
  11. рассчитывать услуги по проживанию гостя;
  12. включать в лицевой счет дополнительные услуги, оказанные гостю (стирка, глажка, мини-бар и т.д.);
  13. возможность оплаты долга полностью или частично в любое момент до выселения;
  14. проводить полный автоматизированный учет действий персонала по бронированию и использованию номерного фонда;
  15. быстро получать новые отчеты о доходности гостиницы, о посещении пользователей, о заселении, бронировании и др.;
  16. сократить бумажный документооборот.

Таким образом, реализованные характеристики автоматизированной системы обеспечивают конкурентоспособность на рынке специализированного программного обеспечения. А так как проект разработан под нужды конкретной гостиницы «Weekend Boutique Hotel», система позволит в максимально удобной форме реализовать автоматизацию фронт-офисных задач гостиницы.


4. УПРАВЛЕНИЕ БЕЗОПАСНОСТЬЮ ПРОЕКТА, РАСЧЕТ ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ И ТЕСТИРОВАНИЕ СИСТЕМЫ

4.1. Управление безопасностью проекта управление

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

Защита информации – комплекс мероприятий, направленных на обеспечение важнейших аспектов информационной безопасности (целостности, доступности и, если нужно, конфиденциальности информации и ресурсов, используемых для ввода, хранения, обработки и передачи данных).[20]

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

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

  1. собираются и обрабатываются на справедливой и законной основе;
  2. хранятся для определенных и законных целей и не используются иным образом, несовместимым с этими целями;
  3. являются адекватными, относящимися к делу и не чрезмерными для целей их хранения;
  4. являются точными и, когда это необходимо, обновляются;
  5. сохраняются в форме, позволяющей идентифицировать субъекты данных, не дольше, чем это требуется для целей хранения этих данных.[3]

При разработке информационной системы автоматизации для гостиницы “Weekend Boutique Hotel” была введена функция ведения посещаемости приложения, доступная для чтения лишь администратору системы.

Необходимо отметить важность вопроса о несанкционированном доступе (НСД).

Факторы, способствующие наиболее серьезной угрозе, могут быть следующими:

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

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

  1. физическую защиту компьютера и жестких дисков;
  2. аутентификацию пользователей;
  3. разграничение доступа к элементам защищаемой информации;
  4. регистрацию всех обращений к защищаемой информации.

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

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

В языке SQL определены два оператора: GRANT и REVOKE. Первый для предоставления привилегий, а второй для их отмены. Оператор предоставления привилегий имеет следующий формат:

GRANT {<список действий | ALL PRIVILEGES }

ON <имя_объекта> ТО (<имя_пользователя> ] PUBLIC } [WITH GRANT OPTION ]

Здесь список действий определяет набор действий из общедопустимого перечня действий над объектом данного типа.

Параметр ALL PRIVILEGES указывает, что разрешены все действия из допустимых для объектов данного типа.

<имя_обьекта> – задает имя конкретного объекта: таблицы, представления, хранимой процедуры, триггера.

<имя_пользователя> или PUBLIC определяет, кому предоставляются данные привилегии.

Параметр WITH GRANT OPTION является необязательным и определяет режим, при котором передаются не только права на указанные действия, но и право передавать эти права другим пользователям. Передавать права в этом случае пользователь может только в рамках разрешенных ему действий.[20]

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

Рассмотрим основные моменты безопасности предоставляемые SQL Server.

Система безопасности SQL Server имеет несколько уровней безопасности:

  1. операционная система;
  2. SQL Server;
  3. база данных;
  4. объект базы данных.

С другой стороны механизм безопасности предполагает существование четырех типов пользователей:

  1. системный администратор, имеющий неограниченный доступ;
  2. владелец БД, имеющий полный доступ ко всем объектам БД;
  3. владелец объектов БД;
  4. другие пользователи, которые должны получать разрешение на доступ к объектам БД.

Модель безопасности SQL Server включает следующие компоненты:

  1. тип подключения к SQL Server;
  2. пользователь базы данных;
  3. пользователь (guest);
  4. роли (roles).

При подключении (и в зависимости от типа подключения) SQL Server поддерживает два режима безопасности:

  1. режим аутентификации Windows NT;
  2. смешанный режим аутентификации.

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

Для управления правами доступа в SQL Server используются команды:

  1. GRANT - позволяет выполнять действия с объектом
  2. REVOKE - аннулирует права доступа для объекта
  3. DENY - не разрешает выполнять действия с объектом [20]

Подводя итоги в обеспечении безопасности можно отметить следующее:

  1. Компьютер, на котором была установлена система автоматизации и сервер, должен быть под наблюдением охраны или ответственного лица
  2. Помимо предоставленных средств по обеспечению безопасности в системе автоматизации (аутентификация, журнал посещения, резервное копирование, разграничение прав доступа) системный администратор должен настроить политику безопасности (аутентификация в SQL, права доступа и привилегии).   

4.2. Тестирование системы автоматизации

Тестирование системы автоматизации необходимо для:

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

Тестирование программного обеспечения охватывает целый ряд видов деятельности, аналогичных последовательности процессов разработки программного обеспечения. В него входят:

  1. постановка задачи для теста,
  2. проектирование теста,
  3. написание тестов,
  4. тестирование тестов,
  5. выполнение тестов,
  6. изучение результатов тестирования.

В тестировании важную роль играет проектирование тестов. Для тестирования был выбран метод «черного ящика». Существо такого подхода – проверить соответствует ли программа внешним спецификациям, при этом логика модуля совершенно не принимается во внимание.

Создание теста и результат тестирования

Тест №1

Клиент приехал в гостиницу и заказал номер двухместный (на двух персон) за 109 евро сутки. Он пробудет в гостинице три дня (с 26.01.2012 по 29.01.2012). В течении проживания он оплатил 127 евро за номер, что касается услуг, то он заказывал единожды стирку = 5 евро и купил орешки из минибара = 1 евро. Сколько клиент должен на момент выселения?

Ожидаемый результат:

109 евро * 3 дня = 327 евро

327 евро – 127 евро (оплаченных) = 200 евро

200 евро + 5 евро (стирка) + 1 евро (орешки) = 206 евро должен клиент, на момент выселения.

Фактический результат:

Рис. 19. Фактический результат первого теста

Результат тестирования:

Система все правильно посчитала – ожидаемый результат совпал с фактическим результатом.

Тест №2

Гостиница получила от клиентов за проживание, услуги, минибар 3587 евро за период с 01.01.2012 по 31.01.2012

В табл. 4.2.1. приведена таблица оплаченных счетов.

Таблица 4.2.1.

Оплаченные счета за дату с 01.01.2012 по 31.01.2012

Клиент

Оплачено

Анченко Анастасия

693 евро

Ирюмин Степан

297 евро

Мишин Антон

218 евро

Штефаница Анна

654 евро

Брага Сергей

654 евро

Медведев Иван

417 евро

Илаев Джамид

654 евро

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

Ожидаемый результат:

3587 евро

Фактический результат представлен на рис. 20.

Рис. 20 Фактический результат второго теста

Результат тестирования:

Ожидаемый результат совпал с фактическим результатом.

Тест №3

За смену 26.01.2012 менеджер получил выручку в размере 1725 евро. Проверить в отчете по оплаченным счетам на дату 26.01.2012.

Таблица 4.2.2.

Оплаченные счета за дату 26.01.2012 принятые менеджером

Клиент

Оплачено

Брага Сергей

654 евро

Медведев Иван

417 евро

Илаев Джамид

654 евро

Ожидаемый результат: 1725 евро

Фактический результат показан на рис. 21.

Рис. 21. Фактический результат третьего теста

Результат тестирования:

Система все верно рассчитала, тем самым желаемый результат совпал с фактическим результатом.

Тест №4. За время открытия гостиницы было поселено: Россия – 2 человека; Белоруссия – 1 человек; Турция – 1 человек; Молдова – 2 человека; Украина – 1 человек. Отрыть отчет по странам и проверить правильность отображения.

Ожидаемый результат: Диаграмма отобразит те же данные

Фактический результат показан на рис. 22.

Рис. 22. Фактический результат четвертого теста

Результат тестирования: Данные совпали

Тест №5. Группа из 10 лиц хочет забронировать номера на дату с 22.01.2012 по 28.01.2012. Проверить правильность работоспособности программы.

Ожидаемый результат: 10 свободных номеров будут забронированы.

Фактический результат показан на рис. 23.

 

Рис. 23. Фактический результат пятого теста

Результат тестирования: Программа работает правильно.

4.3. Расчет экономической эффективности

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

Рассчитывается стоимость часа работы компьютера и время работы за год. Определяется перечень необходимых специалистов, их оклад, занятость этим видом работы за год. Основные показатели приведены в табл. 4.3.1.

При работе с системой автоматизации предполагается, что ввод данных осуществляется в любое время обращения клиентов по вопросам заселения, бронирования и оплаты, а также по другим причинам, - администратором. Таким образом, ввод данных может занимать не более одного часа (365 дней * 1 час = 365 часов), но работать сама программа будет примерно 8 часов. За год будет потрачено 8 часов * 365 дней = 2920 часов.

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

Таблица 4.3.1.

Определение показателей для расчета экономической эффективности

Наименование показателя

Единицы измерения

Обозначение

Значение

Затраты машинного времени на обработку информации

ч

31

Затраты времени на обработку информации вручную

ч

504

Стоимость компьютера

лей

3500

Ставка менеджера

лей

2000

Ставка системного администратора

лей

2000

Фактическое время работы компьютера за год

ч

2920

Амортизация компьютера за 1 м/ч вычисляется по следующей формуле:

=   (1)

Подставляем значения:

==1,49 (лей)

Рассчитаем основную заработную плату менеджера по следующей формуле:

Зосн = (2)

Подставляем значения:

Зосн =(лей)

Дополнительная заработная плата менеджера вычисляется по следующей формуле:

Здоп = (3)

Подставляем значения:

Здоп = = 5,985 (лей)

Общая часовая заработная плата менеджера получается суммированием основной и дополнительной зарплат:

Зобщ = 11,97+5,985 = 17,955 (лей)

Отчисления от заработной платы работника: 3,5% – обязательное медстрахование, 6% - индивидуальные взносы работника (пенсионный фонд), 7% - подоходный налог. Кроме того, работодатель с начисленной заработной зарплаты должен заплатить 23% взносов социального страхования и 3,5% - обязательное медицинское страхование за счет работодателя. Итого: 43%.

Отч = 43% *  (4),

где Зобщ - общая заработная плата менеджера, леи.

Рассчитаем значение:

Отч = 43% * = 7,72 (лей)

Стоимость машинного часа равна:

Стоимость электричества/час равна 0,518 лей из расчета, что мощность компьютера составляет 350 Вт, то в час компьютер потребляет 0,35 кВт, а 1 кВт = 148 бань.[5]

См/ч = 1,49 + (11,97 + 5,985 + 7,72) * 2 + 0,518= 53,358 (лей)

Умножение было произведено из расчета одинаковых ставок менеджера и системного администратора.

Экономический эффект от внедрения программного продукта рассчитывается по формуле:

Э = С1 – С2  (5)

где С1– стоимость базового варианта обработки клерком;

С2 – стоимость обработки информации с использованием программного продукта.

Стоимость первого варианта рассчитывается по формуле:

С1 = * 12  (6),

где - ставка клерка, леи;

– затраты времени на обработку информации вручную, ч;

 – фонд рабочего времени в месяц, ч.

Произведем расчет:

С1 =* 12 = 72431,13 (лей)

Стоимость обработки информации с использованием программы вычисляется по формуле:

С2 =   (7),

где Смн – ставка менеджера, лей;

Фр – фонд рабочего времени в месяц, ч;

Тм – затраты времени на машинную обработку, ч;

См/ч – стоимость одного машинного часа, лей;

Спр – стоимость программного продукта, лей

Произведем расчет:

С2 = (2000*31/167 + 53,358 * 31)*12 + 0 = 24304,26 (лей)

Экономический эффект от внедрения данного программного продукта составляет:

Э = 72431,13 – 24304,26 = 48126,87 (лей)

Определим срок окупаемости капиталовложений:

Тср=   (8),

где Ск – стоимость компьютера, лей;

Спр – стоимость программного продукта, лей;

Э – экономический эффект, лей.

Произведем расчет:

Тср= = 0,073 (года)

Определим экономическую эффективность от вложенных средств:

Эф=;  Эф== 13,7 (лей)

То есть, на каждый вложенный лей приходится 13,7 лей прибыли.

4.4. Выводы

На основании исследований и расчетов, выполненных в главе 4, сформулируем выводы:

  1. Разработанная система автоматизации гостиницы отвечает заданному уровню безопасности технологий.
  2. Выполненный расчет затрат на реализацию проекта выявил что на каждый вложенный лей приходится 13,7 лей прибыли, а срок окупаемости проекта составит 0, 073 года. Таким образом, внедряемая система является экономически выгодной.
  3. Для тестирования был выбран метод «черного ящика» для проверки соответствует ли программа внешним спецификациям, при этом логика модуля совершенно не принимается во внимание. Проведенное тестирование системы прошло успешно и система готова к внедрению.


ЗАКЛЮЧЕНИЕ

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

Работа описывает практику создания базы данных в среде MS SQL Server и разработку программы в среде C++ Builder для работы с базой данных. В проекте реализовано приложение, позволяющее пользователю обращаться к таблицам данных, содержащим информацию о номерах гостиницы, клиентах, сотрудниках, услугах, через удобный и понятный интерфейс, в котором, предусмотрено добавление, редактирование и удаление записей, поиск и фильтрация по полям.

В главе 1 исследованы теоретические основы современных методов совершенствования информационных систем автоматизации. В главах 2 и 3 спроектирована и разработана база данных автоматизации гостиничного фронт - офиса. В главе 4 описано тестирование системы и расчеты по оценке эффективности использования автоматизированной системы.

На основании проведенных исследований можно сформулировать следующие:

1. Выводы:

I. Проект автоматизации гостиничных фронт-офисных задач и разработанная система выполнены в полном соответствии с техническим заданием и с учетом состава программно-технологических и аппаратных средств заказчика.

II. Предложенная к внедрению система является экономически эффективной (48126,87 лей) и позволяет окупить вложенные затраты в течении первого года эксплуатации (0,073 года – примерно 26 дней).

III. Разработанная система не требует дополнительных затрат на обучение персонала и совершенствования средств обработки данных.

2. Рекомендации:

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

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

Таким образом, спроектированная, разработанная и внедренная информационная система автоматизации позволила использовать современные средства программирования в решении фронт-офисных задач в гостинице “Weekend Boutique Hotel”, показала эффективность проекта и его конкурентоспособность.


Библиографический список

  1. Закон Республики Молдова N 1069-XIV от 22 июня 2000 года «Об информатике». Monitorul Oficial Nr 73-74 от 05.07.2001
  2. Закон Республики Молдова от 7 апреля 2011 года №66 «О внесении изменений и дополнений в некоторые законодательные акты». Monitorul Oficial Nr 61-62 от 10.04.2011
  3. Закон Республики Молдова № 17-XVI от 15 февраля 2007 года «О защите персональных данных». Monitorul Oficial Nr. 140-142 от 01.02.2007
  4. Уголовный кодекс Республики Молдова №. 985 от 18.04.2002. Статья 1012. Глава ХI. Преступления в области информатики и электросвязи. Monitorul Oficial Nr 128 от: 13.09.2002
  5. Постановление Правительства Республики Молдова о тарифах на электрическую энергию № 410 от 15.04.2011. Monitorul Oficial Nr 63-64/320 от 20.04.2011
  6. Касюк С.Т. Курс программирования на языке Си. Учебное пособие. Челябинск: ЮУрГУ, 2010. – 175 с.
  7. Когаловский М. Р. Перспективные технологии информационных систем. — М.: ДМК Пресс; М: Компания АйТи, 2003. — 288 с. ISBN 5-94074-200-9
  8. Дж. Коплиен. Мультипарадигменное проектирование для C++. Спб.: Питер, 2011. - 235 с. ISBN: 5-94723-895-0
  9. Лебедева Т.Ф. Базы данных. Учебное пособие. М.: Вильямс, - 2006. – 97 с.
  10. Медведев В.И. Особенности объектно-ориентированного программирования на C++/CLI, C# и Java. 2-е издание. Казань.: РИЦ «Школа», 2010. – 444 с. ISBN: 978-5-4233-0007-4
  11. Мэтью Г. Остерн. Обобщенное программирование и STL. Использование и наращивание стандартной библиотеки шаблонов С++. СПб.: Невский Диалект, 2008. – 544 с. ISBN: 5-7940-0119-4
  12. Роберт У. Себеста. Основные концепции языков программирования. М.: Вильямс, 2011. – 659 с. ISBN: 5-8459-0192-8
  13. Филипповский Е. Е. Экономика и организация гостиничного хозяйства. - М: Финансы и статистика, 2006. — 176 с. ISBN 5-279-02607-7   
  14. Шамис В. Borland C++ Builder 6. Для профессионалов – Питер: 1-е издание,  2005. – 800 с. ISBN 5-318-00598-5
  15. Герберт Шилдт. C# 4.0 полное руководство. М.: Вильямс, 2011. – 1056 с.
  16. Троелсен Эндрю. Язык программирования C# 2010 и платформа .NET 4. М.: Вильямс, 2010. – 1392 с. ISBN: 978-5-8459-1682-2, 978-1-43-022549-2
  17. Брага В.В., Бубнова Н.Г., Вдовенко Л.А., Гусев В.И., Захарова Т.Г., Казакова Е.Ф., Коноплева И.А., Левкин А.А., Макарова Г.Л., Савичев Г.Д., Суворова В.И., Титоренко Г.А., Федорова Г.В. «Автоматизированные информационные технологии в экономике» - Издательство: Юнити, 2006. – 400 с. ISBN: 5-238-00040-5
  18. Бураков П.В., Петров В.Ю. «Введение в системы баз данных. Учебное пособие» - СПбГУ ИТМО, 2010. – 129 с.
  19. Ворожцов А.В., Винокуров Н.А. Лекции Алгоритмы: Построение, анализ и реализация на языке программирования Си. Учебное пособие М.: МФТИ, 2011. –452 с. 2010
  20. Голицына О.Л., Максимов Н.В., Попов И. И Базы данных. Учебное пособие. Издательство: Форум: ИНФРА-М, 2006. – 352стр.
  21. Морозов М.А., Н.С.Морозова «Информационные технологии в социально-культурном сервисе и туризме. Оргтехника.»  – 3-е изд., стер. – М.: Издательский центр «Академия», 2005. – 240 с. ISBN: 5-7695-2399-9
  22. Непейвода Н.Н., Скопин И.Н. Основания программирования. М.: Институт компьютерных исследований, 2009. – 868 с. ISBN: 5-93972-299-7
  23. Объектно-ориентированное программирование на С++. Учебник/Айра Пол. Невский Диалект, Бином-Пресс, Москва, 2002. с. 201 – 212
  24. Павловская Т. А., Щупак Ю. А. Объектно-ориентированное программирование: Практикум. СПб.: Питер, 2006. – 265 с. ISBN: 5-94723-842-Х
  25. Самоучитель программирования на языке С++: Учебник / С. Бобровский. Москва, 1999. 45 – 185 с.
  26. Эффективное использование C++. 55 верных советов. Учебное пособие/Скотт Мейерс. ДМК пресс, 2006. с. 56 – 69
  27. Язык программирования C++. Лекции и упражнения. Учебник/Стивен Прата. ДиаСофт, Sams Publishing, 2003. с. 45 – 62
  28. C++ для профессионалов. А. Солтер, Скотт Дж. Клепер Николас. М.: Диалектика, Вильямс, 2008. – 912 с.
  29. Проектирование и реализация баз данных Microsoft SQL Server 2000. Учебный курс MCAD/MCSE, MCDBA/Пер. с англ. — 2-е изд., испр. — М.: Издательско-торговый дом “Русская Редакция”, 2003. - 512стр. ISBN 5-7502-0181-3
  30. Borland C++Builder, освой самостоятельно. Учебное пособие/К. Рейсдорф, К.Хендерсон. М.: БИНОМ, 2008. с. 69 – 210
  31. C++ Builder в задачах и примерах. Учебник + CD диск / Н. Культин. Санкт-Петербург, СПб.: БХВ-Петербург, 2005. с. 30 – 145
  32. C++ учебный курс. Учебное пособие/П. Франка. Под ред. Макаровой Н.В. Санкт-Петербург, 2003. с. 59 – 63
  33. ГОСТ Р ИСО/МЭК 15408-1-2002. Информационная технология. Методы и средства обеспечения безопасности. Критерии оценки безопасности информационных технологий. Часть 1. Введение и общая модель. – М: Госстандарт России, 2002.
  34. ГОСТ Р ИСО/МЭК 17799-2005. Информационная технология. Практические правила управления информационной безопасностью. – М: Стандартинформ, 2006.
  35. ГОСТ Р ИСО/МЭК 27001-2006. Информационная технология. Методы и средства обеспечения безопасности. Системы менеджмента информационной безопасности. Требования.
  36. ГОСТ/ИСО МЭК 15408-2002 "Общие критерии оценки безопасности информационных технологий"
  37. Стандарты управления IT - безопасностью предприятия ИСО / МЭК 17799, ИСО / МЭК 13335, ИСО / МЭК 10181, Cobit, OCTAVE, ITIL
  38. ISSN 1605-5055, 2006, № 2006. Алгоритмы и протоколы каналов и сетей передачи данных
  39.  http://www.e-college.ru/xbooks/xbook057/book/index/index.html Лигинчук Г.Г. Основы менеджмента. Часть 2: Учебный курс [Электронный ресурс]. Дата обращения: 15.10.2011
  40.  http://www.interface.ru/fset.asp?Url=/microsoft/msql2000.htm Microsoft SQL Server 2000 [Электронный ресурс]. Дата обращения: 11.01.2012
  41.  http://www.intuit.ru/department/database/rdbdev/6/rdbdev_6.html Основы проектирования реляционных баз данных [Электронный ресурс]. Дата обращения: 20.01.2012
  42.  http://www.iteam.ru/publications/it/section_52/article_1708 - информационный портал iTeam: Технологии корпоративного управления. // C. Иванов. Автоматизация гостиниц: их системы — наши проблемы. [Электронный ресурс]. Дата обращения: 12.02.2012
  43.  http://ru.wikipedia.org/wiki/Информационные_технологии [Электронный ресурс]. Дата обращения: 23.01.2012
  44.  http://www.wwwmaster.ru/article.php?nart=21 Нормализация базы данных [Электронный ресурс]. Дата обращения: 20.12.2011


Список приложений

 

Приложение 1. Техническое задание на разработку информационной системы автоматизации фронт-офисных задач в гостиничном бизнесе 88

Приложение 2. Код SQL 106

Приложение 3. Модули программы 137


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

«Техническое задание на разработку информационной системы автоматизации фронт-офисных задач в гостиничном бизнесе»

Представлено на 17 листах печатного текста



















Приложение 2. Код SQL

Код SQL

Создание базы данных HotelBoutique

CREATE DATABASE [HotelBoutique]  

ON (NAME = N'HotelBoutique_Data', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\Data\HotelBoutique_Data.MDF' , SIZE = 2, FILEGROWTH = 10%) LOG ON (NAME = N'HotelBoutique_Log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\Data\HotelBoutique_Log.LDF' , SIZE = 1, MAXSIZE = 100, FILEGROWTH = 1)

COLLATE Cyrillic_General_CI_AS

GO

exec sp_dboption N'HotelBoutique', N'autoclose', N'false'

GO

exec sp_dboption N'HotelBoutique', N'bulkcopy', N'false'

GO

exec sp_dboption N'HotelBoutique', N'trunc. log', N'false'

GO

exec sp_dboption N'HotelBoutique', N'torn page detection', N'true'

GO

exec sp_dboption N'HotelBoutique', N'read only', N'false'

GO

exec sp_dboption N'HotelBoutique', N'dbo use', N'false'

GO

exec sp_dboption N'HotelBoutique', N'single', N'false'

GO

exec sp_dboption N'HotelBoutique', N'autoshrink', N'false'

GO

exec sp_dboption N'HotelBoutique', N'ANSI null default', N'false'

GO

exec sp_dboption N'HotelBoutique', N'recursive triggers', N'false'

GO

exec sp_dboption N'HotelBoutique', N'ANSI nulls', N'false'

GO

exec sp_dboption N'HotelBoutique', N'concat null yields null', N'false'

GO

exec sp_dboption N'HotelBoutique', N'cursor close on commit', N'false'

GO

exec sp_dboption N'HotelBoutique', N'default to local cursor', N'false'

GO

exec sp_dboption N'HotelBoutique', N'quoted identifier', N'false'

GO

exec sp_dboption N'HotelBoutique', N'ANSI warnings', N'false'

GO

exec sp_dboption N'HotelBoutique', N'auto create statistics', N'true'

GO

exec sp_dboption N'HotelBoutique', N'auto update statistics', N'true'

GO

if( (@@microsoftversion / power(2, 24) = 8) and (@@microsoftversion & 0xffff >= 724) )

exec sp_dboption N'HotelBoutique', N'db chaining', N'false'

GO

Таблица [Client]

Цель - хранение данных о клиентах гостиницы

USE HotelBoutique

GO

CREATE TABLE [Client] (

[NPassport] [varchar] (25) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[FirstName] [varchar] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[LastName] [varchar] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[Patronymic] [varchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

[Country] [varchar] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[Phone] [varchar] (25) COLLATE Cyrillic_General_CI_AS NULL ,

[QtyVisits] [int] NOT NULL CONSTRAINT [DF_Client_QtyVisits] DEFAULT (1),

CONSTRAINT [PK_Client] PRIMARY KEY  CLUSTERED

(

 [NPassport]

)  ON [PRIMARY]

) ON [PRIMARY]

GO

Таблица [Room]

Цель - хранение данных о номерах гостиницы

CREATE TABLE [Room] (

[NApartment] [int] NOT NULL ,

[Floor] [int] NOT NULL ,

[Class] [varchar] (25) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[ApartmentPhone] [int] NULL ,

[DayPrice] [int] NULL ,

[Mark] [varchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

[Picture] [image] NULL ,

[Repair] [varchar] (10) COLLATE Cyrillic_General_CI_AS NULL CONSTRAINT [DF_Room_Repair] DEFAULT ('false'),

CONSTRAINT [PK_Room] PRIMARY KEY  CLUSTERED

(

 [NApartment]

)  ON [PRIMARY]

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

Таблица [Sotrudnic]

Цель - хранение данных о сотрудниках гостиницы

CREATE TABLE [Sotrudnic] (

[NPassport] [varchar] (25) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[FirstName] [varchar] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[LastName] [varchar] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[Patronymic] [varchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

[Doljnosti] [varchar] (25) COLLATE Cyrillic_General_CI_AS NULL ,

[Adress] [varchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

[Phone] [varchar] (25) COLLATE Cyrillic_General_CI_AS NULL ,

[Mobile] [varchar] (25) COLLATE Cyrillic_General_CI_AS NULL ,

CONSTRAINT [PK_Sotrudnic] PRIMARY KEY  CLUSTERED

(

 [NPassport]

)  ON [PRIMARY]

) ON [PRIMARY]

GO

Таблица [Managers]

Цель - хранение данных о менеджерах гостиницы

CREATE TABLE [Managers] (

[ID] [int] IDENTITY (1, 1) NOT NULL ,

[LastName] [varchar] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[FirstName] [varchar] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[MPassword] [varchar] (10) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[Prava] [varchar] (5) COLLATE Cyrillic_General_CI_AS NOT NULL CONSTRAINT [DF_Managers_Prava] DEFAULT ('false'),

[State] [varchar] (5) COLLATE Cyrillic_General_CI_AS NOT NULL CONSTRAINT [DF_Managers_State] DEFAULT ('true'),

CONSTRAINT [PK_Managers] PRIMARY KEY  CLUSTERED

(

 [ID]

)  ON [PRIMARY]

) ON [PRIMARY]

GO

Таблица [Pose6enie]

Цель - хранение данных о посещении программы

CREATE TABLE [Pose6enie] (

[N] [int] IDENTITY (1, 1) NOT NULL ,

[ID] [int] NOT NULL ,

[MEnter] [datetime] NULL ,

[MExit] [datetime] NULL ,

CONSTRAINT [PK_Pose6enie] PRIMARY KEY  CLUSTERED

(

 [N]

)  ON [PRIMARY] ,

CONSTRAINT [FK_Pose6enie_Managers] FOREIGN KEY

(

 [ID]

) REFERENCES [Managers] (

 [ID]

)

) ON [PRIMARY]

GO

Таблица [Occupy]

Цель - хранение данных о занятых номерах гостиницы

CREATE TABLE [Occupy] (

[NOccupy] [int] IDENTITY (1, 1) NOT NULL ,

[NApartment] [int] NOT NULL ,

[NPassport] [varchar] (25) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[DateEntry] [datetime] NOT NULL ,

[DateExit] [datetime] NOT NULL ,

[QtyDay] [int] NOT NULL ,

[Bill] [float] NOT NULL ,

[IdManager] [int] NULL CONSTRAINT [DF_Occupy_IdManager] DEFAULT (7),

CONSTRAINT [PK_Occupy] PRIMARY KEY  CLUSTERED

(

 [NOccupy]

)  ON [PRIMARY] ,

CONSTRAINT [FK_Occupy_Client] FOREIGN KEY

(

 [NPassport]

) REFERENCES [Client] (

 [NPassport]

),

CONSTRAINT [FK_Occupy_Room] FOREIGN KEY

(

 [NApartment]

) REFERENCES [Room] (

 [NApartment]

)

) ON [PRIMARY]

GO

Таблица [Payment]

Цель - хранение данных о оплате

CREATE TABLE [Payment] (

[NPayment] [int] IDENTITY (1, 1) NOT NULL ,

[NPassport] [varchar] (25) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[DatePayment] [datetime] NOT NULL ,

[TypePayment] [varchar] (25) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[Bill] [float] NULL ,

[IdManager] [int] NULL CONSTRAINT [DF_Payment_IdManager] DEFAULT (7),

CONSTRAINT [PK_Payment] PRIMARY KEY  CLUSTERED

(

 [NPayment]

)  ON [PRIMARY] ,

CONSTRAINT [FK_Payment_Client] FOREIGN KEY

(

 [NPassport]

) REFERENCES [Client] (

 [NPassport]

)

) ON [PRIMARY]

GO

Таблица [Reservation]

Цель - хранение данных о забронированных номерах

CREATE TABLE [Reservation] (

[NReservation] [int] IDENTITY (1, 1) NOT NULL ,

[NApartment] [int] NOT NULL ,

[FirstName] [varchar] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[LastName] [varchar] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[Country] [varchar] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[Phone] [varchar] (25) COLLATE Cyrillic_General_CI_AS NULL ,

[DateEntry] [datetime] NOT NULL ,

[DateExit] [datetime] NOT NULL ,

[State] [varchar] (10) COLLATE Cyrillic_General_CI_AS NULL CONSTRAINT [DF_Reservation_State] DEFAULT ('true'),

[IdManager] [int] NULL CONSTRAINT [DF_Reservation_IdManager] DEFAULT (7),

[DateReservation] [datetime] NULL ,

CONSTRAINT [PK_Reservation] PRIMARY KEY  CLUSTERED

(

 [NReservation]

)  ON [PRIMARY] ,

CONSTRAINT [FK_Reservation_Room] FOREIGN KEY

(

 [NApartment]

) REFERENCES [Room] (

 [NApartment]

)

) ON [PRIMARY]

GO

Таблица [ClientBalance]

Цель - хранение данных о балансе клиентов гостиницы

CREATE TABLE [ClientBalance] (

[NBalance] [int] IDENTITY (1, 1) NOT NULL ,

[NPassport] [varchar] (25) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[Room] [float] NULL CONSTRAINT [DF_ClientBalance_Room] DEFAULT (0),

[Service] [float] NULL CONSTRAINT [DF_ClientBalance_Service] DEFAULT (0),

[Minibar] [float] NULL CONSTRAINT [DF_ClientBalance_Minibar] DEFAULT (0),

[Dolg] [float] NULL CONSTRAINT [DF_ClientBalance_Dolg] DEFAULT (0),

[Predopata] [float] NULL CONSTRAINT [DF_ClientBalance_Predopata] DEFAULT (0),

[State] [varchar] (5) COLLATE Cyrillic_General_CI_AS NULL CONSTRAINT [DF_ClientBalance_State] DEFAULT ('true'),

CONSTRAINT [PK_ClientBalance] PRIMARY KEY  CLUSTERED

(

 [NBalance]

)  ON [PRIMARY] ,

CONSTRAINT [FK_ClientBalance_Client] FOREIGN KEY

(

 [NPassport]

) REFERENCES [Client] (

 [NPassport]

)

) ON [PRIMARY]

GO

Таблица [FindRoom]

Цель - хранение данных о свободных номерах при вызове процедуры

CREATE TABLE [FindRoom] (

[NRoom] [int] NULL ,

[DayPrice] [float] NULL

) ON [PRIMARY]

GO

Таблица [MiniBar]

Цель - хранение данных о продуктах в минибаре

CREATE TABLE [MiniBar] (

[NProduct] [int] IDENTITY (1, 1) NOT NULL ,

[NameProduct] [varchar] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[Cost] [float] NULL ,

[State] [varchar] (5) COLLATE Cyrillic_General_CI_AS NULL CONSTRAINT [DF_MiniBar_State] DEFAULT ('true'),

CONSTRAINT [PK_MiniBar] PRIMARY KEY  CLUSTERED

(

 [NProduct]

)  ON [PRIMARY]

) ON [PRIMARY]

GO

Таблица [Service]

Цель - хранение данных о услугах гостиницы

CREATE TABLE [Service] (

[NService] [int] IDENTITY (1, 1) NOT NULL ,

[ServiceName] [varchar] (25) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[Cost] [float] NOT NULL ,

[Mark] [varchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

[State] [varchar] (10) COLLATE Cyrillic_General_CI_AS NOT NULL CONSTRAINT [DF_Service_State] DEFAULT ('true'),

CONSTRAINT [PK_Service] PRIMARY KEY  CLUSTERED

(

 [NService]

)  ON [PRIMARY]

) ON [PRIMARY]

GO

Таблица [HistoryOfMiniBar]

Цель - хранение истории покупки клиента продуктов из минибара

CREATE TABLE [HistoryOfMiniBar] (

[NOperation] [int] IDENTITY (1, 1) NOT NULL ,

[NProduct] [int] NOT NULL ,

[NPassport] [varchar] (25) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[Qty] [int] NULL ,

[State] [varchar] (50) COLLATE Cyrillic_General_CI_AS NULL CONSTRAINT [DF_HistoryOfMiniBar_State] DEFAULT ('true'),

[DateMiniBar] [datetime] NULL ,

CONSTRAINT [PK_HistoryOfMiniBar] PRIMARY KEY  CLUSTERED

(

 [NOperation]

)  ON [PRIMARY] ,

CONSTRAINT [FK_HistoryOfMiniBar_Client] FOREIGN KEY

(

 [NPassport]

) REFERENCES [Client] (

 [NPassport]

),

CONSTRAINT [FK_HistoryOfMiniBar_MiniBar] FOREIGN KEY

(

 [NProduct]

) REFERENCES [MiniBar] (

 [NProduct]

)

) ON [PRIMARY]

GO

Таблица [HistoryOfService]

Цель - хранение истории услуг клиента

CREATE TABLE [HistoryOfService] (

[NOperation] [int] IDENTITY (1, 1) NOT NULL ,

[NPassport] [varchar] (25) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[NService] [int] NOT NULL ,

[DateService] [datetime] NOT NULL ,

[Qty] [int] NULL ,

[State] [varchar] (10) COLLATE Cyrillic_General_CI_AS NULL CONSTRAINT [DF_HistoryOfService_State] DEFAULT ('true'),

CONSTRAINT [PK_HistoryOfService] PRIMARY KEY  CLUSTERED

(

 [NOperation]

)  ON [PRIMARY] ,

CONSTRAINT [FK_HistoryOfService_Client] FOREIGN KEY

(

 [NPassport]

) REFERENCES [Client] (

 [NPassport]

),

CONSTRAINT [FK_HistoryOfService_Service] FOREIGN KEY

(

 [NService]

) REFERENCES [Service] (

 [NService]

)

) ON [PRIMARY]

GO

Таблица [Poisk]

Цель - хранение данных для точного поиска при вызове процедуры

CREATE TABLE [Poisk] (

[NRoom] [int] NULL ,

[DateMin] [datetime] NULL ,

[DateMax] [datetime] NULL

) ON [PRIMARY]

GO

Таблица [StateOfRoom]

Цель - хранение данных для точного отображения состояния номер в меню программы

CREATE TABLE [StateOfRoom] (

[StateOfRoom] [varchar] (5) COLLATE Cyrillic_General_CI_AS NULL

) ON [PRIMARY]

GO

Таблица [Vihod]

Цель - хранение данных номера гостиницы для процедуры

CREATE TABLE [Vihod] (

[NRoom] [int] NULL

) ON [PRIMARY]

GO

Представление [ProductBezFalse]

Цель - отображение данных о продуктах с состоянием true

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE View ProductBezFalse

AS

SELECT NProduct AS '№ продукта', NameProduct AS 'Название', Cost AS 'Цена'

FROM MiniBar

WHERE State = 'true'

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Представление [View ServiceBezFalse]

Цель - отображение данных о услугах с состоянием true

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE View ServiceBezFalse

AS

SELECT NService AS '№ услуги', ServiceName AS 'Название', Cost AS 'Цена', Mark AS 'Заметки'

FROM Service

WHERE State = 'true'

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [AddInMiniBarClient]

Цель - добавление данных в таблицу ClientBalance (обновление суммы к оплате за минибар и долг), а также добавление данных о продуктах в таблицу HistoryOfMiniBar

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC AddInMiniBarClient

@NPassport varchar(25),

@NProduct int,

@DateMiniBar datetime,

@Qty int,

@Bill float(8)

AS

IF EXISTS(SELECT * FROM ClientBalance

         WHERE NPassport=@NPassport)

  BEGIN

     UPDATE ClientBalance

     SET MiniBar = MiniBar + @Bill,

         Dolg = Dolg + @Bill

     WHERE NPassport = @NPassport AND State = 'true'

  END

INSERT INTO HistoryOfMiniBar(NProduct, NPassport, Qty, DateMiniBar)

VALUES(@NProduct, @NPassport, @Qty, @DateMiniBar)

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [AddMenager]

Цель - добавление данных о менеджере в таблицу Managers

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC AddMenager

@LastName varchar(50),

@FirstName varchar(50),

@MPassword varchar(10),

@Prava varchar(5)

AS

INSERT INTO Managers(LastName, FirstName, MPassword, Prava)

VALUES(@LastName, @FirstName, @MPassword, @Prava)

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [AddProduct]

Цель - добавление данных о продукте в таблицу MiniBar

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC AddProduct

@NameProduct varchar(50),

@Cost float(8)

AS

INSERT INTO MiniBar(NameProduct, Cost)

VALUES(@NameProduct, @Cost)

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [AddService]

Цель - добавление данных об услуге  в таблицу Service

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC AddService

@ServiceName varchar(25),

@Cost float(8),

@Mark varchar(50)

AS

INSERT INTO Service(ServiceName, Cost, Mark)

VALUES(@ServiceName, @Cost, @Mark)

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [AddSot]

Цель - добавление данных о сотруднике  в таблицу Sotrudnic

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC AddSot

@NPassport varchar(25),

@LastName varchar(50),

@FirstName varchar(50),

@Patronymic varchar(50),

@Doljnosti varchar(25),

@Adress varchar(50),

@Phone varchar(25),

@Mobile varchar(25)

AS

BEGIN

INSERT INTO Sotrudnic(NPassport, LastName, FirstName, Patronymic, Doljnosti, Adress, Phone, Mobile)

VALUES(@NPassport, @LastName, @FirstName, @Patronymic, @Doljnosti, @Adress, @Phone, @Mobile)

END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [AddUslugaClient]

Цель - добавление данных в таблицу ClientBalance (обновление суммы к оплате за услугу и долг), также добавление данных о услугах в таблицу HistoryOfService

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC AddUslugaClient

@NPassport varchar(25),

@NService int,

@DateService datetime,

@Qty int,

@Bill float(8)

AS

IF EXISTS(SELECT * FROM ClientBalance

         WHERE NPassport=@NPassport)

  BEGIN

     UPDATE ClientBalance

     SET Service = Service + @Bill,

         Dolg = Dolg + @Bill

     WHERE NPassport = @NPassport AND State = 'true'

  END

INSERT INTO HistoryOfService(NPassport, NService, DateService, Qty)

VALUES(@NPassport, @NService, @DateService, @Qty)

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [AnulBron]

Цель - аннулирование бронирования номера путем установления значения false в поле State в таблице Reservation

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC AnulBron

@NApartment int,

@DateEntry datetime,

@DateExit datetime

AS

IF EXISTS(SELECT * FROM Reservation WHERE NApartment = @NApartment)

 BEGIN

    UPDATE Reservation

    SET State = 'false'

    WHERE NApartment = @NApartment AND DateEntry = @DateEntry AND DateExit = @DateExit

 END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [DeleteMenager]

Цель - удаление менеджера из списка, имеющего возможность зайти в программу путем установления значения false в поле State в таблице Managers

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC DeleteMenager

@ID int

AS

UPDATE Managers

SET State='false'

WHERE [ID]=@ID AND @ID<>1

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [DiagBron]

Цель - вывести данные по каждому менеджеру о кол-ве им забронированных номеров за выбранный  период

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC DiagBron

@d1 datetime,

@d2 datetime

AS

SELECT M.LastName, count(R.IdManager)

FROM Managers M, Reservation R

WHERE R.IdManager = M.[ID] AND R.DateReservation BETWEEN @d1 AND @d2

GROUP BY  R.IdManager, M.LastName

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [DiagSum]

Цель - вывести данные по каждому менеджеру о сумме им получившим за выбранный период

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC DiagSum

@d1 datetime,

@d2 datetime

AS

SELECT M.LastName, sum(P.Bill)

FROM Managers M, Payment P

WHERE P.IdManager = M.[ID] AND P.DatePayment BETWEEN @d1 AND @d2

GROUP BY  M.LastName

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [DiagZas]

Цель - вывести данные по каждому менеджеру о кол-ве им заселенных номеров за выбранный период

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC DiagZas

@d1 datetime,

@d2 datetime

AS

SELECT M.LastName, count(O.IdManager)

FROM Managers M, Occupy O

WHERE O.IdManager = M.[ID] AND O.DateEntry BETWEEN @d1 AND @d2

GROUP BY  O.IdManager, M.LastName

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [Dohod]

Цель - вывести данные о доходе гостиницы за выбранный период

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC Dohod

@DateS datetime,

@DatePo datetime

AS

SELECT * FROM Payment WHERE DatePayment BETWEEN @DateS AND @DatePo

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [DropProduct]

Цель - удалить выбранный продукт (поставить в состоянии false)

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC DropProduct

@NProduct int

AS

UPDATE MiniBar

SET State = 'false'

WHERE NProduct=@NProduct

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [DropService]

Цель - удалить выбранную услугу (поставить в состоянии false)

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC DropService

@NService int

AS

UPDATE Service

SET State = 'false'

WHERE NService=@NService

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [EditMenager]

Цель - изменить данные о пользователе программой (менеджера)

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC EditMenager

@ID int,

@LastName varchar(50),

@FirstName varchar(50),

@MPassword varchar(10),

@Prava varchar(5)

AS

UPDATE Managers

SET LastName = @LastName,

   FirstName = @FirstName,

   MPassword = @MPassword,

   Prava = @Prava

WHERE [ID] = @ID

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [Erase]

Цель - удаление всех данных с таблицы Poisk

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC Erase

@State int

AS

IF(@State = 0)

BEGIN

DELETE FROM Poisk

END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [FindARoom]

Цель - найти свободный номер по заданным параметрам

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC FindARoom

@Class varchar (25),

@DateEntry datetime,

@DateExit datetime

AS

DELETE FROM FindRoom

IF EXISTS (SELECT DISTINCT NApartment, DayPrice FROM Room

WHERE

NApartment NOT IN (

 SELECT DISTINCT NApartment FROM Occupy

 WHERE

  DateEntry BETWEEN @DateEntry AND @DateExit OR

  DateExit BETWEEN @DateEntry AND @DateExit

) AND

NApartment NOT IN (

 SELECT DISTINCT NApartment FROM Reservation

 WHERE

  DateEntry BETWEEN @DateEntry AND @DateExit OR

  DateExit BETWEEN @DateEntry AND @DateExit

) AND

Class=@Class)

BEGIN

INSERT FindRoom SELECT DISTINCT NApartment, DayPrice FROM Room

WHERE

NApartment NOT IN (

 SELECT DISTINCT NApartment FROM Occupy

 WHERE

  DateEntry BETWEEN @DateEntry AND @DateExit OR

  DateExit BETWEEN @DateEntry AND @DateExit

) AND

NApartment NOT IN (

 SELECT DISTINCT NApartment FROM Reservation

 WHERE

  DateEntry BETWEEN @DateEntry AND @DateExit OR

  DateExit BETWEEN @DateEntry AND @DateExit

) AND

Class=@Class

END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [Itogo]

Цель - найти сумму за номер (кол-во дней на цену за сутки)

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC Itogo

@Summa int OutPut

AS

SELECT @Summa = SUM(R.DayPrice * DATEDIFF(day, P.DateMin, P.DateMax))

FROM Room R, Poisk P

WHERE R.NApartment = P.NRoom

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [ManadgerEnter]

Цель - занести в таблицу Pose6enie дату/время посещения менеджера

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC ManadgerEnter

@ID int,

@DateEnter datetime

AS

INSERT INTO Pose6enie([ID], MEnter)

VALUES (@ID, @DateEnter)

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [ManadgerExit]

Цель - занести в таблицу Pose6enie дату/время выхода из программы менеджером

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC ManadgerExit

@ID int,

@DateExit datetime

AS

UPDATE Pose6enie

SET MExit = @DateExit

WHERE [ID] = @ID AND MExit IS NULL

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [Menu]

Цель - вывести состояние номеров на дату

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC Menu

@NApartment int,

@dateP datetime

AS

IF EXISTS(

SELECT * FROM Occupy O

WHERE O.NApartment=@NApartment AND

(@dateP BETWEEN O.DateEntry AND O.DateExit)

)

BEGIN

DELETE FROM StateOfRoom

INSERT INTO StateOfRoom(StateOfRoom)

VALUES ('z')

END

ELSE

BEGIN

IF EXISTS(

SELECT * FROM Reservation Rz

WHERE Rz.NApartment=@NApartment AND

(@dateP BETWEEN Rz.DateEntry AND Rz.DateExit) AND State='true'

)

BEGIN

DELETE FROM StateOfRoom

INSERT INTO StateOfRoom(StateOfRoom)

VALUES ('b')

END

  ELSE

  BEGIN

  DELETE FROM StateOfRoom

  INSERT INTO StateOfRoom(StateOfRoom)

  VALUES ('s')

  END

END

IF EXISTS(

SELECT * FROM Room R

WHERE R.NApartment=@NApartment AND R.Repair='true')

BEGIN

DELETE FROM StateOfRoom

INSERT INTO StateOfRoom(StateOfRoom)

VALUES ('r')

END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [One]

Цель - добавление картинки к номеру

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC One

@NApartment int,

@Picture image

AS

IF EXISTS(SELECT * FROM Room WHERE NApartment=@NApartment)

BEGIN

UPDATE Room

SET Picture = @Picture

WHERE NApartment=@NApartment

END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [Pass]

Цель - проверка пароля при вхождении в программу

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC Pass

@LastName varchar(50),

@Password varchar(10),

@s int OutPut,

@p int OutPut

AS

IF EXISTS(SELECT * FROM Managers WHERE LastName = @LastName AND MPassword = @Password)

BEGIN

  SET @s = 1

UPDATE Managers   

SET @p = 1

WHERE Prava='true' AND LastName = @LastName

UPDATE Managers   

SET @p = 0

WHERE Prava='false' AND LastName = @LastName

END

ELSE

BEGIN

 SET @s = 0

 SET @p = 2

END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [PayForMiniBar]

Цель - оплатить за минибар, при этом занести соответствующую информацию в таблицы:            ClientBalance, Payment И в случае ошибки сделать откат

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC PayForMiniBar

@NPassport varchar(25),

@DatePayment datetime,

@TypePayment varchar(25),

@Bill float(8),

@IdManager int,

@err int OutPut

AS

BEGIN TRAN

IF EXISTS(SELECT * FROM ClientBalance

         WHERE NPassport=@NPassport)

  BEGIN

     UPDATE ClientBalance

     SET MiniBar = MiniBar - @Bill,

         Dolg = Dolg - @Bill,

         Predopata = Predopata + @Bill

     WHERE NPassport = @NPassport AND State = 'true'

  END

INSERT INTO Payment(NPassport, DatePayment, TypePayment, Bill, IdManager)

VALUES(@NPassport, @DatePayment, @TypePayment, @Bill, @IdManager)

IF(@@error>0)

BEGIN

   SET @err=1

   ROLLBACK TRAN

END

ELSE

BEGIN

   SET @err = 0

   COMMIT TRAN

END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [PayForRoom]

Цель - оплатить за номер, при этом занести соответствующую информацию в таблицы:              ClientBalance, Payment И в случае ошибки сделать откат

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC PayForRoom

@NPassport varchar(25),

@DatePayment datetime,

@TypePayment varchar(25),

@Bill float(8),

@IdManager int,

@err int OutPut

AS

BEGIN TRAN

INSERT INTO Payment(NPassport, DatePayment, TypePayment, Bill, IdManager)

VALUES(@NPassport, @DatePayment, @TypePayment, @Bill, @IdManager)

IF EXISTS(SELECT * FROM ClientBalance

         WHERE NPassport = @NPassport AND State = 'true')

 BEGIN

 UPDATE ClientBalance

 SET Room = Room - @Bill,

     Dolg = Dolg - @Bill,

     Predopata = Predopata + @Bill

 WHERE NPassport = @NPassport AND State = 'true'

 END

IF(@@error>0)

BEGIN

  SET @err = 1

  ROLLBACK TRAN

END

ELSE

BEGIN

  SET @err = 0

  COMMIT TRAN

END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [PayForUslugaClient]

Цель - оплатить за услуги, при этом занести соответствующую информацию в таблицы:             ClientBalance, Payment И в случае ошибки сделать откат                           

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC PayForUslugaClient

@NPassport varchar(25),

@DatePayment datetime,

@TypePayment varchar(25),

@Bill float(8),

@IdManager int,

@err int OutPut

AS

BEGIN TRAN

IF EXISTS(SELECT * FROM ClientBalance

         WHERE NPassport=@NPassport)

  BEGIN

     UPDATE ClientBalance

     SET Service = Service - @Bill,

         Dolg = Dolg - @Bill,

         Predopata = Predopata + @Bill

     WHERE NPassport = @NPassport AND State = 'true'

  END

INSERT INTO Payment(NPassport, DatePayment, TypePayment, Bill, IdManager)

VALUES(@NPassport, @DatePayment, @TypePayment, @Bill, @IdManager)

IF(@@error>0)

BEGIN

  SET @err = 1

  ROLLBACK TRAN

END

ELSE

BEGIN

  SET @err = 0

  COMMIT TRAN

END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [PiskB]

Цель - поиск клиента в забронированных номерах

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC PiskB

@FirstName varchar(50),

@LastName varchar(50),

@NApartment int OutPut,

@DateEntry datetime OutPut,

@DateExit datetime OutPut

AS

IF EXISTS(SELECT * FROM Reservation WHERE LastName = @LastName AND FirstName = @FirstName)

BEGIN

  SELECT @NApartment=NApartment, @DateEntry=DateEntry, @DateExit=DateExit

  FROM Reservation

  WHERE FirstName = @FirstName AND LastName = @LastName

END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [PiskB]

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

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC Question

@NPassport varchar(25),

@LastName varchar(50) OutPut,

@FirstName varchar(50) OutPut,

@Patronymic varchar(50) OutPut,

@Country varchar(50) OutPut,

@Phone varchar(25) OutPut,

@QtyVisits int OutPut

AS

IF EXISTS(SELECT * FROM Client

         WHERE NPassport=@Npassport)

 BEGIN

 UPDATE Client

 SET @LastName = LastName,

     @FirstName = FirstName,

     @Patronymic = Patronymic,

     @Country = Country,

     @Phone = Phone,

     @QtyVisits = QtyVisits + 1

     WHERE NPassport = @Npassport

 END

ELSE

 BEGIN

SELECT @LastName = '',

     @FirstName = '',

     @Patronymic = '',

     @Country = '',

     @Phone = '',

     @QtyVisits = 1

 END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [QuestionTwo]

Цель - определить был ли клиент в гостинице ранее, если да, то какой этот по счету раз, если же нет - оповестить, что это первый раз

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC QuestionTwo

@NPassport varchar(25),

@QtyVisits int OutPut

AS

IF EXISTS(SELECT * FROM Client

         WHERE NPassport=@Npassport)

 BEGIN

 UPDATE Client

 SET @QtyVisits = QtyVisits + 1

 END

ELSE

 BEGIN

SELECT @QtyVisits = 1

 END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [RepairF]

Цель - снятие номера с ремонта

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC RepairF

@NApartment int

AS

IF EXISTS(SELECT * FROM Room WHERE NApartment = @NApartment AND Repair='true')

BEGIN

UPDATE Room

SET Repair='false'

WHERE NApartment = @NApartment

END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [RepairF]

Цель - установление номера в статус ремонтируемых

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC RepairT

@NApartment int

AS

IF EXISTS(SELECT * FROM Room WHERE NApartment = @NApartment AND Repair='false')

BEGIN

UPDATE Room

SET Repair='true'

WHERE NApartment = @NApartment

END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [Reserv]

Цель - резервирование номера, занесение соответствующих данных в таблицу Reservation          

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC Reserv

@FirstName varchar(50),

@LastName varchar(50),

@Country varchar(50),

@Phone varchar(25),

@IdManager int,

@DateReservation datetime

AS

INSERT INTO Reservation(NApartment, FirstName, LastName, Country, Phone, DateEntry, DateExit, IdManager, DateReservation)

SELECT NRoom, @FirstName, @LastName, @Country, @Phone, DateMin, DateMax, @IdManager, @DateReservation FROM Poisk

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [ReservTwo]

Цель - резервирование номера, занесение соответствующих данных в таблицу Reservation          

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC ReservTwo

@FirstName varchar(50),

@LastName varchar(50),

@Country varchar(50),

@Phone varchar(25),

@DateEntry datetime,

@DateExit datetime,

@NApartment int,

@IdManager int,

@DateReservation datetime

AS

INSERT INTO Reservation(NApartment, FirstName, LastName, Country, Phone, DateEntry, DateExit, IdManager, DateReservation)

VALUES(@NApartment, @FirstName, @LastName, @Country, @Phone, @DateEntry, @DateExit, @IdManager, @DateReservation)

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [Uvoliti]

Цель - увольнение сотрудника 

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC Uvoliti

@NPassport varchar(25)

AS

DELETE FROM Sotrudnic WHERE NPassport=@NPassport

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [UznatiClass]

Цель - узнать класс выбранного класса и его суточную цену

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC UznatiClass

@NApartment int,

@Class varchar(25) OutPut,

@DayPrice float(8) OutPut

AS

IF EXISTS(SELECT * FROM Room WHERE NApartment = @NApartment)

  BEGIN

     SELECT @Class = Class, @DayPrice = DayPrice FROM Room WHERE NApartment = @NApartment

  END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [UznatiDolg]

Цель - узнать сумму долга у выбранного клиента

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC UznatiDolg

@NPassport varchar(25),

@Room float(8) OutPut,

@Minibar float(8) OutPut,

@Service float(8) OutPut,

@Dolg float(8) OutPut,

@Predopata float(8) OutPut

AS

IF EXISTS (SELECT NPassport FROM ClientBalance WHERE NPassport = @NPassport)

BEGIN

 SELECT @Room = Room, @Minibar = Minibar, @Service = Service,

        @Dolg = Dolg, @Predopata = Predopata

 FROM ClientBalance

 WHERE NPassport = @NPassport AND State = 'true'

END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [UznatiImea]

Цель - узнать все данные о клиенте проживающего в выбранном номере

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC UznatiImea

@NApartment int,

@dt datetime,

@LastName varchar(50) OutPut,

@FirstName varchar(50) OutPut,

@Patronymic varchar(50) OutPut,

@NPassport varchar(25) OutPut,

@QtyVisits int OutPut

AS

IF EXISTS(SELECT * FROM Occupy WHERE NApartment = @NApartment AND (@dt BETWEEN DateEntry AND DateExit))

 BEGIN

   SELECT @NPassport = C.NPassport, @LastName = C.LastName,

          @FirstName = C.FirstName, @Patronymic = C.Patronymic, @QtyVisits = C.QtyVisits

   FROM Occupy O, ClientBalance CB, Client C

   WHERE O.NPassport = C.NPassport AND CB.NPassport = C.NPassport AND

         O.NApartment = @NApartment AND CB.State = 'true' AND (@dt BETWEEN O.DateEntry AND O.DateExit)

 END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [UznatiImeaBron]

Цель - узнать все данные о клиенте забронировавшего выбранный номер

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC UznatiImeaBron

@NApartment int,

@dt datetime,

@FirstName varchar(50) OutPut,

@LastName varchar(50) OutPut,

@Country varchar(50) OutPut,

@Phone varchar(25) OutPut,

@DateEntry datetime OutPut,

@DateExit datetime  OutPut

AS

IF EXISTS(SELECT * FROM Reservation WHERE NApartment = @NApartment)

 BEGIN

   SELECT @FirstName = FirstName, @LastName = LastName, @Country = Country,

          @Phone = Phone, @DateEntry = DateEntry, @DateExit = DateExit          

   FROM Reservation

   WHERE NApartment = @NApartment AND State = 'true' AND (@dt BETWEEN DateEntry AND DateExit)  

 END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [Vibor]

Цель - сохранение выбранных номеров и дату для последующего бронирования

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC Vibor

@NApartment int,

@DateInterested datetime

AS

IF EXISTS(SELECT NRoom FROM Poisk

         WHERE NRoom = @NApartment)

  BEGIN

     UPDATE Poisk

     SET DateMax = @DateInterested

     WHERE NRoom = @NApartment AND @DateInterested > DateMax

     UPDATE Poisk

     SET DateMin = @DateInterested

     WHERE NRoom = @NApartment AND @DateInterested < DateMin   

  END

ELSE

 BEGIN

    INSERT INTO Poisk(NRoom, DateMin, DateMax)

    VALUES(@NApartment, @DateInterested, @DateInterested)

 END

IF EXISTS (SELECT O.NApartment

          FROM Occupy O, Poisk P

          WHERE O.DateEntry BETWEEN P.DateMin AND P.DateMax OR

          O.DateExit BETWEEN P.DateMin AND P.DateMax

          AND O.NApartment=P.NRoom)

BEGIN

  DELETE FROM Poisk

  WHERE NRoom = (SELECT O.NApartment

                 FROM Occupy O, Poisk P

                 WHERE O.DateEntry BETWEEN P.DateMin AND P.DateMax OR

                 O.DateExit BETWEEN P.DateMin AND P.DateMax

                 AND O.NApartment=P.NRoom)

END

ELSE

IF EXISTS (SELECT R.NApartment

          FROM Reservation R, Poisk P

          WHERE R.DateEntry BETWEEN P.DateMin AND P.DateMax OR

          R.DateExit BETWEEN P.DateMin AND P.DateMax

          AND R.NApartment=P.NRoom)

BEGIN

  DELETE FROM Poisk

  WHERE NRoom = (SELECT R.NApartment

          FROM Reservation R, Poisk P

          WHERE R.DateEntry BETWEEN P.DateMin AND P.DateMax OR

          R.DateExit BETWEEN P.DateMin AND P.DateMax

          AND R.NApartment=P.NRoom)

END

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [Visel]

Цель - выселение клиента из номера       

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE PROC Visel

@NPassport varchar(25)

AS

UPDATE ClientBalance

SET State = 'false'

WHERE NPassport=@NPassport AND State='true'

UPDATE HistoryOfMiniBar

SET State = 'false'

WHERE NPassport=@NPassport AND State='true'

UPDATE HistoryOfService

SET State = 'false'

WHERE NPassport=@NPassport AND State='true'

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Хранимая процедура [Zaselenie]

Цель - заселение клиента в номер

SET QUOTED_IDENTIFIER ON 

GO

SET ANSI_NULLS ON

GO

CREATE PROC Zaselenie

@NPassport varchar(25),

@LastName varchar(50),

@FirstName varchar(50),

@Patronymic varchar(50),

@Country varchar(50),

@Phone varchar(25),

@NApartment int,

@DateEntry datetime,

@DateExit datetime,

@QtyDay int,

@Bill float(8),

@IdManager int

AS

IF EXISTS(SELECT * FROM Client

         WHERE NPassport=@NPassport)

 BEGIN

 UPDATE Client

 SET Country = @Country,

     Phone = @Phone,

     QtyVisits = 1 + QtyVisits

 END

ELSE

 BEGIN

 INSERT INTO Client(NPassport, FirstName, LastName, Patronymic, Country, Phone)

 VALUES(@NPassport, @FirstName, @LastName, @Patronymic, @Country, @Phone)

 END

IF EXISTS(SELECT * FROM ClientBalance

         WHERE NPassport=@NPassport AND State='true')

 BEGIN

 UPDATE ClientBalance

 SET Room = Room + @Bill,

     Dolg = Dolg + @Bill

 END

ELSE

 BEGIN

 INSERT INTO ClientBalance(NPassport, Room, Dolg)

 VALUES(@NPassport, @Bill, @Bill)

 END

INSERT INTO Occupy(NApartment, NPassport, DateEntry, DateExit, QtyDay, Bill, IdManager)

VALUES(@NApartment, @NPassport, @DateEntry, @DateExit, @QtyDay, @Bill, @IdManager)

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

Втавка начальных данных

INSERT INTO Managers(LastName, FirstName, MPassword, Prava)

VALUES('admin', 'admin', 'admin', 'true')

GO

INSERT INTO Managers(LastName, FirstName, MPassword, Prava)

VALUES('manager', 'manager', 'manager', 'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(100,1,'одноместный',1000,99,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(101,1,'одноместный',1001,99,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(102,1,'одноместный',1002,99,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(103,1,'двухместный',1003,109,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(104,1,'двухместный',1004,109,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(105,1,'двухместный',1005,109,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(106,1,'двухместный',1006,109,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(107,1,'двухместный',1007,109,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(108,1,'двухместный',1008,109,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(109,1,'двухместный',1009,109,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(200,2,'двухместный',1010,109,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(201,2,'двухместный',1011,109,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(202,2,'двухместный',1012,109,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(203,2,'двухместный',1013,109,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(204,2,'двухместный',1014,109,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(205,2,'семейный',1015,139,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(206,2,'полулюкс',1016,139,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(207,2,'полулюкс',1017,139,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(208,2,'полулюкс',1018,139,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(209,2,'полулюкс',1019,139,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(210,2,'полулюкс',1020,139,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(211,2,'полулюкс',1021,139,'',NULL,'false')

GO

INSERT INTO [Room]([NApartment], [Floor], [Class], [ApartmentPhone], [DayPrice], [Mark], [Picture], [Repair])

VALUES(212,2,'люкс',1022,159,'',NULL,'false')

GO


Приложение 3. Модули программы

Модули программы

В созданной информационной системе было разработано 47 модулей:

  1. About.cpp – модуль «О программе». Выводит информацию о создателе приложения.

Рис. П1 Модуль - About.cpp

  1. AddInBar.cpp – модуль, отвечающий за добавление товара в список минибара.

 

Рис. П2 Модуль - AddInBar.cpp

  1. AddInbarClient.cpp – модуль, отвечающий за добавление приобретенных продуктов из минибара в текущий баланс клиента.  

 

Рис. П3 Модуль - AddInbarClient.cpp

  1. AddMenedger.cpp – модуль, отвечающий за добавление нового пользователя программным средством.

 

Рис. П4 Модуль - AddMenedger.cpp

  1. AddServ.cpp – модуль, отвечающий за добавление услуг в таблицу «Услуги».

 

Рис. П5 Модуль - AddServ.cpp

  1. AddSotrud.cpp – модуль, отвечающий за добавление сотрудников в таблицу «Сотрудники».

 

Рис. П6 Модуль - AddSotrud.cpp

  1. AddUslugForClient.cpp – модуль, отвечающий за добавление стоимости полученных услуг в текущий баланс клиента.

 

Рис. П7 Модуль - AddUslugForClient.cpp

  1. Bronirov.cpp – модуль, отвечающий за бронирование номера прямо с главной формы, выбрав мышкой диапазон дат в нужной строке (номер гостиницы).

 

Рис. П8 Модуль - Bronirov.cpp

  1. Bronirovanie.cpp – модуль, отвечающий за бронирование номера с пункта меню.

 

Рис. П9 Модуль - Bronirovanie.cpp

  1. Clients.cpp – модуль, отвечающий за обзор клиентов.

Рис. П10 Модуль - Clients.cpp

  1. DeleteSotrud.cpp – модуль, отвечающий за удаление сотрудника из базы данных.

 

Рис. П11 Модуль - DeleteSotrud.cpp

  1. DiagCountry.cpp – модуль, отвечающий за вывод диаграммы по странам поселившихся клиентов.

Рис. П12 Модуль - DiagCountry.cpp

  1. DiagOplata.cpp – модуль, отвечающий за отчет по доходности гостиницы.

Рис. П13 Модуль - DiagOplata.cpp

  1. DiagramBronirovanie.cpp – модуль, отвечающий за отчет по бронированию номеров по каждому пользователю программным средством.

Рис. П14 Модуль - DiagramBronirovanie.cpp

  1. DiagramOplata.cpp – модуль, отвечающий за передачу в отчет о доходности гостиницы выбранный диапазон дат.

Рис. П15 Модуль - DiagramOplata.cpp

  1. DiagramZaselenie.cpp – модуль, отвечающий за отчет по заселенным номерам по каждому пользователю программным средством.

Рис. П16 Модуль - DiagramZaselenie.cpp

  1. DropManager.cpp – модуль, отвечающий за удаление пользователя программным средством.

 

Рис. П17 Модуль - DropManager.cpp

  1. DropProduct.cpp – модуль, отвечающий за удаление продукта из списка минибара.

 

Рис. П18 Модуль - DropProduct.cpp

  1. DropServ.cpp – модуль, отвечающий за удаление услуги из списка услуг.

Рис. П19 Модуль - DropServ.cpp

  1. Hotel.cpp – модуль проекта.
  2. MainForm.cpp – модуль, является главным в этом проекте. Он отвечает за обзор состояния всех номеров гостиницы.

Рис. П20 Модуль - MainForm.cpp

  1. ManagerEdit.cpp – модуль, отвечающий за изменения данных пользователя программным средством.

 

Рис. П21 Модуль - ManagerEdit.cpp

  1. ObzorMenagers.cpp – модуль, отвечающий за обзор пользователей.

Рис. П22 Модуль - ObzorMenagers.cpp

  1. Ot4et2.cpp – модуль, отвечающий за передачу в отчет о бронировании номеров выбранный диапазон дат.

Рис. П23 Модуль - Ot4et2.cpp

  1. Ot4et.cpp – модуль, отвечающий за передачу в отчет о заселении номеров выбранный диапазон дат.

Рис. П24 Модуль - Ot4et.cpp

  1. Pass.cpp – модуль, отвечающий за авторизацию пользователя.

Рис. П25 Модуль - Pass.cpp

  1. PayForClientServ.cpp – модуль, отвечающий за оплату за услуги полученные клиентом.

Рис. П26 Модуль - PayForClientServ.cpp

  1. PayForMiniBarClient.cpp – модуль, отвечающий за оплату за приобретенные продукты из минибара клиентом.

 

Рис. П27 Модуль - PayForMiniBarClient.cpp

  1. PayZaNomer.cpp – модуль, отвечающий за оплату номера клиента.

Рис. П28 Модуль - PayZaNomer.cpp

  1. PoiskB.cpp – модуль, отвечающий за поиск забронированных номеров.

Рис. П29 Модуль - PoiskB.cpp

  1. Raschet.cpp – модуль, отвечающий за передачу выбранный диапазон дат в отчет по оплате клиентами по каждому пользователю принявшему данную оплату.

Рис. П30 Модуль - Raschet.cpp

  1. ReportDoh.cpp – модуль, отвечающий за отчет по оплате клиентами по каждому пользователю, принявшему данную оплату.

Рис. П31 Модуль - ReportDoh.cpp

  1. ReportPose6.cpp – модуль, отвечающий за отчет по посещению пользователей.

Рис. П32 Модуль - ReportPose6.cpp

  1. ReportPose6enie.cpp – модуль, отвечающий за передачу в отчет о посещении выбранный диапазон дат.

Рис. П33 Модуль - ReportPose6enie.cpp

  1. RoomEdit.cpp – модуль, отвечающий за изменения параметров номера гостиницы.

Рис. П34 Модуль - RoomEdit.cpp

  1. RoomView.cpp – модуль, отвечающий за обзор номеров гостиницы.

Рис. П35 Модуль - RoomView.cpp

  1. SearchClient.cpp – модуль, отвечающий за поиск клиентов в БД.

Рис. П36 Модуль - SearchClient.cpp

  1. ViewBron.cpp – модуль, позволяющий увидеть данные клиента забронировавшего выбранный номер, с последующим заселением, или аннулированием бронирования.

Рис. П37 Модуль - ViewBron.cpp

  1. ViewClientMinibar.cpp – модуль, отвечающий за обзор продуктов приобретенных клиентом.

Рис. П38 Модуль - ViewClientMinibar.cpp

  1. ViewProduct.cpp – модуль, отвечающий за обзор списка продуктов в минибаре.

Рис. П39 Модуль - ViewProduct.cpp

  1. ViewServ.cpp – модуль, отвечающий за обзор услуг в списке услуг гостиницы.

Рис. П40 Модуль - ViewServ.cpp

  1. ViewServClient.cpp – модуль, отвечающий за обзор услуг полученных клиентом.

Рис. П41 Модуль - ViewServClient.cpp

  1. ViewSotrud.cpp – модуль, отвечающий за обзор сотрудников гостиницы.

Рис. П42 Модуль - ViewSotrud.cpp

  1. Visilenie.cpp – модуль, отвечающий за обзор баланса клиента проживающего в выбранном номере, с последующей оплатой по счетам и возможностью выселения.

Рис. П43 Модуль - Visilenie.cpp

  1. ZaselBron.cpp – модуль, отвечающий за заселение клиента, предварительно бронировавшего номер.

Рис. П44 Модуль - ZaselBron.cpp

  1. Zaseleie.cpp – модуль, отвечающий за заселение клиента в номер.

Рис. П45 Модуль - Zaseleie.cpp

  1. ZaselMenucpp.cpp – модуль, отвечающий за заселение клиента в номер за выбранный диапазон дат в соответствующий номер, выбрав в главном окне.

https://ahrefs.com/site-explorer/overview/subdomains/refbest.ru

Рис. П46 Модуль - ZaselMenucpp.cpp


 

А также другие работы, которые могут Вас заинтересовать

80507. УПРАВЛІННЯ РЕАЛЬНИМИ ІНВЕСТИЦІЯМИ ПІДПРИЄМСТВА 99 KB
  На більшості підприємств реальне інвестування є основною формою інвестиційної діяльності. Реальне інвестування має ряд особливостей які обумовлені економічною потребою їх здійснення а саме: Процес стратегічного розвитку підприємства є сукупністю реалізованих інвестиційних проектів які пов’язані з успішним проникненням на товарні і регіональні ринки збільшенням операційних активів і зростання ефективності їх використання підвищенням ринкової вартості підприємств; Тісний зв’язок з операційною діяльністю через необхідність забезпечення...
80508. Політика управління портфелем фінансових інвестицій підприємства 106 KB
  Оцінка ефективності інвестування в окремі фінансові інструменти. Оцінка ефективності інвестування в облігації. Оцінка ефективності інвестування в акції. Оцінка ризиків окремих фінансових інструментів інвестування.
80509. Стратегія управління формуванням інвестиційного капіталу підприємства 99.5 KB
  Поняття інвестиційних ресурсів підприємства принципи передумови та порядок розроблення стратегії їх формування. Політика формування інвестиційних ресурсів підприємства. Поняття інвестиційних ресурсів підприємства принципи передумови та порядок розроблення стратегії їх формування. Політика формування інвестиційних ресурсів підприємства.
80510. Автоматизація процесів оцінювання транспортних засобів 483.43 KB
  Шаблони і створені акти можуть редагуватися в Word rtf формат так само можуть створюватися власні і змінюватися наявні в програмі друковані форми: калькуляція страхове відшкодування і т. Програма дозволяє в автоматичному режимі здійснювати: пошук двигуна за маркою транспортного засобу та отримати вичерпну інформацію про модель транспортного засобу на яку він був встановлений його об’єм тип потужність характеристики та період випуску моделі транспортного засобу;  пошук моделі транспортного засобу за кодом...
80511. Автоматизація процесів оцінювання нематеріальних активів 52.73 KB
  Автоматизація процесу оцінки гудвіла. Автоматизація процесу оцінки товарних знаків. Автоматизація процесу оцінки гудвіла До теперішнього часу склалися дві паралельно існуючі традиції перекладу англійського терміну goodwill. В даному випадку тобто в контексті вартісної оцінки нематеріальних активів переважно другий спосіб переведення хоча він і виглядає декілька незграбним.
80512. Автоматизація процесів оцінювання вартості підприємства 157.79 KB
  Для побудови зазначених типів моделей використовуються як власні методи моделювання RIS так і різні відомі методи та мови моделювання зокрема UML. Автори методу EricssonPenker створили свій профіль UML для моделювання бізнеспроцесів EricssonPenker Business Extensions ввівши набір стереотипів які описують основні категорії бізнесмоделі: процеси ресурси правила і цілі діяльності підприємства. Мова UML використовується також в методі який є частиною технології Rtionl Unified Process фірми IBM.
80513. Інформаційні системи і технології, їх роль в управлінні економікою 26.08 KB
  Наприклад під технологією матеріального виробництва розуміють процес який визначається як комплекс засобів і методів обробки виготовлення зміни стану властивостей форми сировини чи матеріалу. Тоді справедливим буде таке означення: Інформаційна технологія це процес або сукупність процесів обробки інформації. Оскільки на вході та виході ІТ є не матерія і не енергія а інформація то: інформаційна технологія це сукупність процесів що використовує засоби та методи накопичення обробки і передачі первинної інформації для отримання...
80514. Особливості та структура економічної інформації 20.02 KB
  Економічна інформація засоби її опису Інформація це сукупність відомостейданих які сприймають з навколишнього середовищавхідна інформація видаються в навколишнє середовищевихідна інформація або зберігаються всередині певної системи. Економічна інформація є інструментом управління і водночас належить до його елементів її потрібно розглядати як один із різновидів управлінської інформації яка забезпечує розвязування задач організаційноекономічного управління народним господарством. Отже...
80515. Організація позамашинної інформаційної бази 33.52 KB
  Поняття позамашинної інформаційної бази Позамашинна інформаційна база це сукупність повідомлень і документів інформація з яких може бути сприйнята людиною без використання засобів обчислювальної техніки До засобів організації та ведення позамашинної ІБ належать: системи класифікації та кодування інформації; уніфіковані системи документації; методичні та інструктивні матеріали. Інформація може розміщуватись на спеціальних паперових бланках і зчитуватись з них в память компютера автоматично за допомогою сканера. Носії інформації їх...