Какво е MongoDB? Въведение, архитектура, характеристики и усилвател; Пример

Съдържание:

Anonim

Какво е MongoDB?

MongoDB е ориентирана към документи NoSQL база данни, използвана за съхранение на голям обем данни. Вместо да използва таблици и редове, както в традиционните релационни бази данни, MongoDB използва колекции и документи. Документите се състоят от двойки ключ-стойност, които са основната единица данни в MongoDB. Колекциите съдържат набори от документи и функции, което е еквивалентно на релационни таблици на база данни. MongoDB е база данни, която се появи около средата на 2000-те.

В този урок ще научите -

  • Функции на MongoDB
  • Пример за MongoDB
  • Ключови компоненти на архитектурата MongoDB
  • Защо да използваме MongoDB
  • Моделиране на данни в MongoDB
  • Разлика между MongoDB и RDBMS

Функции на MongoDB

    1. Всяка база данни съдържа колекции, които от своя страна съдържат документи. Всеки документ може да бъде различен с различен брой полета. Размерът и съдържанието на всеки документ могат да бъдат различни един от друг.
    2. Структурата на документа е по-скоро в съответствие с начина, по който разработчиците конструират своите класове и обекти на съответните им програмни езици. Разработчиците често казват, че техните класове не са редове и колони, а имат ясна структура с двойки ключ-стойност.
    3. Редовете (или документите, както се наричат ​​в MongoDB) не трябва да имат предварително дефинирана схема. Вместо това полетата могат да се създават в движение.
    4. Наличният модел на данни в MongoDB ви позволява да представяте по-лесно йерархични връзки, да съхранявате масиви и други по-сложни структури.
  1. Мащабируемост - Средите MongoDB са много мащабируеми. Компаниите по света са дефинирали клъстери, като някои от тях изпълняват над 100 възела с около милиони документи в базата данни

Пример за MongoDB

Примерът по-долу показва как документ може да бъде моделиран в MongoDB.

  1. Полето _id се добавя от MongoDB за уникално идентифициране на документа в колекцията.
  2. Това, което можете да забележите, е, че данните за поръчката (OrderID, Product и Quantity), които в RDBMS обикновено се съхраняват в отделна таблица, докато в MongoDB те всъщност се съхраняват като вграден документ в самата колекция. Това е една от ключовите разлики в начина на моделиране на данните в MongoDB.

Ключови компоненти на архитектурата MongoDB

По-долу са дадени някои от често срещаните термини, използвани в MongoDB

  1. _id - Това е поле, задължително във всеки документ на MongoDB. Полето _id представлява уникална стойност в документа MongoDB. Полето _id е като основния ключ на документа. Ако създадете нов документ без поле _id, MongoDB автоматично ще създаде полето. Така например, ако видим примера на горната таблица на клиентите, Mongo DB ще добави 24-цифрен уникален идентификатор към всеки документ в колекцията.
_Документ за самоличност Клиентски номер Потребителско име OrderID
563479cc8a8a4246bd27d784 11. Гуру99 111
563479cc7a8a4246bd47d784 22. Тревор Смит 222
563479cc9a8a4246bd57d784 33 Никол 333
  1. Събиране - Това е групиране на документи на MongoDB. Колекцията е еквивалент на таблица, която се създава във всеки друг RDMS като Oracle или MS SQL. Съществува колекция в рамките на една база данни. Както се вижда от въведението, колекциите не налагат никаква структура.
  2. Курсор - Това е указател към резултата от дадена заявка. Клиентите могат да итерират през курсора, за да извлекат резултати.
  3. База данни - Това е контейнер за колекции като в RDMS, където е контейнер за таблици. Всяка база данни получава собствен набор от файлове във файловата система. Сървърът на MongoDB може да съхранява множество бази данни.
  4. Документ - Записът в колекция на MongoDB се нарича основно документ. Документът от своя страна ще се състои от име на поле и стойности.
  5. Поле - двойка име-стойност в документ. Документът има нула или повече полета. Полетата са аналогични на колоните в релационни бази данни.

    Следващата диаграма показва пример за полета с двойки стойности ключ. Така че в примера по-долу CustomerID и 11 е една от двойката ключови стойности, дефинирани в документа.

  1. JSON - Това е известно като JavaScript Object Notation. Това е четим от човека формат на обикновен текст за изразяване на структурирани данни. Понастоящем JSON се поддържа в много езици за програмиране.

