Skip to content
Dokumentatsiya
PostgreSQL Kirish

PostgreSQLga kirish

postgresql

PostgreSQL - object-relational ma'lumotlar bazasini boshqarish tizimi (ORDBMS) traditional relational ma'lumotlar bazasini boshqarish tizimiga (RDBMS) kuchli alternativani ta'minlaydi. U foydalanuvchiga ko'proq moslashuvchanlikni ta'minlash uchun aloqador va aloqador bo'lmagan modellarni birlashtiradi va yanada murakkab senariylar va tuzilmagan ma'lumotlarni boshqarishi mumkin. Ushbu qo'llanma "PostgreSQL nima?" Degan savolga javob beradi. va MySQL va PostgreSQL o'rtasidagi farqlarni belgilaydi. Shuningdek, u turli PostgreSQL-dan foydalanish holatlarini tushuntiradi.

PostgreSQL nima?

PostgreSQL bu bepul open-source ma'lumotlar bazasi bo'lib, dastlab Postgres nomi bilan tanilgan. U ko'ngillilarga asoslangan PostgreSQL Global Development Group tomonidan qurilgan va qo'llab-quvvatlanadi. Hech qanday litsenziya to'lovi talab qilinmaydi va foydalanuvchilar undan o'z talablariga muvofiq foydalanishlari va o'zgartirishlari mumkin. PostgreSQL so'nggi paytlarda ommalashib ketdi va hozirda eng ko'p ishlatiladigan ma'lumotlar bazasi mexanizmi to'rtinchi o'rinni egalladi. U deyarli barcha Linux distributivlari va boshqa operatsion tizimlar, shu jumladan Windows va macOS uchun mavjud. Eng so'nggi yirik nashr - bu PostgreSQL 12.

