Bab 9 : 1. Faktor – factor yang perlu diperhatikan pada waku memilih DBMS adalah : Definisi data Pemakaian Primary Key Spesifikasi Foreign Key Tipe data yang tersedia Spesifikasi domain Kemudahan dalam Restrukturisasi Kontrol Integritas Menunjukan mekanisme kerja Kamus data Independen data Model data pokok Evolusi skema Definisi Fisik Struktur file yang tersedia Pemeliharaan struktur file Kemudahan dalam reorganisasi Penggunaan Index Panjang field/ record yang bisa diubah- ubah Kompresi data Enkripsi secara rutin Persyaratan memory Persyaratan storage <penyimpanan data> Accessibility Bahasa Pemrograman Query : SQL2/SQL3 ODMG compliant Interface ke 3GLs Multi – user Keamanan : Kontrol akses Mekanisme Authorisasi Penanganan Transaksi Backup dan recovery secara rutin Fasilitas checkpoint Fasilitas log Granularity of concurrency Strategi Deadlock Resolution Model transaksi lanjut Proses Query Pararel Peralatan Ukuran tampilan Tuning Fasilitas load/ unload Monitor penggunaan user Pendukung administrasi database Pengembangan Peralatan 4GL/5GL Peralatan CASE Kemampuan windows Prosedur Storage, Triggers, dan Rules Peralatan pengembangan Web Faktor keistimewaan lain Kemampuan upgrade Kestabilan vendor Berbasiskan user Pendukung training & user Dokumentasi Persyaratan sistem operasi Biaya Bantuan Online Penggunaan standar Pengaturan versi Optimisasi Query Extensibile Scalability Pendukung untuk peralatan analisis Mudah dipadukan dengan DBMS & sistem lain Integrasi Web Peralatan Replikasi Kemampuan distribusi Portability Persyaratan Hardware Pendukung Network Kemampuan Orientasi Objek Arsitektur <2/3 client server> Penampilan Transaction throughput Penggunaan maksimum oleh user secara bersamaan Pendukung XML Cara menentukan ranking dan score berdasarkan bobot dan rating DBMS yang dipilih adalah dengan mengukur setip / sekelompok fitur dengan penghargaan atas seberapa pentingnya penggunaan mereka terhadap organisasi dan untuk memperoleh nilai keseluruhan yang dapat digunakan untuk membandingkan produk- produk. Table dibawah ini mengilustrasikan tipe analisis untuk kelompok ‘definisi fisik’ sebagai contoh untuk satu produk DBMS. FEATURES / fitur Struktur file yang tersedia Pemeliharaan struktur file Kemudahan dalam reorganisasi Penggunaan Index Panjang field/ record yang bisa diubahubah Kompresi data Enkripsi secara rutin Persyaratan memory Persyaratan storage <penyimpanan data> TOTALs Grup Definisi Fisik COMMENTS Choise of 4 NOT self-regulating RATING 8 6 4 6 6 WEIGHTING 0.15 0.2 0.25 0.15 0.15 SCORE 1.2 1.2 1.0 0.9 0.9 Specify with file structure None 7 0.05 0.35 4 0 0 0.05 0.00 0.00 0.2 0 0 41 5.75 1.0 0.25 5.75 1.44 Setiap fitur terplilih akan diberikan nilai 10, pertimbangan nilai yang lenih dari satu mengindikasi pada adanya hubungan yang penting dengan fitur yang lain dalam kelompok, dan perhitungan nilai berdasarkan pada pertimbangan waktu. Sebagai contoh : pada table diatas, fitur ‘Kemudahan dalam Reorganisasi’ diberi peringkat 4, dan pertimbangan sebesar 0.25, menghasilkan nilai 1.0. Fitur ini mendapat pertimbangan nilai tertinggi dalam table tersebut, mengindikasi pentingnya peran fitur tersebut dalam proses evaluasi. Lebih jauh, fitur ‘Kemudahan dalam Reorganisasi’ dipertimbangkan, sebagai contoh ; lebih tinggi nialinya dibandingkan dengan fitur ‘Kompresi data’ dengan pertimbangan nilai terendah 0.05. Dimana 2 fitur lainnya ‘Persyaratan Memory’ dan ‘Persyaratan Storage’ diberikan pertimbangan nilai 0.00 dan oleh karena itu tidak dimasukkan dalam evaluasi ini. Kemudian kita menjumlahkan secara bersama- sama semua nilai dari setiap fitur yang telah dievaluasi untuk smendapatkan nilai total untuk kelompok tersebut. Nilai dari grup tersebut akan dijadikan subjek dalam pertimbangan nilai untuk mengindikasikan adanya hubungan yang penting dalam fitur kelompok lainnya yang termasuk dalam evaluasi. Sebagai contoh, pada table diatas, total nilai untuk grup ‘Definisi Fisik’ adalah 5.75 tetapi nilai tersebut mendapat pertimbangan nilai 0.25. Akhirnya semua pertimbangan nilai untuk setiap fitur kelompok yang ditaksir dijumlahkan untuk menghasilkan nilai tunggal untuk produk DBMS, yang akan dibandingkan dengan nilai dari produk- produk lainnya. Produk dengan nilai tertinggi adalah yang terbaik. 2. ~ KASUS APPENDIX B ~ B.1 The University Accommodation Office Case Study Pertimbangan saya dalam memilih DBMS yang sesuai untuk kasus ini adalah : A. Data yang diperlukan : MURID TEMPAT TINGGAL FLAT MURID PENYEWAAN INVOICE PEMERIKSAAN FLAT MURID STAF AKOMODASI PELAJARAN NEXT-OF-KIN B. Pemilihan DBMS : DBMS yang dipilih adalah DBMS yang memenuhi semua criteria evaluasi produk DBMS <yang tercantum dalam soal nomor1> akan tetapi lebih dititikberatkan pada criteria definisi fisik dan definisi data, seperti : persyaratan storage <penyimpanan data> dan persyaratan memori karena data-data yang disimpan dalam jumlah yang besar dan tiap data membutuhkan primary key yang unik. Selain itu dibutuhkan pula DBMS yang mudah dipelihara <maintenance>, mudah distruktur ulang, dan direorganisasi untuk mencegah kehilangan data pada waktu mengubah/ mengganti/ mengupdate software, hardware maupun network yang digunakan oleh DBMS. B.2 The EasyDrive School of Monitoring Case Study Pertimbangan saya dalam memilih DBMS yang sesuai untuk kasus ini adalah : A. Kondisi Sekolah : Sekolah ini memiliki beberapa kantor yang terletak di hamper seluruh kota- kota besar di Skotlandia. Sekolah ini memiliki banyak staff administrasi untuk mengatasi peningkatan pada jumlah kertas kerja. B. Masalah yang dihadapi : Kurangnya komunikasi dan pembagian informasi antar kantor, walau di kota yang sama. C. Data yang diperlukan : Setiap kantor memiliki Manager <yang cenderung menjadi Instruktur Senior>, beberapa Instruktur Senior, Instruktur dan staf administrasi. Pada waktu mendaftar, Client harus mengisi form aplikasi yang berisi data pribadi mereka. Sebelum pelajaran pertama, seorang client diminta untuk menghadiri interview dengan seorang instruktur untuk mengetahui kebutuhan user dan memastikan user memiliki surat ijin mengemudi sementara yang valid. Client boleh memilih maupun mengganti instruktur. Setelah interview berakhir, client telah membooking pelajaran pertama. Seorang client juga dapat meminta pelajaran individual <membooking sekelompok pelajaran> untuk mengurangi ongkos. Pada akhir setiap pelajaran, instruktur menyimpan kemajuan client dan mencatat jarak mil yang dicapai client selama pelajaran. Sekolah ini memiliki sekelompok mobil yang dapat diadaptasikan untuk tujuan belajar. Ketika client siap, client tersebut akan menjalani tes <ujian>. Untuk mendapatkan surat ijin mengemudi yang lengkap,client harus lulus ujian teori dan praktek. Apabila client gagal ujian, instruktur harus menyimpan alsan kegagalannya. D. Pemilihan DBMS : DBMS yang dipilih adalah DBMS yang memenuhi semua criteria evaluasi produk DBMS <yang tercantum dalam soal nomor1> akan tetapi lebih dititikberatkan pada kemampuan distribusi data, penggunaan fasilitas Online, dan pengaturan jaringan <Network> sehingga data dapat terdistribusi sempurna. Sebagai contoh; penggunaan HTML <Web> dan XML untuk mendukung pendistribusian data secara Online. Serta keamanan datanya, misal : mencegah redundansi data, mengingat ada lebih dari 1 office sehingga data bisa diorganisasikan dari banyak office.. B.3 The Wellmeadows Hospital Case Study Pertimbangan saya dalam memilih DBMS yang sesuai untuk kasus ini adalah : A. Data yang diperlukan : WARD STAF PASIEN NEXT-OF-KIN PASIEN DOKTER LOKAL APPOINTMENT DENGAN PASIEN PASIEN LUAR PASIEN DALAM PENGOBATAN PASIEN PERALATAN BEDAH DAN NON-BEDAH PERALATAN FARMASI DAFTAR PERMINTAAN WARD SUPPLIER B. Transaksi yang diperlukan : ~ Mengcreate dan memelihara records yang menyimpan informasi detail tentang anggota staff. ~ Mencari data staff yang berpengalaman ~ Menghasilkan list laporan detail dari staff yang teralokasi di masing- masing ward ~ Mengcreate dan memelihara records yang menyimpan informasi detail tentang pasien ~ Mengcreate dan memelihara records yang menyimpan informasi detail tentang pasien luar ~ Mengcreate dan memelihara records yang menyimpan informasi detail tentang pengobatan yang diberikan ~ Mengcreate dan memelihara records yang menyimpan informasi detail tentang supplier ~ Mengcreate dan memelihara records yang menyimpan informasi detail tentang daftar permintaan ward ~ Menghasilkan list laporan detail dari pasien luar ~ Menghasilkan list laporan detail dari pasien yang ditempatkan di-ward ~ Menghasilkan list laporan detail dari pasien yang masih menunggu untuk ditempatkan di-ward ~ Menghasilkan list laporan detail dari pengobatan yang diberikan ~ Menghasilkan list laporan detail mengenai apa saja yang disediakan oleh supplier di-ward tertentu C. Pemilihan DBMS : DBMS yang dipilih adalah DBMS yang memenuhi semua criteria evaluasi produk DBMS <yang tercantum dalam soal nomor1> akan tetapi lebih dititikberatkan pada criteria definisi fisik dan definisi data, seperti : persyaratan storage <penyimpanan data> dan persyaratan memori karena data-data yang disimpan dalam jumlah yang besar dan tiap data membutuhkan primary key yang unik. Selain itu dibutuhkan pula DBMS yang mudah dipelihara <maintenance>, mudah distruktur ulang, dan direorganisasi untuk mencegah kehilangan data pada waktu mengubah/ mengganti/ mengupdate software, hardware maupun network yang digunakan oleh DBMS. Serta diperhatikan juga keamanan datanya, karena data- datanya penting dan tidak boleh ada kesalahan dalam sistem dokumentasinya karena menyangkut keselamatan nyawa manusia. Pada tingkat selanjutnya, penting pula dalam memperhatikan segi Accessibility-nya, karena data- data seperti ini tidak boleh diakses oleh unauthorized user. BAB 21 : Kasus hotel : Memiliki 4 buah tabel untuk menyimpan datanya : Hotel (hotelNo , hotelName , city) Room (roomNo , hotelNo , type, price) Booking (hotelNo , guestNo , dateFrom , dateTo , roomNo) Guest (guestNo , guestName , guestAddress) 1. Program yang menampilkan data rinci tamu, mengisinya dan merekam datanya ke dalam table Guest / tamu : // Menggunakan perintah SQL INSERT INTO Guest VALUES (’data baru yang akan diinsert’); contoh program : #include <stdio.h> #include <stdlib.h> EXEC SQL INCLUDE sqlca ; //program awal yg akan dijalankan oleh compiler ketika di-run Main () { EXEC SQL BEGIN DECLARE SECTION; Char gNo[5]; Char gName[20]; Char gAddrs[40]; Char *username = “Manager”; Char *connectString = “GiantHotel” EXEC SQL END DECLARE SECTION; //koneksi ke database EXEC SQL CONNECT :username USING :connectString ; If (sqlca.sqlcode < 0) exit (-1); //menampilkan tulisan “Tabel Guest” printf(“Tabel Guest\n”); //menangani error EXEC SQL WHENEVER SQLERROR GOTO error; //meng-eksekusi perintah SELECT EXEC SQL SELECT guestNo, guestName, guestAddress INTO :gNo, :gName, :gAddrs FROM Guest; //menampilkan data printf(“Guest No : &s %s \n”, gNo); printf(“Guest Name : &s %s \n”, gName); printf(“Guest Address : &s %s \n”, gAddrs); //tampilan form pengisian printf(“Enter Guest No : ”); scanf(“%s”,gNo); printf(“Enter Guest Name : ”); scanf(“%s”,gName); printf(“Enter Guest Address : ”); scanf(“%s”,gAddrs); //insert data yang telah diinput ke database EXEC SQL WHENEVER SQLERROR GOTO error; EXEC SQL INSERT INTO Guest VALUES (‘gNo’,’gName’,’gAddrs’); //kondisi error error: printf (“SQL error %d\n”, sqlca.sqlcode); goto finished; //disconnect dari database finished: EXEC SQL WHENEVER SQLERROR continue; EXEC SQL COMMIT WORK RELEASE; } 2. Program yang menampilkan data booking, memeriksa hotel , kamar, dan tamu yang kosong , dan mengisikan data booking dan merekamnya ke tabel booking : // Menggunakan perintah SQL WHERE NOT EXIST; untuk mengecek data yang kosong (=NULL) contoh program : #include <stdio.h> #include <stdlib.h> EXEC SQL INCLUDE sqlca ; //program awal yg akan dijalankan oleh compiler ketika di-run Main () { EXEC SQL BEGIN DECLARE SECTION; Char gNo[5]; Char hNo[5]; Char rNo[5]; Char dTo; Char dfrom; Char *username = “Manager”; Char *connectString = “GiantHotel” EXEC SQL END DECLARE SECTION; //koneksi ke database EXEC SQL CONNECT :username USING :connectString ; If (sqlca.sqlcode < 0) exit (-1); //menampilkan tulisan “Tabel Booking” printf(“Tabel Booking\n”); //menangani error EXEC SQL WHENEVER SQLERROR GOTO error; //meng-eksekusi perintah SELECT EXEC SQL SELECT guestNo INTO :gNo, FROM Booking WHERE NOT EXISTS done; //mengecek data yang kosong (=NULL) EXEC SQL SELECT hotelNo INTO :hNo, FROM Booking; WHERE NOT EXISTS done; //mengecek data yang kosong (=NULL) EXEC SQL SELECT roomNo INTO :rNo, FROM Booking; WHERE NOT EXISTS done; //mengecek data yang kosong (=NULL) EXEC SQL SELECT dateTo INTO :dTo, FROM Booking; EXEC SQL SELECT dateFrom INTO :dFrom, FROM Booking; //menampilkan data printf(“Hotel No : &s %s \n”, hNo); printf(“Guest No : &s %s \n”, gNo); printf(“Date To : &s %s \n”, dTo); printf(“Date From : &s %s \n”, dFrom); printf(“Room No : &s %s \n”, rNo); //tampilan form pengisian printf(“Enter Hotel No: ”); scanf(“%s”,hNo); printf(“Enter Guest No: ”); scanf(“%s”,gNo); printf(“Enter Date To: ”); scanf(“%s”,dTo); printf(“Enter Date From: ”); scanf(“%s”,dFrom); printf(“Enter Room No: ”); scanf(“%s”,rNo); //insert data yang telah diinput ke database EXEC SQL WHENEVER SQLERROR GOTO error; EXEC SQL INSERT INTO Booking VALUES (‘hNo’,’gNo’,’dTo’,’dFrom’,’rNo’); //kondisi error error: printf (“SQL error %d\n”, sqlca.sqlcode); goto finished; done: printf(“NULL”); //disconnect dari database finished: EXEC SQL WHENEVER SQLERROR continue; EXEC SQL COMMIT WORK RELEASE; } 3. Program untuk menaikkan tarip setiap kamar hotel sebesar 5 % : //Menggunakan perintah SQL UPDATE Room SET price = price*5% ; untuk mengupdate data. contoh program : #include <stdio.h> #include <stdlib.h> EXEC SQL INCLUDE sqlca ; //program awal yg akan dijalankan oleh compiler ketika di-run Main () { EXEC SQL BEGIN DECLARE SECTION; Char hNo[5]; Char rNo[5]; Char type[10]; Long price; Char *username = “Manager”; Char *connectString = “GiantHotel” EXEC SQL END DECLARE SECTION; //koneksi ke database EXEC SQL CONNECT :username USING :connectString ; If (sqlca.sqlcode < 0) exit (-1); //menampilkan tulisan “Tabel Guest” printf(“Tabel Room\n”); //menangani error EXEC SQL WHENEVER SQLERROR GOTO error; //meng-eksekusi perintah SELECT EXEC SQL SELECT hotelNo, roomNo, type, price INTO :hNo, :rNo, :type, :price FROM Room; EXEC SQL UPDATE Room SET price = price*5% ; //menampilkan data printf(“Hotel No : &s %s \n”, hNo); printf(“Room No : &s %s \n”, rNo); printf(“Type : &s %s \n”, type); printf(“Price : &l %l \n”, price); //kondisi error error: printf (“SQL error %d\n”, sqlca.sqlcode); goto finished; //disconnect dari database finished: EXEC SQL WHENEVER SQLERROR continue; EXEC SQL COMMIT WORK RELEASE; } //Untuk menjalankan ketiga program diatas, kita harus memiliki SQL Communications Area yang digunakan untuk melaporkan seluruh error yang terjadi pada saat program dijalankan. SQLCODE yang telah di-set oleh DBMS sebagai berikut : Struct sqlca{ Char sqlcaid [8]; Long sqlcabc; Long sqlcode; Struct { Short sqlerrml; Char sqlerrmc [70]; } sqlerrm; char sqlerrp [8]; long sqlerrd [6]; char sqlwarn [8]; char sqlext [8]; };
© Copyright 2024 Paperzz