Rabu, 05 Januari 2011

DATABASE

PERANCANGAN DATABASE

Merancang Database merupakan suatu hal yang sangat penting. Kesulitan utama dalam merancang database adalah bagaimana merancang sehingga database dapat memuaskan keperluan saat ini dan masa mendatang. Perancangan model konseptual perlu dilakukan di samping perancangan model phisik. Pada perancangan konseptual akan menunjukkan entity dan relasinya berdasarkan proses yang diinginkan oleh organisasi.

ENTITY : adalah orang, tempat,kejadian, atau konsep yang informasinya direkam.
Contoh entity Rumah sakit : pasien, dokter, obat, kamar
Entity Universitas : mahasiswa, KHS, dosen, matakuliah, pembayaran

ATRIBUTE: setiap entity mempunyai atribute atau debutan untuk mewakili statu entity.
Siswa dapat dilihat dari atributnya, misalnya no_struk,tgl_pembayaran,kode_brg. Atribute juga disebut data eleven, data field, data item.

DATA VALUE : isi data/nilai, yaitu data actual atau informasi yang disimpan pada tiap data atau atribute. Attribute nama no_struk menunjukkan tempat dimana informasi no_struk disimpan, sedang data value. Misal : 0001750007.

RECORD/TUPLE :
Kumpulan elemen –elemen yang saling berkaitan menginformasikan tentang entity secara lengkap. Satu record mewakili satu data atau informasi tentang suatu hal. Missal no_struk, tgl_pembelian,kode_brg, nama_brg, harga_sat, jml_brg, total_harga_no_kassa, kode_kasir, nama_kasir.
Satu record terdiri dari field-field yang saling berhubungan untuk menunjukkan field tersebut dalam satu pengertian yang lengkap dan direkam satu record

FILE : kumpulan record-record sejenis yang mempunyai panjang elemen yang sama, atribute yang sama, namun berbeda beda data veluenya. Dalam satu file terdapat record-record yang sejenis, sama besar, sama bentuk, merupakan satu kumpulan entity yang seragam

DATABASE : kumpulan file-file yang mempunyai kaitan antara satu file dengan file yang lain sehingga membentuk satu bangunan data untuk menginformasikan satu perusahaan, instansi dalam batasan tertentu. Bila terdapat file yang tidak dapat dipadukan atau dihubungkan dengan file yang lainnya berarti file tersebut bukanlah kelomok dari satu database, ia akan dapat membentuk satu databse tersendiri.

KEGUNAAN DATABASE

Untuk mengatasi masalah :

1.REDUDANSI DATA : Penyimpanan di beberapa tempat untuk data yang sama ini disebut sebagai redudansi, yang mengakibatkan pemborosan ruang penyimpanan dan juga biaya untuk mengakses lebih tinggi.
2.INKONSISTENSI DATA : Penyimpanan data yang sama berulang-ulang, dibeberapa file dapat mengakibatkan tidak konsisten. Hal ini terjadi bila suatu ketika salah satu dari file yang mengandung data tersebut terlewat di update maka terjadilah tidak konsisten data
3.KESULITAN DLM PENGAKSESAN DATA: dgn DBMS lebih mudah digunakan
4.ISOLASI DATA UTK STANDARISASI. : jika data tersebar dalam beberapa file dalam bentuk format yang tidak sama, maka menyulitkan dalam menulis program aplikasi untuk mengambil dan menyimpan. Maka haruslah data dalam satu database dibuat satu format sehingga mudah program aplikasinya.
5.MULTIPLE USER : salah satu alasan mengapa database dibangun karena nentinya data dapat digunakan oleh banyak org dlm waktu yg berbeda, diakses oleh program sama tapi berbeda org dan waktu
6.SECURITY : user bisa diberikan hak akses yg berbeda dan dibatasi, sehingga data rahasia perusahaan lebih aman
7.INTEGRITAS : file-file saling berkaitan dengan adanya file kunci , sehingga kita bisa mendapatkan informasi yang dibutuhkan secara lengkap dan akurat

