Kompyuter Injineringi fakulteti (kompyuter injineringi) yonalishi 3-bosqich 021-20 - guruh talabasi Nazmiddin Sirojiddinov Rustem O’glining Malumotlar Bazasi fanidan Mustaqil ish vazifasi
Malumotlar Bazasi
Bajardi : Nazmiddin Sirojiddinov Rustem O’gli 3-kurs (021-20)
Tekshirdi : Begmatova Z (Laboratoriya)
Tekshirdi : Djurayev T (Maruza)
18-variant
Mavzu:NoSQL ma`lumotlar bazasi bilan ishlash
Reja:
NoSql malumotlar bazasi va uning asosiy prinsiplari
Amaliyotda ma’lumotlar bazasini qurishda ma’lumotlarning relyatsion modeli.
MongoDB NoSql malumotlar bazasi
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.
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.
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 XX 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 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 mar+kaziy.
N+oSQL-ning afzalliklari:
Mo+ngoDB va Cassandra kabi NoSQL ma'lumotlar bazalari bilan ishlashning ko'plab afzalliklari mavjud. Asosiy afzalliklari yuqori miqyoslilik va yuqori imkoniyatlardir.
1. Yuqori miqyosi
NoSQL ma'lumotlar bazasi gorizontal kattalashtirish uchun shardingdan foydalanadi. Ma'lumotni qismlarga ajratish va uni bir nechta mashinalarga joylashtirish, ma'lumotlarning tartibi saqlanib qolishi uchun. Vertikal masshtablash mavjud mashinaga ko'proq resurslarni qo'shishni anglatadi, gorizontal masshtablash esa ma'lumotlarga ishlov berish uchun qo'shimcha mashinalarni qo'shishni anglatadi. Vertikal o'lchovni amalga oshirish oson emas, lekin gorizontal masshtabni amalga oshirish oson. Gorizontal masshtabli ma'lumotlar bazalariga misollar MongoDB, Cassandra va hokazo. NoSQL ko'lamning kengayishi sababli juda katta miqdordagi ma'lumotlarni boshqarishi mumkin, chunki NoSQL shkalasi o'sib borishi bilan ushbu ma'lumotlarni samarali ishlashi mumkin.
2. Yuqori imkoniyat
NoSQL ma'lumotlar bazalarida avtomatik replikatsiya xususiyati uni yuqori darajada taqdim etadi, chunki biron bir nosozlik yuz bergan taqdirda ma'lumotlar avvalgi izchil holatiga qaytariladi.
NoSQLning kamchiliklari:
NoSQL quyidagi kamchiliklarga ega.
1. Tor fokus
NoSQL ma'lumotlar bazasi juda tor markazga ega, chunki u asosan saqlash uchun mo'ljallangan, ammo u juda kam funksionallikni ta'minlaydi. Nisbiy ma'lumotlar bazalari NoSQL-ga qaraganda Tranzaktsiyalarni boshqarish sohasida afzalroq tanlovdir.
2. Ochiq manba
NoSQL ochiq manbali ma'lumotlar bazasi. Hozircha NoSQL uchun ishonchli standart mavjud emas. Boshqacha aytganda, ikkita ma'lumotlar bazasi tizimi teng bo'lmasligi mumkin.
3. Boshqaruv muammosi
Katta ma'lumotlar vositalarining maqsadi katta hajmdagi ma'lumotlarni boshqarishni iloji boricha sodda qilishdir. Ammo bu unchalik oson emas. NoSQL-da ma'lumotlarni boshqarish juda ko'p
relyatsion ma'lumotlar bazasiga qaraganda ancha murakkab. Xususan, NoSQL-ni o'rnatish qiyin kechgani va har kuni boshqarishni qiyinlashtirishi bilan tanilgan.
4. GUI mavjud emas
Ma'lumotlar bazasiga kirish uchun GUI rejimi vositalari bozorda moslashuvchan emas.
5. Zaxira
Zaxira nusxasi ba'zi NoSQL ma'lumotlar bazalari uchun MongoDB kabi juda zaif nuqtadir. MongoDB-da ma'lumotlarning zaxira nusxasini doimiy ravishda zaxira qilish uchun hech qanday yondashuv yo'q.
6. Hujjatning katta hajmi
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.
4. Ma'lumotlar bazasi darajasida cheklovlar va qo'shilishlarni qo'llab-quvvatlash shart emas
5. Ma'lumotlar doimiy ravishda o'sib bormoqda va ma'lumotlar bilan ishlash uchun siz doimiy ravishda ma'lumotlar bazasini kattalashtirishingiz kerak.
Ma’lumotlar bazasini shakllantirishda texnologiyalar prespektivalar
Ma’lumotlar bazasi - bu o’zaro bog’langan va tartiblangan ma’lumotlar majmuasi bo’lib, u ko’rilayotgan ob’ektlarning xususiyatini, xolatini va ob’ektlar o’rtasidagi munosabatni ma’lum soxada tavsiflaydi.
MBni yaratishda ikkita muxim shartni hisobga olmoq zarur:
Birinchidan, ma’lumotlar turi, ko’rinishi, ularni qo’llaydigan dasturlarga bog’lik bo’lmasligi lozim, ya’ni MBga yangi ma’lumotlarni kiritganda yoki ma’lumotlar turini o’zgartirganda, dasturlarni o’zgartirish talab etilmasligi lozim.
Ikkinchidan, MBdagi kerakli ma’lumotni bilish yoki izlash uchun biror dastur tuzishga xojat qolmasin.
Shuning uchun xam MBni tashkil etishda ma’lum qonun va qoidalarga amal qilish lozim. Bundan buyon axborot so’zini ma’lumot so’zidan farklaymiz, ya’ni axborot so’zini umumiy tushuncha sifatida qabul qilib, ma’lumot deganda aniq bir belgilangan narsa yoki xodisa sifatlarini nazarda tutamiz.
Masalan, biror Oliy o’quv yurtining aniq fakultetida taxsil olayotgan biror gurux talabalari to’g’risidagi ma’lumotlar bitilgan quyidagi jadvalni ko’raylik:
Jadval. Talabalar haqida ma’lumot
Familiyasi
|
Ismi
|
Tug’ilgan
sanasi
|
Guruxi
|
Turar joyi
|
Qiziqqan
Fani
|
Sirojiddinov
|
Nazmiddin
|
1.05.2003
|
021-20
|
Shampan
|
Matem.
|
Mavlonov
|
Behzod
|
2.12.2001
|
021-20
|
Toshkent
|
Adabiyot
|
Mamashokirov
|
Shohjahon
|
3.6.1999
|
021-20
|
Toshkent
|
Tarix
|
Bu misolda 3ta yozuv bo’lib, ularning xar biri 6ta maydondan iborat.
Mazkur maydonlarning har biri mos ravishda «Familiyasi», «Ismi», «Tug’ilgan
sanasi», «Guruxi», «Turar joyi» va «Qiziqqan fani» deb nomlangan. Demak,
yozuvdagi maydonlar soni yozuvga kiritiladigan ma’lumotlar xajmiga bog’lik.
Fayldagi bu yozuvlar birlamchi hisoblanadi. Chunki biror yozuvdagi ixtiyoriy
ma’lumotni boshqa yozuvdagi ma’lumotlar bilan taqqoslab aniqlash mumkin emas. Shuning uchun ham bizga kerakli bo’ladigan ikkilamchi yozuvlarni esa faqat amaliy dasturlar yordamida olish mumkin bo’ladi. Modomiki shunday ekan, MB tashkil qilish, ularga qo’shimcha ma’lumotlarni kiritish va mavjud MBdan foydalanish uchun maxsus MBlar bilan ishlaydigan programmalar zarur bo’ladi. Bunday dasturlar majmui ma’lumotlar bazasini boshqarish tizim (MBBT) deb yuritiladi. Aniqroq qilib aytganda, MBBT-bu ko’plab foydalanuvchilar tomonidan MBni yaratish, unga qo’shimcha ma’lumotlarni kiritish va MBni birgalikda ishlatish uchun zarur bo’lgan dasturlar majmuidir. MBBTning tarkibida asosiy komponenti-bu ma’lumotlar bo’lsa, boshqa komponenti-foydalanuvchilar, Hardware- texnik va Software-dasturiy ta’minoti hisoblanadi. Hardware tashki qo’shimcha xotiradan (disk, magnit lentasi) iborat bo’lsa, dastur qismi esa MB bilan foydalanuvchi o’rtasidagi muloqotni tashkil qilishni amalga oshiradi. MBning tuzilishi o’rganilayotgan obuektning ma’lumotlari ko’rinishi, ma’nosi, tuzilishi va xajmiga bog’lik bo’ladi.
Odatda, foydalanuvchilar quyidagi kategoriyalarga bo’linadilar:
Foydalanuvchi - dastur tuzuvchi,
tizimli dastur tuzuvchi,
ma’lumotlar bazasi administratori.
Bunda dastur tuzgan foydalanuvchi MBBT uchun yozgan dasturiga javob beradi, tizimli dastur tuzuvchi esa butun sistemaning ishlashi uchun javobgar hisoblanadi. U xolda MB administratori sistemaning saqlanish xolatiga va ishonchliligiga javob beradi.
MBBT quyidagicha tavsiflanadi:
Ispolnimost'-Bajarilishlik, foydalanuvchi so’roviga hozirjavoblik bilan muloqotga kirishish
Minimalnaya povtoryaemost' - Minimal takrorlanishlik
MBdagi ma’lumot iloji boricha kam takrorlanishi lozim, aks xolda ma’lumotlarni izlash susayadi.
Yaxlitlik -axborotni MBda saqlash iloji boricha ma’lumotlar orasidagi bog’liqlikni asragan xolda bo’lgani, ayni muddao.
Bezopasnost'-Xavfsizlik MB ruxsat berilmagan kirishdan ishonchli ximoya qilingan bo’lishi lozim. Faqat foydalanuvchi va tegishli tashkilotgina ma’lumotlarga kira olish va foydalanish xuquqiga egalik qilishi mumkin.
Migratsiya-ba’zi bir ma’lumotlar foydalanuvchilar tomonidan tez ishlatilib turiladi, boshqalari esa faqat talab asosida ishlatiladi. Shuning uchun ma’lumotlarni tashki xotiralarda joylashtiriladi va uni shunday tashkil qilish kerakki, eng ko’p ishlatiladigan ma’lumotlarga murojaat qilish qulay bo’lsin.
Ma’lumotlar bazasini boshqarish tizimida xar bir MB modeli quyidagi xususiyatlari bo’yicha tavsiflanadi:
Ma’lumotlar tuzilmalarining turi.
Ma’lumotlar ustida bajariladigan amallar.
Butunlikning cheklanganligi.
Bu xususiyatlarni e’tiborga olgan xolda ma’lumotlar bazasi modellari
quyidagi turlarga bo’linadi:
Daraxtsimon (ierarxik) modellar.
Tarmoqli (turli) modellar.
Relyatsion modellar.
Y ana shu narsani ta’kidlash lozimki, ma’lumotlar bazasi modellarining faqatgina yuqorida qayd qilingan modeli mavjud deyish, noto’g’ri. Chunki, bulardan tashqari yana ma’lumotlar bazasining binar munosabatlar modeli, ER - modellari, semantik model kabi boshqa turlari ham mavjud. Lekin amalda asosan dastlabki ta’kidlangan 3 turli modellar ko’prok qo’llanilib kelinmoqda. Shuning uchun ham biz ushbu modellarga qisqacha to’xtalib o’tamiz.
Daraxtsimon (ierarxik) modelda obuektlar yozuvlar ko’rinishida ifodalanadi. Masalan,Ierarxik modelda ikki yarusdagi elementlar bog’langan bo’lsa, unday ma’lumotlar tarmoqli (turli) modelda ifodalangan deyiladi. Tarmoqli modellarda ham obuektlar daraxtsimon modellardagi kabi yozuvlar ko’rinishida tasvirlanadi. Obuektlarning o’zaro aloqalari yozuvlar o’rtasidagi aloqalar sifatida tavsiflanadi.
Relyatsion modellarda esa obuektlar va ularning o’zaro aloqalari ikki o’lchovli jadval ko’rinishida tasvirlanadi. Ma’lumotlarning bunday ko’rinishda tasvirlanishi obuektlarning o’zaro aloqalarini yaqqol tasvirlanishiga asos bo’ldi.[3]
Ma'lumotlar bazasi arxitekturasi
MBBT aloxida olingan modullardan tashkil topgan:
MB boshqarish bloki disklardagi ma’lumotlar bilan foydalanuvchi dasturi va tizimning so’rovi (guery) orasidagi interfeysni aniqlaydi.
Fayl menedjeri-ma’lumotlar tuzilmasi bilan disklar o’rtasidagi bog’lanishni boshqaradi.
Guery-protsessor ingliz tilida yozilgan guery gaplarini MBni boshqarish bloki tushunadigan tilga o’tkazadi.
Prekompilyator DML(Data Manipulation Language) ma’lumotlar
bilan manipulyatsiya qiladigan til bo’lib, u quyidagi operatsiyalarga javob beradi:
MBdan ma’lumotlarni ajratib olish,
MBga ma’lumotlarni kiritish,
MBdan ma’lumotlarni olib tashlash,
MBni modifikatsiya (o’zgartirishlar) qilish.
Kompilyator DDL(Data Definition Language)-MB tilini, uning tuzilmasini va tashqi xotiralardagi axborot turini aniqlaydi. MBning tuzilmasi ko’pincha jadval shaklida bo’ladi.
Shuni takidlash lozimki, xozirgi vaqtda deyarli barcha MBBTlar asosan relyatsion modellar asosida tashkil qilinmoqda. Shuni nazarda tutgan Microsoft Office korporatsiyasi ham eng ommalashgan dastur vositalarga ega, bu dastur vositalari ixtiyoriy soxada yuqori darajadagi professional xujjatlar tayyorlash imkonini beradi. Shulardan biri MBlar bilan ishlashga mo’ljallangan Microsoft Access dasturi bo’lib, bu programma Visual Basic for Application dasturlash muxitida makroslar yaratish va boshqa bir qancha imkoniyatlarga egaki, bu foydalanuvchiga har tomonlama mukammal bo’lgan xujjatlar tayyorlashga yordam beradi.[4]
Microsoft Office ning o’zbek tilidagi varianti yo’qligi, uning faqat ingliz va rus tilida yaratilgan versiyalaridangina foydalanish imkoniyatiga ega ekanligimizdan mazkur fikrlar Microsoft Access ning ruscha versiyasiga tayanib yozilgan. Microsoft Access dasturi xam relyatsion modellar asosiga qurilgan bo’lib, unda tashkil qilinadigan MBlar jadval ko’rinishida aks etadi. Bunday jadvaldagi ustunlar maydon deb, satrlar esa yozuv deb ataladi.
Dostları ilə paylaş: |