Як база даних MongoDB може краще організувати ваші дані

Будь-хто, хто коли-небудь працював з базами даних, які організовують дані в таблиці, також звані реляційними базами даних, ймовірно, може детально розповісти про його недоліки. Як би не була велика система зберігання даних, вона не без проблем і не призначена для інтерпретації людьми, що робить організацію з нею заплутаною, надлишковою і з крутою кривою навчання.


Звідси і рух NoSQL. SQL означає мову структурованих запитів і використовується для зв'язку з базами даних. Але це не так здорово в більш широкому масштабі. Коли, наприклад, програми стають вірусними, необхідна підтримка, щоб користувачі могли використовувати додаток без будь-яких проблем. Але SQL в таких масштабах ускладнюється, і це набагато складніше, ніж багато розробників.

NoSQL полегшує зберігання та організацію даних, тому що прихильники наукової думки NoSQL прагнули створити базу даних, яка працювала б з великими наборами даних, масштабувалася і була організована так, як думають люди, і могла легко читатися людьми. MongoDB - одна з таких баз даних, і вона змінює спосіб створення сайтів розробниками.

Що таке MongoDB?

MongoDB (від «humongous») - це кроссплатформенна документно-орієнтована база даних, що використовується як альтернатива MySQL. Але що це означає? Ну, база даних - це структурований набір даних. Однак, MongoDB відрізняється тим, що має тенденцію бути менш суворим щодо структури цих даних. Інформація згрупована, а не розбита на пов'язані документи і таблиці, такі як MySQL, популярна СУБД або система управління реляційними базами даних, яка використовує SQL.

Багато баз даних, що використовують SQL, зберігають дані в таблицях на сторінках. Подумайте про щось на зразок електронної таблиці Excel зі шматочками коду. Ці сторінки - найменші фрагменти даних на сервері, і кожна сторінка присвячена одній таблиці. Це стає заплутаним у великих масштабах, тоді як з MongoDB розробник може вирішити, як структурувати інформацію відповідно до їх потреб.

MongoDB використовує BSON для зберігання інформації. BSON (комбінація «двоїчного» і «JSON» або JavaScript Object Notation) може розглядатися як двійкове або числове подання документів JSON. JSON - це формат відкритого стандарту (наприклад, з відкритим вихідним кодом) для організації даних.

Крім того, додано запис підтримки певних типів даних, які не підтримуються в JSON, наприклад, тип даних «дата», який зазвичай не підтримується і тому не може використовуватися розробником. У цьому випадку розробник не зможе включити будь-яку дату як частину даних.

Як правило, ці дані організовані в документи. JSON передає дані, використовуючи документи, які можуть бути легко прочитані людьми, однак це не відноситься до BSON. JSON також зазвичай використовується для передачі даних між сервером і програмою, а також в якості загального носія даних.

Документи не повинні бути структуровані певним чином відповідно до збірки або групи пов'язаних об'єктів, в які вони організовані, що дозволяє розробнику дуже легко приступити до роботи з MongoDB. Це призвело до того, що він став однією з найпопулярніших баз даних NoSQL.

Що відрізняє його від MySQL?

Оскільки MySQL є, мабуть, найбільш широко використовуваною СУБД, хоча вона і може бути помилковою, цілком природно, що альтернативи можуть з'явитися. Оскільки NoSQL є альтернативою SQL, MongoDB вважається альтернативою MySQL. MySQL використовує таблиці для організації своїх даних і заснована на класичній реляційній моделі даних двадцятого століття, хоча, як і MongoDB, її можна модифікувати для поліпшення функціональності.

Тим не менш, два сильно розрізняються. Вони призначені для різних цілей, для одного. MongoDB більше призначений для більш великого (дуже великого) масштабу, в той час як MySQL може впоратися тільки з такою кількістю речей. Як згадувалося раніше, MySQL використовує таблиці для організації даних, які можуть виявитися дуже заплутаними. Тим не менш, вони обидві є дуже хорошими системами, і насправді гібриди впроваджуються на певних сайтах в Інтернеті. Craigslist відомий як один з найбільш успішних сайтів, що використовують гібрид MongoDB/MySQL.

Як це працює?

MongoDB працює шляхом зберігання даних у документах, схожих на JSON. Ці документи мають одне або декілька полів (об'єкти або значення, що містяться в класі або структурі), які включають масиви (серії об'єктів однакового розміру та типу) та вкладені документи (документ, який складає частину більшого документа). Ці поля можуть бути встановлені за бажанням розробника відповідно до їх потреб.

Хоча організація цього зазвичай є складним завданням, BSON спрощує завдання, просто групуючи документи за типом і розміром, а не розбиваючи їх на дуже маленькі фрагменти даних, як це робить SQL, і організовуючи дані на основі іншої інформації. Завдяки такій гнучкості розробники можуть розвивати збір даних, також званий моделлю даних, для задоволення своїх потреб.