Pada perancangan model konseptual penekanan tinjauan dilakukan pada struktur data dan relasi antara file. Pendekatan yang dilakukan pada perancangan model konseptual adalah menggunakan model data relational. Terdapat dua buah teknik yaitu :
1.Teknik Entity Relationship
2.Teknik Normalisasi

Diagram Entity Relationship (Diagram E-R)
Diagram E-R digunakan untuk menggambarkan secara sistematis hubungan antar entity-entity yang ada dalam suatu sistem database menggunakan simbol-simbol sehingga lebih mudah dipahami. Simbol-simbol yang boleh digunakan adalah :

Persegi Panjang, berfungsi untuk menyatakan suatu entity.
Elips, berfungsi untuk menyatakan attribute, jika diberi garis bawah menandakan bahwa attribute tersebut merupakan attribute/field kunci.
Belah Ketupat, menyatakan jenis relasi.
Garis, penghubungan antara relasi dengan entity dan antara entity dengan attribute.

Dalam hubungan antar entity, juga harus ditentukan derajat relasi antar entity. Derajat relasi menunjukkan jumlah maksimum record suatu entity ber-relasi dengan record pada entity yang lainnya. Misalnya pada contoh sebelumnya, entity mahasiswa dapat berelasi dengan lebih dari satu record yang ada pada entitas matakuliah sebaliknya satu record pada entity matakuliah hanya boleh ber-relasi dengan satu mahasiswa yang sama pada entity mahasiswa, begitu juga satu record pada entity matakuliah berhubungan paling banyak satu record juga pada entity dosen, dan seterusnya.

Relasi Satu ke Satu (One to One)
Artinya satu record pada entity A ber-relasi paling banyak satu record juga pada entity B, begitu juga sebaliknya, satu record pada entity B, ber-relasi paling banyak satu record juga dengan entity A.
Dalam diagram E-R, relasi ini disimbolkan dengan angka 1.
• Contoh : Dalam proses belajar mengajar secara privat misalnya, seorang (satu) tutor hanya mengajar satu siswa, begitu juga sebaliknya, satu siswa hanya diajar oleh satu tutor.

Relasi Satu ke Banyak (One to Many)
Artinya satu record pada entity A ber-relasi dengan beberapa record pada entity B, tapi tidak sebaliknya, setiap record pada entity B ber-relasi paling banyak satu record dengan entity A. Dalam diagram E-R, relasi ini disimbolkan dengan angka 1 untuk menyatakan satu dan huruf M atau N untuk menyatakan banyak.
• Contoh : Dalam proses belajar mengajar di sekolah dasar misalnya, satu orang guru mengajar beberapa (banyak) murid, tetapi satu kelas (beberapa murid) hanya di ajar oleh satu guru.

Relasi Banyak ke Satu (Many to One)
Ini adalah kebalikan dari relasi satu ke banyak, dimana setiap record pada entity A hanya dapat ber-relasi paling banyak 1 record pada entity B, tapi tidak sebaliknya, satu record pada entity B dapat ber-relasi dengan beberapa record pada entity A.. Dalam diagram E-R, relasi ini disimbolkan dengan angka 1 untuk menyatakan satu dan huruf M atau N untuk menyatakan banyak..
• Contoh : Dalam dunia akademik misalnya, beberapa (banyak) mahasiswa hanya mempunyai satu pilihan jurusan, sebaliknya satu jurusan dapat dipilih oleh beberapa (banyak) mahasiswa

