Uploaded by Marat Qo'chqorov

Reja Mongodb tushunchasi va uning hususiyatlari

advertisement
Biz bilamizki mongodb nosql bazalar turkumiga kiradi.
Demak nosqlni agar sozma soz abrivaturasini ochadigan bolsak not only sql yani
nafaqat sql degan tarjimani beradi.
Nosql databaseslar egiluvchan sxemaga ega boladi. Sababi misol uchun
tasavvur qiling sql bazada biror bir database yaratadigan bolsak uni jadvali uchun
hamma malumotlarni oldindan berib qoyishimiz kerak boladi. Misol uchun user
uchun imail name password hamma malumotlarni oldinda jadvalga kiritamiz. Va
owa jadval asosida malumotlarni kiritib boramiz. Nosql bazada proses davomida
ham ozgarib ketishi mumkin bizning sxemamiz. Wuning uchun bu egiluvchan
sxamaga ega hisoblanadi.
Demak nosqllar relative bolmagan databeses hisoblanadi. Biz bilamizki sqlllar
relative. No sql esa relative bolmagan database hisoblanadi.
Shunday qilib biz undan foydalanganda qanaqa quluyliklarga ega
bolamiz:egiluvhcanlik maswtablawuvchanlik yani bemalol yaratayotgan dasturimiz
proses davomida yani keyinchalik vaqt otkan sayi kattaltirib ketoliwimiz mumkin.
Bunda hech qanaqa qiyinchilik yuzaga kelmaydi. Ish darajasi juda tez va yuqori
hisoblanadi va keng miqoyli funksionallarga ega boladi.
Endi keeling shaxsan mongodbning ozi haqida gaplashamiz.
Nosql databaeslarga bugungi kunda juda kop databaselar kiradi. Ulardan eng
mashhuri mongodb bundan tashqari yana Kasandra dagani ham bor bundan tawqari
redis bor va yana koplab nosql bolgan databaseslar mavjud va aytib otganimdek eng
ommabobi mongodb hisoblanadi.
15 milliondan ortiq yuklab olish bilan MongoDB eng ko'p afzal qilingan ma'lumotlar
bazasiga aylandi va butun dunyo bo'ylab dasturchilar tomonidan qo'llaniladi.
Mongodbda jadval sxemalarini talab qilmaydigan databaseslar turkumiga
kiradi. Yani aytib otganimdek biz hech qanaqa user uchun kerak boladigan
malumotlarni oldindan yozib qoyiwimiz shart emas. Yozib qoyamiz togri lekin
proses davomida ozgartirishimiz hech qanaqa qiyinchilik tugdirmaydi. Demak
databases hujjatlarga asoslangan. Bilamizki sqlda jadvallarga asoslangan boladi
bunda esa hujjatlarga asoslangan yani inglizchalab aytadigan bolsak document bases
databe hisoblandi.
Document bases dagani misol uchun document qanaqa korinishga ega boladi
desak eng kop tarqalgani jsonsimon yani togriroq qilib aytadigan bolsak uni formati
bison huddi json yani javascript obyektga oxshab ketadi. Saqlaydigan malumotlarni
huddi obyektlarga saqlagandek qillib saqlaymiz. Agar siz javaskriptni biladigan
bolsangiz bu databases bilan ishlash siz uchun maroqliroq boladi. Chunki tanish
sintaksiz hisoblanadi.
Mongo db ozi c++ dasturlash tilida yozilgan. Bu qowimcha malumot agar kimgadir
kerak boladigan boldsa.
Damek eng kop ishlatiladigan steklari asosan javascript stektida ishlatiladi.
Misol uchun mern mean mevn.. steklarida.
Mern degani bu mongodb express js react va notjs hisoblaadi.
Mean deydigan bolsak asi wunchki angularga ozgaradi.
Mevnda v viyujsni bildiradi.
Asosan mana wu texnologiyalar bilan kelishib juda zor ishlaydi bu databeses
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: relyatsion ma'lumotlar bazalarida ma'lumotlarni
aniqlash va tartibga solish uchun jadvallar, sxemalar va munosabatlar yaratishimiz
kerak. Boshqa tomondan, MongoDB - bu jadvallar va boshqa qat'iy, oldindan
belgilangan sxemalarni yaratishni talab qilmaydigan sxemasiz ma'lumotlar bazasi.
Hujjat ma'lumotlar bazasi sifatida MongoDB barcha yozuvlarni bitta to'plamda
saqlaydi.
MongoDB-da birlashma yo'q: RDBMS-da ikki yoki undan ortiq jadvallarni
ulash qiyin, chunki u birlashmalardan foydalanishni talab qiladi. MongoDB
murakkab birlashmalarga ega emas va MongoDB-da hujjat strukturasini o'zgartirish
oson, bu bizga boshqa hujjatlarni hech qanday qiyinchiliksiz ulash imkonini beradi.
Asosiy kalit sozlanmagan: RDBMS dan foydalanilganda, asosiy kalitni
sozlash zarur. MongoDB-da birlamchi kalitni aniq yaratishga hojat yo'q. NoSQL
ma'lumotlar bazasi har bir hujjat bilan sukut bo'yicha yaratilgan _id maydonini taklif
qiladi. Bu yaratilgan maydon asosiy kalit vazifasini bajaradi. Zaxiralangan _id
maydoni MongoDB da asosiy kalit bo'lib xizmat qiladi va u noyob qiymat bo'lishi
kerak. Shuni ta'kidlash kerakki, agar _id maydoniga hech qanday sozlama bo'lmasa,
MongoDB uni avtomatik ravishda "MongoDB Id Object" bilan to'ldiradi.
MongoDBning avfzallilari
MongoDB nima uchun ishlab chiquvchilar orasida sevimli tanlovga aylanayotganini
bilasizmi? Uning ajoyib qobiliyatlari quyida keltirilgan:
Moslashuvchan hujjat sxemalari.Strukturaviy so'rovlar tili ma'lumotlar
bazalaridan foydalangan holda, har safar ma'lumot kiritishga urinish bo'lganda,
jadval sxemasini deklaratsiyalash va tasdiqlash kerak bo'ladi. MongoDB hujjatlar
ma'lumotlar bazasi bo'lib, turli hujjatlarni bitta to'plamda saqlaydi. Oddiy qilib
aytganda, MongoDB turli xil maydonlar to'plami bilan bir nechta ob'ektlarni
birlashtirilgan tarzda saqlashga imkon beradi. Moslashuvchan hujjat sxemalari
murakkab ma'lumotlar ustida ishlashda yoki real vaqtda ma'lumotlar bilan ishlashda
katta afzalliklarni taqdim etadi.
Kod-native ma'lumotlarga kirish. Ob'ektdagi ma'lumotlarni olish
ko'pincha oson emas. Ko'pgina ma'lumotlar bazalarida, ehtimol, bu ishni bajarish
uchun Ob'ekt bilan bog'liq xaritachilardan foydalanishingiz kerak bo'ladi. MongoDB
sizni og'ir o'ramlardan foydalanishdan qutqaradi va ma'lumotlarni eng oddiy tarzda
saqlash va ularga kirish imkonini beradi. Oddiy qilib aytganda, siz Python-dagi
lug'atlar, JavaScript-dagi assotsiativ massivlar va Java-dagi Xaritalar kabi istalgan
dasturlash tilidan kodli ma'lumotlarga kirishingiz mumkin.
O'zgartirishga qulay dizayn. Ko'pgina dasturchilar ma'lumotlarni
sozlash uchun sayt yoki dasturni o'chirish odatiga ega. MongoDB bilan saytni pastga
tushirishning hojati yo'q, Har qanday vaqtda sxemani o'zgartirishingiz kerak bo'lsa,
siz vaqtingizni yo'qotishingiz shart emas. MongoDB foydalanuvchilarga yangi
ma'lumotlarni istalgan vaqtda, istalgan joyda - operatsion jarayonlarida hech qanday
bezovtaliksiz qo'shish imkonini beradi.
Kuchli so'rovlar va tahlillar. MongoDB-da murakkab birlashmalarning
yo'qligi ham katta afzalliklarni beradi. Bu shuni anglatadiki, MongoDB
qo'shilishlarsiz ma'lumotlarga muammosiz kirish imkonini beradi. MongoDB
so'rovlarni bajarishda hujjatlarga qanday kirishni biladi. MongoDB so'rovlar tili
(MQL) chuqur so'rovlarni osonlashtiradigan hujjatlarda kuchli dinamik so'rovlarni
qo'llab-quvvatlaydi. Eng muhimi, hujjatlar bazasi JSON-ga o'xshash bir qatorli kod
yordamida murakkab ma'lumotlarga kirish imkonini beradi
Oson gorizontal kengayish. MongoDB ma'lumotlar bazasini taqsimlash
yordamida gorizontal masshtablashni osonlashtiradi. Ma'lumotlar gorizontal tarzda
tuzilganligi sababli, uni turli serverlar bo'ylab tarqatish va ularga soddalashtirilgan
tarzda kirish oson bo'ladi. Ishlashni davom ettirish uchun real vaqtda replikatsiyalar
va yuqori hajmli ma'lumotlarni parchalash yordamida klasterlar yaratishingiz
mumkin.
Ma'lumotlar bazasini bir nechta klasterlarga tarqatish uchun ma'lumotlar bazasini
taqsimlash imkoniyatlaridan foydalaning. Ma'lumotlar bazasini taqsimlash
yordamida siz ko'proq saqlash hajmiga ega bo'lasiz va so'rovlarga javob berish
tezligini tezlashtirasiz.
Juda ko'p qirrali - Strukturaviy bo'lmagan so'rovlar tili bo'lgani uchun
MongoDB bilan ishlashda jadvallar yaratishga hojat yo'q. Natijada, ma'lumotlarni
saqlash, boshqarish va ularga kirishda sezilarli darajada ko'p qirralilik mavjud. Ko'p
qirralilik katta va tasniflanmagan ma'lumotlarni saqlashda katta afzallik beradi.
Ta'sirchan tezlik - MongoDB ga yuqori talabning sabablaridan biri bu
uning tezligi. Jadval yoki sxema yaratishning hojati yo'qligi sababli, ma'lumotlar
bazasi tezligi ta'sirchan. MongoDB yordamida CRUD (Yaratish, o'qish, yangilash,
o'chirish) tezligi boshqa ma'lumotlar bazalariga qaraganda tezroq. MongoDB so'rovi
100 baravar tezroq bo'lib, foydalanuvchilarga o'z qidiruvlarini eng tez vaqtda
indekslash imkonini beradi.
Agar siz JavaScript-ni ishlab chiquvchi bo'lsangiz, hujjatlar ma'lumotlar bazasiga
oshiq bo'lasiz; MongoDB. Boshqa ma'lumotlar bazalari bilan solishtirganda,
MongoDB foydalanish oson. Hatto yangi boshlovchi ham ma'lumotlar bazasini
tushunishi va hech qanday qiyinchiliksiz undan samarali foydalanishi mumkin.
MongoDB har bir yozuvni Binary JSON-ga saqlaganligi sababli, ma'lumotlar
bazasidan foydalanish juda oson bo'ladi, ayniqsa siz backendda Node.js, React yoki
Express.js kabi JavaScript kutubxonalaridan foydalansangiz.
MongoDB dan qayerda foydalanish kerak?
MongoDB - foydalanuvchilarning o'zaro ta'siri juda kam yoki umuman bo'lmagan
veb-ilovalar uchun ajoyib tanlovdir. Ma'lumotni bir nechta jadvallar bo'ylab saqlash
yoki hatto birlashmalarni yaratish zarurati mavjud bo'lgan relyatsion ma'lumotlar
bazasidan farqli o'laroq, MongoDB qo'shimcha vazifalarni saqlaydi va buni bilvosita
bajaradi. MongoDB-dan foydalanib, foydalanuvchi ma'lumotlarini eng
birlashtirilgan tarzda saqlashingiz mumkin. Natijada, bitta to'plamga bitta so'rov
bo'ladi va front-end ma'lumotlarni tahrirlash bilan shug'ullanishi mumkin.
Katta ma'lumotlarni integratsiyalash - Agar sizning biznesingiz turli
manbalardan kiruvchi ma'lumotlar to'plamini o'z ichiga olsa, MongoDB juda foydali
bo'ladi. Boshqa ma'lumotlar bazalari ishlamay qolganda, MongoDB katta
ma'lumotlarni muammosiz saqlash va birlashtirish uchun noyob imkoniyatlarga ega
bo'ladi. Bir hujjatli ma'lumotlar bazasi katta hajmdagi turli xil ma'lumotlarni eng
soddalashtirilgan tarzda saqlash uchun mustahkam imkoniyatlarni taqdim etadi.
Murakkab ma'lumotlarni aniqlash - MongoDB o'rnatilgan hujjatlarga
(shuningdek, ichki o'rnatilgan hujjatlar deb ataladi) ichki o'rnatilgan tuzilmalarni
aniqlashga imkon beradi. Ichki hujjatlar - hujjat ichida hujjat mavjud bo'lgan
hujjatlar. Hujjatlar o'rtasida bittadan ko'pga bog'liqlik mavjud bo'lganda foydalidir.
Eng muhimi, MongoDB geofazoviy format kabi ixtisoslashtirilgan ma'lumotlar
formatlarini qo'llab-quvvatlaydi, bu esa tahrirlardan keyin ham buzilmaydigan
bardoshli omborga olib keladi.
Xulosa qilib aytganda, MongoDB-dan quyidagilar uchun foydalanishingiz 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
Diqqat: MongoDB ishonchli tranzaksiya tizimi yoki ma'lumotlar modeli oldindan
ko'rsatilgan joylar uchun to'g'ri tanlov emasligini ta'kidlash muhimdir. Bundan
tashqari, MongoDB-ni mahkam bog'langan tizimlar uchun ishlatish noto'g'ri qaror.
Ehtimol, Strukturaviy so'rovlar tili to'g'ri keladi!
Xulosa
MongoDB - bu mukammal imkoniyatlarga ega mustahkam ma'lumotlar bazasi va
o'rnatilgan funktsiyalari bilan ajralib turadi. Bugungi kunda IT tarmoqlari, elektron
tijorat, bank ishi, logistika va boshqa ko'plab sohalar MongoDB yordamida
ma'lumotlar oqimini boshqarmoqda. Bosch, Uber, Accenture, Barclays kabi ko'p
millatli kompaniyalar MongoDB-dan toifalanmagan ma'lumotlarni eng murakkab
tarzda saqlash uchun foydalanadilar.
Agar siz ma'lumotlarni uzluksiz saqlash va unga kirish uchun eng samarali
ma'lumotlar bazasini izlayotgan bo'lsangiz, MongoDB-dan yaxshiroq variant yo'q.
MongoDB ishlash tahlili juda zo'r bo'lsa-da, ehtimol tranzaksiyani qo'llabquvvatlamaydi va haqiqatan ham ma'lumotlar bazasi saqlash uchun juda yuqori
xotiradan foydalanadi. Biroq, MongoDB-dan foydalanish uchun olgan ajoyib
xususiyatlarni yuqori xotira narxi uchun qurbon qilmaslik kerak.
Download