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

Тип работы:
Дипломная
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Министерство образования и науки

ФГБОУ ВПО Рязанский государственный радиотехнический университет

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

К квалификационной работе на степень бакалавра

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

Оглавление

Введение

1.1 Описание предметной области

1.2 Постановка задачи 8

2 Технико-экономическое обоснование

3 Теоретическая часть

3.1 Выбор СУБД (анализ выбора)

3.2 Выбор языка программирования

3.2.1 Borland Delphi

3.2.2 Borland C++ Builder

3.2.3 Microsoft Visual C#

3.2.4 Итог сравнения

3.3 Выбор системных программ (среда разработки)

4 Проектирование информационной системы

4.1 Разработка серверной части информационной системы

4.1.1 Инфологическое проектирование БД

4.1.2 Даталогическое проектирование БД

4.1.2 Разработка хранимых процедур и представлений

4.2 Разработка клиентской части информационной системы

4.2.1 Схема взаимодействия клиентского приложения с базой данных

4.2.2 Разработка форм

4.2.3 Разработка отчетов

4.2.4 Разработка дистрибутива

5 Разработка технической документации

5.1 Руководство оператора

5.1.1 Назначение программы

5.1.2 Условия выполнения программы

5.1.3 Установка приложения

5.1.4 Запуск программы

5.1.5 Описание интерфейса приложения

5.1.6 Работа с отчетами

5.1.7 Сообщения оператору

5.3 Руководство программиста

5.3.1 Назначение и условия применения программы

5.3.2 Обращение к программе

5.3.3 Описание входной информации

5.3.4 Описание выходной информации

5.3.5 Сообщения

6 Тестирование информационной системы

6.1 Программа и методика тестирования

6.1.1 Тестирование методом «белого ящика»

6.1.2 Тестирование методом «черного ящика»

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

Заключение

Список использованных источников

Введение

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

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

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

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

1.1 Описание предметной области

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

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

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

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

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

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

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

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

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

Основные задачи:

внесение новых, редактирование существующих данных о товарах;

хранение и добавление данных о движении товаров — закупках, продажах и возвратах;

поиск и просмотр необходимых данных.

Целесообразно представить ИС как совокупность следующих частей:

база данных, где содержится основной объём обрабатываемой информации;

клиентское приложение для работы с базой данных;

персональный компьютер, сочетающий серверную и клиентскую части БД;

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

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

на СУБД возлагаются функции хранения и упорядочивания данных, функции по поддержке целостности данных, а также функции архивирования данных для создания резервных копий;

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

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

2. Технико-экономическое обоснование

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

Основание разработки

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

Дата утверждения: 26. 03. 2012 г.

Организация, утвердившая документ: РГРТУ, кафедра ЭВМ.

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

3 Теоретическая часть

3.1 Выбор СУБД (анализ выбора)

Система управления базами данных (СУБД) -- это комплекс языковых и программных средств, предназначенный для создания, ведения и совместного использования БД многими пользователями. Обычно СУБД различают по используемой модели данных. Так, СУБД, основанные на использовании реляционной модели данных, называют реляционными СУБД.

Возможности, которые должна иметь СУБД, можно представить следующим образом:

СУБД должна воспринимать и обрабатывать команды пользователей и приложений на выборку, изменение, добавление или удаление данных. Таким образом, в СУБД должен быть компонент, отвечающий за выполнение этих действий, — специальный язык обработки данных. Чаще всего этим языком является язык SQL;

СУБД должна иметь возможность принимать данные в исходной форме из различных по своей природе источников и преобразовывать их в форму, соответствующую собственным объектам;

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

В СУБД должен входить компонент, хранящий сведения обо всех объектах, которыми оперирует данная СУБД, и связях между ними, а также сведения о самой СУБД, например, об используемой ею памяти, активных соединениях и т. д. ;

Желательно, чтобы в СУБД были реализованы механизмы оптимизации, обеспечивающие максимальную эффективность выполнения всех функций СУБД.

СУБД классифицируются:

По модели данных:

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

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

Реляционная модель данных. В реляционных базах данных вся информация представляется в виде двумерных таблиц. Реляционная модель опирается на систему понятий реляционной алгебры, важнейшими из которых являются «таблица», «отношение», «строка», «первичный ключ». Все операции над реляционной базой данных сводятся к манипуляциям с таблицами. Таблица состоит из строк и столбцов и имеет имя, уникальное внутри базы данных. Таблица отражает тип объекта реального мира (сущность), а каждая ее строки (кортеж) — конкретный объект. Достоинство реляционной модели данных заключается в простоте, понятности и удобстве физической реализации на ЭВМ. Основными недостатками реляционной модели являются следующие: отсутствие стандартных средств идентификации отдельных записей и сложность описания иерархических и сетевых связей.

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

