Дипломная работа|Базы данных

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

Уточняйте оригинальность работы ДО покупки, пишите нам на topwork2424@gmail.com

Авторство: bugalter

Год: 2020 | Страниц: 130

Цена: 2 000
Купить работу

Введение

Глава 1: Аналитический обзор и постановка и методологии исследования

1.1. Что такое JSON

1.2. Как выглядит JSON

1.3. Объекты JSON

1.4.  JSON Arrays

1.5. Типы данных JSON

1.6.  Схемы JSON

1.7. Создание схемы

1.8. Как использовать JSON для выполнения HTTP-запроса

1.9. Выводы по главе 1

Глава 2: Принципы и способы исследовательская работа, методы и этапы оптимизация производительности типов данных Json Jsonb

2.1. Работа с данными типов JSON и JSONB

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

2.3. Оптимизированное хранилище и автоматическую проверку

2.4. Создание и хранение XML документов

2.4. Выборка и преобразование данных типа XML

2.5. Реляционная модель данных

2.6.  Описывался состав и возможности применения скалярных типов, используемых в

2.7. Выводы по главе 2

Глава 3: результаты анализы исследовательская работа

3.1. Оптимизация SQL запросов для ускорения сайтов с помощью json

3.1.1. МySQL

3.1.2. Визуальное расследование

3.1.3. Решение

3.1.4. Индексы

3.1.5. результат оптимизация SQL запросов для ускорения сайтов с помощью json

3.1.6. Результаты

3.2. Иллюстрация методов работы с XML данными

3.3. Иллюстрация методов работы с JSON и JSONB данными

3.4. Оптимизация обработка данных с использование ограничением not null и индексации

3.4.1.Оптимизация jsonb array

3.4.2. Индексировать это jsonb поле

3.4.3. Оптимизация запроса Postgres JSONB с ограничением not null 

3.4.4. Результат анализирования  запроса

3.5.  Выводы по главе 3

Заключение

Список литературы

Приложения 

Приложения 2

Приложения 3

Цель работы и задачи исследования:

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

В рамках данного исследования будем анализировать следующие задачи:

- рассмотрение особенностей реляционной модели данных и описание

структурированных моделей, содержащих данные сложной структуры

- анализ различных типов данных в современных СУБД и выделение среди них сложных по структуре;

- обзор методов работы с указанными типами;

- выделение средств, позволяющих выполнять операции со сложными типами данных при минимальных ресурсозатратах;

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

- экспериментальная часть, иллюстрирующая применение указанных методов.

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

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

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

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

В заключительной главе проведен практический эксперимент и Анализы документов содержимого JSON и JSONB на Postgresql и Mysql, позволяющий проиллюстрировать методы и явления, описанные в предыдущих главах, а так же подтвердить теоретические оценки эффективности.

Научная новизна

Во время исполнения запроса на выборку планировщик использовал созданный нами индекс data_ind, о чем свидетельствует выражение Bitmap Index Scan on data_ind, находящееся в четвертой строке плана.

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

Так же мы можем видеть, что время исполнения запроса уменьшилось почти в восемьдесят раз, что является достаточно внушительным результатом, и составило 0.049 мс.

Так же удалось сократить время запроса примерно с 1000 мс до 350 мс, создав следующий частичный индекс:

 CREATE INDEX index_accounts_partial_on_verified_at

 ON accounts ((data->'data'->'verified_at'))

 WHERE (data->'data'->>'verified_at') IS NOT NULL

 AND (data->'data' ? 'verified_at')

 AND (data->'data'->>'country' = 'YE');

Я смог закодировать некоторые значения в этом индексе, такие как country=YE , потому что мне нужно только рассмотреть учетные записи YE для этого запроса. Я также смог удалить индекс на ((data->'data')) , который был 258 МБ, и заменить его частичным индексом, который составляет всего 1360 КБ!

Так же результат оптимизация SQL запросов для ускорения сайтов с помощью json, можно предпринять и другие способы для ускорения выполнения запросов, в которых нужно чуть больше, чем просто поправить запрос или добавить индекс. Одна из самых медленных частей нашего запроса – процесс объединения таблиц для перехода от id покупателя к id товара, и это необходимо делать для каждого покупателя. А что если сделать все объединения за раз, чтобы получать данные о покупателе тогда, когда это необходимо, мы еще можем денормализовать данные, создав таблицы, в которой хранятся данные лицензии, а также id пользователя и товара для всех лицензий, а также запрос к конкретному покупателю. Понадобится пересобрать таблицу с помощью MySQL triggers на INSERT/UPDATE/DELETE для таблицы лицензий (или других в зависимости от изменения данных), но это значительно повысит производительность запроса данных.

