PostgreSQL, sering hanya Postgres, adalah objek-relasional database manajemen sistem (ORDBMS).  Hal ini dirilis di bawah lisensi MIT gaya dan dengan demikian bebas dan perangkat lunak open source . Seperti banyak lainnya open source program, PostgreSQL tidak dikontrol oleh satu perusahaan, tetapi memiliki komunitas global pengembang dan perusahaan untuk mengembangkan itu.

Nama produk

Kapitalisasi-campuran nama PostgreSQL bisa membingungkan sebagian orang pada melihat pertama. Ini beberapa lafal ” SQL “dapat menyebabkan kebingungan ini. pengembang PostgreSQL’s mengucapkannya / poʊstɡrɛs ˌ ː kju ɛl / ; ( Audio sampel , 5.6k MP3). Hal ini disingkat sebagai “Postgres”, nama aslinya. Karena dukungan di mana-mana untuk Standar SQL database relasional antara sebagian besar, masyarakat dianggap mengubah nama kembali ke Postgres. Namun, PostgreSQL Tim Inti mengumumkan pada tahun 2007 bahwa produk tersebut akan terus diberi nama PostgreSQL. Nama ini mengacu pada proyek asal sebagai “pasca- Ingres database “, penulis asli memiliki juga mengembangkan database Ingres, dimana Ingres adalah singkatan untuk DI raphicsG teractive RE trieval S ystem.

Sejarah

PostgreSQL berevolusi dari Ingres proyek di University of California, Berkeley . Pada tahun 1982, pemimpin proyek, Michael Stonebraker , kiri Berkeley untuk membuat versi milik Ingres. Ia kembali ke Berkeley pada tahun 1985 dan memulai proyek pasca-Ingres mengatasi masalah dengan sistem database kontemporer yang telah menjadi semakin jelas pada awal 1980-an. Proyek baru, Postgres, bertujuan untuk menambahkan fitur paling sedikit yang diperlukan untuk sepenuhnya mendukung jenis. Fitur-fitur ini termasuk kemampuan untuk menentukan jenis dan untuk sepenuhnya menggambarkan hubungan – sesuatu yang digunakan secara luas sebelumnya, tetapi dikelola sepenuhnya oleh pengguna. Di Postgres, database “memahami” hubungan, dan bisa mengambil informasi dalam tabel terkait dengan cara alami menggunakan aturan. Postgres digunakan banyak ide Ingres tetapi tidak kodenya.

Mulai tahun 1986, tim menerbitkan beberapa makalah yang menjelaskan dasar sistem, dan pada tahun 1988 memiliki versi prototipe. Tim merilis versi 1 ke sejumlah kecil pengguna pada bulan Juni 1989, maka versi 2 dengan sistem peraturan ditulis ulang pada Juni 1990. Versi 3, yang dirilis pada tahun 1991, kembali menulis ulang sistem aturan, dan menambahkan dukungan untuk beberapa manajer penyimpanan dan perbaikan mesin query. Pada tahun 1993 sejumlah besar pengguna mulai membanjiri proyek dengan permintaan untuk dukungan dan fitur. Setelah merilis versi 4 – terutama pembersihan – proyek berakhir.

Tapi open-source pengembang dapat memperoleh salinan dan mengembangkan sistem lebih lanjut, karena Berkeley telah dirilis Postgres di bawah lisensi MIT gaya . Pada tahun 1994, siswa lulusan Berkeley Andrew Yu dan Jolly Chen menggantikan Ingres berbasis bahasa query Quel juru bahasa dengan satu untuk SQL bahasa query, menciptakan Postgres95. kode ini dirilis di web.

Pada bulan Juli 1996, Marc Fournier di Hub.Org Layanan Jaringan disediakan server non-universitas pertama untuk pengembangan usaha pengembangan open source. Seiring dengan Bruce Momjian dan Vadim B. Mikheev, bekerja mulai menstabilkan kode yang diwarisi dari Berkeley. Open source versi pertama dirilis pada tanggal 1 Agustus 1996.

Pada tahun 1996, proyek ini dinamai untuk PostgreSQL untuk mencerminkan dukungan untuk SQL. Rilis pertama dibentuk PostgreSQL versi 6.0 pada bulan Januari 1997. Sejak itu, perangkat lunak telah dipertahankan oleh sekelompok pengembang database dan sukarelawan di seluruh dunia, koordinasi melalui Internet .