По способу доступа:

Файл-серверные

В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. СУБД располагается на каждом клиентском компьютере (рабочей станции). Доступ СУБД к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок. Преимущество: низкая нагрузка на ЦП сервера. Недостатки: потенциально высокая загрузка локальной сети; затруднённость централизованного управления; затруднённость обеспечения таких важных характеристик как высокая надёжность, высокая доступность и высокая безопасность. Применяются чаще всего в локальных приложениях, которые используют функции управления БД.

На данный момент файл-серверная технология считается устаревшей.

Клиент-серверные

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

Встраиваемые

Встраиваемая СУБД (англ. embedded DBMS) -- СУБД, которая может поставляться как составная часть некоторого программного продукта, не требуя процедуры самостоятельной установки. Встраиваемая СУБД предназначена для локального хранения данных своего приложения и не рассчитана на коллективное использование в сети. Физически встраиваемая СУБД чаще всего реализована в виде подключаемой библиотеки.

Проанализировав задачу, приходим к следующим выводам:

Для разрабатываемой ИС наиболее подходит реляционная модель данных

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

Так как разрабатываемая система предназначена для использования сравнительно небольшим кругом лиц, большая часть которых не имеет технического образования, то СУБД для разработки программного обеспечения должна быть выбрана с учетом характеристик отказоустойчивости, защиты и простоты использования (администрирования). Данным требованиям в большей степени удовлетворяет СУБД MS SQL Server 2005.

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

3.2 Выбор языка программирования

При выборе системы программирования для разработки программного обеспечения нужно обратить внимание на то, что система должна обеспечивать наиболее простой, доступный и надежный способ взаимодействия с выбранной СУБД MS SQL Server 2005.

3.2.1 Borland Delphi

Система программирования Borland Delphi явилась логическим продолжением и дальнейшим развитием идей, заложенных компанией-разработчиком еще в системе программирования Turbo Pascal.

Компания Borland попыталась учесть все недостатки существующих языков объектно-ориентированного программирования, а также свой опыт создания языка Borland Pascal. Новый язык вышел довольно удачным, как с точки зрения синтаксиса, так и с точки зрения предоставляемых возможностей. Этот язык поддерживает практически все основные механизмы объектно-ориентированного программирования.

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

Для поддержки разработки результирующих программ для архитектуры клиент-сервер в состав Borland Delphi входит средство BDE. Оно обеспечивает результирующим программам возможность доступа к широкому диапазону серверов БД посредством классов библиотеки VCL. Посредством BDE результирующая программа может взаимодействовать с серверами БД типа Microsoft SQL Server, InterBase, Sybase, Oracle и т. п. Система программирования Borland Delphi поддерживает также создание результирующих программ, выполняющихся в архитектуре клиент-сервер, на базе других технологий, например ADO.

3.2.2 Borland C++ Builder

Система программирования Borland C++ Builder объединила в себе идеи интегрированной среды разработки, реализованные компанией в системах программирования Turbo Pascal и Borland Delphi с возможностями языка программирования C++.

Современная реализация Borland C++ Builder ориентирована на разработку результирующих программ, выполняющихся под управлением ОС Microsoft Windows всех типов. Сама система программирования Borland C++ Builder, как и Borland Delphi, также функционирует под управлением ОС типа Microsoft Windows. Она полностью поддерживает стандарт языка C, что делает возможным создание с помощью данной системы программирования модулей и библиотек, используемых в других средствах разработки.

По возможностям, внешнему виду и технологиям система программирования Borland C++ Builder схожа с системой программирования Borland Delphi. В ее основу положены те же основные идеи и технологии. Структура классов языка C++ в системе программирования Borland C++ Builder построена в той же библиотеке VCL, в которой строится структура классов Object Pascal в системе программирования Borland Delphi. Правда, разработчик, создающий программы на C++, может не пользоваться классами VCL и взять за основу любую другую библиотеку, чего нельзя сказать о разработчике, использующем Object Pascal, набор доступных библиотек для последнего языка сильно ограничен.

Успешное распространение систем программирования Turbo Pascal и Borland Delphi способствовало и внедрению на рынок системы программирования Borland C++ Builder от той же компании-разработчика. Эта система программирования занимает прочную позицию на рынке средств разработки для языка C++, где существует довольно жесткая конкуренция.

