

|
INTERNET / INTRANET TUTORIAL |
|
BISNIS INTERNET I |
|
Copyright ©2009-2011, Komunitas Internet dan Intranet. All rights reserved |


|
Sedikit latar belakang dalam evolusi database dan teori database bisa membantu Anda memahami kerja sistem database itu dan bahasa yang paling banyak dipakai untuk memprosesnya yaitu SQL. Sistem-sistem database menyimpan informasi dalam setiap cara yang bisa dipahami lingkungan bisnis. Dari pelacakan database yang luas seperti system pemesanan penerbangan hingga sebuah koleksi kartu baseball anak-anak, system database menyimpan dan mendistribusikan data menjadi tempat menggali sumber-sumber untuk menghasilkan informasi yang diperlukan. Hingga bertahun-tahun, system-system database besar hanya bisa dijalankan pada komputer-komputer mainframe. Mesin-mesin ini secara tradisional telah menjadi mahal untuk didesign, dibeli maupun dimaintain. Tak seperti generasi yang powerful sekarang ini, komputer-komputer workstation tidak mahal membuat para pemrogram bisa mendesign perangkat lunak sehingga memaintain dan mendistribusikan data juga dilakukan secara cepat dan tidak mahal.
Model penyimpanan data paling popular saat ini adalah relational database, yang berkembang dari makalah seminar “Sebuah Model Data Relational untuk Pemakaian Bank-bank Data Besar Secara Bersama” (A Relational Model of Data for Large Shared Data Banks”) yang ditulis oleh Dr. E.F.Codd pada tahun 1970. SQL berkembang menjadi layanan konsep-konsep model database relational. Dr. Codd membuat 13 aturan, yang dengan cukup aneh memberi referensi atas 12 Aturan untuk Model Relational Database Dr. Codd (Codd's 12 Rules, for the relational model):
0. Relational DBMS harus bisa memanage database secara keseluruhan melalui kemampuan-kemampuan relational-nya. 1. Aturan informasi – Semua informasi di dalam database relational (termasuk nama table dan column) digambarkan secara eksplisit sebagai nilai-nilai dari tabel-tabel. 2. Akses terjamin – Setiap nilai di dalam database relational dijamin bisa diakses dengan menggunakan kombinasi nama tabel, nilai primary key, dan nama column. 3. Nilai kosong di-support secara sistematis – DBMS menyediakan dukungan sistematis untuk perlakuan nilai-nilai kosong (data tak dikenal atau tidak ada), berbeda dari nilai default, dan kemandirian dari setiap domain. 4. Aktif, catalog relational online – Penjelasan akan database dan konten-kontennya digambarkan pada level logika-nya seperti tabel-tabel dan karena itu bisa di-query menggunakan bahasa database. 5. Sub-bahasa data yang mudah dipahami – Setidaknya satu bahasa yang di-support harus mempunyai cara penulisan simbol-simbol (syntax) yang baik dan mudah dimengerti. Bahasa itu harus men-support penanganan data definition, aturan-aturan, pemberian wewenang (authorization) dan transaksi yang terintegrasi. 6. View mengupdate rule - Semua view yang secara teoritis bisa diupdate bisa diupdate pada keseluruhan system. 7. Tingkat kesatuan insert, delete, update – DBMS men-support tidak hanya tingkat kesatuan pembacaan tetapi juga tingkatan kesatuan insert, update dan delete. 8. Data fisik yang berdiri sendiri – Program-program aplikasi dan program-program dengan fungsi khusus (ad hoc) secara logika tidak berpengaruh ketika metode-metode akses fisik atau struktur storage digunakan. 9. Data Logical berdiri sendiri – Program-program aplikasi dan program-program dengan fungsi khusus (ad hoc) secara logika tidak berpengaruh ke kemungkinan-kemungkinan perluasan, kalau perubahan-perubahan dibuat atas struktur-struktur tabel. 10. Integrity berdiri sendiri – Bahasa database harus mampu membuat aturan-aturan integrity. Aturan-aturan itu harus disimpan di dalam catalog online, dan tidak bisa dilewatkan. 11. Distribusi berdiri sendiri – Program-program aplikasi dan program-program dengan fungsi khusus yang dibutuhkan, secara logika tidak berpengaruh kalau data didistribusikan pertama atau kalau data itu di-redistribusikan. 12. Tidak bisa menjadi versi sub – Mem-bypass aturan-aturan yang dibuat melalui bahasa database dengan menggunakan bahasa-bahasa low-level tidak diperbolehkan.
Rancangan struktur data di dalam database yang dibuat seadanya mungkin masih tetap bisa berjalan dan memberi beberapa keuntungan tetapi akhirnya akan membawa banyak kerugian. Dalam keberadaannya metode ini menjadi nyata bahwa struktur data di dalam disk menjadi tidak penting. Programmer hanya menyimpan pointer-pointer ke lokasi berikutnya, sehingga data bisa diakses menggunakan cara ini. Data juga menjadi mudah untuk diupdate maupun didelete. Meskipun begitu, group-group informasi yang berbeda tidak bisa digabung (join) secara mudah menjadi bentuk informasi yang baru. Format data di dalam disk tidak bisa dinyatakan secara tegas telah diubah setelah database dibuat. Dengan cara kerja seperti itu berarti hal ini akan membutuhkan pembuatan struktur database yang baru.
Ide Codd untuk sebuah RDBMS menggunakan konsep-konsep matematika tentang perhitungan relasi (relational algebra) adalah untuk memecah-mecah data menjadi kesatuan-kesatuan dan sub-sub kesatuan yang secara umum berhubungan. Karena informasi secara alami dikelompokkan menjdi kesatuan-kesatuan yang berbeda, Dr. Codd mengatur system database-nya berdasarkan sekitar konsep tersebut. Di bawah model relational itu, data dipisah-pisahkan menjadi kesatuan-kesatuan yang membentuk suatu struktur table kembali. Struktur table ini terdiri dari unsur-unsur data individu yang dinamakan kolom atau field. Satu kesatuan dari sebuah kelompok field dikenal sebagai satu record atau row. Sebagai contoh untuk membuat database relational yang berisi data pegawai, Anda harus memulainya dengan membuat table yang namanya EMPLOYEE yang berisi bagian-bagian informasi seperti berikut: NAME, AGE, dan OCCUPATION.
Ada tiga bagian data yang membentuk field-field di dalam table EMPLOYEE, seperti ditunjukkan Table 1.1.
Table 1.1. Table EMPLOYEE Name Age Occupation Will Williams 25 Electrical engineer Dave Davidson 34 Museum curator Jan Janis 42 Chef Bill Jackson 19 Student Don DeMarco 32 Game programmer Becky Boudreaux 25 Model
Keenam baris merupakan record-record di dalam table EMPLOYEE. Untuk membaca record tertentu dari table ini, sebagai contoh Dave Davidson, user harus membuat perintah ke sistem managemen database untuk membaca record-record di mana field NAME sama dengan (berisi data) Dave Davidson. Jika DBMS telah memberi perintah untuk membaca semua field di dalam record, NAME, AGE dan OCCUPATION dari table EMPLOYEE, informasi di atas akan dimunculkan kepada user.
SQL merupakan bahasa yang mengatakan kepada database untuk membaca data ini. Statement SQL contoh yang membuat query ini adalah
SELECT * FROM EMPLOYEE
Karena item-item data yang bermacam-macam bisa dikelompokkan menurut hubungan-hubungan yang nyata (seperti hubungan antara Nama Pegawai dengan Umur Pegawai), model relational database memberikan perencana database keleluasaan yang besar untuk menggambarkan hubungan-hubungan antara unsur-unsur data. Melalui konsep-konsep penggabungan dan penyatuan (join and union) secara matematis, database relational bisa dengan cepat membaca bagian-bagian data dari kesatuan-kesatuan (table-table) yang berbeda dan memberikan data tersebut kepada user atau program sebagai satu kumpulan data yang digabungkan. Fitur join membuat perancang atau designer bisa menyimpan kesatuan-kesatuan informasi di dalam table-table yang terpisah untuk mengurangi pengulangan.
Inilah contoh sederhana yang menunjukkan bagaimana data secara logika bisa dibagi di antara dua table. Table 1.2 dinamakan table tanggung jawab - RESPONSIBILITIES dan berisi dua field: NAME dan DUTIES.
Table 1.2. Tabel RESPONSIBILITIES Name Duties Becky Boudreaux Smile Becky Boudreaux Walk Bill Jackson Study Bill Jackson Interview for jobs
Membuat duplikasi field-field AGE dan OCCUPATION table EMPLOYEE untuk setiap record tidak akan menjadi sempurna. Sepanjang perjalanan, duplikasi data yang tidak perlu akan membuang-buang begitu besar space hard disk dan meningkatkan waktu pembacaan bagi RDBMS. Bagaimanapun, jika NAME dan DUTIES disimpan di dalam table terpisah yang bernama RESPONSIBILITIES, user bisa menggabungkan table RESPONSIBILITIES dan EMPLOYEE di mana field NAME sama Becky Bourdreaux akan menghasilkan Table 1.3.
Table 1.3. Nilai-nilai hasil pembacaan - where NAME equals Becky Bourdreaux.
Name Age Occupation Duties Becky Boudreaux 25 Model Smile Becky Boudreaux 25 Model Walk
Keputusan paling penting untuk seorang perancang database, setelah hardware platform dan RDBMS dipilih, adalah struktur dari table-table. Keputusan-keputusan yang dibuat pada tahapan perencanaan ini bisa berdampak pada unjuk kerja dan pemrograman di masa yang akan datang pada waktu proses pengembangan. Proses pemisahan data menjadi kesatuan-kesatuan yang berbeda, unik dinamakan normalisasi/normalization.
|
|
Click on the picture to return to the Main Page |