Uploaded by Marat Qo'chqorov

mongoDB

advertisement
Reja:
MongoDB tushunchasi va uning hususiyatlari
MongoDB ning avfzalliklari.
MongoDB ning tuzilishi va uni litsenziyalash
Undan foydalanish holatlar, kompaniya haqida va
MongoDB ning ayrim buyruqlari
MongoDB va MySql farqi
Foydalanilgan adabiyotlar
NoSQL o’zi nima?
Not only SQL(nafaqat SQL)
Egiluvchan sxemaga ega .
Relyativ bo’lmagan DB(database)
Egiluvchanlik, masshtabchanlik, yuqori ishlash
darajasi, keng miqyosli funksional imkoniyatlar.
MONGO DB HAQIDA
Jadval sxemalarini yozishni talab qilmaydigan
hujjatlarga asoslangan database
JSON-simon document sxemaga ega
C++ dasturlash tilida yozilgan
JavaScript stekida texnologiyalarni qo’llaniladi.
MERN, MEAN, MEVN…
MongoDB ning RDBMS ga nisbatan
afzalliklari

MongoDB NoSQL ma'lumotlar bazalari va relyatsion
ma'lumotlar bazalari ko'p jihatdan farqlanadi. MongoDB
nafaqat foydalanish uchun qulay, balki u zo'r masshtablash
imkoniyatlarini ham qo'llab-quvvatlaydi. Bundan tashqari,
MongoDB ning ishlash imkoniyatlari boshqa ma'lumotlar
bazalariga qaraganda beqiyos.

MongoDB sxemasiz:

MongoDB-da birlashma yo'q:

Asosiy kalit sozlanmagan:
MongoDBning avfzalliklari
 MongoDB
nima uchun ishlab chiquvchilar
orasida sevimli tanlovga aylanayotganini
bilasizmi? Uning ajoyib qobiliyatlari quyida
keltirilgan:
 Moslashuvchan hujjat sxemalari
 Ma’lumotlarga kirish.
 O’zgartirishga qulay dizayn
 Kuchli so’rovlar va tahlillar
 Osson gorizontal kengayish
 Juda ko’p qirrali
MongoDB dan qayerlarda foydalanish
kerak

mongoDB dan quyidagilar uchun foydalanish mumkin.

Bloglar va kontentni boshqarish

Elektron tijorat mahsulotlari katalogi

Foydalanuvchi ma'lumotlarini boshqarish

Haqiqiy vaqtda tahlil qilish va yuqori tezlikda ro'yxatga
olish va yuqori miqyoslilik uchun

Konfiguratsiyani boshqarish

Geospatial ma'lumotlarni saqlash uchun

Mobil va ijtimoiy tarmoq saytlari
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.

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.
Muallif:Nilufar Olimboyeva
Download