PostgreSQL Structured Query Language (SQL) orqali yuboriladigan relational querilarni(so'rov) ham, aloqador bo'lmagan JSON querielarini ham qo'llab-quvvatlaydi. Ushbu moslashuvchanlik unga satrlar va raqamlardan ko'ra kengroq ma'lumotlar turlarini boshqarish imkonini beradi. Masalan, PostgreSQL tasvirlar, audio va videolar kabi ommaviy axborot vositalarini saqlash uchun yaxshi moslashtirilgan. Relational modelda ishlaganda, oddiy RDBMS kabi ma'lumotlarni tablelar(table), rowlar(ustun) va column(ustun)larda saqlaydi. Bu foydalanuvchilarga boshqa ma'lumotlar bazasi tizimidan ob'ektga aloqador arxitekturaga osongina o'tish imkonini beradi. Shuningdek, u merosning shaklini(inheritance) qo'llab-quvvatlaydi, bunda tablelar inkapsulyatsiya qobiliyatlari bilan birga parent(ota-ona) tabledagi propertielarni meros(inherit) qilib oladi. Foydalanuvchilar kodlar bazasini o'zgartirmasdan o'zlarining ma'lumotlar turlari va funktsiyalarini belgilashlari mumkin.

Raqobatchilardan ko'ra ko'proq xususiyatlarga ega bo'lishiga qaramay, PostgreSQL hali ham tranzaksiyalarning yuqori tezligini bajara oladi. Garchi u har doim ham eng yaxshi RDBMS ilovalarining ishlashiga mos kelmasa ham, uning tezligi va sig'imi so'nggi versiyalarda oshdi. PostgreSQL o'zining barqarorligi bilan ajralib turadi va u yuqori darajada kengaytirilishi mumkin. U bitta ma'lumotlar bazasida juda katta hajmdagi ma'lumotlarni saqlashi mumkin.

PostgreSQL to'liq ACID muvofiqligini ta'minlaydigan Multi-Version Concurrency Control (MVCC) yordamida parallellikni amalga oshiradi. ACID qisqartma bo'lib, “atomic, consistent, isolated, and durable" degan ma'noni anglatadi. Ushbu xususiyatlar to'plami ma'lumotlar bazasini kafolatlaydi va uning mazmuni xato va nosozliklar mavjud bo'lganda ham buzilmagan va haqiqiy bo'lib qoladi. MVCC ma'lumotlar bazasi tarkibini o'zgartiradigan har bir tranzaksiyadan keyin snapshotga olish orqali ishlaydi. U tranzaktsiyalarni izolyatsiyalashning uchta darajasiga imkon beradi, ular "Committed", "Repeatable Read" va "Serializable". PostgreSQL-ning MVCC ilovasi uning eng kuchli selling pointlaridan biri hisoblanadi.

PostgreSQL keng qamrovli replikatsiya xususiyatini(replication feature) taklif etadi. Asosiy ma'lumotlar bazasi o'z nusxalariga(replica) o'zgarishlarni sinxron yoki asinxron ravishda uzatishi mumkin. Replikatsiya har bir ma'lumotlar bazasi, foydalanuvchi, sessiya yoki tranzaksiya asosida belgilanishi mumkin. Sinxron replikatsiya sozlangan bo'lsa, birlamchi hech bo'lmaganda bitta node ma'lumotlarni yozib, tasdiqlashni yuborguncha kutadi. Biroq, bu variant ishlashga salbiy ta'sir ko'rsatishi mumkin. Replikalar yuk almashishni(load sharing) yoqish uchun faqat o'qish uchun so'rovlarni(read-only queri) bajarish uchun sozlanishi mumkin. PostgreSQL, shuningdek, active standbys rejimidan foydalanish bilan bir qatorda, disaster recovery uchun point-in-time recovery (PITR) qo'llab-quvvatlaydi.

PostgreSQL-ning boshqa xususiyatlaridan ba'zilari quyidagilardan iborat:

  • U composite va custom typelarni o'z ichiga olgan to'liq ma'lumotlar turlarini qo'llab-quvvatlaydi.

  • U materialized viewlarni, triggerlarni va saqlangan protseduralarni yaratishga imkon beradi.

  • Foydalanuvchilar maxsus funksiyalarni belgilashlari va Python, Java, Perl, .Net, Go va C/C++ kabi turli tillarda yozilgan kodlarni birlashtirishi mumkin. PostgreSQL ham o'zining PL/pgSQL protsessual tiliga ega, bu foydalanuvchilarga saqlangan protseduralar va subroutinelarni yozish imkonini beradi.

  • PostgreSQL har bir rol(per-role) asosida aniqlanishi mumkin bo'lgan keng qamrovli xavfsizlikni boshqarish qobiliyatiga ega. Rol foydalanuvchi yoki guruh bo'lishi mumkin.

  • PostgreSQL bir necha turdagi indekslar va indekslarga kirish usullarini qo'llab-quvvatlaydi.

  • Bu ixtiyoriy sxemalarga(schema) ruxsat beradi. Ushbu schemalar namespace(nomlar maydoni) kabi ishlaydi va bir xil nomdagi ob'ektlarning birgalikda mavjud bo'lishiga ruxsat beradi.

  • PostgreSQL xalqaro belgilar(international character) to'plamini va katta-kichik harflarni, urg'uni sezmaydigan va to'liq matnli qidiruvlarni qo'llab-quvvatlaydi. U foydalanuvchilarga querilarni to'g'ridan-to'g'ri kiritish imkonini beruvchi psql konsol dasturi bilan birlashtirilgan.

Rivojlanish va texnik xizmat ko'rsatish hamjamiyat tomonidan amalga oshirilganligi sababli, PostgreSQL faol hamjamiyatga ega bo'lib, xatolarni tuzatishga hissa qo'shadi va foydalanuvchilarga ularning muammolarini hal qilishda yordam beradi. To'liq grafik interfeysga ega bo'lmasa-da, bepul open-source pgAdmin dasturi GUI-ni masofadan boshqarishga ruxsat beradi.

PostgreSQL-ni o'rnatish va undan foydalanish bo'yicha qo'shimcha ma'lumot olish uchun "Linux Serverlarga Postgresql o'rnatish" (opens in a new tab) qo'llanmasini ko'rib chiqishingiz mumkin.

Object-Relational Database (ORDBMS) vs Relational Database (RDBMS)

Relational Database nima?

RDBMS nima ekanligini tushuntirish va keyin ORDBMS undan qanday farq qilishini tasvirlash eng osondir. MySQL va boshqa RDBMS ilovalari tablelar va ma'lumotlar o'rtasidagi munosabatlarga asoslangan traditional database principlariga amal qiladi.

  • Ma'lumotlar bir qator columnlardan(ustunlar) tashkil topgan tablelarda(jadvallar) saqlanadi.

  • Bu columnlar tableda saqlanayotgan elementning turli atributlarini ifodalaydi.

  • Tabledagi har bir satr ma'lumotlar bazasidagi alohida yozuvni ifodalaydi va o'zining noyob primary keyi yordamida joylashtirilishi mumkin.

  • Tablelar foreign yoki compound keylar yordamida bir-biriga bog'langan.

  • Sanoat standartidagi SQL dasturlash tili ma'lumotlarni o'qish va yozish uchun ishlatiladi.

RDBMS tez, ishonchli va undan qanday foydalanishni o'rganish uchun ko'plab manbalar mavjud. Tablelar qanday tuzilganligini va ular qanday bog'liqligini tushunish oson. Tablelar yaratilgandan keyin moslashuvchan tarzda kengaytirilishi mumkin. Ma'lumotlar bazasi ob'ektlari ham, ma'lumotlarning o'zi ham osongina yaratilishi, o'zgartirilishi va o'chirilishi mumkin. Ba'zi mashhur RDBMS dasturlariga Microsoft SQL Server, MySQL, SQLite va MariaDB kiradi.

RDBMS ilovalari traditional field-based ma'lumotlarni saqlash uchun mo'ljallangan. Ushbu ma'lumotlar odatda raqamli yoki string-based. Ular tasvirlar, audio va videolar kabi katta va noqulay ma'lumotlar obyektlari uchun mo'ljallanmagan.

RDBMS ilovalarining yana bir cheklovi ularning SQL bilan yaqin bog'lanishidir. U boshqa tillar bilan integratsiyalashishi mumkin, ammo samarali va muammosiz emas. Xuddi shunday, RDBMSdagi tablelar va yozuvlar o'rtasidagi munosabatlar qat'iy ravishda keylar va value(qiymat)lar bilan belgilanadi. Relational ma'lumotlar bazasi ushbu modeldan xalos bo'lishi va kamroq tuzilgan formatdan foydalanishi deyarli mumkin emas. Relational ma'lumotlar bazasining qat'iy tamoyillari uning kuchli tomonlaridan biri hisoblanib, boshqa kontekstlarda foydalanishni qiyinlashtiradi.

Object-Relational Database nima?

ORDBMS alohida object-oriented rejimdan foydalanish orqali relational database modelini kengaytiradi. U relation, SQL-ga asoslangan ma'lumotlar bazasi qila oladigan hamma narsani qila oladi, lekin u o'zaro bog'liq bo'lmagan xususiyatlarni ham qo'shadi. Shuning uchun ob'ektga aloqador ma'lumotlar bazasi kengroq ilovalarni qo'llab-quvvatlashi mumkin. Tashkilotlar o'zlarining mavjud modellari va sxemalaridan katta o'zgarishlarsiz foydalanishda davom etishlari mumkin, ular bilan aloqasi bo'lmagan xususiyatlar qo'shiladi. PostgreSQL ORDBMS ning eng mashhur namunasidir.

Object-relational ma'lumotlar bazalari yanada moslashuvchan va foydalanuvchi tomonidan aniqlangan murakkab tuzilmalarni qo'llab-quvvatlaydi. Ular ma'lumotlarni rowlar tablelarida emas, balki ob'ektlar tablelarida saqlaydi. ORDBMS ma'lumotlar bazalari tablelar, columnlar, data type(ma'lumotlar turlari), funksiyalar va access metodlari haqidagi ma'lumotlarni o'z ichiga olgan kataloglardan foydalanadi. Bu foydalanuvchilar ORDBMS xatti-harakatlarini osonroq o'zgartirishi va kengaytirishi mumkinligini anglatadi. Taqqoslash uchun, an'anaviy RDBMS tizimlari faqat yangi vendor modullari qo'shilsa yoki manba kodi qayta yozilsa o'zgartirilishi mumkin.

