Anda di halaman 1dari 11

BAB 1 Gambaran Umum DBMS

1.1 Basis Data

Basis data (atau database) adalah kumpulan informasi yang disimpan di


dalam komputer secara sistematik sehingga dapat diperiksa menggunakan
suatu program komputer untuk memperoleh informasi dari basis data tersebut
(http://id.wikipedia.org/wiki/Database). Database digunakan untuk
menyimpan informasi atau data yang terintegrasi dengan baik di dalam
komputer.
Database Management System (DBMS) atau Sistem Manajemen Basis
Data (SMBD). Basis data adalah kumpulan data yang dihubungkan oleh
beberapa aspek. Data adalah kumpulan fakta dan angka yang dapat diproses
untuk menghasilkan informasi. Nama siswa, usia, kelas, dan mata
pelajarannya dapat dihitung sebagai data untuk tujuan perekaman.
Sebagian besar data mewakili fakta yang bisa direkam. Alat bantu data
dalam menghasilkan informasi yang didasarkan pada fakta. Sebagai contoh,
jika kita memiliki data tentang nilai yang diperoleh semua siswa, kita dapat
menyimpulkan tentang nilai tertinggi dan nilai rata-rata dll.
Sistem manajemen basis data menyimpan data, sedemikian rupa sehingga
lebih mudah untuk mengambil, memanipulasi dan membantu menghasilkan
informasi.

1.2 User/Pengguna

DBMS digunakan oleh berbagai pengguna untuk berbagai keperluan.


Beberapa mungkin terlibat dalam pengambilan data dan beberapa mungkin
terlibat dalam membuat cadangannya. Beberapa pengguna dijelaskan sebagai
berikut:
A. Administrator
Sekelompok pengguna mempertahankan DBMS dan bertanggung jawab
untuk mengelola database. Mereka bertanggung jawab untuk menjaga
penggunaannya dan oleh siapa penggunaannya. Mereka membuat akses
pengguna dan menerapkan batasan. Administrator juga menjaga sumber daya
DBMS seperti lisensi sistem, aplikasi perangkat lunak, dan peralatan yang
diperlukan serta pemeliharaan terkait perangkat keras lainnya.
Contoh : Sebagai seorang Oracle Database Administrator (DBA), Anda
dapat terlibat dalam tugas-tugas umum oracle database administration berikut
ini: (1) Menginstall perangkat lunak Oracle Database, (2) Membuat dan
membangun database Oracle Database, (3) Melakukan upgrade dari database
dan perangkat lunak untuk versi rilis yang baru, (4) Start dan stop database
Oracle, (5) Mengelola struktur penyimpanan database oracle, (6) Mengelola
pengguna dan keamanan di database oracle, (7) Mengelola object schema,
seperti tabel, indeks, dan view, (8) Membuat backup database Oracle dan
melakukan pemulihan/restore database bila diperlukan, (9) Proaktif
memantau kesehatan database oracle dan mengambil tindakan preventif atau
korektif yang diperlukan, (10) Monitoring dan tuning kinerja database oracle
[1].
B. Designer
Desainer adalah sekelompok orang yang benar-benar bekerja merancang
bagian basis data. Basis data aktual dimulai dengan analisis kebutuhan yang
diikuti oleh proses perancangan yang baik. Orang-orang mengawasi dengan
cermat data apa yang harus disimpan dan dalam format apa. Mereka
mengidentifikasi dan merancang seluruh rangkaian entitas, hubungan,
kendala, dan views.
Berikut ini merupakan point-point database sql, perhatikan dalam
melakukan design database, baik menggunakan database oracle, database ms
sql server, database mysql, dan beragam database dengan Relational
Database Management System (RDBMS) lainnya. Berikut ini point-point
penting database sql [1] :

1) Gunakanlah pendefinisian dengan baik dan konsisten untuk nama-nama