Proyek PostgreSQL terus membuat rilis besar (sekitar per tahun) dan minor “bugfix” rilis, semua tersedia di bawah lisensi yang sama, berdasarkan kontribusi dari vendor proprietary, perusahaan dukungan, dan programer open source pada umumnya.

Fitur

Fungsi

Fungsi memungkinkan blok kode yang harus dijalankan oleh server. Meskipun blok ini dapat ditulis dalam SQL, kurangnya operasi pemrograman dasar yang ada sebelum versi 8.4, sepertipercabangan dan perulangan , telah mendorong penerapan bahasa lain dalam fungsi. Beberapa bahasa bahkan dapat mengeksekusi dalam pemicu. Fungsi dalam PostgreSQL dapat ditulis dalam bahasa berikut:

PostgreSQL mendukung kembali baris-fungsi, di mana output dari fungsi adalah seperangkat nilai-nilai yang dapat diperlakukan jauh seperti tabel dalam query. Custom agregat dan fungsi jendela juga dapat didefinisikan.

Fungsi dapat didefinisikan untuk melaksanakan dengan privileges dari baik pemanggil atau pengguna yang didefinisikan fungsi. Fungsi kadang-kadang disebut sebagai prosedur yang tersimpan , meskipun ada perbedaan teknis sedikit di antara keduanya.

Indeks

PostgreSQL termasuk built-in mendukung untuk B +-pohonhashinti dan Gin indeks. Selain itu, metode indeks yang didefinisikan pengguna dapat dibuat, meskipun hal ini cukup proses yang terlibat. Indeks di PostgreSQL juga mendukung fitur berikut:

  • Ekspresi indeks dapat dibuat dengan indeks hasil dari sebuah ekspresi atau fungsi, bukan hanya nilai kolom.
  • Partial indeks , indeks yang hanya bagian dari meja, dapat dibuat dengan menambahkan WHERE clause ke akhir dari CREATE INDEX statement. Hal ini memungkinkan indeks yang lebih kecil akan dibuat.
  • Para perencana mampu menggunakan beberapa indeks bersama-sama untuk memenuhi permintaan yang kompleks, menggunakan memori sementara di- indeks bitmap operasi.

Pemicu

Pemicu merupakan peristiwa yang dipicu oleh tindakan dari SQL DML laporan. Sebagai contoh, sebuah INSERT pernyataan mungkin mengaktifkan memicu yang diperiksa jika nilai-nilai pernyataan tersebut valid. Kebanyakan hanya memicu diaktifkan dengan baik INSERT atau UPDATE laporan.

Pemicu sepenuhnya didukung dan dapat dilampirkan ke tabel tetapi tidak untuk dilihat . Tampilan dapat memiliki peraturan, though. Beberapa memicu dipecat dalam urutan abjad. Selain memanggil fungsi yang ditulis dalam PL asli / PgSQL, memicu juga dapat menjalankan fungsi yang ditulis dalam bahasa lain seperti PL / Perl.

MVCC

PostgreSQL mengelola concurrency melalui sistem yang dikenal dengan Multi-Version Concurrency Control (MVCC), yang memberikan setiap user suatu “snapshot” dari database, sehingga perubahan harus dilakukan tanpa terlihat oleh pengguna lain sampai transaksi berkomitmen. Hal ini terutama menghilangkan kebutuhan untuk kunci membaca, dan memastikan database mempertahankan ASAM prinsip secara efisien.

Aturan

Aturan memungkinkan pohon “permintaan” dari suatu query masuk ditulis ulang. Satu penggunaan umum adalah untuk menerapkan pandangan, termasuk pandangan diupdate. Aturan, atau lebih baik, “Kueri Re-Write Aturan”, yang melekat pada meja / kelas dan “Re-Tulis” DML masuk (pilih, insert, update, dan / atau menghapus) ke dalam 1 atau lebih pertanyaan yang baik menggantikan DML pernyataan asli atau melaksanakan di samping itu. Permintaan Re-Write terjadi parsing setelah pernyataan DML, tapi, sebelum perencanaan query.

Jenis Data

Berbagai jenis asli jenis data yang didukung, termasuk:

