Pengantar MySQL
4.1 Menamai
Elemen-Elemen Database
Sebelum Anda
mulai bekerja dengan database, Anda perlu mengidentifikasi kebutuhan Anda.
Tujuan dari aplikasi (atau situs Web, pada kasus ini) mendiktasi bagaimana
database sebaiknya didesain. Dengan pemahaman ini, contoh-contoh pada bab ini
dan pada bab selanjutnya akan menggunakan sebuah database yang menyimpan
beberapa informasi registrasi user.
Ketika
menciptakan database dan tabel, Anda memerlukan nama (atau secara formal
dikenal dengan pengenal) yang jelas, berarti, dan mudah dikenali. Selain itu,
pengenal
·
harus memuat
huruf, angka, dan garis-bawah.
·
harus tidak
sama dengan katakunci yang ada (seperti nama fungsi atau terminologi pada SQL).
·
berwatak
case-sensitive.
·
tidak lebih
panjang dari 64 karakter.
·
harus unik.
Aturan terakhir
tersebut berarti bahwa sebuah tabel tidak bisa memiliki dua kolom dengan nama
sama dan sebuah database tidak bisa memilki dua tabel dengan nama sama. Anda
bisa menggunakan nama kolom sama pada dua tabel yang berbeda di dalam database
yang sama.
Menamai elemen-elemen database
1. Tentukan nama database. Ini merupakan langkah paling mudah. Anda hanya
perlu memastikan bahwa nama harus unik. Jika Anda menggunakan server host, host
Web Anda akan menyediakan sebuah nama database yang tidak sama dengan nama akun
atau nama domain. Untuk contoh pertama ini, database akan dinamai dengan namasitus.
2. Tentukan nama tabel. Nama tabel harus unik di dalam database ini. Untuk
contoh ini, tabel dinamai dengan pengguna,
yang menyimpan semua informasi tentang registrasi user.
3. Tentukan nama kolom untuk tiap tabel. Tabel pengguna akan memiliki beberapa kolom untuk menyimpan ID user, nama
depan, nama belakang, alamat email, password, dan tanggal registrasi. Tabel 4.1
menunjukkan kolom-kolom ini, dengan data contoh. Karena MySQL memiliki fungsi
dengan nama password, Anda perlu
mengubah nama kolom password menjadi pass.
TABEL 4.1 Tabel pengguna akan memiliki enam kolom untuk
menyimpan rekaman-rekaman seperti data contoh di sini.
Nama Kolom
|
Contoh
|
id_user
|
23
|
nama_depan
|
kristof
|
nama_belakang
|
sintong
|
email
|
id@gmail.com
|
pass
|
kritof2014
|
tanggal_registrasi
|
2014-12-31 19:21:03
|
4.2
Memilih Tipe Kolom
Setelah Anda
mengidentifikasi semua tabel dan kolom yang diperlukan oleh database, Anda
perlu menentukan tipe data tiap kolom. Ketika menciptakan sebuah tabel, MySQL
mensyaratkan bahwa Anda perlu secara eksplisit menyatakan jenis informasi yang
akan disimpan pada tiap kolom. Ada tiga tipe primer, yang ada pada tiap
aplikasi database:
·
Text
·
Number
·
Date dan Time
Di dalam tiap
tipe data primer tersebut, ada sejumlah varian yang dapat Anda gunakan. Dengan
memilih tipe data pada kolom secara benar, Anda tidak hanya mendiktasi
informasi apa yang dapat disimpan tetapi juga bagaimana tipe data ini
memengaruhi kinerja dari database. Tabel 4.2 mencantumkan sejumlah tipe data
yang tersebut pada MySQL, berapa banyak ruang memori yang dibutuhkan, dan
penjelasan singkat dari tiap tipe data.
TABEL 4.2 Sejumlah tipe
data pada MySQL yang dapat digunakan untuk mendefinisikan kolom. Perhatian: ada
beberapa tipe data yang tersedia pada versi tertentu dari MySQL.
Tipe Data
|
Ukuran
|
Penjelasan
|
CHAR[pjg]
|
sebanyak pjg byte
|
Sebuah bidang panjang-tetap dari 0 sampai 255 karakter.
|
VARCHAR[pjg]
|
Panjang string + 1 atau 2 byte
|
Sebuah bidang panjang-variabel dari 0 sampai 65535
karakter.
|
TINYTEXT
|
Panjang string + 1 byte
|
Sebuah string dengan panjang maksimum 255 karakter.
|
TEXT
|
Panjang string + 2 byte
|
Sebuah string dengan panjang maksimum 65535 karakter.
|
MEDIUMTEXT
|
Panjang string + 3 byte
|
Sebuah string
dengan panjang maksimum 16777215 karakter.
|
LONGTEXT
|
Panjang string + 4 byte
|
Sebuah string
dengan panjang maksimum 4294967295 karakter.
|
TINYINT[pjg]
|
1 byte
|
Rentang dari -128 sampai 127 atau 0 sampai 255 (unsigned)
|
SMALLINT[pjg]
|
2 byte
|
Rentang dari -32768 sampai 32767 atau 0 sampai 65535
(unsigned)
|
MEDIUMINT[pjg]
|
3 byte
|
Rentang dari -8388608 sampai 8388607 atau 0 sampai
16777215 (unsigned)
|
INT[pjg]
|
4 byte
|
Rentang dari -2147483648 sampai 2147483647 atau 0 sampai
4294967295 (unsigned)
|
BIGINT[pjg]
|
8 byte
|
Rentang dari –9223372036854775808
sampai 9223372036854775807 atau 0 sampai 18446744073709551615 (unsigned)
|
FLOAT[pjg, desimal]
|
4 byte
|
Angka kecil dengan titik desimal
|
DOUBLE[pjg, desimal]
|
8 byte
|
Angka besar dengan titik desimal
|
DECIMAL[pjg, desimal]
|
pjg + 1 atau 2 byte
|
Sebuah DOUBLE yang disimpan sebagai string
|
DATE
|
3 byte
|
Dalam format YYYY-MM-DD
|
DATETIME
|
8 byte
|
Dalam format YYYY-MM-DD HH:MM:SS
|
TIMESTAMP
|
4 byte
|
Dalam format YYYYMMDDHHMMSS; rentang yang dapat diterima
sampai akhir tahun 2037
|
TIME
|
3 byte
|
Dalam format HH:MM:SS
|
ENUM
|
1 atau 2 byte
|
Singkatan dari enumeration, yang berarti bahwa tiap kolom
dapat memiliki beberapa nilai.
|
SET
|
1, 2, 3, 4, atau 8 byte
|
Sama seperti ENUM kecuali bahwa tiap kolom dapat memiliki
lebih dari satu nilai.
|
Memilih tipe data kolom
1. Identifikasi apakah tipe sebuah kolom harus text, number atau date/time
(Tabel 4.3). Ini merupakan langkah yang normal dan mudah, tetapi Anda perlu
sespesifik mungkin. Sebagai contoh, tanggal 2014-08-02 (format MySQL) dapat
disimpan sebagai sebuah string menjadi August 2, 2014. Tetapi jika Anda ingin
menggunakan format tanggal yang tepat, Anda akan memiliki database yang lebih
bagus dan berguna (akan Anda lihat bahwa ada fungsi yang dapat mengubah
2014—8-2 menjadi August 2, 2014).
TABEL 4.3 Tabel pengguna dengan tipe-tipe data generik.
Nama Kolom
|
Tipe data umum
|
id_user
|
number
|
nama_depan
|
text
|
nama_belakang
|
text
|
email
|
text
|
pass
|
text
|
tanggal_registrasi
|
date/time
|
2. Pilih subtipe yang paling sesuai untuk tiap kolom (Tabel 4.4). Untuk
contoh ini, id_user ditetapkan
sebagai MEDIUMINT, yang membolehkan sampai sejumlah 17 juta nilai. Kolom tanggal_registrasi ditetapkan sebagai
DATETIME. Ia dapat menyimpan tanggal dan waktu spesifik saat user melakukan
registrasi. Ketika memutuskan memilih sub-subtipe yang benar dari date,
pertimbangkan apakah Anda akan atau tidak akan mengakses tanggal saja, waktu
saja, atau keduanya. Kolom-kolom lain akan ditetapkan sebagai VARCHAR karena
panjangnya berbeda dari rekaman yang satu ke rekaman lain. Satu-satunya
pengecualian adalah kolom password, yang berupa karakter dengan panjang tetap,
jadi Anda memilihnya sebagai CHAR.
TABEL 4.4 Tabel pengguna dengan tipe-tipe data
spesifik.
Nama Kolom
|
Tipe data
spesifik
|
id_user
|
MEDIUMINT
|
nama_depan
|
VARCHAR
|
nama_belakang
|
VARCHAR
|
email
|
VARCHAR
|
pass
|
CHAR
|
tanggal_registrasi
|
DATETIME
|
3. Tetapkan panjang maksimum dari kolom text (Gambar 4.5).
TABEL 4.5 Tabel pengguna dengan atribut panjang
karakter.
Nama Kolom
|
Tipe data
spesifik
|
id_user
|
MEDIUMINT
|
nama_depan
|
VARCHAR(20)
|
nama_belakang
|
VARCHAR(40)
|
email
|
VARCHAR(60)
|
pass
|
CHAR(40)
|
tanggal_registrasi
|
DATETIME
|
4.3
Memilih Properti Lain Pada Kolom
Disamping
menentukan tipe data dan ukuran untuk tiap kolom, Anda juga perlu
mempertimbangkan beberapa properti lain.
Pertama, tiap
kolom, apapun tipe datanya, dapat didefinisikan sebagai NOT NULL. Nilai NULL,
dalam database dan pemrograman, ekivalen dengan mengatakan bahwa bidang tidak
memiliki nilai. Idealnya, dalam perancangan database yang benar, setiap kolom
pada tiap baris pada tiap tabel sebaiknya memiliki nilai, meskipun hal ini
tidak harus. Untuk memaksa suatu nilai pada sebuah bidang, tambahkan deskripsi
NOT NULL pada tipe data kolomnya. Sebagai contoh, jumlah rupiah dapat
dideskripsikan sebagai
harga DECIMAL(5,2) NOT NULL
Ketika
menciptakan sebuah tabel, Anda dapat pula menetapkan nilai default untuk tiap
kolom, tanpa memandang tipe datanya. Pada kasus dimana mayoritas rekaman
memiliki nilai yang sama pada sebuah kolom, penetapan nilai default tidak lagi
mengharuskan Anda untuk menetapkan sebuah nilai ketika menyisipkan baris-baris
baru. Sebagai contoh,
gender
ENUM('M', 'F') default 'F'
Pada kolom gender, jika tidak ada nilai yang
ditetapkan ketika menambah sebuah rekaman baru, nilai default ‘F’ akan
digunakan.
Tipe data number
dapat diberikan UNSIGNED, yang membatasi data yang akan disimpan hanya berupa
angka positif atau nol. Ini juga efektif dapat menggandakan rentang nilai
positif yang dapat disimpan. Anda juga dapat menggunakan bendera ZEROFILL pada
tipe number. Ini menandakan bahwa kolom dengan tipa data number akan diganjal
dengan nol ketika memiliki ruang ekstra.
Terakhir, ketika
merancang sebuah database, Anda juga bisa menggunakan properti AUTO_INCREMENT
untuk menciptakan indeks.
Memilih properti
lain pada kolom
1. Identifikasi kunci utama atau kunci primer (primary key). Kunci primer
ini sangat penting. Kunci primer, yang selalu berupa angka, merupakan cara unik
untuk mengacu ke rekaman tertentu. Pada tabel pengguna, kolom id_user akan dipakai sebagai kunci primer, yang
dipakai untuk mengacu atau mengakses rekaman tertentu.
2. Identifikasi kolom-kolom mana yang tidak bisa memiliki nilai NULL. Pada
contoh ini, setiap bidang diperlukan atau disyaratkan (tidak dapat berupa
NULL).
3. Tetapkan nilai default untuk kolom tertentu. Pada contoh di sini, tidak
ada kolom yang mengimplikasi nilai default. Lihat Tabel 4.6.
TABEL 4.6 Deskripsi akhir
dari tabel pengguna. Bidang (kolom) id_user
didefinisikan sebagai kunci primer dengan properti AUTO_INCREMENT.
Nama Kolom
|
Tipe data
spesifik
|
id_user
|
MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT
|
nama_depan
|
VARCHAR(20) NOT NULL
|
nama_belakang
|
VARCHAR(40) NOT NULL
|
email
|
VARCHAR(60) NOT NULL
|
pass
|
CHAR(40) NOT NULL
|
tanggal_registrasi
|
DATETIME NOT NULL
|
4.4Menggunakan phpMyAdmin
phpMyAdmin
(www.phpmyadmin.net) adalah salah satu aplikasi PHP yang paling populer dan
terbaik. Tujuannya adalah untuk menyediakan antarmuka bagi sebuah server MySQL.
Pengaksesan phpMyAdmin
dilakukan melalui browser Web Anda (Gambar 4.1). URL yang Anda gunakan
tergantung situas Anda. Jika Anda menjalankannya di komputer sendiri, URL-nya
adalah http://localhost/phpmyadmin. Jika Anda menjalankannya pada sebuah situs
host, host Web Anda akan menyediakan URL yang sesuai.
Gambar 4.1 Halaman
phpMyAdmin (ketika dikoneksikan sebagai user MySQL yang dapat mengakses
beberapa database).
Perangkat
phpMyAdmin ini dapat Anda pakai untuk
menciptakan database dan tabel secara visual. Hasilnya dapat Anda lihat
langsung di sisi kiri jendela ini.
No comments:
Post a Comment