Создание информационно-справочной системы
Оглавление
1 Постановка задачи 4
2 Анализ предметной области 5
3 Проектирование базы данных 10
4 Физическая реализация базы данных в формате MS SQL Server 2000 18
5 Хранимые процедуры для вставки данных 25
6 Представления на выборку данных из базы данных 35
6 Проектирование программного обеспечения 38
7 Руководство пользователя 42
Заключение 49
Список использованных источников 50
1 Постановка задачи
Предметная область, подлежащая изучению – «Бюро знакомств». Главная функция бюро знакомств – помочь людям найти друг друга и создать семью.
Целью курсовой работы является создание информационно-справочной системы для решения следующих задач:
- автоматизации учёта клиентов бюро знакомств;
- регистрация анкет клиентов;
- поиск и подбор анкет по различным критериям;
- автоматизация учета предоставленных услуг клиенту бюро знакомств;
- автоматизация расчета суммы предоставленных услуг агентства;
- автоматизация учета проведенных вечеров знакомств;
- формирование отчета о прибыли;
- ведение электронного каталога анкет.
К разрабатываемой системе предъявлены следующие требования:
- наличие централизованного хранилища данных для всех объектов автоматизированного учета;
- ведение операций информационного учета с компьютеров локальной сети;
- создание унифицированного доступа к данным с использованием специализированного программного интерфейса пользователя, который бы отражал специфику этой предметной области.
Для решения поставленных задач планируется выполнение следующих действий:
- проектирование данных для отражения специфики данной предметной области,
- разработка и создание базы данных для хранения информации на едином сервере данных под управлением MS SQL Server 2000,
- разработка Windows-приложения для выполнения базовых операций над данными предметной области.
2 Анализ предметной области
Бюро знакомств ведет
базу данных людей, желающих познакомиться
для дружбы и создания семьи. Бюро
имеет офис в центре города, в
котором ведется прием
В бюро знакомств работаю профессиональные психологи и астрологи. Подбор подходящих друг для друга людей осуществляется исходя из анкетных данных и характеристик, сделанных индивидуально психологом и астрологом. Само знакомство происходит на территории бюро знакомств, на специально организованных вечерах, куда приглашаются все желающие найти свою вторую половинку.
В результате анализа предметной области, были выявлены сущности предметной области и составлен приблизительный глоссарий предметной области.
Таблица 1 – Глоссарий предметной области
Ключевое слово |
Вид |
Клиент |
бизнес-актёр |
Фотограф |
бизнес-работник |
Психолог |
бизнес-работник |
Астролог |
бизнес-работник |
Кассир |
бизнес-работник |
Менеджер по работе с клиентами |
бизнес-работник |
Администратор |
бизнес-работник |
Зарегистрировать клиента в БД |
бизнес-прецедент |
Провести фотосессию |
бизнес-прецедент |
Предоставить консультацию |
бизнес-прецедент |
Получить оплату услуг |
бизнес-прецедент |
Организовать вечер знакомств |
бизнес-прецедент |
Подобрать людей подходящих друг другу |
бизнес-прецедент |
Разослать приглашения |
бизнес-прецедент |
Получить подтверждения |
бизнес-прецедент |
Продать билеты |
бизнес-прецедент |
Продолжение таблицы 1
Провести вечер знакомств |
бизнес-прецедент |
Осуществлять учёт анкет клиентов |
бизнес-прецедент |
Осуществлять учёт предоставленных услуг |
бизнес-прецедент |
Осуществлять учёт проведенных вечеров знакомств |
бизнес-прецедент |
Осуществлять учёт проданных билетов |
бизнес-прецедент |
Анкета |
бизнес-сущность |
Услуга |
бизнес-сущность |
Вечер |
бизнес-сущность |
Билет |
бизнес-сущность |
Вид услуги |
категория бизнес-сущности |
Целью бюро знакомств является предоставление помощи людям найти друг друга и создать семью, путем проведения вечеров знакомств (см. рисунок 1). Показателем успеха является посещаемость вечеров знакомств и образование семейных пар. К тому же успех бюро знакомств зависит от обширности выбора анкет клиентов. Для повышения посещаемости и привлечения клиентов проводятся рекламные акции.
Рисунок 1 – UML диаграмма бизнес-целей предметной области
В рамках курсовой работы, необходимо рассмотреть следующие основные виды деятельности бюро знакомств:
- оказание услуг (фотосессия, консультация);
- проведение вечеров знакомств.
Оказание услуг клиентам (см. рисунок 2) подразумевает выполнение взаимосвязанных действий работников бюро знакомств. Менеджер по работе с клиентами регистрирует посетителей бюро знакомств и составляет анкету клиента. В случае если клиент не имеет фотографий необходимого качества, фотограф проводит фотосессию. Клиент имеет возможность получить консультации психолога и астролога, для составления характеристики и подбора, подходящих друг для друга людей. Прием оплаты предоставленных услуг производится кассиром. Ежедневно кассир формирует кассовый отчет о предоставленных услугах.
Рисунок 2 – UML диаграмма бизнес-прецедентов оказания услуг
Проведение вечеров знакомств (см. рисунок 3) подразумевает выполнение взаимосвязанных действий работников бюро знакомств. Психологи и астрологи подбирают людей подходящих друг другу и составляют список участников вечера. Менеджер по работе с клиентами рассылаю приглашения клиентам, и получают подтверждения о согласии клиента принять участие в вечере знакомств. Кассир продает билеты участникам вечера. Каждый клиент купивший билет имеет право посетить вечер знакомств. Вечер знакомств проводит администратор бюро знакомств. После проведения вечера знакомств кассир формирует кассовый отчет о проданных билетах.
Рисунок 3 – UML диаграмма бизнес-прецедентов проведения вечеров знакомств
Аналитическая бизнес модель (см. рисунок 4) содержит следующие бизнес-сущности:
- Анкета;
- Услуга;
- Чек;
- Вечер;
- Билет.
Рисунок 4 – Аналитическая бизнес модель
3 Проектирование базы данных
Разрабатываемая база данных
предназначена для
Для разграничения прав пользователей
проектируемой информационно-
- Администратор;
- Менеджер;
- Кассир;
- Психолог;
- Астролог.
Для реализации пользовательского интерфейса была проведена разработка Windows-приложения с учетом принципов создания дружественных интерфейсов и программная реализация проекта с помощью визуальной среды проектирования Borland Delphi 10, на объектно-ориентированном языке программирования Object Pascal.
Таблица 2 – Описание сущностей предметной области
Название сущности |
Описание |
Вид |
Зависимые сущности |
Вид услуги |
Справочник услуг, предоставляемых бюро знакомств |
характеристическая (справочник) |
Услуга |
Анкета |
Документ, содержащий данные и характеристики клиента бюро знакомств |
стержневая |
Услуга, Билет |
Услуга |
Услуга, предоставленная клиенту бюро знакомств |
ассоциативная |
нет |
Вечер |
Вечер знакомств, проведенный в бюро знакомств для клиентов |
стержневая |
Билет |
Билет |
Билет на вечер знакомств, проданный клиенту бюро знакомств |
ассоциативная |
нет |
Цель |
Справочник целей знакомств |
характеристическая (справочник) |
Анкета |
Профессия |
Справочник профессий |
характеристическая (справочник) |
Анкета |
Увлечение |
Увлечения клиента бюро знакомств |
ассоциативная |
нет |
Вид увлечения |
Справочник увлечений |
характеристическая (справочник) |
Увлечение |
Построена диаграмма классов предметной области (см. рисунок 5), которая отображает информационно-логическую структуру изучаемой предметной области с точки зрения обработки и хранения информации о её бизнес-процессах.
Рисунок 5 – UML диаграмма классов предметной области
Рассмотрим подробно схемы
отношений с указанием
Таблица 3 – Схема отношения «Вид услуги»
Атрибут |
Смысл |
Тип |
Код услуги |
Код услуги (PK) |
Числовой целый, счётчик |
Название |
Название услуги |
Строка |
Для идентификации вида услуги в отношение введен атрибут «Код услуги». Этот атрибут является первичным ключом данного отношения, так как обладает свойством неизбыточности и позволяет однозначно идентифицировать отдельную услугу, предоставляемую бюро знакомств, по её целочисленному номеру.
- Среди атрибутов нет составных, таким образом, создано корректное отношение в 1НФ.
- Отношение «Вид услуги» находится в 2НФ, так как все неключевые атрибуты данного отношения полностью зависят от первичного ключа.
- Между неключевыми атрибутами отношения не существует функциональных зависимостей. Учитывая пункт 2, можно утверждать, что данное отношение находится в 3НФ.
Таблица 4 – Схема отношения «Вид увлечения»
Атрибут |
Смысл |
Тип |
Код увлечения |
Код увлечения (PK) |
Числовой целый, счётчик |
Название |
Название увлечения |
Строка |
Для идентификации вида увлечения в отношение введен атрибут «Код увлечения». Этот атрибут является первичным ключом данного отношения, так как обладает свойством неизбыточности и позволяет однозначно идентифицировать отдельное увлечение по его целочисленному номеру.
- Среди атрибутов нет составных, таким образом, создано корректное отношение в 1НФ.
- Отношение «Вид увлечения» находится в 2НФ, так как все неключевые атрибуты данного отношения полностью зависят от первичного ключа.
- Между неключевыми атрибутами отношения не существует функциональных зависимостей. Учитывая пункт 2, можно утверждать, что данное отношение находится в 3НФ.
Таблица 5 – Схема отношения «Цель»
Атрибут |
Смысл |
Тип |
Код цели |
Код цели (PK) |
Числовой целый, счётчик |
Название |
Название цели |
Строка |
Для идентификации цели знакомства в отношение введен атрибут «Код цели». Этот атрибут является первичным ключом данного отношения, так как обладает свойством неизбыточности и позволяет однозначно идентифицировать отдельную цель по её целочисленному номеру.
- Среди атрибутов нет составных, таким образом, создано корректное отношение в 1НФ.
- Отношение «Цель» находится в 2НФ, так как все неключевые атрибуты данного отношения полностью зависят от первичного ключа.
- Между неключевыми атрибутами отношения не существует функциональных зависимостей. Учитывая пункт 2, можно утверждать, что данное отношение находится в 3НФ.
Таблица 6 – Схема отношения «Профессия»
Атрибут |
Смысл |
Тип |
Код профессии |
Код профессии (PK) |
Числовой целый, счётчик |
Название |
Название профессии |
Строка |
Для идентификации профессии клиента в отношение введен атрибут «Код профессии». Этот атрибут является первичным ключом данного отношения, так как обладает свойством неизбыточности и позволяет однозначно идентифицировать отдельную профессию по её целочисленному номеру.
- Среди атрибутов нет составных, таким образом, создано корректное отношение в 1НФ.
- Отношение «Профессия» находится в 2НФ, так как все неключевые атрибуты данного отношения полностью зависят от первичного ключа.
- Между неключевыми атрибутами отношения не существует функциональных зависимостей. Учитывая пункт 2, можно утверждать, что данное отношение находится в 3НФ.
Таблица 7 – Схема отношения «Анкета»
Атрибут |
Смысл |
Тип |
Код анкеты |
Код анкеты (PK) |
Числовой целый, счётчик |
Фамилия |
Фамилия клиента |
Строка |
Продолжение таблицы 7
Имя |
Имя клиента |
Строка |
Отчество |
Отчество клиента |
Строка |
Серия |
Серия паспорта клиента |
Строка |
Номер |
Номер паспорта клиента |
Строка |
Телефон |
Контактный телефон клиента |
Строка |
Почта |
Адрес электронной почты клиента |
Строка |
Пол |
Пол клиента |
Строка |
Дата рождения |
Дата рождения клиента |
Время и дата |
Код профессии |
Профессия клиента (FK) |
Числовой целый |
Дети |
Наличие детей у клиента |
Логический |
Фото |
Путь к каталогу с фото клиента |
Строка |
Код цели |
Цель знакомства клиента (FK) |
Числовой целый |
Для идентификации анкеты клиента бюро знакомств в отношение введен атрибут «Код анкеты». Этот атрибут является первичным ключом данного отношения, так как обладает свойством неизбыточности и позволяет однозначно идентифицировать отдельную анкету клиента бюро знакомств по её целочисленному номеру. Схема содержит два внешних ключа: первичные ключи из схем «Цель» и «Профессия».
- Среди атрибутов нет составных, таким образом, создано корректное отношение в 1НФ.
- Отношение «Анкета» находится в 2НФ, так как все неключевые атрибуты данного отношения полностью зависят от первичного ключа.
- Между неключевыми атрибутами отношения не существует функциональных зависимостей. Учитывая пункт 2, можно утверждать, что данное отношение находится в 3НФ.
Таблица 8 – Схема отношения «Вечер»
Атрибут |
Смысл |
Тип |
Дата вечера |
Дата вечера знакомств (PK) |
Время и дата |
Возраст |
Возрастная категория вчера знакомств |
Строка |
Цена билета |
Цена билета на вечер знакомств |
Денежный |
Для идентификации профессии клиента в отношение введен атрибут «Дата вечера». Этот атрибут является первичным ключом данного отношения, так как обладает свойством неизбыточности и позволяет однозначно идентифицировать отдельный вечер знакомств по его дате и времени проведения.
- Среди атрибутов нет составных, таким образом, создано корректное отношение в 1НФ.
- Отношение «Вечер» находится в 2НФ, так как все неключевые атрибуты данного отношения полностью зависят от первичного ключа.
- Между неключевыми атрибутами отношения не существует функциональных зависимостей. Учитывая пункт 2, можно утверждать, что данное отношение находится в 3НФ.
Таблица 9 – Схема отношения «Билет»
Атрибут |
Смысл |
Тип |
Код анкеты |
Код анкеты (значение ключевого атрибута отношения «Анкета») (PK) |
Числовой целый, счётчик |
Дата вечера |
Дата вечера знакомств (значение ключевого атрибута отношения «Вечер») (PK) |
Время и дата |
Сущность, соответствующая данной схеме отношений, является ассоциативной, связывающей сущности «Анкета» и «Вечер». Первичным ключом является совокупность внешних ключей: ссылок на первичные ключи соответствующих схем.
- Среди атрибутов нет составных, таким образом, создано корректное отношение в 1НФ.
- Отношение «Билет» находится в 2НФ, так как все неключевые атрибуты данного отношения полностью зависят от первичного ключа.
- Между неключевыми атрибутами отношения не существует функциональных зависимостей. Учитывая пункт 2, можно утверждать, что данное отношение находится в 3НФ, что и требуется.
Таблица 10 – Схема отношения «Увлечение»
Атрибут |
Смысл |
Тип |
Код анкеты |
Код анкеты (значение ключевого атрибута отношения «Анкета») (PK) |
Числовой целый, счётчик |
Код увлечения |
Код увлечения клиента (значение ключевого атрибута отношения «Вид увлечения») (PK) |
Числовой целый, счётчик |
Сущность, соответствующая данной схеме отношений, является ассоциативной, связывающей сущности «Анкета» и «Вид увлечения». Первичным ключом является совокупность внешних ключей: ссылок на первичные ключи соответствующих схем.
- Среди атрибутов нет составных, таким образом, создано корректное отношение в 1НФ.
- Отношение «Увлечение» находится в 2НФ, так как все неключевые атрибуты данного отношения полностью зависят от первичного ключа.
- Между неключевыми атрибутами отношения не существует функциональных зависимостей. Учитывая пункт 2, можно утверждать, что данное отношение находится в 3НФ, что и требуется.
Таблица 11 – Схема отношения «Услуга»
Атрибут |
Смысл |
Тип |
Код анкеты |
Код анкеты (значение ключевого атрибута отношения «Анкета») (PK) |
Числовой целый, счётчик |
Код услуги |
Код услуги (значение ключевого атрибута отношения «Вид услуги») (PK) |
Числовой целый, счётчик |
Цена услуги |
Цена услуги, предоставленной клиенту |
Денежный |
Сущность, соответствующая данной схеме отношений, является ассоциативной, связывающей сущности «Анкета» и «Вид услуги». Первичным ключом является совокупность внешних ключей: ссылок на первичные ключи соответствующих схем.
- Среди атрибутов нет составных, таким образом, создано корректное отношение в 1НФ.
- Отношение «Услуга» находится в 2НФ, так как все неключевые атрибуты данного отношения полностью зависят от первичного ключа.
- Между неключевыми атрибутами отношения не существует функциональных зависимостей. Учитывая пункт 2, можно утверждать, что данное отношение находится в 3НФ, что и требуется.
Таким образом, в рассматриваемой предметной области выявлены и формализованы отношения и связи между ними.
4 Физическая реализация базы данных в формате MS SQL Server 2000
На этом этапе следует реализовать созданную ранее структуру на сервере БД MS SQL Server 2000 в базе данных. Далее перечислена реализация составленных схем отношений с помощью таблиц базы данных, с указанием типов данных полей в нотации MS SQL Server 2000. Созданные таблицы являются частью БД на сервере данных. Имя базы данных для последующего использования: «Бюро знакомств».
Таблица 12 – Спецификация таблицы «Вид услуги»
Имя поля |
Тип |
Хранение NULL |
По умолчанию |
Ограничения |
Код услуги |
int |
запрещено |
identity(1,1) |
первичный ключ |
Название |
nvarchar(50) |
запрещено |
нет |
Таблица 12 – Спецификация таблицы «Вид увлечения»
Имя поля |
Тип |
Хранение NULL |
По умолчанию |
Ограничения |
Код увлечения |
int |
запрещено |
identity(1,1) |
первичный ключ |
Название |
nvarchar(50) |
запрещено |
нет |
Таблица 13 – Спецификация таблицы «Цель»
Имя поля |
Тип |
Хранение NULL |
По умолчанию |
Ограничения |
Код цели |
int |
запрещено |
identity(1,1) |
первичный ключ |
Название |
nvarchar(50) |
запрещено |
нет |
Таблица 14 – Спецификация таблицы «Профессия»
Имя поля |
Тип |
Хранение NULL |
По умолчанию |
Ограничения |
Код профессии |
int |
запрещено |
identity(1,1) |
первичный ключ |
Название |
nvarchar(50) |
запрещено |
нет |
Таблица 15 – Спецификация таблицы «Анкета»
Имя поля |
Тип |
Хранение NULL |
По умолчанию |
Ограничения |
Код анкеты |
int |
запрещено |
identity(1,1) |
первичный ключ |
Фамилия |
nvarchar(50) |
запрещено |
нет |
|
Имя |
nvarchar(50) |
запрещено |
нет |
|
Отчество |
nvarchar(50) |
запрещено |
нет |
|
Серия |
nvarchar(2) |
запрещено |
нет |
|
Номер |
nvarchar(8) |
запрещено |
нет |
|
Телефон |
nvarchar(14) |
запрещено |
нет |
|
Почта |
nvarchar(50) |
запрещено |
нет |
|
Пол |
nvarchar(10) |
запрещено |
нет |
мужской, женский |
Дата рождения |
datetime |
запрещено |
текущая дата getdate( ) |
дата не позднее текущей |
Код профессии |
int |
запрещено |
нет |
внешний ключ с таблицей «Профессия» |
Дети |
bit |
запрещено |
нет |
да, нет |
Фото |
nvarchar(100) |
разрешено |
нет |
|
Код цели |
int |
запрещено |
нет |
внешний ключ с таблицей «Цель» |
Таблица 16 – Спецификация таблицы «Вечер»
Имя поля |
Тип |
Хранение NULL |
По умолчанию |
Ограничения |
Дата вечера |
datetime |
запрещено |
текущая дата getdate( ) |
первичный ключ, дата не позднее текущей |
Возраст |
nvarchar(50) |
запрещено |
нет |
|
Цена билета |
money |
запрещено |
нет |
Таблица 17 – Спецификация таблицы «Билет»
Имя поля |
Тип |
Хранение NULL |
По умолчанию |
Ограничения |
Код анкеты |
int |
запрещено |
нет |
первичный ключ, внешний ключ для связи с таблицей «Анкета» |
Дата вечера |
datetime |
запрещено |
нет |
первичный ключ, внешний ключ для связи с таблицей «Вечер» |
Таблица 18 – Спецификация таблицы «Увлечение»
Имя поля |
Тип |
Хранение NULL |
По умолчанию |
Ограничения |
Код анкеты |
int |
запрещено |
нет |
первичный ключ, внешний ключ для связи с таблицей «Анкета» |
Код увлечения |
int |
запрещено |
нет |
первичный ключ, внешний ключ для связи с таблицей «Вид увлечения» |
Таблица 19 – Спецификация таблицы «Услуга»
Имя поля |
Тип |
Хранение NULL |
По умолчанию |
Ограничения |
Код анкеты |
int |
запрещено |
нет |
первичный ключ, внешний ключ для связи с таблицей «Анкета» |
Код услуги |
int |
запрещено |
нет |
первичный ключ, внешний ключ для связи с таблицей «Вид услуги» |
Цена услуги |
money |
запрещено |
нет |
Структура базы данных приведена на следующей ER-диаграмме (см. рисунок 6), которая отображает таблицы базы данных, структуру таблиц базы данных и связи между ними.
Рисунок 6 – ER-диаграмма базы данных «Бюро знакомств»
Для создания базы данных, соответствующей данным спецификациям и инфологической модели, необходимо выполнить на стороне сервера следующий SQL-сценарий (листинг 1).