Iklan

Latest Post


Pengenalan dan Instalasi SQL

Bhumi Literasi
Minggu, 21 September 2014, September 21, 2014 WIB Last Updated 2023-03-24T02:25:46Z
Dasar Teori


1.  Membuat user baru disertasi password pada mysql
Sering ketika kita ingin menginstall suatu aplikasi berbasis LAMP (Linux-Apache-MySQL-PHP), kita harus membuat user MySQL dan databasenya. Cara paling mudah adalah membuat username MySQL dengan opsi GRANT PRIVILEGES, agar tidak ada masalah ketika akan mengakses ke database yang kita buat.Hari ini saya akan tunjukan langkah-langkah untuk membuat User pada Database MySQL dengan nama Rizal_Mutaqin
Berikut langkah-langkah detailnya semoga dapat membantu :
1.      Masuk ke MySQL sebagai root
$ mysql -u root -p
2.      Setelah masuk console MySQL, buat user baru dengan command berikut.
mysql> CREATE USER ‘Rizal_Mutaqin’@'localhost’ IDENTIFIED BY ‘13650109’;
Query OK, 0 rows affected (0.00 sec)
Perintah diatas akan membuat user baru dengan nama: “Rizal_Mutaqin” dengan password “13650109” dimana aksesnya hanya dari localhost
3.      Kemudian Set privileges-nya menjadi GRANT.
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘Rizal_Mutaqin’@'localhost’ WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
4.      Keterangan :
1.      GRANT ALL PRIVILEGES ON *.*  : Pada perintah ini kita memeberikan Hak penuh kepada user untuk melakukan apapun pada database
2.      TO ‘aufklarung’@'localhost’            : Perintah ini menyatakan User dapat menggunakan haknya apabila terhubung melalui loalhost
3.      WITH GRANT OPTION;                      : Perintah ini menyatakan User dapat memberikan haknya kepada user lainnya.
Atau kita dapat juga membuat user dengan database dan  Set Privileges tertentu.
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE  ON db_test.* TO ‘Rizal_Mutaqin’@'localhost’ ;
Query OK, 0 rows affected (0.00 sec)
pada perintah diatas saya membuatkan user  dengan nama Rizal_Mutaqin dan memberikan hak SELECT,INSERT,UPDATE,DELETE,CREATE  hanya pada database db_test.
5.      Selesai! Username siap dipakai. Keluar  dari MySQL dengan perintah exit.
mysql>exit
Untuk lebih meyakinkan cobalah buat database dengan masuk kedalam user yang telah di buat.
$ mysql -u Rizal_Mutaqin -p
enter password :
(isikan password yang telah dibuat
mysql> create database forum;
Query OK, 1 row affected (0.00 sec)
Sumber :
http://catatanzidni.blogspot.com/2013/03/membuat-user-pada-database-mysql.html
http://www.akusukses.com/php/cara-membuat-username-password-root-mysql-di-phpmyadmin/
2.  Membuat Database pada XAMPP
Setelah kita belajar cara menginstal XAMPP dan menjalankannya, sekarang saatnya kita belajar bagaimana membuat database di XAMPP dan cara install WordPress di localhost. Artinya kita menginstal WordPress di komputer kita sendiri atau menginstal WordPress secara offline. Diasumsikan Anda sudah bisa menjalankan aplikasi XAMPP. Sehingga sekarang komputer Anda sudah bisa dijadikan server. Oia, jangan lupa untuk memastikan bahwa aplikasi XAMPP bisa berjalan dengan baik ya. Cek kembali dengan mengetik http://localhost/xampp di browser, lalu cek status. Detilnya bisa dilihat pada gambar di bawah ini.


Membuat Database dan User di XAMPP
Sebelum kita menginstal WordPress, kita harus membuat database dan user terlebih dahulu. Ini harus kita lakukan karena WordPress merupakan aplikasi website yang membutuhkan database untuk menyimpan data-data yang kita gunakan.
1.      Pertama-tama kita harus masuk ke phpmyadmin di XAMPP. Ketik di browser alamat http://localhost/phpmyadmin sehingga muncul tampilan seperti ini..

2.      Pada menu Database, silahkan masukkan nama database yang diinginkan, kemudian klik Create. Ingat-ingat nama database tersebut ya, karena kita akan menggunakannya nanti. Jika perlu, tuliskan di aplikasi notepad supaya mudah bagi kita untuk mengingatnya.


NB: Di sini saya menggunakan nama database “blogku“.
3.      Sekarang saatnya kita menambahkan nama user untuk database yang baru saja kita buat. Silahkan masuk ke database yang sudah dibuat, Anda bisa menemukannya di bagian sebelah kiri. Begitu masuk, lihat menu Privileges. Kemudian klik Add user.


 
4.      Begitu Anda klik Add User maka akan muncul form pembuatan user baru. Isikan username, Anda bisa mengisikannya dengan nama apapun teserah Anda, yang penting Anda hafal. Kemudian isikan juga host, gunakan use text field saja, lalu isikan dengan localhost. Selanjutnya isikan password 2 kali dan harus sama. Terakhir, centang grant all privileges on database.

 
5.      Eits, tunggu dulu, belum selesai. Scroll ke bawah, dan Anda akan menemukan opsi Global Privileges guna memberikan hak akses kepada user untuk mengelola semua database, klik Check All saja. Setelah itu, pencet tombol Add User.



Sumber :
http://webhostmu.com/membuat-database-dengan-xampp/
http://www.rajaputramedia.com/article/article-programing/cara-membuat-database-dan-table-mysql-menggunakan-phpmyadmin.php

3.  Menghapus database pada mysql
Perintah DROP biasa digunakan untuk menghapus database,table,kolom/field. Perintah DROP juga bisa di gabungkan dengan perintah lainnya, misalnya digabungkan dengan perintah ALTER TABLE yang nantinya akan bisa menghapus kolom atau sebuah primary key.
Sumber :
http://catatanku.web.id/catatan/perintah-drop-pada-mysql/
http://root93.blogspot.com/2013/03/cara-menghapus-table-atau-database.html

4.  Query Buffer

Jenis Query pada MySql

    MySql query adalah perintah atau instruksi yang dapat digunakan untuk mengelola database atau tabel dalam database mysql. Query lebih dikenal dengan sebutan SQL (Structured Query Language) yang artinya adalah sebuah bahasa yang digunakan untuk mengakses data dalam basis data relasional.

Bahasa ini merupakan bahasa standar yang digunakan dalam mengelola basis data atau database. Banyak database modern seperti mysql, sql server, oracle menggunakan bahasa SQL.  Secara umum ada 3 jenis query pada mysql yaitu DDL, DML dan DCL.

Mari kita bahas satu persatu.

1.  Query DDL (Data Definition Language).

    DDL adalah kumpulan perintah SQL yang digunakan untuk membuat (CREATE), mengubah (ALTER, RENAME) dan menghapus (DROP)     struktur dan definisi dari objek-objek database seperti database, tabel, view, index, function, trigger dan field.

    Query Jenis DDL, antara lain :
    a.  CREATE
        1)   CREATE DATABASE digunakan untuk membuat database baru.
             Contoh :
             a)  Syntax untuk membuat Database
                 Create database nama_database
             b)  Syntax untuk membuat table
                 Create table namatabel (namakolom1 typedata1,namakolom2 typedata2, namakolom3 typedata3

                 Type data dapat berupa char(), int, numerik dan sebagainya sesuai dengan nama kolom.

        2)   CREATE VIEW merupakan bentuk alternatif penyajian data dari satu tabelatau lebih, beberapa tujuan membuat                  view adalah meningkatkan keamanan data serta penyederhanaan bagi para pengguna agar tidak mengulang query              yang sama.
             Contoh :
                 Create view namaview (kolom1, kolom2, ...) as select statement from namatabel [with check option]
                     
             Keterangan :
                 namaview : nama view yang dibuat
                 Column : nama atribut untuk view
                 statement : atribut yang dipilih dari tabel database
                 namatabel : nama tabel yang ada pada basis data
     
        3)   CREATE FUNCTION digunakan untuk membuat function dalam database
             Contoh :
                 create function nama_function (kolom1 varchar(15),  kolom2 varchar(15))

        4)   CREATE INDEX digunakan untuk membuat index
             Contoh :
             -  create [unique] index namaindex on namatabel (namakolom)
             -  CREATE INDEX id_index ON NamaTable(kolomtabel_index)

                     
        5)   CREATE PROCEDURE digunakan untuk membuat prosedure dalama database
             Contoh :
                CREATE PROCEDURE nama_procedure (parameter_procedure())routine_body

        6)   CREATE TRIGGER digunakan untuk membuat trigger (perintah sql yang dikerjakan otomatis pada event tertentu)
             Contoh :
             -  CREATE [DEFINER = { user | CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name
                FOR EACH ROW trigger_body
             -  CREATE TRIGGER NamaTrigger BEFORE UPDATE ON NamaTable
                 
                Keterangan :
                    trigger_name : nama trigger.
                    trigger_time : kapan kita mengeksekusi trigger,
                                   apakah sebelum atau sesudah perubahan pada row data table.
                                   Jadi pilihannya adalah AFTER atau BEFORE.
                    trigger_event : merupakan event atau peristiwa yang
                                    menyebabkan trigger dilakukan. Pilihan event tersebut
                                    adalah INSERT, UPDATE, DELETE.
                    tbl_name : nama table.
                    trigger_body : statement-statement perintah SQL yang akan
                                   dilakukan. Jika perintahnya lebih dari satu maka gunakan
                                   dalam blok statement BEGIN ... END.
                 Jika DEFINER dispesifikasikan maka kita memutuskan trigger tersebut dijalankan
                 hanya oleh user tertentu (dalam format penulisan user@host).
                 Jika tidak dispesifikasikan, maka user yang melakukan perubahan
                 (CURRENT_USER) adalah pilihan default.
                 Sesuai namanya, OLD digunakan untuk referensi sebelum perubahan dan NEW untuk referensi sesudah                  perubahan.

    b.  ALTER, RENAME
        1)  ALTER DATABASE digunakan untuk mengubah pengaturan database
            Contoh :
               ALTER DATABASE nama_database CHARACTER SET = 'binary';

        2)  ALTER FUNCTION digunakan untuk mengubah function
            Contoh :
               CREATE FUNCTION nama_function(str CHAR(20))

        3)  ALTER PROCEDURE digunakan untuk mengubah procedure
            Contoh :
               ALTER PROCEDURE Sproc SQL SECURITY DEFINER;

        4)  ALTER TABLE digunakan untuk mengubah susunan dan pengaturan table
            Contoh :
               -  Alter table namatabel Modify (namakolom typekolom) Untuk mengganti type kolom dan nama kolom.
               -  Alter table namatabel add (namakolom type kolom[[before, namakolom]]) menambah kolom.
               -  Alter table namatabel drop (namakolom typekolom) untuk menghapus kolom pada sebuah tabel.

        5)  ALTER VIEW digunakan untuk mengubah pengaturan laporan
            Contoh :
               -  ALTER VIEW Nama_View(kolom1, kolom2, kolom3) AS SELECT  kolom1, kolom2, kolom3 FROM Nama_Table
                  where kondisi
           -  View  Nama_View

        6)  RENAME TABLE digunakan untuk mengubah nama table
            Contoh :
               ALTER TABLE nama_table_lama RENAME nama_table_lama

    c.  DROP
        1)  DROP DATABASE digunakan untuk menghapus database
            Contoh :
               DROP database NamaDatabase
        2)  DROP FUNCTION digunakan untuk menghapus function
            Contoh :
               DROP FUNCTION NamaDatabase.NamaFunction
        3)  DROP INDEX digunakan untuk menghapus index
            Contoh :
               DROP INDEX indexname ON tablename
        4)  DROP PROCEDURE digunakan untuk procedure
            Contoh :
               DROP procedure NamaDatabase.NamaProcedure
        5)  DROP TABLE digunakan untuk menghapus table
            Contoh :
               DROP table NamaTable
        6)  DROP TRIGGER digunakan untuk menghapus trigger
            Contoh :
               DROP TRIGGER NamaTrigger
        7)  DROP VIEW digunakan untuk menghapus format laporan
            Contoh :
               DROP view NamaView

