download

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];
};