Разработка системы поддержки принятия решения выбора систем управления базами данных



Аннотация

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

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

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

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

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

Annotation

This degree work is devoted development of the decision support system for database management system (DBMS) choice to creation corporate information systems (CIS), contributing facility choose, which often developers faced with.

An experience of operations and introductions CIS, choosing either of DBMS can be caused not only by technological parameters, but also by a competence of the project manager his bad awareness which opportunities modern DBMS have or very often happen situation when there is imposing more expensive product to the customer. Often it happens that the developer tries to impose DBMS with ampler opportunities, than it is required. In some situations, the chosen management systems don't correspond to criteria of the developed software product that leads to his low performance or not working capacity at all.

For excluding above-stated problems, in the degree work there will be developed the decision support system, which minimizes participation of the developer or customer in the choice of DBMS. The choice will be carried out on a basis numerous of parameters and priorities which the user is setting.

To make easier work for users, the access to this system will be provided on the basis of web interface, which allow work without particular operating systems or applied software- all this will exclude. It will exclude need to download, setup or installation application.

In the proses of development and writing degree work there were analyzed: the main existing DBMS, parameters of the created corporate information systems, methods of decision support system, also there were described the algorithms and the principles of system-work of the decision support system.

Оглавление

ВВЕДЕНИЕ

Современные информационные системы —Варфоломеева, А.О. Информационные системы предприятия: Учебное пособие / А.О. Варфоломеева, А.В. Коряковский, В.П. Романов. - М.: НИЦ ИНФРА-М, 2013. - 105 c. — это неотъемлемая часть современного мира. Невозможно представить работу любого среднего или крупного предприятия без их использования, начиная от элементарных офисных приложений и баз данных, до систем управления предприятием, проектирования, анализа статистики и математического моделирования.

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

Термин база данных используется в самых различных аспектах, но чаще всего считается, что база данных – это некий набор информации, хранящийся упорядоченным способом —Дейт К. Введение в системы баз данных // 6-издание. - Киев: Диалектика, 1998. – 215 с..

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

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

Еще одной особенностью современных СУБД является обеспечение уровня доступа к различным базам данных, и разграничения прав доступа внутри них. В современных информационных системах зачастую используется два вида организации баз данных —Диго С.М. Проектирование и использование баз данных. - М.: Финансы и статистика, 1995. - 208 с.: 1) использование локального вычислительного сервера с большим запасом аппаратных ресурсов, или кластеров таких серверов, собранных, например, в блэйд системе, обеспечивающих подключение большого количества терминалов и обрабатывающих миллиарды запросов. 2) использование распределенных систем хранения данных, что чаще всего реализовывается в многочисленных серверах баз данных, распределенных в сети, а зачастую на разных территориях, и отвечающие за хранение только некоторой, часто используемой в данной локации, частью информации. Использование подобных схем очень ярко себя зарекомендовало в интернет программировании, в транспортных и банковских  автоматизированных системах, когда территория распределения работы системы огромная и передача большого количества трафика невозможна из единого места хранения

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

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

Поэтому актуальной представляется задача создания автоматизированной системы поддержки принятия решения по выбору СУБД.

  1. ПОСТАНОВКА ЗАДАЧИ.
    1. Исходные данные

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

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

  1. Выходные данные

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

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

  1. Ограничения, накладываемые на входные данные

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

  1. Метод решения.

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

Для решения данной задачи требуется проведение следующего объема работ:

-анализ существующих СУБД;

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

- анализ методов и моделей многокритериального выбора альтернатив;

- анализ и выбор инструментальных средств для разработки приложения;

- разработка структуры СППР и определение требований к функциям;

- программная реализация СППР;

- тестирование приложения.

  1. Актуальность поставленной задачи:

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

  1. Обзор аналогов

Многочисленный поиск готовых систем для решения данного вопроса показал, что данный вопрос не поднимался разработчиками информационных систем. Решение вопроса автоматизации данной задачи на основе применения методов поддержки принятия решений предпринимались —Иванова Е. М., Вишнеков А. В. Выбор СУБД для создания корпоративных информационных систем // Качество. Инновации. Образование. 2015. № 7. С. 59., однако реализации в виде приложения она не получила.

  1. Анализ особенностей существующих СУБД

Система управления базами данных (СУБД) – специализированная программа, предназначенная для создания и ведения баз данных —Кузнецов С.Д. Введение в системы управления базами данных // СУБД. - 1995. – с 15-50..

База данных – это некоторый набор перманенстных данных, используемых прикладными программными системами какого-либо предприятия или организации.

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

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

  1. Способ доступа к БД Дейт К. Введение в системы баз данных // 6-издание. - Киев: Диалектика, 1998. - 110 с.

СУБД по способу доступа к БД подразделяются на 3 вида:

Все файлы хранятся на Файл-сервере. Сама СУБД располагается на клиентской машине и с нее же функционирует. Доступ осуществляется через локальную сеть (в случае если Файл-сервер и компьютер, на котором установлена СУБД являются разными машинами). Преимущество данной архитектуры – низкая нагрузка на центральный процессор сервера. Из примеров таких СУБД –MSAccess,Borland,Paradox и др.