3.2.3 Microsoft Visual C#

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

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

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

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

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

Удобные языковые конструкции, такие как операторы foreach и using, повышающие производительность разработчика.

В отличие от систем программирования компании Borland, система программирования Microsoft Visual C# ориентирована на использование стандартных средств хранения и обработки ресурсов интерфейса пользователя в ОС Windows. Microsoft Visual C# обеспечивает все необходимые средства для создания профессиональных WINDOWS-приложений.

3.2.4 Итог сравнения

В качестве языка программирования был выбран Microsoft Visual C# - инструмент быстрой разработки клиент-серверных приложений.

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

Высокая производительность и поддержка различных серверов баз данных превращают Microsoft Visual C# в идеальное решение для создания систем, использующих серверы баз данных разных производителей, и разработки надежных приложений, способных работать с разнородными серверами баз данных.

3.3 Выбор системных программ (среда разработки)

В качестве среды разработки была выбора ОС Windows XP. Выбор обусловлен тем, что именно эта ОС используется в рассматриваемом магазине.

4. Проектирование информационной системы

В данном проекте применена клиент-серверная архитектура с применением двухзвенной модели DBS (DateBase Server — сервер баз данных). Для этой модели характерно, что функции компьютера клиента ограничиваются функциями представления информации, в то время как прикладные функции обеспечиваются приложением, находящемся на компьютере сервере. При этом обработка информации реализуется в виде хранимых процедур.

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

Рисунок 1. Двухзвенная модель архитектуры клиент-сервер.

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

4.1 Разработка серверной части информационной системы

4.1.1 Инфологическое проектирование БД

4.1.1.1 Выявление сущностей и связей

Основные понятия:

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

Атрибутом сущности называют свойство объекта.

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

Экземпляром сущности называют экземпляр объекта соответствующего вида.

Связь между сущностями показывает взаимоотношения между объектами предметной области.

После анализа предметной области можно выявить её сущности и их потенциальные ключи:

Товары — содержит сведения о товарах, находящихся в ассортименте. Потенциальный ключ: Артикул

Продажи — cодержит информацию о продажах. Потенциальный ключ: Номер продажи, Артикул проданного товара.

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

Акции — Потенциальный ключ: Код акции.

Закупки — сведения о осуществленных закупках. Потенциальный ключ: Номер закупки

Поставщики — информация о поставщиках. Потенциальный ключ: Наименование поставщика

Склады — список используемых складов. Потенциальный ключ: номер филиала

Виды товаров — сведения о видах товаров и соответствующей наценке. Потенциальный ключ: код типа товара

Пользователи — информация о пользователях системы. Потенциальный ключ: логин.

Выявление связей

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

1) Связь «Является» представлена на рисунке 2.

Рисунок 2. Связь «Является».

Товар принадлежит определённому типу, причём только одному. В магазине может продаваться несколько однотипных товаров. Следовательно, имеет место связь N.1. Товары какого-либо типа могут отсутствовать в магазине. Следовательно, для связи «Товар — Тип товара» будет использоваться кардинальность 1,1, а для связи «Тип товара > Товар» — 0, N.

2) Связь «Продан» представлена на рисунке 3.

Рисунок 3. Связь «Продан».

Товар может быть продан, причём несколько раз. Следовательно, имеет место связь 1.N. Продажа может содержать только один данный товар, а товар может быть не продан ни разу. Следовательно, для связи «Товары — Продажи» будет использоваться кардинальность 0, N, а для связи «Продажи > Товары» — 1,1.

3) Связь «Закупается» представлена на рисунке 4.

Рисунок 4. Связь «Закупается».

При необходимости товар может быть закуплен, причём несколько раз. Следовательно, имеет место связь 1.N. Необязательно, что товар был закуплен хотя бы один раз, но закупка обязательно содержит тот или иной товар. Следовательно, для связи «Товар > Закупки» будет использоваться кардинальность 0, N, а для связи «Закупки > Товар» — 1,1.

4) Связь «Находится» представлена на рисунке 5.

Рисунок 5. Связь «Находится».

Товар может находиться на каком-либо складе (филиале магазина), причём не обязательно только на одном. На складе могут храниться различные товары. Следовательно, имеет место связь N.N. Необязательно, что товар присутствует хотя бы на одном складе, а на складе может не храниться ни одного товара. Следовательно, для связи «Товары > Склады» будет использоваться кардинальность 0, N, а для связи «Склады > Товары» — 0, N.

