DESIGN BASIS DATA SECARA FISIK A. Perancangan Basis Data Secara Fisik Tahap desain membuat database keputusan diimplementasikan. fisik memungkinkan tentang bagaimana database itu, fisik Oleh karena desainer desain untuk untuk disesuaikan dengan DBMS tertentu. Ada umpan balik antara desain fisik dan logis, karena keputusan yang diambil selama desain fisik untuk meningkatkan kinerja dapat mempengaruhi model data logis. Dapat disimpulkan bahwa proses perancangan fisik merupakan transformasi dari perancangan logis terhadap jenis DBMS yang digunakan sehingga dapat disimpan secara fisik pada media penyimpanan. Selama fase ini, dirancang spesifikasi-spesifikasi untuk database yang disimpan yang berhubungan dengan strukturstruktur penyimpanan fisik, penempatan record dan jalur akses. Berhubungan dengan internal schema (pada istilah 3 level arsitektur DBMS). B. Tujuan perancangan fisik Tujuan utama perancangan fisik adalah untuk mendapatkan efisiensi dalam pemrosesan data. Dengan tercapainya efisiensi maka diharapkan sistem informasi yang menggunakan database dapat memberikan tanggapan yang cepat kepada pemakai yang berinteraksi dengan sistem tersebut. Dalam rangka mencapai efisiensi pemrosesan data, acap kali efisiensi penggunaan ruang 1 dalam penyimpanan eksternal kurang diperhatikan. Itulah sebabya dalam pembahasan nanti kadang ditemukan upaya yang mengorbankan penghematan ruang penyimpanan eksternal demi tercapainya kecepatan akses terhadap data. C. Keperluan Perancangan fisik Untuk kepentingan perancangan fisik diperlukan informasi seperti berikut: Relasi-relasi yang telah dinormalisasi, termasuk perkiraan jumlah baris dalam setiap relasi. Definisi untuk setiap atribut yang menyangkut nilai maksimum yang dapat ditangani oleh atribut. Penjelasan tentang tempat, waktu, dan bahkan frekuensi data yang digunakan, dimasukkan, diubah, dan dihapus. Selain itu juga diperlukan mengidentifikasi hak para pemakai terhadap data. Kebutuhan waktu tanggapan yang dikehendaki oleh pemakai dan aktifitas lain yang terkait dengan data, seperti backup, recovery, integritas dan retensi. Deskripsi mengenai teknologi yang digunakan untuk mengimplementasikan database, terutama pada DBMS yang dipakai. Pemilihan perancangan fisik yang baik akan mempengaruhi hasil dari sebuah data base. Beberapa petunjuk dalam pemilihan perancangan database secara fisik : 1. Response time : 2 waktu yang telah berlalu dari suatu transaksi database yang diajukan untuk menjalankan suatu tanggapan. Pengaruh utama pada response time adalah di bawah pengawasan DBMS yaitu : waktu akses database untuk data item yang ditunjuk oleh suatu transaksi. Response time juga dipengaruhi oleh beberapa faktor yang tidak berada di bawah pengawasan DBMS, seperti penjadwalan sistem operasi atau penundaan komunikasi. 2. Space utility : Jumlah ruang penyimpanan yang digunakan oleh file-file database dan struktur jalur akses. 3. Transaction throughput : Rata-rata jumlah transaksi yang dapat diproses per menit oleh system database, dan merupakan parameter kritis dari sistem transaksi (misal : digunakan pada pemesanan tempat di pesawat, bank, dll). Hasil dari fase ini adalah penentuan awal dari struktur penyimpanan dan jalur akses untuk filefile database. D. Menentukan Format Data Dalam merancang sebuah data base diperlukan format data sesuai DBMS yang digunakan. Setiap atribut dalam relasi perlu dilengkapi dengan format data. Format data mencakup: Tipe data. Panjang maksimum data. Kekangan-kekangan tertentu terhadap data. 3 Penentuan format data harus dilakukan dengan tepat, dengan mengantisipasi hal-hal berikut: Menggunakan ruang yang sekecil mungkin. Mampu menampung semua kemungkinan. Mampu menolak nilai-nilai yang tidak absah. E. Menjaga integritas data Secara etimologis, integritas berarti kesatuan. Dalam konteks basis data, obyek integritas tersebut adalah data. Sehingga dapat disimpulkan bahwa integritas data merupakan keutuhan dan kesatuan data dalam basis data sehingga data tersebut dapat menjadi sumber informasi yang dapat digunakan. F. Integritas Data Integritas data merupakan masalah penting yang perlu ditangani dalam perancangan database. Integritas data dapat dikenakan pada kolom dalam relasi dan menjadi kekangan bagi kolom tersebut. Tipe data dan panjang maksimum untuk data merupakan contoh dalam rangka menjaga integritas data. Dengan cara seperti itu tidak sebarang data bias dimasukkan dalam kolom. Adapun bentuk integritas data yang lain yaitu (1) nilai bawaan, (2) kendali jangkaun, (3) kendali nilai Null. Nilai bawaan (default value) adalah suatu nilai yang dengan sendirinya akan diberikan ke kolom sekitarnya, kolom tersebut tidak diberi nilai secara explicit oleh pemakai. Kendali jangkauan (range control) adalah suatu control yang dilakukan dengan menyebutkan nilai-nilai yang menjadi isi sebuah kolom yang dinyatakan 4 dalam bentuk suatu jangkauan, yaitu dimulai dari nilai paling kecil hinga nilai terbesar. Kendali nilai Null adalah penanganan boleh tidaknya suatu kolom tidak diberi nilai (alias Null). Jadi dapat dikenakan salah satu dari aturan berikut: 1. Kolom tidak boleh bernilai Null 2. Kolom boleh bernilai Null. Sebagai konsekuensi dari aturan pertama, bila terjadi penambahan record dan kolom tersebut tidak diisi (yang bearti bernilai Null) maka penambahan tersebut akan gagal. Untuk memberikan gambaran lebih lanjut tentang pembuatan relasi beserta pendefinisian atribut dan juga penerapan batasan untuk menjaga integritas data, perhatikan perintah SQL berikut : CREATE TABEL DOSEN_PENDIDIKAN ( Nomor_Dosen CHAR (4) NOT NULL, Pendidikan CHAR (3) NOT NULL, Lulus_Tahun YEAR (4) NOT NULL, PRIMARY KEY (Nomore_Dosen, pendidikan) ); Relasi yang dibuat adalah DOSEN_PENDIDIKAN. Relasi ini memiliki tiga buah kolom yaitu Nomor_dosen, pendidikan, dan Lulus_Tahun. Tipe data yang digunakan secara berturut-turut adalah CHAR(4),CHAR(3), dan YEAR. NOT NULL yang disertakan setelah tipe data menyatakan bahwa kolom bersangkutan tidak boleh bernilai NULL. Yang berada dalam tanda kurung setelah PRIMARY KEY adalah kolom-kolom yang berkedudukan sebagai kunci primer (yaitu kunci primer komposit). 5 Adapun contoh berikut menunjukan penciptaan sebuah relasi bernama BARANG CREATE TABLE BARANG ( Kode_Barang CHAR (5) NOT NULL PRIMARY KEY, Nama_Barang CHAR (30) NOT NULL, Harga_Jual INTEGER NOT NULL, Jumlah SMALLINT NOT NULL DEFAULT 0 ). Pada contoh di atas, PRIMARY KEY diletakan pada Kode_Barang dengan tujuan agar kolom tersebut bertindak sebagai kunci primer. Hal ini bias dilakukan kalau kunci berupa kunci sederhana (dibentuk oleh satu kolom saja ). Perhatikan pula keberadaan kata DEFAULT 0. Bagian tersebut merupakan implementasi nilai bawaan yang telah di bahas di depan. Kode tersebut menyatakan bahwa kalau Jumlah tidak diisi maka nilai 0 akan di berikan. G. Menghemat Ruang Penyimpan dengan Menggunakan Kode Pada tahapan perancangan database secara fisik, salah satu tindakan yang sering dilakukan adalah melakukan pengkodean dengan tujuan untuk menghemat ruang penyimpan. Selain untuk menghemat memori, pengkodean juga dapat mengurangi kesalahan atau ketidakkonsistenan. Sebagai contoh, perhatikan gambar di bawah: 6 Kode_Agen Nama_Agen Kota 001 Nengah Jakarta 002 Amir Semarang 003 Musa Yogya 004 Chandra Medan 005 Ical Yogyakarta 006 Budi Yogya Perhatikan tabet ketidakkonsistenan l diatas, nama pada kota yaitu tabel tersebut Yogya dan terdapat Yogyakarta. Keadaan ini dapat dihindari dengan menggunakan pengkodean tehadap nama kota, seperti yang ditunjukan pada gambar dibawah : Kode_Agen Nama_Agen Kode_Kota Kode_Kota Nama_Kota 001 Nengah K011 K011 Jakarta 002 Amir K012 K012 Semarang 003 Musa K013 K013 Yogya 004 Chandra K014 K014 Medan 005 Ical K013 006 Budi K013 7 H. Menjaga Keamanan Data Yang perlu diperhatikan dalam merancang database secara fisik adalah mengatur keamanan pengaksesan data. Hal ini perlu karena database memungkinkan banyak orang bisa mengakses data dan bisa melakukan di berbagai tempat dan tentu saja tidak semua orang memilki wewenang yang sama untuk mengakses setiap data. Untuk itulah setiap orang harus diberi hak akses yang berbeda terhadap database sehingga data yang bersifat rahasia tidak diakses oleh orang yang tidak berhak. Pengaturan keamanan pengaksesan data dapat diatur melalui : 1. Identitas pemakai dan password 2. View 3. Hak akses Identitas Pemakai dan Paswword Identitas pemakai dan password adalah level pertama untuk menjaga keamanan terhadap pengaksesan database. Namun, dalam praktiknya, akses langsing ke database hanya diberikan kepada sejumlah orang tertentu. Para pemakai biasanya diberi mengakses password. identitas system Identitas pemakai informasi. dan dan Identitas pemakai yang password untuk pemakai dipakai dan unutuk mmengakses database tersembunyi dalam aplikasi sistem informasi. 8 View Secara internal perancang juga dapat menentukan data mana saja yang boleh diakses oleh seorang pemakai. View merupakan salah satu fitur dalam database yang bisa dipakai untuk kepentingan ini. Dengan menggunakan view, kolom tertentu dalam relasi bisa diatur agar menjadi tersembunyi atau tidak terlihat oleh pemakai tertentu. Contoh sebuah relasi PEGAWAI mencatat data pribadi pegawai dan juga gajinya. Berdsarkan relasi tersebut, seseorang yang berhak melihat data pribadi tetapi tidak untuk melihat gaji dapat diberikan suatu view seperti gambar berikut : Relasi Pegawai No_Pegawai Nama No_Pegawai Nama Tgl_lahir Alamat Gaji View INFOPEG Dengan cara ini seseorang pemakai yang boleh mengakses view INFOPEG tidak bisa melihat data Tgl_lahir, Alamat dan Gaji. View dapat dibuat melalui perintah SQL bernama CREATE VIEW. Sebagai contoh: CREATE VIEW INFOPEG AS SELECT No_Pegawai, Nama FROM PEGAWAI 9 akan membuat view bernama INFOPEG berisi No_Pegawai dan Nama yang berasal dari relasi PEGAWAI. Hak akses Terkait dengan hak akses, terdapat istilah wewenang atau privilege. Wewenang adalah tindakan-tindakan yang dapat dilakukan oleh seorang pemakai terhadap relasi atau view. Tentu saja wewenang sangat penting ditentukan dalam perancangan fisik karena secara fungsional setiap orangpun mempunyai hak yang berbeda dalam mengakses data. Penentuan wewenang didasarkan pada tugas yang diemban oleh masing-masing orang dalam organisasi/perusahaan. Adapun tindakan yan umum dilakukan adalah : Membaca ( SELECT / S ) Menambah ( INSERT / I ) Mengubah ( UPDATE / U ) Menghapus ( DELETE / D ) Relasi/View Unit Penggajian Operator Kepala Unit Staff PEGAWAI S S S GAJI S/I S S/U/I/D TUNJANGAN S/I S S/U/I/D 10