Файл: Разработка регламента выполнения процесса «Складской учет».pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 04.04.2023

Просмотров: 108

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Значительные сложности представляет масштабируемость высоконормализованных БД (традиционное преобразование иерархии неизбыточных таблиц в плоскую таблицу приводит к существенному падению производительности при обновлениях, а также к риску нарушения целостности из-за распределенности и дублирования данных). Внедрение стандарта SQL/99 в СУБД потенциально позволяет решить проблему масштабируемости за счет проектирования БД с естественной иерархической структурой без построения III нормальной формы и последующей денормализации (побочный эффект состоит в значительной ресурсоемкости реорганизации БД). При этом наиболее легко адаптируемыми к SQL/99 потенциально оказываются СУБД на основе независимых логических файлов (Adabas, Focus, Datacom/DB и др.) и иерархические СУБД (SAS System 2000, IBM IMS и др.).

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

В отличие от реляционных баз данных, NoSQL не гарантирует соблюдения требований ACID (Atomicity, Consistency, Insulation, Durability - атомарность, согласованность, изолированность, долговечность). Однако существует отдельный набор требований к базам данных NoSQL:

  • базовая доступность (basicavailability) - каждый запрос гарантированно завершается (успешно или безуспешно);
  • гибкое состояние (softstate) - состояние системы может изменяться со временем, даже без введения новых данных, для достижения согласования данных;
  • согласованность в конечном итоге (eventualconsistency) - данные будут обязательно согласованы через некоторое время.

К основным видам NoSQL баз данных относятся следующие:

  • БД «ключ-значение»;
  • колоночные БД;
  • документоориентированные БД;
  • графоориентированные БД;
  • объектно-ориентированные БД.

БД «ключ-значение» является очень простой моделью данных. В такого типа БД ключи представлены в форме значений, как в хэш-таблице позволяющий получить гибкое построение данных. Redis является представителем такого типа БД. Она обеспечивает и предоставляет возможность выбора между надежностью и скоростью. Преимущества Redis высокая производительность, работа со списками и стеками, простой API реализован для таких языков как (PHP, Ruby, Python, Perl, Java). Также зарекомендовали себя хранилища данных по модели «ключ-значение» MemcacheDB и BerkeleyDB. Преимущества MemcacheDB высокая надежность, быстродействие доступа к информации, высокая скорость чтения/записи, поддержка транзакций. BerkeleyDB довольно быстро разрабатывается и получает новые версии преимуществами можно назвать репликации и реплики. Часто применяется в качестве платформы для построения операционной и интерфейсная части.


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

Документоориентированные базы данных характеризуются тем, что у них нет схемы организации данных. Это означает:

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

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

- колонки могут иметь несколько значений (массивы);

- записи могут иметь вложенную структуру.

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

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

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


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

Документоориентированные базы данных часто используются для:

    • уплотненной информации - документы на основе хранилища данных позволяют работать с глубоко вложенными, сложными структурами данных;
    • JауаScript-дружественных систем - одним из важнейших функциональных документов на основе хранилища данных способ которым они взаимодействуют с приложениями: с помощью JS-дружественного представления данных JSON.

Самыми известными документоориентированными базами данных являются:

    • CouchDB - документоориентированная система управления базами данных, которая не требует описания схемы данных. Эта СУБД является свободной, открытой, написанная на языке Erlang.
    • MongoDB - документоориентированная система управления базами данных с открытым исходным кодом, которая не требует описания схемы таблиц. Написана на языке C ++. СУБД оперирует наборами JSON-подобных документов, хранящихся в двоичном виде в формате BSON.

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

  1. MongoDB - концептуально то же самое, что и обычная реляционная база. Внутри MongoDB может быть ноль или несколько баз данных, каждая из которых является контейнером для других объектов
  2. База данных может иметь ноль или более «коллекций». Коллекция настолько похожа на традиционную «таблицу», которую можно рассматривать, как то же самое.
  3. Коллекция состоит из нуля или более «документов». Опять же, этот документ можно рассматривать как «строка».
  4. Документ состоит из одного или нескольких «полей», которые можно рассматривать как «столбцы».
  5. «Индексы» в MongoDB практически идентичны индексам в реляционных базах данных.
  6. «Курсоры» отличаются от предыдущих пяти понятий, но они очень важны (хотя иногда это игнорируется) и заслуживают отдельного обсуждения. Важно понимать, что, когда осуществляется запрос любых данных в MongoDB, возвращается указатель, с помощью которого можно сделать что-нибудь - рассчитать, пропустить определенное количество предыдущих записей - без загрузки данных.

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


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

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

Графоориентированные базы данных, в первую очередь, предназначены для решения тех задач, где данные тесно связаны между собой в отношениях, которые могут углубляться в несколько уровней. Графоориентированные данных предназначен для решения проблем, когда данные могут быть удалены друг от друга на два или большее количество связей. Это решается очень просто, когда данные моделируются как «вершины графа», а связи как «ребра графа» между этими узлами. Также преимуществом является то, что можно осуществлять обход графа с помощью давно известных и эффективных алгоритмов.

Чаще всего графоориентированные данных используются для:

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

Самые известные графоориентированные базы данных:

    • Neo4J предлагает полноценную базу данных с транзакциями, индексами, несколькими режимами работы и простотой изучения, благодаря очень легкой структуре. Весь код открыт и доступен, и программа распространяется под лицензией AGPL для некоммерческого использования, а также платные варианты для коммерческого.
    • AllegroGraph является современной, высокопроизводительной, постоянной графовой базой данных. AllegroGraph использует эффективное использование памяти в сочетании с хранением на основе жестких дисков, что позволяет ему масштабировать до миллиардов квадрациклов, сохраняя при этом высокую производительность.