СУБД такого уровня состоят из двух частей: клиентской и серверной. Клиентская часть входит в состав прикладной программы. Такие СУБД обеспечивают разграничение прав доступа к информации и практически не загружают сеть. В настоящее время клиент-серверные СУБД одни из самых популярных, на рынке представлены десятки различных вариантов. Вот некоторые из них:Firebird,Interbase,MSSQLServer,Sybase,Oracle,PostgreSQL,MySQL, ЛИНТЕР.

Встраиваемый СУБД представляют собой библиотеку, которая позволяет хранить большие объемы данных в пределах файловой системы локальной машины и обеспечивать высокую скорость работы приложения. Доступ к таким данным осуществляется либо через запросSQL, либо через функции СУБД. Вот несколько примеров таких СУБД: OpenEdge, SQLite, BerkeleyDB,MySQL.

  1. Основные функции, выполняемые СУБД

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

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

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

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

  1. Архитектура СУБД Агальцов В.П. «Базы данных. Учебник. Книга 2: Распределенные и удаленные базы данных. Гриф УМО вузов России» - 2015. - №1 – с.30-38

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

По моделям данных СУБД разделяются на:

  1. Иерархические;
  2. Сетевые;
  3. Реляционные;
  4. Объектно-ориентированные;
  5. Объектно-реляционные.
    1. Поддерживаемые языки построения запросов и встроенной среды разработки.

Для работы с базами данных используются специальные языки, называемые «языками баз данных» —Кузнецов С.Д. Стандарты языка реляционных баз данных SQL: краткий обзор // СУБД. - 1996. - №2. - С.6-36..

