Laman

Kamis, 07 Juni 2012

PENGANTAR MySQL


2.1. Pendahuluan
MySQL merupakan Database Management System SQL open source yang paling populer, yang dikembangkan, didistribusikan, dan didukung oleh MySQL AB. MySQL AB adalah sebuah perusahaan komersial, yang didirikan oleh para pengembang MySQL. MySQL AB adalah perusahaan open source generasi kedua yang menyatukan nilai­nilai dan metodologi open source dengan suatu model bisnis yang  sukses.
Berikut ini fitur­fitur utama MySQL:
  • MySQL adalah  relational database management system
  • Software MySQL adalah open source
  • Database server MySQL sangat cepat, reliable, dan mudah digunakan
  • Database server cMySQL bekerja dalam client/server atau embedded system

2.2. Penyesuaian Dengan Standar ­ Standar SQL

MySQL mendukung  entry­level  SQL­92.  Entry­level  berisi   serangkaian   keistimewaan ­ keistimewaan   yang mendefinisikan dasar­dasar pemenuhan SQL­92.  Oracle menyesuaikan dengan SQL­89, yang mana adalah suatu sub­set dari tipe SQL­92 dengan tambahan  tipe­tipe spesifik.
Beberapa tipe SQL­92  dipetakan kedalam tipe­tipe oracle. PostgreSQL menggunakan suatu sub­set dari bahasa  SQL92­99 yang diperluas dan bahasa SQL 3. Sintak tipe­tipe data SQL­92 dipetakan langsung kedalam tipe asli postgreSQL.


2.3. Program ­ Program Klien MySQL

Program­program klien  MySQL dapat dipanggil atau dijalankan dari command­line, seperti dari sebuah console prompt Windows, atau dari sebuah UNIX prompt shell. Ketika Anda   menjalankan   suatu   program   klien,   Anda   dapat   menentukan   opsi­opsi untuk mengontrol tindak tanduk dari program klien. Beberapa opsi menjelaskan kepada program klien tentang bagaimana menghubungi server MySQL. Beberapa opsi lainnya menjelaskan
kepada program klien aksi yang manakah yang harus dilakukan.
Program klien  mysql memungkinkan Anda mengirimkan permintaan­permintaan (query)
ke server MySQL,  dan menerima hasilnya.  Untuk menentukan opsi­opsi  yang didukung
oleh program mysql, jalankan perintah dengan opsi –help. Sebagai contoh, untuk mencari
tahu bagaimana menggunakan mysql , ketiklah perintah berikut ini:
shell> mysql ­­help

Untuk mengetahui versi dari program mysql, gunakan opsi –version:
shell> mysql ­­version

Untuk menghubungi   server  menggunakan program klien,  klien harus  mengetahui  pada komputer yang manakah server MySQL aktif atau berjalan. Sebuah koneksi atau hubungan bisa dilakukan secara lokal pada suatu server MySQL yang berjalan pada komputer yang sama  dengan komputer yang sedang  menjalankan program  klien  mysql, atau  dapat dilakukan secara jarak jauh (remote) ke suatu server MySQL yang berjalan pada komputer yang berbeda dengan komputer yang sedang menjalankan program klien mysql,Anda tentunya harus memiliki user account (username dan password) yang terdaftar pada server MySQL tersebut untuk dapat melakukan koneksi ke server.

Dua buah opsi yang menunjukkan kepada klien dimanakah server MySQL berjalan, begitu
juga tipe  koneksi yang dilakukan.
­­host=nama_komputer
atau
­h nama_komputer

Opsi   ini  menentukan pada komputer  yang manakah server  MySQL aktif  atau berjalan. Nilai   dari   opsi   ini   dapat   berupa   nama   komputer   atau   nomor   IP.  Nilai   default   adalah localhost.
­­port=nomor_port
atau
­P nomor_port
Opsi ini menunjukkan nomor port  yang manakah yang dapat  dihubungi pada komputer server, ini hanya diterapkan untuk koneksi  TCP/IP.  Default nomor port    MySQL adalah 3306. Dua buah opsi  yang menyediakan  informasi   indentifikasi, yaitu username dan password atau user account yang Anda akan gunakan untuk dapat mengakses server.
­­user=username
atau
­u username
Opsi ini menentukan username untuk account  MySQL Anda.
­­password=password
atau
­ppassword
Opsi ini menentukan password untuk account   MySQL Anda.  Berikut ini contoh­contoh
bagaimana menggunakan opsi­opsi program klien  mysql untuk melakukan koneksi:
 Koneksi   ke   server  menggunakan  default  nama   komputer   dan default  username
tanpa password:
shell> mysql
  • Koneksi  ke server pada komputer  lokal  dengan nama user  'naufal',  dan meminta