2.  Query DML (Data Manipulation Language)
    DML adalah kependekan dari Data Manipulation Language. DML adalah kumpulan perintah SQL yang berhubungan dengan proses mengolah dan memanipulasi data dalam table. DML tidak terkait dengan perubahan struktur dan definisi tipe data dari objek database.
Query Jenis DML
    a.  SELECT digunakan untuk menampilkan nilai atau record yang di pilih
        Contoh :
           -  Select namakolom from namatabel
        * = digunakan untuk pilihan semua kolom
           -  Select * from namatabel

    b.  INSERT digunakan untuk menambah nilai pada suatu table
        Contoh :
           insert into namatabel values (‘value1’, ‘value2’,’ ...’)
           keterangan : value adalah nilai yang ingin dimasukkan ke dalam kolom

    c.  UPDATE digunakan untuk mengubah data yang sudah ada
        Contoh :
           Update namatabel SET namakolom = recordbaru where kondisi
           keterangan recordbaru di ubah sesuai dengan nama nilai baru yang akan di ubah

    d.  DELETE digunakan untuk menghapus data
        Contoh :
           DELETE namakolom from namatabel where kondisi

        Variasi penggunaan jenis query DML lebih banyak karena berhubungan dengan data dalam satu atau banyak tabel         database. Setiap kasus manipulasi data akan menciptakan susunan baru dengan perintah dasar yang sama.

