TUGAS BASIS DATA LANJUT PERANCANGAN FISIK OLEH KELOMPOK VI : I GEDE WAHYUDI (0808605025) I WAYAN MUKTI ARMANA (0808605026) JACKY RUSMAN (0808605027) I GEDE CHANDRA KUSUMA (0808605028) I KOMANG TRISNA HANGGARA (0808605029) PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS UDAYANA 2010 PERANCANGAN FISIK A. Pendahuluan Perancangan merupakan suatu hal yang sangat penting dalam pembuatan basis data. Permasalahan yang dihadapi pada waktu perancangan yaitu bagaimana basis data yang akan dibangun ini dapat memenuhi kebutuhan saat ini dan masa yang akan datang. Untuk itu diperlukan perancangan basis data baik secara fisik maupun secara konseptualnya. Perancangan konseptual akan menunjukkan entity dan relasinya berdasarkan proses yang diiginkan oleh organsisasinya. Untuk menentukan entity dan relasinya perlu dilakukan analisis data tentang informasi yang ada dalam spesifikasi di masa yang akan datang. B. Perancangan database secara fisik Perancangan database secara fisik merupakan tahapan untuk mengimplementasikan hasil perancangan database secara logis menjadi tersimpan secara fisik pada media penyimpanan eksternal sesuai dengan DBMS yang digunakan. 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 struktur-struktur penyimpanan fisik, penempatan record dan jalur akses. Berhubungan dengan internal schema (pada istilah 3 level arsitektur DBMS). C. 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 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. D. 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 : 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. E. 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. Penentuan format data harus dilakukan dengan tepat, dengan mengantisipasi halhal berikut: Menggunakan ruang yang sekecil mungkin. Mampu menampung semua kemungkinan. Mampu menolak nilai-nilai yang tidak absah. F. 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. G. 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 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 penciptaan relasi beserta pendefinisian atribut dan juga penerapan kekangan 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). 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. H. 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: 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 l diatas, pada tabel tersebut terdapat ketidakkonsistenan nama kota yaitu Yogya dan 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 I. 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 identitas pemakai dan password untuk mengakses system informasi. Identitas pemakai dan password. Identitas dan pemakai yang dipakai unutuk mmengakses database tersembunyi dalam aplikasi sistem informasi. 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 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 J. Metode penyimpanan data. Terkait dengan penyimpanan data dalam penyimpanan ekternal, terdapat istilah yang dinamakan organisai berkas. Organisasi berkas adalah suatu teknik yang digunakan untuk mengatur record-record secara fisik dalam penyimpanan ekternal. Ada tiga metode dalam penyimpanan data, yaitu : 1. Metode penyimpanan Sekuensial 2. Metode penyimpanan Berindeks 3. Metode penyimpanan Hashed Metode Penyimpanan Sekuensial Metode pinyampanan sekuensial merupakan metode penyimpanan paling sederhana, karena setiap baris disimpan secara berurutan. Cara seperti ini sering digunakan untuk keperluan backup data atau pengiriman data. Pembacaan data dari record pertama hingga record terakhir dapat dilakukan dengan mudah, tetapi pencarian berdasarkan kunci akan dilakukan sangat sulit karena harus membandingkan kata kunci dari record pertama sampai record yang dicari telah ditemukan. Proses penyisipan data hanya dapat dilakukan dengan melakukan penyalinan data. Proses penghapusan record menuntut reorganisasi terhadap data. Oleh karena itu penyimpanan sekuensial tidak digunakan dalam data base. Metode Penyimpanan Berindeks Pada metode penyimpanan data berindeks, record dapat disimpan secara sekuensial ataupun non-sekuensial, tetapi dengan tambahan berupa tabel yang memungkinkan pencarian data dapat dilakukan dengan mudah. Tabel itulah yang disebut indeks. Indeks adalah suatu tabel yang berisi daftar kunci pencarian dan alamat/lokasi record. Metode penyimpanan berindeks memungkinkan pembacaan secara sekuensial ataupun acak (menurut kunci pencarian). Kecepatan indeks dalam menemukan data yang dicari dapat dianalogikan dengan keberadaan indeks dalam buku. Pada indeks buku, suatu istilah dapat diperoleh dalam halaman yang mencantumkan istilah tersebut disebabkan nomor halaman disebutkan dalam daftar indeks. Indeks dalam data base juga dapat mempercepat proses pencarian suatu data sepanjang yang menjadi kunci pencarian berada dalam indeks. Setelah ditemukan dengan berpedoman pada alamat terkait dengan kunci yang dicari, lokasi record bersangkutan bisa didapatkan. Metode penyimpanan berindeks memungkinkan penambahan data ataupun penghapusan data dengan mudah, karena indeks bersifat dinamis dan dapat diimplementasikan dengan menggunakan teknik penyimpanan yang memungkinkan pemutakhiran indeks dapat dilakukan dengan mudah. Karena kemudahan yang demikian plus kemudahan dalam data secara acak maupunsekuensial. Metode penyimpanan berindeks banyak digunkan dalam database. Metode penyimpanan hashed Metode penyimpanan hashed adalah suatu penyimpanan data yang memungkinkan alamat masing masing dapat diperoleh melalui algoritma hashing. Algoritma hashing adalah suatu deret kode yang memungkinkan suatu nilai kunci konversi menjadi alamat bagi record. Dengan cara seperti itu, pencarian berdasarkan kunci bisa dilakukan dengan sangat cepat. Namun kelemahannya pembacaan secara sekuensial justru menjadi agak lambat. Perbandingan metode Hashed dengan dua metode penyimpanan lainnya. Oerasi Membaca data menurut suatu kunci Membaca semua data secara sekuensial Menyisipkan data Menghapus data Mengubah data Seorganisasi data Sekuensial Lambat Indeks Cepat Hashed Sangat Cepat Sangat cepat Cepat Agak lambat Sangat lambat Sangat lambat Sangat lambat Agak lambat Cepat Cepat Cepat Cepat Cepat Cepat Cepat Agak lambat Referensi http://www.asephs.web.ugm.ac.id/Artikel/BASIS%20DATA%20DAN%20DBMS/BASIS% 20DATA%20DAN%20DBMS.pdf http://www.scribd.com/doc/11654305/MODUL-BASIS-DATA iwayan.info/Lecture/DBaseLanjut.../transpM2%20-%20DBdesign.doc http://yunias67.wordpress.com/perancangan-data-base/perancangandatabase Kadir, Abdul.Dasar Perancangan dan Implementasi Database Relational. Andi.2009