Database SQL Lite - Kirish 3 I bob. Python onlayn dars sayti

Database SQL Lite
SQLite - bu C dasturlash tilida yozilgan ma'lumotlar bazasi mexanizmi. Bu mustaqil dastur emas; aksincha, bu dasturiy ta'minot ishlab chiquvchilari o'z ilovalariga joylashtirgan kutubxona. Shunday qilib, u o'rnatilgan ma'lumotlar bazalari oilasiga tegishli. Bu eng keng tarqalgan ma'lumotlar bazasi mexanizmi, chunki u bir nechta eng yaxshi veb-brauzerlar, operatsion tizimlar, mobil telefonlar va boshqa o'rnatilgan tizimlar tomonidan qo'llaniladi.
Ko'pgina dasturlash tillari SQLite kutubxonasiga bog'langan. U odatda PostgreSQL sintaksisiga amal qiladi, lekin sukut bo'yicha turni tekshirishni talab qilmaydi. Bu degani, masalan, butun son sifatida belgilangan ustunga satr kiritish mumkin.
2000 yil avgust oyida SQLite ning 1.0 versiyasi chiqarildi, saqlash gdbm (GNU ma'lumotlar bazasi menejeri) ga asoslangan. 2001-yil sentabr oyida SQLite 2.0 gdbm o‘rniga tranzaksiya qobiliyatini qo‘shib, maxsus B-daraxt ilovasi bilan almashtirildi. 2004 yil iyun oyida SQLite 3.0 qisman America Online tomonidan moliyalashtirilgan xalqarolashtirish, manifest yozish va boshqa muhim yaxshilanishlarni qo'shdi. 2011-yilda Xipp SQLite-ga NoSQL interfeysini qo'shish rejalarini e'lon qildi, shuningdek, hujjatga yo'naltirilgan ma'lumotlar bazalari uchun mo'ljallangan SQLning funktsional super to'plami bo'lgan UnQLni e'lon qildi. 2018-yilda SQLite Avliyo Benedikt qoidasiga asoslangan xulq-atvor kodeksini qabul qildi, bu baʼzi bahs-munozaralarga sabab boʻldi va keyinchalik axloq kodeksi deb oʻzgartirildi.
SQLite dasturni ma'lumotlar bazasini boshqarish tizimini o'rnatmasdan yoki ma'lumotlar bazasi ma'murini talab qilmasdan ishlashga ruxsat berish uchun ishlab chiqilgan. Mijoz-server ma'lumotlar bazasini boshqarish tizimlaridan farqli o'laroq, SQLite dvigatelida dastur bilan aloqa qiladigan mustaqil jarayonlar mavjud emas. Buning o'rniga, bog'lovchi SQLite kutubxonasini - statik yoki dinamik ravishda - oddiy funktsiya chaqiruvlari orqali SQLite funksiyasidan foydalanadigan dastur dasturiga birlashtiradi, ma'lumotlar bazasi operatsiyalarida kechikishni kamaytiradi; bir vaqtning o'zida kam bo'lgan oddiy so'rovlar uchun SQLite unumdorligi jarayonlararo aloqaning ortiqcha xarajatlarini oldini olishdan foyda oladi.
Serversiz dizayn tufayli SQLite ilovalari mijoz-server ma'lumotlar bazalariga qaraganda kamroq konfiguratsiyani talab qiladi. SQLite zero-conf deb ataladi, chunki u xizmatlarni boshqarishni (masalan, ishga tushirish skriptlari) yoki GRANT va parollarga asoslangan kirishni boshqarishni talab qilmaydi. Kirish nazorati ma'lumotlar bazasi faylining o'ziga berilgan fayl tizimi ruxsatnomalari orqali amalga oshiriladi. Mijoz-server tizimlaridagi ma'lumotlar bazalari fayl tizimi ruxsatlaridan foydalanadi, ular ma'lumotlar bazasi fayllariga faqat demon jarayoniga kirish imkonini beradi, bu esa o'z qulflarini ichkarida boshqaradi va bir nechta jarayonlardan bir vaqtning o'zida yozishga imkon beradi.
SQLite butun ma'lumotlar bazasini (ta'riflar, jadvallar, indekslar va ma'lumotlarning o'zi) xost-mashinada bitta o'zaro faoliyat platforma fayli sifatida saqlaydi va bir vaqtning o'zida bir nechta jarayonlar yoki mavzularga bir xil ma'lumotlar bazasiga kirishga imkon beradi. Ushbu oddiy dizaynni yozish paytida ma'lumotlar bazasi faylini blokirovka qilish orqali amalga oshiradi. Yozish uchun ruxsat xato kodi bilan ishlamay qolishi yoki sozlanishi mumkin bo'lgan vaqt tugaguniga qadar qayta urinib ko'rish mumkin. SQLite o'qish operatsiyalari ko'p vazifali bo'lishi mumkin, ammo serversiz dizayn tufayli yozishni faqat ketma-ket bajarish mumkin. Ushbu bir vaqtda kirish cheklovi vaqtinchalik jadvallarga taalluqli emas va u 3.7 versiyada yumshatilgan, chunki oldindan yozish jurnali (WAL) bir vaqtda o'qish va yozish imkonini beradi.SQLite fayl tizimi blokirovkalariga tayanishi kerakligi sababli, u yozishni intensiv joylashtirish uchun afzal ko'rilmagan tanlovdir.
SQLite PostgreSQL dan mos yozuvlar platformasi sifatida foydalanadi. SQL standartini tushunish uchun "PostgreSQL nima qiladi" ishlatiladi. Asosiy og'ishlardan biri shundaki, asosiy kalitlar bundan mustasno, SQLite turini tekshirishni talab qilmaydi; qiymat turi dinamik va sxema bilan qattiq cheklanmagan (garchi sxema saqlash vaqtida konversiyani ishga tushirsa ham, agar bunday konvertatsiya potentsial ravishda qaytarilsa). SQLite Postel qoidasiga amal qilishga intiladi.
SQLite SQL uchun SQL-92 standartining ko'p qismini amalga oshiradi, lekin ba'zi xususiyatlardan mahrum. Masalan, u triggerlarni faqat qisman taʼminlaydi va koʻrinishlarga yoza olmaydi (ammo bu funksiyani taʼminlovchi triggerlar OʻRNINI taʼminlaydi). Uning ALTER TABLE bayonotlarini qo'llab-quvvatlashi cheklangan.
SQLite SQL-mos keluvchi DBMS uchun noodatiy tipdagi tizimdan foydalanadi: ko'pgina SQL ma'lumotlar bazasi tizimlarida bo'lgani kabi ustunga tur belgilash o'rniga, turlar alohida qiymatlarga tayinlanadi; til jihatidan u dinamik tarzda yoziladi. Bundan tashqari, u Perl-ga o'xshash ba'zi usullarda zaif tarzda yoziladi: butun son ustuniga satr qo'shish mumkin (garchi ustunning afzal turi butun son bo'lsa, SQLite birinchi navbatda satrni butun songa aylantirishga harakat qiladi). Bu ustunlarga moslashuvchanlikni qo'shadi, ayniqsa dinamik ravishda kiritilgan skript tiliga bog'langanda. Biroq, texnika boshqa SQL mahsulotlariga ko'chirilmaydi. Keng tarqalgan tanqid shundaki, SQLite turi tizimida statik tarzda terilgan ustunlar tomonidan taqdim etilgan ma'lumotlar yaxlitligi mexanizmi yo'q, lekin uni CHECK(typeof(x)='integer') kabi cheklovlar bilan taqlid qilish mumkin. 3.37.1 versiyasida qat'iy jadvallar qo'shildi.
Jadvallar odatda tezroq kirish imkonini beruvchi yashirin qatorli indeks ustunini o'z ichiga oladi. Agar ma'lumotlar bazasida Integer Primary Key ustuni bo'lsa, SQLite odatda uni rowid uchun taxallus sifatida ko'rib optimallashtiradi, bu esa tarkibning qat'iy terilgan 64 bitli imzolangan tamsayı sifatida saqlanishiga olib keladi va uning xatti-harakatini bir oz avtomatik ravishda o'zgartiradi. oshirish ustuni. SQLite ning kelajakdagi[qachon?] versiyalarida ustunning rowid kabi xatti-harakatlari bor-yo‘qligini tekshirish buyrug‘i bo‘lishi mumkin, bu ustunlarni zaif terilgan, avtomatik oshirilmaydigan butun sonli asosiy kalitlardan farqlash uchun.
2009-yil 14-oktabrda chiqarilgan 3.6.19-versiyasi xorijiy kalit cheklovlarini qo‘llab-quvvatladi.
SQLite 3.7.4 versiyasi birinchi bo'lib eski FTS3 moduliga nisbatan yaxshilanishlarni o'z ichiga olgan FTS4 (to'liq matnli qidiruv) moduli qo'shilganini ko'rdi. FTS4 foydalanuvchilarga qidiruv tizimlari veb-sahifalarni qanday qidirishga o'xshash hujjatlarda to'liq matnli qidiruvlarni amalga oshirish imkonini beradi. Versiya 3.8.2 qatorlarsiz jadvallar yaratish uchun qoʻshimcha qoʻshimcha boʻsh joy va unumdorlikni oshirish imkonini beradi. Umumiy jadval ifodalarini qoʻllab-quvvatlash SQLite ga 3.8.3 versiyasida qoʻshilgan. 3.8.11 FTS5 deb nomlangan yangiroq qidiruv modulini qo'shdi, versiyada keskinlikni talab qiladigan o'zgarishlar qanchalik radikal bo'lsa (FTS4 bilan solishtirganda).
SQLite-ning kodi Fossil-da joylashtirilgan, taqsimlangan versiyani boshqarish tizimi SQLite-dan aloqador bo'lmagan ma'lumotlar bazasi formati uchun mahalliy kesh sifatida va SQLite-ning SQL-ni amalga oshirish tili sifatida ishlatadi.
SQLite tarqatishda sqlite3 deb nomlangan mustaqil buyruq qatori qobiq dasturi taqdim etilgan. Undan ma'lumotlar bazasini yaratish, jadvallarni aniqlash, qatorlarni qo'shish va o'zgartirish, so'rovlarni bajarish va SQLite ma'lumotlar bazasi faylini boshqarish uchun foydalanish mumkin. Shuningdek, u SQLite kutubxonasidan foydalanadigan ilovalarni yozish uchun namuna bo'lib xizmat qiladi.
SQLite har bir yangilanishdan oldin oldin avtomatlashtirilgan regressiya testidan foydalanadi. 2 milliondan ortiq tes nashrni tekshirish doirasida o'tkaziladi. 2009 yil 10 avgustdagi SQLite 3.6.17 versiyasidan boshlab, SQLite relizlari 100% filial sinovini qamrab oladi, bu kod qamrovining tarkibiy qismlaridan biridir. Sinovlar va test jarayonlari qisman jamoat mulki va qisman xususiydir.
|