ORDBMS object-oriented tillar bilan ishlash uchun mo'ljallangan va bir nechta object-oriented conceptlardan foydalanadi. Foydalanuvchilar o'zlarining ma'lumotlar bazasi dizayniga table inheritance(jadval merosi), inkapsulyatsiyani va function overloadingni kiritishlari mumkin. Ular foydalanuvchi tomonidan belgilangan ob'ektlar va murakkabroq ma'lumotlar turlarini yaratishi mumkin.

ORDBMS ilovalari ko'pgina boshqa SQL ma'lumotlar bazalarida yetishmayotgan imkoniyatlarga ega. Ular fotosuratlar, audio fayllar va videolarni o'z ichiga olgan yangi turdagi ma'lumotlarga ixtisoslashgan. ORDBMS murakkab ob'ektlar va relational interfeysga mos kelmaydigan ma'lumotlar bilan ishlash uchun ham foydalidir. Ular, ayniqsa, ko'p sonli vaqtinchalik operatsiyalarni bajarishda yaxshi. ORDBMS ilovalari ko'proq querylar(so'rovlar) tillarini tushunadi va ko'plab komponentlarga ega bo'lgan katta, murakkab tizimga birlashtirilishi mumkin.

Salbiy tomoni sifatida, yangi foydalanuvchi dastlab ORDBMSni loyihalash, amalga oshirish va optimallashtirishda qiyinchiliklarga duch kelishi mumkin. Modellar orasidagi aralash noqulay va integratsiya qilish qiyin bo'lishi mumkin. Aloqaviy bo'lmagan ma'lumotlar bazalari murakkab va ba'zan ulardan foydalanish va o'rganish qiyin. Foydalanuvchi tomonidan aniqlangan juda ko'p tartib-qoidalar tufayli dizaynga nomuvofiqliklar, ortiqcha va samarasizliklar tasodifan kiritilishi mumkin.

Xulosa qilib aytadigan bo'lsak, RDBMS ko'p sonli oddiy SQL readlari bo'lgan va string(satr)lar va raqamlardan foydalanadigan tizimlar uchun foydalidir. Bu, shuningdek, foydalanish qulayligi va tez amalga oshirish yoki prototip ustuvor bo'lsa, eng yaxshi tanlovdir. PostgreSQL kabi ORDBMS murakkab querylar va katta ma'lumotlar ob'ektlarini talab qiladigan murakkab muhitda afzalliklarga ega. Bundan tashqari, u object-oriented dizaynda va kengroq dasturlash tillari bilan yaxshi ishlaydi.

PostgreSQL nima uchun ishlatiladi?

PostgreSQL tez va ishonchli tizim bo'lib, an'anaviy RDBMS ilovasidan foydalanish mumkin bo'lgan har qanday joyda foydalanish mumkin. Biroq, uni muayyan muhitda uchratish odatiy holdir. Quyida PostgreSQL-dan foydalanishning asosiy holatlari keltirilgan.

  • PostgreSQL ko'pincha tuzilgan(structured) va tuzilmagan(unstructured) ma'lumotlar, jumladan, audio, video va elektron pochta xabarlari birgalikda saqlanishi kerak bo'lganda ishlatiladi.

  • PostgreSQL PostGIS extensioni(kengaytma)ni o'z ichiga oladi, shuning uchun u geospatial ma'lumotlar bazalari bilan yaxshi ishlaydi. U joylashuvga asoslangan xizmatlar va geografik axborot tizimlari (geographic information systems (GIS)) uchun ishlatiladi.

  • Matlab va R kabi matematik va statistik ilovalar bilan birgalikda ishlatiladi.

  • PostgreSQL LAPP stackining bir qismini tashkil qiladi, LAAP - Linux, Apache, PostgreSQL va PHP/Python tillarini anglatadi, bu asl LAMP stackiga raqobatbardoshdir.

  • Boshqa data storelari bilan osongina birlashtirilganligi sababli, u turli ma'lumotlar bazasi tizimlari uchun federatsiyalashgan markaz sifatida yaxshi ishlaydi.

  • PostgreSQL ko'pincha onlayn tranzaksiyalarni qayta ishlash (online transaction processing (OLTP)), ma'lumotlarni saqlash va masshtablangan veb-ilovalar kabi talabchan rollarda qo'llaniladi.

  • Aniqrog'i, u hech bo'lmaganda qisman Reddit, Skype biznes bo'limi, NOAA/NWS va TripAdvisor tomonidan qo'llaniladi.

PostgreSQL dan foydalanishning ba'zi afzalliklari

Object-relational funksionallik va ilg'or xususiyatlarning kombinatsiyasi tufayli PostgreSQL muayyan vaziyatlar uchun ajoyib tanlovdir. Mana uning eng muhim afzalliklari.

  • Bu yaxshi community yordami va effektiv texnik hujjatlarni o'z ichiga olgan bepul, open source dastur. U tez sur'atlar bilan mashhur bo'lib bormoqda va yirik tashkilotlarda tobora ko'proq qabul qilinmoqda.

  • Eng muhimi, u object-oriented dizayn tamoyillarini, shu jumladan inkapsulyatsiya va inheritanceni amalga oshiradi. Shuningdek, u foydalanuvchilarga o'z turlari va ob'ektlarini aniqlash imkonini beradi. Bu object-oriented(ob'ektga yo'naltirilgan) tillar, jumladan C++ bilan integratsiya qilish uchun yaxshi tanlov qiladi. Bu audio, video va fotosuratlar kabi katta va unstructured ma'lumotlarni saqlash uchun ajoyib tanlovdir.

  • Bu an'anaviy RDBMSga qaraganda ancha moslashuvchan, chunki u foydalanuvchiga ma'lumotlar bazasi xatti-harakatlarini o'zgartirishga imkon beradi. Shuningdek, u foydalanuvchilarga turli xil boshqa tillarda yoki o'zining PL/pgSQL tilida yozilgan kodlarni birlashtirishga imkon beradi.

  • PostgreSQL JSON ma'lumotlari va operatsiyalari uchun kuchli built-in yordamni ta'minlaydi.

  • PostgreSQL faqat MySQL yoki boshqa RDBMS kabi ishlaydigan relational rejimda ishlashi mumkin. Tezlik va ishlash jihatidan raqobatbardosh va ayniqsa katta ma'lumotlar bazalari yoki murakkab querielar uchun yaxshi.

  • PostgreSQL ikkala modelni ham qo'llab-quvvatlaganligi sababli, u tashkilotlarga aloqador dizayndan aloqador bo'lmagan dizaynga muammosiz yangilash imkonini beradi.

  • U ko'pchilik RDBMS ilovalariga qaraganda ancha rivojlangan xususiyatlarga ega, jumladan, yanada mustahkam ko'rinishlarga ega. Shuningdek, u complex querielar va optional schemalar uchun yaxshi bo'lgan materialized viewlarni qo'llab-quvvatlaydi.

  • PostgreSQL MVCC-dan foydalangan holda ACID-compliance modeliga ega. Bu kuchli ma'lumotlar yaxlitligi muhim bo'lsa, uni yaxshi tanlov qiladi. PostgreSQL ushbu xususiyatning eng yaxshi ilovalaridan biriga ega deb hisoblanadi.

  • Replikatsiya(replication) va qayta tiklash(recovery) sohasida juda kuchli va active standbysdan foydalanishga ruxsat beradi. U asinxron yoki sinxron replikatsiyaga ruxsat berishda moslashuvchan.

  • PostgreSQL rollar va permission(ruxsat)larning aniq tizimiga ega bo'lgan darajada xavfsiz hisoblanadi.

  • Ko'pgina foydalanuvchilar PostgreSQL falsafasini qadrlashadi. U korporatsiya tomonidan ishlab chiqilmagan, balki o'z zimmasiga olgan ko'ngillilar va ishlab chiquvchilarga tayanadi. Shu nuqtai nazardan, u raqobatchilarga qaraganda open source ruhiga ko'proq mos keladi.