Диплом: Автоматизация процесса приема и идентификации поступившей продукции в АО "Кодекс"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
54
данных, хранимых в памяти вычислительной системы в виде файлов, с помощью
которых удовлетворяются информационные потребности управленческих
процессов и решаемых задач. [1]
Существуют следующие способы организации информационной базы:
совокупность локальных файлов, поддерживаемых функциональными пакетами
прикладных программ, и интегрированная база данных, основанная на
использовании универсальных программных средств загрузки, хранения, поиска
и ведения данных, то есть системы управления базами данных (СУБД).
Локальные файлы обеспечивают более быстрое время обработки
данных, однако при таком способе организации ИБ в информационной системе
наблюдается высокая степень дублирования данных, несогласованность данных,
отсутствие гибкости доступа к информации. Интегрированная база данных – это
совокупность взаимосвязанных, хранящихся вместе данных при такой
минимальной избыточности, которая допускает оптимальное их использование в
различных приложениях.
Для решения поставленной задачи требуется интегрированная база
данных, в которой взаимосвязаны данные, поступающие как с участка приемки,
так и с участка отгрузки склада.
Основными способами организации БД являются создание
централизованных и распределенных БД. [4] В рассматриваемой задаче не
предполагается распределенная структура ИС, т.к. задача небольшая по объему
данных и по количеству пользователей.
Таким образом, для решения поставленной задачи необходима
интегрированная централизованная база данных.
1.4.3. Обоснование проектных решений по программному обеспечению
Программное обеспечение (ПО) включает совокупность программ,
реализующих функции и задачи ИС и обеспечивающих устойчивую работу
комплексов технических средств. В состав программного обеспечения входят
общесистемные и специальные программы, а также инструктивно-методические
материалы по применению средств программного обеспечения.
55
Рассматриваемая нами задача не предъявляет больших требований к
надежности, производительности и времени реакции системы, что предоставляет
широкий выбор между различными системами общего назначения. При выборе
операционной системы будем исходить из следующих факторов:
1.Совместимость с ОС, уже имеющимися в организации;
2. Минимальные затраты на переобучение сотрудников, работающих с
системой учета рабочего времени;
3.Минимальные затраты на поддержку системы.
В АО «Кодекс» на рабочих станциях пользователей системы
установлена ОС линейки Microsoft Windows: Windows 7, Windows Vista,
Windows XP. На серверах установлена Microsoft Windows 2008 Server. На
приобретаемый сервер с целью совместимости всех компонентов системы
рекомендуется установить последнюю версию серверной операционной системы
Microsoft Windows 2008 Server.
СУБД классифицируются по следующим признакам [5]:
1) По модели данных:
Иерархические;
Сетевые;
Реляционные;
Объектно-ориентированные.
2) По способу доступа к БД
Файл-серверные;
Клиент-серверные.
Наиболее подходящей для нас моделью данных является реляционная
модель, т.к. она характеризуется простотой структуры данных, удобным для
пользователя табличным представлением, и возможностью использования
формального аппарата алгебры отношений и реляционного исчисления для
обработки данных.
Имеется большое разнообразие реляционных клиент-серверных СУБД.
Для сравнения брать Oracle, DB/2, Microsoft SQL Server и другими
коммерческими программными продуктами не целесообразно, потому что
коммерческие программные продукты не будут покупаться. Можно взять для
56
примера бесплатную версию Oracle. Технические требования для хорошей
производительности Oracle реализовать нельзя из-за используемой техники, а
более мощное оборудование покупаться не будет. Таким образом, целесообразно
произвести сравнения MySQL, mSQL и PostgreSQL (так как эта СУБД также
распространяется как программное обеспечение с открытым кодом).
Сравнение MySQL и mSQL. СУБД mSQL, благодаря отсутствию затрат
дополнительных ресурсов на создание потоков, а также за счет компактности
синтаксического анализатора, небольшого количества функций и упрощенной
системы безопасности, должна выигрывать в скорости выполнения:
- тестов на выполнение циклов соединение-отсоединение, при каждом
соединении выполняющих какой-нибудь простой запрос;
- операций INSERT над простыми таблицами, содержащими небольшое
количество столбцов и ключей;
- CREATE TABLE и DROP TABLE;
- операций SELECT чего-нибудь, кроме индексов (очень просто
выполняется просмотр таблицы).
Поскольку такие операции очень просты, при больших затратах
ресурсов на начальном этапе выиграть в скорости их выполнения достаточно
сложно. Поэтому лучшие результаты MySQL может показать лишь после
установки соединения. С другой стороны, MySQL значительно превосходит
mSQL при:
- выполнении сложных операций SELECT;
- загрузке объемных результатов;
- обработке таблиц, содержащих большое количество столбцов;
- обработке таблиц с длинными записями;
- одновременной работе с несколькими соединениями.
Архитектура MySQL Server является полностью многопоточной. Для
каждого соединения создается отдельный поток и, таким образом, ни одному из
них не приходится ожидать завершения другого. В mSQL же после установки
одного соединения остальным приходится ожидать его завершения, вне
зависимости от сложности и времени выполнения примененного в этом
соединении запроса связывании таблиц. При изменении порядка таблиц в вызове
57
SELECT, скорость работы mSQL может упасть ниже всяких допустимых
пределов. Эффективность использования дискового пространства.
В MySQL имеются очень точные типы данных, а с их помощью можно
создавать таблицы, занимающие минимум пространства. Примером чрезвычайно
полезного типа данных MySQL может служить MEDIUMINT, длина значений
которого составляет 3 байта. Выбор типов столбцов в mSQL2 значительно
беднее, и поэтому снизить размеры таблиц заметно трудней.
Сравнение MySQL c PostgreSQL. PostgreSQL и MySQL являются широко
используемыми программными продуктами, которые разрабатывались с
разными целями. Это значит, что для решения одних задач больше подходит
MySQL, для других же - PostgreSQL. Если требуется максимальная скорость
работы, выбирают MySQL Server. Если же необходимы дополнительные
возможности, такие как блокировка таблиц, применяющаяся в таблицах
MyISAM, использование UDF, имеющиеся только у PostgreSQL, то данная
СУБД. Обе системы являются серьезными альтернативами любым
коммерческим СУБД.
MySQL обладает следующими преимуществами перед PostgreSQL:
- Реализован кэш запросов.
- MySQL работает в среде Windows лучше, чем PostgreSQL. MySQL
Server запускается как настоящее (родное) Windows-приложение, в то время как
PostgreSQL запускается в среде эмуляции, Cygwin. Лист - MySQL оснащен
большим количеством API для других языков и поддерживается большим
количеством существующих программ, нежели PostgreSQL.
- В большинстве случаев никаких чисток в MySQL производить не
требуется. PostgreSQL же иногда приходится запускать VACUUM для
освобождения занятого последствиями работы команд UPDATE и DELETE
пространства и проводить статистический анализ, необходимый для достижения
максимальной производительности PostgreSQL.
- В MySQL реализован полнотекстовый поиск.
- Система MySQL с самого начала разрабатывалась в расчете на
многопоточность, а PostgreSQL использует процессы. - В MySQL реализована
значительно более мощная система привилегий, нежели в PostgreSQL.
58
- В MySQL используется протокол связи между клиентом и сервером со
сжатием данных, что увеличивает производительность системы в условиях
низкоскоростных каналов связи.
Недостатки MySQL по сравнению с PostgreSQL:
- Так как MySQL основан на использовании потоков, пока что еще не
безошибочно работающих в некоторых ОС, для обеспечения стабильной работы
приходится либо использовать один из откомпилированных пакетов, либо точно
выполнять инструкции по установки исходного дистрибутива MySQL.
- Блокировка таблиц, применяющаяся в нетранзакционных таблицах
MyISAM, во многих случаях работает быстрее, нежели блокировки на уровне
страниц, строк или контроль версий. Недостаток этого подхода в том, что если
не учитывать механизм работы блокирования таблиц, один длительный запрос
может надолго заблокировать таблицу.
- При помощи UDF (user-defined functions, определяемые пользователем
функции) возможности MySQL можно расширить и дополнить обычными SQL-
функциями или их объединениями. Но это сделать не так просто, да и система не
настолько гибка в этом отношении, как PostgreSQL. Лист В качестве СУБД был
выбран MySQL, потому что он наилучшим образом подходит для данного
разрабатываемого программного обеспечения и выполняет главное требование
заказчика - является бесплатным.
В MySQL существует два типа таблиц: MyISAM и InnoDB. При
использовании в MySQL типа таблиц – MyISAM, есть свои преимущества и
недостатки. К преимуществу относится достаточно быстрая скорость при
выборках SELECT. К недостатку же, относится отсутствие поддержки внешних
ключей. Таблицы же InnoDB в MySQL поддерживают внешние ключи и
транзакции. Таким образом, было принято решения использовать тип таблиц –
InnoDB.
В данном подразделе также сравним языки программирования C# и Java
- два похожих между собой современных языка со сборкой мусора и
компиляцией при выполнении с C-подобным синтаксисом. Перечислим сходства
данных языков программирования:
59
- функции должны быть методами классов, все классы без указанного
родительского класса автоматически становятся наследниками класса Object;
- служебные классы, которыми пользуются компилятор и среда
выполнения: Object, Class, StringBuffer, String и так далее;
- необходимость явно создавать объекты оператором new;
- безымянные классы, определяемые в месте использования;
- сборка мусора, основанная на автоматическом подсчете ссылок;
- компиляция в байт-код; - отсутствие адресной арифметики; -
отсутствие множественного наследования; - избыточная информация о классах,
методах, аргументах генерируется компилятором и доступна приложению в
момент выполнения;
- действия над атомарными базовыми типами собраны в классы-
контейнеры;
- встроенная документация в комментариях исходного текста. Отличия
C#:
- перечислимые типы с ключевым словом enum;
- структуры, объявляемые с ключевым словом struct - не имеют
стартовых значений для полей, хранятся и передаются не по ссылке, а по
значению;
- виртуальные и перегружаемые методы обязаны иметь атрибуты virtual
и override;
- возможность определять в классе-наследнике поле или метод с таким
же именем, как и в классе-родителе, не замещая оригинал в таблице
виртуальных методов, с помощью атрибута new;
- передавать аргументы по ссылке с помощью ключевого слова ref;
- определять собственные действия для операторов аналогично C++; -
встроенный синтаксис для перебора элементов в коллекциях; -
поддержкасвойств: public int A { get { ... } set { ... } };
- передача и хранение ссылок на методы в переменных типа delegate
(также сохраняется ссылка на объект, применительно к которому должен быть
вызван метод);
- директивы условной компиляции - #if, #else, #endif.
60
- дополнительное структурирование исходного текста с помощью
#region;
- в одном файле может находиться несколько публичных классов;
- unsafe-методы для оптимизации с адресной арифметикой и
системными вызовами;
- генерация кода как для CLI, так и для x86; - поддерживает условную
компиляцию с использованием директив препроцессора; - полная интеграция со
стандартом COM.
Отличия Java:
- модификатор protected в описании, помимо доступа из классов-
потомков, разрешает доступ из всех классов, входящих в тот же пакет, что и
класс-владелец;
- все открытые методы, кроме статических, являются виртуальными, а
переопределить метод так, чтобы механизм виртуальности не включился,
невозможно;
- имеется возможность создавать объекты на стеке, но происходит это
автоматически без участия пользователя; - для того чтобы от класса нельзя было
наследоваться, его можно объявить финальным final, тем самым получив
частичный аналог конструкции struct(копирование по значению при этом
поддерживаться не будет все равно);
- не включает перегрузку операций во избежание злоупотреблений ею и
для поддержания простоты языка;
- каждый файл может содержать только один общедоступный класс,
причем Java требует, чтобы имя файла совпадало с именем этого класса, что
исключает путаницу в именах файлов и классов.
- платформонезависимость, за счет использования виртуальной машины;
- искодный код компилируется не под реальный процессор, как во всех
других языках - а под виртуальный. Для исполнения этого кода - необходимо
чтобы на компьютере была установлена среда исполнения. Выбор языка
программирования остановили на Java-технологии, потому что имеет много
особенностей, которые нужны для разработки данного программного продукта.
61
Выбрав язык программирования Java, появился вопрос выбора среды
разработки. На Java чаще всего пишут или в Eclipse, или в NetBeans. При
изучении данных сред разработки можно сказать, отличия в функциональности
между Netbeans и Eclipse нет, но предназначены они для разных целей, Eclipse
используется для написания вспомогательных компонент и мобильных
приложений, а NetBeans используют для создания целостных проектов с GUI.
NetBeans это решение для маленьких компаний и частных лиц, изначально
направлен именно на графические интерфейсы программ.
Eclipse в свою очередь изначально создавался для написания исходных
кодов, а не создания готовых компилированных программ, поэтому до сих пор и
не содержит полноценный компилятор.
Поэтому для разработки данного программного обеспечения выбор
остановим на NetBeans. Выбрав язык программирования Java и среду разработки
NetBeans, выбор технологии взаимодействия с базой данный сузился до JDO,
JDBC и Hibernate. Вначале опишем кратко данные технологии. Java Data Objects
(JDO) API является стандартной интерфейсной Java- абстракцией модели
сохранения состояния для непосредственного хранения экземпляров моделей
Java-домена в хранилище данных. JDO разработан как часть Java Specification
Request.
В отношении разработки приложений программист может писать код на
языке программирования Java с прозрачным доступом к основному хранилищу
данных без использования кода, специфичного для баз данных. Функции
технологии JDO:
- Мобильность: Приложения, написанные с использованием JDO API,
можно выполнять на различных реализациях без рекомпиляции или изменения
исходного кода.
- Независимость от баз данных: приложения, написанные с
использованием JDO API, не зависят от основной базы данных. - Концентрация
на модели домена: возможность сконцентрироваться на своей модели домена,
переложив заботы о сохранении состояния на реализацию JDO. - Высокая
производительность: передать подробности реализации сохранения состояния на
реализацию JDO, способную оптимизировать модели доступа к данным для
62
обеспечения оптимальной производительности. JDO - изначально он
разрабатывался как Java ORM standard, который может работать с любым data
source, однако особой популярности так и не приобрел.
Чем он отличается от Hibernate: синтаксис запросов не SQL-подобный, а
Java-подобный; после компиляции нужно запускать code enhancer, что добавляет
еще один шаг в цикле разработки, в то время как тот же Hibernate может
работать в обоих режимах, как с enhancer, так и без него.
Опять же одного стандарта, как правило, мало, поэтому часто
приходится использовать implementation-spefic механизмы. Интерфейс Java
Database Connectivity (JDBC) API был создан как ключевая часть платформ Java
2 Standard Edition (J2SE) и Java 2 Enterprise Edition (J2EE). Он представляет
собой основной механизм, основанный на стандартах, обеспечивающий
программам на языке Java доступ к реляционным базам данных.
Интерфейс JDBC API обладает высокой степенью гибкости и
предоставляет программистам непосредственный контроль над доступом к базам
данных и управление кэшем. В JDBC имеются функции получения из базы
данных автоматически создаваемых ключей, способность открывать несколько
наборов результатов, улучшенное подключение и организация пула
предложений. JDBC - в чистом виде используется не часто, потому как
приходится писать много кода, обычно реализовать проект с помощью JDBC
довольно сложно и громоздко.
Так как приходится писать SQL руками, вызывать его, работать с
ResultSet, самостоятельно реализовывать кеширование, маппинг классов на
реляционную модель, кеширование на нескольких уровнях.
Hibernate представляет собой эффективную, высокопроизводительную
объектно-реляционную среду с сохранением состояния и службу запросов.
Hibernate позволяет разрабатывать классы с сохранением состояния объектно-
ориентированной идиомы, включая ассоциации, наследование, полиморфизм,
композиции и наборы.
Среда Hibernate позволяет составлять запросы в собственном мобильном
SQL-расширении (HQL), а также в исходном SQL или с использованием
объектно-ориентированных критериев и примеров API. Такие среды, как Spring,
63
обеспечивают расширенную поддержку для Hibernate, поэтому Spring
предоставляет разработчикам способ декларативно объявлять транзакции
Hibernate.
В Hibernate XML-файлы (*.hbm.xml) используются для сопоставления
Java-классов таблицам и свойств Java Beans таблицам баз данных. Hibernate
представляет собой одну из широко распространенных и надежных сред с
сохранением состояния и является более зрелой в сравнении с такими
спецификациями, как JDO. Обе среды обеспечивают сохранение состояния для
непосредственного хранения своих экземпляров моделей доменов Java в
постоянных хранилищах.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)