1-bo‘lim

PostgreSQL nima va uni kim yaratgan?

PostgreSQL nima, uni kim va nima uchun yaratgan, nomi qayerdan kelgan, boshqa bazalardan farqi va birinchi so'rov.

🕑 8 daqiqa o‘qish 📄 877 so‘z 👁 0 marta ko‘rilgan
Ushbu bo‘lim mundarijasi
  1. PostgreSQL nima?
  2. PostgreSQL ni kim yaratgan?
  3. Birinchi so'rov
  4. Nima uchun aynan PostgreSQL?
  5. Xulosa

Agar siz SQL asoslarini bilsangiz - SELECT, INSERT, JOIN - demak bazaning tilini bilasiz. Bu darslik esa boshqa narsa haqida: qaysi bazani tanlash va uning o'ziga xos kuchli tomonlaridan qanday foydalanish.

PostgreSQL - bugungi kunda jiddiy loyihalar uchun eng ko'p tanlanadigan ochiq kodli ma'lumotlar bazasi.

PostgreSQL nima? #

PostgreSQL - obyekt-relyatsion ma'lumotlar bazasi boshqaruv tizimi. "Relyatsion" qismi tanish: jadvallar, qatorlar, ustunlar. "Obyekt" qismi esa uni ajratib turadi - siz o'z turlaringizni, o'z funksiyalaringizni va hatto o'z indeks turlaringizni qo'sha olasiz.

Amalda bu shuni anglatadi: PostgreSQL faqat jadval saqlamaydi. U bir vaqtning o'zida:

VazifaPostgreSQL da
Oddiy relyatsion bazaJadvallar, JOIN, tranzaksiyalar
Hujjatli bazaJSONB - indekslanadigan JSON
Qidiruv tizimiTo'liq matn qidiruv, tsvector
Geografik ma'lumotPostGIS kengaytmasi
Vaqt qatorlariBo'laklash va BRIN indekslar

Ko'p loyihalarda bu bitta bazada hal qilinadi - alohida qidiruv serveri yoki hujjatli baza o'rnatish shart emas.

PostgreSQL ni kim yaratgan? #

BERKLI