В первых СУБД использовалось одновременно несколько языков, каждый из которых обеспечивал определенный функционал или уровень доступа. Чаще всего выделялись два языка - язык определения схемы БД —Кузнецов С.Д. Стандарты языка реляционных баз данных SQL: краткий обзор // СУБД. - 1996. - №2. - С.6-36. (SDL - Schema Definition Language) и язык манипулирования данными (DML - Data Manipulation Language). SDL служил главным образом для определения логической структуры БД, а язык DML содержал инструменты манипулирования данными, т.е. функций, позволяющих работать непосредственно с данными в БД, в том числе проводить модификацию, выборку из существующие данные или их удаление.

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

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

  1. Предлагаемые альтернативные СУБД.
  2. Рассмотрим кратко существующее и используемые в наше время СУБД:

    • Microsoft Access – одна из распространенных реляционных СУБД, разработанная корпорацией Microsoft и получившая широкое применение в пакете прикладного программного обеспечения или в небольших корпоративных проектах. Отличительной особенностью является ее «настольность», с чем связано присутствие интуитивно-понятного интерфейса пользователя, графического представления структуры баз данных, наличие конструкторов форм и отчетов. Так же, как и практически все продукты данной корпорации поддерживает встроенный язык VBA, благодаря чему в самом Access можно писать приложения;
    • dBase —Крамм Р. Системы управления базами данных dBase II ,dBase III для персональных компьютеров. / Пер. с англ. В. А. Белова, Предисл. В. П. Иванникова — М.: Финансы и статистика, 1988. с. 20-31 - семейство широко распространённых систем управления базами данных, а также язык программирования, используемый в них. Получила широкое распространение в 1980 году на пике развития промышленных компьютеров и появлении первых персональных компьютеровApple. На протяжении долгих лет не была портированна на операционную системуWindows, в следствии чего не потеряла большой круг пользователей, однако благодаря компанииBorland, активно учувствовавшей в развитии данной СУБД, она приобрела популярной у таких гигантов, какIBM;
    • Firebird (FirebirdSQL) - компактная, кроссплатформенная, свободно распространяемая система управления базами данных, была реализованна независимыми сообществом программистов на языке  С и С++ для применения в сложны информационных системах классаERP. Первые реализации имели много недостатков, так как не имели отлаженную систему индексации, кэширования, логирования и распределенные вычисления, однако в следствии бурного развития получила большое распространение вOpenSourse сообществе и многочисленные ветки развития, одной из которых стала Ред База Данных, которая одна из немногих активно используется в силовых и ведомственных структурах;
    • PostgreSQL —Иван Панченко. Статья PostgreSQL: вчера, сегодня, завтра. Открытые системы. СУБД, № 03, 2015. Проверено 16 марта 2016. - cвободная объектно-реляционная система управления базами данных, одна из самых популярных СУБД у разработчиков информационных систем, т.к. получило широкое распространение практически во всех средах разработки, как компилируемых, так и интерпретируемых языков программирования и распространяется по лицензииBSD, что многие разработчики относят к существенному плюсу;

    SQLite —Неполное Руководство по SQLite для пользователей Windows.«Grant Allenи Mike Owens ’The Definitive

    • Guide to SQLite’»Перевод:А.Г.Пискунов. – 2014 –с. 5-8 - реляционная база данных, обладающая отличным сочетанием производительности и компакности, что позволяет ее встраивать даже в требовательные локальные приложения. Исходный код библиотеки передан в общественное достояние. Из-за своей компактности имеет ряд ограничений по производительности и объемам занимаемых данных, но из-за неприхотливости к ресурсам системы получила широкое распространение в мобильных приложения, автономных устройствах сбора информации, навигаторах и системах интерактивного общения, например,Skype иWhatsApp.
    • MSSQLServer – продукт, получившийся в результате слияния наработой компанииSybase и финансовой поддержки корпорацииMicrosoft вышел в свет еще в далеком 1988 году. Изначально был разработан для работы на платформеOS/2, но в последствии был портирован для работы на многих операционных системах, а с системаWindows был тесно интегрирован. Данная СУБД является продуктом труда большого количества программистов и в ней реализованы практически все возможные функции, делающую работу с ней легкой и удобной для любого администратора и программиста. Данная СУБД имеет несколько видов лицензирования и обходится заказчикам в довольно крупную сумму.
    • «Линтер» - довольно молодой продукт, по сравнению с вышеперечисленными гигантами. Является детищем компании «Релэкс» и разрабатывался для обеспечения нужд Российских секретных структур и предприятий, в дальнейшем получила сертификат второго класса защиты, в связи с чем пользуется популярностью не только у военных, но и у различных предприятий, обладающей уровнем секретности. Но помимо этих достоинств, данная СУБД отлично зарекомендовала себя для работы на маломощных аппаратных средствах, в связи с чем получило довольно большое распространение у разработчиков корпоративных мобильных приложений и систем.
    • Ingres – релационная СУБД, созданная в стенах университета Беркли, а потом, как многие подобные проекты, была выкуплена в 1990 году компаниейComputerAssociatesInternationalInc. Имеет открытым исходный код и получившая свое распространение в далеких 80-х. Ингресс хорошо себя зарекомендовала как в использовании высоконагруженных кластерах, так и во встраиваемых приложениях благодаря поддержке таких платформ какJ2EE и .NET.
    • MySQL —В.Васвани.MySQL: использование и администрирование MySQL Database Usage & Administration. — М.: «Питер», 2011. —с. 22-26  - одна из самых распространенных СУБД в мире благодаря  сообществуOpenSource и лицензии, по которой она распространяется. Практически все продукты, создаваемые на базе операционных систем семействаUNIX имею втроенные механизмы работы с данной базой данных, программные библиотеки прямого доступа к СУБД, и всевозможные модули интеграции совершенно различных продуктов, от систем хранения текстов и писем, до высоконагруженных веб серверов. Популярность данной системы управления послужила причиной приобретение на неё прав таким гигантом какOracle.
    • OracleDatabase – объектно-реляционная СУБД, разработанная в далеком 1977 году и была первой коммерческой системой управления базами данных. Данная система является гигантом и зарекомендовал себя как стабильный, надежный продукт для распределенных, сильнонагруженных кластеров и серьезные проекты.

    Существуют десятки других экплуатируемых СУБД, такие как Teradata,  mSQL,  LEAP RDBMS, Progress, Typhoon, SQL/DS, Daffodil DB, Cloudscape, Compad Non-Stop SQL MX и SQL/MP, Ocelot, Sybase, Universe, GNU SQL Server, IBM DB2, SQL/DS, Daffodil DB и во всем этом разнообразии довольно легко запутаться.

    1. Анализ и структурирование создаваемых корпоративных информационных систем с выявлением основных параметров

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

      Исходя из того, что ИС —Мезенцев, К.Н. Автоматизированные информационные системы: Учебник для студентов учреждений среднего профессионального образования / К.Н. Мезенцев. - М.: ИЦ Академия, 2013. -  c. 37 – это некоторая совокупность взаимосвязанных средств, методов, которые могут применяться при сборе, обработке, хранении, и выдаче информации для решения поставленных задач, всю ее структуру можно представить, как совокупность должным образом организованных подсистем, которые обеспечивают все эти процессы.

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

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

      Функциональная часть состоит из подсистем, которые определяются особенностями АСУ. Всех их можно разделить по отдельным признакам (структурным или функциональным), а сами они объединяют в себе соответствующее комплексы задач контроля.

      Обеспечивающая часть включает в себя информационное, математическое, правовое, программное, методологическое, техническое, эргономическое и др. обеспечение.  Структура АИС представлена на рисунке 1.

      Рисунок  - Структура АИС

      Информационное обеспечение —Мезенцев, К.Н. Автоматизированные информационные системы: Учебник для студентов учреждений среднего профессионального образования / К.Н. Мезенцев. - М.: ИЦ Академия, 2013. – 72-79 c. АИС подразумевает под собой комплекс баз данных и файлов ОС, лексической и форматной базы, а также отдельных языковых средств, которые созданы для ввода, поиска, обработки и представления данных в той форме, которая необходимо для потребителя.

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

      Сегодня ИО рассматриваются как сочетание информационного и лингвистического обеспечения. При этом само информационное обеспечение включает файлы ОС и БД, а лингвистическое обеспечение содержит форматную базу, языковые средства и лексику.

      Математическое обеспечение рассматривается как комплекс математических методов и моделей, которые применяются в АС (ГОСТ 24.03-90).

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

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

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

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

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