tabel dan kolom (misalnya sekolah, StudentCourse, CourseID ...).
2) Gunakan singular atau tunggal untuk nama tabel (yaitu menggunakan
StudentCourse bukan StudentCourses). Pada design database ini, tabel
merupakan koleksi entitas, tidak ada kebutuhan untuk nama plural atau
jamak.
3) Usahakan saat melakukan design database untuk jangan pernah
menggunakan spasi untuk nama tabel. Jika tidak, maka anda akan harus
menggunakan tanda / karakter '{', '[', '"' dll untuk mendefinisikan tabel
(yaitu untuk mengakses tabel Student Course Anda akan menulis "
Student Course ". Akan jauh lebih baik apabila anda menuliskannya
sebagai StudentCourse).
4) Jangan menggunakan awalan ataupun akhiran yang tidak perlu untuk
nama tabel (yaitu menggunakan School bukannya TblSchool,
SchoolTable dll).
5) Jagalah password agar tetap dalam keadaan dienkripsi, hal ini tentunya
sangat penting untuk keamanan. Anda cukup mendekripsi mereka dalam
aplikasi bila diperlukan.
6) Gunakan metadata integer untuk kolom id untuk semua tabel. Jika id
tidak diperlukan untuk saat ini, mungkin diperlukan di masa depan (untuk
tabel asosiasi, indexing, dll ...).
7) Pilih kolom dengan tipe data integer (atau variannya) untuk mengindeks.
Mengindeks kolom dengan tipe data varchar akan menyebabkan masalah
pada kinerja database anda.
8) Gunakan kolom dengan digit yang sedikit untuk nilai boolean.
Menggunakan tipe data integer atau varchar hanya akan memakan
penyimpanan yang tidak perlu. Juga mulailah nama-nama kolomnya
dengan "Is".
9) Menyediakan otentikasi untuk akses database. Jangan memberikan peran
admin untuk setiap pengguna.
10) Hindari query "select *" sampai memang benar-benar sangat diperlukan.
Gunakan "select [required_columns_list]" untuk kinerja yang lebih baik.
11) Menggunakan kerangka atau framework ORM (object relational
mapping) (contoh yaitu hibernate, iBATIS ...) jika kode aplikasinya yang
cukup besar. Masalah kinerja framework ORM dapat ditangani oleh
parameter konfigurasi secara detail.
12) Buat partisi yang besar dan table yang jarang digunakan atau tidak
terpakai/bagian-bagian table ke penyimpanan fisik yang berbeda untuk
kinerja query yang lebih baik.
13) Untuk system database yang besar, sensitif dan memiliki misi kritikal,
disarankan untuk menggunakan system disaster recovery dan layanan
keamanan seperti failover clustering, backup otomatis, replikasi dll
14) Gunakan constraint (foreign key, check, not null ...) untuk integritas data.
Jangan memberikan seluruh kontrol untuk kode aplikasi.
15) Kurangnya dokumentasi database merupakan sesuatu yang jahat.
Dokumentasikanlah desain database Anda dengan skema ER dan
instruksi-instruksi. Juga tuliskan baris komentar untuk trigger yang anda
buat, stored procedure dan skrip-skrip lainnya.
16) Menggunakan indeks untuk permintaan yang sering digunakan pada tabel
besar. Tool Analyser dapat digunakan untuk menentukan di mana indeks
akan ditentukan. Untuk query mengambil berbagai baris, clustered index
biasanya lebih baik. Untuk query tertentu, indeks non-clustered biasanya
lebih baik.
17) Database server dan server web harus ditempatkan dalam mesin yang
berbeda. Ini akan memberikan keamanan (penyerang tidak dapat
mengakses data secara langsung) dan server CPU dan kinerja memori
akan lebih baik karena mengurangi jumlah permintaan dan penggunaan
proses.
18) Gambar dan kolom data yang berbentuk blob tidak harus didefinisikan
dalam tabel yang sering diquery karena masalah kinerja. Data ini harus
ditempatkan dalam tabel terpisah dan pointer mereka dapat digunakan
dalam tabel yang diquery.
19) Pada design database, secara best practice nya normalisasi harus
digunakan sesuai dengan kebutuhan, untuk mengoptimalkan kinerja.
Normalisasi yang kurang akan menyebabkan pengulangan berlebihan
pada data, sebaliknya normalisasi yang berlebihan akan menyebabkan
join yang berlebihan di begitu banyak tabel. Keduanya akan mendapatkan
kinerja yang lebih buruk.
C. End Users/Pengguna akhir. Grup ini berisi orang-orang yang benar-benar
memanfaatkan sistem basis data. Pengguna akhir bisa hanya user yang
memperhatikan log atau harga pasar atau pengguna akhir bisa secanggih
analis bisnis yang memanfaatkannya sebaik mungkin.