5) Связь «Участвует в акции» представлена на рисунке 6.

Рисунок 6. Связь «Участвует в акции».

Товар может участвовать в какой-либо акции, причём не обязательно только в одной. В акции же могут участвовать различные товары. Следовательно, имеет место связь N.N. Необязательно, что товар участвует хотя бы в одной акции, а акция может не содержать ни одного товара. Следовательно, для связи «Товары > Акции» будет использоваться кардинальность 0, N, а для связи «Акции > Товары» — 0, N.

6) Связь «Поставляют» представлена на рисунке 7.

Рисунок 7. Связь «Поставляют».

У одного поставщика может осуществляться несколько закупок, но одну закупку может поставлять только одни поставщик. Следовательно, имеет место связь 1.N. Необязательно, что поставщик осуществил хотя бы одну поставку. Но закупка обязательно закупается у какого-либо поставщика. Следовательно, для связи «Поставщики > Закупки» будет использоваться кардинальность 0, N, а для связи «Закупки > Поставщики» — 1,1.

7) Связь «Возвращается» представлена на рисунке 8.

Рисунок 8. Связь «Возвращается».

Проданный товар может быть возвращён, причём один раз. Следовательно, имеет место связь 1.1. Возврат может содержать только одну данную продажу, а возврат может быть не осуществлён ни разу. Следовательно, для связи «Продажи — Возвраты» будет использоваться кардинальность 0,1, а для связи «Возвраты > Продажи» — 1,1.

4.1.1.2 Выявление атрибутов сущностей. Назначение первичных ключей

Товары — Атрибуты: артикул, наименование, тип товара, цена, фотография. Первичный ключ: Артикул

Продажи — Атрибуты: номер продажи, артикул, дата продажи, количество, цена. Первичный ключ: Номер продажи, Артикул проданного товара.

Возвраты — Атрибуты: номер продажи, артикул, причина. Первичный ключ: Код продажи, код проданного товара

Акции — Атрибуты: код акции, название, дата начала, дата окончания. Первичный ключ: Код акции.

Закупки — Атрибуты: номер закупки, артикул, поставщик, цена, дата. Первичный ключ: Номер закупки

Поставщики — Атрибуты: наименование, представитель, телефон. Первичный ключ: Наименование поставщика

Склады — Атрибуты: номер склада, адрес, телефон. Первичный ключ: номер склада

Виды товаров — Атрибуты: код группы товаров, наименование группы, наценка. Первичный ключ: код группы товаров

Пользователи — Атрибуты: логин, роль, пароль. Первичный ключ: логин.

4.1.1.3 Построение ER-диаграммы

В результате выявления сущностей и связей между ними получаем ER-диаграмму, представленную на рисунке 9. Диаграмма были построены с помощью пакета Sybase.

Американская компания Sybase, наряду с Oracle, Rational Software и рядом других, предлагает интегрированные инструменты, решающие задачи даталогического и инфологического проектирования. Продукт Sybase PowerDesigner является средством моделирования, проектирования, документирования и управления проектом. PowerDesigner успешно взаимодействует с СУБД и средствами разработки приложений других производителей.

б)

Рисунок 9 — ER-диаграмма для предметной области «магазин интерьерных товаров»

4.1.2 Даталогическое проектирование БД

4.1.2.1 Переход от ER-диаграммы к предварительным отношениям

Переход от ER-диаграммы к предварительным отношениям осуществляется с помощью следующих правил:

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

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

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

Если степень связи 1: N и класс принадлежности n-связной сущности обязательный, то необходимы два отношения: по одному для каждой сущности. Ключами этих отношений станут ключи каждой сущности. Ключ односвязной сущности добавится как атрибут в отношение для n-связной сущности.

Если степень связи 1: N и класс принадлежности n-связной сущности необязательный, то необходимы три отношения: по одному для каждой сущности и одно для связи. В отношении для связи для связи атрибутов должны быть ключи каждой сущности. Ключами первых двух отношений будут ключи сущностей, а ключом третьего — ключ n-связной сущности.

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

Так как используется CASE-средство проектирования баз данных Sybase PowerDesigner, то переход от концептуальной модели данных к предварительным отношениям (логической модели данных) осуществляется автоматически.

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

Рисунок 10. Предварительные отношения

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

4.1.2.2 Заполнение предварительных отношений атрибутами

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

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

4.2.1.3 Проверка предварительных отношений на соответствие нормальным формам

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

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

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