mysql untuk menanyakan password Anda:
shell> mysql ­­host=localhost ­­password ­­user=naufal
  • Koneksi   ke   server   dengan   opsi   yang   sama   dengan   contoh   sebelumnya,   tetapi
menggunakan bentuk opsi singkat:
shell> mysql ­h localhost ­p ­u naufal
  • Koneksi ke server dengan IP address yang spesifik, dengan nama user  'naufal' dan
password 'rahasia':
shell> mysql ­­host=1 92. 1 68. 1 .33  ­­password=rahasia ­­user=naufal
  • Koneksi   ke   server   pada   localhost   dengan   default   username   dan   password   dan dengan mengkompress paket data yang lewat atau melintas antara  klien dan server
shell> mysql ­­host=localhost ­­compress

2.4. Database Secara Umum Dan Manipulasi Tabel

Setiap server MySQL memiliki suatu direktori data yang mana didalam direktori ini tabel­
tabel dan database berada  dan dikelola. Server merepresentasikan hal berikut ini:
  • MySQL menghubungkan masing­masing database dengan suatu direktori yang ada
didalam direktori data (ini berarti direktori data adalah direktori parent dari semua
direktori­direktori database). Sebuah direktori  database  memiliki nama yang sama
dengan nama  database   itu  sendiri.  Sebagai   contoh,   suatu database  diberi  nama
'sekolah'  maka  direktori  databasenya  juga memiliki  nama  'sekolah'  yang berada
dalam direktori  data.  MySQL menggunakan direktori  database  untuk mengatur
komponen­komponen database yakni tabel­tabel dan indek­indek. Sebuah database
bisa jadi kosong atau hanya berisi satu atau beberapa tabel. Database tidak beranak
atau tidak dapat memiliki sub­sub  database, dengan kata lain suatu database tidak
agi mengandung  atau berisi database lainnya didalamnya.
  • Setiap tabel dalam suatu database terdiri dari baris­baris dan kolom­kolom. Suatu
tabel bisa jadi kosong (tidak memiliki baris­baris  data atau record), tetapi minimal
harus memiliki  sebuah kolom.  Suatu  tabel  bisa  juga diindek agar  meningkatkan
performa   query.   Setiap   tabel   dihubungkan   dengan   sebuah   file
formaAUTO_INCREMENT,   diterapkan   pada   kolom­kolom  integer.   Digunakan
untuk menghasilkan integer dengan urutan nilai yang unik. Kolom demikian dalam
suatu tabel hanya ada satu.
  • BINARY, diterapkan pada CHAR dan VARCHAR
  • NULL dan NOT NULL, dapat diterapkan pada semua kolom
  • DEFAULT,  menyediakan   suatu   nilai   baku   dalam  kasus   tidak   ada   nilai   yang
diberikan.
  • PRIMARY KEY  dan  UNIQUEt   dalam  direktori   database   yang   berisi   definisi­
definisi  dan struktur­struktur   tabel   tersebut.  Nama dari   file  format  sama dengan
nama tabel ditambah akhiran .frm. Sebagai contoh, file format untuk tabel   pelajar
dalam database  sekolah  diberi  nama  pelajar.frm  dan diletakkan dalam direktori
sekolah yang berada dibawah direktori data server MySQL.   Bergantung pada tipe
tabel,  storage engine untuk suatu tabel biasanya akan membuat file­file tambahan
untuk   tabel   tersebut.
Jika   tabel  pelajar  memiliki   tipe  MyISAM,  maka  storage
engine  MyISAM  akan   membuat   file­file   data   dan   indek   yang   diberi   nama
pelajar.MYD dan pelajar.MYIyang masing­masing digunakan untuk menyimpan  yang ma            sing­masing digunakan untuk menyimpan baris­baris data dan indek­indek. Jika tabel pel            ajar memiliki tipe InnoDB, MySQL masih  membuat   suatu   file   format   pelajar.frm              dalam  direktori   database,   tetapi storage   engine   InnoDB menyimpan   tabel   data               dan   informasi   indeks     kedalam   InnoDB tablespace.

2.5 Storage Engine dan Tipe­tipe tabel
MySQL  mendukung   beberapa  storage   engine  yang   bertindak   sebagai   pengatur   untuk
berbagai   tipe   tabel   yang  berbeda.  Storage   engine  MySQL mencakup   keduanya     yang
mengatur tabel­tabel yang transaksinya aman   (transaction­safe),   dan   yang  mengatur   tabel­tabel   yang   transaksinya   tidak   aman (non­transaction­safe):
  • Storage engine asli adalah ISAM, yang menangani tabel­tabel non­transaksi (non­
transactional). Storage engine ISAM telah digantikan dengan MyISAM dan sudah
lama tidak digunakan lagi. Pada MySQL 4.1 storage engine ini sudah kuno, bahkan
pada MySQL 5.0 dihilangkan.

  • Storage engine MyISAM diperkenalkan pada MySQL 3.23.0. MyISAM merupakan