1.3 Istilah Database


A. Table
Sebuah tabel merupakan kumpulan data (nilai) yang diorganisasikan
ke dalam baris (record) dan kolom (field). Masing-masing kolom
memiliki nama yang spesifik dan unik.
B. Field
Field merupakan kolom dari sebuah table. Field memiliki ukuran type
data tertentu yang menentukan bagaimana data nantinya tersimpan.
C. Record
Field merupakan sebuah kumpulan nilai yang saling terkait.
D. Key
Key merupakan suatu field yang dapat dijadikan kunci dalam operasi
tabel. Dalam konsep database, key memiliki banyak jenis diantaranya
Primary Key, Foreign Key, Composite Key, dll.
E. SQL
SQL atau Structured Query Language merupakan suatu bahasa
(language) yang digunakan untuk mengakses database. SQL sering
disebut juga sebagai query.

1.4 Hierarki Database


Dalam konsep database, urutan atau hierarki database sangatlah penting.
Urutan atau hierarki database digambarkan dalam gambar sbb :

1.5 Pengertian Mysql


MySQL adalah sebuah perangkat lunak sistem manajemen basis data
SQL (bahasa Inggris: database management system) atau DBMS yang
multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia.
MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis di
bawah lisensi GNU General Public License (GPL), tetapi mereka juga
menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya
tidak cocok dengan penggunaan GPL. Tidak seperti PHP atau Apache yang
merupakan software yang dikembangkan oleh komunitas umum, dan hak
cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL
dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia yaitu
MySQL AB. MySQL AB memegang penuh hak cipta hampir atas semua
kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang
mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael
"Monty" Widenius. MySQL dapat didownload di situs resminya,
http://www.mysql.com.

Fitur-fitur MySQL antara lain :

D. Relational Database System. Seperti halnya software database lain yang


ada di pasaran, MySQL termasuk RDBMS.
E. Arsitektur Client-Server. MySQL memiliki arsitektur client-server
dimana server database MySQL terinstal di server. Client MySQL dapat
berada di komputer yang sama dengan server, dan dapat juga di komputer
lain yang berkomunikasi dengan server melalui jaringan bahkan internet.
F. Mengenal perintah SQL standar. SQL (Structured Query Language)
merupakan suatu bahasa standar yang berlaku di hampir semua software
database. MySQL mendukung SQL versi SQL:2003.
G. Mendukung Sub Select. Mulai versi 4.1 MySQL telah mendukung select
dalam select (sub select).
H. Mendukung Views. MySQL mendukung views sejak versi 5.0
I. Mendukung Stored Prosedured (SP). MySQL mendukung SP sejak versi
5.0
J. Mendukung Triggers. MySQL mendukung trigger pada versi 5.0 namun
masih terbatas. Pengembang MySQL berjanji akan meningkatkan
kemampuan trigger pada versi 5.1.
K. Mendukung replication.
L. Mendukung transaksi.
M. Mendukung foreign key.
N. Tersedia fungsi GIS.
O. Free (bebas didownload)
P. Stabil dan tangguh
Q. Fleksibel dengan berbagai pemrograman
R. Security yang baik
S. Dukungan dari banyak komunitas
T. Perkembangan software yang cukup cepat.

1.6 Merancang Database


