My
SQL
MySQL adalah sebuah sistem
manajemen database relasi yang bersifat “terbuka” (open source). Terbuka
maksudnya adalah MySQL boleh didownload oleh siapa saja, baik versi kode
program aslinya (source code program) maupun versi binernya (executable
program) dan bisa digunakan secara gratis baik untuk dimodifikasi sesuai dengan
kebutuhan seseorang maupun sebagai suatu program aplikasi komputer. Sejarah
MySQL yang merupakan hasil buah pikiran dari Michael “Monty” Widenius, David
Axmark, dan Allan Larson dimulai tahun 1995. Mereka bertiga kemudian mendirikan
perusahaan bernama MySQL AB di Swedia. MySQL memiliki kinerja, kecepatan
proses, dan ketangguhan yang tidak kalah dibandingkan dengan database-database
besar lainnya yang komersil seperti ORACLE, Sybase, Unify dan sebagainya.
Dengan bersemangatkan Open Source, MySQL berkembang menjadi salah satu sistem
manajemen database relasi terkemuka yang diakui secara Internasional. MySQL
menggunakan bahasa standar SQL (Structure Query Language) sebagai bahasa
interaktif dalam mengelola data. Perintah SQL sering juga disebut Query.
Tipe-Tipe
Data My SQL
Secara
umum tipe data pada MySQL dibagi menjadi 4 yaitu:
1.
Numeric Values yaitu angka atau bilangan
seperti 10; 123; 100.50; -10; 1.2E+17; 2.7e-11; dan sebagainya. Tipe data ini
dibagi menjadi dua yaitu Bilangan Bulat (Integer) dan Bilangan Pecahan
(Floating-point). Bilangan bulat adalah bilangan tanpa tanda desimal sedangkan
bilangan pecahan adalah bilangan dengan tanda desimal. Kedua jenis bilangan ini
dapat bernilai positif (+) dan juga negatif (-). Jika bilangan tersebut
menggunakan tanda positif (+) atau (-), maka disebut SIGNED. Sebaliknya bila
tanpa tanda apapun disebut UNSIGNED. Karena tanda positif (+) dapat diabaikan
penulisannya maka pada bilangan yang bernilai positif disebut UNSIGNED.
2.
String/Character Values adalah semua karakter
(atau teks) yang penulisannya selalu diapit oleh tanda kutip baik kutip tunggal
(‘) maupun kutip ganda (“). Hal ini tidak hanya berlaku pada huruf alfabet saja
tetapi angka yang ditulis dengan tanda kutip pun akan menjadi karakter atau
string.
3.
Date and Time Values yaitu tanggal dan waktu.
Untuk jenis data tanggal dan waktu format standar (default) penulisan
tanggalnya adalah “tahun-bulan-tanggal”, Misalnya untuk 22 Januari 2001
dituliskan “2002-01-22”. Untuk penulisan waktu, formatnya adalah
“jam-menit-detik”. Contoh, “13:55:07”. Data tanggal dan waktu bisa digabung
penulisannya menjadi “2002-01-22 13:55:07”.
4.
NULL. NULL sebenarnya bukan data, tapi dia
mewakili sesuatu yang “tidak pasti”, “tidak diketahui” atau “belum ada
nilainya”. Sebagai contoh dalam kehidupan sehari-hari Anda melakukan suatu
survei berapa jumlah pengguna sistem operasi LINUX dan Windows di Indonesia.
Selama survei belum tuntas maka data pastinya belum dapat diketahui. Oleh sebab
itu, data tersebut bisa diwakili dengan NULL, alias belum diketahui.
Pada
tipe-tipe data MySQL terdapat beberapa atribut yang memiliki arti sebagai
berikut:
·
M, menunjukkan lebar karakter maksimum.
Nilai M maksimum adalah 255.
·
D, menunjukkan jumlah angka di belakang
koma. Nilai maksimum D adalah 30 tetapi dibatasi oleh nilai M, yaitu tidak
boleh lebih besar daripada M-2.
·
Atribut yang diberi tanda [ dan ] berarti
pemakaiannya adalah optional.
·
Jika atribut ZEROFILL disertakan, MySQL akan
otomatis menambahkan atribut UNSIGNED.
·
UNSIGNED adalah bilangan tanpa tanda di
depannya (misalnya tanda negatif).
Berikut
tipe-tipe data yang didukung oleh MySQL, antara lain:
1.
Tipe data untuk bilangan
No
|
Tipe Data
|
Bentuk Dasar Penulisan
|
Keterangan
|
Ukuran
|
1.
|
TINYINT
|
TINYINT [(M)] [UNSIGNED] [ZEROFILL]
|
Digunakan
untuk menyimpan data bilangan bulat positif dan negatif.
Bilangan
bulat terkecil, dengan jangkauan untuk bilangan bertanda -128 sampai dengan
127 dan untuk yang tidak bertanda 0 sampai dengan 255. Bilangan tak bertanda
ditandai dengan kata UNSIGNED
|
1 byte
|
2.
|
SMALLINT
|
SMALLINT [(M)] [UNSIGNED] [ZEROFILL]
|
Digunakan
untuk menyimpan data bilangan bulat positif dan negatif.
Jangkauan
untuk bilangan bertanda -32768 sampai dengan 32767 dan untuk yang tidak
bertanda (jangkauan unsigned) 0 sampai dengan 65535
|
2 byte
|
3.
|
MEDIUMNIT
|
MEDIUMINT [(M)] [UNSIGNED] [ZEROFILL]
|
Digunakan
untuk menyimpan data bilangan bulat positif dan negatif.
Jangkauan
untuk bilangan bertanda -8388608 sampai dengan 8388607 dan untuk yang
tidak bertanda (jangkauan unsigned) 0 sampai dengan 16777215
|
3 byte
|
4.
|
INT
|
INT [(M)] [UNSIGNED] [ZEROFILL]
|
Digunakan
untuk menyimpan data bilangan bulat positif dan negatif .
Jangkauan
untuk bilangan bertanda -2147483648 sampai dengan 2147483647 dan untuk yang
tidak bertandan (jangkauan usigned) 0 sampai dengan 4294967295
|
4 byte
|
5.
|
INTEGER [(M)] [UNSIGNED] [ZEROFILL]
|
Sama
dengan INT.
|
||
6.
|
BIGINT
|
BIGINT [(M)] [UNSIGNED] [ZEROFILL]
|
Digunakan
untuk menyimpan data bilangan bulat positif dan negatif .
Jangkauan
untuk bilangan bertanda -9223372036854775808 sampai dengan 9223372036854775807
dan untuk yang tidak bertanda 0 sampai dengan
184467440737079551615 |
8 byte.
|
7.
|
FLOAT
|
FLOAT [(M,D)] [ZEROFILL]
|
Digunakan
untuk menyimpan data bilangan pecahan positif dan negatif presisi tunggal.
Jangkauan:
-3.402823466E+38 s/d -1.175494351E-38, 0, dan 1.175494351E-38 s/d
3.402823466E+38
|
4 byte
|
8.
|
DOUBLE
|
DOUBLE [(M,D)] [ZEROFILL]
|
Digunakan
untuk menyimpan data bilangan pecahan positif dan negatif presisi ganda.
Tidak
dapat bersifat unsigned.
Nilai
yang diijinkan adalah -1.7976931348623157E+308 hingga
-2.2250738585072014E-308 untuk nilai negatif, 0, dan 2.2250738585072014E-308
hingga 1.7976931348623157E+308 untuk nilai positif.
|
8 byte
|
9.
|
DOUBLE PRECISION [(M,D)] [ZEROFILL]
|
Bilangan
pecahan berpresisi
ganda. |
8 byte.
|
|
10.
|
REAL [(M,D)] [ZEROFILL]
|
Sinonim
dari DOUBLE.
|
8 byte.
|
|
11.
|
DECIMAL
|
DECIMAL [(M,D)] [ZEROFILL]
|
Digunakan
untuk menyimpan data bilangan pecahan positif dan negatif.
Misalnya
DECIMAL(5,2) dapat digunakan untuk menyimpan bilangan -99,99 sampai dengan
99,99 |
M byte
|
12.
|
NUMERIC [(M,D)] [ZEROFILL]
|
Sama
dengan Decimal.
|
M byte.
|
2.
Tipe data untuk tanggal dan jam
No
|
Tipe
Data |
Bentuk Dasar Penulisan
|
Keterangan
|
Ukuran
|
1.
|
DATETIME
|
Kombinasi
tanggal dan waktu
dengan jangkauan dari ‘1000-01-01 00:00:00’ sampai dengan ‘9999-12-31 23:59:59’ |
8 byte.
|
|
2.
|
DATE
|
Kombinasi
tanggal dan waktu
dengan jangkauan dari ‘1000-01-01’ sampai dengan ‘9999-12-31 ’ |
8 byte.
|
|
3.
|
TIMESTAMP
|
TIMESTAMP [(M)]
|
Kombinasi
tanggal dan waktu
dengan jangkauan dari ‘1970-01-01’ sampai dengan ‘2037 ’ |
4 byte.
|
4.
|
TIME
|
Digunakan
untukmenyimpan waktu dengan jangkauan dari
-838:59:59 sampai dengan 838:59:59 |
3 byte.
|
|
5.
|
YEAR
|
Digunakan
untuk menyimpan data tahun dari tanggal antara 1901 sampai dengan 2155
|
1 byte
|
3.
Tipe data untuk karakter dan lain-lain
No
|
Tipe
Data |
Bentuk Dasar Penulisan
|
Keterangan
|
Ukuran
|
1.
|
CHAR
|
CHAR(M) [BINARY]
|
Data
string dengan panjang yang tetap. CHAR(1) cukup ditulis dengan CHAR.
1<=M<=255, Jika ada sisa, maka sisa tersebut diisi dengan spasi
(misalnya nilai M adalah 10, tapi data yang disimpan hanya memiliki 7
karakter, maka 3 karakter sisanya diisi dengan spasi). Spasi ini akan
dihilangkan apabila data dipanggil. Nilai dari CHAR akan disortir dan
diperbandingkan secara case-insensitive menurut default character set yang
tersedia, kecuali bila atribut BINARY disertakan.
|
M byte.
|
2.
|
VARCHAR
|
VARCHAR (M)
[BINARY]
|
Ukuran
L+1 byte dengan L<=M dan
1<=M<=255. Data string dengan panjang bervariasi tergantung datanya. Jika nilai M adalah 10 sedangkan data yang disimpan hanya terdiri dari 5 karakter, maka lebar data tersebut hanya 5 karakter saja, tidak ada tambahan spasi. |
L+1 byte
|
3.
|
TINYBLOB,
TINYTEXT
|
L+1
byte, dengan L<28 . Tipe
TEXT atau BLOB dengan panjang maksimum 255 karakter. |
L+1 byte
|
|
4.
|
BLOB,
TEXT
|
L+2
byte, dengan L<216 . Tipe
TEXT atau BLOB dengan panjang maksimum 65535 karakter. |
L+2 byte
|
|
5.
|
MEDIUMBLOB, MEDIUMTEXT
|
L+3
byte, dengan L<224. Tipe
TEXT atau BLOB dengan panjang maksimum 1677215 karakter. |
L+3 byte
|
|
6.
|
LONGBLOB, LONGTEXT
|
L+4
byte, dengan L<232. Tipe
TEXT atau BLOB dengan panjang maksimum 4294967295 karakter. |
L+4 byte
|
|
7.
|
ENUM
|
ENUM(’nilai1’,’nilai2’,..)
|
Ukuran
1 atau 2 byte tergantung nilai
enumerasinya maks 65535 nilai |
1 atau 2 byte
|
8.
|
SET
|
SET(’nilai1’,’nilai2’,..)
|
Ukuran
1,2,3,4 atau 8 byte tergantung jumlah anggota himpunan maks 64 anggota.
|
1,2,3,4 atau 8 byte
|
Tipe-tipe yang didukung
MySQL di atas dapat menjadi pilihan dalam penyusunan database. Sebagai contoh,
jika kita hendak menyimpan data jumlah suatu stok barang yang tidak melebihi
angka 200 misalnya, maka sebaiknya memilih tipe data TINYINT yang diberi
atribut UNSIGNED. Alasannya adalah jumlah stok tidak melebihi 200 dan tidak
mungkin lebih kecil dari 0, dan tipe data TINYINT memiliki jangkauan 0 hingga
255, jadi memenuhi syarat untuk digunakan.
Contoh yang lain, misalnya
kita hendak membuat database nomor telpon dari teman-teman kita. Memang nomor
telpon seluruhnya terdiri dari angka, namun nampaknya tidak tepat bila disimpan
dalam tipe data INT (atau bahkan BIGINT bila hendak menyimpan nomor handphone).
Lebih baik dimasukkan ke dalam CHAR atau VARCHAR dengan M adalah 12. Mengapa
12? Karena nomor handphone terpanjang terdiri dari 12 digit. Sedangkan nomor
telpon rumah terpanjang adalah 8 digit ditambah kode area terpanjang 4 digit,
jadi angka 12 sangat pas.
Lalu bagaimana penerapannya
dalam operasi MySQL? Misalnya kita hendak membuat tabel stok barang dengan
masing-masing field adalah kode barang, nama barang, harga barang, supplier,
dan tanggal beli, maka kemungkinan perintah yang harus ditulis adalah sebagai
berikut:
MySQL>
create table stok
-> kode char(5),
-> nama varchar(20),
-> harga mediumint unsigned,
-> supplier char(5),
-> tanggal date);
-> kode char(5),
-> nama varchar(20),
-> harga mediumint unsigned,
-> supplier char(5),
-> tanggal date);
Perintah tersebut di atas akan membuat tabel
bernama stok dengan field-field sebagai berikut:
Nama
field
|
Tipe
data
|
Keterangan
|
Kode
|
Char(5)
|
Kode
barang biasanya memiliki jumlah karakter tetap, dalam contoh ini adalah 5.
|
Nama
|
Varchar(20)
|
Nama
barang kemungkinan besar memiliki jumlah karakter yang berbeda-beda, sehingga
cocok menggunakan varchar.
|
Harga
|
Mediumint
Unsigned
|
Harga
tergantung dari jenis barangnya, pada contoh ini dianggap harga barang
tertinggi di bawah 100 jutaan.
|
Pemilihan Tipe Data Memiliki Peranan Penting Dalam
Database
Database
merupakan bagian penting pada pembangunan sebuah proyek sistem informasi baik
skala enterprise maupun small bussiness sebab, database server pada dasarnya
digunakan sebagai media penyimpanan data
yang digunakan secara bersama-sama sebagai supply data request user. Sebelum
memutuskan menggunakan sebuah database server hal yang terpenting adalah
bagaimana mengetahui performance database tersebut.
Performa database tidak bisa diukur
dengan cara melihat tingkat popularitas pengguna database lalu, bukankah
popularitas pengguna bisa digunakan sebagai tolak ukur performance sebuah
database ?. besarnya jumlah pengguna sebuah database open source bisa digunakan
sebagai sumber referensi pemilihan database. Setiap perancang database
mempunyai cara masing-masing untuk memilih kriteria database server sesuai
dengan kebutuhan tetapi, ada beberapa pertimbangan dasar dalam memilih sebuah
database.
Salah satu peranan penting dalam suatu pembuatan database
adalah dengan memilih tipe data yang tepat pada setiap atribut/kolomnya. Dengan
pemilihan tipe data yang tepat sesuai dengan keperluan serta kapasitas memory
yang telah di sediakan, ini dapat meningkatkan kinerja suatu database dalam
proses pengambilan data dan menghemat kapasitas yang nantinya bisa di gunakan
untuk keperluan lain.
Cara Memperpanjang Suatu Sistem Dari Segi Data Dalam
Database
Database
pada dasarnya suatu sistem yang digunakan untuk media penyimpanan suatu data
yang digunakan secara bersama-sama sebagai supply data request user. Tentunya dalam
pembuatan suatu sistem database harus dibuat secara tepat karena akan digunakan
untuk kelangsungan yang lama. Agar suatu sistem database tetap berjalan dengan
semestinya, kita harus melakukan beberapa metode untuk memperpanjang suatu
sistem database tersebut. Berikut ini adalah cara memperpanjang suatu sistem
dari segi data dalam database :
- Backup
Proses
secara periodik untuk mebuat duplikat dari database dan melakukan
logging
file (atau program) ke media penyimpanan eksternal.
- Jurnaling
Proses
menyimpan dan mengatur log file dari semua perubahan yang dibuat di
database
untuk proses recovery yang efektif jika terjadi kesalahan.
- Record
Checkpoint
Suatu
informasi pada jurnal untuk memulihkan database dari kegagalan, kalau sekedar
redo, akan sulit penyimpanan sejauh mana jurnal untuk mencarinya kembali, maka
untuk membatasi pencarian menggunakan teknik ini.
DAFTAR PUSTAKA
Arbie.2004. Manajemen Database dengan MYSQL.
Yogyakarta:Penerbit Andi Yogyakarta.
Tubagus. Tipe-Tipe Data yang Didukung MSQL. http://tubagus.dosen.narotama.ac.id/2012/04/13/tipe-tipe-data-yang-didukung-mysql/, diakses tanggal 24 Februari 2016
pukul 21.00 WITA.
Novhard. Tipe Data MySQL.http://novhard.wordpress.com/2007/07/24/tipe-data-mysql/, diakses tanggal 24 Februari 2016
pukul 21.00 WITA.
Andrianto,
Irfan. Memilih Database yang Tepat. http://puruhitas.blog.uns.ac.id/2016/01/25/memilih-database-yang-tepat/,
diakses tanggal 24 Februari 2016 pukul 21.33 WITA.
Noname. Pengamanan Sistem Basis Data. https://rumahradhen.wordpress.com/materi-kuliahku/semester-ii/sistem-keamanan-komputer/pengamanan-sistem-basis-data/
, diakses tanggal 24 Februari 2016 pukul 21.41 WITA.
Download > download
0 komentar:
Posting Komentar
Pengunjung yang baik adalah pengunjung yang meninggalkan komentar teman :)