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