Рассмотрим процесс нормализации и перевода отношений:

Отношение находится в 1НФ, если в нем каждое значение, стоящее на пересечении строки и столбца, не расчленяемо на несколько значений.

Отношения находятся в 1НФ по определению. Если таблица является отношением, то она находится в 1НФ.

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

Если потенциальный ключ отношения является простым, то отношение автоматически находится в 2НФ.

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

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

Если в отношении всего один потенциальный ключ, то отношение, находящееся в 3НФ, одновременно находится и в БКНФ.

3НФ является достаточной при решении большинства практических задач, и процесс проектирования реляционной базы данных, как правило, заканчивается приведением к ней.

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

Отношение «Товар»

Рисунок 12. Диаграмма функциональных зависимостей для отношения «Товар».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Продажа».

Рисунок 13. Диаграмма функциональных зависимостей для отношения

«Продажа».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Возврат»

Рисунок 14. Диаграмма функциональных зависимостей для отношения «Возврат».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Закупки»

Рисунок 15. Диаграмма функциональных зависимостей для отношения «Закупки».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Акции и скидки»

Рисунок 16. Диаграмма функциональных зависимостей для отношения «Акции и скидки».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Поставщики»

Рисунок 17. Диаграмма функциональных зависимостей для отношения «Поставщики».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Тип товара»

Рисунок 18. Диаграмма функциональных зависимостей для отношения «Тип товара».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Участие в акции»

Рисунок 19. Диаграмма функциональных зависимостей для отношения «Участие в акции».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Склады»

Рисунок 20. Диаграмма функциональных зависимостей для отношения

«Склады».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Размещение товаров»

Рисунок 22. Диаграмма функциональных зависимостей для отношения

«Размещение товаров».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

Отношение «Пользователи»

Рисунок 23. Диаграмма функциональных зависимостей для отношения «Пользователи».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

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

4.2.1.4 Построение схемы данных

Так как используется CASE-средство проектирования баз данных Sybase PowerDesigner, то переход от логической модели данных к физической модели данных осуществляется автоматически.

Для задания типов данных для полей таблиц были использованы стандартные средства CASE-средства проектирования баз данных Sybase PowerDesigner. Все типы данных были выбраны исходя из предъявляемых к ним требований.

Рисунок 24 — Физическая модель данных

На основе разработанной физической модели данных произведена генерация SQL-скрипта для создания базы данных с помощью стандартных средств системы проектирования баз данных Sybase PowerDesigner.

Текст сгенерированного SQL — скрипта приведён в приложении 2.

Схема базы данных в SQL Server, полученная в результате проектирования, изображена на рисунке 25.

Рисунок 25 — Схема данных

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

4.1.2 Разработка хранимых процедур и представлений

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

Хранимая процедура — последовательность SQL-операторов, хранимых и выполняемых на сервере.

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

Основные процедуры, необходимые для ведения базы данных, представлены в таблице 1.

Таблица 1. Хранимые процедуры

Название процедуры

Параметры

Описание

AddAct

@ID int,

@Desc varchar (100),

@Disc float,

@StartDate datetime,

@EndDate datetime

Добавление новой акции

AddGood

@ID int,

@name varchar (100),

@typename varchar (100), @agename varchar (100),

@price money,

@img image = null

Добавление нового товара

AddGoodAct

@Act varchar (100),

@Code int

Добавление товара в акцию

AddPur

@GID int,

@SID varchar (100),

@Cnt int,

@p money,

@d datetime

Добавление закупки

AddSup

@ID int,

@name varchar (100),

@repr varchar (100),

@addr varchar (100),

@phone varchar (100)

Добавление нового поставщика

AddUser

@log varchar (100),

@pas varchar (100),

@role int

Добавление пользователя

DelAct

@ID int

Удаление акции

DelGood

@ID int

Удаление товара

DelGoodAct

@ID int

Удаление товара из акции

DelPur

@PID int

Удаление закупки

NewReturn

@SaleID int,

@GoodID int,

@RetData datetime,

@couse varchar (100)

Оформить возврат

NewSale

@SaleID int,

@GoodID int,

@WarehouseID int,

@SaleDate datetime,

@count int

Оформить новую продажу

UpdGood

@ID int,

@name varchar (100),

@price money,

@img image = null

Обновление информации о товаре

UpdSup

@ID int,

@name varchar (100),

@repr varchar (100),

@addr varchar (100),

@phone varchar (100)

Обновление информации о поставщике

UpdUser

@log varchar (100),

@pas varchar (100),

