O’ZBEKISTON RESPUBULIKASI AXBOROT TEXNALOGIYALARI
VA KOMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
TOSHKENT AXBOROT TEXNALOGIYALARI UNIVERSITETI
SAMARQAND FILIALI KOMPYUTER INJINERINGI FAKULTETI
“MALUMOTLAR BAZASI “FANIDAN
MUSTAQIL ISH
MAVZU: Ma'lumotlar bazasi tizimimining arxitikturasi. NoSQL ma'lumotlar bazasi va uning asosiy prinsiplari
KIF-104-5-guruh
Bajardi: Rustamov J.X
Tekshirdi: Abduvitov Akmal
Samarqand-2021
NoSql(Not Only SQL yoki No Sql) tushunchasi 2009-yildan boshlab mashhur bo'la boshladi. Aynan o'sha davrda web texnologiyalar va ijtimoiy xizmatlar ma'lumotlarni saqlash va ular ustida amallar bajarish usullari rivoji uchun yangi turtki berdi.
Bunday loyiha yaratuvchilari odatiy ma'lumotlarni saqlash tizimlari mos kelmaydigan yoki juda ham qimmatlik qiladigan masalalarini hal qilishlariga to'g'ri keldi. Bundan tashqari, bunday ma'lumotlar omborini boshqa yangi turdagi ma'lumotlar omboriga almashtirishga startapchilar va "Big Data"lar bilan ishlovchilar sababchi bo'lishdi.
Shuni tushunish kerakki, NoSql bu odatiy ma'lumotlar omboridan butunlay voz kechish emas. Odatda biron bir ish quroli ma'lum bir muommoni hal qilish uchun eng qulay bo'lganligi uchun tanlanadi. NoSql haqida gapirishgandi odatda quyidagi ustunliklarini sanab o'tishadi.
Masshtablanuvchanlik. Odatiy ma'lumotlar omborida mavjud bo'lgan gorizontal masshtablash juda katta mehnatni, juda katta moliyaviy resurslarni talab qiladi va albatta faqat ma'lum turdagi masalalarni hal qilish uchun mos keladi holos. Ko'plab NoSql ma'lumotlar omborlari esa aynan gorizontal masshtablashni hisobga olgan holda loyihalashtirilgan. Va bu masshtablashni hech qanday qiyinchiliklar amalga oshirish mumkin bo'ladi.
Ishlash tezligi. Ma'lumotlar ombori klasterda emas balki bitta tugundaligi ham asosiy parametrlardan biri hisoblanadi. Ko'plab masalarni hal qilish uchun odatiy ma'lumotlar omborlarini tranzaktsionlik, o'zgarishlarni ajratish, bitta tugundan tashqaridagi ishonchliligi va aynan bog'langa ma'lumotlar omborlari kerak bo'lmasligi. Shu sababli shu xususiyatlaridan butunlay yoki qisman voz kechishlik NoSqlga bitta tugunda katta tezlikga erishishga yordam beradi.
Keyingi darslarda NoSql ma'lumotlar omborlari ichida eng yoshi va eng tez rivojlanayotgani MongoDb haqida ma'lumotlar beriladi.
Dastlab SQL bo'lmagan yoki aloqador bo'lmagan NoSQL bu ma'lumotni saqlash va olish mexanizmini ta'minlaydigan ma'lumotlar bazasi. Ushbu ma'lumotlar relyatsion ma'lumotlar bazalarida foydalaniladigan jadval munosabatlaridan tashqari boshqa vositalarda modellashtirilgan. Bunday ma'lumotlar bazalari 1960 yillarning oxirida paydo bo'lgan, ammo XXS asrning boshlarida mashhurlik oshguncha NoSQL ko'rsatuvchisini olmagan. Karl Strozz 1998 yilda NoSQL kontseptsiyasini taklif qildi.
SQL kabi so'rov tillarini qo'llab-quvvatlashlari mumkinligini ta'kidlash uchun, NoSQL tizimlari ba'zan nafaqat SQL deb ataladi.
NoSQL - aloqador bo'lmagan DMS bo'lib, u qat'iy sxemani talab qilmaydi, qo'shilishdan qochadi va o'lchovni osonlashtiradi. NoSQL ma'lumotlar bazasi ma'lumotlar saqlash uchun juda katta ehtiyojga ega bo'lgan taqsimlangan ma'lumotlar omborlari uchun ishlatiladi. NoSQL Big ma'lumotlar va real vaqtda veb-ilovalar uchun ishlatiladi. Masalan, Twitter, Facebook, Google kabi kompaniyalar har kuni terabayt ma'lumotlarini to'playdi.
NoSQL ma'lumotlar bazasi dizaynning soddaligini, mashinalar klasterlariga gorizontal miqyosni soddalashtirishni va mavjudlik ustidan nozik nazoratni o'z ichiga oladi. NoSQL ma'lumotlar bazalarida foydalaniladigan ma'lumotlar tuzilmalari, relatsion ma'lumotlar bazalarida sukut bo'yicha ishlatilganlardan farq qiladi, bu esa ba'zi operatsiyalarni NoSQL-da tezlashtiradi. Berilgan NoSQL ma'lumotlar bazasining yaroqliligi uni hal qilishi kerak bo'lgan muammoga bog'liq. NoSQL ma'lumotlar bazalari tomonidan foydalaniladigan ma'lumotlar tuzilmalari, ba'zan relyatsion ma'lumotlar jadvallariga qaraganda ancha moslashuvchan bo'lib ko'rinadi.
Ko'pgina NoSQL do'konlar mavjudlik, tezlik va qismlarga chidamlilik tarafdori bo'lgan kelishmovchilikni buzadilar. NoSQL do'konlarining kengroq qabul qilinishidagi to'siqlar orasida past darajadagi so'rovlar tillaridan foydalanish, standart interfeyslarning yo'qligi va mavjud relyatsion ma'lumotlar bazasiga oldingi katta investitsiyalar kiradi. Aksariyat NoSQL do'konlarida haqiqiy ACID (Atomiklik, Uyg'unlik, Izolyatsiya, Mustahkamlik) tranzaktsiyalari mavjud emas, ammo MarkLogic, Aerospike, FairCom c-daraxtACE, Google Spanner (texnik jihatdan NewSQL bazasi bo'lsa h+am), Symas LMDB va OrientDB kabi bir nechta ma'lumotlar bazasi ularni yaratdi. ularning dizaynida markaziy.
MongoDB va CouchDB kabi ba'zi ma'lumotlar bazalari ma'lumotlarini JSON formatida saqlaydi. Bu shuni anglatadiki, hujjatlar juda katta (BigData, tarmoqning o'tkazish qobiliyati, tezligi) va tavsiflovchi kalit nomlarga ega bo'lish aslida zarar qiladi, chunki ular hujjatlar hajmini oshiradilar.
SQL va NoSQL o'rtasidagi farqlar
- SQL ma'lumotlar bazasi - bu Relational Database va tuzilgan ma'lumotlar bazasi, NoSQL - tuzilishga qaraganda ko'proq hujjatlashtirilgan va taqsimlangan ma'lumotlar bazasi.
- Nisbiy ma'lumotlar bazasi, odatda jadvallar deb nomlanadigan ma'lumotlarni saqlash uchun satrlar va ustunlar to'plamiga bo'lingan munosabatlarni qat'iyan bajaradi, ammo hech qanday aloqasi bo'lmagan ma'lumotlar bazasi hujjat yo'naltirilgan yoki taqsimlangan saqlashga ega bo'lib, hech qanday jadval tuzilishini talab qilmaydi.
- NoSQL ma'lumotlar bazasida hujjat turi yoki tuzilmagan ma'lumotlarning dinamik sxemasi mavjud, SQL ma'lumotlar bazasida esa oldindan aniqlangan sxemasi mavjud.
- SQL ma'lumotlar bazalari vertikal ravishda kengaytirilishi mumkin, NoSQL ma'lumotlar bazalari esa gorizontal ravishda kengaytirilishi mumkin. SQL ma'lumotlar bazasini uning apparati kuchini kengaytirish orqali o'lchashingiz mumkin. Xuddi shunday, NoSQL ma'lumotlar bazalari haqida gap ketganda, siz ma'lumotlarning bazasini serverlar sonini kamaytirish uchun aktivlar fonida kengaytirishingiz mumkin.
- SQL ma'lumotlarni aniqlash uchun tuzilgan so'rovlar tilidan foydalansa ham, NoSQL UnQL (Strukturalanmagan so'rovlar tili) nomi bilan ham tanilgan hujjatlar to'plamidan foydalanadi.
- NoSQL ma'lumotlarning ierarxik saqlanishidan foydalanadi va SQL uchun ma'lumotlar ierarxik saqlanadigan joy yo'q.
- Biz yangi ma'lumotlarni NoSQL-ga oldingi qadamlarni talab qilmasdan osongina qo'shishimiz mumkin, SQL esa ma'lumotlarni qayta to'ldirish, sxemalarni o'zgartirish kabi ba'zi o'zgarishlarni talab qilishi mumkin.
- SQL murakkab so'rovlarni qayta ishlash uchun standart interfeysga ega bo'lganligi sababli, murakkab so'rovlarni hal qilish yaxshi bo'lar edi. Afsuski, bizda NoSQL-da biron bir standart interfeys yo'q, shuning uchun NoSQL-da murakkab so'rovlarni bajarish juda qiyin.
NoSQL ma'lumotlar bazasining turlari:
NoSQL ma'lumotlar bazalarining turlari va ushbu toifaga kiradigan ma'lumotlar bazalari tizimining nomi:
1. MongoDB NoSQL hujjat bazasi toifasiga kiradi.
2. Kalit qiymat do'koni: Memcached, Redis, Coherence
3. Jadval: Hbase, Katta stol, akkumulyator
4. Hujjat asosidagi: MongoDB, CouchDB, Cloudant
NoSQL qachon ishlatilishi kerak:
1. Katta hajmdagi ma'lumotlarni saqlash va olish kerak bo'lganda.
2. Siz saqlaydigan ma'lumotlar o'rtasidagi munosabatlar unchalik muhim emas
3. Ma'lumotlar vaqt o'tishi bilan o'zgaradi va tuzilmaydi.
NoSQL ma'lumotlar bazalari uchun aniq qo'llanma
Cheklangan SQL miqyosi sanoatni ishlash, ishonchlilik va izchillikka e'tibor qaratgan holda bir qator NoSQL ma'lumotlar bazasini boshqarish tizimlarini ishlab chiqish va joylashtirishga undadi. Ushbu tendentsiyaga Google va Amazon tomonidan ishlab chiqilgan xususiy NoSQL ma'lumotlar bazalari sabab bo'ldi. Oxir-oqibat, MongoDB, Cassandra va Hypertable kabi ochiq manbali tizimlar NoSQL-ni hamma uchun ochiq qilib qo'ydi. Ushbu postda katta dasturiy ta'minot muhandisi Mohamad Altarade ulardan ba'zilari bilan tanishib chiqadi va nima
uchun NoSQL kelgusi yillar davomida biz bilan bo'lishini tushuntiradi.
So'nggi o'n yil ichida veb-ilovalarning ma'lumotlar bilan ishlash usuli sezilarli darajada o'zgarganiga shubha yo'q. Ko'proq ma'lumotlar to'planmoqda va ko'proq foydalanuvchilar bu ma'lumotlarga bir vaqtning o'zida har qachongidan ham kirishmoqda. Bu shuni anglatadiki, masshtablilik va unumdorlik sxemaga asoslangan relyatsion ma'lumotlar bazalari uchun har qachongidan ham qiyinroq va shuning uchun masshtablash qiyinroq bo'lishi mumkin.
NoSQL evolyutsiyasi
SQL miqyosidagi muammo Google, Amazon va Facebook kabi katta, o'sib borayotgan ma'lumotlar va infratuzilma ehtiyojlariga ega bo'lgan Web 2.0 kompaniyalari tomonidan tan olingan. Ular muammoni hal qilish uchun o'zlarining echimlarini topishdi - BigTable, DynamoDB va Cassandra kabi texnologiyalar.
Ushbu ortib borayotgan qiziqish unumdorlik, ishonchlilik va izchillikka e'tibor qaratgan bir qator NoSQL ma'lumotlar bazasini boshqarish tizimlarini (DBMS) keltirib chiqardi. Qidiruv va o'qish samaradorligini oshirish maqsadida bir qator mavjud indekslash tuzilmalaridan qayta foydalanildi va takomillashtirildi.
Birinchidan, NoSQL ma'lumotlar bazalarining xususiy (yopiq manbali) turlari yirik kompaniyalar tomonidan o'zlarining maxsus ehtiyojlarini qondirish uchun ishlab chiqilgan, masalan, birinchi NoSQL tizimi deb hisoblangan Google BigTable va Amazonning DynamoDB.
Ushbu xususiy tizimlarning muvaffaqiyati bir qator shunga o'xshash ochiq manbali va xususiy ma'lumotlar bazasi tizimlarini ishlab chiqishni boshladi, eng mashhurlari Hypertable, Cassandra, MongoDB, DynamoDB, HBase va Redis.
NoSQL nima bilan farq qiladi?
NoSQL ma'lumotlar bazalari va an'anaviy relyatsion ma'lumotlar bazalari o'rtasidagi asosiy farqlardan biri shundaki, NoSQL tuzilmagan saqlash shaklidir.
Bu shuni anglatadiki, NoSQL ma'lumotlar bazalarida relyatsion ma'lumotlar bazalarida bo'lganlar kabi qat'iy jadval tuzilmasi yo'q.
NoSQL ma'lumotlar bazalarining afzalliklari va kamchiliklari
Afzalliklar
NoSQL ma'lumotlar bazalari an'anaviy, relyatsion ma'lumotlar bazalariga nisbatan juda ko'p afzalliklarga ega.
Asosiy farqlardan biri shundaki, NoSQL ma'lumotlar bazalari oddiy va moslashuvchan tuzilishga ega. Ular sxemasiz.
Relyatsion ma'lumotlar bazalaridan farqli o'laroq, NoSQL ma'lumotlar bazalari kalit-qiymat juftligiga asoslanadi.
NoSQL ma'lumotlar bazalarining ba'zi do'kon turlariga ustunlar do'koni, hujjatlar do'koni, kalit qiymatlar do'koni, grafiklar do'koni, ob'ektlar do'koni, XML do'koni va boshqa ma'lumotlarni saqlash rejimlari kiradi.
Odatda, ma'lumotlar bazasidagi har bir qiymat kalitga ega. Ba'zi NoSQL ma'lumotlar bazasi do'konlari ishlab chiquvchilarga oddiy satr qiymatlarini emas, balki ketma-ketlashtirilgan ob'ektlarni ma'lumotlar bazasida saqlashga imkon beradi.
Ochiq manbali NoSQL ma'lumotlar bazalari qimmat litsenziya to'lovlarini talab qilmaydi va arzon uskunada ishlashi mumkin, bu esa ularni joylashtirishni tejamkor qiladi.
Bundan tashqari, NoSQL ma'lumotlar bazalari bilan ishlashda, ular ochiq yoki xususiy bo'ladimi, relyatsion ma'lumotlar bazalari bilan ishlashga qaraganda kengaytirish osonroq va arzonroq. Buning sababi shundaki, u gorizontal masshtablash va yukni barcha tugunlarga taqsimlash orqali amalga oshiriladi, bu odatda relyatsion ma'lumotlar bazasi tizimlarida amalga oshiriladigan vertikal masshtablash turidan ko'ra, asosiy xostni yanada kuchliroq bilan almashtiradi.
Kamchiliklari
Albatta, NoSQL ma'lumotlar bazalari mukammal emas va ular har doim ham to'g'ri tanlov emas.
Birinchidan, NoSQL ma'lumotlar bazalarining aksariyati relyatsion ma'lumotlar bazasi tizimlari tomonidan qo'llab-quvvatlanadigan ishonchlilik xususiyatlarini qo'llab-quvvatlamaydi. Ushbu ishonchlilik xususiyatlarini atomiklik, mustahkamlik, izolyatsiya va chidamlilik sifatida umumlashtirish mumkin. Bu, shuningdek, ushbu xususiyatlarni qo'llab-quvvatlamaydigan NoSQL ma'lumotlar bazalari ishlash va kengayish uchun barqarorlik savdosini anglatadi.
Ishonchlilik va barqarorlik xususiyatlarini qo'llab-quvvatlash uchun ishlab chiquvchilar tizimga yanada murakkablik qo'shadigan o'zlarining xususiy kodlarini amalga oshirishlari kerak.
Bu bank tizimlari kabi xavfsiz va ishonchli tranzaktsiyalar uchun NoSQL ma'lumotlar bazalariga tayanadigan ilovalar sonini cheklashi mumkin.
Ko'pgina NoSQL ma'lumotlar bazalarida topilgan murakkablikning boshqa shakllari SQL so'rovlari bilan mos kelmaslikni o'z ichiga oladi. Bu shuni anglatadiki, qo'lda yoki xususiy so'rovlar tili kerak, bu esa ko'proq vaqt va murakkablikni oshiradi
NoSQL va relyatsion ma'lumotlar bazalari
Ushbu jadval NoSQL va relyatsion ma'lumotlar bazalari o'rtasidagi qisqacha xususiyatlarni taqqoslashni taqdim etadi:
NoSQL ma'lumotlarni saqlash turlari
Asosiy qiymat do'koni
Key Value do'koni turida xesh-jadval ishlatiladi, unda noyob kalit elementga ishora qiladi.
Kalitlarni kalitlarning mantiqiy guruhlariga ajratish mumkin, faqat kalitlar o'z guruhida yagona bo'lishini talab qiladi. Bu turli mantiqiy guruhlarda bir xil kalitlarga imkon beradi. Quyidagi jadvalda kalit-qiymat do'konining namunasi ko'rsatilgan, unda kalit shahar nomi, qiymat esa o'sha shahardagi Olster universitetining manzilidir.
Kalit qiymatlar do'konining ba'zi ilovalari keshlash mexanizmlarini ta'minlaydi, bu ularning ishlashini sezilarli darajada oshiradi.
Ma'lumotlar bazasida saqlangan narsalar bilan shug'ullanish uchun zarur bo'lgan yagona narsa kalitdir. Ma'lumotlar satr, JSON yoki BLOB (Binary Large OBject) ko'rinishida saqlanadi.
NoSQL ma'lumotlar bazasini boshqarish tizimlari
Ma'lumotlar bazalarini qisqacha taqqoslash uchun quyidagi jadvalda turli xil NoSQL ma'lumotlar bazasini boshqarish tizimlari o'rtasida qisqacha taqqoslash keltirilgan.\
Quyidagi grafikda biz yuqorida tushuntirilgan MongoDB arxitekturasini ko'ramiz, u yo'riqnoma serverlarini yashil rangda, konfiguratsiya serverlarini ko'k rangda va MongoDB tugunlarini o'z ichiga olgan parchalarni ko'rsatadi.
Shuni ta'kidlash kerakki, MongoDB-da sharding (yoki shardlar o'rtasida ma'lumotlarni almashish) butunlay avtomatik bo'lib, bu muvaffaqiyatsizlik darajasini pasaytiradi va MongoDB-ni yuqori darajada kengaytiriladigan ma'lumotlar bazasini boshqarish tizimiga aylantiradi.
Do'stlaringiz bilan baham: |