Relasi Banyak ke Banyak (Many to Many)
Artinya beberapa record pada entity A dapat ber-relasi dengan beberapa record juga pada entity B, begitu juga sebaliknya, beberapa record pada entity B dapat ber-relasi dengan beberapa record juga pada entity A.. Dalam diagram E-R, relasi ini disimbolkan dengan huruf M atau N untuk menyatakan banyak..
• Contoh : Dalam hubungan antara mahasiswa dengan dosen pada perguruan tinggi, yaitu seorang seorang dosen mengajar banyak mahasiswa, sebaliknya seorang mahasiswa dapat diajar oleh beberapa dosen, sehingga terjadi hubungan banyak ke banyak.

Tahapan Membuat Diagram E-R.
Mengidentifikasi dan menetapkan seluruh entity yang terlibat dalam sistem database tersebut.
Menentukan attribute-attribute atau field dari masing-masing entity beserta kunci (key)-nya.
Mengidentifkasi dan menetapkan seluruh himpunan relasi diantara himpunan-himpunan entity yang ada beserta kunci tamu (foreign key)-nya.
Menentukan derajat relasi untuk setiap himpunan relasi.

NORMALISASI

Adalah proses pengelompokkan data elemen menjadi table – table yang menunjukkan entity dan relasinya
Pada proses normalisasi selalu dilakukan pengujian database pada beberapa kondisi, antara lain :
a.menambah/insert
b.menghapus/delete
c.mengubah/update
d.membaca/retrieve
Bila ada kesulitan pada pengujian tersebut maka relasi tersebut dipecahkan pada beberapa tabel lagi atau dengan kata lain perancangan belumlah menghasilkan database yang optimal
Beberapa konsep yang harus diketahui lebih dahulu yang berhubungan dengan normalisasi , yaitu :
i.field/atribute kunci
ii.kebergantungan fungsi (functional dependency)

field/atribute kunci
Berupa satu field atau satu set field yg dapat mewakili record.
Misal : kode_barang merupakan kunci dari table barang, setiap pencarian cukup dengan menyebut kode_barang tersebut maka dapat diketahui, nama_barang, harga_barang bahkan jumlah_barang ataupun satuan_barang.
Jadi key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan semua baris data dalam tabel secara unik. Macam-macamnya:
Candidate Key/ kunci calon : satu atribute atau satu set minimal atribut yang mengidentifikasi secara unik suatu kejadian spesifik dari entity. Jika satu kunci kandidat berisi lebih dari satu atribute disebut kunci gabungan/composite key.
Contoh :
kode_barang
nama_barang
harga
kode_barang,nama_barang (kunci gabungan)
Primary Key/kunci primer
Yaitu satu atribut atau satu set minimal atribute yang tidak hanya mengidentifikasi secara unik suatu kejadian spesific, tapi juga dapat mewakili setiap kejadian dari suatu entity. Setiap kunci kandidat punya peluang menjadi primary key, tetapi sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entity yang ada. Contoh : kode_barang
Alternate Key/kunci alternatif
Yaitu kunci kandidat yang tidak dipakai sebagai primary key. Tapi dipakai sebagai kunci pengurutan, maksudnya setelah kode_barang kemudian nama_barang dan diikuti satuan (kg,liter,bungkus,buah,dll), harga, jumlah_stok
Foreign Key/kunci tamu
Yaitu satu atribute yang melengkapi satu relationship yang menunjukkan ke induknya. Kunci tamu ditempatkan pad entity anak dan sama dengan kunci primary induk direlasikan.

Perancangan Database

Perancangan Database