Обновление информации о пользователе

Таблица 2. Представления

Название

Описание

ActiveActions

Представляет информацию о текущих ациях

Goods_SumDiscounts

Представляет информацию о товарах и скидках на них

Goods_User

Выводит совокупную информацию о товарах для покупателя

Goods_User_temp_all

Выводит суммарную совокупную информацию о товарах для продавца

Goods_User_w1

Выводит совокупную информацию о товарах на первом складе для продавца

Goods_User_w2

Выводит совокупную информацию о товарах на втором складе для продавца

Saler_Actions

Выводит совокупную информацию о текущих акциях

Saler_Sales

Выводит информацию о продажах

4.2 Разработка клиентской части информационной системы

4.2.1 Схема взаимодействия клиентского приложения с базой данных

Приложение разрабатывалось в среде Microsoft Visual C#. Взаимодействие с БД осуществляется с помощью технологии ADO. NET.

В ADO. NET можно создавать и управлять соединениями, используя объекты соединения (connection objects):

* SqlConnection — объект, который управляет соединением к MS SQL Server 7.0 и выше, определен в пространстве имен System. Data. SqlClient;

* OleDbConnection — объект, который управляет соединением к любым хранилищам данных, доступных через технологию OLE DB, определен в пространстве имен System. Data. OleDb;

* OdbcConnection — объект, который управляет соединением к любым базам данных, доступных через технологию ODBC, определен в пространстве имен System. Data. Odbc;

* OracleConnection — объект, который управляет соединением к базам данных Oracle, определен в пространстве имен System. Data. Oracle.

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

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

Отчёты создаются с использованием технологии Crystal Report.

Соединение с базой данных осуществляется с помощью провайдера Microsoft. NET Framework Data Provider for SQL Server.

4.2.2 Разработка форм

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

При запуске появится диалоговое окно с предложением ввести логин и пароль и тем самым выбрать необходимый уровень доступа (рисунок 26)

Рисунок 26 — Окно выбора прав доступа

В программе предусмотрено три уровня доступа:

Администратор — может изменять информацию о товарах, поставщиках, закупках, акциях и товарах по акциям.

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

Пользователь — может просматривать товары и формировать предварительный список товаров для покупки.

В зависимости от выбора пользователя откроется главное окно работы с теми или иным разделами ИС. Все эти окна имеют схожую общую структуру. В качестве примера рассмотрим окно администратора (см. рисунок 27).

Рисунок 27 — Окно администратора

Практически каждое главное окно приложения имеет главное меню. Для создания главного меню был использован компонент MenuStrip.

Левая часть главных окон работы с разделами ИС отведена под таблицы, в которых отображаются данные в процессе работы с системой. Таблицы созданы с помощью компонента DataGridView, а в правой располагаются элементы поиска, управления и модификации данных. Для этих целей используются компонентыcomboBox, TextBox и Batton.

Все таблицы и соответствующие им элементы управления сгруппированы по вкладками.

Программа содержит 11 форм. Опишем основные из них.

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

Затем выводится форма для авторизации пользователя BeginConnect. Она содержит следующие компоненты:

txtLogin — поле для ввода логина

txtPassword — поле для ввода пароля

btnOK — кнопка для подтверждения введенных данных

btnUser — кнопка для входа в программу без пароля

btnClose — кнопка для выхода из программы.

Форма представлена в файлах: BeginConnect. cs, BeginConnect. Designer. cs, BeginConnect. resx.

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

Форма администратора

Форма содержит несколько вкладок.

Вкладка «Товары» включает следующие компоненты:

dgAdmin_Goods — таблица для вывода информации о товарах

cbWH — выбор филиала магазина

btnShowPhoto — для просмотра фотографии товара

button1 — закрытие формы администратора

tcGoods — панель с вкладками, каждая из которых предназначена для реализации какого-либо действия администратора при работе с товарами (добавление, удаление, обновление, перемещение и поиск).
Вкладка «Добавить» обеспечивает возможность добавления товара и содержит компоненты:

label1 с текстом «Код: «

label5 с текстом «Наименование: «

label2 с текстом «Тип товара: «

label4 с текстом «Цена: «

label28 с текстом «Изображение: «

mtbAdd_Code — для ввода артикула

txtAdd_Name — для ввода наименования

cbAdd_Type — для выбора типа товара

mtbAdd_Price — для ввода цены

btnSelImageAdd — кнопка для вывода диалога открытия файла

txtImagePathAdd — для отображения полного имени выбранного изображения

