Mengenal Dan Memahami Fungsi Dari PostgreSQL


Mengenal Dan Memahami Fungsi Dari PostgreSQL – PostgreSQL juga dikenal sebagai Postgres , adalah gratis dan open source sistem manajemen database relasional ( RDBMS) menekankan ekstensibilitas dan kepatuhan SQL .

Mengenal Dan Memahami Fungsi Dari PostgreSQL

sourcefiles  – Awalnya bernama POSTGRES, mengacu pada asal-usulnya sebagai penerus database Ingres yang dikembangkan di University of California, Berkeley. Pada tahun 1996, proyek ini diubah namanya menjadi PostgreSQL untuk mencerminkan dukungannya terhadap SQL . Setelah peninjauan pada tahun 2007, tim pengembang memutuskan untuk mempertahankan nama PostgreSQL dan alias Postgres.

Baca Juga : Mengenal Apa itu MySQL, Fungsi, dan Cara Kerjanya

PostgreSQL menampilkan transaksi dengan properti Atomicity, Consistency, Isolation, Durability (ACID), tampilan yang dapat diperbarui secara otomatis , tampilan terwujud , pemicu , kunci asing , dan prosedur tersimpan . Ini dirancang untuk menangani berbagai beban kerja, dari mesin tunggal hingga gudang data atau layanan Web dengan banyak pengguna secara bersamaan . Ini adalah database default untuk macOS Server dan juga tersedia untuk Windows , Linux ,FreeBSD , dan OpenBSD .

Sejarah

PostgreSQL berevolusi dari proyek Ingres di University of California, Berkeley. Pada tahun 1982, pemimpin tim Ingres, Michael Stonebraker , meninggalkan Berkeley untuk membuat versi eksklusif Ingres. Dia kembali ke Berkeley pada tahun 1985, dan memulai proyek pasca-Ingres untuk mengatasi masalah dengan sistem database kontemporer yang menjadi semakin jelas selama awal 1980-an. Dia memenangkan Penghargaan Turing pada tahun 2014 untuk ini dan proyek lainnya, dan teknik yang dipelopori di dalamnya.

Proyek baru, POSTGRES, bertujuan untuk menambahkan fitur paling sedikit yang diperlukan untuk sepenuhnya mendukung tipe data . Fitur-fitur ini termasuk kemampuan untuk mendefinisikan jenis dan untuk sepenuhnya menggambarkan hubungan – sesuatu yang digunakan secara luas, tetapi dikelola sepenuhnya oleh pengguna. Di POSTGRES, database memahami hubungan, dan dapat mengambil sebuah informasi yang ada dalam tabel terkait secara alami menggunakan aturan . POSTGRES menggunakan banyak ide Ingres, tetapi bukan kodenya.

Mulai tahun 1986, makalah yang diterbitkan menggambarkan dasar sistem, dan versi prototipe ditampilkan pada Konferensi SIGMOD ACM 1988 . Tim merilis versi 1 untuk sejumlah kecil pengguna pada Juni 1989, diikuti oleh versi 2 dengan sistem aturan yang ditulis ulang pada Juni 1990. Versi 3, dirilis pada 1991, menulis ulang sistem aturan, dan menambahkan dukungan untuk beberapa manajer penyimpanan dan mesin kueri yang ditingkatkan.

pada tanggal 30 Juni 1994 – terutama pembersihan – proyek berakhir. Berkeley merilis POSTGRES di bawah Lisensi MITvarian, yang memungkinkan pengembang lain menggunakan kode untuk penggunaan apa pun. Pada saat itu, POSTGRES menggunakan penerjemah bahasa kueri POSTQUEL yang dipengaruhi Ingres , yang dapat digunakan secara interaktif dengan aplikasi konsol bernama monitor.

Pada tahun 1994, mahasiswa pascasarjana Berkeley Andrew Yu dan Jolly Chen mengganti interpreter bahasa query POSTQUEL dengan satu untuk bahasa query SQL, menciptakan Postgres95. The monitorkonsol juga digantikan oleh psql. Yu dan Chen mengumumkan versi pertama (0.01) kepada penguji beta pada tanggal 5 Mei 1995. Versi 1.0 Postgres95 diumumkan pada tanggal 5 September 1995, dengan lisensi yang lebih liberal yang memungkinkan perangkat lunak dapat dimodifikasi secara bebas.

Pada tanggal 8 Juli 1996, Marc Fournier di Hub.org Networking Services menyediakan server pengembangan non-universitas pertama untuk upaya pengembangan sumber terbuka. Dengan partisipasi Bruce Momjian dan Vadim B. Mikheev, pekerjaan mulai menstabilkan kode yang diwarisi dari Berkeley.

Pada tahun 1996, proyek ini diubah namanya menjadi PostgreSQL untuk mencerminkan dukungannya terhadap SQL. Kehadiran online di situs web PostgreSQL.org dimulai pada 22 Oktober 1996. Rilis PostgreSQL pertama membentuk versi 6.0 pada 29 Januari 1997. Sejak itu pengembang dan sukarelawan di seluruh dunia telah memelihara perangkat lunak tersebut sebagai The PostgreSQL Global Development Group .