Если несколько join замедляют запрос, можно ускорить его, разбив на 2 и более выражения, после чего выполнять их отдельно в PHP, собирать и фильтровать результаты в коде. Laravel делает что-то похожее в жадной загрузке в Eloquent.

WordPress может замедлять запросы к таблице wp_posts, если объем данных большой, и присутствует множество кастомных типов постов. Если запросы типов постов замедляют сайт, попробуйте уйти от модели хранения кастомных типов постов в сторону кастомной таблицы.

С помощью этих подходов по оптимизации запросов нам удалось ускорить наш запрос с 8 до 2 секунд, а также снизить количество вызовов с 4 до 1. Время запросов записывалось на версии для разработки, в продакшн оно было бы меньше.

Таким образом, использование индексов может значительно оптимизировать работу запросов на выборку данных объектов JSON.

 

Глава 1: Аналитический обзор и постановка и методологии исследования

1.1. Что такое JSON

JSON популярен. JSON (JavaScript Object Notation), возможно, является наиболее широко используемым форматом данных для обмена данными в сети. Вероятно, он превзошел XML (который используется в приложениях AJAX) как наиболее распространенный формат, используемый для асинхронной связи между браузером и сервером.

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

JSON основан на подмножестве JavaScript. JSON был вдохновлен объектными литералами JavaScript (также известным как ECMAScript). Однако, несмотря на это, JSON не зависит от языка. Это может облегчить обмен данными между большинством, если не всеми языками программирования. Фактически, JSON использует общие соглашения о программировании, что делает его знакомым большинству программистов, независимо от их выбранного языка / языков.

1.2. Как выглядит JSON

Вот базовый пример документа JSON:

{

  "художники": [

    {

      "имя исполнителя": "Deep Purple",

      "альбомы": [

        {

          "albumname": "Machine Head",

          "год": "1972",

          "жанр": "рок"

        },

        {

          "albumname": "Stormbringer",

          "год": "1974",

          "жанр": "рок"

        }

      ]

    }

  ]

}

Это почти так же сложно, как большинство документов JSON (хотя большинство будет содержать гораздо больше данных).

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

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

Хорошей новостью является то, что мой маленький пример охватывает почти весь синтаксис JSON. Больше нечего показать, кроме как объяснить, как работает синтаксис.

JSON хранит данные в объектах и массивах. Синтаксис JSON отражает их определение.

  1. Нестеров С.А. Базы данных: учеб. пособие / С.А. Нестеров. – СПб.: Изд-во Политехн. Ун-та, 2013. – 150 с.
  2. Воутер Ван Вуг OPEN XML. Кратко и доступно. – Пер. с англ. – Microsoft Press, 2007. – 101 с.
  3. Одиночкина С.В. Основы технологий XML. – СПб: НИУ ИТМО,
  4. – 56 с.
  5. Рэй Э. Изучаем XML. – Пер. с англ. – СПб: Символ-Плюс, 2001. – 480 с.
  6. Петкович Д. Microsoft SQL Server 2020. Руководство для начинающих: Пер. с англ. – СПб.: БХВ-Петербург, 2013. – 816 с.
  7. Бондарь А.Г. Microsoft SQL Server 2020. – СПб.:БХВ-Петербург, 2013. – 608с.
  8. Дональд Кнут Искусство программирования, том 1. Основные алгоритмы = The Art of Computer Programming, vol.1. Fundamental Algorithms. – 3-е изд. – М.: «Вильямс», 2006. – С. 720.
  9. Теоретическая информация о JSON формате [Электронный ресурс]. –

http://json.org/json-ru.html

  1. Теоретическая информация о JSONB формате [Электронный ресурс]. –

https://postgrespro.ru/docs/postgrespro/9.5/datatype-json.html

  1. Функции, используемые для работы с XML [Электронный ресурс]. –