btnAddGood — добавить товар

Вкладка «Удалить» обеспечивает возможность удаления товара и содержит компоненты:

label13 с текстом «Артикул: «

mtbCodeDel — для ввода артикула

btnDelGood — удалить товар

Вкладка «Переместить» обеспечивает возможность перемещения товара со склада на склад и содержит компоненты:

label36 с текстом «Артикул: «

mtbCodeMove — для ввода артикула

tbxMoveWarID — для ввода количества товара

cbMoveWarID — на какой склад перевести товар с центрального

btnMovelGood — переместить товар

Вкладка «Обновить» обеспечивает обновление информации о товаре и содержит компоненты:

label6 с текстом «Наименование: «

label7 с текстом «Цена: «

label32 с текстом «Изображение: «

txtUpd_Good — для ввода наименования

txtUpd_Pr — для ввода цены

btnSelImageUpd — кнопка для вывода диалога открытия файла

txtImagePathUpd — для отображения полного имени выбранного изображения

btnUpd — обновить информацию о товаре

Вкладка «Поиск» обеспечивает поиск товара по заданным критериям (наименование, тип, количество) и содержит компоненты:

label29 с текстом «Наименование: «

label30 с текстом «Тип товара: «

label29 с текстом «Количество: «

txtSearchName — для ввода наименования

txtCountSearch — для ввода условия количества

cbSearchType — для выбора типа товара

cbCountSearch — для выбора условия фильтрации количества (больше, меньше, равно)

btnSearch — кнопка поиска

btnSearchReset — сброс параметров поиска

Вкладка «Поставщики» включает следующие компоненты:

dgAdmin_Suppliers — таблица для вывода информации о поставщиках

button2 — закрытие формы

tcSupp — панель с вкладками, каждая из которых предназначена для реализации какого-либо действия администратора при работе с информацией о поставщиках (добавление, просмотр, обновление).
Вкладка «Просмотреть» обеспечивает возможность поиска сведений о поставщиках и просмотра информации о поставках. На ней расположены следующие компоненты:

label35 с текстом «Наименование: «

tbSupName — для ввода имени поставщика

btnSupInfo — кнопка для вывода формы SupInfo, обеспечивающей просмотр информации о поставках выбранного поставщика

btnSupGoodInfo — кнопка для вывода формы SupGoodInfo, обеспечивающей просмотр информации о товарах поставщика

tbSupGType — обеспечивает просмотр информации о поставщиках выбранного типа товара.

Вкладка «Добавить» обеспечивает добавление новых поставщиков и содержит компоненты:

label8 с текстом «Номер: «

label9 с текстом «Наименование: «

label10 с текстом «Представитель: «

label11 с текстом «Адрес: «

label12 с текстом «Телефон: «

txtNameSuppAdd — для ввода наименования поставщика

txtReprSuppAdd — для ввода фамилии и инициалов представителя

txtAddrSuppAdd — для ввода адреса

txtPhoneSuppAdd — для ввода телефона

btnAddSup — кнопка для добавления поставщика

Вкладка «Обновить» содержит аналогичные компоненты и обеспечивает возможность изменения информации о каком-либо поставщике

Вкладка «Закупки» обеспечивает добавление и просмотр закупок и включает следующие компоненты:

dgAdmin_Purch — таблица для отображения информации о закупках

label23 с текстом «Артикул: «

label24 с текстом «Номер склада: «

label25 с текстом «Номер поставщика: «

label26 с текстом «Количество: «

label27 с текстом «Закупочная цена: «

mtbPurGoodID — для ввода артикула

mtbPurSupID — для ввода номера поставщика

mtbPurCnt — для ввод количества

mtbPurPrice — для ввода цены

btnAddPur — добавить закупку

button3 — закрытие формы

Вкладка «Товары по акции» обеспечивает управление и просмотр товаров, участвующих в акциях, и включает компоненты:

dgAdmin_Actions — таблица для отображения информации о товарах, участвующих в акциях

cbAdmin_Actions — для выбора акции

label19 с текстом «Артикул: «

mtbCodeGoodAct — для ввода артикула

btnAddGoodAct — кнопка для добавления товара в акцию

btnDelGoodAct — кнопка для удаления товара из акции

button4 — кнопка закрытия формы

Вкладка «Акции» отвечает за отображение и управление акциями и включает компоненты:

dgAdmin_Act — таблица для отображения информации об акциях

label20 с текстом «Номер акции: «

label21 с текстом «Описание: «

label22 с текстом «Скидка: «