3.   Query DCL (Data Control Language)
     Data Control Language (DCL) merupakan sub bahasa SQL yang digunakan untuk melakukan pengontrolan data dan server databasenya.
     a.  GRANT
         Perintah ini digunakan untuk memberikan hak / izin akses oleh administrator (pemilik utama) server kepada user      (pengguna biasa). Hak akses tersebut berupa hak membuat (CREATE), mengambil (SELECT), menghapus (DELETE), mengubah      (UPDATE) dan hak khusus berkenaan dengan sistem databasenya.
         Contoh :
            -  Grant privilages on namatabel to namapengguna
            -  GRANT SELECT, INSERT, DELETE ON database TO username@'localhost' IDENTIFIED BY 'password'
         artinya memberikan izin akses kepada namapengguna

     b.  REVOKE
         yaitu untuk mencabut izin akses kepada pengguna yang telah di beri izin akses
         Contoh :
            REVOKE privileges ON namatabel from namapengguna
Sumber :
http://masbenpro.blogspot.com/2013/06/jenis-query-pada-mysql.html
http://asepawaludinfajari.wordpress.com/2011/09/12/query-pada-mysql/

Hasil Praktikum

1. Buatlah user baru dengan nama user nama depan pribadi mahasiswa dan password menggunakan nim masing – masing.