https://postgrespro.ru/docs/postgrespro/9.5/functions-xml

  1. Использование Xpath [Электронный ресурс]. –http://allxml.h1.ru/articles/xpath.htm
  2. Индексы в PostgreSQL [Электронный ресурс]. –https://postgrespro.ru/docs/postgrespro/9.5/sql-createindex__
  3. Crockford The application/json Media Type for JavaScript Object Notation (JSON) — Internet Engineering Task Force, 2006. — 10 p. —doi:10.17487/RFC4627
  4. Doug Crockford "Google Tech Talks: JavaScript: The Good Parts" (7 февраля 2020).
  5. JSON Redux AKA RFC7159.
  6. http://jsonrpc.org/historical/json-rpc-1-1-alt.html#service-procedure-and-parameter-names
  7. JSON5 by aseemk
  8. In The Wild · json5/json5 Wiki · GitHub
  9. YAML Ain’t Markup Language (YAML™) Version 1.2 (англ.) (недоступная ссылка). — Working Draft 2020-05-11. Дата обращения 24 сентября 2020. Архивировано 16 мая 2020 года.
  10. YAML is JSON. RedHanded (7 апреля 2020). Дата обращения 25 сентября 2020..
  11. Json.Com. JSON Schema Proposal (англ.) (недоступная ссылка). Архивировано 14 мая 2020 года.
  12. JSON-LD Syntax 1.0 (27 декабря 2020). Дата обращения 30 декабря 2020.
  13. RFC 4627 (Request for Comments)
  14. JSON: Обезжиренная альтернатива XML (англ.). Архивировано 12 февраля 2020 года.
  15. Использование встроенного JSON (англ.).
  16. Встроенный JSON в IE8 (англ.). Архивировано 12 февраля 2020 года.
  17. Web спецификации, поддерживаемые в Opera Presto 2.5 (англ.) (10 March 2020). Дата обращения 29 марта 2020. Архивировано 12 февраля 2020 года.
  18. Реализация ES 3.1 объекта JSON (англ.).
  19. Ticket #4429lang=en. Архивировано 12 февраля 2020 года.
  20. Ticket #4429 Архивировано 12 февраля 2020 года.
  21. Ticket #8111lang=en. Архивировано 12 февраля 2020 года.
  22. MooTools Core & More 1.3.1. Архивировано 12 февраля 2020 года.
  23. YUI 2: JSON utility (1 сентября 2020). Дата обращения 22 октября 2020. Архивировано 12 февраля 2020 года.
  24. Learn JSON (7 апреля 2020). Дата обращения 7 апреля 2020. Архивировано 12 февраля 2020 года.
  25. Джереми Гроссмэн. Продвинутые техники атак на веб-приложения, использующие GMail (англ.). WhiteHat Security. Дата обращения 23 сентября 2020. 35. Архивировано 12 февраля 2020 года.

 from __future__ import * » Remote JSON - JSONP. Bob.pythonmac.org. Дата обращения 8 сентября 2020. Архивировано 12 февраля 2020 года.

  1. Almeida, Jonas. JSON, JSONP, JSONPP? (неопр.). — S3DB, 2020. — 11 June.
  2. RIAspot. JSON P for Cross Site XHR (недоступная ссылка). Архивировано 5 декабря 2020 года.
  3. Когда использовать неструктурированные типы данных в PostgreSQL Сравнение Hstore vs. JSON vs. JSONB (рус.). Дата обращения 4 июля 2020.
  4. Чем PostgreSQL лучше других SQL баз данных с открытым исходным кодом. Часть 1 (рус.). Дата обращения 4 июля 2020.

Эта работа не подходит?

Если данная работа вам не подошла, вы можете заказать помощь у наших экспертов.
Оформите заказ и узнайте стоимость помощи по вашей работе в ближайшее время! Это бесплатно!


Заказать помощь

Похожие работы

Дипломная работа Базы данных
2009 год 75 стр.
Диплом Проект базы данных детского сада
diplomstud
Дипломная работа Базы данных
2018 год 97 стр.
Диплом Информатизация контроля качества изделий
bugalter

Дипломная работа

от 2900 руб. / от 3 дней

Курсовая работа

от 690 руб. / от 2 дней

Контрольная работа

от 200 руб. / от 3 часов

Оформите заказ, и эксперты начнут откликаться уже через 10 минут!

Узнай стоимость помощи по твоей работе! Бесплатно!

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