Maykl Stounbreyker (1943-yilda tug'ilgan)

POSTGRES loyihasining boshlovchisi. 1986-yilda Berkli universitetida yangi ma'lumotlar bazasi loyihasini boshladi. Maqsad - relyatsion modelni saqlab qolgan holda, unga murakkab turlar va kengaytirish imkonini qo'shish edi.

Undan oldin u xuddi shu universitetda INGRES bazasini yaratgan edi. POSTGRES aynan o'sha ishning davomi sifatida o'ylab topilgan.

2014-yilda ma'lumotlar bazalari sohasidagi ishlari uchun Tyuring mukofotini oldi - bu informatikadagi eng nufuzli mukofot.

PostgreSQL ning bugungi ko'rinishi esa bitta odamning ishi emas. 1995-yilda Berklida ishlagan Endryu Yu va Jolli Chen loyihaning eski so'rov tilini olib tashlab, uning o'rniga SQL ni qo'yishdi. Aynan shundan keyin loyiha keng tarqaldi.

Bugun PostgreSQL ni butun dunyo bo'ylab tarqalgan ko'ngilli va kompaniyalardan iborat jamoa rivojlantiradi. Uning egasi yo'q - hech bir kompaniya uni sotib ololmaydi.

Nomi qayerdan kelgan

Bu nom uch bosqichda shakllangan va har bosqich tarixni saqlab qolgan.

BosqichNomiMa'nosi
1973INGRESBerklidagi birinchi loyiha
1986POSTGRESpost-Ingres - "Ingresdan keyingi"
1996PostgreSQLPostgres + endi u SQL tilida gapiradi

Ya'ni nom "Ingresdan keyin kelgan va SQL biladigan baza" degani.

Talaffuzi ham ko'pchilikni chalkashtiradi. Rasmiy javob: "post-gres-Q-L". Amalda esa deyarli hamma uni qisqacha "Postgres" deb ataydi - va bu ham to'g'ri hisoblanadi.

Ingresdan PostgreSQL gacha Zamonaviy PostgreSQL (1996-) 1973 INGRES Berkli 1986 POSTGRES loyiha boshlandi 1995 Postgres95 SQL qo'shildi 1996 PostgreSQL yangi nom 2017 10-versiya raqamlash o'zgardi 18 shu darslik joriy versiya Qirq yildan ortiq tarix Har yili bitta katta versiya chiqadi va beshta yil davomida qo'llab-quvvatlanadi Shuning uchun eski loyihalar ham xotirjam yangilanib boradi
10-versiyagacha raqamlar 9.5, 9.6 ko'rinishida edi - keyin soddalashtirildi

Birinchi so'rov #

PostgreSQL bilan ishlashning eng to'g'ridan-to'g'ri yo'li - psql dasturi. U buyruq qatorida ishlaydi va bazaga bevosita so'rov yuboradi.

Eng sodda so'rov jadvalsiz ham ishlaydi:

SQL
SELECT 'Salom, PostgreSQL!' AS xabar;
Natija
       xabar
--------------------
 Salom, PostgreSQL!
(1 row)

AS xabar - bu ustunga nom berish. Usiz ustun nomi ?column? bo'lib chiqadi.

Hisob-kitob ham shu yerda bajariladi:

SQL
SELECT 2 + 2 AS yigindi, 10 / 4 AS butun_bolish, 10.0 / 4 AS aniq_bolish;
Natija
 yigindi | butun_bolish |    aniq_bolish
---------+--------------+--------------------
       4 |            2 | 2.5000000000000000
(1 row)

Ikkinchi ustunga diqqat qiling: 10 / 4 2 berdi, 2.5 emas.

Butun sonlarni bo'lish - eng ko'p uchraydigan tuzoq

PostgreSQL da ikkita butun son bo'linsa, natija ham butun son bo'ladi. Kasr qismi shunchaki tashlanadi.

IfodaNatijaNima uchun
10 / 42ikkalasi ham butun son
10.0 / 42.5000...biri kasr - natija ham kasr
10::numeric / 42.5000...turni ochiq ko'rsatdik

Bu xato hisobotlarda juda ko'p uchraydi: foizni hisoblaganda sotilgan / jami * 100 yozilsa, natija deyarli har doim nol chiqadi.

Yechim oddiy: bo'linuvchini kasr turiga o'tkazing.

Matn ustida ishlaydigan funksiyalar ham bor:

SQL
SELECT upper('husanboy') AS katta, length('Toshkent') AS uzunlik;
Natija
  katta   | uzunlik
----------+---------
 HUSANBOY |       8
(1 row)

Nima uchun aynan PostgreSQL? #

Tanlov har doim vazifaga bog'liq, lekin umumiy manzara shunday:

XususiyatPostgreSQLKo'p boshqa bazalar
LitsenziyaOchiq, bepul, cheklovsizTurlicha
JSON qo'llab-quvvatlashIndekslanadigan JSONBKo'pincha oddiy matn
KengaytirishO'z turlari, funksiyalari, indekslariOdatda yo'q
Standartga rioyaJuda yuqoriO'rtacha
Murakkab so'rovlarOyna funksiyalari, rekursiya, LATERALQisman
Qachon PostgreSQL kerak emas

Har doim eng kuchli vositani tanlash to'g'ri emas.

HolatYaxshiroq tanlov
Mobil ilova ichidagi kichik bazaSQLite
Faqat keshRedis
Bir necha kishilik oddiy saytSQLite yoki MySQL ham yetarli

PostgreSQL ning kuchi murakkablik oshganda ko'rinadi: ko'p foydalanuvchi, murakkab so'rovlar, ma'lumot butunligi muhim bo'lgan joyda.

Amaliy topshiriq
  1. SELECT bilan o'z ismingizni ekranga chiqaring.
  2. Unga AS orqali ustun nomi bering.
  3. 100 / 3 va 100.0 / 3 natijalarini solishtiring.
  4. Farq nima uchun paydo bo'lganini yozing.
  5. 7 / 2 ni kasr natija beradigan qilib qayta yozing.
  6. lower() funksiyasi bilan katta harfli matnni kichraytiring.
  7. length() bilan o'z shahringiz nomining uzunligini toping.
  8. INGRES, POSTGRES va PostgreSQL nomlari ketma-ketligini yozing.
  9. 1995-yilda loyihaga qanday muhim o'zgarish kiritilganini ayting.
  10. O'z loyihangiz uchun PostgreSQL mos keladimi - asoslab yozing.

Xulosa #

  • PostgreSQL - obyekt-relyatsion baza: jadvallar ustiga kengaytirish imkoni qo'shilgan.
  • Loyihani 1986-yilda Berklida Maykl Stounbreyker boshlagan.
  • U bundan oldin xuddi shu joyda INGRES bazasini yaratgan edi.
  • Nomi post-Ingres dan kelib chiqqan: "Ingresdan keyingi".
  • 1995-yilda Endryu Yu va Jolli Chen loyihaga SQL ni qo'shishdi.
  • 1996-yilda nom PostgreSQL ga o'zgardi va loyiha keng tarqaldi.
  • Stounbreyker 2014-yilda Tyuring mukofotini oldi.
  • Bazaning egasi yo'q - uni butun dunyo jamoasi rivojlantiradi.
  • Ikkita butun son bo'linsa, natija ham butun son bo'ladi - bu klassik tuzoq.
  • PostgreSQL bitta bazada JSON, qidiruv va geografik ma'lumotni ham qamraydi.

Keyingi bo'limda psql bilan yaqindan tanishamiz va bazaga ulanishni o'rganamiz.

Xatolik topdingizmi?

Imlo xatosi, ishlamaydigan kod yoki noto‘g‘ri ma‘lumotni ko‘rsangiz - bizga xabar bering. Har bir xabar administrator tomonidan ko‘rib chiqiladi.