Reja: Mongodb tushunchasi va uning hususiyatlari



Download 237,83 Kb.
Sana17.02.2020
Hajmi237,83 Kb.
#39964
Bog'liq
MongoDB

Mavzu: MongoDB haqida

Reja:


  • MongoDB tushunchasi va uning hususiyatlari

  • MongoDB ning foydalanuvchiga beradigan imkoniyatlari haqida

  • MongoDB ning tuzilishi va uni litsenziyalash

  • Undan foydalanish holatlar, kompaniya haqida va MongoDB ning ayrim buyruqlari

  • MongoDB va MySql farqi

  • Xulosa

  • Foydalanilgan adabiyotlar

MongoDB ( ingliz tilidan. Humongous - yirik ) - bu ochiq manbali hujjat yo'naltirilgan ma'lumotlar bazasini boshqarish tizimi (DBMS) bo'lib, jadval tartibini tavsiflashni talab qilmaydi. NoSQL sifatida tasniflangan, JSON-ga o'xshash hujjatlar va ma'lumotlar bazasi sxemasidan foydalanadi. Bu C ++ tilida yozilgan.



MongoDB bu sizga kerak bo'lgan so'rov va indeksatsiya bilan kerakli hajm va moslashuvchan bo'lgan hujjatlar bazasi. MongoDB-ning hujjat modeli ishlab chiquvchilarga o'rganish va undan foydalanish uchun oddiy, shu bilan birga har qanday miqyosda eng murakkab talablarni qondirish uchun zarur bo'lgan barcha imkoniyatlarni taqdim etadi.

MongoDB ma'lumotlarni moslashuvchan, JSON-ga o'xshash hujjatlarda saqlaydi , ma'no maydonchalari hujjatdan hujjatga qadar o'zgarishi mumkin va ma'lumotlar tuzilishi vaqt o'tishi bilan o'zgarishi mumkin.

Hujjat namunasi dastur kodidagi ob'ektlarga xaritani beradi va ma'lumotlarni ishlashni osonlashtiradi.

Maxsus so'rovlar, indeksatsiya va real vaqtni yig'ish ma'lumotlaringizga kirish va tahlil qilishning kuchli usullarini ta'minlaydi

MongoDB o'zining bazasida taqsimlangan ma'lumotlar bazasi , shuning uchun yuqori foydalanish imkoniyati, gorizontal miqyos va geografik tarqalish qurilgan va ulardan foydalanish oson.

MongoDB foydalanish uchun bepul . 2018 yil 16 oktabrgacha chiqarilgan versiyalar AGPL ostida nashr etilgan. 2018 yil 16 oktyabrdan keyin chiqarilgan barcha versiyalar, shu jumladan oldingi versiyalar uchun tuzatishlar Server Side Public License (SSPL) v1 ostida nashr etilgan .



MongoDB zamonaviy texnologiyalarning talablariga javob beradigan tarzda yaratilgan bo'lib, sizga quyidagilarga imkon beradi:

  • Hujjat ma'lumotlari modeli - sizga ma'lumotlar bilan ishlashning eng yaxshi usulini taqdim etadi .

  • Taqsimlangan tizimlar dizayni - kerakli ma'lumotlarni ongli ravishda joylashtirishga imkon beradi .

  • Biron bir tajriba sizga istalgan joyda yugurish erkinligini beradi - bu sizga kelajakda ishingizni tasdiqlash va sotuvchini blokirovka qilishni bekor qilish imkonini beradi.

Ushbu imkoniyatlar yordamida siz MongoDB tomonidan qo'llab-quvvatlanadigan aqlli operatsion ma'lumotlar platformasini yaratishingiz mumkin.



MongoDB ning xususiyatlari

Tizim ad-hoc so'rovlarini qo'llab - quvvatlaydi : ular aniq hujjat maydonlarini va maxsus JavaScript funktsiyalarini qaytarishi mumkin . Oddiy iboralarni qidirish qo'llab-quvvatlanadi. Tasodifiy natijalar to'plamini qaytarish uchun so'rovni sozlashingiz mumkin. Indekslarni qo'llab-quvvatlash mavjud .