peningkatan untuk   menggantikan  ISAM.  MyISAM menangani   tabel­tabel  non­
transaksi   (non­transactional).  MyISAM  memberikan   kecepatan   dalam   proses
penyimpanan   dan   pengambilan,   begitu   juga   kemampuan­kemampuan   pencarian
keseluruhan teks (full­text). MyISAM didukung dalam seluruh konfigurasi MySQL,
dan   secara   default  MyISAM  menjadi   storage   engine   yang   digunakan   dalam
MySQL, kecuali jika Anda mengkonfigurasi MySQL menggunakan storage engien
yang lainnya.

  • Storage   engine  MEMORY menyediakan   tabel­tabel   in­memory.   Storage   engine
MERGE ditambahkan kedalam MySQL 3.23.25. Storage engine ini memungkinkan
sekumpulan tabel­tabel MyISAM yang  identik untuk dikelola sebagai  suatu tabel
tunggal.  Seperti  MyISAM,  Storage   engine  MEMORY dan  MERGE menangani
tabel­tabel   non­transasksi   (  non­transactional),   dan   keduanya   juga   disertakan
secara default dalam MySQL.
Catatan: Storage engine MEMORY pertama kali dikenal sebagai HEAP engine.

  • Storage  engine  InnoDB dan BDB yang menangani   tabel­tabel  transasction­safe
diperkenalkan   dalam   versi   MySQL   3.23   selanjutnya.BDB   disertakan   dalam
distribusi   binari  MySQL­Max   pada   sistem   operasi   –   sistem   operasi     yang
mendukungnya.   InnoDB   juga   disertakan   dalam  distribusi   binari  MySQL­Max
untuk MySQL 3.23.  Mulai  dengan MySQL 4.0,   InnoDB  telah disertakan secara
default dalam seluruh distribusi binari MySQL.  Dalam distribusi­distribusi source,
Anda dapat meng­enable atau men­disable storage engine ­ storage engine tersebut
dengan mengkonfigurasi MySQL sesuai dengan kebutuhan Anda.

  • NDB cluster  adalah  storage engine  yang digunakan oleh MySQL cluster  untuk
implementasi tabel­tabel yang terpisah di beberapa komputer.  Engine ini tersedia
dalam distribusi  source MySQL 4.1.2 dan distribusi    binari    MySQL­Max 4.1.3.
Storage  engine   ini   saat   ini  didukung hana  di  Linux,  Solaris,  dan Mac  OS X  .
MySQL berniat untuk mendukung engine ini pada platform sistem operasi lainnya
seperti MS Windows, dan dalam rilis MySQL mendatang.

  • Storage engine EXAMPLE adalah suatu sub engine yang tidak menangani apapun.
Anda dapat membuat tabel­tabel dengan engine ini, tetapi tidak ada data yang dapat
disimpan   atau  diambil  dalam  tabel   tersebut.  Engine  EXAMPLE  ini  disediakan
sebagai   contoh   dalam  kode   sumber  MySQL   yang  menggambarkan   bagaimana
memulai  membuat   storage engine baru.     Ini  umumnya untuk yang  tertarik atau
untuk para pengembang.

  • Storage   engine  ARCHIVE  digunakan   untuk   penyimpanan   sejumlah   besar   data
tanpa pengindekan dengan sebuah footprint yang sangat kecil.
Storage engine CSV menyimpan data dalam file teks dengan menggunakan tanda
koma sebagai format pemisah antar nilai­nilai dalam file teks tersebut.

  • Storage   engine  BLACKHOLE  menerima   tetapi   tidak  menyimpan   data,   selalu
mengembalikan  atau menampilkan sesuatu yang kosong.

  • Storage   engine  FEDERATED menyimpan   data   dalam  remote   database.  Dalam
MySQL   5.1,   storage   engine   ini   hanya   bekerja   dengan   MySQL,   dengan
menggunakan MySQL C client API. Dalam rilis masa depan, dimaksudkan untuk
memungkinkannya   untuk   terkoneksi   dengan   sumber   data   lainnya   dengan
menggunakan driver­driver atau metode­metode koneksi klien yang lainnya.