Selain itu, pengguna dapat membuat data jenis mereka sendiri yang biasanya dapat dilakukan sepenuhnya melalui PostgreSQL’s indexable inti infrastruktur. Contoh ini adalah sistem informasi geografis (GIS) tipe data dari PostGIS proyek untuk PostgreSQL.

Pengguna yang ditentukan obyek

jenis baru dari hampir semua obyek di dalam database dapat dibuat, termasuk:

Warisan

Tabel dapat diatur untuk mewarisi karakteristik mereka dari orang tua “” tabel. Data dalam tabel anak akan muncul ada dalam tabel induk, kecuali data yang dipilih dari tabel induk dengan menggunakan kata kunci HANYA, * pilih yaitu dari HANYA PARENT_TABLE. Menambahkan sebuah kolom dalam tabel induk akan menyebabkan kolom yang muncul dalam tabel anak.

Warisan dapat digunakan untuk mengimplementasikan tabel partisi, baik menggunakan pemicu atau aturan untuk memasukkan langsung ke meja induk ke dalam tabel anak yang tepat.

Fitur ini tidak didukung sepenuhnya belum-khususnya, kendala tabel saat ini tidak diwariskan. Pada rilis 8.4, periksa semua kendala dan hambatan tidak-null pada tabel induk secara otomatis diwariskan kepada anak-anaknya. Jenis lain dari kendala (unik, kunci primer, dan batasan kunci asing) tidak diwarisi.

Warisan menyediakan cara untuk memetakan fitur dari hierarki generalisasi digambarkan dalam Entity Relationship Diagram (ERD) langsung ke database PostgreSQL.

Fitur lain

  • Integritas referensial kendala termasuk kunci asing kendala, kendala kolom, dan cek baris
  • Tampilan . Meskipun pandangan ini secara default tidak diupdate, mereka dapat dibuat begitu dengan menciptakan “insert”, “update”, dan / atau “menghapus” Permintaan Re-Write Peraturan tentang view.
  • Batin, luar (penuh, kiri dan kanan), dan lintas bergabung
  • Sub- memilih
    • Berkorelasi sub-query
  • Transaksi
  • Mendukung sebagian besar fitur-fitur utama dari SQL: 2008 standar
  • Koneksi dienkripsi melalui SSL
  • Biner dan teks yang besar-objek penyimpanan
  • Cadangan Online
  • Domain
  • Tablespace
  • Savepoint
  • Point-in-time recovery
  • Dua-fasa komit
  • (T dia O versized-A ttribute torage Toast S T echnique) digunakan untuk menyimpan atribut transparan meja besar (seperti lampiran MIME besar atau pesan XML) di daerah yang terpisah, dengan kompresi otomatis.
  • Kalimat biasa [8]
  • Common tabel ekspresi
  • Embedded SQL diimplementasikan dengan menggunakan preprocessor. SQL pertama kali ditulis kode ke kode C tertanam. Kemudian kode ini dijalankan melalui preprocessor ECPG, yang menggantikan SQL dengan kode panggilan ke perpustakaan. Kemudian kode bisa dikompilasi menggunakan compiler C. Embedding bekerja juga dengan C + + tetapi tidak mengakui semua C + + konstruksi.

Pengaya Firefox

Database berakhir administrasi depan

Open source

psql

Utama depan-akhir untuk PostgreSQL adalah psql -program baris perintah , yang dapat digunakan untuk memasukkan query SQL secara langsung, atau mengeksekusi mereka dari sebuah file.Selain itu, psql menyediakan sejumlah meta-perintah dan fitur berbagai shell seperti menulis skrip untuk memfasilitasi dan mengotomatisasi berbagai tugas; untuk penyelesaian tab contoh nama obyek dan sintaks SQL.

PgAdmin

pgAdmin adalah sumber terbuka dan bebas grafis front-end administrasi alat untuk PostgreSQL, yang didukung pada platform komputer paling populer. Program ini tersedia di lebih dari selusin bahasa. Prototipe pertama, bernama pgManager, ditulis untuk PostgreSQL 6.3.2 dari tahun 1998, dan ditulis ulang dan dirilis sebagai pgAdmin di bawah Lisensi GPL di bulan kemudian. Inkarnasi kedua (bernama pgAdmin II) adalah penulisan ulang lengkap, pertama kali dirilis pada tanggal 16 Januari 2002. Versi saat ini adalah pgAdmin III, yang awalnya dirilis di bawah Lisensi Artistik dan sekarang dirilis di bawah lisensi yang sama seperti PostgreSQL. Tidak seperti versi sebelumnya yang ditulis dalam Visual Basic , pgAdmin III ditulis dalam C + +, menggunakan wxWidgets kerangka mengoperasikannya pada sistem operasi yang paling umum.