Merancang database merupakan hal yang pertama kali harus dilakukan
sebelum membuat suatu aplikasi berbasis database. Rancangan database yang
baik akan menentukan seberapa baik sebuah aplikasi dibangun. Orang yang
bertanggung jawab dalam merancang database biasanya disebut sebagai
seorang sistem analis.
Berikut ini contoh sederhana sebuah rancangan database dalam pada
Sistem Pemesanan Barang (ordering system). Rancangan database disajikan
dalam bentuk class diagram.
1.7 Tipe-tipe Table MySQL
Salah satu kelebihan dari MySQL adalah Anda dapat mendefinisikan tipe
untuk tiap tabel. MySQL mendukung beberapa tipe tabel, tergantung
konfigurasi saat proses instalasi MySQL. MySQL memiliki 3 (tiga) tipe data
utama, yaitu MyISAM, InnoDB dan HEAP.
Jika kita tidak menyebutkan tipe tabel saat membuat tabel, maka tipe
tabel otomatis akan dibuat sesuai konfigurasi default server MySQL. Hal ini
ditentukan oleh variabel default-table-type di file konfigurasi MySQL.
A. MyISAM
Tipe tabel MyISAM merupakan tipe tabel yang sederhana, stabil dan
mudah digunakan. Jika kita akan menyimpan data sederhana yang tidak
terlalu rumit, maka gunakanlah tipe tabel ini. Kelebihan utama MyISAM
adalah kecepatan dan kestabilannya. Jika kita memilih tipe tabel
MyISAM, maka MySQL secara otomatis akan menentukan salah satu
dari tiga jenis tabel MyISAM, yaitu :
a. MyISAM static. Jenis ini digunakan ketika semua kolom dalam
tabel didefinisikan dengan ukuran yang pasti (fixed). Dengan kata
lain, tidak ada kolom yang memiliki tipe seperti VARCHAR,
TEXT dan BLOB. Karena sifatnya yang fixed, maka jenis ini
akan lebih cepat, aman dan stabil.
b. MyISAM dymanic. Jenis ini digunakan ketika terdapat kolom
dengan tipe yang dinamis, seperti tipe kolom VARCHAR.
Keuntungan utama dari jenis ini adalah ukuran yang dinamis. Jadi
sifatnya lebih efektif karena ukuran data (file) menyesuaikan isi
dari masing-masing kolom (field).
c. MyISAM Compressed. Kedua jenis MyISAM, static dan dynamic
dapat dikompresi menjadi satu jenis yaitu MyISAM Compressed
dengan perintah myisamchk. Tentunya hasilnya lebih kecil dari
segi ukuran. Tabel yang terkompresi tidak dapat dikenakan
operasi seperti INSERT, UPDATE dan DELETE.
B. InnoDB
Tipe tabel InnoDB merupakan tipe tabel MySQL yang mendukung
proses transaksi. Tipe ini memiliki beberapa keunggulan, antara lain:
a. Mendukung transaksi antar tabel.
b. Mendukung row-level-locking.
c. Mendukung Foreign-Key Constraints.
d. Crash recovery.
C. HEAP
Tabel dengan tipe HEAP tidak menyimpan datanya di hardisk, tetapi
menyimpan di RAM (memori). Tipe tabel ini biasanya digunakan sebagai
tabel sementara (temporary). Tabel secara otomatis akan dihapus (hilang)
dari MySQL saat koneksi ke server diputus atau server MySQL
dimatikan.
D. Tipe Table yang Lain
Selain 3 (tiga) tipe tabel diatas, yaitu MyISAM, InnoDB dan HEAP,
MySQL juga mendukung tipe tabel yang lain, yaitu:
a. BDB. Tipe tabel ini mirip tipe tabel InnoDB, namun
penggunaannya belum maksimal.
b. Archieve. Tipe ini tersedia sejak MySQL versi 4.1. Tipe ini
digunakan untuk menyimpan tabel yang terkompresi, dimana
biasanya digunakan dalam proses backup.
c. CSV. Tipe ini digunakan untuk menyimpan data dalam bentuk file
text yang dibatasi dengan koma (delimiter). Tipe ini tersedia sejak
MySQL versi 4.1.
d. NDB Table (MySQL Cluster). Tersedia sejak MySQL versi 4.1.
e. Federated (External Tables). Tipe ini tersedia sejak MySQL versi
5.0.

Anda mungkin juga menyukai