МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ФГБОУ ВПО “КАЗАНСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМ. А. Н. ТУПОЛЕВА – КАИ” ЗЕЛЕНОДОЛЬСКИЙ ИНСТИТУТ МАШИНОСТРОЕНИЯ И ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ КАФЕДРА МАШИНОСТРОЕНИЯ И ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ Курсовая работа по дисциплине: Базы данных Выполнил студент гр.31304 Р.Д Гиламов Проверил: к.т.н., доцент Хамитов Р.М. Оценка:________________ Подпись:_______________ « » _____________ 2014 ЗЕЛЕНОДОЛЬСК 2014 Оглавление 1. Описание предметной области .............................................................................. 2 2. Постановка задачи ................................................................................................... 3 2.1. Организационно-экономическая сущность задачи........................................... 3 2.2. Описание входной информации ......................................................................... 3 2.3. Описание выходной информации ...................................................................... 3 3. Информационное обеспечение задачи .................................................................. 4 3.1. Информационный анализ предметной области и выделение информационных объектов задачи............................................................................ 7 3.2. Разработка инфологической модели предметной области .............................. 7 3.3 Разработка даталогической модели предметной области ................................. 9 3.4. Разработка запросов на языке MySQL для создания таблиц. ........................ 13 4. Алгоритмы решения задачи ................................................................................. 15 4.1. Разработка запросов на языке MySQL для добавления. Примеры данных. 15 5. Технология решения задачи ................................................................................ 16 5.1. Экранные формы. ............................................................................................... 16 5.2. Технология получения отчетов......................... Error! Bookmark not defined. Заключение ................................................................................................................ 17 Список используемой литературы .......................................................................... 18 1 1. Описание предметной области 2. Гостиница Вы работаете в гостинице. Вашей задачей является отслеживание финансовой стороны работы гостиницы. Ваша деятельность организована следующим образом: гостиница предоставляет номера клиентам на определенный срок. Каждый номер характеризуется вместимостью, комфортностью (люкс, полулюкс, обычный) и ценой. Вашими клиентами являются различные лица, о которых Вы собираете определенную информацию (фамилия, имя, отчество и некоторый комментарий). Сдача номера клиенту производится при наличии свободных мест в номерах, подходящих клиенту по указанным выше параметрам. При поселении фиксируется дата поселения. При выезде из гостиницы для каждого места запоминается дата освобождения. 2 2. Постановка задачи 2.1. Организационно-экономическая сущность задачи Необходимо хранить информацию не только по факту сдачи номера клиенту, но и осуществлять бронирование номеров. Кроме того, для постоянных клиентов, а также для определенных категорий клиентов, предусмотрена система скидок. Скидки могут суммироваться. 2.2. Описание входной информации Вся входная информации для решения задачи разделяется на условнопостоянную и оперативно-учетную. Условно-постоянная информация включает следующие данные: Информация о клиентах (ФИО ,тип клиента,описание) Информация о видах скидок(наименование скидки, тип скидки, тарифная ставка) Информация о сдаваемых комнатах (номер, тип комнаты, статус комнаты ,вместимость) Оперативно-учетная информация включает данные о заключении конкретного договора с клиентом (дата заключения, общая сумма услуг, тарифная ставка, вид скидки). 2.3. Описание выходной информации Выходной информацией для «Гостиницы» является: Список всех клиентов Список всех комнат Список всех скидок Список всех заключенных договоров на сдачу комнаты 3 3. Информационное обеспечение задачи При описании информационного обеспечения задачи проводится анализ исходной информации ПО с целью определения состава и структуры информации для последующей формализации и построения информационнологической модели данных. Приведенные формы входных документов позволяют: 1. Выделить объекты и определить роль реквизитов для построения инфологической модели данных, в том числе: - определить атрибуты каждой сущности и требования к ним; - определить ключ каждой сущности; - разработать, если необходимо, классификаторы и кодификаторы сущностей; - определить требования к сущностям, вытекающие из бизнес-правил предметной области. 2. Выявить связи между сущностями, в том числе: - структурные связи для выявления классов и подклассов сущностей; - функциональные связи типа 1:1, 1: m, n:m, n-арные; - если необходимо, определить атрибуты связей. Для построения инфологической модели выбирается модель вида ERDмодель, которая отражает функциональные взаимосвязи между атрибутами и связи между информационными объектами. Результаты проделанной работы рекомендуется оформить в виде следующих документов: -каталог задач и запросов предметной области; - альбом форм входных и выходных документов (разместить в приложении к пояснительной записке); - граф информационных связей задач и запросов; 4 - таблица сущностей; - таблица атрибутов; - таблица связей; - таблица атрибутов связей. В таблице сущностей могут быть отражены следующие сведения: - наименование сущности; - условное обозначение; - первичный ключ; - количество экземпляров сущностей на момент обследования моделируемой предметной области; - динамика изменения количества экземпляров за определённый период, например, в процентах; - частота коррекции; - перечень задачи и запросов, в которых используется данная сущность; - активность, то есть минимальное количество экземпляров сущности, выбираемое при однократном обращении к ней; - ограничение на доступность. В таблице атрибутов для каждой сущности могут быть приведены следующие сведения: - наименование атрибута; - условное обозначение; - признак ключа и тип значения (атомарное или множественное); - формат (тип и длина); - диапазон значений; - возможность принимать неопределённое значение; - ограничение на доступность (если отличается от ограничений для сущности); - метод контроля достоверности. В таблице для связей могут быть приведены следующие сведения: - наименование связи; 5 - условное обозначение; - тип связи; - характеристика динамики (динамическая или статическая); - характеристика мощности связи, то есть количество экземпляров сущностей, участвующих в связи (варианты: 0, 1 или много; 1 или много; 0 или 1; точное число); - перечень атрибутов связи. Описание атрибутов связей аналогично таблице атрибутов, рассмотренной выше. На все данные, полученные в результате анализа предметной области и построения концептуальной модели должны быть ссылки в последующих разделах пояснительной записки. Разработка даталогической модели предметной области Следующим шагом проектирования будет переход от ERD модели к построению даталогической модели, при этом необходимо сформулировать требования, которые должны учитываться на этапе логического проектирования базы данных. Требования должны носить конкретный характер. Требования могут содержать: - требования к эксплуатационным характеристикам базы данных; - тип СУБД; - требования к разрабатываемому программному обеспечению; - описание ролей пользователей и др. Для осуществления логического этапа проектирования необходимо построить реляционную модель предметной области. В процессе создания базы данных в среде конкретной СУБД необходимо: - создать таблицы; - определить свойства полей; - задать ключи; - создать необходимые индексы; 6 - создать связи; - определить правила ссылочной целостности. Примером такой модели является схема данных СУБД PhpMyadmin и описание ее таблиц. 3.1. Информационный анализ предметной области и выделение информационных объектов задачи При анализе предметной области были выделены следующие наиболее важные объекты и их свойства: Клиент (код клиента, ФИО ,тип клиента ,описание клиента). Этот объект был выделен для хранения информации о клиентах. Комнаты (код комнаты, тип комнаты , статус комнаты, вместимость,цена). Объект содержит информацию о комнатах гостиницы Вид скидки (код скидки, наименование скидки, процент скидки). Объект содержит информацию о видах страхования, по которым заключаются договора. 3.2. Разработка инфологической модели предметной области С помощью инфологической модели можно наглядно представить сущности, атрибуты сущностей и связи между сущностям 7 Код Клиента Отчество Описание Клиент Имя Дата выезда Фамилия Номер комнаты Дата заселения Тип комнаты Заключают Вместимо сть сделки ( Комнаты Статус комнаты Цена Вид скидок Код Скидки Наименование Скидки Процент 8 Рисунок 1 – ERD модель «сущность-связь» 3.3 Разработка даталогической модели предметной области После анализа полученной модели выполняется её пошаговое преобразование в реляционную схему по следующим правилам: 1. Каждая простая сущность превращается в отношение. Простая сущность сущность, не являющаяся подтипом и не имеющая подтипов. Имя сущности становится именем отношения. 2. Каждый атрибут становится возможным столбцом с тем же именем; может выбираться более точный формат. Столбцы, соответствующие необязательным атрибутам, могут содержать неопределенные значения; столбцы, соответствующие обязательным атрибутам, - не могут. 3. Компоненты уникального идентификатора сущности превращаются в первичный ключ отношения. Если имеется несколько возможных уникальных идентификаторов, выбирается наиболее используемый. 4. Связи "многие к одному" (и "один к одному") становятся внешними ключами. Для этого делается копия уникального идентификатора с конца связи "один", и соответствующие столбцы составляют внешний ключ. Необязательные связи соответствуют столбцам, допускающим неопределенные значения; обязательные связи - столбцам, не допускающим неопределенные значения. 5. В таблицах, построенных на основе ассоциаций, внешние ключи используются для идентификации участников ассоциации, а в таблицах, построенных на основе характеристик и обозначений, внешние ключи используются для идентификации сущностей, описываемых этими характеристиками и обозначениями. Специфицировать ограничения, связанные с каждым из этих внешних ключей. 6. Если в концептуальной схеме присутствовали подтипы, то возможны два способа: все подтипы размещаются в одной таблице; для каждого подтипа строится отдельная таблица. 9 7. Выполнить шаги по нормализации полученных отношений, приведя их к желаемой нормальной форме. 8. Указать ограничения целостности проектируемой базы данных и дать (если это необходимо) краткое описание полученных таблиц и их полей. 9. Создать индексы для первичного ключа (уникальный индекс), внешних ключей и тех атрибутов, на которых предполагается в основном базировать запросы и выполнять соединения. Полученные таблицы и связи могут быть реализованы средствами любой СУБД, например, с помощью приложения Microsoft Word создаются таблицы (Таблицы 1-4). 10 Таблица клиенты: Таблица Комнаты: 11 Таблица связи Таблица скидок 12 3.4. Разработка запросов на языке MySQL для создания таблиц CREATE TABLE IF NOT EXISTS `clients` ( `id` int(11) NOT NULL AUTO_INCREMENT, `surname` char(32) COLLATE utf8_unicode_ci NOT NULL, `name` char(32) COLLATE utf8_unicode_ci NOT NULL, `patronymic` char(32) COLLATE utf8_unicode_ci NOT NULL, `type_id` int(11) NOT NULL, `description` varchar(1024) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1; CREATE TABLE IF NOT EXISTS `clients_rooms` ( `client_id` int(11) NOT NULL, `room_id` int(3) NOT NULL, `starttime` int(11) NOT NULL, `endtime` int(11) NOT NULL, KEY `client_id` (`client_id`), KEY `room_id` (`room_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 13 CREATE TABLE IF NOT EXISTS `discounts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` char(32) COLLATE utf8_unicode_ci NOT NULL, `discount` int(2) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `rooms` ( `id` int(11) NOT NULL AUTO_INCREMENT, `type` enum('lux','halflux','default') COLLATE utf8_unicode_ci NOT NULL, `price` int(11) NOT NULL, `status` enum('free','close','reserv') COLLATE utf8_unicode_ci NOT NULL, `count` int(2) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ; 14 4. Алгоритмы решения задачи 4.1. Разработка запросов на языке SQL для добавления. Примеры данных. INSERT INTO `clients` (`id`, `surname`, `name`, `patronymic`, `type_id`, `description`) VALUES (3, 'Гиламов', 'Данис', 'Рафисович', 0, 'Тест'), (4, 'Гиламов', 'Данис', 'Рафисович', 0, 'Тест'), (5, 'Гиламов', 'Данис', 'Рафисович', 0, 'Тест'), (6, 'Гиламов', 'Данис', 'Рафисович', 0, ''), (7, 'Гиламов', 'Данис', 'Рафисович', 0, 'ыыфыфыфв'), (8, 'aasas', 'sadasa', 'asd', 0, 'asdads'), (9, 'dadsdsaaas', 'dadsdsasadsad', 'dasdsaadsasd', 4, 'adsdasadsadsasd'); INSERT INTO `discounts` (`id`, `name`, `discount`) VALUES (2, 'Постоянный', 5), (4, 'Super VIP', 25); INSERT INTO `rooms` (`id`, `type`, `price`, `status`, `count`) VALUES (2, 'halflux', 300, 'free', 3); 15 5. Технология решения задачи 5.1. Экранные формы. Параллельно проектированию архитектуры системы и структуры данных разрабатываем интерфейс системы. Разработка интерфейса включает в себя проектирование его основных элементов, экранных форм посредством создания веб-приложения на языке PHP фреймворке Kohana Снимок приложения: 16 Заключение В результате написания курсовой работы были созданы: ERD-модель предметной области. ER модель предметной области. Датологическая модель. Запросы на языке SQL для создания таблиц: «АОбобщенный алгоритм решения задачи. Запросы на языке SQL для добавления в таблицы Экранные формы для таблицЗапрос на создание отчета «Выручка по видам страхования». Создано веб приложение занимающиеся обработкой форм посредством их хранения в базе данных MySQL и вывода их на экран 17 Список используемой литературы 1. Lobel L., Brust A. J., Forte S. Programming Microsoft SQL Server 2008. – Microsoft Press, 2008. 2. Дейт К. Дж. Введение в системы баз данных. – М.: Вильямс, 2008. 3. Диго С.М. Создание баз данных в среде СУБД Access’ 2000 Учебное пособие по курсу “Баз данных”/Моск. гос. ун-т экономики, статистики и информатики. – М., 2002.-140с. 4. Жилинский А. Самоучитель Microsoft SQL Server 2008. – СПб.: БХВПетербург, 2009. 5. Стивен Коупстеик.Access (Шаг за шагом)/ Пер. с англ. - М.: БИНОМ. 1998 - 208 с. 18