MySQL Database Management System

Oleh: M. Ghazali a.k.a ghaNOZ 2480

 

PENDAHULUAN

Sistem adalah sebuah tatanan (keterpaduan) yang terdiri atas sejumlah komponen fungsional (dengan tugas khusus) yang saling berhubungan dan secara bersama-sama bertujuan untuk memenuhi suatu proses/pekerjaan tertentu.

 

Untuk mengelola basis data dibutuhkan gabungan antara basis data dan pengelolanya (program/aplikasi software) yang menghasilkan sebuah sistem yaitu sistem basis data. Dalam sebuah sistem basis data akan terdapat komponen-komponen utama seperti perangkat keras, sistem operasi, basis data, Database Management System (DBMS), pemakai (user), aplikasi (perangkat lunak) lain.

 

Pada tulisan ini akan dibahas mengenai salah satu komponen dari sistem basis data yaitu Database Management System (DBMS). Dalam pengelolaannya basis data ditangani oleh sebuah Perangkat Lunak (Sistem) yang khusus/spesifik, perangkat lunak ini disebut DBMS, yang akan menentukan bagaimanan data diorganisasi, di simpan, dan diambil kembali. Selain itu DBMS juga menerapkan mekanisme pengamanan data, pemakaian data secara bersama, menjaga keakuratan data/konsistensi data, dan sebagainya.

 

PERANGKAT LUNAK YANG TERMASUK DBMS

Berikut di bawah ini adalah beberapa perangkat lunak yang termasuk DBMS:

  • Untuk kelas sederhana

dBase IV, FoxBase, Rbase, MS-Access, dan Borland Paradox,

  • Untuk kelas berat/kompleks

Borland-Interbase, MS-SQL Server, CA-Open Ingres, Oracle, Informix, MySQL , dan Sybase.

 

MySQL

MySQL adalah sebuah database relasional gratis dan open source (GPL) yang mula-mula tersedia di Unix/Linux namun kini tersedia juga di sistem operasi Windows. MySQL mulai popular sejak pertengahan 1990-an saat Web dan aplikasi web mulai popular. Kala itu, selain mySQL, tidak ada alternatif database lain yang cepat, stabil, dan memiliki fitur-fitur yang cukup untuk bisa dijadikan database pendukung aplikasi web. Hingga kini MySQL terus bertahan sebagai database open source yang paling popular mengalahkan PostgreSQL, Interbase/Firebird, dan lain sebagainya. MySQL mudah diinstal, mudah dipakai dan dapat dikonek dari berbagai bahasa pemrograman. Singkat kata, amat aksesibel bagi rata-rata pengguna database.

 

Kekuatan utama MySQL adalah pada kecepatannya, terutama untuk kecepatan koneksi (overhead koneksi yang rendah) dan kecepatannya untuk query-query yang sederhana dan juga cukup mudah untuk digunakan. Hal ini membuatnya cocok dipakai sebagai backend untuk aplikasi web termasuk berbasis CGI.

 

FITUR UTAMA MySQL

Berikut di bawah adalah daftar yang menjelaskan karakteristik yang menarik dari MySQL Database Software.

 