Proyek ini terus membuat rilis tersedia di bawah Lisensi PostgreSQL perangkat lunak sumber terbuka dan gratis . Kode berasal dari kontribusi dari vendor berpemilik, perusahaan pendukung, dan pemrogram sumber terbuka.

Kontrol konkurensi multiversi (MVCC)

PostgreSQL mengelola konkurensi melalui kontrol konkurensi multiversi (MVCC), yang memberikan setiap transaksi “snapshot” database, memungkinkan perubahan dilakukan tanpa memengaruhi transaksi lain. Ini sebagian besar menghilangkan kebutuhan untuk kunci baca, dan memastikan database mempertahankan prinsip ACID . PostgreSQL menawarkan tiga tingkat isolasi transaksi : Read Committed, Repeatable Read, dan Serializable.

Karena PostgreSQL kebal terhadap pembacaan kotor, meminta tingkat isolasi transaksi Read Uncommitted menyediakan read commited sebagai gantinya. PostgreSQL mendukung serializability penuh melalui metode isolasi snapshot serial (SSI).

Penyimpanan dan replikasi

Replikasi

PostgreSQL menyertakan replikasi biner bawaan berdasarkan pengiriman perubahan ( write-ahead logs (WAL)) ke node replika secara asinkron, dengan kemampuan untuk menjalankan kueri hanya-baca terhadap node yang direplikasi ini. Hal ini memungkinkan pemisahan lalu lintas baca di antara beberapa node secara efisien. Perangkat lunak replikasi sebelumnya yang memungkinkan penskalaan baca serupa biasanya mengandalkan penambahan pemicu replikasi ke master, sehingga meningkatkan beban.

PostgreSQL menyertakan replikasi sinkron bawaan yang memastikan bahwa, untuk setiap transaksi tulis, master menunggu hingga setidaknya satu node replika telah menulis data ke log transaksinya. Tidak seperti sistem basis data lainnya, durabilitas suatu transaksi (apakah itu asinkron atau sinkron) dapat ditentukan per basis data, per pengguna, per sesi, atau bahkan per transaksi. Ini dapat berguna untuk beban kerja yang tidak memerlukan jaminan tersebut, dan mungkin tidak diinginkan untuk semua data karena memperlambat kinerja karena persyaratan konfirmasi transaksi yang mencapai siaga sinkron.

Server siaga dapat sinkron atau asinkron. Server siaga sinkron dapat ditentukan dalam konfigurasi yang menentukan server mana yang merupakan kandidat untuk replikasi sinkron. Yang pertama dalam daftar yang aktif streaming akan digunakan sebagai server sinkron saat ini. Ketika ini gagal, sistem gagal ke baris berikutnya.

Replikasi multi-master sinkron tidak disertakan dalam inti PostgreSQL. Postgres-XC yang didasarkan pada PostgreSQL menyediakan replikasi multi-master sinkron yang dapat diskalakan. Ini dilisensikan di bawah lisensi yang sama dengan PostgreSQL. Proyek terkait disebut Postgres-XL . Postgres-R adalah garpu lain . Replikasi dua arah (BDR) adalah sistem replikasi multi-master asinkron untuk PostgreSQL.

Alat seperti repmgr membuat pengelolaan cluster replikasi lebih mudah. Beberapa paket replikasi berbasis pemicu asinkron tersedia. Ini tetap berguna bahkan setelah pengenalan kemampuan inti yang diperluas, untuk situasi di mana replikasi biner dari cluster database penuh tidak sesuai:

  • Slony-aku
  • Londiste, bagian dari SkyTools (dikembangkan oleh Skype )
  • Replikasi multi-master Bucardo (dikembangkan oleh Backcountry.com )
  • SymmetricDS multi-master, replikasi multi-tingkat

Skema

Di PostgreSQL, skema menampung semua objek, kecuali untuk peran dan ruang tabel. Skema secara efektif bertindak seperti ruang nama, memungkinkan objek dengan nama yang sama untuk hidup berdampingan dalam database yang sama. Secara default, database yang baru dibuat memiliki skema yang disebut public , tetapi skema lebih lanjut dapat ditambahkan, dan skema publik tidak wajib.

Sebuah search_pathpengaturan menentukan urutan pemeriksaan PostgreSQL skema untuk benda wajar tanpa pengecualian (orang-orang tanpa skema diawali). Secara default, ini diatur ke $user, public( $usermengacu pada pengguna database yang terhubung saat ini).

Default ini dapat diatur pada database atau tingkat peran, tetapi karena ini adalah parameter sesi, ini dapat diubah secara bebas (bahkan beberapa kali) selama sesi klien, hanya memengaruhi sesi itu. Skema yang tidak ada yang terdaftar di search_path dilewati secara diam-diam selama pencarian objek. Objek baru dibuat dalam skema mana pun yang valid (yang saat ini ada) muncul pertama kali di jalur_pencarian.