Разработка модели информационной системы "Рыболовный магазин" с помощью СУБД Firebird. Компоненты программного продукта. Физическая диаграмма базы данных, обзор функций добавления, изменения, удаления и сортировки данных. Руководство администратора.
Аннотация к работе
Среди пользователей системы можно выделить: а) менеджеров магазина, который работает непосредственно в системе, в его обязанности входит регистрация (а также редактирование и удаление) покупок, доставок, поставок, заявок на поставку, учет покупателей, товаров, поставщиков и др. в базе данных; COMMODITY_ID в таблице «Покупки» (BUYING), который ссылается на первичный ключ с таким же именем в таблице «Товары» (COMMODITY); COMMODITY_ID в таблице «Доставки» (DELIVERY), который ссылается на первичный ключ с таким же именем в таблице «Товары» (COMMODITY); COMMODITY_TYPE_ID в таблице «Товары» (COMMODITY), который ссылается на первичный ключ с таким же именем в таблице «Типы товаров» (COMMODITY_TYPE); COMMODITY_ID в таблице «Количество товаров» (COMMODITY_QUANTITY), который ссылается на первичный ключ с таким же именем в таблице «Товары» (COMMODITY);Клиентское приложение «Рыболовный магазин» предназначено для обеспечения хранения и обработки информации о процессах, происходящих в магазине, таких как: покупки, доставки, поставки, заявку на поставку и другие, а также для информации о покупателях, пользователях и информации о товарах.
Введение
программный информационный база данных
Базы данных[2, 3] используются везде, где необходим быстрый доступ и обработка большого объема данных[4].
Внедрение информационных технологий[5] в повседневную жизнь харатктеризуется повсеместным использованием вычислительной техники.
В связи с этим, актуальным является создание на основе ЭВМ различных программ с использованием баз данных[2, 3] как основных источников хранения и обработки информации[5]. Некоторым любителям рыбалки достаточно обыкновенного удилища, но те, кто считают это занятие серьезным, всегда должны обзавестись достойным оснащением. И все это можно будет найти информационной системе[5] «Рыболовный магазин». Для серьезных рыбаков необходимы различные товары: спиннинги и удилища, крючки и лески, поплавки и катушки, а также множество дополнительных предметов, которые можно будет найти в этой ИС[5]. Наличие разнообразных мелочей сделает процесс рыбалки еще более приятным.
Целью проекта является разработка информационной системы[5] «Рыболовный магазин» и создание клиентского приложения для работы с этой ИС.
Для этого потребуется решить следующие задачи: - определить, кто будет пользоваться приложением;
- выработать требования к программе;
- реализовать функционал программы.
1. Анализ технического задания и разработка требований
При разработке базы данных необходимо для начала выделить предметную область. В данном случвае, предметная область состоит из объекта типа: магазин[5].
Среди пользователей системы можно выделить: а) менеджеров магазина, который работает непосредственно в системе, в его обязанности входит регистрация (а также редактирование и удаление) покупок, доставок, поставок, заявок на поставку, учет покупателей, товаров, поставщиков и др. в базе данных;
б) администратора системы, который выполняет функции по обслуживанию системы: следит за целостностью информации и тому подобное.
Система должна обеспечить для каждого пользователя определенный функционал, который должен соответствовать клиентским требованиям.
Требования, предъявляемые покупателем магазина: - доработать программу до ранга Интернет-магазина для самостоятельного просмотра, заказа и покупки товаров.
Требования, предъявляемые менеджером магазина: -Приложение должно иметь форму ввода данных, в которой отражаются необходимые данные(например, для товара это - название товара, тип товара, количество, а также страна-производитель);
- Приложение должно иметь возможность сортировки по определенным критериям.
-Приложение должно позволять редактировать и удалять данные.
Требования, предъявляемые продавцом магазина: - Приложение должно иметь форму ввода данных для регистрации покупок;
- обеспечение целостности данных;
- удобство эксплуатации;
Требования, предъявляемые администратором магазина: -Необходимо обеспечить качественную работу сервера
Для выполнения вышеприведенных требований необходимо: - реализовать работу с базой данных;
- использовать визуальные компоненты для работы с программой
Соответственно, нужно выбрать СУБД и среду разработки.
Выбор СУБД связан с ее отличительными характеристиками, к которым можно отнести: тип, требования к операционным системам и ЭВМ, наличие помощи разработчику, языковые средства, удобство приложений для пользователя. В итоге, выбрана СУБД Firebird[2]. В качестве преимуществ Firebird[2, 5] можно отметить многоверсионную архитектуру, обеспечивающую параллельную обработку оперативных и аналитических запросов (это возможно потому, что читающие пользователи не блокируют пишущих), компактность (дистрибутив 5Mb), высокую эффективность и мощную языковую поддержку для хранимых процедур и триггеров[5].
В качестве среды для разработки клиентского приложения выбрана среда программирования Microsoft Visual Studio 2010. Данная интегрированная среда, упростит основные задачи создания, отладки и развертывания приложения.
Для взаимодействия среды программированния с СУБД[3, 4] используется провайдер данных Firebird .NET Data Provider, разработанный на языке C# и обеспечивающий высокую производительность и собственную реализацию Firebird API.
Таким образом, в курсовом проекте необходимо разработать приложение, выполняющие функции добавления, редактирования, удаления записей в базах данных. В качестве средств разработки выбраны: среда программирования Microsoft Visual Studio 2010[1] и СУБД Firebird[2, 5].
2. Разработка инфологической модели
В информационной системе могут происходить следующие процессы: · Доставка товара
· Классификация товара
· Подача заявки на товар
· Покупка товара
· Поставка товара
· Ревизия
· Регистрация покупателя
· Регистрация поставщика
· Регистрация товара
Исходя из выше перечисленной информации база данных будет содержать следующую информацию (расспределенную по таблицам): · Заявка (ИД заявки, ИД поставщика, ИД товара, количество товара, дата заявки)
· Доставка (ИД доставки, ИД товара, ИД покупателя, количество товара, дата доставки, время доставки)
· Количество товара (ИД, ИД товара, количество товара)
· Покупатель (ИД покупателя, фамилия, имя, ИД статуса покупателя, адрес покупателя, телефон покупателя)
· Покупка (ИД покупки, ИД покупателя, ИД статуса покупателя, ИД товара, количество товара, дата покупки)
· Поставка (ИД поставки, ИД поставщика, ИД товара, количество товара, дата поставки)
· Поставщик (ИД поставщика, имя поставщика, ИД статуса поставщика, адрес поставщика, телефон поставщика)
· Статус покупателя (ИД статуса покупателя, название статуса)
· Статус поставщика (ИД статуса поставщика, название статуса)
· Тип товара (ИД типа товара, название типа)
· Товар (ИД товара, название товара, страна-производитель товара, цена товара, количество товара, ИД типа товара)
Физическая диаграмма[4, 5] базы данных «Рыболовный магазин» представлена на рисунке 1, позволяющая определиться со структурой будущей базы данных.
Рисунок 1 - Физическая диаграмма базы данных «Рыболовный магазин»
Для обеспечения сущностной целостности [5] (определяющей строку как уникальную сущность в конкретной таблице) в каждой из таблиц присутствуют первичные ключи (primary keys): - BUYER_ID в таблице «Покупатели» (BUYER);
- BUYER_STATUS_ID в таблице «Статусы покупателей» (BUYER_STATUS);
- BUYING_ID в таблице «Покупки» (BUYING);
- COMMODITY_ID в таблице «Товары» (COMMODITY);
- COMMODITY_QUANTITY_ID в таблице «Количество товаров» (COMMODITY_QUANTITY);
- COMMODITY_TYPE_ID в таблице «Типы товаров» (COMMODITY_TYPE);
- DELIVERY_ID в таблице «Доставка товаров» (DELIVERY);
- REQUEST_ID в таблице Заявки на поставку товара (REQUEST);
- SUPPLIER_ID в таблице «Поставщики» (SUPPLIER);
- SUPPLIER_STATUS_ID в таблице «Статусы поставщиков» (SUPPLIER_STATUS);
- SUPPLY_ID в таблице «Поставки» (SUPPLY).
Для обеспечения ссылочной целостности(гарантируещей согласованность значений ключей во всех таблицах) в некоторые из таблиц добавлены внешние ключи (foreign keys). Этот вид целостности требует отсутствия ссылок на несуществующие значения, а также обеспечивает согласованное изменение ссылок во всей базе данных при изменении значения ключа.
При обеспечении ссылочной целостности не допускается следующих действий пользователей.
- добавления или изменения строк в связанной таблице, если в первичной таблице нет соответствующей строки;
- изменения значений в первичной таблице, которое приводит к появлению потерянных строк в связанной таблице;
- удаления строк из первичной таблицы, если имеются соответствующие ей строки в связанных таблицах.
В разрабатываемой базе данных присутствуют следующие внешние ключи: - BUYER_STATUS_ID в таблице «Покупатели» (BUYER), который ссылается на первичный ключ с таким же именем в таблице «Статусы покупателей» (BUYER_STATUS);
- BUYER_ID в таблице «Покупки» (BUYING), который ссылается на первичный ключ с таким же именем в таблице «Покупатели» (BUYER);
- COMMODITY_ID в таблице «Покупки» (BUYING), который ссылается на первичный ключ с таким же именем в таблице «Товары» (COMMODITY);
- BUYER_ID в таблице «Доставки» (DELIVERY), который ссылается на первичный ключ с таким же именем в таблице «Покупатели» (BUYER);
- COMMODITY_ID в таблице «Доставки» (DELIVERY), который ссылается на первичный ключ с таким же именем в таблице «Товары» (COMMODITY);
- COMMODITY_TYPE_ID в таблице «Товары» (COMMODITY), который ссылается на первичный ключ с таким же именем в таблице «Типы товаров» (COMMODITY_TYPE);
- COMMODITY_ID в таблице «Количество товаров» (COMMODITY_QUANTITY), который ссылается на первичный ключ с таким же именем в таблице «Товары» (COMMODITY);
- SUPPLIER_STATUS_ID в таблице «Поставщики» (SUPPLIER), который ссылается на первичный ключ с таким же именем в таблице «Статусы поставщиков» (SUPPLIER_STATUS);
- SUPPLIER _ID в таблице «Поставки» (SUPPLY), который ссылается на первичный ключ с таким же именем в таблице «Поставщики» (SUPPLIER);
- COMMODITY_ID в таблице «Поставки» (SUPPLY), который ссылается на первичный ключ с таким же именем в таблице «Товары» (COMMODITY);
- SUPPLIER _ID в таблице «Заявки на поставку товара» (REQUEST), который ссылается на первичный ключ с таким же именем в таблице «Поставщики» (SUPPLIER);
- COMMODITY_ID в таблице «Заявки на поставку товара» (REQUEST), который ссылается на первичный ключ с таким же именем в таблице «Товары» (COMMODITY);
3. Проектирование системы
Программный продукт будет состоять из следующих компонентов: -СУБД, через которую организуется работа с БД.
-Провайдер для доступа к данным БД Firebird.NET Provider.
-Клиентское приложение, состоящие из 5 модулей.
Хранилищем данных является база данных (БД) под управлением системой управления базами данных Firebird. В базе данные хранятся структурированно, где каждой структурной частью является таблица. Для работы с БД в СУБД передаются запросы для конкретного действия с базой данных. Запрос представляется в виде строки.
Передача запроса из клиентского приложения в СУБД производится с помощью посредника передачи - Firebird .NET Provider’а. Он обеспечивает связь приложения с СУБД для правильной работы ИС.
Работа пользователей с базой данных ведется с помощью клиентского приложения, в котором определены необходимые функции.
Клиентское приложение представляет собой связанный набор модулей необходимых для полного функционирования программного продукта. Графическое отображения работы ИС «Рыболовный магазин»:
Рисунок 2. Графическое отображение взаимодействия БД с ИС.
По первому пути идет обращение к БД от ИС (1), а по второму пути (2) идет обратный ответ от БД к ИС. По первому пути идет строка запроса для отображения данных БД в ИС. А по второму идет поток данных, которые были запрошены.
ИС состоит из 4 модулей: -Модуль отображения данных отвечает за отображение данных в клиентском приложеннии;
-Модули добавления/редактирования/удаления выполняют соответственно функции добавления, редактирования и удаления данных в БД.
Для создания клиентского приложения используется технология Windows Forms. Данная технология упрощает доступ к элементам интерфейса Microsoft Windows[1].
Для доступа к базе данных используется объектная модель ADO.NET[5].
ADO .NET реализует отсоединенный доступ к данным. При этом в Visual Studio .NET существует множество встроенных мастеров и дизайнеров, которые позволяют реализовать механизмы доступа к БД еще на этапе разработки программного кода.
ADO.NET[5] - это набор классов, предоставляющих службы доступа к данным программисту, работающему на платформе .NET Framework. ADO.NET имеет богатый набор компонентов для создания распределенных приложений, совместно использующих данные. Это неотъемлемая часть платформы .NET Framework[1], которая предоставляет доступ к реляционным данным, XML-данным и данным приложений. ADO.NET[5] удовлетворяет различные потребности разработчиков, включая создание клиентских приложений баз данных.
4. Разработка программы
Для работы с базой данных, помимо системных библиотек в составе .Net Framework, использовалась библиотека FIREBIRDSQL.Data.FIREBIRDCLIENT.dll.
Следующим шагом создания приложения, является работа с базой данных, которая осуществляется с помощью SQL запросов. Здесь используется объекты классов: - FBDATAADAPTER, который выполняет функции посредника при взаимодействии БД и объекта DATASET;
- DATATABLE, который представляет одну таблицу базы данных (она характеризуется схемой и содержимым).
Функциональные возможности FBDATAADAPTER"а реализуются за счет метода Fill, который изменяет данные в DATASET. При выполнении метода Fill объект DATAADAPTER заполняет DATATABLE или DATASET данными, полученными из БД. После обработки данных, загруженных в память, с помощью метода Update можно записать модифицированные записи в БД;
Для обработки исключений используется инструкция try-catch, которая состоит из блока try, за ним следует одно или несколько предложений catch, в которых определяются обработчики для различных исключений. При возникновении исключения среда CLR ищет оператор catch, который обрабатывает это исключение. Если выполняющийся в данный момент метод не содержит такого блока catch, то среда CLR рассматривает метод, который вызвал текущий метод, и т. д. по стеку вызовов. Если блок catch не найден, то среда CLR отображает пользователю сообщение о необработанном исключении и останавливает выполнение программы[1].
Добавление в таблицу «Покупатели реализовано следующим образом» try
{
…
FBDATAADAPTER DA = new FBDATAADAPTER(REQUESTINSERT, CONNECTIONBASE.CONNECTIONSTRING);
DATATABLE DT = new DATATABLE();
DA.Fill(DT);
BUYERFORM f = new BUYERFORM();
f.DATAGRIDVIEW1.DATASOURCE = DT;
…
} catch (System.Exception ex)
{
MESSAGEBOX.Show(ex.TOSTRING());
}
Удалить покупателя из таблицы можно следующим образом: - выделить строку и нажать кнопку меню «Удалить информацию о покупателе»;
- выделить строку и нажать Delete на клавиатуре.
Если покупатель заказывал доставку или покупал товары, то нельзя удалить информацию о нем, предварительно не удалив записи из этих таблиц.
Рисунок 3 - Обработка исключений
В программе используются следующие виды запросов (рассматривается на примере таблице «Товары»): - добавление товара
"delete from commodity where commodity_id = ("" DATAGRIDVIEW1.Rows[index].Cells[0].Value "")";
Для обеспечения взаимодействия интерфейса и пользователя используются следующие компоненты: button - для подтверждения команд в приложении;
COMBOBOX - для выбора элементов из уже существующего списка;
CONTEXTMENUSTRIP - для использования кнопок контекстного меню;
DATAGRIDVIEW - для наглядного представления данных в табличной форме;
DATETIMEPICKER -для визуального представления календаря;
label - для подписей соответствующих полей;
MENUSTRIP - для представления функций приложения в виде кнопочного меню;
textbox - для занесения информации в приложение и ее отображения;
5. Руководство по программному продукту
5.1 Руководство администратора
Установка производится копированием приложения в любое место компьютера.
Рекомендуемые требования к серверной части: установить Firebird 2.5. Для этого требуется: - Процессор Pentium III - совместимый процессор с тактовой частотой1GHZ
- Оперативная память (RAM) 256 MB
- Объем жесткого диска (HDD) 500 MB
Рекомендуемые требования к клиентской части: наличие на компьютере .NETFRAMEWORK 4.0. Для этого требуется: - ЦП x86 или x64 с тактовой частотой 1ГГЦ;
- Объем оперативной памяти 512 МБ;
- Объем жесткогодиска (HDD) 850 MB.
5.2 Руководство пользователя
Чтобы запустить приложение необходимо запустить исполняемый файл FISHINGSHOPAPPLICATION.exe. После этого откроется главное окно программы. На нем расположено меню, из которого можно открыть одну из (или все - по сочетанию клавиш Ctrl A) таблицы, вызвать справку(клавиша F1) или просмотреть информацию о разработчиках(клавиша F2)
Рисунок 4 - Главная форма приложения. Вызов справки
Чтобы открыть интересующую таблицу необходимо кликнуть по кнопке «Открыть таблицу»-> «Имя таблицы».
Рисунок 5 - Открытие таблицы «Покупатели»
Рисунок 6 - Таблица «Покупатели»
Рисунок 7 - Таблица «Статусы покупателей»
Для добавления можно воспользоваться комбинацией клавиш «Ctrl Alt A» или выбрать соответствующий пункт в меню «Функции».
Рисунок 8 - Добавление нового статуса покупателя
Рисунок 9 - Таблица «Статусы покупателей»
Если попробовать удалить статус, который присвоен какому-либо покупателю, то обработается исключение и покажется окошко следующего вида:
Рисунок 10 - Обработка исключений
В меню «Настройки» можно отобразить или скрыть некоторые столбцы.
Настройки отображения сбрасываются после закрытия формы.
Для прекращения работы программного обеспечения требуется выполнить команду закрыть в правом верхнем углу главной формы приложения.
Вывод
В ходе выполнения курсовой работы были проанализированы требования к программному обеспечению, сформулированы задачи разработки информационной системы, разработана ИС «Рыболовный магазин», в которой Реализованы такие функции как добавеление, изменение, удаление и сортировка данных.
Клиентское приложение «Рыболовный магазин» предназначено для обеспечения хранения и обработки информации о процессах, происходящих в магазине, таких как: покупки, доставки, поставки, заявку на поставку и другие, а также для информации о покупателях, пользователях и информации о товарах.
При появлении новых производственных задач разработчик может в кратчайшие сроки реализовать их в базе данных, путем добавления нового функционала (например, поиск или фильтрация по полям таблиц), доработав приложенный программный код.
В ближайшее время программу можно доработать увеличением функционала, например, дать возможность покупателям напрямую (через программу) заказывать и покупать товары, реализовав данное приложение как Интернет-магазин.
Список литературы
1. Анализ измерительных систем. MSA. Пер. с англ. Н. Новгород: АО НИЦ КД, СМЦ "Приоритет", 2012, изд. 2-е, исправленное. - 138с.
3. Борисов; Под общ. ред. Е.Я. Юдина - М.: Машиностроение, 2011. - 400с., 4. Галатенко В.А. Информационная безопасность - основы / Системы Управления Базами Данных, N1, 2004, с. 6-28.