• MAVZU: Ma‘lumotlar bazasiga murojaatni tashkil etishda ODBC va turli dasturlardan foydalanish. REJA
  • Foydalanilgan adabiyotlar
  • O’zbekiston respublikasi axborot texnologiyalari va kommunikatsiyalari rivojlantirish vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti




    Download 90.01 Kb.
    Sana07.01.2024
    Hajmi90.01 Kb.
    #131871
    Bog'liq
    Mustaqil ish (1)
    25-maktab targ\'ibot tavsiya (3), 3-семинар Полимерлар физикаси, mustaqillik yillarida ozbekistonda a, 1 (2), Qalqonsimon bez, TEST oraliq, 2 qiziqarli kimyo, Kim yaxshi, kim esa yomonotliqmiz-fayllar.org, 7 –Mavzu Mеdia maydonda axborot tarqatish madaniyati Reja, AVAESTO, Mustaqil ish fizika 1-topshiriq, JISMONIY SHAXSLARDAN OLINADIGAN DAROMAD SOLIG‘INI TO‘LOVCHILAR VA SOLIQQA TORTISH OBYEKTLARI., 1, 2


    O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARI RIVOJLANTIRISH VAZIRLIGI


    MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI

    MA’LUMOTLAR BAZASI


    FANI BO’YICHA

    MUSTAQIL ISH
    KOMPYUTER INJINERINGI AT-SERVIS FAKULTETI
    028 -21 – GURUH TALABASI MAMASOLIYEV FARHOD

    TOSHKENT-2023



    MAVZU: Ma‘lumotlar bazasiga murojaatni tashkil etishda ODBC va turli dasturlardan foydalanish.

    REJA:
    1.Kirish.
    1.1 Ma’lumotlar bazasiga murojaatni tashkil etish
    1.2. ODBS va turli dasturlardan foydalanish.

    2.Asosiy qism.
    2.1. Ma’lumotlar bazasiga murojaatni tashkil etishda C# dasturi
    2.2. Ma’lumotlar bazasiga murojaatni tashkil etishda C++ dasturi
    2.3. ODBS va C++ dasturlash tili yordamida ma’lumotlar bazasiga
    murojaatlarni tashkil etish usullari

      1. . SQL so‘rovlardan foydalanish, intеrfеys va malumotlar bazasi aloqasini ta’minlash

    3.Xulosa.

    4.Foydalanilgan adabiyotlar

    Malumotlar bazasiga murojat qilish uchun quyidagi bosqichlarni amalga oshirishingiz mumkin:

    1. Masofaviy Murojaat: Malumotlar bazasiga murojat qilish uchun tashqi ilovalardan yoki so'rovli tarmoqlardan foydalanishingiz mumkin. Buning uchun ilgari malumotlar bazasiga bog'lanishingiz va so'rov yuborishingiz kerak.
    2. Bog'lanish ma'lumotlari: So'rov yuborish uchun malumotlar bazasiga bog'lanish uchun kerak bo'lgan ma'lumotlarni (masalan, server nomi, protokol, port raqami, foydalanuvchi nomi, parol va boshqa kiritish kerak bo'lgan ma'lumotlar) to'plashingiz kerak.
    3. So'rov yuborish: Malumotlar bazasiga so'rov yuborish uchun muqobil dastur tomonidan so'rov yaratishingiz kerak. So'rovning tashqi sintaksisi va boshqa ma'lumotlar bazalariga xos talablar bo'lishi mumkin.
    4. Javobni qabul qilish: So'rovni malumotlar bazasi qabul qilib, uni bajarib chiqqan natijani olishingiz mumkin. Natija boshqa ma'lumotlar bazasida yoki serverda saqlanishi mumkin.
    5. Ma'lumotlar bazasidan chiqib ketish: Bajarilgan so'rovdan so'ng, javobni olishingiz mumkin. Agar natija ma'lumotlar ko'rinishida bo'lsa, uning bilan dastur davomit berish yoki foydalanuvchiga natijani ko'rsatish mumkin.
    Bu amalni bajarish uchun o'zingizga mos muhitni
    tanlayishingiz kerak, masalan, muqobil dastur tomonidan
    So'rov yuborilishi kerak bo'lishi mumkin yoki malumotlarni to'plab olish uchun MongoDB Compass, MySQL Workbench, SQLite Studio kabi vositalardan foydalanishingiz mumkin.

    ODBC, ma'lumotlar bazalariga boğ'liq dasturlarga ulanishni standartlashtiradigan API (Application Programming Interface) protokolidir. Ushbu protokol bilan, Python, Java, C++, C# kabi dasturlardan ma'lumotlar bazasiga murojaatda yordam beruvchi o'rtacha yo'llar yaratish mumkin.


    Turli dasturlardan ma'lumotlar bazasiga murojaatni tashkil etish uchun siz quyidagi qadamlarni amalga oshiring:
    1. ODBC treiber (draiver) o'rnatishingiz kerak. Ma'lumotlar bazangiz uchun dasturningizga mos bo'lgan ODBC treiberini olishingiz kerak.
    2. ODBC draiver yordamida ma'lumotlar bazasiga bog'laning. Bu sizning dasturingiz qo'llab-quvvatlagan o'rtacha yo'l bo'ladi, masalan, pyodbc kutubxonasini Python-da yoki jdbcni Java-da ishlatishingiz mumkin.
    3. Bog'lanish parametrlarini sozlang. Bog'lanish uchun ma'lumotlar bazasi nomi, foydalanuvchi nomi, parol, server nomi, port raqami va boshqa ko'rsatmalarni tasdiqlang.
    4. SQL-sorovlarini jo'nating. Bog'lanish muvaffaqiyatli bo'lsa, ma'lumotlar bazasi bilan SQL-sorovlarini yuborish va natijalarni qabul qilish mumkin.
    Shuningdek, ko'plab dastur tillarida ma'lumotlar bazasiga bog'lanish uchun ma'lumotlar bazasi OLAP (Online Analytical Processing) va OLTP (Online Transaction Processing) qo'llanmalari mavjud bo'lishi mumkin, masalan, MySQL, PostgreSQL, Oracle, SQL Server, SQLite va boshqalar.

    Agar siz MySQL uchun yaratilgan dasturni boshqa MBBT ga ko‘chirmoqchi bo‘lsangiz o‘z kodingizni shu yadro API sidan foydalanadigan qilib qayta yozishingiz kerak.Lekin dasturchilar boshqa ma’lumotlar bazasiga ko‘chirish muammosidan asosan xalos bo‘lganlar. Ularda yagona API, Open DataBase Connectivity API (ODBC), xamma SQL-ma’lumotlar bazalariga unifikatsiya qilingan interfeys mavjud. ODBC xamma ma’lumotlar bazalariga yagona interfeys bo‘lgani uchun, MySQL va boshqa MBBT lar bilan ishlovchi dasturlar yaratish uchun uni o‘rganib chiqish etarli. Agar siz kerakli tarzda ODBC dan foydalansangiz, siz yaratgan dasturlar ixtiyoriy MBBT bilan ishlay oladi.ODBC xaqida tushuncha .


    Kodd relyatsion algebrasi. Relyatsion hisoblash.
    Ma’lumotlarning relyatsion bazasi - bu o’zaro bog’langan munosabatlar to’plamidir. Har qanday munosabat (jadval) kompyuterlarning xotirasida fayl ko’rinishda joylashadi.Jadval hamma uchun qulay bo’lishi bilan bir qatorda ma’lumotlarni manipulyatsiya qilishning asosiy uch operatsiyasini bajarish birmuncha noqulaylikni ham tug’diradi, asosan tartiblash, guruhlash va daraxt ko’rinishidagi parametrlar bilan ishlashda.
    Jadvalda ushbu uch operatsiya bir – biri bilan chambarchas bog’langan. Bu esa ba’zi bir operatsiyalarni bajarishda ma’lum bir qiyinchiliklarga olib keladi. Masalan, ma’lumotlarni bir parametr asosida tartiblash ikkinchi bir parametr bo’yicha tartiblashni buzib yuborishi tufayli zarur ma’lumotlarni izlab topish operatsiyasi bir parametr bo’yicha osonlashsa, boshqalari bo’yicha qiyinlashadi.
    Obʼektli maxlumotlar bazasi. Loyixalash, qayta ishlash va tadqiqi
    Maʼlumotlar bazasi (MB) bu – maʼlumotlarni saqlash, oʻqish, qayta ishlash va qidirish uchun moʻljallangan markaziy maʼlumotlar ombori. Turli dasturlar yaratar ekanmiz, dastur ishlashiga oid boʻlgan maʼlumotlarni u yoki bu koʻrinishda saqlashimiz kerak. Misol uchun dastur foydalanuvchilari va ularning shaxsiy maʼlumotlari, rasmlari, postlar, mahsulotlar va hokazo.
    Bu maʼlumotlarni qay koʻrinishda saqlash, turli maʼlumotlar oʻrtasidagi munosabatlar (foydalanuvchi-post, mijoz-mahsulot), bu maʼlumotlarga murojaat qilish va unumli foydalanish uchun MBni toʻgʻri loyihalash juda muhim ahamiyatga ega.
    NoSql maʼlumotlar bazasi va uning asosiy printsiplari .
    NoSQL qisqartmasi 1998-yilda yaratilgan. Ko'p odamlar NoSQL-ni SQLda siqib chiqarish uchun yaratilgan kamsitish atamasi deb hisoblashadi. Aslida, atama faqat SQL emas. Ushbu g'oya shundan iboratki, har ikkala texnologiya ham birlashishi mumkin va ularning har biri o'z o'rnini egallaydi. NoSQL-harakati so'nggi bir necha yil ichida yan giliklar bo'ldi, chunki Web 2.0 rahbarlarining ko'pchiligi NoSQL texnologiyasini qabul qildilar. Facebook, Twitter, Digg, Amazon, LinkedIn va Google kabi kompaniyalar hech qanday tarzda NoSQL-dan foydalana olmaydi.
    Keling, noSQL-ni buzaylik, siz uni CIO-ga yoki hatto hamkorlaringizga tushuntira olasiz.
    Maʼlumotlar bazasiNI shakllantirishda texnologiyalar perspektivalari.
    Hozirgi kunda inson xayotida MBda kеrakli axborotlarni saqlash vaundan oqilona foydalanish juda muxim rol o’ynaydi. Sababi jamiyattaraqqiyotining qaysi jabxasiga nazar solmaylik o`zimizga kеrakli ma'lumotlarniolish uchun albatta, MBga murojaat qilishga majbur bo’lamiz. Demak, MB nitashkil qilish axborot almashuv texnologiyasining eng dolzarb hal qilinadiganmuammolaridan biriga aylanib borayotgani davr taqozasidir. Ma'lumki, MBtushunchasi fanga kirib kеlgunga qadar, ma'lumotlardan turli ko’rinnshdafondalanish juda qiyin edi. Dastur tzuvchilar ma'lumotlarni shunday tashkil qilaredilarki u faqat karalayotgan masala uchungina o’rinli bo’lardi. 
    Аmaliyotda maʼlumotlar bazasini qurishda maʼlumotlar modeli.
    Ma’lumotlar bazasini (MB) ishlab chiqish (loyihalash)ning asosiy maqsadi uning mantiqiy tuzilishini aniqlashdan iboratdir. MBni ishlab chiqish predmet sohasini tavsiflash asosida amalga oshiriladi. Bu tavsiflash MBga kiruvchi hamma ma’lumotlarni o‘z ichiga oluvchi hujjatlar majmuini va predmet sohasini ifodalovchi ob’ekt va jarayonlar haqidagi boshqa ma’lumotlarni o‘z ichiga oladi. MBni yaratishni uni loyihalashdan boshlash lozim. Loyihalash natijasida relyasion bazaning tuzilishi, ya’ni relyasion jadvallar tarkibi, ularning tuzilishi va mantiqiy aloqadorligi aniqlanadi. Relyasion jadvalning tuzilishi esa uning ustunlari tarkibi, ularning ketma-ketligi, ustun ma’lumotlarining turi va o‘lchami, shuningdek jadval kaliti bilan aniqlanadi.
    ORACLE maʼlumotlar bazasi.
    Oracle (Ma'lumotlar Bazasini Boshqarish Tizimi) – katta hajmdagi ma'lumotlarni boshqarish, ulardan kerakli ma'lumotlarni so'rov orqali istalgan ko'rinishda chiqarib olish, ma'lumotlarning zahira nusxalarini olish, katta xajmdagi ma'lumotlarni siqish, qulay interfeysda baza ustidan nazorat o'rnatish, ma'lumotlar asosida hisobotlar hosil qilish va bulardan boshqa ma'lumotlar ustida juda katta ko'lamdagi ishlarni amalga oshiradigan dasturiy kompleksdir. Oracle dasturini server va klient ko'rinishida o'rnatish mumkin va berilgan ruxsat doirasida ishlatish mumkin. Bu dastur asosan katta xajmdagi ma'lumotlar bilin ishlaganligi uchun , asosan yirik korxonalarda ishlatiladi. Bu dasturning asosini ma'lumotlar bazasi tushunchasi tashkil etadi.
    Maʼlumot bazasi tizimining arxitekturasi.
    Ma'lumotlar bazasi har xil ma'lumotlar aslida saqlanadigan har xil turdagi fayllar to'plami bilan ta'minlanadi. Quyida ushbu turdagi fayllar nima ekanligini va har bir fayl turi biz uchun qanday foydali bo'lishi mumkinligi qisqacha tavsiflangan. shbu fayllar haqiqiy ma'lumotlarni jadvallar, indekslar, triggerlar va boshqa ob'ektlar shaklida saqlaydi. Ma'lumotlar fayllari butun ma'lumotlar bazasida eng muhim hisoblanadi. Standart bazada kamida ikkita ma'lumot fayllari bo'lishi kerak: tizim ma'lumotlari (SYSTEM jadval maydoni) va foydalanuvchi ma'lumotlari uchun (USER jadval maydoni). SYSTEM jadval maydoni shifrlangan shaklda barcha foydalanuvchilarning parollarini saqlaydi. Bazadagi barcha operatsiyalar ularga yoziladi. Ular faqat ma'lumotlar bloki mavjud bo'lganda ma'lumotlar bazasida ma'lumotlarni qayta tiklash uchun ishlatiladi
    Relyatsion maʼlumot modeli. Maʼlumotlar bazasida munosabatlar
    Ma‟lumotlarning relyatsion modeli. Relyatsion MB kuchli nazariy fundamentga ega bo‘lib, u matematik munosabatlar (otnosheniya) nazariyasiga asoslangan. Ma‘lumotlarning relyatsion modeli kontseptsiyasi 1970 yilda Ye.F.Kodd tomonidan taklif qilingan bo‘lib, u ma‘lumotlarni tavsiflash va tasvirlashning amaliy dasturlaridan bog‘liq bo‘lmasligini ta‘minlash masalasini hal qilish uchun xizmat qiladi. Ma‘lumotlarning relyatsion modeli asosida «munosabat» tushunchasi yotib, u inglizcha relation so‘zidan olingan. Ba‘zi bir qoidalarga amal qilgan holda munosabatlarni ikki o‘lchovli jadvalko‘rinishda tasvirlash mumkin. Jadval har qanday odamga tushunarli va qulaydir. 
    Maʼlumotlar bazasini rejalashtirish, loyihalashlash va administratorlash.
    Ma’lumotlar bazasini loyihalash va administratorlash. Ma’lumotlar bazasi haqida tushuncha. Ma’lumotlar bazasining asosiy atamalari. Ma’lumotlar bazasini loyihalash bosqichlari. Ma’lumotlar bazasini boshqarish. Ma’lumotlar bazasini va jadvallarda foydalanuvchilarni belgilash va cheklash. Ma’lumotlar bazasini administratori imkoniyatlari va vazifalari. Adabiyotlarda mualliflarning sub'ektiv fikrlarini aks ettiruvchi "ma'lumotlar bazasi" tushunchasining ko'plab ta'riflari berilgan, ammo umuman qabul qilingan yagona shakli mavjud emas. Ma'lumotlar bazasi - bu ma'lumotlar sxemasiga muvofiq saqlanadigan va ma'lumotlarni modellashtirish vositalari qoidalariga muvofiq manipulyatsiya qilinadigan ma'lumotlar to'plamidir.
    Maʼlumotlar bazasini administratorlash va xavfsizligini taʼminlash.
    MB administratori deyilganda birorta shaxs yoki bir necha shaxslardan iborat bo'lgan va MBni loyihalash, uzatish va samarador ishlashini ta'minlovchidir.Ma'lumotlar bazasi tushunchasi bilan ma'lumotlar banki tushunchasi ham mavjud. Ma'lumotlar banki (MBn) tushunchasi ikki xil talqin etiladi. Hozirgi kunda ma'lumotlar markazlashmagan holda (ishchi o'rinlarda) ShK yordamida qayta ishlanadi. Ilgari ular alohida xonalarda joylashgan hisoblash markazlarida markazlashgan holda qayta ishlangan. Hisoblash markazlariga axborotlar tashqi qurilmalar orqali kelib to'plangan. Ma'lumotlar bazasi markazlashgani hisobiga ularni ma'lumotlar banki deb atashgan. Bunda ma'lumotlarga murojat etish ishchi stansiyalardan markazlashgan holda tashkil etilgan va shuning uchun ma'lumotlar banki bilan ma'lumotlar bazasi tushunchalari o'rtasida farq qilingan.
    Ochiq maʼlumotlar bazasi aloqasi (ODBC) interfeysi.
    OdBC (ma'lumotlar bazasi ulanishi) - "Microsoft tomonidan ishlab chiqilgan" Microsoft tomonidan ishlab chiqilgan "Microsoft" tomonidan ishlab chiqilgan ma'lumotlar bazalariga kirish, SQL kirish guruhi, X / Open va Microsoft tomonidan ishlab chiqilgan ma'lumotlar bazalariga kirish. Keyinchalik CLI ISO ISO / IEC 9075-3: 2003. (Eng.) CLI. Standard DBMS bilan dasturiy aloqalarni birlashtirish uchun ishlab chiqilgan, uni Dbms va dasturiy ta'minot va apparat platformasidan mustaqil qiladi. 1990 yil boshida bir nechta ma'lumotlar bazasi provayderlari mavjud edi, ularning har biri o'z interfeysi bor edi. Agar dastur bir nechta ma'lumotlar manbalari bilan aloqa qilish zarur bo'lsa, uning kodeksining har biri bilan o'zaro aloqada bo'lish kerak edi.
    ADO texnologiyasidan foydalanish.
    ADO.NETga kirish. Bugungi kunda ma'lumotlar bilan ishlas katta ahamiyatga ega. Ma'lumotni saqlash uchun turli xil ma'lumotlar bazalarini boshqarish tizimlari qo'llaniladi: MS SQL Server, Oracle, MySQL va boshqalar. Ko'pgina katta dasturlar, bu yoki boshqa usulda, ma'lumotlarni saqlash uchun ushbu ma'lumotlar bazasini boshqarish tizimlaridan foydalanadilar. Ammo ma'lumotlar bazasi va C # ilovasi o'rtasida aloqa o'rnatish uchun vositachi kerak. Va aynan shunday vositachi ADO.NET texnologiyasidir. ADO.NET .NET Framework asosida ma'lumotlar texnologiyasini ta'minlaydi. Ushbu texnologiya bizga ma'lumotlar bazalariga so'rovlar yuborish, ulanishlarni o'rnatish, ma'lumotlar bazasidan javob olish va boshqa bir qator operatsiyalarni bajarish uchun sinflar to'plamini taqdim etadi. 
    ADO va C++ orqali maydon qiymatlarini kiritish, yozuvlarni oʼzgartirish, qoʼshish va oʼzgartirish.
    Bundan tashqari, ma'lumotlar bazasini boshqarish tizimlari juda ko'p bo'lishi mumkinligini ta'kidlash kerak. O'zlarining mohiyatiga ko'ra, ular farq qilishi mumkin. Masalan, SQL Server so'rovlarni tuzishda TSQL dan foydalanadi, MySQL va Oracle esa PL-SQL-dan foydalanadilar. Turli
    ma'lumotlar bazalari tizimlarida har xil turdagi ma'lumotlar bo'lishi mumkin. Boshqa fikrlar ham farq qilishi mumkin. Biroq, ADO.NETning funktsional imkoniyatlari ishlab chiquvchilarga keng qamrovli DBMS bilan ishlash uchun birlashtirilgan interfeysni taqdim etadigan tarzda yaratilgan. DataSet ob'ekti ma'lumotlar bazasidan ma'lumotlarni saqlash uchun mo'ljallangan va ma'lumotlar bazasidan qat'i nazar ular bilan ishlashga imkon beradi. Va DataAdapter bu DataSet va ma'lumotlar manbai o'rtasida vositachi.
    XML va maʼlumotlar bazasi
    XMLning paydo bo‘lgan yilini 1996 yil deb hisoblasa ham bo‘ladi. Hammasi 1986 yilda paydo bo‘lgan SGML tilidan boshlanadi. SGML (Standard Generalized Markup Language — umulashgan standart belgilash tili) belgilash tillarini xosil qiluvchi meta-til sifatida paydo bo‘lgan. SGML boshqa belgilash tillarini yaratishda keng qo‘llaniladi. Aynan shu til yordamida gipertekst hujjatlarni belgilash tili – HTML ni yaratishda ishlatilgan. XML (eXtensible Markup Language — kengaytirilgan belgilash tili) — Butun dunyo o‘rgimchak to‘ri Konsorsiumi tomonidan tavsiya etilgan, strukturalangan ma’lumotlarni saqlashda, matn hujjatlarni shakllantiruvchi til. Shuningdek dasturlar aro ma’lumot almashishda ham ishlatilishi mumkin.
    XML yaratishdan maqsad strukturalangan ma’lumotlar .
    XML yaratishdan maqsad strukturalangan ma’lumotlarni har-xil tizimlar orasida internet orqali o‘zaro ma’lumot almashishda mutanosiblikni ta’minlash bo‘lgan. XML tili hamHTML tiliga o‘xshash til xisoblanadi. HTML dan farqli tomoni shundaki, XML da dasturchi o‘zining shaxsiy teglarini yaratadi va ular orasiga ma’lumotlar joylashtiradi. XML-teglar harflar katta kichikligini farqlaydi. HTML teglari hujjatni ekranda ko‘rinishini ifodalaydi. XML teglari hujjatdagi ma’lumotlarni tavsiflash uchun ishlatiladi. Undan tashqari XML yordamida yangi teglarni yaratish mumkin. XMLda ma’lumotlar tuzilmaviy holda saqlanadi. XML asosan ma’lumotlar almashinuvida ko‘p ishlatiladi, chunki XML platformadan mustaqil bo‘lib, HTTP orqali ishlashi juda qulay. Quyida XMLda tuzilgan dastur bilan tanishamiz: Bu dastur bloknotga yoziladi va .xml ko‘rinishida . MBBT Bilan ishlashni uchta asosiy tushuncha tasvirlaydi: ulanish, natijaviy to‘plam va natijaviy to‘plam satrlari. 1-rasm bu ob’ektlarni UML-diagrammada ko‘rsatadi.
    UML - bu yangi Unifikatsiyalangan modellashtirish tili bo‘lib, sozdannыy Gradi Buch, Ayvar YAkobson va Djeyms Rambo (Grady Booch, Ivar Jacobson, James Rumbaugh) tomonidan ob’ektga-yo‘naltirilgan loyixalash va taxlilni xujjatlash YAngi standarti sifatida taklif qilingan.
    Ma’lumotlar bazasiga ulanish
    Ixtiyoriy muxitda ma’lumotlar bazasiga murojaat ulanishdan boshlanadi. Bizning ob’ektga-yo‘naltirilgan bibliotekamizni yaratish Connection ob’ektini yaratishdan boshlanadi. Ob’ekt Connection server Bilan bog‘lanishni o‘rnatish, zarur ma’lumotlar bazasini tanlash, so‘rovlarni uzatish va natija olishni bilishi kerak.
    Connection sinfi usullari xamma MBBT lar uchun bir xildir. Lekin sinf ichida, kompilyasiya qilinayotgan biblioteka uchun xos bo‘lgan yopiq a’zolar berkitilgandir. Bog‘lanish o‘rnatishda ma’lumotlar Bilan bog‘lanishni ta’minlaydigan sinf a’zodlari farqli bo‘lib qoladi.
    Ma’lumotlar bazasi bilan ulanishni o‘rnatish
    Bu API yordamida yaratiladigan xamma amaliy dasturlarga ma’lumotlar bazasiga ulanish uchun Connection sinfi nusxasini uning konstruktorlaridan biri yordamida yaratish kerak bo‘ladi. U kabi uzilish uchun Amaliy dastur Connection nusxasini o‘chirishi kerak. U to‘g‘ridan to‘g‘ri Close() va Sonnect() usullariga murojaat qilib Connection nusxasini qaytadan ishlatishi mumkin.
    Ma’lumotlar bazasidan uzilish
    Connection yana bir mantiqiy funksiyasi ma’lumotlar bazasi bilan aloqani uzish va dasturdan berkitilgan resurslarni ozod qilishdir. Bu funksiyani Close () usuli amalga oshiradi.
    Ma’lumotlar bazasiga murojaatlarni bajarish
    Bog‘lanishni ochish va yopish odatda ma’lumotlar bazasiga komandalar yuboriladi. Connection sinfi argument sifatida SQL komanda oluvchi Query() usuli yordamida bajaradi. Agar komanda so‘rov bo‘lsa 2-5. rasmda ko‘rsatilgan ob’ekt modelidan Result sinfi nusxasini qaytaradi. Agar komanda ma’lumotlarni yangilayotgan bo‘lsa, usul NULL qaytaradi va affected_rows qiymatini o‘zgartirilgan satrlar soniga teng qiladi.
    Natijaviy to‘plamlar
    Result sinfi natijaviy to‘plam ma’lumotlariga xamda shu natijaviy to‘plam bilan bog‘liq meta ma’lumotlarga murojaatni ta’minlashi kerak. 2-5 rasmda ko‘rsatilgan ob’ektli modelga asosan bizning Result sinfimiz natijaviy to‘plam satrlarinissikl bo‘yicha o‘qish va undagi satrlar sonini aniqlashni ta’minlaydi.
    Natijalar bo‘yicha ko‘chish
    Bizning Result sinfimiz natijaviy to‘plam Bilan qatorma qator ishlaydi.Result sinfi nusxasini Query() usuli yordamida olgandan so‘ng amaliy dastur to navbatdagi Next() usuli 0 qaytarmaguncha, ketma ket Next() va GetCurrentRow() usullarini chaqirishi lozim.
    Satrlar
    Natijaviy to‘plamning aloxida satri bizning ob’ektli modelimizda Row sinfi bilan tasvirlanadi.
    Ma’lumotlarga murojaat massiv indeksi bo‘yicha so‘rov tomonidan berilgan tartibda amalga oshiriladi. Masalan, SELECT user_id , password FROM users so‘rov uchun indeks 0 foydalanuvchi nomini va indeks 1 – parolьni ko‘rsatadi. Bizning C++ API bu indeklashni foydalanuvchi uchun do‘stona qiladi. GetField(1) yoki fields[0] birinchi maydonni qaytaradi. Ko‘pchilik, terminlarni tushunish bo‘yicha biroz qiynalishadi, lekin aynan terminlarni bilish, qo‘yilgan vazifalarni yechishda yoki paydo bo‘lgan xatoliklarni bartaraf etishda juda kerak bo‘ladi. Misol uchun, biror muammo paydo bo‘lsa, biz darhol Google’ni yordamga chaqiramiz, agar Google qidiruv tizimiga terminlar orqali so‘rov bersangiz, muammo yechish qiyinchilik tug‘dirmaydi, agar terminlarsiz oddiy so‘zlar bilan qidirishni amalga oshirsangiz, muammoni yechishga ancha vaqt ketib qoladi. Bu maqolada ma’lumotlar bazasiga oid juda kerakli va ko‘pchilik(!) adashtiradigan ikki terminni tushuntirishga harakat qilaman: Ma’lumotlar bazasi va Ma’lumotlar bazasini boshqarish tizimi (MBBT). Ma’lumotlar bazasi bu — tartiblangan ma’lumotlarni saqlovchi va qayta ishlovchi axborot modeli hisoblanadi. Soddaroq qilib aytganda, bir hil turdagi axborotlarni o‘zida saqlovchi va berilgan so‘rovlar orqali ularni taqdim etuvchi model. Misol uchun, kitoblar javoni, bu ma’lumotlar bazasi hisoblanadi, ya’ni bir hil turdagi (kitoblarni) ob’yektlarni o‘zida saqlaydi, yoki bo‘lmasa telefon raqamlar yozilgan kitobcha, bu yerda ism, telefon raqam kabi bir hil tipdagi ma’lumotlar saqlanadi, bu ham ma’lumotlar bazasi. Ma’lumotlar bazasini boshqarish tizimi — bu ma’lumotlar bazasini hosil qiluvchi, ma’lumotlarni qayta ishlovchi va qidiruvchi tizim hisoblanadi. Qisqa qilib aytganda, MBBT barcha jarayonlarni amalga oshiradi. Ma’lumotlar bazasi faqat ma’lumotlarni saqlaydi, qolgan barcha ishlarni MBBT bajaradi.
    Ma’lumotlar bazasidagi ma’lumotlar, SQL so‘rov tillari orqali boshqariladi, bu tilda MBBT’ga so‘rov beriladi, bu so‘rov u yerda qayta ishlanib, natija olish uchun ma’lumotlar bazasiga murojaat qiladi, u yerdan so‘rovga mos ma’lumotni olib, so‘rovga javob beradi:
    So‘rov berish:
    SQL so‘rov -> MBBT -> Ma’lumotlar bazasi
    natija olish:
    Ma’lumotlar bazasi -> MBBT — > So‘rovga javob
    Quyidagi dasturlar MBBT’ga misol bo‘la oladi:
    — Oracle;
    — MySQL;
    — Microsoft Office Access;
    — MariaDB;
    — Microsoft SQL Server;
    Xulosa misol keltirib utamiz
    Hulosa shuki, siz o‘ylagan bu dasturlar, ma’lumotlar bazasi emas, balki MBBT hisoblanadi.
    Ma’lumotlar bazasi MBBT’ning bir qismidir, demak bu dasturlarni ishlatganda «ma’lumotlar bazasi sifatida Oracle’ni tanladim» emas,balki «Ma’lumotlar bazasini boshqarish tizimi sifatida Oracle’ni tanladim» to‘g‘ri bo‘ladi. Hozirgi kunda barcha sohalarda ma'lumotlar bazasi (MB) kerakli axborotlarni saqlash va undan oqilona foydalanishda juda muhim rol o'ynamoqda. Jamiyat taraqqiyotining qaysi jabhasiga nazar solmaylik o'zimizga kerakli ma'lumotlarni olish uchun, albatta, MBga murojaat qilishga majbur bo'lamiz. Demak, MBni tashkil qilish axborot almashuv texnologiyasining eng dolzarb hal qilinadigan muammolaridan biriga aylanib borayotgani davr taqozasidir. Axborot texnologiyalarining rivojlanishi va axborot oqimlarining tobora ortib borishi, ma'lumotlarning tez o'zgarishi kabi holatlar insoniyatni bu ma'lumotlarni o'z vaqtida qayta ishlash choralarining yangi usullarini qidirib topishga undamoqda. Ma'lumotlarni saqlash, uzatish va qayta ishlash uchun MBni yaratish, so'ngra undan keng foydalanish bugungi kunda dolzarb bo'lib qolmokda. Moliya, ishlab chiqarish, savdo-sotiq va boshqa korxonalar ishlarini ma'lumotlar bazasisiz tasavvur qilib bo'lmaydi. Ma'lumki MB tushunchasi fanga kirib kelgunga qadar, ma'lumotlardan turli ko'rinishda foydalanish juda qiyin edi. Dastur tuzuvchilar ma'lumotlarini shunday tashkil qilar edilarki, u faqat qaralayotgan masala uchungina o'rinli bo'lardi. Har bir yangi masalani hal qilishda ma'lumotlar qaytadan tashkil qilinar va bu hol yaratilgan dasturlardan foydalanishni qiyinlashtirar edi. Har qanday axborot tizimining maqsadi real muhit ob'ektlari haqidagi ma'lumotlarga ishlov berishdan iborat. Keng ma'noda ma'lumotlar bazasi - bu qandaydir bir predmet sohasidagi real muhitning aniq ob'ektlari haqidagi ma'lumotlar to'plamidir. Predmet sohasi deganda avtomatlashtirilgan boshqarishni tashkil qilish uchun o'rganilayotgan real muhitning ma'lum bir qismi tushiniladi. Masalan, korxona, zavod, ilmiy tekshirish instituti, oliy o'quv yurti va boshqalar. Shuni qayd qilish lozimki, MBni yaratishda ikkita muhim shartni hisobga olmoq zarur: Birinchidan, ma'lumotlar turi, ko'rinishi, ularni qo'llaydigan programmalarga bog'liq bo'lmasligi lozim, Ya'ni MBga yangi ma'lumotlarni kiritganda yoki 3 ma'lumotlar turini o'zgartirganda, programmalarni o'zgartirish talab etilmasligi lozim. Ikkinchidan, MBdagi kerakli ma'lumotni bilish yoki izlash uchun biror programma tuzishga hojat qolmasin. Shuning uchun ham MBni tashkil etishda ma'lum qonun va qoidalarga amal qilish lozim. Bundan buyon axborot so'zini ma'lumot so'zidan farqlaymiz, Ya'ni axborot so'zini umumiy tushuncha sifatida qabul qilib, ma'lumot deganda aniq bir belgilangan narsa yoki hodisa sifatlarini nazarda tutamiz. Ma'lumotlar bazasini yaratishda, foydalanuvchi axborotlarni turli belgilar bo'yicha tartiblashga va ixtiyoriy belgilar birikmasi bilan tanlanmani tez olishga intiladi. Ma'lumotlar bazasidan foydalanuvchilar turli amaliy dasturlar, dasturiy vositalari, predmet sohasidagi mutaxassislar bo'lishi mumkin. Ma'lumotlar bazasining zamonaviy texnologiyasida ma'lumotlar bazasini yaratish, uni dolzarb holatda yuritishni va foydalanuvchilarga undan axborot olishini ta'minlovchi maxsus dasturiy vosita, Ya'ni ma'lumotlar bazasini boshqarish tizimi yordami bilan markazlashtirilgan holda amalga oshirishni nazarda tutadi. Ma'lumotlar bazasi - EHM xotirasiga yozilgan ma'lum bir strukturaga ega, o'zaro bog'langan va tartiblangan ma'lumotlar majmuasi bo'lib, u biror bir ob'ektning xususiyatini, holatini yoki ob'ektlar o'rtasidagi munosabatni ma'lum ma'noda ifodalaydi. MB foydalanuvchiga strukturalashtirilgan ma'lumotlarni saqlash va ishlatishda optimal qulaylikni yaratib beradi. Ma'lumki ma'lumotlarni kiritish va ularni qayta ishlash jarayoni katta hajmdagi ish bo'lib ko'p mehnat va vaqt talab qiladi. MB bilan ishlashda undagi ma'lumotlarning aniq bir strukturagi ega bo'lishi, birinchidan foydalanuvchiga ma'lumotlarni kiritish va qayta ishlash jarayonida undagi ma'lumotlarni tartiblashtirish, ikkinchidan kerakli ma'lumotlarni izlash va tez ajratib olish kabi qulayliklarni tug'diradi. MB tushunchasi fanga kirib kelgunga qadar, ma'lumotlardan turli ko'rinishlarda foydalanish juda qiyin edi. Bugungi kunda turli ko'rinishdagi ma'lumotlardan zamonaviy kompbyuterlarda birgalikda foydalanish 4 va ularni qayta ishlash masalasi hal qilindi. Kompbyuterlarda saqlanadigan MB maxsus formatga ega bo'lgan muayyan tuzilmali fayl bo'lib, undagi ma'lumotlar o'zaro bog'langan va tartiblangandir. Demak, ma'lumotlar bazasi deganda ma'lum bir strukturada saqlanadigan ma'lumotlar to'plami tushuniladi. Boshqacha qilib aytganda MB - bu ma'lum berilgan aniq bir strukturaga ega bo'lgan ma'lumotlarni o'z ichiga oluvchi maxsus formatga ega bo'lgan fayldir. Ma'lumotlarni strukturalashtirish - bu shunchaki ma'lumotlarni tasvirlashda qandaydir moslikni kiritish usulidir. Odatda MB ma'lum bir ob'ekt sohasini ifodalaydi va uning ma'lumotlarni o'z ichiga oladi, ularni saqlaydi va foydalanuvchiga ma'lumotlarni qayta ishlashda undan foydalanish imkonini yaratib beradi. Ma'lumotlar bazasi - bu ma'lum bir predmet sohasiga oid tizimlashtirilgan ma'lumotlarning nomlangan to'plamidir. Ma'lumotlar bazasi - axborot tmzimlarining eng asosiy tarkibiy qismi bo'lib hisoblanadi. Ma'lumotlar bazasidan foydalanish uchun foydalanuvchi ishini engillashtirish maqsadida ma'lumotlar bazasini boshqarish trizimlari yaratilgan. Ma'lumotlar bazasini boshqarish tizimi (MBBT) -bu dasturiy va apparat vositalarining murakkab majmuasi bo'lib, ular yordamida foydalanuvchi ma'lumotlar bazasini yaratish va shu bazadagi ma'lumotlar ustida ish yuritishi mumkin. Hozirgi kunda inson faoliyatida ma'lumotlar bazasi (MB) kerakli axborotlarni saqlash va undan oqilona foydalanishda juda muhim rol o'ynamoqda. Jamiyat taraqqiyotining qaysi jabhasiga nazar solmaylik o'zimizga kerakli ma'lumotlarni olish uchun MBga murojaat qilishga to'g'ri keladi. Demak, MBni tashkil qilish axborot texnologiyalarining eng dolzarb hal qilinadigan muammolaridan biriga aylanib borayotgani davr taqozasidir. Axborot texnologiyalarning rivojlanishi va axborot oqimlarini tobora ortib borishi, ma'lumotlarning tez o'zgarishi kabi holatlar insoniyatni bu ma'lumotlarni o'z vaqtida qayta ishlash choralarining yangi usullarini qidirib topishga undamoqda. Ma'lumotlarni saqlash, uzatish va qayta ishlash uchun MBni yaratish, so'ngra undan keng foydalanish bugungi kunda dolzarb bo'lib qolmoqda. Moliya, ishlab chiqarish, savdo-sotiq va boshqa sohalarni ma'lumotlar bazasisiz tasavvur qilib bo'lmaydi. Ma'lumki, MB tushunchasi fanga kirib kelgunga qadar, ma'lumotlardan turli ko'rinishda foydalanish juda qiyin edi. Dastur tuzuvchilar ma'lumotlarini shunday tashkil qilar edilarki, u faqat qaralayotgan masala uchungina o'rinli bo'lardi. Har bir yangi masalani hal qilishda ma'lumotlar qaytadan tashkil qilinar va bu hol yaratilgan dasturlardan foydalanishni qiyinlashtirar edi. Har qanday axborot tizimining maqsadi real muhit ob'ektlari haqidagi ma'lumotlarga ishlov berishdan iborat. Keng ma'noda ma'lumotlar bazasi - bu qandaydir bir predmet sohasidagi real muhitning aniq ob'ektlari haqidagi ma'lumotlar to'plamidir. Predmet sohasi deganda avtomatlashtirilgan boshqarishni tashkil qilish uchun o'rganilayotgan real muhitning ma'lum bir qismi tushiniladi. Masalan, korxona, zavod, ilmiy tekshirish instituti, oliy o'quv yurti va boshqalar. Shuni qayd qilish lozimki, MBni yaratishda ikkita muhim shartni hisobga olmoq zarur: 6 Birinchidan, ma'lumotlar turi, ko'rinishi, ularni qo'llaydigan dasturlarga bog'liq 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 hojat qolmasin. Shuning uchun ham MBni tashkil etishda ma'lum qonun va qoidalarga amal qilish lozim. Bundan buyon axborot so'zini ma'lumot so'zidan farqlaymiz, Ya'ni axborot so'zini umumiy tushuncha sifatida qabul qilib, ma'lumot deganda aniq bir belgilangan narsa yoki hodisa sifatlarini nazarda tutamiz. Ma'lumotlar bazasini yaratishda, foydalanuvchi axborotlarni turli belgilar bo'yicha tartiblashga va ixtiyoriy belgilar birikmasi bilan tanlanmani tez olishga intiladi. Buni faqat ma'lumotlar tuzilmalashtirilgan holda bajarish mumkin. Tizilmalashtirish - bu ma'lumotlarni tasvirlash usullari haqidagi kelishuvni kiritishdir. Agar ma'lumotlarni tasvirlash usuli haqida kelishuv bo'lmasa, u holda ular tuzilmalashtirilmagan deyiladi. Tuzilmalashtirilmagan ma'lumotlarga misol sifatida matn fayliga yozilgan ma'lumotlarni ko'rsatish mumkin. Ma'lumotlar bazasidan foydalanuvchilar turli amaliy dasturlar, dasturiy vositalari, predmet sohasidagi mutaxassislar bo'lishi mumkin. Ma'lumotlar bazasining zamonaviy texnologiyasida ma'lumotlar bazasini yaratish, uni dolzarb holatda yuritishni va foydalanuvchilarga undan axborot olishini ta'minlovchi maxsus dasturiy vosita, Ya'ni ma'lumotlar bazasini boshqarish tizimi yordami bilan markazlashtirilgan holda amalga oshirishni nazarda tutadi. Ma'lumot - bu uni ma'nosiga e'tibor bermay qaraladigan ixtiyoriy simvollar to'plamidir. O'zaro bog'langan ma'lumotlar ma'lumotlar tizimi deyiladi. Ma'lumotlar bazasi - bu ma'lum bir predmet sohasiga oid tizimlashtirilgan ma'lumotlarning nomlangan to'plami bo'lib, kompyuter xotirasiga yozilgan ma'lum bir strukturaga ega, o'zaro bog'langan va tartiblangan ma'lumotlar majmuasi bo'lib, u biror bir ob'ektning xususiyatini, holatini yoki 7 ob'ektlar o'rtasidagi munosabatni ma'lum ma'noda ifodalaydi. MB foydalanuvchiga strukturalashtirilgan ma'lumotlarni saqlash va ishlatishda optimal qulaylikni yaratib beradi. Ma'lumki ma'lumotlarni kiritish va ularni qayta ishlash jarayoni katta hajmdagi ish bo'lib ko'p mehnat va vaqt talab qiladi. MB bilan ishlashda undagi ma'lumotlarning aniq bir strukturaga ega bo'lishi, birinchidan foydalanuvchiga ma'lumotlarni kiritish va qayta ishlash jarayonida undagi ma'lumotlarni tartiblashtirish, ikkinchidan kerakli ma'lumotlarni izlash va tez ajratib olish kabi qulayliklarni tug'diradi. MB tushunchasi fanga kirib kelgunga qadar, ma'lumotlardan turli ko'rinishlarda foydalanish juda qiyin edi. Bugungi kunda turli ko'rinishdagi ma'lumotlardan zamonaviy kompyuterlarda birgalikda foydalanish va ularni qayta ishlash masalasi hal qilindi. Kompyuterlarda saqlanadigan MB maxsus formatga ega bo'lgan muayyan tuzilmasi mavjud. SQL Server o'zining himoya tizimi. Serverda registra- tsiyadan o'tish uchun server foydalanuvchisi nomi va parolini ko'rsatish kerak. • Windows NT bilan Integratsiyalashgan tizimi foydalanuvchilari hisob yozuvlaridan foydalanadi. Bu holda foydalanuvchi autentifikatsiyasi Windows NT asosida tarmoqda registratsiyadan o'tishda bajariladi. SQL tilida protseduralardan foydalanish dasturlar tuzish samaradorligini oshiradi. Saqlanuvchi protseduralar (stored protsedure) - bu SQL buyruqlar to'plamidan iborat bo'lib, bu buyruqlar to'plamini SQL SERVER bir marta kompilyatsiya qiladi. Protseduralarning keyingi ishlatilishida saqlangan protseduralar kompilyatsiya qilinmaydi. Bu protseduralar xuddi algoritmik tillardagi kabi kirish parametrlaridan iborat bo'lishi ham mumkin. Saqlanuvchi protseduralar SQL tilida quyidagi buyruq yordamida yaratiladi: CREATE PROCEDURE [(% birinchi parametr ma'lumoti turi)] ...] AS SQL-operatorlari; Saqlanuvchi protseduralarning ikki turi mavjud: foydalanuvchi protseduralari va tizimli protseduralar. Foydalanuvchi protseduralari SQL SERVERlarida qo'llanilib, serverni boshqarish, MB va foydalanuchilar haqidagi ma'lumotlarni olish uchun ishlatiladi. unda uzunliklar zarur bo'lmagan parametrlar hisoblanadi. Agar ular ishlatilmasa, unda 255 ta simvolga joy ajratiladi. Simvolli satrlarni belgilashni yana bir usuli mavjud. 1. Varchar [(uzunlik)] Ma'lumotlarni sonli tiplari 1. Integer 2. Smollint 3. Decimal (aniqlik, masshtab). 4. Numeric (aniqlik, (masshtab).. 5. FLOAT (aniqlik). Sana va vaqt toifasidagi ma'lumotlar standard qo'shimcha qilinmagan. Bular yozilishini texnik hujjatlarda ko'rish kerak. Noaniq va o'tkazib yuborilgan ma'lumotlar. SQLda atribut qiymatlari noma'lum bo'lgan otkazib yuborilgan yoki mavjudTizimli protseduralar esa, amaliy dasturlarni bajarish uchun yaratiladi. Amaliy dasturlar hech bo'lmaganda bitta modulni o'zida saqlashi kerak. Modul (MODULE) biror bir algoritmik tilda tuzilgan, uzoq muddat saqlanadigan ob'yektdir. Modul - modul nomidan (module name), algoritmik til bo'limidan (language clause), modul bo'limi huquqidan (module authorization clause ), kursorlarni 45 tavsiflash (declare cursor) va bir yoki bir nechta protsedura (procedure) lardan tashkil topadi. SQL operator komponentalarini ko'pchiligi registrga bog'liq emas, Ya'ni ixtiyoriy har qanday katta va kichik harflar ishlatishi mumkin. Bularda bitta istisno bor. Bu istisno simvollarga tegishli. Ularga mos bo'lgan ma'lumotldar bazasidagi qiymatlar qanday saqlansa shunday yozilishi kerak. Masalan agar ma'lumotlar bazasida familiyaning qiymati "Qosimov" ko'rinishida bo'lsa, qidirish shartida "Qosimov" ko'rinishida berilmasa, bunga tegishli yozuv hech qachon topilmaydi. SQL tili erkin formatga ega bo'lgani uchun SQL alohida operatorlari va ularning ketma-ketligini alohida ajratib yozish yozis mumkin. SQL tilidan foydalanishda quyidagi qoidalarga bo'ysunish talab etiladi: - operatordagi har bir konstruksiya yangi satrdan boshlanishi kerak; - har bir konstruksiya boshlanishida tashlab ketiladigan bo'sh pozitsiyalar, boshqa operator konstruksiyalarida ham bo'lishi kerak; - -agar konstruksiya bir necha qismdan iborat bo'lsa, ularning har biri yangi satrlardan bo'sh o'rinlarni oldingi konstruksiyaga nisbatan siljitib yoziladi. Amaliyotda ma'lumot bazasi tuzilishini (asosan uni jadvallarini) aniqlash uchun DDL operatorlari ishlatadi. Bu jadvallarni ma'lumotlar bilan to'ldirish uchun va ulardan axborotlarni so'rovlar yordamida ajratib olish uchun - DML operatorlari ishlatiladi. Ma'lumotlarni manipulyasiyalash SQL tilini DML peratorlari qo'llaniladi. Interaktiv va qurilgan SQL. SQL tilini ikkita shakli mavjud. - interaktiv SQL 54 - qurilgan (kiritilgan) SQL Interaktiv SQLda foydalanuvchi SQL so'rovlar bevosita MBBT orqali kiritadi va natijalarini interaktiv rejimda olinadi. Qurilgan SQLda esa so'rovlar SQL komandalaridan tashkil topib, u boshqa birorta dasturlash tili (java, C++, C, Delphi va hokazo)ga yozilgan dastur ichiga joylashtiriladi. Bu shunday tillarni ishlatadigan dasturlarni samaradorligini oshiradi. Ularga relyasion ma'lumotlar bazasi bilan ishlash imkonini beradi. SQL ma'lumot toifalari. Simvollar satr ma'lumot toifasi SQL standartida matnlarni faqat bitta tavsifi keltiriladi. Uning sintaksisi quyidagicha: CHARACTER[(uzunligi)] yoki CHAR[(uzunligi)] Jadvalda belgilangan atrubutlar CHAR toifasiga tegishli bo'lishi mumkin. Bunda bu atributlar qiymatlari 1 dan 255 tagacha belgidan iborat bo'lishi mumkin. SQL tilini ba'zi birlardagina o'zgaruvchan uzunlikdagi satr toifalari mavjud. Bu toifalar quyidagicha tavsiflanadi: VARCHAR() yoki CHARVARYING() CHARACTER va VARCHAR toifasidagi konstantalar apostrof ichiga yoziladi. Quyidagi toifalarni barchasi ekvivalent SQLda bir xil vazifa bajaradi: VARCHAR [(uzunligi)]; CHARVARYING [(uzunligi)]; CHARACTER VARYING[(uzunligi)]. Agar uzunlik oshkor ko'rsatilmasa, u holda 255 ga teng deb qabul qilinadi, Ya'ni barcha hollarda 255 ta simvoldan iborat bo'ladi. Sonli ma'lumot toifalari SQL standartida quyidagi son toifalarida ishlatiladi. INTEGER - butun sonlar uchun - 2-31 .. ..23 1 ; SMOLLINT - butun sonlar 2-15 ... 21 5 ; DECIMAL (aniqlik[masshtab]) - fiksirlangan nuqtali son. Aniqlik sondagi qiymatli raqamlar masshtab. Unli nuqtadan undagi raqamlarning maksimal sonini ko'rsatadi; 55 NUMERIC - butun sonlar uchun - 2-31 .. ..23 1 ; FLOAT [(aniqlik)] - haqiqiy sonlar uchun qo'llaniladi. Bundan tashqari uzgaruvchan uzunlikdagi simvolli satrlar toifasi ham ishlatiladi. Bunda uzgaruvchi toifalar ixtiyoriy uzunlikda bo'ladi. B bo'lmaganlarini NULL bilan yoziladi. NULL qiymat oddiy tushunchada qiymat hisoblanmaydi. U faqat atributni haqiqiy qiymati tushib qoldirilgan yoki noma'lumligini anglatadi. NULLni ishlatishda quyidagilarga e'tibor berish kerak: - Agregat funksiyalar ishlatilganda birorta atributni qiymatlar to'plami bo'yicha hisoblashlar bajarilganda aniqlikni ta'minlash maqsadida NULL qiymat hisobga olinmaydi. - shartli operatorlarda TRUE, FALSEdan tashqari UNKOWN paydo bo'lsa, natija NULL qiymatda bo'ladi. - bu qiymatni tekshirish uchun IS NULL yoki IS NOT NULLlardan foydalaniladi. - almashtirish funksiyalari ham argument sifatida NULL bo'lsa natija NULLga 56 teng buladi. SELECT operatori. SELECT (tanlash) operatori SQL tilining eng muhim va ko'p ishlatiladigan operatori hisoblanadi. U ma'lumotlar bazasi jadvallaridan axborotlarni tanlab olish uchun mo'ljallangan. SELECT operatori sodda holda quyidagi ko'rinishda yoziladi. SELECT [DISTINCT] [WHERE ] [ORDER BY < atributlar ro'yxati >] [GROUP BY < atributlar ro'yxati >] [HAVING ] [UNION ]; Bu yerda kvadrat kavslarda yozilgan elementlar har doim ham yozilishi shart emas. SELECT xizmatchi so'zi ma'lumot bazasidan axborotni tanlab olish operatori yozilganini anglatadi. SELECT so'zidan keyin bir biridan vergul bilan ajratilib ko'1ksatilgan maydon nomlari (atributlar ro'yxati) yoziladi. SELECT so'rov operatorini zarur xizmatchi so'zi FROM hisoblanadi. FROM so'zidan keyin axborot olinayotgan jadval nomlari bir biridan vergul bilan ajratilib yoziladi. Masalan: SELECT Name, Surname FROM STUDENT; Ixtiyoriy SQL so'rov operatori nuqtali vergul(;) simvoli bilan tugaydi. Keltirilgan so'rov STUDENT jadvalidan Name va Surname maydonlarni barcha qiymatlarini ajratib olishni amalga oshiradMa'lumotlar bazasi jadvallardan tashkil topadi. Jadvallar alohida fayl ko'rinishida yoki birorta faylni bo'lagi bo'lishi mumkin. Ma'lumki Select operatori yordamida virtual jadvallar yaratish, Ya'ni vaqtinchalik jadvallar yaratish mumkin. Bunday jadvallar vaqtinchalik bo'lib, yaratgan foydalanuvchi o'zi undan foydalanishi mumkin. Tasavurlar ham vaqtinchalik jadvallar bo'lib, ular ko'p foydalanuvchilar murojat qilishi mumkin va u ma'lumot bazasidan majburan olib tashlanguncha mavjud bo'ladi. Tasavurlar MB oddiy jadvallariga o'xshash bo'lib, ma'lumotlar saqlovchi fizik ob'ekt hisoblanmaydi. Tasavurlarda ma'lumotlar jadvallardan tanlab olinadi. Tasavurlar foydalanuvchilardan jadvallarni ba'zi ustunlarini yashirish uchun yoki ko'pincha foydalanuvchiga kerakli bo'lgan bir nechta jadvaldan bitta yaratish kerak bo'ladi. Misol sifatida 3 ta jadvaldan tashkil topgan oddiy ma'lumot bazasini qarab chiqildi. Tovarlar ( ID -tovar , nomi, narxi, tavsifi) Mijozlar(ID - mijoz, ismi, manzili, telefon) Sotish(ID- tovar,soni, mijoz) Tashkil qilish nuqtai nazaridan bu ma'lumot bazasi yomon loyihalanmagan. Lekin ba'zi masalarni yechishda foydalanuvchini mijoz va tovar identifikatorlari qiziqtirmaydi. Aniqroq aytganada unga bitta jadval kerak bo'ladi. Masalan bu jadval "sotishtaxlili (tovar, soni,bag'osi, narxi, mijoz)". Bu jadvalni berilgan 65 uchta jadvaldan quyidagi so'rov yordamida hosil qilish mumkin. SELECT Tovarlar.Nomi AS Tovar, Sotish.Soni*Tovarlar.Bahosi AS Narxi, Mijoz.Ismi || '.Manzil: ' || Mijoz.Manzil || '. tel. ' || Mijoz.Telefon AS Mijoz FROM Sotish, Tovarlar, Mijozlar WHERE Sotish.ID_mijoz= Mijozlar.ID_mijoz AND Sotish.ID_tovar = Tovarlar. ID_tovar; Ko'rib chiqilgan so'rov uchta jadvalni birlashtirishidan iborat bo'lib, ularga narx va mijoz ustunlari qo'shilgandir. Agar bu jadval SELECT operatorini natijasi emas, tasavur bo'lganda edi, unga oddiy ma'lumot bazasini oddiy jadvali kabi murojat qilinar edi. Ko'p hollarda esa MB uchta jadvaldan iborat ekanligini hisobga olmay, bitta tasavur bilan ishlanar edi. Tasavurlar yaratish uchun CREATE VIEW komandasi ishlatiladi Uni sintaksisi kuyidagicha: CREATE VIEW «tasavur nomi» AS « select so'rovi» ; Tasavurlarga ham ma'lumot baza jadvallari kabi nom beriladi. Bu nom birorta ham jadval nomi bilan bir xil bo'lmasligi kerak. AS so'zidan keyin ma'lumotlar tanlashga uchun so'rov iborasi yoziladi. CREATE VIEW sotish_taxlili AS SELECT Tovarlar.Nomi AS Tovar, Sotish.Soni*Tovarlar.Bahosi AS Narxi, Mijoz.Ismi || '.Manzil: ' || Mijoz.Manzil || tel. ' || Mijoz.Telefon AS Mijoz FROM Sotish, Tovarlar, Mijozlar WHERE Sotish.ID_mijoz= Mijozlar.ID_mijoz AND Sotish.ID_tovar = Tovarlar. ID_tovar; Natijada sotish taxlili nomli virtual jadval yaratiladi. Unga so'rovlar yordamida murojat qilish mumkin: Select * from sotish_taxlili where tovar = 'moloko'; Jadvallarni umumlashtirish. 66 Jamlashtirish relyasion ma'lumotlar bazasi operatsmyalaridan biri bo'lib, jadvallar orasidagi aloqani belgilaydi va ulardan ma'lumotni bitta komanda yordamida ajratishga imkon beradi. Xar xil jadvallarda bir xil nomli ustunlar bo'lishi mumkin bo'lgani uchun, kerakli ustun uchun jadval nomii prefiksi ishlatiladi. Jamlashda jadvallar FROM ifodasidan so'ng ro'yxat sifatida tasvirlanadi. So'rov predikati ixtiyoriy jadval ixtiyoriy ustuniga tegishli bo'lishi mumkin. Jamlash eng soddasi bu dekart ko'paytmasi, uni quyidagicha bajarish mumkin: SELECT Customers.*, Salepeople.* FROM Salepeople, Customers;* Lekin bu yerda xosil bo'lgan jadval keraksiz ma'lumotlarga ega. Keraksiz satrlarni olibtashlash uchun WHERE jumlasidan foydalaniladi. Masalan: beritlgan shaxardagi sotuvchilar va buyurtmachilar ixtiyoriy kombinatsiyasini ko'rish uchun quyidagini kiritish lozim: SELECT Customers.CName, Salepeople.SName, Salepeople.City FROM Salepeople, Customers WHERE Salepeople.City = Customers.City; Jamlashda SQL bir necha jadval satrlari kombinatsiyasini predikatlar bmyicha solishtirishdir. Asosoan ma'lumotlar ilovali yaxlitlik asosida tekshirilib, ajratib olinadi. Misol: xar bir sotuvchiga mos keluvchi buyurtmachilar ro'yxati: SELECT Customers.CName, Salepeople.SName FROM Customers, Salepeople WHERE Salepeople.SNum=Customers.SNum; Tenglikka asoslangan predikatlardan foydalanuvchi jamlanmalar, tenglik bo'yicha jamlanma deb atalib, jamlanmalarning eng umuiy ko'rinishidir. Shu Bilan birga ixtiyoriy relyasion operatordan foydalanish mumkin. Ichki va tashqi jamlashlar 67 Jamlashlar bir jadval satriga ikkinchi jadval satrlarini mos qo'yishga imkon beradi. Jamlashlar asosiy turi bu ichki jamlashdir. Jadvallarni ichki jamlash ikki jadval usutunlarini tenglashtirishga asoslangandir: SELECT book, title, author, name FROM author, book WHERE book, author = author, id MySQL jamlashning kuchliroq tipi Ya'ni chap tashqi jamlash(yoki tashqi jamlash) dan foydalanishga imkon beradi. Jamlash bu turitning ichki jamlashdan farqi shundaki natijaga o'ng jadvalda mos ustunga ega bo'lmagan chap jadval ustunlari qo'shiladi. Agar avtorlar va kitoblar misoliga e'tibor bersangiz atijaga ma'lumotlar bazasida kitoblarga ega bo'lmagan kitoblar kirmagan edi. Ko'p xollarda o'ng jadvalda mosi bo'lmagan chap jadvaldagi satrlarni chiqarish kerak bo'ladi. Buni tashqi jamlash yordamida amalga oshirish mumkin: SELECT book.title, author.name FROM author LEFT JOIN book ON book.author = author.id E'tibor bering tashbii jamlanmada WHERE o'rniga ON kalit so'zi ishlatiladi. MySQL tabiiy tashqi jamlashdan (natural outer y'oznjfoydalanishga imkon beradi. Tabiiy tashqi jamlash ikki jadval ikki ustuni bir xil nom va bir xil tiga ega bo'lgan hamda shu ustundagi qiymatlar teng bo'lgan satrlarni birlashtirishga imkon beradi: SELECT my_prod.name FROM my_prod NATURAL LEFT JOIN their_prod Jadvallarni o 'zi bilan jamlash. Jadvallarni o'zi bilan jamlash uchun xar bir satrning o'zi yoki boshqa satrlar bilan kombinatsiyasini xosil qilishingiz mumkin. So'ngra xar bir satr predikat yordamida baxolanadi. Bu turdagi jamlash boshqa turdagi jamlashdan farq 68 qilmaydi, farqi ikki jadval bir xildir. Jadvallarni jamlashda qaytariluvchi ustun noilari oldiga jadval nomi qo'yiladi. Bu usutunlarga so'rovlarda murojaat qilish uchun xar xil nrmlarga ega bo'lishi kerak. Buning uchun vaqtinchalik nomlar Ya'ni psevdonimlar qo'llandi. Ular so'rov FROM jumlasida jadval nomidan so'ng bo'shlik qo'yib yoziladi. Misol: bir xil reytingga ega xamma buyurtmachilar juftlarini topish. SELECT a.CName, b.CName, a.Rating FROM Customers a, customers b WHERE a.Rating = b.Rating; Bu holda SQL a va b jadvallarni jamlagandek ish tutadi. Yuqorida keltirilgan misolda ortiqcha satrlar mavjud, xar bir kombinatsiya uchun ikkita qiymat. Birinchi psevdonimdagi A qiymat ikkinchi psevdonimdagi B qiymat bilan kombinatsiyasi olinadi, so'ngra ikkinchi psevdonimdagi A qiymat birinchi psevdonimdagi B qiymat bilan kombinatsiyasi olinadi. Xar gal satr o'zi bilan solishtiriladi. Buni oldini olish soda usuli ikki qiymatga cheklanish kiritish, toki birinchi qiymat ikkinchisidan kichik bo'lsin yoki alfavit bo'yicha oldin kelsin. Bu predikatni aasimmetrik qiladi, natijada xudi shu qiymatlar teskari tartibda olinmaydi. Misol: SELECT a.CName, b.CName, a.Rating FROM Customers a, customers b WHERE a.Rating = b.Rating AND a.CName < b.CName; Bu misolda agar birinchi kombinatsiya ikkinchi shartni qanoatlantirsa u chiqariladi, lekin teskari kombinatsiya bu shartni qanoatlantirmaydi va aksincha. Siz SELECT ifodasida yoki so'rovning FROM jumlasida keltirilgan xar bir psevdonim yoki jadvalni ishlatishingiz shart emas. Siz xar xil jadvallar, hamda bitta jadval xar psevdonimlaridan iborat jmlanma yaratishingiz mumkin. Sodda joylashtirilgan ostki so'rovlar. SQL yordamitda so'rovlarni bir birining ichiga joylashtirishingiz mumkin. Odatda ichki so'rov qiymat xosil qiladi 69 va bu qiymat tashqi predikat tomonidan tekshirilib, to'g'ri yoki noto'g'riligi tekshiriladi. Misol: bizga sotuvchi nomi ma'lum: Motika, lekin biz SNum maydoni qiymatini bilmaymiz va Buyurtmachilar jadvalidan xamma buyurtmalarni ajratib olmoqchimiz. Buni quyidagicha amalga oshirish mumkin: SELECT * FROM Orders WHERE SNum = (SELECT SNum FROM Salepeople WHERE SName = 'Motika'); Avval ichki so'rov bajariladi, so'ngra uning natijasi tashqi so'rovni xosil qiligsh uchun ishlatiladi (SNum ostki so'rov natijasi bilan solishtiriladi). Ostki so'rov bitta ustun tanlashi lozim, bu ustun qiymatlari tipi predikatda solishtiriladigan qiymat tipi bilan bir xil bo'lishi kerak. Siz ba'zi xollarda ostki so'rov bitta qiymat xosil qilishi uchun DISTINCT operatoridan foydalanish mumkin. Misol: Hoffman (CNum=21) ga xizmat ko'rsatuvchi sotuvchilar xamma buyurtmalarini topish lozim bo'lsin. SELECT * FROM Orders WHERE SNum = (SELECT DISTINCT SNum FROM Orders WHERE CNum = 21); Bu holda ostki so'rov faqat bitta 11 qiymat chiqaradi, lekin umumiy xolda bir necha qiymatlar bo'lishi mumkin va ular ichidan DISTINCT faqat bittasini tanlaydi. Ixtiyoriy sondagi satrlar uchun avtomatik ravishda bitta qiymat xosil qiluvchi funksiya turi - agregat funksiya bo'lib, undan ostki so'rovda foydalanish mumkin. Masalan, siz summasi 4 oktyabrdagi bajarilishi lozim bo'lgan buyurtmalar summasi o'rta qiymatidan yuqori bo'lgan xamma buyurtmalarni ko'rmoqchisiz: SELECT * FROM Orders WHERE AMT > (SELECT AVG (AMT) FROM Orders WHERE ODate = '1990/10/04'); 70 Shuni nazarda tutish kerakki guruxlangan agregat funksiyalar GROUP BY ifodasi terminlarida aniqlangan agregat funksiyalar bo'lsa ko'p qiymatlar xosil qilishi mumkin. Agar ostki so'rov IN operatoridan foydalanilsa, ixtiyoriy sondagi satrlar xosil qilish mumkin. Misol: Londondagi sotuvchilar uchun xamma buyurtmalarni ko'rsatish. SELECT * FROM Orders WHERE SNum IN (SELECT SNum FROM Salepeople WHERE City = 'London'); Bu natijani jamlanma orqali xosil qilish mumkin. Lekin odatda ostki snrrovli sщrovlar tezrobi bajariladi. Siz ostki so'rov SELECT jumlasida ustunga asoslangan ifodadan foydalanishingiz mumkin. Bu relyasion operatorlar yordamida yoki IN yordamida amalga oshirilishi mumkin. Siz ostki so'rovlarni HAVING ichida ishlatishingiz mumkin. Bu ostki so'rovlar agar ko'p qiymatlar qaytarmasa xususiy agregat funksiyalaridan yoki GROUP BY yoki HAVING operatorlaridan foydalanishi mumkin. Misol: SELECT Rating, COUNT (DISTINCT CNum) FROM Customers GROUP BY Rating HAVING Rating > (SELECT AVG (Rating) FROM Customers WHERE City = 'San Jose'); Bu komanda San Jose dagi baxolari o'rtachadan yuqori bo'lgan buyurtmachilarni aniqlaydi. Korrellangan (mutanosib) joylashtirilgan ostki so 'rovlar. SQL tilida ostki so'rovlardan foydalanilganda tashqi so'rov FROM qismidagi ichki so'rovga mutanosib so'rov yordamida murojaat qilishingiz mumkin. Bu xolda ostki so'rov asosiy so'rov xar bir satri uchun bir martadan bajariladi. Misol: 3 oktyabrda buyurtma bergan xamma buyurtmachilarni toping. 71 SELECT * FROM Customers a WHERE '1990/10/03' IN (SELECT ODate FROM Orders b WHERE a.CNum = b.CNum); Bu misolda tashqi so'rovning Cnum maydoni o'zgargani uchun ichki so'rov tashqi so'rovning xar bir satri uchun bajarilishi kerak. Ichki so'rov bajarilishini talab qiladigan tashqi so'rov satri joriy satr -kandidat deyiladi. Mutanosib ostki so'rov bilan bajariladigan baxolash protsedurasi quyidagicha: 1. Tashqi so'rovda nomlangan jadvaldan satrni tanlash. Bu kelajak satr - kandidat. 2. Tashqi so'rov FROM jumlasida nomlangan psevdonimda bu satr - kandidat qiymatlarini saqlab qo'yish. 3. Ostki so'rovni bajarish. Tashqi so'rov uchun berilgan psevdonim topilgan xamma joyda joriy satr-kandidat qiymatidan foydalanish. Tashqi so'rov satrkandidatlari qiymatlaridan foydalanish, tashqi ilova deyiladi. 4. Tashqi so'rov predikatini 3 qadamda bajariluvchi ostki so'rov natijalari asosida baxolash. U chiqarish uchun satr-kandidat tanlanishini belgilaydi. 5. Jadval keyingi satr-kandidatlari uchun protsedurani qaytarish va shu tarzda toki xamma jadval satrlari teshirilib bo'lmaguncha. Yuqoridagi misolda SQL quyidagi protsedurani amalga oshiradi: 1. U buyurtmachilar jadvalidan Hoffman satrini tanlaydi. 2. Bu satrni joriy satr-kandidat sifatida a - psevdonim bilan saqlaydi. 3. So'ngra ostki so'rovni bajaradi. Ostki so'rov CNum maydonning qiymati a.Cnum qiymatiga teng satrlarni topish uchun Buyurtmachilar jadvali xamma satrlarini ko'rib chiqadi. Xozir a.CNum qiymati 21 ga Ya'ni Hoffman satrining CNum maydoni qiymatiga teng. Shundan so'ng shu satrlarning ODate maydonlari qiymatlari to'plamini xosil qiladi. 4. Shundan so'ng asosiy so'rov predikatida 3 oktyabrdagi qiymat shu to'plamga tegishliligini tekshiradi. Agar bu rost bo'lsa Hoffman satrini chiqarish uchun tanlaydi. 72 5. Shundan so'ng u butun protsedurani Giovanni satrini satr -kandidat sifatida foydalanib qaytaradi va saqlab qo'yadi, toki Buyurtmachilar xamma satri tekshirilib bo'lmaguncha. 6. Ba'zida xatolarni topish uchun maxsus yaratilgan so'rovlardan foydalanish kerak bo'ladi. 7. Misol: Quyidagi so'rov Buyurtmachilar jadvalini ko'rib chiqib SNum va CNum mos kelishini tekshiradi va mos bo'lmagan satrlarni chiqaradi. SELECT * FROM Orders main WHERE NOT SNum =(SELECT SNum FROM Customers WHERE CNum = main.CNum); Asosiy so'rov asoslangan jadvalga asoslanuvchi mutanosib so'rovdan foydalanishingiz mumkin. Misol: sotib olishlar buyurtmachilari uchun o'rta qiymatdan yuqori bo'lgan hamma buyurtmalarni topish. SELECT * FROM Orders a WHERE AMT >(SELECT AVG (AMT) FROM Orders b WHERE b.CNum = a.CNum); HAVING operatoridan ostki so'rovlarda foydalanilganidek mutanosib ostki so'rovlarda ham foydalanigsh mumkin. HAVING ifodasida mutanosib ostki so'rovdan foydalanganda HAVING o'zida ishlatilishi mumkin bo'lgan pozitsiyalarga tashqi ilovalarni cheklab qo'yishingiz kerak. Chunki HAVING ifodasida faqat agregat SELECT ifodasida ko'rsatilgan funksiyalardan yoki GROUP BY ifodasida ko'rsatilgan maydonlardan foydalanish mumkin. Ulardan siz tashqi ilova sifatida foydalanishingiz mumkin. Buning sababi shuki HAVING tashqi so'rovdagi satrlar uchun emas guruxlar uchun baxolanadi. Shuning uchun ostki so'rov bir marta satr uchun emas gurux uchun bajariladi. Misol: Buyurtmalar jadvalidagi sotibolishlar summalarini sanalar bo'yicha guruxlar summasini hisoblash kerak bo'lsin. Shu bilan birga summa maksimal 73 summadan kamida 2000.00 ga ko'p bo'lmagan sanalarni chiqarib tashlash kerak bo'lsin: SELECT ODate, SUM (AMT) FROM Orders a GROUP BY ODate HAVING SUM (AMT) > (SELECT 2000.00 + MAX (AMT) FROM Orders b WHERE a.ODate = b.ODate); Ostki so'rov asosiy so'rovning ko'rilayotgan agregat guruxi sanasiga teng sanaga ega xmma satrlar uchun MAX qiymat xisoblaydi. Bu WHERE ifodasidan foydalanib bajarilishi lozim. Ostki so'rovning o'zi GROUP BY yoki HAVING operatorlarini ishlatmasligi kerak. EXISTS operatoridan foydalanish. EXISTS - bu "TRUE" yoki "FALSE" qaytaruvchi operatordir. Bu shuni bildiradiki, u predikatda avtonom yoki mantiqiy operatorlar AND, OR, va NOT yordamida tuzilgan mantiqiy ifodalar bilan kombinatsiya qilingan xolda ishlatilishi mumkin. U ostki so'rovni "TRUE" deb baxolaydi agar u ixtiyoriy natija xosil qilsa va "FALSE" deb baxolaydi xech qanday natija xosil qilmasa. Misol: Agar buyurtmachilardan ju da bo'lmasa bittasi San Jose shaxrida yashasa, buyurtmachilar jadvalidagi ma'lumotlarni chiqaring. SELECT CNum, CName, City FROM Customers WHERE EXISTS (SELECT * FROM Customers WHERE City = 'San Jose'); EXISTS ni faqat sodda ostki so'rov bilan emas mutanosib so'rov bilan ishlatish mumkin. Bu holda EXISTS ichki ostki so'rovni tashqining xar bir satri uchun tekshiradi. ALL, ANY, SOMEoperatorlaridan foydalanish. ANY, ALL, va SOME ostki so'rovlarni argument sifatida qabul qiluvchi EXISTS operatorni eslatadi, lekin relyasion operatorlar bilan birga ishlatilishi bilan 74 farq qiladi. Bu tomondan ular ostki so'rovlarga qo'llaniluvchi IN operatorini eslatadi, lekin undan farqli faqat ostki so'rovlar bilan ishlashadi. SOME va ANY operatorlari o'zaro almashinuvchan. Misol: bir shaxarda joylashgan sotuvchilar bilan buyurtmachilarni topish uchun ANY operatoridan foydalanish. SELECT * FROM Salepeople WHERE City = ANY (SELECT City FROM Customers); Operator ANY ostkiso'rov chiqargan xamma qiymatlarni oladi, (bu misol uchun - Buyurtmachilar jadvalidagi xamma City qiymatlari), i va rost deb baxolaydi agar ularning ixtiyoriysi (ANY) tashqi so'rov satridagi shaxar qiymatiga tengbo'lsa. ANY operatori o'rniga IN yoki EXISTS ishlatish mumkin, lekin ANY "= " operatordan boshqa relyasionn operatorlarni ishlatishi mumkin. Misol: Xamma sotuvchilarni alfavit bo'yicha kelgan buyurtmachilari bilan birga topish. SELECT * FROM Salepeople WHERE SName < ANY (SELECT CName FROM Customers); ANY to'la bir qiymatli emas. Misol: Rimdagi buyurtmachilarga ko'ra yuqori reytinga ega buyurtmachilarni topish. SELECT * FROM Customers WHERE Rating > ANY (SELECT Rating FROM Customers WHERE City = 'Rome'); Ingliz tilida " ixtiyoriysidan katta (bu yerda City = Rome) " baxolash quyidagicha talqin qilinadi, bu baxolash qiymati xar bir City = Rome xoldagi baxolash qiymatidan katta bo'lishi kerak. SQL tilida ANY operatoridan foydalanilganda bunday emas. ANY to'g'ri deb baxolanadi agar ostki so'rov shartga mos keluvchi ixtiyoriy qiymat topsa. Yuqorida ko'rilgan misol 300 va 200 75 baxoli xamma buyurtmachilarni topadi, chunki 300>200 dlya Rimdagi Giovanni uchun va 200>100 Rimdagi Pereira uchun. Soddaroq aytganda < ANY ifodasi eng katta tanlangan qiymatdan kichik qiymatni, > ANY - eng kichik tanlangan qiymatdan katta qiymatni bildiradi. ALL yordamida, predikat rost xisoblanadi, ostki so'rov tanlagan xar bir qiymat tashqi so'rov predikatidagi shartga mos kelsa. Misol: Rimdagi xar bir buyurtmachidan baxolari yuqori bo'lgan buyurtmachilarni chiqaring. SELECT * FROM Customers WHERE Rating > ALL (SELECT Rating FROM Customers WHERE City = 'Rome'); Bu operator Rimdagi xamma buyurtmachilar baxolari qiymatlarini tekshiradi. Shundan so'ng Rimdagi xamma buyurtmachilardapn baxosi yuqori bo'lgan buyurtmachilarni topadi. Rimda eng yuqori baxo - Giovanni (200). Demak 200 dan yuqori qiymatlar olinadi. ANY operatori uchun bo'lgani kabi ALL operatori uchun ham IN va EXISTS yordamida al'ternativ konstruksiyalar yaratish mumkin. ALL asosan tengsizliklar bilan ishlatiladi, chunki qiymat "xammasi uchun teng " ostki so'rov natijasi bo'lishi mumkin agag xamma natijalar bir xil bo'lsa. SQL da < > ALL ifoda aslida ostki so'rov natijasining " xech qaysisiga teng emas " ma'noni bildiradi. Boshqacha qilib aytganda proedikat rost agar berilgan qiymat ostki so'rov natijalari orasida topilmagan bo'lsa. Agar oldingi misolda tenglik tengsizlikka almashtirilsa, reytingi 300 ga teng bo'lgan xamma buyurtmachilar chiqariladi, chunki ostki so'rov 100 va 200 ga teng reytinglarni topgan. ALL va ANY - orasidagi asosiy farq, ostki so'rov xech qanday natija qaytarmagan xolatda ko'rinadi. Bu xolda ALL - avtomatik ("TRUE") ga teng, ANY bo'lsa avtomatik ("FALSE") ga teng. Misol: Buyurtmachilar jadvali xammasini chiqarish 76 SELECT * FROM Customers WHERE Rating > ALL (SELECT Rating FROM Customers WHERE City = 'Boston'); Ko'rsatilgan operatorlar bilan ishlashda NULL qiymatlar ma'lum muammolarni keltirib chiqaradi. SQL predikatda solishtirayotgan qiymatlardan biri bo'sh (NULL) qiymat bo'lsa, natija noaniqdir. Noaniq predikat, noto'g'ri predikatga o'xshash, shuning uchun satr tashlab yuboriladi. UNION ifodasidan foydalanish. UNION ifodasi bir yoki bir necha SQL so'rovlar nitijasini birlashtirishga imkon beradi.
    Albatta ko'rsatilishi zarur bo'lgan ma'lumot toifasi CHAR. Maydonga yozilgan real simvollar soni noldan (agar maydonda NULL qiymati bo'lsa) CREATE TABLEda berilgan maksimal qiymatgacha bo'ladi. Masalan STUDENT1 jadvalini quyidagi komanda bilan yaratish mumkin: CREATE TABLE Student1 (Student_ID INTEGER, Surname VARCHAR(60), Name VARCHAR(60), Stipend DOUBLE, Kurs INTEGER, City VARCHAR(60), Birthday DATE, Univ_ID INTEGER); Jadvaldagi ma'lumotlarni maydonlar bo'yicha qidirish tanlash amali yetarli darajada tezlatish uchun ma'lumotlarni berilgan maydon bo'yicha indeksatsiya qilish ishlatiladi. Indekslarni bitta yoki bir nechta maydon bo'yicha bajarish mumkin. Indeks komandasini ko'rinishi: CREATE INDEX ON (); Bu komanda bajarilishi uchun jadval yaratilgan bo'lishi kerak va indeksda ko'rsatilgan ustunlar unda bo'lishi kerak. Masalan, agar ExamMarks jadvalidan talabani StudentID maydoni qiymati bo'yicha bahosini qidirish tez-tez talab 80 etilsa, unda shu maydon bo'sicha indeks bajariladi. CREATE INDEX Student_ID_1 ON ExamMarks (Student_ID); Indeksni olib tashlash uchun (bunda uni nomini albatta bilish kerak) quyidagi komanda ishlatiladi. DROP INDEX ; Masalan, DROP INDEX ; Mavjud jadval tuzilmasi va parametrlari uchun ALTER TABLE komandasi ishlatiladi. Jadvalga ustunlar qo'shish ALTER TABLE komandasi orqali quyidagicha bo'ladi: ALTER TABLE ADD( ); Bu komanda orqali mavjud jadval satrlariga yangi ustun qo'shiladi va unga NULL qiymati yoziladi. Jadvalga bir nechta ustun ham ko'shsa bo'ladi. Ular bir biridan vergul bilan ajratiladi. ALTER TABLE MODIFY ( ); Ustun xarakteristikalarini modifikatsiyalashda quyidagi cheklanishlarni hisobga olish kerak: - ma'lumot toifasini o'zgartirishni, faqat ustun bo'sh bo'lsa bajarish mumkin; - to'ldirilmagan ustun uchun o'lcham/aniqlik o'zgartirish mumkin; - to'ldirilgan ustun uchun o'lcham/aniqlik faqat kattalashtirish mumkin; - NOT NULL o'rnatilishi uchun ustunda birorta ham NULL qiymat boTmasligi kerak; - sukut bilan o'rnatilgan qiymatni har doim o'zgartirish mumkin. Ma'lumotlar bazasidan jadvallarni olib tashlash quyidagi komanda bilan bajariladi. 81 DROP TABLE < jadval nomi >; Mumkin bo'lgan ma'lumot qiymatlar cheklanishlari bo'lishi mumkin. Unda CREATE TABLE komandasi quyidagicha bo'ladi. CREATE TABLE ( , , < jadvalga cheklanishlar> (,[< ustun nomi >])); Student jadvalining Student_ID, Surname, Name maydonlarida NULL qiymat bo'lishini taqiqlash uchun so'rov quyidagicha yoziladi: CREATE TABLE STUDENT (Student_ID INTEGER NOT NULL, Surname CHAR(25) NOT NULL, Name CHAR(10) NOT NULL, Stipend INTEGER, Kurs INTEGER, City CHAR(15), Bithday DATE, Univ_ID INTEGER); Ba'zi hollarda biror maydonga kiritilayotgan barcha qiymatlar bir biridan farq qilishi kerak. Bunda shu maydon uchun UNIQUE (yagona) so'z ishlatiladi. Masalan Student jadvalida StudentID qiymatlari farqli bo'lishi uchun so'rov quyidagicha yoziladi. CREATE TABLE STUDENT (Student_ID INTEGER NOT NULL UNIQUE, Surname CHAR (25) NOT NULL, Name CHAR(10 ) NOT NULL , Stipend INTEGER, Kurs INTEGER, City CHAR(15), 82 Bithday DATE); Jadvalda kalit maydonlarni ishlatish komandasi quyidagicha yoziladi: CREATE TABLE Student ( Student_ID INTEGER PRIMER KEY, Surname CHAR (25) NOT NULL, Name CHAR(10 ) NOT NULL , Stipend INTEGER, Kurs INTEGER, City CHAR(15), Bithday DATE, Univ_ID INTEGER); SQL tilida jadvalga ma'lumotlar kiritish, o'zgartirish va o'chirish uchun ma'lumotlarni manipulyasiya qilish (DML) tilining uchta komandasi ishlatiladi. Bular INSERT (qo'shish), UPDATE (tiklash yangilash), DELETE (o'chirish) komandalaridir. INSERT komandasi jadvalga yangi satr qo'shishni amalga oshiradi. Sodda holda uning sintaksisi quyidagicha: Insert into values (,,); Bunday yozuvda VALUES kalit so'zidan keyin qavs ichida ko'rsatilgan qiymatlar jadvaldagi yangi qo'shilgan satrning maydonlariga kiritiladi. Kiritish jadvalini CREATE TABLE operatori bilan yaratilish paytidagi ustunlarni ko'rsatish tartibida amalga oshiriladi. Masalan, STUDENT jadvalida yangi satrni qo'shish quyidagicha amalga oshirish mumkin. Insert into Student Values (101, 'Aliyev', 'Rustam', 200, 3, 'Uzbekistan', '6/10/1979', 15); Agar birorta maydonga NULL qiymati qo'shish zarur bo'lsa u oddiy qiymat 83 kabi kiritiladi. Insert into Student Values (101, 'Aliyev', Null, 200, 3, 'Uzbekistan', '6/10/1979', 15); Ba'zi hollarda maydonlarning qiymatini CREATE TABLE komandasida berilgan tartibdan boshqa tartibda kiritish zaruriyati paydo bo'lsa yoki qiymatlarni ba'zi bir ustunlarga kiritish talab etilmasa, INSERT komandasining quyidagi ko'rinishi ishlatiladi. Insert into Student (Student_ID, City, Surname, Name) Values (101, 'Uzbekistan', 'Aliyev', 'Rustam' ); Qavs ichidagi ro'yxatda nomi keltirilmagan ustunlarga avtomatik ravishda sukut bilan jadval tavsiflashda (CREATE TABLE komandasida) tayinlangan qiymat yoki NULL qiymat tayinlanadi. INSERT komandasi yordamida, bir jadvaldan qiymat tanlab olib uni boshqa jadvalga joylashtirish mumkin. Insert into Student1 SELECT * from Student where CITY='Xiva'; Bunda Student1 jadvali CREATE TABLE komandasi yordamida yaratilgan bo'lishi kerak va Student jadvali strukturasiga o'xshash bo'lishi kerak. Jadvaldagi satrlarni o'chirish uchun DELETE komandasi ishlatiladi. Quyidagi ifoda Exam_Marks1 jadvalidan barcha satrlarni o'chiradi. DELETE * FROM Exam_Marks1; Buning natijasida jadval bo'sh bo'lib qoladi (bundan so'ng jadvalni DROP TABLE komandasi bilan o'chirish mumkin). Jadval bir yo'la birorta shartni qanoatlantiradigan bir nechta satrni olib tashlash uchun WHERE parametridan foydalanish mumkin. DELETE * FROM ExamMarks WHERE STUDENT_ID=103; 84 UPDATE komandasi jadval satrlari yoki mavjud satrni ba'zi bir yoki barcha maydonlari qiymatini yangilash, Ya'ni o'zgartirish imkonini beradi. Masalan Universitetl jadvalidagi barcha universitetlarni reytingini 200 qiymatga o'zgartirish uchun quyidagi so'rovni ishlatish mumkin: UPDATE University1 SET Rating=200; Jadvaldagi maydon qiymatlarini o'zgartirish kerak bo'lgan aniq satrlarni ko'rsatish uchun UPDATE komandasi WHERE parametrida predikat ishlatish mumkin. UPDATE UNIVERSITY1 SET RATING=200 WHERE CITY= 'Moskva'; Bu so'rov bajarilganda faqat Moskvada joylashgan universitetlarning reytingi o'zgartiriladi. UPDATE komandasi faqat bitta ustun emas balki ustunlar to'plamini o'zgartirish imkonini beradi. Qiymatlari modifikatsiya qilinishi zarur bo'lgan aniq ustunlarni ko'rsatish uchun, SET parametri ishlatidi. Masalan o'qitilayotgan fan nomi "Matematika" (uning uchun SUBJ_ID=43) "Oliy matematika" nomiga o'zgartirish talab etilsa va bunday indetifikatsion nomeri saqlab o'zgarish qoldirish kerak bo'lib, lekin shu bilan birga jadvaldagi mos satr maydonlariga o'qitiladigan fan haqida yangi ma'lumotlar kiritish uchun so'rov quyidagi ko'rinishda bo'ladi. UPDATE Subject1 SET Subj_Name='Oliy matematika', Hour=36, Semester=1 WHERE SUBJ_ID=43; UPDATE komandasini SET parametrida skalyar ifodalarni ishlatish mumkin. Skalyar ifodada maydon sifatida o'zgartirilayotgan va boshqa maydonlar kiritilib, u maydon qiymatini o'zgarish usulini ko'rsatadi UPDATE University1 SET Rating=Rating*2; Student1 jadvaldagi Stipend maydon qiymatini Moskva shahri talablari 85 uchun 2 marta oshirish uchun quyidagi so'rov yoziladi. UPDATE student1 SET Stipend=Stipend*2 WHERE City= 'Moskva'; SET predikat hisoblanmaydi. Shuning uchun unda NULL qiymatni ko'rsatish mumkin. UPDATE Student1 SET Stipend=NULL WHERE City= 'Moskva'; INSERTda qism so'rovlarini ishlatish. INSERT operatorini qism so'rovi bilan ishlatish bitta jadvalga bir vaqtning o'zida bir nechta satr yuklash imkonini beradi. VALUES ishlatuvchi INSERT operatori bitta satr qo'shsa INSERT qism so'rov jadvalga qism so'rov boshqa jadvaldan qancha satr ajratsa shuncha satr jadvalga qo'shadi. Bu holda qism so'rov bilan olinayotgan ustunlar soni va toifasi bo'yicha, ma'lumotlari qo'shilayotgan jadvaldagi ustun soni va toifasiga mos kelishi kerak. Misol uchun Student1 jadvalini tuzilmasi Student jadval tuzilmasiga to'la mos bo'lsin. Student jadvalidan Moskva shahri talabalari barchasi haqida yozuvlari bilan Studentl jadvalni to'ldirish imkonini beradigan so'rov ko'rinishi quyidagicha bo'ladi. Insert INTO Student1 SELECT * FROM Student WHERE City= 'Moskva'; Studentl jadvaliga Moskvada o'qiyotgan barcha talabalar haqidagi ma'lumotlarni qo'shish uchun WHERE parametrida mos qism so'rov ishlatish mumkin. INSERT INTO Student1 SELECT * FROM Student WHERE Univ_ID IN (SELECT Univ_ID FROM University WHERE City= 'Moskva');
    XULOSA
    ODBC (Open Database Connectivity) protokoli va turli dasturlar ma'lumotlar bazasiga murojaatni imkon qilish uchun foydalaniladi. ODBC protokoli, turli ma'lumotlar bazalari bilan bog'lanishni tashkil etish uchun ishlatiladi. U bilan ma'lumot omborlariga bog'lanish, ma'lumotlarni o'qish, yozish va boshqa amallar amalga oshiriladi. ODBC, bir ma'lumotlar bazasidan boshqa biriga o'tishni imkon qiladi va shuningdek, kompyuter tarmog'ining platformasidan mustaqil bo'lib ishlaydi. Turli dasturlar (masalan, C#, Java, Python) ODBCni ishlatib, ma'lumotlar bazasi bilan bog'lanishni tashkil etishda foydalaniladi. Ma'lumotlar bazasiga murojaatda dasturlar ODBC o'rinbosarliklaridan foydalanish orqali platformadan tinmaydi. Natijada dasturlar, ma'lumotlarni o'qib, yozib, yangilach, o'chirib tashlash va boshqalardek ma'lumotlar bazasiga amallarni bajarish uchun ODBC yordamida murojaatni tashkil etish imkoniyatiga ega bo'ladi. Bundan tashqari, ODBC bilan bog'liq dasturlar, ma'lumotlar bazalarida bo'lgan ma'lumotlar bilan birgalikda turli amaliyotlar bajarishi, ma'lumotlarni filtrlash, qo'shish, o'chirish va o'zgartirish amalini tadbirlash, statistikalar, xulosa ma'lumotlarni tiklash va boshqalardek funktsiyalarni o'z ichiga oladi. Bundan so'ng ODBC protokoliga asoslangan dasturlar, ma'lumotlar bazalariga murojaatni tashkil etishda keng qo'llaniladigan va o'zgaruvchan ma'lumotlar bazalari tahlili va boshqalardek vazifalarni amalga oshirishda yordam beradi.


    Foydalanilgan adabiyotlar

    1. "ODBC Proqramlashtirish Praktikumi" (Н. М. Матвеев, Қ. М. Жанибеков)


    2. "ODBC v Java.DB - Ushbu darslik ODBC bilan ishlashdan qo'shimcha moslamalarni beradi" (Karolina Szczur)
    3. "ODBC uyasi c++ tomonida ishlatish" (Dave S. Russova).
    4. https://www.springer.com
    5. https://books.google.com
    6. https://www.oreilly.com
    Download 90.01 Kb.




    Download 90.01 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    O’zbekiston respublikasi axborot texnologiyalari va kommunikatsiyalari rivojlantirish vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti

    Download 90.01 Kb.