Информационная система «Реализация готовой продукции»
В данном курсовом проекте было использовано ограничение ссылочной целостности, т. к. значения одних столбцов таблиц связаны со значениями других столбцов в другой таблице. В каждой из таблиц проектируемой базы данных использовались первичный и внешний ключи, содержащие уникальные значения столбцов. Благодаря обеспечению ссылочной целостности данных была исключена возможность дублирования записей… Читать ещё >
Информационная система «Реализация готовой продукции» (реферат, курсовая, диплом, контрольная)
Содержание Введение
1. Анализ предметной области
1.1 Назначение проектируемой базы данных
1.1.1 Требования к информации
1.1.2 Требования к надежности
1.1.3 Требования к составу и параметрам технических средств
2. Инфологическая (концептуальная) модель предметной области
2.1 Описание информационных объектов
2.2 Нормализация информационных объектов
3. Логическая модель данных
4. Физическая модель базы данных
4.1 Описание выбранной СУБД
4.2 Создание структуры БД в СУБД MS ACCESS
5. Программирование приложения
6. Описание работы с системой Заключение Список использованных источников Приложение
Введение
база данные информационная финансовая Большинство приложений, которые предназначены для выполнения хотя бы какой-нибудь полезной работы, тем или иным образом используют структурированную информацию или, другими словами, упорядоченные данные. Такими данными могут быть, например, списки заказов на тот или иной товар, списки предъявленных и оплаченных счетов или список телефонных номеров ваших знакомых. Обычное расписание движения автобусов в городе — это тоже пример упорядоченных данных.
При компьютерной обработке информации, упорядоченные каким-либо образом данные принято хранить в базах данных — особых файлах, использование которых вместе со специальными программными средствами позволяет пользователю как просматривать необходимую информацию, так и, по мере необходимости, манипулировать ею, например, добавлять, изменять, копировать, удалять, сортировать и т. д.
Цель курсового проекта — приобретение студентом практических навыков по формулированию требований к разрабатываемым базам данных и построению их моделей. Для ее достижения необходимо разработать структуру реляционной базы данных для информационной системы «Реализация готовой продукции». Эта система предназначена отслеживания финансовой стороны работы компании.
Объектом управления является процесс учета оптово-розничной продажей различных товаров.
Предметом исследования является модель информационной системы, отражающий процессы деятельности программного обеспечения для отслеживания деятельности компании, торгующей товарами из определенного спектра.
Цель управления состоит в создании модели информационной системы финансовой стороны работы компании.
Задачи данного курсового проекта:
Сформулировать и проанализировать исходные данные;
Построить инфологическую модель;
Построить логическую модель;
Спроектировать и построить в среде выбранной СУБД физическую компьютерную структуру данных.
1. Анализ предметной области Предметная область: Реализация готовой продукции.
Описание предметной области Вы работаете в компании, занимающейся оптово-розничной продажей различных товаров. Вашей задачей является отслеживание финансовой стороны работы компании.
Деятельность Вашей компании организована следующим образом: Ваша компания торгует товарами из определенного спектра. Каждый из этих товаров характеризуется наименованием, оптовой ценой, розничной ценой и справочной информацией. В Вашу компанию обращаются покупатели. Для каждого из них Вы запоминаете в базе данных стандартные данные (наименование, адрес, телефон, контактное лицо) и составляете по каждой сделке документ, запоминая наряду с покупателем количество купленного им товара и дату покупки.
Обычно покупатели в рамках одной сделки покупают не один товар, а сразу несколько. Также компания решила предоставлять скидки в зависимости от количества закупленных товаров и их общей стоимости.
База данных будет разработана в СУБД MS Access, как наиболее удобной и популярной. Содержание создаваемой базы данных не повлияет на её структуру и является примерным.
На первом этапе проектирования БД определяют: цель создания БД, ее функции и примерный перечень информации.
Целью создания БД «Реализация готовой продукции» является автоматизация финансовой стороны работы компании.
База данных должна отвечать требованиям тех, кто будет непосредственно с ней работать. Для этого нужно определить темы, которые должна покрывать база данных, отчеты, которые она должна выдавать, проанализировать формы, которые в настоящий момент используются для записи данных, сравнить создаваемую базу данных с хорошо спроектированной, подобной ей базой.
1.1 Назначение проектируемой базы данных Необходимо разработать базу данных для автоматизации учета оптово-розничной продажи различных товаров и их стоимости с учетом системы скидок.
Предполагается, что база данных должна хранить информацию о товарах, покупателях, сделках, скидках.
Определим функции, выполняемые проектируемой базы данных и задачи, решаемые системой.
Функции проектируемой БД:
хранение информации о товарах, хранение информации о покупателях, хранения информации о сделках, хранение информации о скидках;
обновление и добавление информации, выдача итоговой информации в виде отчетов.
1.1.1 Требования к информации Ниже приведенные таблицы можно изменять и дополнять непосредственно в базе данных.
Таблицы «Заказы», «Покупатели», «Товары» могут заполняться непосредственно в программном приложении либо в базе данных.
Для вывода информации на экран были разработаны специальные формы, упрощающие работу с записями таблиц базы данных.
Данная база данных предоставляет следующие возможности:
Просмотр интересующей информации в специальных формах.
Изменение информации, добавление новой.
Поиск информации по заданным критериям.
Ограничения представляют собой набор некоторых условий налагаемых на элементы базы данных (таблицы, столбцы и т. д.) или всю базу данных, гарантирующие, что информация будет подчиняться определенным правилам целостности данных.
В данном курсовом проекте было использовано ограничение ссылочной целостности, т. к. значения одних столбцов таблиц связаны со значениями других столбцов в другой таблице. В каждой из таблиц проектируемой базы данных использовались первичный и внешний ключи, содержащие уникальные значения столбцов. Благодаря обеспечению ссылочной целостности данных была исключена возможность дублирования записей в базе данных, обеспечено каскадное обновление, вставка и удаление записей базы данных.
1.1.2 Требования к надежности Защита базы данных от несанкционированного доступа осуществляется с помощью создания роли Администратора, которая используется для доступа к редактированию данных в приложении.
1.1.3 Требования к составу и параметрам технических средств Для успешной эксплуатации программного продукта необходим персональный компьютер со следующими характеристиками: процессор Intel Pentium с тактовой частотой 800 МГц и выше, оперативная память — не менее 256 Мбайт, свободное дисковое пространство — не менее 700 Мбайт, устройство для чтения компакт-дисков, монитор типа Super VGA (число цветов — 256) с диагональю не менее 15?, принтер.
2. Инфологическая (концептуальная) модель предметной области
2.1 Описание информационных объектов Все информационные объекты рассматриваемой предметной области поделены на следующие структурные элементы: информационные объекты, относящиеся к заказам: товары, покупатели, скидки.
Рассмотрим каждый из этих структурных элементов и выделим сущности.
Таблица 2.1. Сущности и их атрибуты
Сущность | Атрибут | Тип данных | |
Товары | КодТовара | Счетчик | |
Наименование | Текстовый | ||
Информация | Текстовый | ||
Опт | Текстовый | ||
Розница | Текстовый | ||
Покупатель | Код покупателя | Счетчик | |
Компания | Текстовый | ||
Контактное лицо | Текстовый | ||
Адрес | Текстовый | ||
Телефон | Текстовый | ||
Заказы | Номер заказа | Счетчик | |
Код товара | Числовой | ||
Код покупателя | Числовой | ||
Дата сделки | Дата/ Время | ||
Стоимость | Числовой | ||
Скидка | Числовой | ||
2.2 Нормализация информационных объектов Нормализацией называется формальная процедура, в ходе которой атрибуты данных группируются в таблицы, а таблицы группируются в базу данных (БД).
Результатами анализа проведенного в предыдущем разделе стали 3 сущности: Товары, Покупатель, Заказы. Каждая сущность характеризуется группой атрибутов, часть из которых может дублироваться в других сущностях. Для оптимизации данных необходимо провести процедуру нормализации, которая выполняется поэтапно.
Первая нормальная форма (1НФ). Для нее требуется, чтобы таблица была плоской и не содержала повторяющихся групп. У плоской таблицы есть только две характеристики — длина (количество записей или строк) и ширина (количество полей или столбцов). Такая таблица не должна содержать ячеек, включающих несколько значений. Т. е. в одну ячейку не должны помещаться несколько атрибутов.
Для приведения сущностей к таблицам первой нормальной форме, необходимо исключить дублирование множества характеристик между двумя сущностями, путем присвоения ключевых атрибутов тем сущностям, которые их не имеют. Так, например, для определения товара, принадлежащего сущности Заказы, нет необходимости дублировать характеристики сущности Товар, достаточно внести в атрибуты данной сущности ключевое поле: Код товара. Аналогичным образом по необходимости добавляются ключевые атрибуты к другим сущностям.
Для второй нормальной формы (2НФ) требуется, чтобы все поля таблицы зависели от первичного ключа, то есть, чтобы первичный ключ однозначно определял запись и не был избыточен. Значение первичного ключа в таблице БД должно быть уникальным, т. е. в таблице не должно существовать двух и более записей с одинаковым значением первичного ключа. Те поля, которые зависят только от части первичного ключа, должны быть выделены в составе отдельных таблиц. Примером приведение таблиц ко второй нормальной форме, является разделение сведений об покупателяхх в таблице Заказы.
Для третьей нормальной формы (ЗНФ) требуется, чтобы все не ключевые столбцы таблицы зависели от первичного ключа таблицы, но были независимы друг от друга. Для этого требуется, чтобы таблицы были приведены к 1НФ и 2НФ.
3. Логическая модель данных Следующий этап в создании информационной системы — проектирование информационных структур. Результатом этого должна стать логическая модель данных, представляющая собой графическое изображение структуры информационной системы: названия таблиц с именами входящих в них полей и типами связей между полями таблиц с данными.
С учетом требований к содержанию реляционных таблиц получен список полей для каждой таблицы. В построенной ER-диаграмме нет многозначных атрибутов и связей «многие ко многим».
Модель «сущность — связь» (МСС) (entity-relation diagram) является неформальной моделью предметной области и используется на этапе инфологического проектирования БД. Моделируются объекты предметной области и их взаимоотношения. В данном курсовом проекте представлена модель «сущность — связь» для сетевой базы данных «Реализация готовой продукции».
Рисунок 1 ER-диаграмма для базы данных «Реализация готовой продукции»
4. Физическая модель базы данных
4.1 Описание выбранной СУБД Реляционная база данных представляет собой множество взаимосвязанных таблиц, каждая из которых содержит информацию об объектах определенного типа.
Наиболее удобной и популярной системой управления базой данных (СУБД), которая позволит реализовать все необходимые задачи по разработке базы данных и программного приложения является продукт компании Microsoft — Access.
Microsoft Access является настольной СУБД реляционного типа. Достоинством Access является то, что она имеет очень простой графический интерфейс, который позволяет не только создавать собственную базу данных, но и разрабатывать простые и сложные приложения. В отличие от других настольных СУБД, Access хранит все данные в одном файле, хотя и распределяет их по разным таблицам.
Access позволяет не только вводить данные в таблицы, но и контролировать правильность вводимых данных. Для этого необходимо установить правила проверки прямо на уровне таблицы. Тогда каким бы образом не вводились данные — прямо в таблицу, через экранную форму или на странице доступа к данным, Access не позволит сохранить в записи те данные, которые не удовлетворяют заданным правилам.
Таблицы баз данных могут включать в себя огромное количество записей, и при этом СУБД обеспечивает удобные способы извлечения из этого множества нужной информации.
В Access возможно создание связей между таблицами, что позволяет совместно использовать данные из разных таблиц. При этом для пользователя они будут представляться одной таблицей.
Устанавливая взаимосвязи между отдельными таблицами, Access позволяет избежать ненужного дублирования данных, сэкономить память компьютера, а также увеличить скорость и точность обработки информации. Для этого таблицы, содержащие повторяющиеся данные, разбивают на несколько связанных таблиц.
Access может поддерживать одновременную работу с базой данных 50 пользователей, при этом все пользователи гарантировано будут работать с актуальными данными.
4.2 Создание структуры БД в СУБД MS ACCESS
На рисунках ниже представлены разработанные таблицы:
Рисунок 2 — Таблица «Товары»
Рисунок 3 — Таблица «Покупатели»
Рисунок 4 — Таблица «Заказы»
Схема базы данных формируется после окончания работы над макетами таблиц с помощью меню Сервис/Схема данных.
При формировании связей между таблицами обязательно устанавливается поддержка целостности данных Готовая схема базы данных приведена ниже:
Рисунок 5 — Схема данных
5. Программирование приложения Последовательность действий Создадим меню из нескольких форм. Для этого разместим на форме приложения компонент MainMenu и отредактируем его.
Организуем доступ к БД через ADOConnection, ADOTable, DataSource. Разместим следующие компоненты (Рис. 6):
Рисунок 6 — Компоненты Настройка компонентов:
AdoConnection:
свойство ConnectionString — открывается окно, в нем по нажатию кнопки Build выбираем Microsoft Jet 4.0v OLE DB Provider, потом по кнопке Next — выбираем нашу БД свойство Login Promt: False
свойство Connected: True
DataSource
свойство DataSet — выбираем соответствующий компонент AdoQuery;
Если всё сделано правильно, то после задания таблицы компонент DBGrid1 заполнится данными (рис. 7).
Рисунок 7 Приложение для просмотра таблицы базы данных Access
Для большего удобства при создании приложений баз данных реализовано добавление данных
void __fastcall TMainForm: menuAddGoodsClick (TObject *Sender)
{
Application->CreateForm (__classid (TGoodsForm), &GoodsForm);
GoodsForm->ShowModal ();
}
Рисунок 8
Поиск записей Для поиска записей использован методом Locate. К примеру, поиск будет производиться по заданному полю. Для поиска необходимо поместить на форму компонент для ввода критерия поиска и кнопку.
В обработчик события нажатия кнопки «Поиск» записываем:
void __fastcall TMainForm: btnSearchClick (TObject *Sender)
{
if (editSearch->Text.IsEmpty ())
return;
TLocateOptions Options;
Options.Clear ();
Options << loCaseInsensitive << loPartialKey;
if (!DataSource->DataSet->Locate (boxSearch->Text, editSearch->Text, Options))
MessageBoxA (Application->Handle, «По вашему запросу ничего не найдено!», «Поиск», MB_ICONINFORMATION);
}
Очистка базы данных происходит следующим образом:
void __fastcall TMainForm: menuClearBaseClick (TObject *Sender)
{
if (MessageBoxA (Application->Handle, «Вы действительно хотите очистить текущую базу?», «Подтверждение очистки», MB_ICONQUESTION + MB_YESNO) == IDNO)
return;
DataSource->DataSet->Edit ();
DataSource->DataSet->First ();
DataSource->DataSet->Delete ();
while (!DataSource->DataSet->Eof)
{
DataSource->DataSet->Delete ();
DataSource->DataSet->Next ();
}
}
6. Описание работы с системой Целью проведения испытаний является проверка работоспособности (надежности) программы при различных условиях ее функционирования.
Программа должна обеспечивать корректность ввода исходных данных (путем осуществления соответствующих проверок и информирования пользователя о возникших неточностях в работе), а также получение непротиворечивого результата.
Разрабатываемый интерфейс включает в себя средства редактирования всех используемых для расчета данных и является простым и понятным в работе для обычного пользователя.
При запуске программы появляется окно Рисунок 9 — Главное окно Главное окно, которое содержит
главное меню,
вкладки,
возможность поиска записей,
область отображения и редактирования данных (рис. 10−12):
Ввод данных максимально автоматизирован.
Рисунок 10
Рисунок 11
Рисунок 12
Редактирование (изменение, удаление) базы данных возможно только при правильной авторизации пользователя.
Рисунок 13
Кроме того, на формах предусмотрена возможность добавления покупателя, товара, заказа.
Поиск в программе работает корректно согласно предъявляемым требованиям.
В данном приложении организован диалог с пользователем в виде сообщений системы:
Рисунок 14
Рисунок 15
Рисунок 16
Программа содержит справочную информацию (рис. 17).
Рисунок 17
Таким образом, проведенное тестирование программы не выявило сбойных ситуаций и некорректностей в ее работе. Следует считать, что в целом программа протестирована, отвечает поставленным требованиям и вполне работоспособна.
Заключение
В ходе выполнения курсового проекта:
были закреплены знания по курсу «Представление знаний в информационных системах»;
приобретен опыт при проектировании и программировании баз данных;
приобретен опыт при разработке объектно-ориентированных программ;
освоены методы передачи данных между приложениями;
изучены возможности создания справочной системой высокой степени сложности и различных форматов.
Программа имеет достаточно ясный и понятый дружелюбный пользовательский интерфейс, обеспечивающий удобство в работе и обеспечивающий получение необходимой пользователю информации с наименьшими затратами времени.
Решены следующие задачи: возможность просматривать, редактировать, добавлять данные, получать результаты запросов. Так же обеспечена удобная работа для персонала организации. Следует отметить что:
при проектировании использовалась точка зрения самого разработчика;
среда разработкиMicrosoft Access и Borland C++ Builder.
Таким образом, разработанное в ходе выполнения курсовой работы приложение является законченным программным продуктом.
Программа может быть использована для отслеживания финансовой стороны работы компании — учета оптово-розничной продажей различных товаров.
Список использованных источников
Карпова Т. С. Базы данных. Модели, разработка, реализация/СПб.: Питер, 2002. — 304 с.
Хомоненко А.Д., Цыганков В. М., Мальцев М. Г. Базы данных. Учебник для ВУЗов /под ред. проф.А. Д. Хомоненко СПб.:КОРОНА принт, 2000. 416
Корнеев В.В. и др. Базы данных. Интеллектуальная обработка информации // М.:Нолидж, 2000. 352 с.
Ханcен Г., Ханcен Д. Базы данных. Разработка и управление/М.: Бином, 1999;704С.
Глушаков С.В., Ломотько Д. В. Базы данных. Учебный курс // Харьков: Фолио; Ростов н/Д: Феникс; Киев: Абрис, 2000. — 504 с.
Игорева, Е.Л., Основы алгоритмизации и программирования (3-е издание)./ И. И. Попов, О. Л. Игорева — М.: Инфа-М, 2006 — 432 с.
Приложение
#include
#pragma hdrstop
#include «Unit1.h»
#include «Unit2.h»
#include «Unit3.h»
#include «Unit4.h»
#include «Unit5.h»
//—————————————————————————————————————;
#pragma package (smart_init)
#pragma resource «*.dfm»
TMainForm *MainForm;
UnicodeString g_sBasePassword = «» ;
bool g_bEdit = false;
//—————————————————————————————————————;
__fastcall TMainForm: TMainForm (TComponent* Owner)
: TForm (Owner)
{
}
//—————————————————————————————————————;
void __fastcall TMainForm: TabControlChange (TObject *Sender)
{
switch (TabControl->TabIndex)
{
case 0 :
DataSource->DataSet = ADOTable1;
break;
case 1 :
DataSource->DataSet = ADOTable2;
break;
case 2 :
DataSource->DataSet = ADOTable3;
break;
}
if (TabControl->TabIndex == 1)
menuView->Enabled = false;
else
menuView->Enabled = true;
DBGrid->Columns->Clear ();
boxSearch->Clear ();
short iColWidth[3][6] = {70, 220, -1, 75, 75, 0, 90, 95, 100, 84, 70, 0, 80, -1, 90, 110, 99, 60};
for (int i = 0; i < DataSource->DataSet->FieldCount; i++)
{
boxSearch->Items->Add (DataSource->DataSet->Fields->Fields[i]->FieldName);
TColumn *Column;
Column = DBGrid->Columns->Add ();
Column->Field = DataSource->DataSet->Fields->Fields[i];
if (iColWidth[TabControl->TabIndex][i] == -1)
Column->Visible = false;
Column->Width = iColWidth[TabControl->TabIndex][i];
}
boxSearch->ItemIndex = 0;
}
//—————————————————————————————————————;
void __fastcall TMainForm: menuDeleteClick (TObject *Sender)
{
if (MessageBoxA (Application->Handle, «Вы действительно хотите удалить запись?», «Подтверждение удаления», MB_ICONQUESTION + MB_YESNO) == IDYES)
DataSource->DataSet->Delete ();
}
//—————————————————————————————————————;
void __fastcall TMainForm: menuExitClick (TObject *Sender)
{
if (MessageBoxA (Application->Handle, «Вы действительно хотите выйти?», «Выход из программы», MB_YESNO + MB_ICONQUESTION) == IDYES)
MainForm->Close ();
}
//—————————————————————————————————————;
void __fastcall TMainForm: menuHelpClick (TObject *Sender)
{
String a = ExtractFilePath (Application->ExeName)+" Справка. chm" ;
ShellExecuteW (Handle, L" open", a. c_str (), NULL, NULL, SW_NORMAL);
}
//—————————————————————————————————————;
void __fastcall TMainForm: menuAddGoodsClick (TObject *Sender)
{
Application->CreateForm (__classid (TGoodsForm), &GoodsForm);
GoodsForm->ShowModal ();
}
//—————————————————————————————————————;
void __fastcall TMainForm: menuAddBuyerClick (TObject *Sender)
{
Application->CreateForm (__classid (TBuyerForm), &BuyerForm);
BuyerForm->ShowModal ();
}
//—————————————————————————————————————;
void __fastcall TMainForm: btnSearchClick (TObject *Sender)
{
if (editSearch->Text.IsEmpty ())
return;
TLocateOptions Options;
Options.Clear ();
Options << loCaseInsensitive << loPartialKey;
if (!DataSource->DataSet->Locate (boxSearch->Text, editSearch->Text, Options))
MessageBoxA (Application->Handle, «По вашему запросу ничего не найдено!», «Поиск», MB_ICONINFORMATION);
}
//—————————————————————————————————————;
void __fastcall TMainForm: btnNewOrderClick (TObject *Sender)
{
Application->CreateForm (__classid (TOrderForm), &OrderForm);
OrderForm->ShowModal ();
}
//—————————————————————————————————————;
void __fastcall TMainForm: DBGridDblClick (TObject *Sender)
{
if (DataSource->DataSet == ADOTable1)
{
Application->CreateForm (__classid (TItemForm), &ItemForm);
ItemForm->ShowModal ();
}
if (DataSource->DataSet == ADOTable3)
{
AnsiString s = ADOTable3->FieldByName («Номер заказа»)->AsString + «.rtf» ;
ShellExecuteA (Handle," open", s. c_str (), NULL, NULL, SW_NORMAL);
}
}
//—————————————————————————————————————;
void __fastcall TMainForm: menuAboutClick (TObject *Sender)
{
MessageBoxA (Application->Handle, «Shop Manager — Красовский ДмитрийnГруппа ПОИТ-12, 2014», «О программе», MB_ICONINFORMATION);
}
//—————————————————————————————————————;
void __fastcall TMainForm: menuClearBaseClick (TObject *Sender)
if (MessageBoxA (Application->Handle, «Вы действительно хотите очистить текущую базу?», «Подтверждение очистки», MB_ICONQUESTION + MB_YESNO) == IDNO)
return;
DataSource->DataSet->Edit ();
DataSource->DataSet->First ();
DataSource->DataSet->Delete ();
while (!DataSource->DataSet->Eof)
{
DataSource->DataSet->Delete ();
DataSource->DataSet->Next ();
}
}
//—————————————————————————————————————;
void __fastcall TMainForm: N4Click (TObject *Sender)
{
if (InputQuery («Авторизация», «Введите пароль для доступа к базе данных», g_sBasePassword))
if (g_sBasePassword ≠ «qwerty»)
{
MessageBoxA (Application->Handle, «Неправильный пароль. Проверьте введенные данные и повторите попытку.», «Ошибка открытия файла», MB_ICONERROR);
return;
}
menuDelete->Enabled = true;
menuClearBase->Enabled = true;
menuEdit->Enabled = true;
}
//—————————————————————————————————————;
void __fastcall TMainForm: menuEditClick (TObject *Sender)
{
g_bEdit = true;
switch (TabControl->TabIndex)
{
case 0 :
Application->CreateForm (__classid (TGoodsForm), &GoodsForm);
GoodsForm->ShowModal ();
break;
case 1 :
Application->CreateForm (__classid (TBuyerForm), &BuyerForm);
BuyerForm->ShowModal ();
break;
case 2 :
Application->CreateForm (__classid (TOrderForm), &OrderForm);
OrderForm->ShowModal ();
break;
}
}