label34 с текстом «Дата начала: «

label33 с текстом «Дата окончания: «

mtbAddAdmActID — для ввода номера акции

txtAdmActDesc — для ввода описания

txtAdmActDisc — для ввода скидки

mtbStartDate — для ввода даты начала действия акции

mtbEndDate — для ввода даты окончания действия акции

btnAddAct — кнопка для добавления акции

txtSearchAct — поле ввода данных для поиска

btnSearchAct — кнопка для поиска

btnFindClear — кнопка для сброса параметров поиска

button6 — кнопка закрытия формы

Вкладка «Группы товаров» обеспечивает управление и редактирование группами товаров и наценками и включает компоненты:

dgAdmin_GTypes — таблица для отображения информации о группах товаров

button4 — кнопка закрытия формы

tcGTypes — панель с вкладками
Вкладка «Добавить» обеспечивает добавление новых групп и содержит компоненты:

label18 с текстом «Код: «

label19 с текстом «Наименование: «

label12 с текстом «Наценка: «

txtGTypeID- для ввода кода группы товаров

txtGTypeName — для ввода наименования группы товаров

txtGTypeMargin — для ввода наценки

btnAddSup — кнопка для добавления группы

Вкладка «Обновить» содержит аналогичные компоненты и обеспечивает возможность изменения информации о группе

Вкладка «Пользователи» обеспечивает управление и редактирование учётных записей пользователей и включает компоненты:

dgAdmin_Users — таблица для отображения информации о пользователях

button5 — кнопка закрытия формы

tcUsers — панель с вкладками
Вкладка «Добавить» обеспечивает добавление новых пользователей и содержит компоненты:

label48 с текстом «Логин: «

label49 с текстом «Пароль: «

label42 с текстом «Роль: «

txtLogin- для ввода логина

txtPas — для ввода пароля

сbGTypeMargin — для выбора роли (администратор, продавец)

btnAddUser — кнопка для добавления группы

Вкладка «Обновить» содержит аналогичные компоненты и обеспечивает возможность изменения информации о пользователе.

Форма администратора представлена в файлах: Admin. cs, Admin. Designer. cs, Admin. resx.

Форма продавца

Форма содержит несколько вкладок.

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

dgSaler_Goods_User — таблица для вывода информации о товарах

label7 с текстом «Поиск товара»

btnPrintGoods — кнопка для печати информации о товарах

label3 с текстом «Наименование: «

label1 с текстом «Тип товара: «

txtSaler_Name — для ввода наименования

cbSaler_Type — для выбора типа товара

btnSaler_Find — кнопка для поиска

btnSaler_Clear — кнопка для сброса параметров поиска

label4 с текстом «Выберите филиал: «

wareHouses — для выбора филиала

btnShowImage — кнопка для вывода фотографии товара

btnSaler_Close1 — кнопка закрытия формы

Вкладка «Продажи» обеспечивает просмотр информации о продажах и добавление новых продаж. Она включает следующие компоненты:

dgSaler_Sales — таблица для вывода информации о продажах

btnSaler_AddSale — кнопка для вызова формы Basket, которая обеспечивает формирование продажи

btnSaler_Close2 — кнопка закрытия формы

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

label5 с текстом «Введите код продажи для возврата: «

label9 с текстом «Введите Артикул для возврата: «

label6 с текстом «Причина: «

tbReturnName — для ввода кода продажи

tbGoodID — для ввода артикула

tbCouse — для ввода причины возврата

btnReturn — кнопка для реализации возврата

button1 — кнопка закрытия формы

Вкладка «Текущие акции» обеспечивает возможность просмотра действующих акций и товаров, участвующих в них. На ней расположены следующие компоненты:

dgSaler_Actions — таблица для вывода информации об акциях

label8 с текстом «Выберите акцию»

cb_Actions — для выбора акции

button2 — кнопка закрытия формы

Форма продавца представлена в файлах: Saler. cs, Saler. Design. cs, Saler. resx.

Форма для формирования корзины товаров

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

Форма включает следующие компоненты:

dataGridView1 — таблица для отображения товаров, имеющихся на складе

dataGridView2 — таблица для отображения товаров, выбранных пользователем

label7 с текстом «Поиск товара»

label3 с текстом «Наименование: «

label1 с текстом «Тип товара: «

label4 с текстом «Корзина товаров»

label5 с текстом «Сумма: «

label6 с текстом «руб. «

txtBasket_Name — для ввода наименования товара

ПоказатьСвернуть
Заполнить форму текущей работой