Internals and Portability

  • Ditulis dalam bahasa C dan C++.
  • Telah diuji dengan suatu jangkauan luas dari  compiler yang berbeda.
  • Bekerja pada banyak platform berbeda.
  • Penggunaan GNU Automake, Autoconf, dan Libtool untuk portabilitas.
  • Tersedianya APIs untuk C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, dan Tcl.
  • Multi-threaded secara penuh menggunakan kernel threads. Sehingga dapat dengan mudah menggunakan multiple CPUs jika mereka ada tersedia.
  • Menyediakan transactional and non-transactional dalam penyimpanan.
  • Menggunakan B-Tree Tabel Disk yang sangat cepat ( MyISAM) dengan index compression.
  • Relatif mudah untuk menambahkan tempat penyimpanan yang lain. Ini sangat bermanfaat jika ingin menambahkan suatu SQL yang terhubung ke suatu database in-house.
  • Sistem alokasi memori thread-based yang sangat cepat.
  • Penggabungan yang sangat cepat dengan menggunakan optimized one-sweep multi-join.
  • In-memory hash tables, yang digunakan sebagai tabel temporer.
  • Fungsi-fungsi SQL diimplementasikan dengan perpustakaan kelas yang sangat optimal. Pada umumnya tidak ada alokasi memori sama sekali setelah query initialisasi.
  • MySQL Kode diuji dengan Purify (suatu pendeteksi kebocoran memori) seperti halnya dengan Valgrind, suatu GPL alat ( http://developer.kde.org/~sewardj/).
  • Server tersedia sebagai program terpisah untuk digunakan di lingkungan jaringan client/server.
  • Tersedia juga sebagai library yang dapat di-embedded yang dihubungkan ke dalam aplikasi standalone. Seperti aplikasi dapat digunakan di dalam lingkungan di mana jaringan tidak tersedia.

 

Tipe Data (Data Types)

  • Banyak jenis data: signed/unsigned integers 1, 2, 3, 4, dan 8 bytes long, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET, ENUM, dan OpenGIS spatial types.
  • Fixed-length and variable-length records.

 

Statemen dan fungsi

  • Mendukung penuh operator dan fungsi dalam SELECT dan WHERE klausa dalam query.
  • Mendukung penuh untuk GROUP BY dan ORDER BY klausa. Mendukung untuk group functions (COUNT(), COUNT(DISTINCT …), AVG(), STD(), SUM(), MAX(), MIN(), dan GROUP_CONCAT()).
  • Mendukung untuk LEFT OUTER JOIN dan RIGHT OUTER JOIN dengan standar SQL dan sintaksis ODBC.
  • Mendukung untuk alias pada tabel dan kolom ketika diperlukan oleh SQL standar.
  • DELETE, INSERT, REPLACE, dan UPDATE mengembalikan banyaknya baris yang telah diubah ( yang terpengaruh). Dapat  mengembalikan banyaknya baris yang sama selain dengan pengaturan suatu bendera ketika dihubungkan kepada server.
  • Statemen MySQL-specific SHOW dapat digunakan untuk mendapat kembali informasi tentang database, storeage engines, tabel, dan index.
  • SHOW statemen dapat digunakan untuk menentukan bagaimana optimizer memecahkan suatu query.
  • Dapat menggabungkan tabel dari database yang berbeda di dalam query yang sama ( mulai dari MySQL 3.22).

 

Keamanan (Security)

  • Perlakuan khusus (privilege) dan sistem password yang fleksibel dan aman, dan memperbolehkan verifikasi host-based. Password aman sebab semua password traffic dalam keadaaan terenkripsi ketika dihubungkan ke suatu server.

 

Skalabilitas dan Batas (Scalability and Limits)

  • Dapat menangani database yang besar.
  • Jumlah index diatas 64 per tabel diperbolehkan ( 32 sebelum MySQL 4.1.2).  Masing-Masing i boleh terdiri dari 1 sampai 16 kolom atau bagian-bagian dari kolom. Lebar Index maksimumnya adalah 1000 bytes (767 untuk InnoDB); [sebelum MySQL 4.1.2, batasnya adalah 500 bytes. Suatu index boleh menggunakan suatu awalan suatu kolom untuk CHAR, VARCHAR, BLOB, atau jenis kolom TEXT.

 

Konektivitas (Connectivity)

  • Klien dapat menghubungkan pada MySQL server menggunakan TCP/IP socket pada platform manapun. Pada sistem Windoes pada NT family (NT, 2000, XP, 2003, or Vista), klien dapat menghubungkan penggunaan pipes. Pada Sistem Unix, klien dapat menghubungkan menggunakan file-file Unix domain socket.
  • Pada Mysql 4.1 dan atau versi lebih tinggi, server Windows juga mendukung koneksi shared-memory jika dimulai dengan pilihan –shared-memory . Klien dapat terhubung melalui pembagian memori dengan menggunakan pilihan –protocol=memory.
  • Connector/ODBC ( MyODBC) menyediakan interface MySQL untuk mendukung program klien yang menggunakan  koneksi ODBC (Open Database Connectivity). Sebagai contoh, dapat digunakan MS Access untuk terhubung ke MySQL Server Anda. Klien dapat dijalankan di Windows atau Unix.
  • Connector/J Alat menyediakan interface Mysql untuk mendukung program klien program Java yang menggunakan koneksi JDBC. Klien dapat dijalankan di Windows atau Unix.
  • MySQL Connector/NET memungkinkan pengembang untuk dengan mudah menciptakan aplikasi .NET yang memerlukan keamanan, performa tinggi dalam konektivitas data dengan MySQL.

 

STABILITAS MySQL

Kode yang asli  pada awal 1980-an. Menyediakan code base yang stabil, dan format tabel ISAM yang digunakan oleh storage engine yang asli tetap backward-compatible. Pada TcX, pendahulu MySQL AB, kode MySQL telah bekerja dalam proyek sejak pertengahan 1996, tanpa suatu masalah. Ketika MySQL database yang pada awalnya telah dilepaskan untuk umum, para pemakai baru yang dengan cepat mendapat beberapa potongan yang dari kode yang belum diuji. Masing-masing release baru sejak mempunyai lebih sedikit permasalahan portabilitas, meskipun masing-masing release-an baru juga telah mempunyai banyak memiliki fitur yang baru.

 

Dalam setiap release Mysql Server telah dapat dipakai. Permasalahan terjadi hanya ketika para pemakai mencoba kode dari “gray zone”. Yang secara alami, para pemakai baru tidak mengetahui apa itu “gray zone”.

 

MySQL Server design adalah multi-layered dengan modul mandiri. Sebagian dari modul yang lebih baru didaftarkan di sini dengan suatu indikasi seberapa baik pengujian yang dilakukan:

  • Replikasi (Stabil)

Kelompok besar penggunaan server yang menggunakan replikasi dalam penggunaan produksi, dengan hasil baik. Bekerja pada peningkatan fitur replikasi terus berlannjut.

  • InnoDB tables (Stabil)

Transaksi storeage engine Innodb telah stabil sejak versi 3.23.49. Innodb digunakan besar, sistem produksi muatan berat.

  • Full-text searches (Stabil)

Full-text searching secara luas digunakan. Peningkatan fitur penting telah ditambahkan pada Mysql 4.0 dan 4.1.

  • MyODBC 3.51 (Stabil)

Myodbc 3.51 menggunakan ODBC SDK 3.51 dan dalam penggunaan produksi yang lebar/luas. Beberapa isu nampak terlihat seperti terkait dengan aplikasi dan tidak terikat pada ODBC pengarah atau mendasari server database.

 

SEBERAPA BESAR TABEL PADA MySQL

MySQL 3.22 mempunyai batas banyaknya tabel sampai 4GB ( 4 gigabyte). Dengan MyISAM storage engine di MySQL 3.23, batas ukuran tabel maksimum telah ditingkatkan sampai 65536 terabytes ( 2567-1 bytes). Banyaknya tabel efektif yang maksimum untuk MySQL database pada umumnya ditentukan oleh batasan sistem operasi pada besarnya file, bukan oleh batas pada MySQL.

 

PENUTUP

Diatas tadi merupakan fitur-fitur yang dimiliki oleh MySQL yang merupakan perangkat lunak DBMS (Database Management System). Tampaknya masih banyak kekurangan dari tulisan yang saya buat. Dan masih terbatasnya referensi yang saya baca. Semoga tulisan ini bermanfaat bagi Anda yang membacanya.

 

REFERENSI

  1. Fathansyah, ”BASIS DATA”, Penerbit INFORMATIKA, Bandung, 1999
  2. Haryanto, Steven, ”SQL, Kumpulan Resep Menggunakan MySQL”, DIAN RAKYAT,  Jakarta, 2005
  3. MySQL 5.1 Reference Manual

2 thoughts on “MySQL Database Management System

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s