Само кратка бележка за ключовата разлика между полето _id и нормалното поле за събиране. Полето _id се използва за уникално идентифициране на документите в колекция и се добавя автоматично от MongoDB, когато колекцията е създадена.

Защо да използвам MongoDB?

По-долу са малкото причини, поради които човек трябва да започне да използва MongoDB

  1. Ориентиран към документи - Тъй като MongoDB е база данни NoSQL тип, вместо да има данни във формат на релационен тип, той съхранява данните в документи. Това прави MongoDB много гъвкав и приспособим към реалната бизнес ситуация и изисквания.
  2. Специални заявки - MongoDB поддържа търсене по поле, заявки за диапазон и търсения с регулярни изрази. Могат да се правят заявки за връщане на конкретни полета в документите.
  3. Индексиране - Индексите могат да бъдат създадени за подобряване на ефективността на търсенията в MongoDB. Всяко поле в MongoDB документ може да бъде индексирано.
  4. Репликация - MongoDB може да осигури висока наличност с комплекти реплики. Комплектът реплики се състои от два или повече екземпляра на mongo DB. Всеки член на набор от реплики може да действа в ролята на основната или вторичната реплика по всяко време. Основната реплика е основният сървър, който взаимодейства с клиента и изпълнява всички операции за четене / запис. Вторичните реплики поддържат копие на данните на първичната, използвайки вградена репликация. Когато основната реплика се провали, комплектът реплики автоматично превключва към вторичния и след това се превръща в първичен сървър.
  5. Балансиране на натоварването - MongoDB използва концепцията за рязко оразмеряване, за да мащабира хоризонтално чрез разделяне на данните в множество екземпляри на MongoDB. MongoDB може да работи върху множество сървъри, балансирайки натоварването и / или дублирайки данни, за да поддържа системата работеща и работеща в случай на хардуерен отказ.

Моделиране на данни в MongoDB

Както видяхме от раздела Въведение, данните в MongoDB имат гъвкава схема. За разлика от базите данни на SQL, където трябва да имате декларирана схема на таблица, преди да вмъкнете данни, колекциите на MongoDB не налагат структура на документите. Този вид гъвкавост е това, което прави MongoDB толкова мощен.

Когато моделирате данни в Монго, имайте предвид следните неща

  1. Какви са нуждите на приложението - Разгледайте бизнес нуждите на приложението и вижте какви данни и вид данни са необходими за приложението. Въз основа на това се уверете, че структурата на документа е взета по съответния начин.
  2. Какви са моделите за извличане на данни - Ако предвиждате интензивно използване на заявки, помислете за използването на индекси във вашия модел данни, за да подобрите ефективността на заявките.
  3. Случват ли се чести вмъквания, актуализации и премахвания в базата данни? Преосмислете използването на индекси или включете шардинг, ако е необходимо, във вашия модел за моделиране на данни, за да подобрите ефективността на цялостната си среда MongoDB.

Разлика между MongoDB и RDBMS

По-долу са някои от ключовите термични разлики между MongoDB и RDBMS

RDBMS MongoDB Разлика
Таблица колекция В RDBMS таблицата съдържа колоните и редовете, които се използват за съхраняване на данните, докато в MongoDB същата тази структура е известна като колекция. Колекцията съдържа документи, които от своя страна съдържа полета, които от своя страна са двойки ключ-стойност.
Ред Документ В RDBMS редът представлява един, имплицитно структуриран елемент от данни в таблица. В MongoDB данните се съхраняват в документи.
Колона Поле В RDBMS колоната обозначава набор от стойности на данни. Те в MongoDB са известни като Fields.
Присъединява се Вградени документи В RDBMS данните понякога се разпространяват в различни таблици и за да се покаже пълен изглед на всички данни, понякога се формира съединение между таблици, за да се получат данните. В MongoDB данните обикновено се съхраняват в една колекция, но се разделят с помощта на вградени документи. Така че няма концепция за присъединяване в MongoDB.

Освен разликите между термините, по-долу са показани няколко други разлики

  1. Релационните бази данни са известни с налагането на целостта на данните. Това не е изрично изискване в MongoDB.
  2. RDBMS изисква данните да се нормализират първо, така че да могат да предотвратят сираци записи и дублирания. Нормализирането на данните след това има изискването за повече таблици, което след това ще доведе до повече обединения на таблици, като по този начин се изискват повече ключове и индекси.

    Тъй като базите данни започват да растат, производителността може да започне да се превръща в проблем. Отново това не е изрично изискване в MongoDB. MongoDB е гъвкав и не се нуждае от първоначално нормализиране на данните.