Розробники можуть отримати доступ до документів через драйвери, які вони можуть прочитати і зрозуміти, а документи доступні найпопулярнішими сучасними мовами програмування. У MongoDB документи природним чином зіставляються з об'єктами, тому немає необхідності в шарі ORM (об'єктно-реляційне відображення), який вручну відображає документи на відповідні об'єкти. Простіше кажучи, документи природним чином пов'язані з об'єктами, тому для їх підключення не потрібна окрема команда або програма.

MongoDB використовує оболонку на основі JavaScript і підтримує розробників, які пишуть власний код з використанням функцій JavaScript, і, ймовірно, стане більш поширеним, оскільки JavaScript продовжує розвиватися. в популярності.

Хто це використовує?

Незважаючи на те, що MongoDB ще відносно молодий, він використовується на багатьох популярних веб-сайтах. До них належать діловий журнал Forbes, а також подарунковий Buzzfeed.

Forbes скористався MongoDB для швидкої розробки нового веб-і мобільного портфоліо. Швидкість і міць MongoDB дозволили їм створити веб-сайт за два місяці і мобільний додаток за один місяць. Це сильно вплинуло на їх читацьку активність і трафік. За словами розробників MongoDB:

За ніч мобільний трафік підскочив з 5% до 15% загального трафіку Forbes.com і швидко зріс до 50%.

Buzzfeed страждає від проблем, з якими стикається будь-яка велика медіа-організація. Їх розподілені співробітники публікують величезну кількість контенту., для величезної аудиторії. MongoDB дозволяє Buzzfeed швидко масштабуватися залежно від трафіку, який вони отримують, а також визначати, який тип контенту резонує з їх читачами.

Як Ви цим користуєтеся?

MongoDB - відмінний інструмент для розробників веб-додатків, ігор і програмного забезпечення. Ми знаємо, що це швидко і масштабовано. І ми знаємо, що це легко читати і вчитися. Але як ви насправді використовуєте це?

Офіційний сайт MongoDB пропонує користувачам можливість спробувати оболонку MongoDB у своїх браузерах. TutorialsPoint пропонує кілька дуже докладних керівників з використання MongoDB, від початківців до просунутих. На GitHub є також проекти, призначені про MongoDB, в тому числі «Книги Little MongoDB» Карла Сегуїна, ви знайдете майже все, що вам потрібно знати про MongoDB.

Якщо ви просто хочете дізнатися, як встановити MongoDB, обов'язково ознайомтеся з цим керівництвом на офіційному сайті MongoDB.

Ви повинні використовувати це?

Це залежить від вашої індивідуальної ситуації.

Як би не був великий MongoDB, він не позбавлений недоліків. Це не відповідає кислоті. ACID, що означає атомарність, узгодженість, ізоляцію і довговічність, є набором властивостей, які забезпечують правильну обробку і виконання транзакцій бази даних або роботи, що виконується в базі даних. Бази даних NoSQL іноді не сумісні з ACID, що обмежує їх продуктивність і надійність.

MongoDB також використовує всю доступну пам'ять як системний кеш. В результаті на комп'ютерах, що працюють в 32-розрядних системах, виникають проблеми з продуктивністю, які можуть займати не більше 4 ГБ пам'яті. Щоб дізнатися більше про використання оперативної пам'яті на вашому комп'ютері, обов'язково прочитайте цю статтю Бреда Джонса.

Оскільки немає необхідності в таблицях з цією базою даних, існує високий ризик того, що розробники будуть ліниві і пишуть неакуратний код, однак цей ризик відноситься практично до всього. У результаті ви отримуєте дублікати даних, тому що немає можливості для приєднання в системі.

Тим не менш MongoDB - це неймовірно швидка і ефективна система, яка може допомогти в підвищенні продуктивності праці розробників.

MongoDB також зручний у використанні, оскільки не вимагає єдиної структури даних для всіх об'єктів, хоча рекомендується встановити її для простоти використання. Структура даних не повинна бути однаковою у всій системі, тому єдиний голос не є абсолютно необхідним.

Нарешті, за словами автора Метью Хьюза, у, команда MongoDB веде відмінний блог з високоякісним, добре написаним технічним контентом, призначеним для технічної аудиторії.

Вивід

Якщо у вас немає системи з достатнім обсягом оперативної пам'яті, яка не підтримує велику базу даних, або ви взагалі не хочете мати велику базу даних, MongoDB не для вас. Він має тенденцію продавати себе тільки у великих масштабах. Для невеликих проектів використання RDBMS, ймовірно, простіше. Однак, якщо вам потрібна швидкість і простота, і ви можете підтримувати систему, можливо, варто розібратися.

Чи є у вас досвід роботи з MongoDB? Хочете спробувати це? Залиште коментар нижче і ми поговоримо!