Ma’lumotlar bazasiga ulanish jarayonlarini dasturlash.
Mavzu: Ma’lumotlar bazasiga ulanish jarayonlarini dasturlash. Reja: 1. MB va MBBTlari haqida tushunchalar. 2. Qt muhitidan turli MBlariga ulanish usullari. 3. SqlLite ma’lumotlar bazasini boshqarish tizimi. 4. MBda jadval tushunchasi. Jadvallarni yaratish, o’zgartirish, o’chirish va ma’lumotlar bilan to’ldirish jarayonlarini dasturlash.
1. MB va MBBTlari haqida tushunchalar. Ma'lumotlar bazasi (JB) - bu ma'lumotlarning tuzilgan nomlangan ombori, birinchi ta'rifidanoq, ishchilar uchun har chorakda hisoblangan bonuslarni o'z ichiga olgan fayl aniq bo'lishi kerak. Ma'lumotlar bazasini boshqarish tizimi (MBBT) - bu uning tarkibiy bo'linmalari to'plami sifatida ma'lumotlar bazasiga kirishni ta'minlaydigan ixtisoslashtirilgan dasturiy ta'minot. Ma'lumotlarni jadvallarga kiritishdan oldin ushbu jadvallarning tuzilishini aniqlash kerak. Bu nafaqat maydonlarning nomlari va turlarining tavsifini, balki boshqa bir qator xususiyatlarni ham anglatadi (masalan, format, kirish ma'lumotlarini tekshirish mezonlari). Jadvallarning tuzilishini tavsiflash bilan bir qatorda, odatda jadvallar o'rtasidagi munosabatlar ko'rsatiladi. Relyatsion ma'lumotlar bazalaridagi munosabatlar turli jadvallardagi maydon qiymatlarining bir-biriga mos kelishi bilan belgilanadi. Masalan, mijozlar va buyurtmalar bir- biridan ko'plarga bog'liqdir. mijozlar to'g'risidagi ma'lumotlarni o'z ichiga olgan jadvaldagi bitta yozuv ushbu mijozlarning buyurtmalar jadvalidagi bir nechta yozuvlarga mos kelishi mumkin. Agar o'qituvchilar o'rtasidagi munosabatlarni va ular o'qiyotgan ma'ruza kurslarini ko'rib chiqsak, bu ko'pdan-ko'pgacha bo'lgan munosabatlar. bitta o'qituvchi bir nechta kurslarni o'qitishi mumkin, ammo bitta kursni bir nechta o'qituvchilar o'qitishi mumkin. Va jadvallar o'rtasidagi munosabatlarning so'nggi turi - bu yakka munosabat. Ushbu turdagi munosabatlar juda kam tarqalgan. Qoida tariqasida, bu ikki holatda bo'ladi: yozuv juda ko'p maydonlarga ega, so'ngra ob'ektlarning bir turi haqidagi ma'lumotlar ikkita tegishli jadvalga tarqaladi yoki jadvaldagi ma'lum miqdordagi yozuvlar uchun qo'shimcha atributlarni belgilashingiz kerak , keyin ushbu qo'shimcha atributlar uchun alohida jadval tuziladi, bu esa asosiy jadval bilan yakka munosabatlarga bog'lanadi. Har qanday MBBT ma'lumotlar bilan to'rtta oddiy operatsiyani bajarishga imkon beradi: • jadvalga bir yoki bir nechta yozuvlarni qo'shish; • jadvaldan bir yoki bir nechta yozuvlarni o'chirish;
• bir yoki bir nechta yozuvlarda ba'zi maydonlarning qiymatlarini yangilash; • berilgan shartga mos keladigan bir yoki bir nechta yozuvlarni topish. Ushbu operatsiyalarni bajarish uchun so'rov mexanizmi ishlatiladi. So'rovlarni bajarish natijasi - bu ma'lum mezonlar bo'yicha tanlangan yozuvlar to'plami yoki jadvallarning o'zgarishi. Ma'lumotlar bazasiga so'rovlar buning uchun maxsus yaratilgan tilda shakllanadi, bu tuzilgan so'rovlar tili (SQL - Structured Query Language) deb nomlanadi. MBBT-ning so'nggi funktsiyasi - bu ma'lumotlarni boshqarish. Ma'lumotlarni boshqarish deganda, odatda, ma'lumotlarni ruxsatsiz kirishdan himoya qilish, ma'lumotlar bilan ishlashning ko'p foydalanuvchi rejimini qo'llab-quvvatlash va ma'lumotlar yaxlitligi va izchilligini ta'minlash tushuniladi. Ruxsatsiz kirishdan himoyalanish odatda har bir foydalanuvchiga faqat ko'rish yoki o'zgartirish uchun ruxsat berilgan ma'lumotlarni ko'rish va o'zgartirish imkonini beradi. Ko'p foydalanuvchi qobiliyatlari bir nechta foydalanuvchilarning bir vaqtning o'zida bir xil ma'lumotni o'zgartirishiga to'sqinlik qiladi. Ma'lumotlarning yaxlitligi va izchillik nazorati ma'lumotlar o'zgarishiga olib keladigan o'zgarishlarning oldini oladi. Masalan, ikkita jadval birdan ko'pga munosabatda bo'lganda, bitta (asosiy) tarafdagi jadvalda tegishli yozuv bo'lmasa, ko'p tomonda (odatda bo'ysunuvchi deb yuritiladi) jadvalga yozib bo'lmaydi. 2. Qt muhitidan turli MBlariga ulanish usullari. Qt standart DBMS yordamida platformadan mustaqil ma'lumotlar bazasi dasturlarini yaratishga imkon beradi. Qt Oracle, Microsoft SQL Server, Sybase Adaptive Server, IBM DB2, PostgreSQL, MySQL va ODBC mos ma'lumotlar bazalari uchun mahalliy drayverlarni o'z ichiga oladi. Qt ma'lumotlar bazasiga xos vidjetlarni o'z ichiga oladi, shuningdek, o'rnatilgan yoki alohida yozilgan har qanday vidjet uchun ma'lumotlar bazasini kengaytirishni qo'llab-quvvatlaydi. Qt ma'lumotlar bazalari bilan ishlash turli darajalarda sodir bo'ladi: 1.Driver Layer - QSqlDriver, QSqlDriverCreator, QSqlDriverCreatorBase, QSqlDriverPlugin va QSqlResult sinflarini o'z ichiga oladi. Ushbu qatlam ma'lum
ma'lumotlar bazalari va SQL API qatlami o'rtasida past darajadagi ko'prikni ta'minlaydi. 2. SQL API qatlami - bu qatlam ma'lumotlar bazalariga kirishni ta'minlaydi. Aloqalar QSqlDatabase klassi yordamida o'rnatiladi. Ma'lumotlar bazasi bilan o'zaro ta'sir QSqlQuery klassi yordamida amalga oshiriladi. QSqlDatabase va QSqlQuery sinflaridan tashqari SQL API qatlami QSqlError, QSqlField, QSqlIndex va QsqlRecord sinflariga tayanadi. 3. Foydalanuvchi interfeysi qatlami - bu qatlam ma'lumotlar bazasidagi ma'lumotlarni ma'lumotlar yo'naltirilgan vidjetlar bilan bog'laydi. Bunga QSqlQueryModel, QSqlTableModel va QSqlRelationalTableModel kabi sinflar kiradi. Ma'lumotlar bazasiga ulanish QSqlQuery va QSqlQueryModel yordamida ma'lumotlar bazasiga kirish uchun siz bir yoki bir nechta ma'lumotlar bazasi ulanishlarini yaratishingiz va ochishingiz kerak. Qt quyidagi ma'lumotlar bazalari bilan ishlashi mumkin (GPL litsenziyasiga mos kelmasligi sababli barcha plaginlar Qt Open Source Edition bilan birga kelmaydi): QDB2 - IBM DB2 (versiya 7.1 va undan yuqori) QIBASE - Borland InterBase QMYSQL - MySQL QOCI - Oracle Call Interface Driver QODBC - Ochiq ma'lumotlar bazasi ulanishi (ODBC) - Microsoft SQL Server va boshqa ODBC mos keluvchi ma'lumotlar bazalari QPSQL - PostgreSQL (versiya 7.3 va undan yuqori) QSQLITE2 - SQLite 2-versiyasi QSQLITE - SQLite 3-versiya QTDS - Sybase Adaptive Server Driver Qt tarqatishda bo'lmagan haydovchi plaginini yaratish uchun ishlatilgan DBMS uchun mos mijozlar kutubxonasiga ega bo'lishingiz kerak. Ma'lumotlar bazasiga quyidagicha ulanishingiz mumkin:
QSqlDatabase db = QsqlDatabase::addDatabase("QMYSQL", "mydb"); db.setHostName("bigblue"); db.setDatabaseName("flightdb"); db.setUserName("acarlson"); db.setPassword("1uTbSbAs"); bool ok = db.open(); Birinchi qator ulanish moslamasini yaratadi, ikkinchisi esa uni ochadi. Ularning orasida ulanish nomi, ma'lumotlar bazasi nomi, xost nomi, foydalanuvchi nomi, parol kabi ba'zi ulanish ma'lumotlari ishga tushiriladi. Ushbu misol bigblue tugunidagi MySQL flightdb ma'lumotlar bazasiga ulanadi. AddDatabase () uchun QMYSQL argumenti ulanish uchun foydalaniladigan ma'lumotlar bazasi drayverining turini belgilaydi va mydb - bu ulanishning nomi. Aloqa o'rnatilgandan so'ng, dasturning istalgan joyidan QSqlDatabase :: ma'lumotlar bazasi () statik funktsiyasiga murojaat qilishingiz, ulanish nomini ko'rsatib, ushbu ulanishga ko'rsatgich olishingiz mumkin. Agar ulanish nomini o'tkazmasangiz, u standart ulanishni qaytaradi. Agar open () bajarilmasa, u false qiymatiga qaytadi. Bunday holda siz QSqlDatabase :: lastError () ga murojaat qilib, xato haqida ma'lumot olishingiz mumkin. Ma'lumotlar bazasiga ulanishni olib tashlash uchun avval QSqlDatabase :: close () yordamida ma'lumotlar bazasini yopish kerak, so'ngra QSqlDatabase :: removeDatabase () statik usuli yordamida ulanishni olib tashlash kerak. 3. SqlLite ma’lumotlar bazasini boshqarish tizimi. SQLite - ixcham o'rnatilgan relyatsion ma'lumotlar bazasi. Kutubxonaning manba kodi jamoat domeniga chiqarildi. Bu mutlaqo relyatsion ma'lumotlar bazasi. "O'rnatiladigan" so'zi SQLite-da mijoz-server paradigmasidan foydalanmasligini anglatadi. O'sha. SQLite mexanizmi bu dastur o'zaro aloqada bo'lgan alohida ish jarayoni emas, balki dasturni bog'laydigan kutubxonani ta'minlaydi va vosita dasturning ajralmas qismiga aylanadi. Shunday qilib, almashinuv protokoli sifatida SQLite kutubxonasining funktsiya chaqiruvlari (API) ishlatiladi. Ushbu yondashuv