2. Buatlah 2 database dengan nama : namaNIM masing-masing praktikan. Misal : “aziz05550057” dan nama database : contoh1.





3. Hapuslah database contoh1.


 4. Jawablah soal matematika berikut menggunakan query buffer 9 - 5 + 5 x 0 + 3 : 2 = .... ?



5. Jawablah soal matematika berikut menggunakan query buffer 5%2=...?



6. Tampilkan qurey untuk memperoleh tanggal dan jam sekarang?



7. Tampilkan selisih hari dalam untuk pengurangan waktu sekarang dengan waktu lahir praktikan?



 Tugas Rumah
Ø  Mengidentifikasi Entitas
o   Atlet Taekwondo dan Dojang/Tempat Latihan
Ø  Menentukan Atribut Atlet Taekwondo
o   Nomor Induk
o   Nama
o   Alamat
Ø  Menentukan Atribut Dojang/Tempat Latihan
o   Kode Dojang
o   Nama
o   Lokasi
Ø  Menentukan Primary Key setiap Entitas
o   Atlet Taekwondo                    : Nomor Induk
o   Dojang/Tempat Latihan          : Kode Dojang
Ø  Menentukan Entitas Relasi
o   one-to-one : Sebuah entitas pada A berhubungan dengan entitas B paling banyak satu, contoh diatas relasi Atlet Taekwondo dan Dojang dimana setiap Atlet hanya berlatih di 1 Dojang.
o   one-to-many : Sebuah entitas pada A berhubungan dengan entitas B lebih dari satu, contoh diatas adalah 1 Dojang memiliki banyak Atlet Taekwondo.



 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.
Tujuan Desain
      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
      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.
Jumlah Pengguna
      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.
Arsitektur dan Portabilitas
      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.
ACID compliance
      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
     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.
Kecepatan
      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.
Stabilitas
      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.
Fungsi Built-In
      MySQL terkenal kaya fungsi built-in, seperti modifikasi string (REPLACE, RIGHT, LTRIM, LCASE), matematika (LOG, LOG10), tanggal, dsb. Dalam hal ini MySQL lebih unggul.
Interface
      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.
Full Text Indexing
      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.
Replikasi
      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).
Manajemen User dan Keamanan
      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/.
Tool Web/GUI
      MySQL AB mengklaim lebih banyak tool grafis/web yang tersedia untuk MySQL, dan ini nampaknya cukup benar.
Tipe Data
      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).
Modifikasi Tabel
      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.
Fitur OO dan SQL
      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.
Fitur Unik
      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 
Budaya copas/plagiatisme sudah mendarah daging di kalangan bangsa Indonesia

-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.

-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.









Komentar

Tampilkan