PhpPgAdmin

phpPgAdmin merupakan sebuah tool administrasi berbasis web untuk PostgreSQL ditulis dalam PHP dan berdasarkan populer phpMyAdmin antarmuka awalnya ditulis untuk MySQL administrasi. [10]

Kepemilikan

Sejumlah perusahaan menawarkan alat berpemilik untuk PostgreSQL. Mereka sering terdiri dari inti universal yang disesuaikan untuk berbagai produk database tertentu. Alat-alat ini sebagian besar memiliki ciri-ciri pemerintahan dengan open source tetapi perbaikan alat-alat menawarkan dalam pemodelan data , mengimpor, mengekspor atau pelaporan.

Lihat juga: Perbandingan Peralatan database

Tingkatan yang dicapai

Kinerja studi informal Banyak dari PostgreSQL telah dilakukan tapi pertama-standar industri dan rekan-divalidasi benchmark selesai pada bulan Juni 2007 dengan menggunakan Sun Java System Application Server (versi milik GlassFish ) 9,0 Platform Edition, UltraSPARC T1 berbasis Sun Fire server dan Postgres 8.2. [12] Hasil dari 778,14 SPECjAppServer2004 JOPS @ Standar baik dibandingkan dengan 874 JOPS @ Standar dengan Oracle 10 pada Itanium berbasis HP-UX sistem.

Pada bulan Agustus 2007, Sun mengajukan peningkatan skor benchmark 813,73 SPECjAppServer2004 JOPS @ Standar. Dengan sistem sedang diuji dengan harga, harga / kinerja yang meningkat dari $ US 84.98/JOPS untuk $ AS 70.57/JOPS. [13]

PenggunaMenonjol

  • Yahoo! untuk analisis perilaku pengguna web, menyimpan dua petabyte dan diklaim sebagai yang terbesar data warehouse menggunakan versi diubah berat dari PostgreSQL dengan kolom berbasis penyimpanan mesin yang sama sekali berbeda dan pemrosesan query lapisan yang berbeda. Sedangkan untuk kinerja, penyimpanan, dan tujuan query database mempunyai kemiripan sedikit ke PostgreSQL, front-end sehingga mempertahankan kompatibilitas dengan aplikasi Yahoo dapat menggunakan banyak off-rak-tools sudah ditulis untuk berinteraksi dengan PostgreSQL.
  • MySpace , situs jejaring sosial populer, menggunakan Database nCluster Aster untuk data pergudangan, yang dibangun di atas dimodifikasi PostgreSQL.
  • OpenStreetMap , sebuah proyek kolaboratif untuk menciptakan sebuah peta yang dapat diedit bebas dunia.
  • Afilias , domain pendaftar untuk org.. info dan lain-lain.
  • Sony Online game online multiplayer.
  • BASF , belanja platform untuk portal agribisnis mereka.
  • hi5.com portal jaringan sosial.
  • Skype VoIP aplikasi, database pusat bisnis.
  • Sun xVM ,’s virtualisasi Sun dan suite otomasi datacenter.
  • Evergreen , open source sistem perpustakaan terintegrasi menyediakan Katalog Online Public Access dan katalog, manajemen, dan fungsi lainnya untuk ratusan perpustakaan di Amerika Serikat, Kanada, dan di tempat lain.
  • MusicBrainz , buka ensiklopedia musik online.

Penghargaan

Pada tahun 2008 PostgreSQL telah menerima penghargaan sebagai berikut:

  • 1999 LinuxWorld Editor’s Choice Award untuk Best Database
  • 2000 Editor Jurnal Linux ‘Choice Awards untuk Best Database
  • 2002 Linux New Media Editor Choice Award untuk Best Database
  • 2003 Editor Jurnal Linux ‘Choice Awards untuk Best Database
  • 2004 Linux New Media Award Untuk Best Database
  • 2004 Editor Jurnal Linux ‘Choice Awards untuk Best Database
  • 2004 Arstechnica Server Aplikasi Terbaik Penghargaan
  • 2005 Editor Jurnal Linux ‘Choice Awards untuk Best Database
  • 2006 Editor Jurnal Linux ‘Choice Awards untuk Best Database
  • 2008 Developer.com Produk Tahun, Alat Database

