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 oldindan belgilangan tuzilishga va oldindan aniqlangan sxemalarga tayanadigan har qanday loyiha uchun to’g’ri tanlovdir. Boshqa tomondan, MongoDB tezkor ravishda rivojlanayotgan loyihalar uchun ma’lum bir ma’lumot sxemasi bo’lmagan ajoyib imkoniyatdir. Ayniqsa siz ma’lumotlar bazangiz uchun sxemani aniqlay olmasangiz, boshqa DBMSlarning hech biri sizga mos kelmaydi yoki u sizning loyihangizda doimiy ravishda o’zgarib turadi, masalan, mobil ilovalar, real vaqtda tahlil tizimlari yoki kontentni boshqarish. 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.
Do'stlaringiz bilan baham: |