2.6 Opsi ­ Opsi Kolom
Dalam MySQL, pada waktu pertama membuat tabel, atau dikemudian waktu, Anda dapat
menambah,  merubah   opsi­opsi   kolom  tabel.  Opsi­opsi   kolom membatasi   data     agar
dimasukkan sesuai dengan opsi yang telah ditetapkan.
● UNSIGNED, membuat kolom tidak boleh memiliki nilai negatif
● ZEROFILL, mengisi lebar data yang ditampilkan dengan nol
● AUTO_INCREMENT,   diterapkan   pada   kolom­kolom   integer.   Digunakan   untuk
menghasilkan  integer dengan urutan nilai  yang unik.  Kolom demikian dalam suatu
tabel hanya ada satu.
● BINARY, diterapkan pada CHAR dan VARCHAR
● NULL dan NOT NULL, dapat diterapkan pada semua kolom
● DEFAULT, menyediakan suatu nilai baku dalam kasus tidak ada nilai yang diberikan.
● PRIMARY KEY dan UNIQUE

2.7 Membuat dan Menggunakan  Database

Sebelum   Anda   dapat   membuat   sebuah   tabel   Anda   harus   terlebih   dahulu   membuat
Database. Perintah SQL dapat Anda ketikkan dengan huruf besar maupun kecil. Hanya saja
di   sini   kita    menggunakan   huruf   besar   agar  Anda   lebih  mudah  membedakan   antara
perintah   SQL   dengan   objek­objek   lainnya.   Perlu   diingat,   setelah   selesai  mengetikkan
perintah   SQL  pada   prompt  MySQL,  Anda  wajib  mengetikkan  tanda   titik   koma   yang
menandakan akhir dari perintah SQL. Sintak penulisan perintah untuk membuat database
seperti berikut ini :
mysql> CREATE D ATABASE database_name;
Hal yang harus diperhatikan dalam penamaan database adalah nama  idak boleh menggunakan
kata­kata yang menjadi kosakata SQL seperti select karena hal itu akan membuat rancu. Perlu juga diperhatikan huruf besar atau huruf kecil sebuah nama database karena pada sistem UNIX huruf besar  dan huruf  kecil  dibedakan.  Pada contoh dibawah  ini  akan dibuat  database  dengan nama 'Perpustakaan' dan 'perpustakaan'.
Sesudah   Anda  membuat   suatu   database,   selanjutnya   jika   Anda   ingin   'perpustakaan'
menjadi database yang Anda akses saat ini maka Anda dapat mengakses database tersebut
dengan perintah sebagai berikut :
mysql>USE perpustakaan;

2.8. Manipulasi Table

2.8.1 Membuat table
Setelah  Anda  memilih  Database   barulah  Anda   dapat  membuat   sebuah   tabel,   Sintak
penulisan perintah membuat tabel sebagai berikut:
mysql> CREATE TABLE nama_tabel(
kolom1 tipe_data opsi_kolom,
kolom2 tipe_data opsi_kolom,
...........................,
kolomN tipe_data opsi_kolom,
PRIMARY KEY(nama_kolom),
INDEX (nama_kolom)
) type=tipe_tabel

2.8.2 Menghapus tabel
Untuk menghapus tabel gunakan perintah berikut ini:
mysql> DROP TABLE buku;
atau
mysql> DROP TABLE IF  EXIS T S buku;

2.8.3 Merubah tabel
ALTER TABLE memungkinkan Anda untuk merubah struktur tabel yang ada. Anda dapat
merubah tabel untuk keperluan:
  • Menambah atau menghapus kolom
  • Merubah nama atau definisi kolom
  • Menambah atau menghapus index
  • Menerapkan suatu susunan berbeda pada baris­baris
  • Merubah nama tabel

ALTER TABLE bekerja dengan cara membuat   salinan  tabel  dari   tabel  yang asli  yang
bersifat     sementara   (temporer).   Proses   perubahan   tabel   dilakukan   pada   tabel   salinan, kemudian  tabel  asli  dihapus,  dan yang baru dirubah namanya.    Ketika perintah ALTER TABLE   sedang   dieksekusi,   tabel   asli   masih   dapat   dibaca   oleh   klien­klien.   Proses perubahan   dan   penulisan   terhadap   tabel   dihentikan   sampai   tabel   yang   baru   siap,   dan kemudian   secara   otomatis   diarahkan   ke   tabel   baru   tanpa   kegagalan   dalam   proses perubahan.
Gunakan keyword MODIFY atau CHANGE,jika Anda akan melakukan perubahan  tipe data kolom. MODIFY dan CHANGE memiliki fungsi yang sama yaitu merubah tipe data
kolom, hanya saja dengan CHANGE memungkinkan nama kolom juga dapat dirubah.

2.8.4 Merubah nama tabel
RENAME merubah nama tabel, dan juga bekerja dalam perintah ALTER TABLE:
 
Merubah beberapa nama tabel sekaligus dapat dilakukan dengan satu perintah saja dimana
tabel­tabel dipisahakan dengan tanda koma, seperti berikut
 

Merubah  tipe dan opsi  kolom  tabel  dapat  dilakukan  juga   bersamaan dengan merubah
nama tabel dalam satu perintah seperti berikut ini:


0 komentar:

Posting Komentar