Tizim replikalar to'plami bilan ishlashi mumkin , ya'ni turli tugunlarda ikki yoki undan ko'p ma'lumot nusxalarini o'z ichiga oladi. Replikatsiya to'plamining har bir misoli istalgan vaqtda asosiy yoki ikkilamchi nusxa sifatida harakat qilishi mumkin. Barcha o'qish va yozish operatsiyalari sukut bo'yicha birlamchi replikatsiya bilan bajariladi. Yordamchi replikalar ma'lumotlarning nusxalarini yangilab turadi. Agar asosiy replikatsiya bajarilmasa, replikalar to'plami asosiy nusxaga aylanadigan tanlovni amalga oshiradi. Kichik nusxalar qo'shimcha ravishda o'qish operatsiyalari uchun manbani taqdim etishi mumkin.

Tizim ma'lumotlar bazasi ob'ektlarini segmentatsiyalash ( ingliz sharding ) texnikasidan foydalangan holda gorizontal ravishda o'lchanadi - ularning qismlarini turli klaster tugunlari bo'ylab taqsimlash. Ma'mur segmentatsiya kalitini tanlaydi, bu ma'lumotlar qanday mezonlarga ko'ra tugunlar tomonidan taqsimlanishini belgilaydi (segmentatsiya kalitining xesh qiymatiga qarab). Har bir klaster tuguni so'rovlarni qabul qilishi mumkinligi sababli, yuklarni muvozanatlash ta'minlanadi .

