Dasar Teori
Catatan, untuk mengetahui kolom sudah ditambahkan atau tidak, ketikkan perintah query : \d [nama tabel]
Hasil Praktikum
Pembuatan dan Manajemen Tabel
Sebuah
tabel terdiri dari baris (row) dan kolom (column), dimana jumlah dan nama
kolom harus didefinisikan terlabih dahulu di awal. Sedangkan baris
merupakan sebuah variable yang dapat dihapus dan diisi kapanpun,
sehingga jumlahnya selalu berubah sesuai dengan jumlah data
didalamnya. Setiap kolom dalam tabel mempunyai tipe data, tipe data
digunakan untuk membatasi jenis data yang bisa dimasukkan, sehingga akan
mempermudah dalam menggunakannya dan melakukan pengelolaan selanjutnya.
Sangat disarankan pada saat akan membuat tabel, sebaiknya membuat sebuah
konvensi khusus dalam penentuan tabel-tabel yang akan dibuat dan memberikan
nama kolom maupun tipe datanya.
Dalam
Pembuatan Tabel:
- Tabel harus memiliki primary key, artinya dalam pembuatan tabel haruslah terdapat sekelompok kolom (field) yang menyebabkan setiap baris (record) dalam tabel tersebut tidak sama.
- Deklarasi primary key tidak boleh kosong (null), jadi kita harus mendeklarasikan sebagai not null. Namun secara default PostgreSQL menganggapnya sebagai nullable (boleh kosong), jika waktu pengisian tidak menyebutkan null atau not null.
Struktur
query untuk pembuatan table:
create table [nama_tabel] ([nama_kolo] [spasi] [type data] [spasi]
[keterangan], primary key ([nama_kolom]));
Untuk
melihat strukture tabel yang telah dibuat ketikan "\d".
Strukture
query untuk menghapus table:
drop table [nama_table];
Untuk
memanipulasi table terdapat beberapa strukture query.
-
Strukture query yang digunakan untuk menghapus kolom:
ALTER
TABLE [NAMA TABEL] DROP COLUMN “[NAMA KOLOM]”;
- Struktur query yang digunakan untuk menambah kolom:
ALTER TABLE [NAMA TABEL] ADD COLUMN “[NAMA KOLOM]” [SPASI]
[TIPE_DATA] [SPASI] [KET];- Struktur query yang digunakan untuk mengubah nama tabel :
ALTER TABLE [NAMA TABEL ASAL] RENAME TO [NAMA TABEL BARU];- Struktur query yang digunakan untuk mengubah nama kolom :
ALTER TABLE [NAMA TABLE] RENAME COLUMN “[NAMA KOLOM
ASAL]” TO [NAMA KOLOM BARU] ;- Struktur query yang digunakan untuk menambahkan primary key pada tabel :
ALTER TABLE [NAMA TABEL] ADD PRIMARY KEY ([NAMA KOLOM]);
- Struktur query yang digunakan untuk menambah kolom:
ALTER TABLE [NAMA TABEL] ADD COLUMN “[NAMA KOLOM]” [SPASI]
[TIPE_DATA] [SPASI] [KET];- Struktur query yang digunakan untuk mengubah nama tabel :
ALTER TABLE [NAMA TABEL ASAL] RENAME TO [NAMA TABEL BARU];- Struktur query yang digunakan untuk mengubah nama kolom :
ALTER TABLE [NAMA TABLE] RENAME COLUMN “[NAMA KOLOM
ASAL]” TO [NAMA KOLOM BARU] ;- Struktur query yang digunakan untuk menambahkan primary key pada tabel :
ALTER TABLE [NAMA TABEL] ADD PRIMARY KEY ([NAMA KOLOM]);
Temporary
tabel sifatnya hanya sementara artinya akan aktif hanya ketika kita
sedang berada atau login ke database namun ketika kita
logout dari psql database maka secara otomatis
temporary tabel akan terhapus.
Struktur query yang digunakan membuat tabel dengan dua kolom:
Struktur query yang digunakan membuat tabel dengan dua kolom:
CREATE
TEMPORARY TABLE [NAMA TABEL] ([NAMA KOLOM] [SPASI]
[TIPE DATA] [SPASI] [KETERANGAN] , [NAMA KOLOM] [SPASI] [TIPE
DATA] [SPASI] [KETERANGAN]);
[TIPE DATA] [SPASI] [KETERANGAN] , [NAMA KOLOM] [SPASI] [TIPE
DATA] [SPASI] [KETERANGAN]);
Pada saat
membuat tabel pada user tertentu maka hanya user tersebut dan user
postgres yang dapat mengakses tabel itu. Namun jika kita ingin agar tabel yang
telah dibuat pada user kita dapat diakses oleh user tertentu atau semua
user yang berada pada PostgreSQL, maka semua itu dapat dilakukan dengan
perintah GRANT. Jika ingin mencabut hak akses kita bisa menggunakan perintah
REVOKE.
Berikut struktur penggunaan GRANT untuk semua hak akses :
GRANT ALL ON TABLE [NAMA TABEL] TO [NAMA USER];
Berikut struktur penggunaan REVOKE untuk semua hak akses :
REVOKE ALL ON TABLE [NAMA TABEL] FROM [NAMA USER];
Struktur query untuk menghapus salah satu hak akses, misalnya UPDATE :
REVOKE UPDATE ON TABEL [NAMA TABEL] FROM [NAMA USER];
Struktur query untuk memberi salah satu hak akses, misalnya DELETE :
GRANT DELETE ON TABEL [NAMA TABEL] TO [NAMA USER];
Berikut struktur penggunaan GRANT untuk semua hak akses :
GRANT ALL ON TABLE [NAMA TABEL] TO [NAMA USER];
Berikut struktur penggunaan REVOKE untuk semua hak akses :
REVOKE ALL ON TABLE [NAMA TABEL] FROM [NAMA USER];
Struktur query untuk menghapus salah satu hak akses, misalnya UPDATE :
REVOKE UPDATE ON TABEL [NAMA TABEL] FROM [NAMA USER];
Struktur query untuk memberi salah satu hak akses, misalnya DELETE :
GRANT DELETE ON TABEL [NAMA TABEL] TO [NAMA USER];
INHERITANCE
dipergunakan jika ingin membuat sebuah tabel baru yang berhubungan dengan
tabel yang ada, dengan kata lain turunan tabel pertama.
Struktur penggunaan query INHERITANCE :
CREATE TEMPORARY TABLE [NAMA TABEL] ([NAMA KOLOM] [SPASI]
[TIPE DATA] [SPASI] [KETERANGAN] , [NAMA KOLOM] [SPASI] [TIPE
DATA] [SPASI] [KETERANGAN]) INHERITS (NAMA TABEL INDUK);
Struktur penggunaan query INHERITANCE :
CREATE TEMPORARY TABLE [NAMA TABEL] ([NAMA KOLOM] [SPASI]
[TIPE DATA] [SPASI] [KETERANGAN] , [NAMA KOLOM] [SPASI] [TIPE
DATA] [SPASI] [KETERANGAN]) INHERITS (NAMA TABEL INDUK);
Dalam hal
hubungan antar tabel, ada beberapa syarat yang harus terpenuhi seperti,
antara tabel yang ingin dihubungkan harus memiliki sebuah field dengan tipe
data yang sama. Dengan kata lain ada tabel yang memiliki primary
key sebagai kunci untuk menghubungkan ke tabel yang lain dimana
terdapat field yang mempunyai tipe data yang sama dengan kata lain yang
disebut foreign key. Misalnya, terdapat tabel barang dan
macam_barang. Berikut query kedua tabel tersebut :
CREATE
TABLE barang (bar_id INTEGER NOT NULL, bar_nama
VARCHAR(15), mac_id INTEGER NOT NULL REFERENCE macam_barang,
PRIMARY KEY (bar_id, mac_id));
CREATE TABLE macam_barang (mac_id INTEGER NOT NULL, mac_nama
VARCHAR(15), mac_guna VARCHAR(40), PRIMARY KEY (mac_id));
VARCHAR(15), mac_id INTEGER NOT NULL REFERENCE macam_barang,
PRIMARY KEY (bar_id, mac_id));
CREATE TABLE macam_barang (mac_id INTEGER NOT NULL, mac_nama
VARCHAR(15), mac_guna VARCHAR(40), PRIMARY KEY (mac_id));
create table
Berikut cara membuat suatu table dengan SQL shell(psql).
- Buka SQL shell anda
- Struktur query untuk membuat tabel :
CREATE TABLE [NAMA TABEL] ([NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI]
[KETERANGAN] , [NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI] [KETERANGAN]);
Untuk melihat hasilnya, ketikkan : \d
Untuk melihat hasilnya, ketikkan : \d
drop table
- menghapus tabel, struktur querynya :
DROP TABLE [NAMA TABEL];
rename table
Sampai disini, kita sudah mengetahui cara pembuatan dan menghapus suatu
tabel. Berikutnya akan ditunjukkan cara memanajemen suatu tabel.
Manajemen tabel
Postgree SQL menyediakan utilitas untuk memanajemen suatu tabel, diantaranya :
ALTER
Mengubah nama tabel, struktur querynya :
ALTER TABLE [NAMA TABEL ASAL] RENAME TO [NAMA TABEL BARU];
Manajemen tabel
Postgree SQL menyediakan utilitas untuk memanajemen suatu tabel, diantaranya :
ALTER
Mengubah nama tabel, struktur querynya :
ALTER TABLE [NAMA TABEL ASAL] RENAME TO [NAMA TABEL BARU];
add column
- Menambah kolom pada tabel, struktur querynya :
Catatan, untuk mengetahui kolom sudah ditambahkan atau tidak, ketikkan perintah query : \d [nama tabel]
drop kolom
- Menghapus kolom pada tabel, struktur querynya :
rename column
- Mengubah nama kolom, struktur querynya :
add primary key
- Menambahkan sebuah Primary Key pada table, struktur querynya :
add primary key 2
Catatan, sebenarnya untuk menambahkan primary key, kita juga bisa menambahkan pada waktu membuat tabel, berikut struktur querynya :
CREATE TABLE [NAMA TABEL] ([NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI] [KETERANGAN] , [NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI] [KETERANGAN], PRIMARY KEY (NAMA KOLOM));
CREATE TABLE [NAMA TABEL] ([NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI] [KETERANGAN] , [NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI] [KETERANGAN], PRIMARY KEY (NAMA KOLOM));
alter table help
Pembahasan mengenai perintah ALTER, saya cukupkan sampai di sini,
sekedar tambahan, bila ingin belajar lebih lanjut, SQL shel(psql) juga
dilengkapi menu help. contohnya : untuk belajar tentang ALTER, silahkan
ketikkan perintah :
\h ALTER TABLE
http://azilmoza.blogspot.com/2012/10/pembuatan-dan-manajemen-tabel-sebuah.html
http://muizalba.blogspot.com/2011/10/pembuatan-dan-manajemen-tabel.html
\h ALTER TABLE
Maka akan terdapat banyak sekali struktur query yang berkaitan dengan ALTER TABLE
temporary table
Tabel sementara maksudnya tabel ini hanya berfungsi ketika login masih aktif, jika keluar maka tabel ini menghilang.
Berikut struktur query untuk membuat temporary table (tabel sementara) :
Berikut struktur query untuk membuat temporary table (tabel sementara) :
CREATE TEMPORARY TABLE [NAMA TABEL] ([NAMA KOLOM] [SPASI] [TIPE DATA]
[SPASI] [KETERANGAN],[NAMAKOLOM] [SPASI] [TIPE DATA] [SPASI]
[KETERANGAN]);
GRANT dan REVOKE
GRANT : Perintah untuk memberikan user tertentu atau semua user yang
terdapat pada POSTGREE SQL untuk mengakses suatu tabel. REVOKE :
Perintah untuk mencabut hak akses suatu tabel.
create user
Sebelum menggunakan perintah grant, kita terlebih dahulu membuat user baru dengan cara :
CREATE USER [NAMA USER] PASSWORD'[PASSWORD USER]' CREATEDB;
grant
Berikutnya, struktur querynya dari GRANT.
GRANT ALL ON TABLE [NAMA TABEL] TO [NAMA USER];
revoke
- struktur querynya sebagai berikut :
REVOKE ALL ON TABLE [NAMA TABEL] FROM [NAMA USER];
http://muizalba.blogspot.com/2011/10/pembuatan-dan-manajemen-tabel.html
Hasil Praktikum
1. Buatlah sebuah tabel dengan nama identitasNIM dan dengan nama fieldnya Nama Tipe data Keterangan
Id_idn Integer Not Null
namaDepan_idn Varchar(10)
namaBelakang_idn Varchar(10)
tgl_lahir_idn Date
status_idn Boolean
Alamat_idn Text
2. Buatlah sebuah tabel lagi dengan nama pegawai dan nama field sama dengan tabel identitas.
4. Tambahkan kolom “pekerjaan_idn” dengan type data varchar dan tampilkan struktur tabel pegawai.
5. Ubah nama tabel pegawai menjadi pekerjaNIM kemudian ubah nama kolom “pekerjaan_idn” menjadi “alamat_idn” dan tampilkan.
6. Berikan Primary key pada tabel pekerjaNIM dan ubah type data pada kolom “alamat_idn” menjadi text. Kemudian tampilkan struktur tabel.
7. Hapus tabel pekerjaNIM.
8. Buat temporary tabel dengan nama mahasiswa_sementara dengan 3 kolom yaitu id, nama, tanggal lahir dan tampilkan tabel atau strukturnya.
9. Hapus semua hak akses tabel tertentu kepada salah satu user yang telah dibuat dan lakukan pengecekan. Kemudian berikan semua hak akses kembali dan lakukan pengecekan kembali. Hapus hak akses SELECT tabel tertentu kepada salah satu user dan lakukan pengecekan.
10. Buat tabel baru dengan nama Gaji, dengan catatan pembuatan tabel berasal dari turunan tabel number 1 dan tambahkan kolom gaji kotor, pajak, dan gaji bersih. Kemudian tampilkan strukturnya.
Tugas Rumah
Buat database dan tabel sistem pada pertemuan 1 menggunakan query dan dilengkapi dengan tampilan strukturnya.
Evaluasi Perbandingan 2 DBMS
PostgreSQL vs MySQL
Saat ini
dengan mudah kita bisa mengatakan, dua produk database open source paling
terkenal dan banyak digunakan adalah MySQL dan PostgreSQL. “Mana yang lebih
bagus?” adalah pertanyaan yang hingga akhir zaman nanti akan selalu terlontar.
Kami tahu pertanyaan ini tidak ada artinya, dan tidak membantu sama sekali.
Namun di artikel ini kami mencoba menyusun beberapa aspek dari kedua database
yang berbeda satu sama lain. Harapan kami, perbandingan ini membantu Anda
menjawab pertanyaan “mana yang sebaiknya dipakai untuk [sebutkan kebutuhan Anda
di sini].” Jangan lupa pula, sebelum memutuskan selalu ceklah dulu homepage
kedua database sebab dari waktu ke waktu fitur tiap database berubah/bertambah.
Perbandingan di artikel ini sendiri menggunakan versi MySQL 3.23.49/4.0.1 dan
PostgreSQL 7.2.
Dari
semula latar belakang dikembangkannya kedua database ini sudah berbeda. MySQL
berkembang dari solusi yang dipakai oleh pembuatnya, TcX AB, dalam memroses
data untuk aplikasi Web. Fokusnya adalah pada kecepatan. PostgreSQL, di lain
pihak, berkembang dari riset akademik. Fokus pengembangan PostgreSQL adalah
pada fitur OO, reliabilitas, dan dukungan SQL yang mantap. Namun, seiring kedua
produk ini bertambah matang, keduanya semakin banyak memiliki sifat-sifat ini.
MySQL versi 4.x misalnya, berjanji menambahkan fitur-fitur yang sejak lama
diidamkan pemakainya: subselect, view, dsb. Sementara PostgreSQL, yang sempat
memiliki masalah stabilitas dan skalabilitas di seri awal versi 6.x, juga kini
telah amat menarik dari segi kecepatan.
Pengembangan
MySQL diatur secara sentral oleh perusahaan komersial di Swedia bernama MySQL
AB (sebelumnya TcX AB). Perusahaan ini memperoleh pemasukan utamanya dari
menjual layanan support dan konsultasi MySQL. PostgreSQL dikembangkan secara
lebih terdesentralisasi dan merakyat, namun tetap diatur oleh sebuah kelompok
online bernama PostgreSQL Development Group.
MySQL
dirilis dalam satuan yang lebih sering (sebulan bisa lebih dari satu kali),
sementara PostgreSQL sekitar 4–6 bulan sekali.
Menurut
MySQL AB, saat ini jumlah instalasi MySQL sekitar 3 juta. PostgreSQL sendiri
tidak diketahui pasti berapa jumlah penggunanya; kemungkinan masih berada di
bawah MySQL karena banyaknya situs Web dan perusahaan webhosting yang hanya
menggunakan MySQL. Plus secara keseluruhan popularitas MySQL (trafik milis,
tutorial/artikel yang membahas, dsb) lebih besar daripada PostgreSQL. Tapi
karena PostgreSQL juga disertakan secara default di distro-distro Linux seperti
Red Hat dan SuSE, jumlah penggunanya pun sudah pasti banyak.
MySQL
memiliki arsitektur multithreading, sementara PostgreSQL multiproses (forking).
Ini berarti PostgreSQL potensial memiliki stabilitas yang lebih tinggi, sebab
satu proses anak yang mati tidak akan menyebabkan seluruh daemon mati—meskipun
pada kenyataannya, dulu ini sering terjadi. Di sisi lain, arsitektur dengan
forking ini sulit diterapkan ke Windows, sebab Windows amat thread-oriented.
Karena itulah, baru MySQL yang memiliki port natif ke Windows. PostgreSQL
sendiri saat ini bisa dijalankan di Windows, tapi melalui lapisan emulasi
Cygwin.
Sampai
sekarang masih banyak yang bilang MySQL itu tidak ACID-compliant. Padahal sejak
2 tahun lalu MySQL sudah mempunyai handler tabel BerkeleyDB, dan belakangan ini
InnoDB, sehingga MySQL sudah mendukung transaksi. Handler tabel MySQL yang
lama, ISAM dan MyISAM, tidak ACID-compliant. PostgreSQL sendiri sejak lama
telah ACID-compliant.
Lisensi
PostgreSQL lebih liberal. Inilah sebabnya ada banyak produk closed-source dan
komersial yang bisa dikembangkan dari source code PostgreSQL. MySQL, karena
dilisensi di bawah GPL, tidak boleh dimodifikasi menghasilkan produk turunan
yang closed-source.
Soal
kecepatan ini relatif dan kadang juga jadi isu sensitif. Baik kedua pihak,
maupun pihak ketiga, pernah menerbitkan benchmark yang lalu ditepis atau
dicibir karena tidak objektif.
Pada
dasarnya perbandingan kecepatan keduanya seperti ini: MySQL terkenal cepat
dalam melakukan query sederhana. Dengan kata lain, dapat memroses lebih banyak
SQL per satuan waktu. Tapi dalam kondisi load tinggi (jumlah koneksi simultan
besar), PostgreSQL sering mengalahkan MySQL untuk query dengan klausa JOIN yang
kompleks, seperti dialami Tim Perdue saat mencoba kedua database untuk
diimplementasikan di SourceForge.net. Penyebab utamanya adalah karena MySQL
menggunakan locking level table dalam UPDATE,
sehingga koneksi yang lain tidak bisa membaca table ybs sama sekali. Locking
inilah juga sebabnya mengapa pada banyak benchmark, MySQL menunjukkan penurunan
kinerja yang cukup drastis untuk kondisi jumlah klien simultan tinggi.
PostgreSQL mendukung locking di level yang lebih rendah, yaitu row. Table
handler baru di MySQL, InnoDB, juga mendukung row level locking. Benchmark
InnoDB pada jumlah koneksi tinggi menunjukkan hasil yang cukup menjanjikan (www.innodb.com/bench.html).
Masalah
locking tabel bisa diakali dengan membelah-belah tabel, agar satu kelompok row
dapat dilock tanpa mengganggu kelompok row lain. Bahkan ada pengguna MySQL yang
membelah sebuah tabel besar berisi jutaan record menjadi ribuan tabel
kecil-kecil.
Keduanya
sudah bisa dibilang cukup hingga amat stabil. Tapi perlu diingat bahwa database
manapun—bahkan Oracle—sesekali dapat menyebabkan kerusakan data. Karena itu
backup/history periodik dan incremental tetap diperlukan.
MySQL
terkenal kaya fungsi built-in, seperti modifikasi string (REPLACE, RIGHT, LTRIM, LCASE),
matematika (LOG, LOG10), tanggal, dsb. Dalam hal ini MySQL lebih unggul.
Keduanya
sudah amat solid. Mulai dari API C/C++, driver database Perl/Python/PHP/Tcl,
ODBC, JDBC telah didukung. Anda tidak akan kesulitan menggunakan database ini
dari berbagai sistem dan bahasa pemrograman. MySQL juga mendukung OLEDB dan
memiliki versi embedded untuk dilink bersama aplikasi buatan Anda sendiri.
MySQL
mendukung indeks full text secara natif. PostgreSQL mendukung full text
searching lewat program lain (contohnya: OpenFTS, openfts.sourceforge.net) yang memanfaatkan tipe data
arraynya untuk menyimpan indeks dokumen. Secara umum dapat dikatakan bahwa
indexing dengan MySQL lebih praktis, tapi dengan program ketiga lebih banyak
fitur dan opsi yang bisa diatur (mis: stemming, parsing kata non-Inggris, dsb).
MySQL juga, tentu saja, dapat dipakai sebagai backend bagi program search
eksternal (contoh: DBIx::KwIndex, search.cpan.org/search?dist=DBIx-KwIndex), meski mungkin tidak seefisien
dibandingkan array di PostgreSQL.
sudah memiliki replikasi, meski replikasi di MySQL barulah satu arah. Replikasi
di PostgreSQL sendiri belum disertakan dalam distribusi standarnya, namun Anda
dapat mengunjungi situs gborg.postgresql.org/project/pgreplication/ (proyek pgreplication).
Kedua
database menyimpan informasi user di sebuah database khusus. Sistem perizinan
MySQL lebih mendetil daripada PostgreSQL. Misalnya, kita dapat mengeset agar
user tertentu yang datang dari host tertentu hanya bisa membaca tabel saja
tanpa bisa UPDATE. Di PostgreSQL ini masih bisa dilakukan dengan VIEW misalnya.
Untuk
masalah enkripsi koneksi, keduanya mendukung SSL. Ada ekstensi PKIX bagi
PostgreSQL yang menarik, sebab dapat membuat tabel terenkripsi: http://www.dimensional.com/~bgiles/pkixdoc/.
MySQL AB
mengklaim lebih banyak tool grafis/web yang tersedia untuk MySQL, dan ini
nampaknya cukup benar.
PostgreSQL
lebih kaya dalam hal tipe data (terutama yang domain-specific seperti tipe data
geometris dan MONEY), tapi MySQL sudah mendukung
semua tipe data umum.
Di
PostgreSQL sebelum 7.1, masih ada keterbatasan yang cukup menyesakkan yaitu
ukuran data BLOB maksimum adalah 8–32KB. Sejak 7.1, PostgreSQL juga dapat
menyimpan data BLOB besar.
CHAR dan VARCHAR di PostgreSQL dapat menampung hingga 8 juta
karakter (bandingkan dengan MySQL yang hanya 255).
MySQL
lebih fleksibel dalam ALTER
TABLE.
PostgreSQL sendiri terbatas hanya bisa melakukan penambahan kolom, penggantian
nama kolom, dan penggantian nama tabel. MySQL mendukung penambahan/penghapusan
kolom, penggantian definisi kolom, dsb.
Dalam
waktu beberapa tahun PostgreSQL akan tetap memiliki fitur yang lebih lengkap
dibandingkan MySQL. Lebih banyak fitur dari standar SQL92 yang diimplementasi
oleh PostgreSQL. MySQL bahkan belum mendukung subselek. View, trigger, foreign
key checking (meski ini sudah ada di InnoDB) dan stored procedure semua hanya
ada di PostgreSQL. Sebagai pengembang yang memutuskan memilih salah satu
database, Anda perlu menanyakan kepada diri sendiri dulu apakah ingin lebih
bersusah-payah melakukan code around fasilitas-fasilitas yang tidak ada di
MySQL tersebut melalui bahasa pemrograman (misalnya, stored procedure diganti
dengan user-defined function, subselek diganti beberapa kali SQL yang dibungkus
dengan locking, dan tidak ada “trigger” berarti Anda harus melakukan pengecekan
secara manual). Jika tidak ingin repot, lebih baik memilih PostgreSQL. Tapi jika
tidak butuh fitur SQL yang rumit-rumit, Anda masih punya kebebasan memilih satu
dari dua.
Di
samping itu MySQL pun tidak memiliki fitur OO seperti pewarisan tabel dan tipe
data, atau tipe data array yang kadang praktis untuk menyimpan banyak item data
di dalam satu record.
MySQL
memiliki arsitektur yang memungkinkan sebuah database terdiri dari beberapa
jenis tabel, misalnya: yang transaksional dan tidak, yang berbasis di memori
atau di disk, yang terkompresi dan yang read-only. MySQL mendukung protokol
terkompresi yang bisa menghemat bandwidth dan mengurangi latensi.
PostgreSQL
memiliki tipe data array, pewarisan tabel dan tipe data, serta sistem rule.
PostgreSQL memiliki tipe-tipe data “antik.” Di PostgreSQL Anda dapat menulis
stored procedure (atau procedural language, istilah di PostgreSQL) dalam
beberapa bahasa: PL/Perl, PL/Tcl, atau PL/PgSQL. PostgreSQL mendukung
set/himpunan.
Kesimpulan
- Rangkuman
Saat ini dengan mudah kita bisa mengatakan, dua produk database open source paling terkenal dan banyak digunakan adalah MySQL dan PostgreSQL. “Mana yang lebih bagus?” adalah pertanyaan yang hingga akhir zaman nanti akan selalu terlontar. Kami tahu pertanyaan ini tidak ada artinya, dan tidak membantu sama sekali. Namun di artikel ini kami mencoba menyusun beberapa aspek dari kedua database yang berbeda satu sama lain. Harapan kami, perbandingan ini membantu Anda menjawab pertanyaan “mana yang sebaiknya dipakai untuk [sebutkan kebutuhan Anda di sini].” Jangan lupa pula, sebelum memutuskan selalu ceklah dulu homepage kedua database sebab dari waktu ke waktu fitur tiap database berubah/bertambah. Perbandingan di artikel ini sendiri menggunakan versi MySQL 3.23.49/4.0.1 dan PostgreSQL 7.2.
-Kritik
Pada hakekatnya kalau untuk hardware mungkin kita kalah dengan negara maju, tapi untuk softwrae/perangkat lunak kita tidak kalah bahkan bersaing dengan negara maju. Tetapi budaya copas/plagiatisme yang sudah mendarah daging di kalangan bangsa Indonesia itulah yang membuat kita sulit untuk bersaing dengan negara maju.
-Saran
Gunakanlah script anti copas/plagiatisme pada blog anda sehingga artikel tidak bisa di copas juga supaya mental bangsa Indonesia bisa diperbaiki agar tidak hobi copas supaya bisa bersaing dengan bangsa-bangsa di negara maju.Dengan begitu tidak akan ada lagi yang bisa memandang kita dengan sebelah mata.
-Manfaat bagi pembaca
Dengan membaca blog saya ini para pembaca akan mendapatkan banyak manfaat meliputi akan paham materi tentang PostgreSQL dan MySQL baik dari kemudahan atau kelebihan dan kelemahannya. Juga akan paham tentang ERD dan juga database dari ERD yang telah saya buat.















