Senin, 29 November 2010

POSTGREE

Pengertian Postgree

PostgreSQL adalah sebuah sistem basis data yang disebarluaskan secara bebas menurut Perjanjian lisensi BSD. Piranti lunak ini merupakan salah satu basis data yang paling banyak digunakan saat ini, selain MySQL dan Oracle. PostgreSQL menyediakan fitur yang berguna untuk replikasi basis data. Fitur-fitur yang disediakan PostgreSQL antara lain DB Mirror, PGPool, Slony, PGCluster, dan lain-lain.

Nama produk


Kapitalisasi-campuran nama PostgreSQL dapat membingungkan beberapa orang melihat pertama. Ini beberapa lafal " SQL "dapat menyebabkan kebingungan ini. Teman-pengembang PostgreSQL mengucapkannya / poʊstɡrɛs ˌ ː kju ɛl / ; ( sampel Audio , MP3 5.6k). Hal ini disingkat sebagai "Postgres", nama aslinya. Karena dukungan mana-mana untuk Standar SQL antara database relasional yang paling, masyarakat dianggap mengubah nama kembali ke Postgres. Namun, Tim Inti PostgreSQL mengumumkan pada 2007 bahwa produk akan terus menggunakan nama PostgreSQL. Nama ini mengacu pada proyek asal sebagai "pasca- Ingres database ", penulis asli yang juga mengembangkan basis data Ingres. (The Ingres nama adalah singkatan untuk DI teractive trieval G S raphics ystem RE.)

Sejarah

Pada tahun 1982, pemimpin proyek, Michael Stonebraker , kiri Berkeley untuk membuat versi berpemilik dari Ingres. Ia kembali ke Berkeley pada 1985 dan memulai sebuah proyek pasca-Ingres untuk mengatasi masalah dengan sistem database kontemporer yang telah menjadi semakin jelas pada awal 1980-an.Proyek baru, Postgres, bertujuan untuk menambahkan fitur paling sedikit dibutuhkan untuk benar-benar 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 "dipahami" hubungan, dan bisa mengambil informasi dalam tabel terkait dengan cara alami menggunakan aturan. Postgres digunakan banyak ide-ide dari Ingres, tetapi tidak kode.

Mulai tahun 1986, tim menerbitkan sejumlah makalah yang menjelaskan dasar sistem, dan tahun 1988 memiliki versi prototipe. Tim merilis versi 1 ke sejumlah kecil pengguna pada bulan Juni 1989, maka versi 2 dengan sistem aturan ditulis ulang pada Juni 1990. Versi 3, dirilis pada tahun 1991, sekali lagi menulis ulang sistem aturan, dan menambahkan dukungan untuk beberapa manajer penyimpanan dan perbaikan mesin query. Pada tahun 1993 jumlah besar pengguna mulai membanjiri proyek dengan permintaan dukungan dan fitur. After releasing version 4 — primarily a cleanup — the project ended. Setelah merilis versi 4 - terutama pembersihan a - proyek berakhir.

Tapi open-source pengembang dapat memperoleh salinan dan mengembangkan sistem lebih lanjut, karena Berkeley telah merilis Postgres di bawah gaya lisensi MIT . Pada tahun 1994, Berkeley mahasiswa pascasarjana Andrew Yu dan Jolly Chen menggantikan Ingres berbasis QUEL query bahasa penerjemah dengan satu untuk SQL bahasa query, menciptakan Postgres95.

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

Pada tahun 1996, proyek ini berganti nama menjadi PostgreSQL untuk mencerminkan dukungan untuk SQL. Rilis PostgreSQL versi 6.0 pertama kali dibentuk 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. Kode berasal dari kontribusi dari vendor proprietary, perusahaan dukungan, dan programmer open-source pada umumnya.

Fitur

Bahasa prosedural

Bahasa (sering disebut prosedur yang tersimpan ) memungkinkan blok kode yang akan dieksekusi oleh server database, dan dapat ditulis dalam bahasa pemrograman lain selain SQL dan Prosedural C. bahasa dapat digunakan untuk membuat fungsi yang didefinisikan pengguna ( subroutine , memicu , agregat dan jendela fungsi), dan juga dapat digunakan dalam ad hoc "DO" blok. Keempat berikut bahasa prosedural disediakan oleh PostgreSQL instalasi standar:

Standar lainnya bahasa non-prosedural yang telah dikembangkan di luar distribusi inti termasuk (namun tidak terbatas pada): PL / Lua ( Lua ), PL / php ( PHP ), PL / Ruby ( Ruby ), PL / sh (setiap Unix seperti shell ), PL / skema ( Skema ), PL / Java ( Jawa ), PL / R ( R ) dan bahkan PL / LOLCODE .

Indeks

Selain itu, metode indeks yang ditetapkan pengguna dapat diciptakan, meskipun hal ini cukup proses yang terlibat. Indexes in PostgreSQL also support the following features: Indeks pada PostgreSQL juga mendukung fitur berikut:

  • indeks Ekspresi dapat dibuat dengan indeks hasil dari sebuah ekspresi atau fungsi, bukan hanya nilai kolom.
  • Indeks parsial , yang hanya indeks bagian dari meja, dapat dibuat dengan menambahkan WHERE clause ke akhir dari CREATE INDEX statement. This allows a smaller index to be created. Hal ini memungkinkan indeks yang lebih kecil yang akan dibuat.
  • Perencana mampu menggunakan beberapa indeks bersama-sama untuk memenuhi query yang kompleks, menggunakan memori sementara di- indeks bitmap operasi.

Pemicu

Misalnya, INSERT pernyataan mungkin mengaktifkan pemicu yang diperiksa jika nilai pernyataan tersebut valid. Most triggers are only activated by either INSERT or UPDATE statements. 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 aturan, walaupun. Selain memanggil fungsi yang ditulis dalam PL asli / pgsql, memicu juga dapat memanggil fungsi yang ditulis dalam bahasa lain seperti PL / Perl.

MVCC

PostgreSQL mengelola concurrency melalui sistem yang dikenal sebagai Multi-Version Concurrency Control (MVCC), yang memberikan setiap pengguna "snapshot" dari database, sehingga perubahan yang akan dibuat tanpa dapat dilihat oleh pengguna lain sampai transaksi dilakukan. Hal ini sebagian besar menghilangkan kebutuhan untuk kunci membaca, dan memastikan database mempertahankan ACID (atomicity, konsistensi, isolasi, daya tahan) prinsip secara efisien.

Aturan

Aturan memungkinkan "pohon query" dari sebuah query yang masuk ke ditulis ulang. Salah satu penggunaan umum adalah untuk menerapkan pandangan, termasuk pandangan diupdate. Aturan, atau lebih tepat, "Permintaan Re-Write Aturan", yang melekat pada meja / kelas dan "Re-Tulis" DML masuk (pilih, insert, update, dan / atau menghapus) ke dalam satu atau lebih pertanyaan yang baik menggantikan pernyataan DML asli atau mengeksekusi di samping itu. Permintaan Re-Write terjadi setelah parsing pernyataan DML, tetapi, sebelum perencanaan query.

Jenis data

Berbagai macam asli jenis data yang didukung, termasuk:

Selain itu, pengguna dapat membuat tipe data sendiri yang biasanya dapat dilakukan sepenuhnya diindeks melalui PostgreSQL's GIST infrastruktur. Contoh ini meliputi sistem informasi geografis (SIG) tipe data dari PostGIS proyek untuk PostgreSQL.

Didefinisikan objek Pengguna

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

Warisan

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

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

Pada tahun 2010 [update] fitur ini tidak sepenuhnya didukung belum-khususnya, kendala tabel saat ini tidak diwariskan. Pada rilis 8,4, kendala periksa semua dan kendala tidak-null pada tabel induk secara otomatis diwarisi oleh anak-anaknya. jenis lain kendala (unik, kunci utama, dan batasan kunci asing) tidak diwariskan.

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

Fitur-fitur lainnya

  • Integritas referensial kendala termasuk kunci asing kendala, kendala kolom, dan cek baris
  • Meskipun pandangan secara default tidak update-mampu, mereka dapat dibuat agar dengan menciptakan "insert", "update", dan / atau "menghapus" Permintaan Re-Write Aturan di tampilan.
  • luar (penuh, kiri dan kanan), dan cross bergabung
  • Sub- memilih
  • Berkorelasi sub-query
  • Transaksi
  • Mendukung sebagian besar fitur utama dari SQL: 2008 standar
  • Encrypted koneksi melalui SSL
  • Biner dan tekstual besar-object penyimpanan
  • Backup online
  • Domain
  • Tablespace
  • Savepoints
  • Point-in waktu pemulihan- , diimplementasikan dengan menggunakan Write-ahead logging
  • Dua-fase komit
  • Toast (t O versized-A ttribute S torage T echnique) digunakan untuk menyimpan atribut transparan meja besar (seperti lampiran MIME besar atau pesan XML) di daerah yang terpisah, dengan kompresi otomatis.
  • Ekspresi reguler
  • Common tabel ekspresi
  • Embedded SQL diimplementasikan menggunakan preprocessor. SQL code is first written embedded into C code. Kode SQL pertama kali ditulis tertanam ke dalam kode C. Kemudian kode dijalankan melalui preprocessor ECPG, yang menggantikan SQL dengan kode panggilan ke perpustakaan. Kemudian kode dapat dikompilasi menggunakan kompiler C. Menanamkan bekerja juga dengan C + + tetapi tidak mengakui semua C + + konstruksi.
  • Penuh pencarian teks

Replikasi

PostgreSQL 9.0 termasuk built-in replikasi biner, berdasarkan pengiriman perubahan ( write-depan log ) untuk sistem budak asynchronous. Menambahkan replikasi sinkron adalah pada peta jalan untuk rilis 9.1.

Versi 9.0 juga memperkenalkan kemampuan untuk menjalankan query read-only terhadap budak ini direplikasi, dimana versi sebelumnya hanya akan memungkinkan bahwa setelah mempromosikan mereka untuk menjadi master baru. Hal ini memungkinkan pemisahan antara lalu lintas membaca beberapa node efisienSebelumnya replikasi perangkat lunak yang memungkinkan serupa membaca skala biasanya didasarkan pada replikasi menambahkan pemicu untuk menguasai, memperkenalkan beban tambahan ke atasnya.

Ada juga beberapa paket replikasi asynchronous berbasis pemicu untuk PostgreSQL. Ini tetap berguna bahkan setelah pengenalan kemampuan inti diperluas, untuk situasi di mana replikasi biner dari seluruh database cluster bukanlah pendekatan yang tepat:

  • Slony-I
  • Londiste (bagian dari SkyTools oleh Skype )
  • Mammoth Replicator (dengan Command Prompt sumber. Dahulu proprietary sekarang terbuka,)
  • Bucardo (Multi-master replikasi, dikembangkan sebagai bagian dari Backcountry.com )

Ada juga proxy (middleware) alat yang memungkinkan replikasi, failover atau manajemen beban dan balancing untuk PostgreSQL:

  • PGPool-II
  • Continuent Sequoia, juga tersedia untuk perangkat lunak database lain

Pengaya

Administrasi Database

Open source

psql

Utama front-end untuk PostgreSQL adalah psql -program baris perintah , yang dapat digunakan untuk memasukkan query SQL langsung, atau mengeksekusi mereka dari file. Selain itu, psql menyediakan sejumlah meta-perintah dan fitur shell-seperti berbagai untuk memfasilitasi penulisan naskah dan mengotomatisasi berbagai tugas, untuk menyelesaikan tab contoh nama-nama objek dan sintaks SQL.

PgAdmin

pgAdmin adalah bebas dan open source grafis front-end administrasi alat untuk PostgreSQL, yang didukung pada platform komputer yang 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 dalam bulan kemudian. Inkarnasi kedua (bernama II pgAdmin) adalah seorang selesai menulis ulang, 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 , III pgAdmin ditulis dalam C + +, menggunakan wxWidgets kerangka memungkinkan untuk berjalan pada kebanyakan sistem operasi umum.

phpPgAdmin

phpPgAdmin merupakan sebuah tool administrasi berbasis web untuk PostgreSQL ditulis dalam PHP dan berdasarkan populer phpMyAdmin interface awalnya ditulis untuk MySQL administrasi.

Kepemilikan

Sejumlah perusahaan menawarkan perangkat proprietary untuk PostgreSQL. Mereka sering terdiri dari inti universal yang disesuaikan untuk berbagai produk database tertentu. Alat-alat ini sebagian besar saham fitur administrasi dengan alat open source namun perbaikan menawarkan dalam pemodelan data , mengimpor, mengekspor atau pelaporan.

Tingkatan yang dicapai dan Kinerja

kinerja studi informal Banyak dari PostgreSQL telah dilakukan .Kinerja perbaikan yang bertujuan meningkatkan skalabilitas mulai banyak dengan versi 8.1, dan berjalan sederhana benchmark versi 8.4 telah terbukti lebih dari 10 kali lebih cepat pada beban kerja hanya membaca dan setidaknya 7,5 kali lebih cepat pada kedua membaca dan menulis beban kerja dibandingkan dengan versi 8.0.

Tolak ukur standar industri dan peer-divalidasi pertama selesai pada bulan Juni 2007 dengan menggunakan Sun Java System Application Server (versi proprietary dari GlassFish ) Platform 9.0 Edition, UltraSPARC T1 berbasis Sun Fire server dan Postgres 8.2. [15] Hasil dari 778,14 SPECjAppServer2004 JOPS @ Standard lebih baik dibandingkan dengan 874 JOPS @ Standar dengan Oracle 10 pada Itanium berbasis HP-UX sistem. [13]

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

Konfigurasi default PostgreSQL hanya menggunakan sejumlah kecil memori didedikasikan untuk keperluan kinerja penting seperti blok database caching dan sortasi. Keterbatasan ini terutama karena banyak sistem operasi tidak akan membiarkan mengalokasikan blok besar memori bersama secara default, yang berarti database membutuhkan runtime perubahan kernel sebelum dapat disetel dengan benar. Saran terhadap kinerja praktek yang dianjurkan dasar yang mencakup semua versi terbaru PostgreSQL tersedia di Tuning PostgreSQL Server Anda .

User Tokoh

  • Yahoo! untuk analisis perilaku pengguna web, menyimpan dua petabyte dan diklaim sebagai gudang data terbesar yang menggunakan versi modifikasi dari PostgreSQL berat dengan kolom berbasis penyimpanan mesin yang berbeda sama sekali dan pengolahan lapisan query yang berbeda. Sedangkan untuk kinerja, penyimpanan, dan tujuan query database sedikit beruang kemiripan ke PostgreSQL, front-end mempertahankan kompatibilitas sehingga Yahoo dapat menggunakan off-the-tools rak banyak yang sudah ditulis untuk berinteraksi dengan PostgreSQL.
  • MySpace , sebuah situs jejaring sosial populer, Aster nCluster menggunakan Database untuk penyimpanan data, yang dibangun di PostgreSQL tidak dimodifikasi.
  • OpenStreetMap , sebuah proyek kolaboratif untuk membuat peta diedit bebas dunia
  • Afilias , pendaftar domain org. , . info dan lain-lain.
  • Sony Online online multiplayer game
  • BASF , belanja platform untuk portal agribisnis mereka. Com portal jejaring sosial.
  • reddit.com situs berita sosial.
  • Skype VoIP aplikasi, database pusat bisnis.
  • Sun xVM ,'s virtualisasi Sun dan otomatisasi suite datacenter.

Penghargaan

Pada tahun 2008 [update] PostgreSQL telah menerima penghargaan sebagai berikut:

  • 1999 LinuxWorld Editor's Choice Award untuk Best Database
  • 2000 Linux Journal Editors 'untuk Database Terbaik
  • 2002 Linux New Media Editor Choice Award untuk Best Database
  • 2003 Choice Awards Linux Journal Editors 'untuk Database Terbaik
  • 2004 Linux New Media Award Untuk Database Terbaik
  • 2004 Choice Awards Linux Journal Editors 'untuk Database Terbaik
  • 2004 ArsTechnica Terbaik Penghargaan Aplikasi Server
  • 2005 Choice Awards Linux Journal Editors 'untuk Database Terbaik
  • 2006 Linux Journal Editors 'untuk Database Terbaik
  • 2008 Developer.com Produk Tahun, Tool Database

Derivatif Kepemilikan dan dukungan

Meskipun lisensi diperbolehkan berdasarkan produk proprietary Postgres, kode tidak berkembang dalam ruang berpemilik pada awalnya. Para cabang utama berasal ketika Paula Hawthorn (sebuah Ingres asli anggota tim yang pindah dari Ingres) dan Michael Stonebraker membentuk ilustrasi Teknologi Informasi untuk menghasilkan produk eksklusif berdasarkan Postgres.

Pada tahun 2000, mantan Red Hat investor menciptakan perusahaan Great Bridge untuk membuat sebuah produk eksklusif berdasarkan PostgreSQL dan bersaing dengan vendor proprietary database. Great Bridge disponsori PostgreSQL beberapa pengembang dan banyak sumber daya disumbangkan kembali ke masyarakat, tetapi dengan akhir 2001 ditutup karena 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. In 2008, Command Prompt, Inc. Command Prompt, Inc terus mendukung masyarakat PostgreSQL aktif melalui pengembang dan sponsor proyek termasuk / Perl PL / php, PL, dan hosting proyek komunitas seperti PostgreSQL Build Farm .

Pada bulan Januari 2005, PostgreSQL menerima dukungan oleh database vendor Pervasive Software , dikenal dengan Btrieve produk yang mana-mana pada Novell NetWare platform. Meresap mengumumkan dukungan komersial dan partisipasi masyarakat dan mencapai beberapa keberhasilan. In July 2006, Pada bulan Juli 2006, Pervasif meninggalkan pasar dukungan PostgreSQL.

Pada pertengahan tahun 2005 dua perusahaan lain mengumumkan rencana untuk membuat produk proprietary berdasarkan PostgreSQL dengan fokus pada ceruk pasar yang terpisah. EnterpriseDB menambahkan fungsionalitas untuk memungkinkan aplikasi yang ditulis untuk bekerja dengan Oracle untuk lebih mudah dijalankan dengan PostgreSQL. Greenplum memberikan kontribusi tambahan diarahkan pada gudang data dan intelijen bisnis aplikasi, termasuk proyek BizGres.

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

Pada bulan Agustus 2007, EnterpriseDB mengumumkan [37] yang Postgres Resource Center [1] dan EnterpriseDB Postgres, dirancang sebagai distribusi dikonfigurasi sepenuhnya dari PostgreSQL termasuk modul contrib banyak dan add-pada 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 dari PostgreSQL ditambah tambahan pengujian QA, komponen terpadu, tuning dan menginstal satu-klik, dan Postgres Plus Advanced Server yang memiliki semua fitur Postgres Standar ditambah Oracle Server kompatibilitas, fitur skalabilitas, dan DBA dan pengembang alat. " Kedua versi tersebut tersedia secara gratis dan sepenuhnya didukung, meskipun versi gratis Postgres Plus Advanced Server dibatasi oleh lisensi "penggunaan terbatas", yang didefinisikan sebagai "terbatas pada CPU tunggal, menggunakan 1 GB RAM, menyimpan tidak lebih dari 6GB data dalam lingkungan NON-PRODUKSI. "

Pengguna PostgreSQL

  • Yahoo! untuk analisa prilaku pengguna web, menyimpan 2 petabyte data dan mengklaim sebagai gudang data terbesar. Menggunakan versi PostgreSQL yang dimodifikasi, dengan engine penyimpanan berbasis kolom yang sepenuhnya berbeda.
  • MySpace, situs jejaring sosial populer, menggunakan basisdata Aster nCluster untuk gudang data, dibangun diatas PostgreSQL tanpa modifikasi.
  • OpenStreetMap, proyek kolaboratif untuk menciptakan peta dunia yang bebas sunting.
  • Afilias, register domain untuk .org, .info, dan sebagainya.
  • Sony Online multiplayer online game.
  • BASF, platform belanja untuk portal agribisnisnya.
  • hi5.com portal jejaring sosial.
  • Skype aplikasi VoIP, basisdata pusat bisnis
  • Sun xVM, perangkat lunak virtualisasi dan otomasi datacenter milik Sun x VM.

SUMBER


id.wikipedia.org/wiki/PostgreSQL

en.wikipedia.org/wiki/PostgreSQL