Tizim yuklarni muvozanatlash va ma'lumotlarni ko'paytirish bilan fayllarni saqlash sifatida ishlatilishi mumkin ( Grid File System funktsiyasi , MongoDB drayverlari bilan ta'minlangan). Fayllar va ularning mazmuni bilan ishlash uchun dasturiy ta'minot mavjud. GridFS Nginx va lighttpd uchun plaginlarda ishlatiladi . GridFS faylni qismlarga ajratadi va har bir qismini alohida hujjat sifatida saqlaydi.

MapReduce paradigmasiga muvofiq ishlashi mumkin . Yig'ish doirasi GROUP BY SQL bayonotining analogiga ega . Aggregatsiya operatorlari UNIX quvur liniyalari singari o'tkazilishi mumkin . Ushbu tizim, shuningdek, hujjatlarni yuklash paytida va standart og'ish kabi statistik operatsiyalarni to'plash uchun $ qidiruv operatoriga ega .

Javascript so'rovlarda, yig'ish funktsiyalarida qo'llab-quvvatlanadi (masalan, MapReduce-da).

MongoDB sobit o'lchamdagi to'plamlarni qo'llab-quvvatlaydi. Bunday to'plamlar qo'shib qo'yish tartibini saqlaydi va belgilangan hajmga yetganda, o'zlarini aylanma tampon kabi tutadi .

2018 yil iyun oyida (4.0 versiyada) ACID talablariga javob beradigan bitimlarni qo'llab-quvvatlash qo'shildi.

MongoDb tuzilishi va uni litsenziyalash

MongoDB asosiy dasturlash tillari (C, C ++, C #, Erlang, Go, Haskell, J #, Java, JavaScript, Lisp, Perl, PHP, Python, Ruby, Delphi, Scala) uchun rasmiy drayverlarga ega. Boshqa dasturlash tillari va ramkalari uchun norasmiy yoki jamoatchilik tomonidan qo'llab-quvvatlanadigan juda ko'p sonli dasturlar mavjud.

MongoDB dastlab GNU Affero General Public 3 versiyasi litsenziyasi ostida chiqarilgan va Apache litsenziyasi ostida til drayverlari mavjud. MongoDB GNU Affero Public License (AGPL) asosida bepul taqdim etiladi. 2018 yil oktyabr oyida ishlab chiqarish kompaniyasi AGPL copyleft litsenziyasining SSPL (Server Side Public License) ga nisbatan qattiqroq o'tish to'g'risida e'lon qildi .. Shundan so'ng , ochiq va bepul dasturiy ta'minot ta'riflariga muvofiqligi uchun Ochiq kodli dastur tashabbusi va Bepul dasturiy ta'minot fondi vakillari tomonidan yangi litsenziyani o'rganish boshlandi.

Bundan tashqari, MongoDB qo'shimcha funktsiyalarni (masalan, SASL, LDAP, Kerberos, SNMP bilan integratsiya), boshqaruv vositalarini, monitoring va zaxiralashni, shuningdek qo'llab-quvvatlashni o'z ichiga olgan ma'lumotlar bazasining tijorat versiyasini chiqaradi.



Foydalanish hollari

MongoDB ma'lumotlar bazasi quyidagi dasturlarga mos keladi:



  • tadbirlarni saqlash va ro'yxatdan o'tkazish;

  • hujjatlar va tarkibni boshqarish tizimlari;

  • elektron tijorat;

  • o'yinlar

  • monitoring ma'lumotlari, sensorlar;

  • Mobil ilovalar

  • veb-sahifalarning tezkor ma'lumotlar ombori (masalan, sharhlarni saqlash, reytinglar, foydalanuvchi profillari, foydalanuvchi sessiyalari).

Kompaniya haqida

10gen MongoDB-ni 2007 yilda xizmat mahsuloti sifatida rejalashtirilgan platformaning tarkibiy qismi sifatida ishlab chiqishni boshladi. 2009 yilda kompaniya tijorat ko'magi va boshqa xizmatlarni taklif etuvchi ochiq manbali mahsulot ishlab chiqarish modeliga o'tdi. 2013 yil 27-avgust kuni 10gen o'z nomini MongoDB, Inc. deb o'zgartirdi.

2017 yil 20-oktabrda MongoDB NASDAQ-da ro'yxatdan o'tgan ochiq kompaniyaga aylandi.

MongoDB ning ayrim buyruqlari

Ma'lumotlar bazasi tizimini boshqarish va boshqarish uchun quyidagi buyruqlarni o'rnatish mumkin:



  • mongo - ishlab chiquvchilar va ma'murlarga ma'lumotlar bazalarida ma'lumotlarni ko'rish, kiritish, o'chirish va yangilashga imkon beradigan interfaol qobiq, shuningdek replikatsiya, segmentatsiya, tugunlarni ajratish, JavaScript-ni yoki boshqa ma'lumotlar bazasi so'rovlarini bajarishga imkon beradi;

  • mongostat - bu MongoDB-ning bajarilishi mumkin bo'lgan namunalari uchun statistikalar ro'yxatini to'playdigan buyruq satri vositasi, bu sizga qo'shimchalar, yangilanishlar, o'chirishlar, so'rovlar va buyruqlar sonini, shuningdek, instansiyaning resurs sarfini ko'rish imkoniyatini beradi;

  • mongotop - bu ma'lumotni o'qigan yoki yozgan vaqtni kuzatishni ta'minlaydigan vositadir. Shuningdek, u har bir to'plam darajasida statistikani taqdim etadi;

  • mongosniff - bu MongoDB-ga yuborilgan buyruqlarni ushlab turadigan, saqlaydigan va qaytaradigan vosita;

  • mongoimport va mongoexport - JSON, CSV yoki TSV, boshqa bir qator formatlardan import va eksport qilish vositalari;

  • mongodump va mongorestore - bu ma'lumotlar bazasini zaxira qilish va tiklash uchun vositalar.

MongoDB va MySQL - farq nima?

Til va sxema

Avvalo, MySQL kabi relyatsion ma'lumotlar bazalari ma'lumotlar bazasi bilan interfeys qilish uchun SQL (Strukturalangan so'rovlar tili) nomli tildan foydalanadilar. MongoDB singari aloqador bo'lmagan ma'lumotlar bazalari SQL-dan ma'lumotlar bazasi bilan interfeys uchun foydalanmaydi. Masalan, MongoDB, SQL bilan taqqoslanadigan o'z so'rovlar tilidan foydalanadi, ammo JavaScript-dagi odatiy ob'ektingiz kabi ko'proq ishlatiladi.

Sxemalar yoki ma'lumotlar bazasining tuzilishi haqida gap ketganda, MySQL va MongoDB bir-biridan farq qilishi mumkin emas edi. Unga biron bir ma'lumot kiritishni boshlashdan oldin MySQL sxemasini aniqlashni talab qiladi. Ma'lumotni kiritishni boshlaganingizdan so'ng, sizning sxemangizni o'zgartirish ham dahshat! Boshqa tomondan, MongoDB ma'lumotni saqlashni boshlashdan oldin biron bir sxemani sozlashni talab qilmaydi va sxemani tuzatishni tuzatishda nisbatan sodda. Bunga qo'shimcha ravishda, MySQL jadvaldagi barcha satrlar bir xil ustunlarni ushlab turishini talab qiladi, MongoDB esa bir xil maydonchalarni saqlash uchun to'plamdagi barcha hujjatlarni talab qilmaydi.

Asosiy atamalar

Har qanday til terminologiyasini bilish juda muhim va bu ma'lumotlar bazasi tillaridan farq qilmaydi. Yaxshiyamki MySQL va MongoDB-da ishlatiladigan atamalarning ko'pini bir vaqtning o'zida osongina tushuntirish mumkin, va hatto flip ham. Bu erda asosiy narsa shundaki, MySQL bitta to'plamdan, MongoDB ikkinchisidan foydalanadi. Men ularni ro'yxatga olaman, sarlavhalarda MySQL shartlari chapda, MongoDB shartlari esa o'ngda. Yana bir foydali ingl - bu tuzilmani Excel elektron jadval sifatida tasavvur qilish.



Normallashtirish

MySQL undagi ma'lumotlar normallashtirilganda juda yaxshi ishlaydi, ya'ni takrorlanmaydigan ma'lumotlar guruhiga ega va ular ortiqcha va birlamchi kalitga bog'liqdir. Yong'oq qobig'ida sizning ma'lumotlaringiz bir nechta jadvallar bo'ylab tarqalishini va jadvallar ichidagi ma'lumotlarni takrorlanmaydigan foydali ma'lumotlarga ega bo'lishini xohlaysiz. MongoDB yordamida yuqorida aytilganlarning barchasi derazadan chiqarib yuborilishi mumkin, chunki bu ma'lumotlar bazasining asosiy funktsiyalari uchun unchalik muhim emas va ma'lumotlarni takrorlash juda keng tarqalgan.



MySQL va MongoDB-dan qachon foydalanish

Ma'lum bir ma'lumotlar bazasini joylashtirish uchun ma'lumotlarni normalizatsiya qilish yoki bekor qilish mumkin bo'lsa-da, bu bilan chizish kerak. Agar siz jadvallarning aksariyati o'zaro tartibga solingan bo'lsa, ko'pchilikning o'zaro munosabatlariga tartibga solishni talab qilsangiz, hujjatlaringizni bir-biringizga qo'shib qo'yishingiz uchun MongoDB-ga yopishib olganingiz ma'qul. Boshqa tomondan, agar siz ma'lumotlarni osongina normallashtira olsangiz yoki sizga normalizatsiya qilingan va tuzilgan ma'lumotlarga ehtiyoj sezsangiz, MySQL bu yo'l.

Agar ma'lumotlar bazasi so'rovlarining katta hajmini ko'rib chiqsangiz, tranzaktsiyalarni yoki irqiy shartlarni talab qilsangiz va o'rnatilgan, o'zgarmas, sxemani oldindan belgilashingiz mumkin bo'lsa, MySQL-ga o'tish mumkin, chunki ma'lumotlar saqlangandan so'ng sxemani o'zgartirish murakkab va tavsiya qilinmaydi. .

MongoDB siz murakkab ma'lumotlar turlarini, turli xil sxemalarga olib keladigan nomuvofiq ma'lumotlarni ishlatsangiz yoki belgilangan, o'zgarmas, sxemani oldindan aniqlay olmasangiz, bu sizga sxemani osongina o'zgartirishga imkon beradi.



Xulosa

MySQL ham, MongoDB ham ko'pgina afzalliklar va kamchiliklarni taqdim etadi, ammo odatiy loyiha uchun ham yomon variant emas. Ikkala ma'lumotlar bazasi ham ishonchli va to'g'ri ishlatilgan holda tezda ishlashi mumkin. Ikkalasi ham o'rganish egri chizig'iga ega bo'lishi mumkin, ammo MongoDB so'rovlari tili MySQL-ga qaraganda SQL-ga qaraganda ko'proq ob'ektga asoslanganligi sababli, uni ishlab chiqaruvchilar uchun tanlash osonroq deb hisoblanadi.



Foydalanilgan adabiyotlar:

  • Кайл Бэнкер. MongoDB в действии = MongoDB in Action. — ДМК Пресс, 2014.

  • Eelco Plugge, Peter Membrey, Tim Hawkins. The Definitive Guide to MongoDB: The NoSQL Database for Cloud and Desktop Computing. — Apress, 2010.

  • Steve Hoberman. Data Modeling for MongoDB. — Technics Publications, 2014.

  • Kristina Chodorow. MongoDB: The Definitive Guide, 2nd Edition. — O’Reilly, 2013.

Download 237,83 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish