Pemrosesan database selalu menjadi topik yang penting pada mata kuliah Teknik Informatika dan sistem Informasi. Namun pada tahun-tahun terakhir ini dengan semakin meluasnya penggunaan Internet dan perkembangan teknologi baru yang dramatis, di dunia internet telah membuat pengetahuan tentang teknologi database menjadi salah satu jalur karir yang diminati. Teknologi database memungkinkan aplikasi-aplkasi Internet melangkah lebih dari hanya sekedar mempublikasikan brosur sederhana yang merupakan ciri khas aplikasi terdahulu. Pada saat yang sama teknologi internet memberikan sarana terstandarisasi dan siap diakses untuk mempublikasikan database ke user. Tidak satu pun dari perkembangan baru ini yang menghilangkan kebutuhan akan aplikasi database yang paling vital bagi kepentingan bisnis sebelum kebangkitan Intemet. Perkembangan ini hanya memperkuat pentingnya pengetahuan tentang pemrosesan database.
Banyak mahasiswa menyukai dan tertarik dengan pokok bahasan ini, walau pun boga menjadi sangat menantang Desain database dan pengembangan nyo melibatkan bak seni maupun rekayasa Memahami kebutuhan user dan menerjemahkannya menjadi desain database yang efektif adalah sebuah proses artistik. Mentransformasikan desain desain ini menjadi database fisik dengan fungsi yang lengkap dan aplikasi berkinerja tinggi adalah sebuah proses rekayasa Kedua aspek ini penuh dengan tantangan dan teka-teki intelektual yang menarik
Karena kebutuhan akan teknologi database sangatlah besar maka keahlian yang Anda kembangkan dan pengetahuan yang Anda dapatkan di bidang pokok bahasan ini akan menjadi suatu permintaan yang tinggi, Tujuan ini adalah untuk memberikan fondasi yang solid pada dasar-dasar teknologi dato base, sehingga Anda dapat berkarier di bidang ini yang telah menjadi pilihan Anda dengan sukses.
Pada bab ini kita akan membahas mengapa, apa dan bagaimana pemrosesan database. Kita akan mendiskusikan mengapa database digunakan. menceritakan kepada Anda apa saja komponen sistem database, don me tangkum bagaimana sistem database dikembangkan. Kita akan mengakhiri bab inl dengan sebuah sketsa sejarah tentang pemrosesan database.
Baca Juga: Mengenal DBMS (Database Management System) lebih dalam
Table of Contents
MENGAPA MENGGUNAKAN DATABASE?
Tujuan database adalah untuk membantu orang dan organisasi menelusuri hal-hal tertentu. Pada awalnya, tujuan tersebut terkesan sederhana, dan Anda mungkin bertanya-tanya mengapa kita memerlukan teknologi yang rumit dan pokok bahasan yang menyeluruh tentang masalah ini. Kebanyakan dari kita hanya membuat daftar kebutuhan kita untuk menelusuri sesuatu. Saya sendiri memiliki daftar hal-hal yang harus dilakukan minggu ini, daftar apa saja yang harus dibel di supermarket daftar pengeluaran untuk pelaporan pajak, dan seterusnya. Mengapa kita tidak melakukan hal yang sama untuk sistem informasi?
Pada awal perkembangan teknologi informasi, daftar-daftar telah banyak digunakan dipunch pada kartu dan ditulis pada tape komputer. Akan tetapi, seiring dengan berlalunya waktu akan muncul beberapa masalah berkaitan dengan daftar tersebut. Pada bagian berikutnya, kita akan mendiskusikan masalah-masalah ini dan kemudian kita akan menguraikan bagaimana database dibangun untuk memecahkan masalah tersebut.
Masalah Datar
Coba lihat daftar pada Peraga 1-1, yaitu sebuah daftar yang digunakan oleh Lakeview Equip ment Rentals Lakeview menyewakan peralatan konstruksi seperti cangkul dan mesin derek kepada kontraktor konstruksi. Peraga 1-1 hanya memperlihatkan sebagian kecil dari aktivitas penyewaannya, tetapi meskipun kecil contoh ini mengilustrasikan beberapa masalah penting yang ada pada daftar tersebut.
Salah satunya, apa yang terjadi jika seorang kontraktor mengubah nomor teleponnya? Sebagai contoh, misalkan KH Services mengubah nomor teleponnya menjadi 213,444,9988. Untuk mempertahankan agar daftar ini tetap akurat, kita perlu mengubah empat baris. Jika kita tidak mengubah keempat baris itu, maka datanya akan menjadi tidak konsisten dan kita tidak tahu nomor mana yang benar Lebih jauh lagi, misalkan daftar ini adalah aktivitas penyewaan selama kuartal atau setahun penuh. Mungkin ada ratusan atau bahkan ribuan baris dalam daftar Untuk mencatat perubahan nomor telepon, kita perlu mencarinya dalam daftar dan membuat perubahan yang benar dalam setiap baris daftar peralatan KH Services. Proses ini dapat menghabiskan banyak waktu dan mudah salah.
Masalah yang sama juga muncul jika kita menghapus data dari daftar Misalkan RB Partnership memutuskan untuk tidak menyewa back hoe atau mesin cangkul, schingga kita menghapus baris terakhir. Dalam proses penghapusan ini, kita tidak hanya kehilangan data tentang penyewaan, tetapi juga nomor telepon RB Partnership, sehingga kita kehilangan informasi bahwa RB Partnership sedang mengerjakan sebuah proyek yang disebut Village Square serta data bahwa mereka setuju menyewa mesin kita inginkan hanya cangkul per hari seharga S750. Paling-paling yang menghilangkan data tentang tanggal penyewaan.
Dengan alasan yang sama, apa yang akan kita lakukan jika kita mempunyai sebagian (tidak semua data)? Mungkin kita tahu bahwa University Swaging memiliki nomor telepon 206.555.8989 dan bahwa mereka sedang mengerjakan sebuah pekerjaan yang discbut Center Street Bridge Renewal. Kita ingin menyimpan data ini dalam daftar, tetapi di mana? Lagi pula, perusahaan ini tidak menyewa dari kita.
Dengan Pemrosesan Database menghindari masalah yang lain yaitu berkaitan dengan data yang tidak konsisten. Kita bisa saja melakukan kesalahan sederhana dalam mengetik nama kontraktor dan tanpa sengaja mencantumkan KJ Services pada KH Services. User daftar akan bertanya-tanya apakah kita memiliki pelanggan baru atau apakah ini hanya merupakan kesalahan suja. Kesalahan seperti ini tidak akan terjadi jika kita memilih kontraktor dari daftar kontraktor yang ada.
Beberapa ketidakkonsistenan malah lebih sulit lagi dikenali. Mari kita perhatikan baris keempat dan terakhir. Baris-baris ini mengacu pada penyewaan mesin cangkul dengan Equipment Number 10020. Pada baris keempat, tarif sewa per hari adalah $650, tetapi pada baris terakhir, tercantum $750, Sekarang, apakah ini merupakan ketidakkonsistenan yang disebabkan oleh kesalahan pengetikan atau typo, atau memang tarif sewanya bervariasi dari satu penyewaan ke penyewaan lainnya? Atau, mungkin tarif sewa bervariasi dari satu kontraktor ke kontraktor lainnya. Jika memang begitu, maka KH Services telah dikenakan harga $650 untuk mesin cangkul, sementara RB Partnership telah dikenakan harga sebesar $750. Jika semisal hal ini benar, kita harus meyakinkan bahwa setiap kali kita memasukkan kombinasi KH Ser vices dan mesin cangkul bernomor 10020, kita juga memasukkan harga sebesar $650.
Masih ada lagi masalah yang lain jika tidak menggunakan Pemrosesan Database, yakni berkaitan dengan hilangnya data. Tidak ada nilai dalam kolom End Date untuk penyewaan scaffolding. Apakah ini merupakan kesalahan keying atau kesalahan yang lain? Ini bisa berarti bahwa penyewaan belum berakhir atau KH Services menginginkan penyewaan scaffolding dilakukan dalam periode waktu yang tidak ditentukan.
Masalah Pembagian Data
Masalah lain dalam kasus penggunaan daftar muncul ketika Anda memutuskan bahwa data ini harus dibagi di antara banyak orang di Lakeview Equipment Rentals Lakeview ingin setiap orang memiliki akses ke nama kontraktor dan nomor telepon dari suatu sumber data umum, Dengan cara ini, jika terjadi perubahan nomor telepon, maka perubahan itu hanya perlu dilakukan pada satu sumber saja untuk semua orang di perusahaan. Kalau tidak, karyawan harus memperbarui data beberapa kali di banyak komputer, Akan tetapi jika data mengenai kontraktor dibagi, maka akan berkembang masalah lainnya.
Bagian akuntansi ingin menelusuri faktur, jumlah yang harus dibayar, dan pembayaran oleh kontraktor. Sementara bagian penjualan ingin menelusuri kontak, pertemuan, dan permintaan kontraktor. Bagian dukungan pelanggan ingin mengetahui masalah apa yang telah terjadi dengan kontraktor tertentu dan apa saja yang telah dilakukan untuk menyelesaikannya. Dan departemen departemen tersebut tidak ingin membagi datanya dengan yang lain. Untuk memperbaiki pengendalian akuntansi, departemen akuntansi tidak ingin orang di luar departemen itu mengakses data tentang faktur dan pembayaran. Untuk melindungi privasi pelanggannya, departemen dukungan pelanggan tidak ingin setiap orang di Lakeview mengetahui apa saja masalah yang dihadapi pelanggan. Jadi, masing-masing departemen hanya ingin membagi sebagian, tetapi tidak semua, data mereka.
Ada masalah lainnya lagi berkaitan dengan penggunaan daftar, tetapi Anda akan menemukan solusinya. Kita memerlukan cara yang canggih untuk menyimpan data.
Database sebagai Kelompok Tabel yang Berkaitan
Salah satu masalah serius berkaitan dengan daftar seperti pada Peraga 1-1 adalah bahwa dan itu bisa berisi data tentang berbagai tema yang berbeda. Ingat guru bahasa Inggris Anda d kelas 8? Dia bilang bahwa sebuah paragraf harus memiliki satu tema. Jika Anda membuat sebuah paragraf dengan dua atau lebih tema, maka Anda harus memecahnya menjadi beberan paragraf yang berbeda, yang masing-masing dengan satu tema. Inilah esensi dari sebuah proses yang disebut sebagai normalisasi, yang akan kita bahas secara mendalam pada Bab 4 Perhatikan daftar dalam Peraga 1-1. Ada berapa tema di sana? Ada satu untuk job, satu untuk contractor, satu untuk equipment, dan satu untuk rental, Peraga 1-2 memperlihatkan hasil dari membagi daftar ini menjadi beberapa komponen terpisah. Masing-masing komponen tersebut adalah sebuah tabel data yang akan kita sebut sebagai tabel. Setelah daftar dibagi menjadi empat tabel, maka banyak masalah yang kita diskusikan schelumnya akan menjadi hilang. Jika KH Services mengubah nomor teleponnya menjadi 213.444.9988, maka kita hanya perlu mengubahnya sekali, yaitu pada tabel CONTRACTOR Jika kita ingin menghapus sebuah rental, kita hanya menghapus sebuah baris dari tabel RENTAL kita tidak akan kehilangan data tentang job, contractor, atau equipment. Jika kita ingin menam bahkan data pelanggan baru, kita hanya menambahkan data tersebut ke tabel CONTRACTOR.
Supaya datanya konsisten, kita dapat mendesain aplikasi Pemrosesan Database sehingga ketika seseorang perlu memasukkan rental baru, mereka hanya mengambil pilihan yang ada dalam tabel CONTRACTOR. Dengan demikian, mereka tidak akan melakukan kesalahan keying. Hal ini juga akan memberikan kita cara untuk mengendalikan penerimaan pelanggan baru kita bisa me ngendalikan agar hanya orang tertentu, mungkin di bagian akuntansi, yang dapat menambah kan baris baru pada tabel CONTRACTOR.
Bagaimana dengan inkonsistensi data tentang rental rate atau tarif sewa di Peraga 1-1? Bagi saya ini adalah awal Pemrosesan Database yang menarik. Pada Peraga 1-2. Daily Rate ditempatkan dalam tabel EQUIPMENT. Ini berarti bahwa sebuah equipment/peralatan harus disewakan dengan rate/tarif yang sama ke semua pelanggan, Desain tabel-tabel ini mengacu ke penyataan sebelumnya.
Sekarang, apakah hal ini benar? Ini tergantung pada aturan bisnis dan kebiasaan di Lakeview. Sah-sah saja jika user di Lakeview mengatakan bahwa inilah yang mereka lakukan. Akan tetapi, jika ratenya harus dinegosiasikan secara terpisah untuk setiap penyewaan, maka Daily Rate harus ditempatkan di tabel RENTAL. Fika setiup kontraktor menegosiasikan ratenya sendiri. maka sebuah tabel baru harus dibuat
Permasalahannya di sini adalah bukan memecahkan masalah yang kita bahas tadi. Masalah nya adalah bahwa desain tabel harus merefleksikan praktek dan kebijakan organisasi yang menggunakannya. Kita akan menghabiskan cukup banyak waktu dan usaha di buku ini untuk membahas permasalahan tersebut.
Membagi tabel juga memungkinkan kita untuk menambah lebih banyak data tentang masing-masing tema daripada yang ada dalam daftar pada Peraga 1-E Peraga 1-3, sebagai contoh, memperlihatkan data tambahan untuk contractor. Jika perlu, kita bisa mengembangkan aplikasi database kita sehingga hanya orang yang berwenang saja yang bisa melihat data tambahan ini.
Mengekspresikan Hubungan
Sekarang, Anda bisa frustrasi dengan sebuah pertanyaan tajam. Data pada Peraga 1-2 atan Peraga 1-3 tidak ada masalah, tetapi di mana hubungannya? Bagaimana saya tahu kontraktor mana yang menyewa equipment apa, untuk job apa, dan pada tanggal berapa? Tidak mungkin menjawab pertanyaan tersebut dari data yang ada di peraga ini.
Sekali lagi di sini, kita sampai pada pertanyaan fundamental tentang pemrosesan database. Kita akan menjawab pertanyaan ini pada Bab 5 dan 8 ketika membahas desain database. Untuk sekarang, mari kita lihat Peraga 1-4, yang memperlihatkan satu cara untuk menghubungkan tabel-tabel tersebut. Kita telah memberikan identifier yang unik pada masing-masing baris, yang diberi label ID, di setiap tabel pada Peraga 14.
Identifier ini tidak mempunyai arti bagi user di Lakeview: tujuannya adalah untuk memberikan identitas yang unik bagi masing-masing baris di setiap tabel. Kita dapat menggunakan nilai ID ini untuk membuat koneksi ke sebuah baris RENTAL Mari kita lihat baris keempat RENTAL pada Peraga 1-4. Nilai sebesar 3 dalam kolom berlabel JobsiD berarti bahwa penyewaan ini untuk job yang memiliki nilai ID sebesar 3 pada tabel JOB, Ini adalah baris untuk Long Plaza, yang konsisten dengan data pada Peraga 14 Demikian juga, penyewaan ini adalah untuk contractor yang memiliki ID sebesar I (KH Ser i vices) dan untuk equipment yang mempunyai ID sebesar 3 (back hoe nomor 10020).
Daftar pada Peraga 1-1 memperlihatkan sebuah kolom berlabel Charge, tetapi tidak ada kolom semacam ini di Peraga 1-4. Alasannya adalah bahwa kita bisa menghitung kolom Charge saat kita membuahkan datanya. Jadi, dalam database kita, Charge akan dihitung dan bukan disimpang dalam kolom Ini dapat menjadi atau bukan merupakan desain yang bagus, yang sekali lagi tergantung pada kebijakan Lakeview. Salah satu konsekuensi dari desain ini adalah jika nilai Daily Rate pada tabel RENTAL diubah, maka semua biaya akan didasarkan pada rate baru ketika biaya itu dihitung lebih lanjut. Jadi kita dapat memperlihatkan nilai Charge yang berbeda dengan yang dibebankan untuk pelanggan saat itu. Sekali lagi, hal ini akan kita bahas pada bab-bab berikutnya.
Jadi, untuk memecahkan masalah yang terjadi dengan sebuah daftar seperti pada Peraga 1-1. kita membagi daftar itu menjadi empat tabel, yang masing-masing memiliki tema tersendiri. Kemudian, kita menghubungkan tabel-tabel tersebut dengan menggunakan identifier yang unik. Sebagaimana akan Anda pelajari, identifier yang unik disebut sebagai kolom key, atau key saja. Sebuah key yang merepresentasikan hubungan seperti Jobit pada tabel RENTAL disebut sebagai foreign key. Kita akan sering menggunakan terminologi ini dalam pembahasan Pemrosesan Database selanjutnya.
Menggabungkan Beberapa Tabel
“Aha,” mungkin ini yang Anda katakan, “tetapi mana daftarnya?” Peraga 1-4 mungkin bagus dari sudut pandang desain pemrosesan database, tetapi pada user di Lakeview, paling tidak beberapa di antaranya ingin melihat sebuah daftar seperti yang pertama kali kita buat. Di mana daftar itu? Bab 6 sampai 8 akan mendiskusikan sebuah bahasa, tepatnya adalah subbahasa data, yang disebut Structured Query Language, atau SQL (diucapkan SEE-QUEL), yang digunakan untuk memanipulasi tabel seperti pada Peraga 1-4. SQL adalah standar industri yang didukung oleh semua produk utama DBMS, Statement SQL berikut ini telah digunakan dalam Access untuk menggabungkan beberapa tabel guna memperlihatkan daftar seperti pada Peraga 1-1
SELECT JOB.Name, CONTRACTOR.Contractor, CONTRACTOR.Phone, EQUIPMENT.(Equipment Type), EQUIPMENT.(Equipment Number), EQUIPMENT.(Daily Rate), RENTALS.(Start Date), RENTAL.(End Date), RENTAL.Days, (Daily Rate*Days) AS Charge FROM JOB EQUIPMENT, CONTRACTOR, RENTAL WHERE CONTRACTORID = RENTAL.ContractorlD AND EQUIPMENT ID = RENTAL Equipment ID AND JOB ID = RENTAL Job iD.
Hasil dari statement ini adalah tabel yang diperlihatkan pada Peraga 1-5, Tabel ini berisi daftar koreksi kesalahan atau error yang kita buat.
Periksa statement SQL sebelumnya untuk menentukan struktur umumnya, tetapi tidak perlu memahaminya secara rinci. Setelah Anda selesai mempelajari buku ini, Anda akan dengan mudah menulis statement semacam ini dan statement Pemrosesan Database lainnya dengan kompleksitas yang lebih besar.
APA ITU SISTEM PEMROSESAN DATABASE?
Peraga 1-6 memperlihatkan empat unsur dasar sebuah database. Dimulai dari kiri, user menerapkan sistem database untuk melaksanakan pekerjaannya. Mereka memasukkan data baru, mengubah data yang ada, dan menghapus data. Mereka juga membaca data dengan berbagai cara melalui form, via queries, dan dengan membuat laporan. Komponen berikutnya, yaitu aplikasi database, adalah satu set atau lebih program komputer yang berfungsi sebagai penghubung antara user dan DBMS, yaitu sebuah program yang memroses database. Aplikasi ini menghasilkan form, query, dan report: mengirim serta menerima data dari dan ke user dan men transformasikan permintaan user akan aktivitas manajemen data oleh DBMS.
Tujuan DBMS adalah menerima permintaan aplikasi dan menerjemahkan permintaan ini ke perintah baca atau tulis pada file database. Dalam sebagian besar kasus, DBMS menerima statement SQL dan menerjemahkan statement ini menjadi instruksi ke sistem operasi komputer untuk membaca dan menulis data dalam file database. Sekarang, mari kita bahas fungsi program aplikasi dan DBMS secara lebih detil.
Fungsi-Fungsi Program Aplikasi
Peraga 1-7 menyajikan daftar fungsi aplikasi database dan DBMS. Pertama, program aplikasi membuat dan memroses form. Dalam kasus aplikasi berdasarkan Web, misalnya, program aplikasi menghasilkan HTML dan membentuk Web-form lainnya yang menyebabkan form tersebut dapat ditampilkan pada komputer user. Ketika user mengisi form dan mengirim kembali data, kemudian program aplikasi menentukan tabel data mana yang perlu diubah dan mengirim permintaan ke DBMS untuk melakukan perubahan yang diperlukan. Jika terjadi kesalahan dalam proses ini, maka program aplikasi akan menerima error itu dan memunculkan pesan yang tepat ke user atau mengambil tindakan lain.
Fungsi kedua dari program aplikasi yang diperlihatkan pada Peraga 1-7 adalah untuk membuat dan mentransmisikan queries. Di sini, program aplikasi pertama-tama akan membuat permintaan query ke DBMS. Permintaan seperti ini hampir selalu dinyatakan dalam bentuk SQL. Begitu query selesai diproses, hasilnya diformat dan kemudian ditransmisikan ke user. Fungsi ketiga sama dengan yang kedua. Pertama program aplikasi akan menqueries ke DBMS untuk data (sekali lagi dengan menggunakan SQL) dan kemudian memformat hasilnya dalam bentuk laporan
Selain form, queries, dan laporan, program aplikasi juga dapat mengupdate database sesuai dengan logika aplikasi spesifik. Misalnya pada aplikasi order entry, misalkan seorang user meminta 10 unit item tertentu. Lebih lanjut, misalkan bahwa ketika program aplikasi meng-queries database (melalui DBMS), program itu hanya menemukan 8 item dalam persediaan. Apa yang akan terjadi? Ini tergantung pada logika aplikasi tertentu. Mungkin tidak satu pun item yang akan dikeluarkan dari persediaan dan user harus diberitahu, atau mungkin kedelapan item itu harus dipindahkan dan dua lagi pada order atau pesanan berikutnya. Atau mungkin beberapa tindakan lainnya harus dilakukan. Apapun pilihannya, ini merupakan tugas program aplikasi untuk menggunakan logika yang tepat Fungsi terakhir dari program aplikasi yang ada pada Peraga 1-7 adalah pengendalian aplikasi.
Ada dua cara untuk melakukannya. Pertama, aplikasi perlu ditulis sehingga hanya opsi logis saja yang diberikan kepada user. Aplikasi ini dapat membentuk sebuah menu sesuai dengan pilihan user. Dalam hal ini, aplikasi harus menjamin bahwa hanya pilihan yang tepat yang tersedia. Kedua, aplikasi perlu mengendalikan aktivitas data dengan DBMS. Aplikasi ini dapat mengarahkan DBMS, misalnya, untuk melakukan perubahan data tertentu sebagai suatu unit. DBMS dapat diperintahkan untuk melakukan semua perubahan ini atau tidak sama sekali.
Fungsi-Fungsi DBMS
Jika program aplikasi seringkali ditulis oleh perusahaan yang menggunakannya, maka DBMS hampir selalu diberi lisensi sebagai produk komersial. Produk komersial DBMS termasuk Oracle dari Oracle Corporation, DB2 dari IBM Corporation, dan Access serta SQL Server dari Microsoft. Ada lusinan produk DBMS lainnya, tetapi hanya keempat produk itu yang menguasai pangsa pasar Fungsi produk DBMS disajikan pada Peraga 1-7. DBMS digunakan untuk membuat database itu sendiri, membuat tabel, dan membuat struktur pendukung lainnya seperti indeks.
Dua fungsi DBMS berikutnya adalah membaca dan mengupdate data database. Untuk melakukan hal ini, DBMS menerima SQL dan permintaan lainnya serta mentransformasikan permintaan ini menjadi tindakan pada database. Fungsi DBMS lainnya adalah memelihara semua struktur database. Sebagai contoh, mungkin kita perlu mengubah format sebuah tabel atau struktur pendukung lainnya dari waktu ke waktu. Para pengembang atau developer meng gunakan DBMS untuk melakukan perubahan semacam itu.
Pada kebanyakan produk DBMS, masih mungkin untuk menyatakan aturan tentang nilai data DBMS tersebut. Misalnya, pada Peraga 1-4, apa yang akan terjadi jika user salah mengisi angka 4 untuk Contractor ID dalam tabel RENTAL? Tidak ada contractor semacam itu, dan data seperti ini akan menimbulkan banyak kesalahan. Untuk mencegah hal ini terjadi, kita dapat memberitahu DBMS bahwa setiap nilai ContractoriD dalam tabel RENTAL harus me rupakan nilai ID dalam tabel CONTRACTOR. Jika tidak ada nilai seperti itu, maka permintaan penyisipan atau update tidak bisa dilakukan. Aturan seperti ini, yang disebut batasan integritas referensial referential integrity constraints), bisa dilakukan oleh DBMS.
Tiga fungsi terakhir DBMS seperti yang tercantum pada Peraga 1-7 berhubungan dengan manajemen database. DBMS mengendalikan concurrency dengan menjamin bahwa satu pe kerjaan user tidak akan mengganggu pekerjaan user lainnya. Fungsi ini yang sulit dan penting akan dibahas pada kesempatan lain. DBMS juga memiliki sistem keamanan yang digunakan untuk menjamin bahwa hanya user yang berwenang yang bisa memakai database. User dapat dicegah untuk melihat data tertentu dan tindakan mereka bisa dibatasi dengan membuat hanya data tertentu yang berubah.
Terakhir, database sebagai pusat penyimpanan data, merupakan asset organisasi yan sangat bernilai. Sebagai contoh, mari pertimbangkan nilai database buku dari perusahaan sepen Amazon.com. Karena database demikian penting, maka perlu diambil langkah-langkah untu menjamin bahwa tidak ada data yang akan hilang akibat kesalahan masalah hardware atau bencana alam. DBMS menyediakan fasilitas untuk membackup data pada database memunculkannya kembali ketika diperlukan.
Definisi dan Komponen Database
Pada Peraga 1-7, komponen sistem database paling kanan adalah database itu sendiri. Sebelum melanjutkan pembahasan Pemrosesan Database, kita perlu mendefinisikan terminologi database secara lebih spesifik dan menggambarkan komponennya.
Secara umum. sebuah database adalah sekumpulan reconts yang saling berhubungan yang menggambarkan dirinya sendiri. Untuk semua database relasional (hampir semua database yang ada sekarang ini, dan hanya jenis itulah yang akan kita bahas saat ini), kita bisa memodifikasi definisi ini dengan mengatakan sebuah database adalah sekumpulan tabel yang berhubungan yang menggambarkan dirinya sendiri.
Istilah kunci dari definisi ini adalah menggambarkan dirinya sendiri (self-describing) dan tabel yang saling berhubungan. Apakah Anda sudah mempunyai ide yang baik tentang apa yang dimaksud dengan tabel yang saling berhubungan. JOB, CONTRACTOR, EQUIPMENT dan RENTAL adalah contoh-contoh dari tabel yang saling berhubungan. Kita akan meningkatkan pemahaman Anda tentang istilah Pemrosesan Database ini pada kesempatan lain. Dengan menggambarkan dirinya sendiri, berarti bahwa deskripsi struktur database terkandung dalam database itu sendiri. Jadi, kita selalu dapat menentukan isi dari sebuah database dengan hanya melihat ke dalamnya. Kita tidak harus melihat ke tempat lain.
Situasi ini sama seperti di perpustakaan kampus Anda. Anda bisa mengatakan apa yang ada di dalam perpustakaan dengan mengecek kartu katalog yang berada di dalam perpustakaan itu sendiri Data tentang struktur sebuah database disebut dengan metadata. Contoh-contoh metadata adalah nama-nama tabel, nama-nama kolom dan tabel di mana keduanya termasuk, properti duri tubel serta kolom, dan seterusnya.
Peraga 1-8 memperlihatkan contoh metadata dari database Lakeview yang digambarkan sebelumnya. Sebuah tabel yang bernama SYSTABLES berisi data tentang masing-masing tabel dalam database, dan tabel kedua yang bernama SYSCOLUMNS berisi data tentang masing masing kolom dan hubungan antara kolom dengan tabel. Peraga ini hanya merupakan sebuah contoh metadata tabel seperti ini ada dalam database yang diproses oleh produk-produk seperti Oracle SQL Server, atau DB2. tetapi biasanya lebih rumit. Namun demikian, perhatikan bahwa metadata itu sendiri terdapat dalam tabel. Ini berarti orang yang paham bisa menggunakan SQL untuk mengquery metadata, seperti mereka mengquery data user.
Semua vendor DBMS memberikan satu set tool untuk menampilkan struktur databasenya. Sebagai contoh, Peraga 1-9 memperlihatkan penggunaan perintah Describe pada database Oracle Seperti terlihat perintah ini memberikan daftar nama dan properti kolom di sebuah tabel.
Sesuai dengan Peraga 1-7, database berisi data user dan metadata, seperti yang baru saja diterangkan. Sebuah database juga memiliki indeks dan struktur lain yang ada untuk memperbaiki kinerja database. Kita akan membahas lebih lanjut tentang struktur Pemrosesan Database ini pada bagian selanjutnya. Untuk sekarang ini, kita hanya perlu memahami bahwa indeks adalah seperti indeks di bagian belakang sebuah buku. Namun demikian, tujuan indeks di sini adalah bukan memperlihatkan di mana topik-topik tertentu dapat ditemukan dalam sebuah buku, tetapi memperlihatkan di mana record tertentu bisa ditemukan dalam sebuah tabel.
Sebagai contoh, seseorang bisa membuat indeks tentang Equipment DI dalam tabel RENTAL Indeks ini bisa digunakan untuk menentukan semua baris dengan cepat dalam tabel RENTAL yang memiliki nilai ID tertentu. Stored procedure atau prosedur tersimpan adalah sebuah program yang disimpan dalam database. Beberapa prosedur tersimpan adalah program utilitas untuk database. Sebagai contoh, Lakeview mungkin memiliki prosedur tersimpan (stored pricedure) untuk menghapus dan membackup semua data penyewaan yang berumur lebih dari setahun, sepanjang semua pembayaran telah diterima. Prosedur tersimpan seperti ini mungkin diperlukan untuk mengecek sejumlah tabel dalam database dan menggunakan logika yang rumit. Prosedur tersimpan lainnya mengimplementasikan bagian-bagian dari logika aplikasi. Contohnya adalah prosedur tersimpan untuk menghasilkan back orders atau pesanan kembali.
Lokasi
Trigger adalah sebuah prosedur yang digunakan ketika aktivitas data tertentu terjadi. Lakeview mungkin mempunyai sebuah trigger CustomerChek untuk menjamin bahwa pelanggan memiliki peringkat kredit yang baik sebelum setiap data RENTAL baru dapat disimpan untuk id pelanggan itu. Saat dilakukan penambahan baris pada tabel RENTAL, DBMS akan meload dan memroses trigger sebelum melakukan update. Dalam kasus ini, trigger akan mencegah penani bahan baris han jika kreditnya buruk. Seperti prosedur tersimpan, trigger disimpan dalam database. Prosedur tersimpan dan trigger ditulis dalam bahasa yang unik pada DBMS, atau ditulis dalam bahasa bertujuan umum seperti JAVA. Anda akan mempelajari prosedur tersimpan dan trigger pada artikel lain.
Terakhir, beberapa database mengandung aplikasi metadata; ini hanya merupakan data yang menggambarkan unsur-unsur aplikasi seperti form dan laporan. Sebagai contoh, Microso Access mengusung metadata aplikasi sebagai bagian dari databasenya.
Tiga Contoh Sistem Database
Teknologi database dapat digunakan pada aplikasi yang luas. Di satu sisi. peneliti bisa meng. gunakan teknologi database untuk menelusuri husil eksperimen di laboratoriumnya. Pada di. utabuse seperti ini, mungkin hanya ada sedikit tabel, dan masing-masing tabel paling banyak akan memiliki beberapa ratus baris. Peneliti akan menjadi satu-satunya user aplikasi ini Di sisi lain, ada database yang sangat besar yang mendukung organisasi internasional.
Database seperti ini mempunyai ratusan tabel dengan jutaan baris data dan mendukung ribuan user, Database tersebut digunakan 24 jam sehari, tujuh hari seminggu. Untuk membackup database semacam itu merupakan tugas yang sulit. Bagian ini akan mengilustrasikan tiga aplikasi database yang berbeda; database yang digunakan oleh individu, yang digunakan oleh bisnis kecil, dan yang digunakan oleh lembaga pemerintahan yang besar.
Mary Richards Housepainting, Mary Richards adalah tukang cat rumah profesional yang mengoperasikan dan memiliki sebuah perusahaan kecil yang pegawainya adalah dia sendiri, tukang cat profesional lainnya, dan tukang cat paruh waktu saat diperlukan saja. Mary telah menggeluti bisnis ini selama 10 tahun dan telah meraih reputasi sebagai pengecat berkualitas tinggi dengan tarif yang wajar. Mary mendapatkan order dari permintaan ulang dan dari mulut-ke-mulut. Selain dari pemilik rumah, Mary juga mendapatkan order dari kontraktor bangunan dan perancang interior profesional.
Pelanggan dapat mengingat Mary dengan lebih baik daripada Mary mengingat pelanggannya. Tentu saja, kadang-kadang Mary merasa malu ketika seorang pelanggan menelepon dan mengatakan, “Hai Mary, ini John Maples. Tiga tahun yang lalu Anda mengecat rumah saya”. Mary sadar bahwa dia harusnya ingat, tetapi Mary mengecat lebih dari 50 rumah dalam setahun. sehingga susah untuk mengingatnya. Situasi ini menjadi semakin parah ketika pelanggan berkata seperti, “Tetangga saya suka atas pekerjaan yang telah Anda lakukan pada rumah kami dan ingin hal yang sama dilakukan pada rumahnya”.
Untuk membantu Mary mengingat dan menelusuri catatan bisnisnya dengan lebih baik, Mary menyewa konsultan untuk mengembangkan sebuah database dan aplikasi database yang akan digunakan pada komputer personalnya. Database ini menyimpan catatan tentang pelanggan, pekerjaan, sumber referal dalam bentuk tabel, seperti diperlihatkan pada contoh dalam Peraga 1-10
Seperti dinyatakan sebelumnya, DBMS menyimpan dan mengeluarkan kembali data dalam tabel-tabel tersebut. Sayangnya, apabila data-data ini berbentuk tabel, maka data itu tidak begitu berguna bagi Mary. Dia sebenarnya ingin mengetahui bagaimana pelanggan dan pekerjaan serta referal berhubungan satu sama lain. Sebagai contoh, pekerjaan apa yang telah dia lakukan untuk pelanggan tertentu, atau pelanggan mana yang telah ditunjukkan oleh orang tertentu.
Untuk menyediakan kemampuan ini, konsultan Mary membuat aplikasi database yang memroses form data-entry dan membuat laporan. Mari pertimbangkan contoh form dalam Peraga 1-11. Di sini Mary memasukkan data tentang pelanggan seperti nama, nomor telepon, dan alamat. Dia juga menghubungkan pelanggan dengan sumber referal tertentu dan memasukkan data tentang pekerjaan yang dilakukan untuk pelanggan itu. Data ini kemudian ditampilkan dalam laporan seperti ditunjukkan pada Peraga 1-12. Penggunaan lain dari database ini mencakup pencatatan estimasi penawaran, penelusuran sumber referal, dan pembuatan label surat untuk literatur penjualan langsung yang Mary kirim dari waktu ke waktu. Aplikasi database dan DBMS memproses form dan menyimpan data yang dimasukkan ke dalam tabel yang disajikan pada Peraga 1-10.
Demikian juga aplikasi database dan DBMS akan menyaring data dari tabel dan membuat sebuah laporan seperti ditunjukkan pada Peraga 1-12. Mari pertimbangkan sekali lagi data pada Peraga 1-10, dan perhatikan bagaimana baris dalam tabel saling bereferensi silang satu sama lain. Masing-masing JOB memiliki Customer_ID dari CUSTOMER yang membeli JOB tersebut, dan masing-masing CUSTOMER memiliki Source_ID dari orang yang mereferensi pelanggan itu. Referensi ini digunakan untuk menggabungkan data guna menghasilkan form dan laporan seperti terlihat pada Peraga 1-11 dan 1-12.
Seperti dapat Anda bayangkan, Mary tidak tahu bagaimana mendesain tabel dalam Peraga 1-10, bagaimana menggunakan DBMS untuk membuat tabel tersebut, atau bagaimana mengembangkan aplikasi untuk membuat form dan report. Tetapi saat Anda selesai membahas ini, Anda harus tahu bagaimana menggunakan teknologi database untuk membuat Pemrosesan Database ini dan aplikasinya. Anda juga harus tahu bagaimana mendesain dan memanipulasi tabel untuk membuat form serta report yang jauh lebih rumit.
Database Mary Richard disebut sebagai database single-user karena hanya satu user yang dapat mengakses database itu pada waktu tertentu. Dalam banyak kasus ini terlalu membatasi, banyak orang yang perlu mengakses database secara serentak dari beberapa komputer. Database multi-user semacam ini lebih rumit karena aplikasi dan DBMS harus menjaga agar masing-masing pekerjaan user tidak saling mengganggu.
Trebel Clef Music menggunakan sebuah aplikasi database untuk menelusuri instrumen musik yang disewakannya. Trebel Clef Music membutuhkan aplikasi database multi-user karena beberapa wiraniaga mungkin perlu menyewa instrumen musik pada waktu yang sama selama periode sibuk. Selain itu, manajer toko juga perlu mengakses database rental untuk menentukan kapan memesan instrumen dari jenis tertentu. Dia tidak mau mengganggu proses penyewaan saat melakukan hal ini.
Toko Treble Clef mempunyai sebuah local area network (LAN) yang menghubungkan beberapa komputer personal ke komputer server yang menyimpan database rental, seperti ditunjukkan pada Peraga 1-13. Masing-masing klerk harus mengakses sebuah aplikasi database yang memiliki tiga form seperti diilustrasikan pada Peraga 1-14. Form Customer digunakan untuk menyimpan data pelanggan, form Rental Agreement digunakan untuk menelusuri instrumen yang telah disewakan dan apakah instrumen itu sudah dikembalikan atau belum, dan form Instrument Data digunakan untuk memperlihatkan data instrumen serta sejarah penyewaan.
Untuk memahami permasalahan yang harus di atasi dalam sebuah database multi-user, pikirkan apa yang akan terjadi ketika dua pelanggan berusaha menyewa klarinet B-flat yang sama pada saat bersamaan. DBMS dan program aplikasi harus dapat mendeteksi situasi ini dan memberitahu klerk bahwa pelanggan harus memilih instrumen yang berbeda.
State Licensing dan Vehicle Registration Bureau. Sekarang mari perhatikan aplikasi teknologi database yang lebih besar, biro pemberian SIM negara bagian dan registrasi mobil atau STNK. Lembaga ini memiliki 52 pusat lokasi untuk menguji pengemudi, serta mengeluarkan dan memperpanjang SIM: lembaga ini juga memiliki 37 kantor yang mengeluarkan STNK.
Pegawai kantor ini mengakses sebuah database untuk melakukan pekerjaannya. Sebelum orang dapat menerima atau memperpanjang SIM-nya, catatan mereka yang ada dalam data: base seperti pelanggaran lalu lintas, kecelakaan, atau penahanan akan diperiksa. Data-data ini digunakan untuk menentukan apakah SIM dapat diperpanjang dan, jika bisa, apakah harus dibatasi. Demikian juga, pegawai departemen registrasi mobil mengakses database untuk me. nentukan apakah mobil ini sudah terdaftar sebelumnya: jika sudah, maka atas nama siapa dan apakah ada hal-hal lain yang bisa menghambat registrasi,
Sistem database seperti ini memiliki ratusan user, tidak hanya pegawai bagian SIM dan registrasi mobil tetapi juga pegawai di departemen pendapatan negara bagian dan petugas polisi, Komponen-komponen sistem ini diperlihatkan dalam Peraga 1-15.
Perhatikan bahwa aplikasi ini ditulis dalam bahasa yang berbeda dan mungkin dalam periode waktu yang juga berbeda. Selain itu, Oracle juga memproses dua database yang berbeda pada aplikasi ini. Karena pentingnya aplikasi Pemrosesan Database tersebut, maka sistem harus tersedia 24 jam sehari dan tujuh hari seminggu. Tingkat ketersediaan seperti ini membuat tugas sederhana seperti membackup menjadi sangat menantang.
Database organisasi yang besar seperti biro pemberian SIM dan registrasi merupakan aplikasi pertama dari teknologi database. Sistem ini telah digunakan selama 20 sampai 30 tahun, dan telah dimodifikasi untuk memenuhi tuntutan perubahan selama periode beroperasinya, Contoh lain dari database organisasi adalah yang menyangkut pemrosesan rekening di bank dan lembaga keuangan, sistem produksi dan suplai bahan pada pabrikan besar, pemrosesan catatan medis di rumah sakit dan perusahaan asuransi, serta kantor-kantor pemerintahan. Saat ini, banyak organisasi yang menyesuaikan aplikasi database organisasinya yang memungkinkan pelanggan mengakses dan bahkan mengubah data mereka sendiri melalui Internet, Jika Anda bekerja pada organisasi yang besar, Anda mungkin ditugaskan pada proyek semacam itu.
Perbandingan Aplikasi Database
Contoh-contoh yang disajikan sebelumnya adalah representasi sampling dari penggunaan teknologi database. Ratusan ribu database seperti yang digunakan oleh Mary Richards Housepainting: database single-user dengan jumlah data yang relatif sedikit katakanlah, kurang dari 10 megabytes Form dan laporan untuk database ini umumnya sederhana dan bersifat langsung.
Database lainnya serupa dengan yang digunakan oleh Treble Clef Music: usernya lebih dari satu orang, tetapi biasanya kurang dari 20 sampai 30 user. Datanya cukup banyak-sekitar 50 atau 100 megabytes. Form dan laporan yang diperlukan untuk mendukung beberapa fungsi bisnis yang berbeda cukup rumit. Database terbesar adalah seperti dalam kasus registrasi mobil yang memiliki ratusan user dan triliunan byte data. Banyak aplikasi yang berbeda digunakan, dengan masing-masing aplikasi memiliki form dan laporan tersendiri. Karakteristik dari jenis database seperti ini diikhtisarkan dalam Peraga 1-16. Setelah Anda selesai mempelajari Pemrosesan Database ini, Anda harus mampu mendesain dan membuat database serta aplikasi database seperti yang digunakan oleh Mary Richards dan Treble Clef.
Anda mungkin tidak bisa membuat yang sebesar dan serumit seperti registrasi mobil, tetapi Anda bisa berperan sebagai anggota tim untuk mendesain serta membuat database seperti itu, Anda juga harus bisa membuat database yang kecil hingga sedang dengan menggunakan teknologi Internet.
BAGAIMANA MEMBUAT DATABASE?
Proses pembuatan sistem database pada pokoknya sama dengan proses pembuatan sistem informasi lainnya. Seperti terlihat pada Peraga 1-17, ada tiga fase dasar yakni: requirement, desain, dan implementasi. Sebagian besar Pemrosesan Database ini membahas kolom tengah, walaupun kita juga akan membahas desain dan implementasi query serta kode aplikasi dalam beberapa artikel. Akan tetapi, kita terutama akan menekankan pada pengembangan komponen database.
Fase Requirement
Selama fase requirement, sebuah model data dikembangkan; jenis item data, panjang, dan properti lainnya ditentukan; dan batasan serta aturan mengenai konsepsi data didefinisikan.
Sebuah model data adalah representasi logis dari struktur database. Pemodelan data sangatlah penting karena desain database dan semua strukturnya tergantung pada model duta. Jika model datanya tidak benar, maka hasilnya akan sia-sia, menjengkelkan, tertunda, dan menyebabkan frustasi. Karena pentingnya, dua bab berikut akan menggambarkan pemodelan data dengan lebih detil.
Peraga 1-18 memperlihatkan sebuah contoh diagram model data untuk Lakeview Rental. Peraga ini adalah contoh dari diagram entity relationship, yaitu sebuah cara untuk meng ekspresikan model data yang telah menjadi standar industri. Dalam peraga ini: JOB, CONTRACTOR, RENTAL, dan EQUIPMENT adalah entitas. Tanda wajik atau belah ketupat me representasikan hubungan antara entitas. Anda bisa mengabaikan rinciannya sekarang. Anda hanya perlu mengetahui bahwa diagram seperti ini diperlukan untuk dokumentasi pemodelan data.
Selama fase ini, kita perlu mendefinisikan properti item seperti, jenis data, panjang maksimum, apakah diperlukan nilai atau tidak, dan seterusnya. Selain itu, constraint atau batasan mengenai nilai item data dan aturan pemrosesan data juga perlu didefinisikan. Contoh batasan data adalah sebagai berikut: nilai Equipment Type harus salah satu dari (“Backhoe”. Small Crane’ Medium Crane”. “Large Crane’. Scaffolding’). Kita akan membahas batasan dan aturan pada artikel berikutnya.
Fase Desain
Selama fase desain model data ditransformasikan menjadi tabel dan hubungan. Peraga 1-19 memperlihatkan sebuah contoh diagram struktur data, yaitu diagram yang digunakan untuk memperlihatkan tabel dan hubungan hubungannya. Pada diagram ini, garis antara EQUIPMENT dan RENTAL merepresentasikan sebuah hubungan (relationship). Cabang (fork) di sebelah garis RENTAL berarti bahwa sebuah baris pada tabel EQUIPMENT dapat berkaitan dengan banyak baris di tabel RENTAL. Kita akan menggunakan diagram ini atau diagram serupa untuk mengekspresikan desain database pada pembahasn khusus. Anda akan mempelajari arti unsur-unsur lain pada peraga ini dalam artikel tersebut.
Kebutuhan akan indeks ditentukan selama fase desain database, dan kadang-kadang karakteristik indeks juga dispesifikasikan (kita mengatakan kadang-kadang karena tidak semua t produk DBMS membolehkan spesifikasi ini. Mekanisme batasan, prosedur tersimpan dan trigger semuanya juga didesain, Anda akan mempelajari tentang hal-hal tersebut pada artikel lain.
Fase Implementasi
Seperti terlihat pada Peraga 1-17, tabel dan hubungannya diciptakan selama fase implementasi Ada dua cara umum yang dapat digunakan untuk membuat tabel itu; via SQL dan via tool desain grafis. Peraga 1-20(a) memperlihatkan statement SQL untuk membuat tabel EQUIPMENT dan RENTAL serta untuk mendefinisikan hubungan di antara keduanya. Statement SQL seperti ini dapat dimasukkan ke database untuk mendefinisikari tabel dan hubungannya. Peraga 1-20(b) memperlihatkan teknik yang berbeda, di mana tool desain grafis digunakan untuk mendefinisikan tabel CONTRACTOR pada SQL Server. Sebagian besar produk DBMS memperbolehkan kedua teknik ini digunakan. Demikian juga, pada sebagian besar produk DBMS, batasan data juga bisa dispesifikasikan dengan SQL atau tool grafis. Anda akan mempelajari cara menulis SQL untuk kasus ini pada artikel lain. Selama implementasi, prosedur tersimpan (stored procedure) dan trigger akan ditulis dan diuji, Anda akan mempelajari bagaimana melakukannya untuk Oracle pada artikel lain dan untuk SQL Server pada artikel khusus. Terakhir, database akan diisi dengan data dan sistemnya akan diuji.
Sejujumya, hanya sedikit sistem informasi yang pernah diselesaikan. Biasanya, saat database dan aplikasinya telah selesai, akan ada kebutuhan untuk memodifikasinya guna memenuhi standar baru yang berkembang selama fase implementasi. Modifikasi seperti ini juga melewati tiga fase yang sama (requirement, desain, dan implementasi), tetapi dilakukan dalam konteks database dan aplikasi yang telah ada. Mengubah database yang sudah ada bisa menjadi sangat sulit serta menantang dan kita akan membahas proses ini, yang disebut desain ulang database (database redesign), pada kesempatan lain.
Pengembangan Aplikasi
Pengembangan aplikasi dikerjakan berbarengan dengan pengembangan database. Artikel kali ini dipersembahkan khusus untuk membahas pemrosesan database, sehingga kita tidak akan membahas pengembangan aplikasi secara lebih mendalam. Namun secara umum, kita akan mengabaikan kolom ketiga dari Peraga 1-17 untuk kelas pengembangan sistem Anda.