Введение 4
Глава 1. Основы распределенных баз данных 5
Основные определения 5
Фундаментальный принцип 6
Архитектура распределенных СУБД 11
Глава 2. Основы NoSQL 14
Системы управления базами данных NoSQL 14
Виды NoSQL 14
Архитектура NoSQL баз данных 18
Принципы работы 20
Глава 3. СУБД MongoDB 23
Основные характеристики 23
Варианты использования 24
Инструменты MongoDB 25
Драйвер MongoDB 25
Визуальные инструменты 26
Устройство базы данных 26
Структура документа 27
Создание базы данных с помощью C# 28
Модель данных 29
Сохранение документов 29
Поиск документа в базе данных 31
Редактирование документа 32
Удаление документа 33
Глава 4. Клиентское приложение 35
Постановка задачи 35
Основные компоненты ASP.NET MVC 35
Общая схема взаимодействия 36
Разработка приложения 37
Модель данных 37
Аккаунт администратора 38
Главная страница 39
Поиск лекарственного препарата 40
2
Просмотр информации о препарате 40
Редактирование и удаление 41
Добавление нового препарата 42
Заключение 44
Источники 46
Приложение 48
На сегодняшний день наиболее остро стоит проблема обработки и хранения больших объемов различных данных. Причем недостаточно просто хранить данные, хранение должно быть максимально оптимальным и систематизированным. Для решения этой проблемы активно используются системы распределенных баз данных. Такие системы являются одними из самых эффективных и наиболее простых способов для обработки и хранения больших объемов различной информации. Для этих целей традиционно используются реляционные базы данных, но относительно недавно стали активно внедряться и, так называемые, нереляционные, которые успешно заняли свою нишу в проектировании баз данных. При решении некоторых задач такие базы имеют ряд преимуществ по сравнению с традиционными.
Цель работы:
Показать, что применение нереляционной СУБД при решении некоторых прикладных задач может быть эффективнее, чем применение реляционной СУБД.
Задачи:
• Рассмотреть устройство и основные архитектуры распределенных баз данных.
• Рассмотреть основные принципы работы нереляционных баз данных.
• Сформулировать практическую задачу, которая эффективно решается с использованием нереляционной СУБД.
• Разработать нереляционную документо-ориентированную базу данных, которая решит поставленную задачу, используя СУБД MongoDB.
• Создать клиентское ASP.NET MVC приложение, которое реализует все требуемые поставленной задачей действия с базой данных.
Распределенные базы данных являются мощным инструментом для хранения и обработки больших потоков данных. С помощью них можно работать с удаленной информацией; причем конечный пользователь практически не заметит разницы в работе с удаленными или локальными данными, что достигается средствами СУБД. Они повышают надежность, доступность и эффективность всей системы в целом и сокращают издержки на использование данных. Многообразие различных архитектур позволяет создать именно такую распределенную систему, которая необходима для конкретной задачи. Такие распределенные системы могут быть как реляционными, так и нереляционными.
Нереляционные базы данных относительно молодая концепция хранения и обработки данных, но уже достаточно неплохо себя зарекомендовавшая. Они позволяют решать некоторые задачи более эффективно, чем традиционные реляционные, что можно увидеть на примере решения практической задачи.
СУБД MongoDB является одной из самых распространенных и широко используемых нереляционных документо-ориентированных систем управления базами данных. Она достаточно универсальна, проста в использовании, имеет огромное количество инструментов, которые можно использовать при решении задач различной сложности и направленности.
Фреймворк ASP.NET MVC позволяет работать с различными видами и типами баз данных, в том числе и с нереляционными. Это один из самых популярных на сегодняшний день фреймворков, который реализует шаблон Model-View-Controller (MVC). Данный шаблон основан на взаимодействии трех отдельных компонентов: модели, представления, контроллера. Такое разделение позволяет работать с каждым компонентом индивидуально, что эффективно сказывается на всей работе в целом.
В ходе данной работы был решен ряд задач. Было рассмотрено устройство распределенных баз данных, их основные архитектуры. Описаны основы нереляционных баз данных, их виды, применение каждого вида для решения конкретных задач, преимущества перед реляционными базами; проанализированы ситуации, когда следует и когда не следует использовать нереляционную СУБД. Сформулирована практическая задача. Кроме того, была рассмотрена СУБД MongoDB, ее преимущества и недостатки, основные инструменты и возможности.
В практической части работы была разработана документо-ориентированная база данных лекарственных препаратов для сети аптек с использованием СУБД MongoDB. А также создано клиентское приложение, позволяющее осуществлять действия над базой данных, описанные в практической задаче.
1. К. Дж. Дейт, Введение в системы баз данных. - 8 изд. - М.: Вильямс, 2005.
2. Арсеньев Б.П., Яковлев С.А. Интеграция распределенных баз данных. - Спб.: Лань, 2001.
3. Распределенные информационные системы и базы данных // citforum.ck.ua URL: http://citforum.ck.ua/database/kbd96/45.shtml(дата обращения: 10.12.2017).
4. Сравнительный анализ технологий CORBA и COM // http://www.interface.ru/(дата обращения: 11.12.2017).
5. Технология COM, DCOM // http://bourabai.kz URL: http://bourabai.kz/alg/(дата обращения: 10.12.2017).
6. Вложенные и распределенные транзакции. Двухфазный протокол фиксации транзакций // https://www.intuit.ru/(дата обращения: 10.12.2017).
7. Сравнение NoSQL систем управления базами данных //
http://devacademy.ru URL: http://devacademy.ru/posts/nosql/(дата
обращения: 10.04.2018).
8. Базы данных SQL, NoSQL и различия в моделях баз данных // http://devacademy.ru URL: http://devacademy.ru/posts/sql-nosql/(дата обращения: 10.04.2018).
9. NoSQL - коротко о главном // https://habr.com URL: https://habr.com/company/oleg-bunin/blog/319052/(дата обращения: 12.04.2018).
10. Установка и настройка базы данных MongoDB // https://o7planning.org
URL: https://o7planning.org/ru/10265/installing-and-configuring-
mongodb-database (дата обращения: 15.04.2018).
11. Установка и использование RoboMongo - визуальный инструмент для
MongoDB // https://o7planning.org URL:
https://o7planning.org/ru/10273/installing-and-using-robomongo (дата
обращения: 15.04.2018).
12. MongoDB // https://ru.wikipedia.org URL:
https://ru.wikipedia.org/wiki/MongoDB(дата обращения: 16.04.2018).
13. MongoDB: Что такое, для чего нужен и где использовать // https://hackerx.ru/ URL: https://hackerx.ru/chto-takoe-mongodb/(дата обращения: 17.04.2018).
14. Введение в MongoDB // https://mkdev.me URL:
https://mkdev.me/posts/vvedenie-v-mongodb (дата обращения:
20.04.2018).
15. MySQL и MongoDB — когда и что лучше использовать // https://habr.com URL: https://habr.com/post/322532/(дата обращения: 20.04.2018).
16. Онлайн-руководство по MongoDB // https://metanit.com URL: https://metanit.com/nosql/mongodb/(дата обращения: 25.04.2018).
17. Руководство по ASP.NET MVC 5 // https://metanit.com URL:
https://metanit.com/sharp/mvc5/(дата обращения: 25.04.2018).
18. Онлайн-книга "Изучаем jQuery"// https://metanit.com URL: https://metanit.com/web/jquery/(дата обращения: 27.04.2018).