Шта је МонгоДБ?
МонгоДБ је НоСКЛ база података оријентисана на документе која се користи за велико складиштење података. Уместо да користи табеле и редове као у традиционалним релационим базама података, МонгоДБ користи колекције и документе. Документи се састоје од парова кључ / вредност који су основна јединица података у МонгоДБ-у. Колекције садрже скупове докумената и функције што је еквивалент табелама релационих база података. МонгоДБ је база података која је изашла на свет око средине 2000-их.
У овом упутству ћете научити-
- МонгоДБ карактеристике
- Пример МонгоДБ
- Кључне компоненте МонгоДБ архитектуре
- Зашто користити МонгоДБ
- Моделирање података у МонгоДБ
- Разлика између МонгоДБ и РДБМС
МонгоДБ карактеристике
- Свака база података садржи колекције које пак садрже документе. Сваки документ може бити различит са различитим бројем поља. Величина и садржај сваког документа могу се међусобно разликовати.
- Структура докумената је више у складу са начином на који програмери конструишу своје класе и објекте на својим програмским језицима. Програмери ће често рећи да њихове класе нису редови и колоне већ имају јасну структуру са паровима кључ / вредност.
- Редови (или документи како се називају у МонгоДБ) не морају претходно да имају дефинисану шему. Уместо тога, поља се могу креирати у лету.
- Модел података доступан у МонгоДБ-у омогућава вам лакше представљање хијерархијских односа, складиштење низова и других сложенијих структура.
- Скалабилност - МонгоДБ окружења су врло скалабилна. Компаније широм света дефинисале су кластере, од којих неки имају више од 100 чворова са око милиона докумената у бази података
Пример МонгоДБ
Следећи пример показује како се документ може моделирати у МонгоДБ-у.
- МонгоДБ додаје поље _ид за јединствену идентификацију документа у колекцији.
- Оно што можете приметити је да ће се подаци о поруџбини (ИД наруџбе, производ и количина) који се у РДБМС обично чувају у посебној табели, док се у МонгоДБ заправо чувају као уграђени документ у самој колекцији. Ово је једна од кључних разлика у начину моделирања података у МонгоДБ-у.
Кључне компоненте МонгоДБ архитектуре
Испод је неколико уобичајених израза који се користе у МонгоДБ-у
- _ид - Ово је поље обавезно у сваком МонгоДБ документу. Поље _ид представља јединствену вредност у МонгоДБ документу. Поље _ид је попут примарног кључа документа. Ако креирате нови документ без _ид поља, МонгоДБ ће аутоматски креирати поље. Тако, на пример, ако видимо пример горње табеле купаца, Монго ДБ ће додати јединствени идентификатор од 24 цифре сваком документу у колекцији.
_Ид | Идентификација купца | Име клијента | ИД поруџбине |
---|---|---|---|
563479цц8а8а4246бд27д784 | 11 | Гуру99 | 111 |
563479цц7а8а4246бд47д784 | 22 | Тревор Смитх | 222 |
563479цц9а8а4246бд57д784 | 33 | Ницоле | 333 |
- Збирка - Ово је груписање МонгоДБ докумената. Колекција је еквивалент табеле која се креира у било ком другом РДМС-у, као што је Орацле или МС СКЛ. Колекција постоји у оквиру једне базе података. Као што се види из увода, колекције не примењују било какву структуру.
- Курсор - Ово је показивач на резултат скупа упита. Клијенти могу да прелазе кроз курсор да би добили резултате.
- База података - Ово је контејнер за колекције као у РДМС-у, где је контејнер за табеле. Свака база података добија сопствени скуп датотека на систему датотека. МонгоДБ сервер може чувати више база података.
- Документ - Запис у збирци МонгоДБ у основи се назива документом. Документ ће се пак састојати од имена поља и вредности.
- Поље - пар имена и вредности у документу. Документ има нула или више поља. Поља су аналогна колонама у релационим базама података.
Следећи дијаграм приказује пример поља са паровима вредности Кључ. Дакле, у примеру испод ЦустомерИД и 11 је један од парова вредности кључева дефинисаних у документу.
- ЈСОН - Ово је познато као ЈаваСцрипт Објецт Нотатион. Ово је читљив, обичан текст формата за изражавање структурираних података. ЈСОН је тренутно подржан на многим програмским језицима.
Само кратка напомена о кључној разлици између поља _ид и нормалног поља сакупљања. Поље _ид се користи за јединствену идентификацију докумената у колекцији и аутоматски га додаје МонгоДБ када се колекција креира.
Зашто користити МонгоДБ?
Испод је неколико разлога зашто би неко почео да користи МонгоДБ
- Оријентисан на документе - Пошто је МонгоДБ база података типа НоСКЛ, уместо да има податке у формату релационог типа, податке чува у документима. Ово чини МонгоДБ врло флексибилним и прилагодљивим стварној ситуацији и захтевима пословног света.
- Ад хоц упити - МонгоДБ подржава претрагу по пољима, упите опсега и претраге регуларних израза. Могу се поставити упити за враћање одређених поља у документима.
- Индексирање - Индекси се могу креирати да би се побољшале перформансе претраживања у МонгоДБ-у. Било које поље у МонгоДБ документу може бити индексирано.
- Репликација - МонгоДБ може да обезбеди високу доступност са скуповима реплика. Скуп реплика састоји се од две или више инстанци монго ДБ-а. Сваки члан скупа реплика може у било ком тренутку да глуми улогу примарне или секундарне реплике. Примарна реплика је главни сервер који комуницира са клијентом и изводи све операције читања / писања. Секундарне реплике задржавају копију података примарног користећи уграђену репликацију. Када примарна реплика закаже, скуп реплика се аутоматски пребацује на секундарни и тада постаје примарни сервер.
- Балансирање оптерећења - МонгоДБ користи концепт оштрења за хоризонтално скалирање поделом података на више инстанци МонгоДБ. МонгоДБ може да прегази више сервера, уравнотежујући оптерећење и / или дуплирајући податке како би систем одржавао и радио у случају квара хардвера.
Моделирање података у МонгоДБ
Као што смо видели из одељка Увод, подаци у МонгоДБ имају флексибилну шему. За разлику од СКЛ база података, где пре уметања података морате имати декларисану шему табеле, МонгоДБ колекције не примењују структуру докумената. Ова врста флексибилности чини МонгоДБ тако моћним.
Када моделирате податке у Монгу, имајте на уму следеће ствари
- Које су потребе апликације - Погледајте пословне потребе апликације и погледајте који су подаци и врста података потребни за апликацију. На основу овога, осигурајте да се о структури документа одлучује на одговарајући начин.
- Који су обрасци дохвата података - Ако предвиђате интензивну употребу упита, размислите о употреби индекса у вашем моделу података да бисте побољшали ефикасност упита.
- Да ли се у бази података дешавају честа уметања, ажурирања и уклањања? Преиспитајте употребу индекса или укључите осенчење ако је потребно у ваш модел дизајнирања података како бисте побољшали ефикасност вашег целокупног МонгоДБ окружења.
Разлика између МонгоДБ и РДБМС
Испод су неке од кључних терминних разлика између МонгоДБ и РДБМС
РДБМС | МонгоДБ | Разлика |
---|---|---|
Сто | Збирка | У РДБМС, табела садржи колоне и редове који се користе за складиштење података, док је у МонгоДБ иста структура позната као колекција. Збирка садржи документе који заузврат садрже поља, која су пак парови кључ / вредност. |
Ред | Документ | У РДБМС, ред представља једну, имплицитно структурирану ставку података у табели. У МонгоДБ подаци се чувају у документима. |
Колона | Поље | У РДБМС-у колона означава скуп вредности података. Ови у МонгоДБ-у су познати као поља. |
Придружује се | Уграђени документи | У РДБМС-у се подаци понекад шире по различитим табелама, а да би се приказао потпун приказ свих података, понекад се формира спој преко табела да би се добили подаци. У МонгоДБ-у се подаци обично чувају у једној колекцији, али се одвајају помоћу уграђених докумената. Дакле, у МонгоДБ-у не постоји концепт удруживања. |
Поред разлика у терминима, у наставку је приказано још неколико разлика
- Релационе базе података су познате по наметању интегритета података. Ово није изричит услов у МонгоДБ-у.
- РДБМС захтева да се подаци прво нормализују, тако да могу спречити остатке записа и дупликата. Нормализовање података тада захтева више табела, што ће резултирати већим бројем спајања табела, што захтева више кључева и индекса.
Како базе података почињу да расту, перформансе могу почети да постају проблем. Опет, ово није изричит захтев у МонгоДБ-у. МонгоДБ је флексибилан и не требају подаци да би се прво нормализовали.