Perancangan Database
Pokok pemikiran dalam merancang database adalah bagaimana merancang database sehingga dapat memenuhi kebutuhan saat ini dan kemudahannya untuk dikembangkan dimasa yang akan datang. Perancangan model konseptual perlu dilakukan disamping perancangan secara phisik.
Pada perancangan konseptual, digunakan beberapa konsep pendekatan relasional namun tidak berarti konsep ini harus diimplementasikan ke model relasional saja tetapi juga apat dengan model Hirarchi dan model Network.
Tugas merancang database adalah bagian dari tugas database administrator . Model konseptual mengkombinasikan beberapa cara untuk memproses data dan untuk beberapa aplikasi. Model konseptual tidak tergantung aplikasi tertentu dan tidak tergantung DBMS, Hadware yang digunakan.
Pada perancangan model konseptual tinjauan dilakukan pada struktur data dan relasi antar file menggunakan model dan relasional.
Terdapat dua teknik dalam merancang database yaitu :
• Teknik Normalisasi
• Teknik Entity Relationship
Teknik Normalisasi
Teknik normalisasi banyak digunakan terutama pemula karena mudah dipahami dan diaplikasikan.
Dasar-dasar normalisasi
• Normal form (bentuk normal) adalah suatu klas dari skema database relasi yang didefinisikan untuk memenuhi tujuan dari tingginya integritas dan maintainability
• Kreasi dari suatu bentuk normal disebut normalisasi
• Normalisasi dicapai dengan penganalisaan ketergantungan diantara setiap individu attribut yang diassosiasikan dengan relasinya

