Что такое MongoDB?



MongoDB - это нереляционная база данных (часто известный как No-SQL). Термин No-SQL очень популярен, но он контрастирует с тем фактом, что SQL не имеет ничего общего с реляционными базами данных (табличными БД), кроме того, что это просто язык запросов. Это совершенно разные вещи, поэтому мне кажется немного странным, что вместо использования нереляционной базы данных они используют No-SQL.

Итак, прежде чем я перейду к объяснению No-SQL, позвольте мне объяснить существующую систему. На сегодняшний день наиболее широко используемой базой данных является реляционная система баз данных. Модель данных для RDBMS заключается в том, что она имеет предопределенную схему в виде таблиц. Таким образом, она выглядит примерно так,

Так что же в этом такого значительного?

  • Приложение знает, что значения, которые должны попасть в базу данных, это (текст, текст, число, число, число), и когда запись будет получена, она получит что-то очень похожее. Поэтому вам не нужно делать разбор и обработку, так как данные очень чистые (все столбцы имеют одинаковый тип и предопределенную структуру).
  • Вычисления очень просты, предположим, что приложение хочет суммировать зарплату, оно знает, что последний столбец - это зарплата, и может просто сложить эти значения.
  • РСУБД хорошо оптимизированы, поэтому при выполнении запросов они обеспечивают их скорейшее выполнение. Вы можете использовать “EXPLAIN”, чтобы увидеть, как RDBMS будет выполнять ваш запрос, и вы увидите, что в зависимости от количества данных, которые вам нужно обработать, поток выполнения будет меняться, даже если в существующем запросе нет никаких изменений. (Так что с точки зрения разработчика это действительно спасение жизни, теперь мне не нужно беспокоиться о производительности и многих других вещах).
  • RDMS так хороши, и я бы посоветовал использовать RDMS до тех пор, пока вы можете избежать неприятностей. ВСЕГДА использовать РСУБД.

    Теперь возникает вопрос: если РСУБД настолько хороши, то зачем нужен No-SQL?

  • Потому что иногда приложения не могут иметь предопределенную схему, поэтому они не могут быть представлены в терминах РСУБД.
  • Другая причина - меньшая поддержка масштабирования. В конечном итоге, вам придется покупать Teradata или MySQL’s db системы, поддерживающие масштабирование, которые стоят очень дорого.
  • И количество времени, которое dbadmin тратит на разработку схемы для базы данных, огромно. В некоторых приложениях проектирование базы данных может занять годы.
  • В итоге все в ИТ-отделе решили, что нам нужно новое решение, которое занимает меньше времени и имеет меньше ограничений. Так они придумали систему No-SQL. Сейчас существует множество No-SQL систем, некоторые из них хороши для определенных вещей, а другие хороши для других вещей.

    MongoDB - это система, которая является No-SQL. Поэтому вместо хранилища, ориентированного на строки, в ней используется хранилище, ориентированное на документы. Документ в MongoDB очень похож на JSON, как показано ниже.

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

    Такая плохая часть,

  • Теперь разработчики должны убедиться, что в документе поддерживается некая последовательность для правильного поиска, поскольку схемы нет. Поэтому разработчики должны убедиться, что все документы имеют одно уникальное поле (_id), по которому можно получить документ, или какое-то другое поле, если id не требуется. Они должны быть уверены, что все документы будут содержать хотя бы несколько общих полей, чтобы сохранялась некоторая структура. Так что это головная боль.
  • MongoDB использует много оперативной памяти, поэтому выбирайте ее с умом. В некоторых случаях она работает медленнее, чем другие No-SQL системы.
  • Теперь в ваших проектах не будет стандартов, потому что нет структуры данных, и все проекты будут использовать различные No-SQL базы данных, которые подходят для их нужд. В то время как в RDBMS, по крайней мере, вы знали, что независимо от того, куда вы идете, это вернет вам кучу строк и столбцов, которые могут быть запрошены с помощью одного и того же языка, называемого SQL. (если вы, конечно, используете SQL)
  • Хорошая часть,

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

    491   0  

    Comments

      Ничего не найдено.