Derivatif eksklusif dan dukungan

Meskipun lisensi diperbolehkan produk eksklusif berdasarkan Postgres, kode tidak berkembang dalam ruang eksklusif pada awalnya – agak mengherankan mengingat keuntungan yang ditawarkan Postgres. The cabang utama berasal ketika Paula Hawthorn (sebuah Ingres asli anggota tim yang pindah dari Ingres) dan Michael Stonebraker dibentuk Illustra Teknologi Informasi untuk membuat produk eksklusif berdasarkan Postgres.

Pada tahun 2000, mantan Red Hat investor menciptakan perusahaan Great Bridge untuk membuat produk eksklusif berdasarkan PostgreSQL dan bersaing dengan vendor proprietary database. Great Bridge disponsori beberapa pengembang PostgreSQL dan menyumbangkan banyak sumber daya kembali ke masyarakat,  tetapi dengan akhir 2001 ditutup akibat persaingan ketat dari perusahaan seperti Red Hat dan kondisi pasar yang buruk.

Pada tahun 2001, Command Prompt, Inc dirilis Mammoth PostgreSQL, produk eksklusif berdasarkan PostgreSQL. Pada tahun 2008, Command Prompt, Inc sumber dirilis di bawah lisensi asli.Command Prompt, Inc terus mendukung komunitas PostgreSQL aktif melalui pengembang dan sponsor proyek termasuk PL /, php PL / Perl, dan hosting proyek komunitas seperti PostgreSQL Build Farm .Pada bulan Januari 2005, PostgreSQL menerima dukungan oleh database vendor Pervasif Software , dikenal dengan Btrieve produk yang mana-mana di Novell NetWare platform. Luas mengumumkan dukungan komersial dan partisipasi masyarakat dan mencapai beberapa keberhasilan. Pada bulan Juli 2006, Pervasif kiri pasar dukungan PostgreSQL.

Pada pertengahan 2005 dua perusahaan lainnya mengumumkan rencana untuk membuat produk eksklusif berdasarkan PostgreSQL dengan fokus pada ceruk pasar yang terpisah. EnterpriseDBditambahkan fungsi untuk memungkinkan aplikasi yang ditulis untuk bekerja dengan Oracle untuk lebih mudah dijalankan dengan PostgreSQL. Greenplum memberikan kontribusi tambahan diarahkan pada data warehouse dan intelijen bisnis aplikasi, termasuk proyek BizGres.

Pada bulan Oktober 2005, John Loiacono, wakil presiden eksekutif dari perangkat lunak di Sun Microsystems , berkomentar: “Kami tidak akan OEM Microsoft tapi kami akan mencari PostgreSQL sekarang, ” meskipun tidak spesifik yang dirilis pada waktu itu. Pada November 2005, Sun telah mengumumkan dukungannya untuk PostgreSQL. Pada Juni 2006, Sun Solaris 10 (06/06 rilis) dikirim dengan PostgreSQL.

Pada bulan Agustus 2007, EnterpriseDB mengumumkan yang Postgres Resource Center dan EnterpriseDB Postgres, dirancang untuk menjadi dikonfigurasi distribusi sepenuhnya dari PostgreSQL termasuk contrib banyak modul dan add-on komponen. EnterpriseDB Postgres diubah namanya menjadi Postgres Plus pada Maret 2008. Postgres Plus tersedia dalam dua versi: Postgres Plus Standar Server yang memiliki semua fitur tambahan plus PostgreSQL pengujian QA, komponen terintegrasi, tuning dan satu-klik install, dan Postgres Plus Advanced Server yang memiliki semua fitur Postgres Standar ditambah Oracle Server kompatibilitas, skalabilitas fitur, dan DBA dan alat pengembang. Kedua versi tersebut tersedia secara gratis dan sepenuhnya didukung, meskipun versi gratis dari Postgres Plus Advanced Server dibatasi oleh penggunaan “terbatas” lisensi, yang didefinisikan sebagai “terbatas pada CPU tunggal, memanfaatkan 1 GB RAM, menyimpan tidak lebih dari 6GB data dalam lingkungan NON-PRODUKSI. “

Sumber ; http://en.wikipedia.org