First normal form
• Suatu relasi ada dalam kondisi First Normal Form (1NF) jika dan hanya jika semua domain yang tercakup terdiri hanya atomic value, misalnya tidak ada pengulangan group (domain-domain) dalam suatu tuple
• Keuntungan dari 1NF dibanding Unnormalized relation (UNRs) adalah pada bentuk penyederhanaan representasi dan kemudahan dalam pengembangan menggunakan suatu query language
• Kekuranannnya adalah kebutuhan terhadap duplikasi data
• Sebagian besar sistem relasi (tidak semua) membutuhkan suatu relasi dalam bentuk 1NF
Second Normal Form
• Suatu superkey adalah suatu himpunan dari satu atau lebih attribute, yang mana, dimana diambil secara khusus yang memmungkinkan kita untuk mengidentifikasikan secara unik satu entitas atau relasi
• Suatu Candidate key adalah suatu subset dari attribut-attribut pada superkey yang juga merupakan superkey dan tidak reducible ke superkey yang lain
• Suatu primary key dipilih dari himpunan candidate key untuk digunakan pada suatu index untuk relasi yang bersangkutan
• Kepemilikan dari satu atau beberapa attribute yang dapat didefinisikan secara unik dari nilai satu atau beberapa attribute disebut functional dependency
• Diberikan suatu relasi (R), suatu himpunan (B) adalah functionally dependent pada himpunan attribut yang lain(A) jika, pada satu waktu tertentu, setiap nilai A diassosiasikan dengan satu nilai B, bentuk ini adalah suatu FD yang dinotasikan dengan A → B
• contohR : {paper-id, inst-name, isnt-addr, editor-id, publ-id, auth-id, auth-name,auth-addr}Fds : paper-id, auth-id → auth-namepaper-id,auth-id → auth-addrpaper-id, auth-id → inst-namepaper-id, auth-id → inst-addrauth-id → auth-nameauth-id → auth-addrinst-name → inst-addrpaper-id → editor-idpaper-id → publ-idbentuk sederhanapaper-id, auth-id → auth-name, auth-addr, inst-name, inst-addrauth-id → auth-name, auth-addrinst-name → inst-addr
paper-id → pub-id, editor-id
• Suatu relasi adalah dalam posisi second normal form (2NF) jika dan hanya jika relasi tersebut juga dalam 1NF dan setiap nonkey attribute tergantung penuh pada primary key-nya
• 2NF membutuhkan bahwa FD apapun didalam relasi harus berisi semua komponen dari primary key sebagai determinant, baik secara langsung atau transitif
• contoh, primary key adalah paper_id, auth_id. Bagaimanapun, terdapat Fds yang lain (auth_Id → auth-name, auth-addr, and paper-id → pub-id, editor-id) yang berisi satu komponen dari primary key, tetapi tidak keduaduanya.
• Mengapa harus 2NF, pertimbangkan keuntungan dari 1NF pada R. paper, pub-id dan editor-id dibuat duplikat. Untuk setiap author dari paper. Jika editor dari publikasi untuk suatu paper berubah, beberapa tuple harus pula di-update. Akhirnya, jika satu paper di ambil, semua tupple yang diassosiasikan harus dihapus. Bentuk ini akan memberikan efek samping pada penghapusan informasi yang mengassosiasikan suatu auth-id dengan auth-name dan auth-addr.
• Suatu cara yang dapat dilakukan untuk hal tersebut adalah dengan mentransformasikan relasi kedalam dua atau beberapa relasi 2NF
contohR1 : paper-id, auth-id → inst-name, inst-addrR2 : auth-id → auth-name, auth-addrR3 : paper-id → pub-id, editor-id
Third Normal Form
• Pada R1, inst_addr pasti diduplikat untuk setiap kombinasi paper_author yang mejelaskan satu inst_name. Juga, jika kita menghapus satu paper dari database, kita harus memberikan efek samping penghapusan assosiasi antara inst_name dan inst_addr.
• Suatu relasi dalam Third Normal Form (3NF) jika dan hanya jika relasi tersebut dalam 2NF dan setiap non key attribute adalah nontransitive dependent pada primary key
Contoh :R11 : paper-id, auth-id → inst-nameR12 : inst_name → inst_addrR2 : auth-id → auth-name, auth-addrR3 : paper-id → pub-id, editor-id
Boyce-Codd Normal Form
• Suatu Trivial FD adalah suatu bentuk YZ → Z
• Suatu relasi R dalam kondisi Boyce-Codd Normal Form (BCNF) jika untuk semua nontrivial FD X → A, X adalah superkey
• BCNF adalah suatu bentuk yang lebih kuat dari normalisasi ke tiga. 3NF equivalent dengan perkataan bahwauntuk setiap nontrivial FD X → A, dimana X dan A merupakan simple atau composite attribut, satu dari duakondisi harus dipenuhi.X adalah superkey, atauA adalah prime attribute
• BCNF mengelimisasi kondisi kedua dari 3NF
Penerapan Bentuk Normalisasi
Proses perancangan database menggunakan metode normalisasi dapat dimulai dari dokumen dasar yang pakai dalam sistem.
• Menuliskan semua data yang akan direkam, bagian yang double tidak perlu dituliskan. Terlihat record record yang tidak lengkap, sulit untuk membayangkan bagaimana bentuk record yang harus dibentuk untuk merekam data tersebut.
• Bentuklah menjadi bentuk normal kesatu dengan memisah misahkan data pada field field yang tepat dan benilai atomic, juga seluruh record harus lengkap adanya. Bentuk file adalah flat file.
Dengan bentuk normal kesatu ini telah dapat dibuat satu file dengan 11 field yaitu nomor factur, kode supplier, nama supplier, kode barang, nama barang, tanggal, jatuh tempo, quantitas, harga, jumlah, total satu factur.
Teknik Entity Relationship ( ER )
Konsep Entity Relationship (Cardinality)
a. One to One Relationship
Hubungan antara file pertama dan file kedua adalah satu berbanding satu.
Contoh :
• pada pengajaran private satu guru satu siswa
• “seorang guru mengajar seorang siswa, seorang siswa diajar oleh seorang guru”
Gambar :

b. One to Many atau Many to One Relationship
Hubungan antara file pertama dan file kedua adalah satu berbanding banyak atau banyak berbanding satu.
Contoh :
• Dalam suatu perusahan satu bagian mempekerjakan banyak pegawai.
• “Satu bagian mempekerjakan banyak pegawai, satu pegawai kerja dalam satu bagian”

c. Many to Many Relationship
Hubungan file pertama dan file kedua adalah banyak berbanding banyak.
Contoh :
• Dalam universitas seorang mahasiswa dapat mengambil banyak matakuliah
• “Satu mahasiswa mengambil banyak matakulih dan satu matakuliah diambil banyak mahasiswa.”

LANGKAH-LANGKAH PERANCANGAN TEKNIK ER
Sumber awal data teknik perencanaan database dengan ER adalah data dictionary (kumpulan data).
Langkah-langkah perancangan ER :
1. Memilih kelompok atribut yang sama untuk dijadikan sebuah entitas dan menentukan primary key dengan syarat unik dan mewakili entitas
2. Menggambarkan Cardinality dari ER diagram berdasarkan analisa relasi yang didapat. Relasi yang terjadi dapat One to One, One to Many dan Many to Many relationship
3. Membentuk SKEMA DATABASE atau LRS (Logical Record Structure) berdasarkan ER diagram
• Bila relasi One to One maka foreign key diletakkan pada salah satu dari 2 entitas yang ada atau menyatukan ke dua entitas tersebut.
• Bila relasi One to Many maka foreign key diletakkan di entitas yang Many
• Bila relasi many to many maka dibuat “file konektor” yang berisi 2 foreign key yang berasal dari kedua entitas
Membentuk tabel-tabel berdasarkan primary key yang terpilih dengan syarat sudah mencapai aturan normalisasi sekurang-kurangnya 3NF dari Skema DB/LRS yang ada :
PENERAPAN TEKNIK E – R
Buatlah perancangan database dengan teknik ER untuk data dictionary berikut ini :
• No. Anggota
• Nama Anggota
• Tgl. Lahir
• Alamat
• Tgl. Masuk
• Kode Buku
• Judul
• Pengarang
• Penerbit
• Tahun Terbit
• Tgl.Pinjam
• Tgl. Kembali
LANGKAH 1
• Memilih kelompok atribut yang sama untuk dijadikan beberapa entitas dan menentukan primary key dengan syarat unik dan mewakili entitas
• Dari data dictionary diatas dapat ditentukan 2 entitas yaitu :
Ø Entitas Anggota (Primary key: No. Anggota)
Ø Entitas Buku (Primary Key: Kode Buku)
Anggota
• No. Anggota
• Nama Anggota
• Tgl. Lahir
• Alamat
• Tgl. Masuk
Buku
• Kode Buku
• Judul
• Pengarang
• Penerbit
• Tahun Terbit
• Atribut Tgl. Pinjam dan Tgl. Kembali tidak dimasukkan dulu kedalam salah satu entitas.
LANGKAH 2
• Menggambarkan Cardinality dari ER diagram berdasarkan analisa relasi yang didapat. Relasi yang terjadi dapat One to One, One to Many dan Many to Many relationship
• Misalnya relasi yang terjadi :
“Seorang anggota dapat meminjam banyak buku dan satu buku dapat dipinjamkan oleh banyak anggota”
Gambar ER Diagram:

LANGKAH 3
• Membentuk Skema DB atau LRS berdasarkan ER diagram
• Bila relasi One to One maka foreign key diletakkan pada salah satu dari 2 entitas yang ada atau menyatukan ke dua entitas tersebut.
• Bila relasi One to Many maka foreign key diletakkan di entitas yang Many
• Bila relasi many to many maka dibuat “file konektor” yang berisi 2 foreign key yang berasal dari kedua entitas
• LRS yang berbentuk :

LANGKAH 4
• Membentuk tabel-tabel berdasarkan primary key yang terpilih dengan syarat sudah mencapai aturan normalisasi sekurang-kurangnya 3NF dari Skema DB/LRS yang ada :
• Karena relasi yang terjadi many to many maka dibuat file konektor.

Referensi:
http://zulidamel.wordpress.com/2007/09/24/perancangan-database/
Sumber :
http://af-kuliahku.blogspot.com/2008/02/perancangan-database-firmansyah0606022.html

Tidak ada komentar:

Posting Komentar