Rabu, 10 Maret 2010

Kunci ( key ) Diagram Entity-Relationship

Kunci (Key)
Kunci atau key merupakan satu atau gabungan dari beberapa atribut yang dapat membedakan semua baris data dengan unik.
Jika suatu atribut menjadi kunci, maka tidak boleh ada dua atau lebih baris data dengan nilai yang sama. Macam-macam kunci (key) adalah :
  • Super Key
Super key, merupakan suatu himpunan yang terdiri dari satu atau lebih atribut yang dapat membedakan setiap baris data dengan unik dalam sebuah tabel.
Contoh (NIM, nama_mhs, alamat_mhs, tgl_lahir), (NIM, nama_mhs, alamat_mhs), (NIM, nama_mhs), (nama_mhs), (NIM).
  • Candidate Key
Candidate-key, merupakan himpunan atribut minimal yang dapat membedakan setiap baris data dengan unik dalam sebuah tabel.
Contoh adalah (NIM), (nama_mhs).
  • Primary Key
Primary key, merupakan kunci yang paling unik, lebih ringkas, lebih sering dijadikan acuan.
Primary key dapat dipilih dari salah satu dari candidate key. Contoh primary key adalah (NIM).

Diagram Entity-Relationship (Diagram E-R)
Suatu database, dapat digambarkan secara grafik dengan suatu diagram E-R.

Notasi E-R
  • Persegi panjang, menggambarkan himpunan entitas.
  • Elips, menggambarkan atribut-atribut (atribut yang berfungsi sebagai kunci digarisbawahi).
  • Belah ketupat, menggambarkan himpunan relationship.
  • Garis, menggambarkan hubungan atribut ke entitas dan himpunan entitas ke himpunan relationship.
  • Kardinalitas relasi dapat digambarkan dengan banyaknya garis cabang atau dengan pemakaian angka, 1 untuk relasi satu, n untuk relasi banyak.

Tahapan Pembuatan Diagram E-R
  • Mengidentifikasi dan menetapkan seluruh himpunan entitas yang akan terlibat 
  • Menentukan atribut – atribut key dari masing-masing himpunan entitas  
  • Mengidentifikasi dan menetapkan seluruh himpunan relasi diantara himpunan entitas yang ada beserta foreign key 
  • Menentukan derajat kardinalitas untuk setiap himpunan relasi  
  • Melengkapi himpunan entitas dan himpunan relasi dengan atribut deskriftif (non key)
Diagram E-R

Contoh, relasi antara himpunan entitas Mahasiswa dengan himpunan Mata Kuliah. Himpunan relasinya disebut dengan “Belajar”.
Pada relasi ini, seorang mahasiwa bisa mengambil lebih dari satu mata kuliah. Setiap mata kuliah dapat diambil lebih dari satu mahasiswa.


Himpunan Entitas Lemah (Weak Entity Set)
  • Himpunan entitas yang tidak memiliki atribut yang dapat berfungsi sebagai primary key. 
  • Himpunan entitas lemah berisi entitas-entitas yang kemunculannya tergantung pada keberadaannya dalam sebuah relasi terhadap entitas lain (entitas kuat).  
  • Sebagai contoh, pada tabel data Mahasiswa, dapat dilengkapi dengan entitas baru, yaitu hobi.













Data hobi dapat dikategorikan sebagai himpunan entitas lemah (digambarkan dengan kotak ganda), karena keberadaannya bergantung pada adanya relasi dengan entitas yang ada pada himpunan entitas mahasiswa.

Spesialisasi dan Generalisasi

  • Suatu himpunan entitas mungkin mempunyai sub kelompok entitas yang berbeda dari entitas yang lain pada himpunan entitas tersebut. 
  • Suatu sub himpunan yang berada dalam himpunan entitas mungkin mempunyai atribut yang tidak dimiliki oleh semua entitas dalam himpunan entitas tersebut.  
  • Himpunan entitas dosen dapat dibagi menjadi dua, yaitu dosen tetap dan dosen tidak tetap. Himpunan entitas dosen, bisa memiliki atribut nip, golongan, pangkat, tgl_masuk.   
  • Sedangkan untuk dosen tidak tetap, atribut-atribut tersebut tidak diperlukan.  
  • Adanya perbedaan tersebut menyebabkan entitas dosen tidak mungkin disatukan dalam sebuah himpunan entitas.  
  • Dari suatu himpunan entitas, dapat dilakukan pengelompokan yang dapat membentuk suatu himpunan entitas baru atau proses top down disebut dengan proses spesialisasi






Kebalikan dari spesialisasi adalah generalisasi, yaitu proses bottom up.












Agregasi 
 
Satu keterbatasan dari model E-R adalah tidak mungkin untuk mengekspresikan suatu himpunan relasi yang secara langsung menghubungkan sebuah himpunan entitas dengan sebuah
himpunan relasi. Untuk mengatasi hal tersebut, digunakan suatu notasi khusus yang dinamakan dengan agregasi.

  • Contoh, relasi antara himpunan entitas mahasiswa dengan himpunan entitas mata kuliah. Terdapat beberapa mata kuliah yang mengandung kegiatan praktikum. Himpunan relasi “Kegiatan” dalam diagram ER berikut ini menunjukkan entitas mahasiswa yang mengikuti kegiatan praktikum, karena sedang mengambil mata kuliah yang ada praktikumnya 


Kardinalitas Relasi

Kardinalitas merupakan jumlah maksimum entitas, dimana entitas tersebut dapat berelasi dengan entitas pada himpunan entitas yang lain.
Tipe – tipe Kardinalitas Relasi :


  • Satu – satu (One to One)
Suatu entitas di dalam himpunan entitas A dihubungkan dengan paling banyak satu entitas di dalam himpunan entitas B, dan entitas di dalam himpunan entitas B dihubungkan dengan paling banyak satu entitas dalam himpunan entitas A. 
  • Satu – Banyak (One to Many)
Suatu entitas di dalam himpunan entitas A dihubungkan dengan lebih dari satu entitas di dalam himpunan entitas B, dan entitas di dalam himpunan entitas B hanya dapat dihubungkan dengan paling banyak satu entitas dalam himpunan entitas A. 
  • Banyak – Satu (Many to One)
Suatu entitas di dalam himpunan entitas A dihubungkan dengan paling banyak satu entitas di dalam himpunan entitas B, dan entitas di dalam himpunan entitas B dapat dihubungkan dengan lebih dari satu entitas dalam himpunan entitas A. 
  • Banyak – Banyak (Many to Many)
Suatu entitas di dalam himpunan entitas A dapat dihubungkan dengan lebih dari satu entitas di dalam himpunan entitas B, dan entitas di dalam himpunan entitas B dapat dihubungkan dengan lebih dari satu entitas dalam himpunan entitas A.

Relasi dan Himpunan Relasi

Relasi menunjukkan adanya hubungan di antara sejumlah entitas yang berasal dari sejumlah himpunan entitas yang berbeda.
Misalnya, seorang mahasiswa dengan NIM = ‘0700001’ dan nama_mhs = ‘Pascal’ (yang ada di himpunan entitas mahasiswa) mempunyai relasi dengan entitas mata kuliah dengan kode_mtkul = ‘CS3004’ dan nama_mtkul = ‘Analisa Algoritma’. Relasi dari kedua entitas tersebut mengandung arti bahwa mahasiswa tersebut sedang mengambil mata kuliah Analisa Algoritma.

Atribut dalam E-R

Dikarakterisasikan dalam beberapa tipe : 

  • Atribut sederhana dan komposit
Atribut sederhana yaitu atribut yang tidak diuraikan menjadi sub atribut, atau tidak dapat diuraikan menjadi atribut yang lain.
Atribut komposit adalah atribut yang dapat diuraikan menjadi beberapa sub atribut.  

  • Pada contoh di bawah, nama_mhs merupakan atribut sederhana, sedangkan alamat_mhs merupakan atribut komposit karena dapat diuraikan menjadi beberapa sub atribut, yaitu alamat, nama_kota, kodepos.
  • Atribut bernilai tunggal dan banyak
Atribut bernilai tunggal  adalah atribut yang mempunyai paling banyak satu nilai untuk setiap baris data.  
  • Contoh data mahasiswa, semua atribut merupakan atribut bernilai tunggal.
Atribut bernilai banyak adalah atribut yang dapat berisi lebih dari satu nilai, tetapi mempunyai jenis yang sama.  
  • Contoh atribut bernilai banyak adalah jika kita menambahkan atribut hobi pada data mahasiswa. Karena seorang mahasiswa dapat memiliki satu hobi atau lebih dari satu hobi, bahkan dapat juga tidak mempunyai hobi.
  • Atribut null
Nilai null digunakan ketika suatu entitas tidak mempunyai suatu nilai untuk suatu atribut. Null juga menandakan bahwa suatu nilai atribut tidak ada atau tidak diketahui.   
  • Contoh, jika mahasiswa tidak mempunyai hobi, maka pada atribut hobi tidak ada nilainya.
  • Atribut turunan
Atribut turunan adalah atribut yang nilainya diperoleh dari pengolahan atau dapat diturunkan atribut atau tabel lain yang berhubungan.  
  • Contoh adalah penambahan atribut angkatan pada tabel data mahasiswa. Nilai pada atribut angkatan dapat diketahui dari NIM mahasiswa. 

Entity-Relationship (E-R)

Model data Entity-Relationship (E-R) terdiri dari sekumpulan obyek-obyek, yang disebut dengan entitas dan hubungan yang terjadi diantara obyek-obyek tersebut.
Model data E-R terbagi menjadi tiga konsep dasar, yaitu : himpunan entitas, himpunan relationship, dan atribut.

1. Entitas (Entity) dan Himpunan Entitas (Entity Set)
Entitas merupakan suatu obyek dasar atau individu yang mewakili sesuatu yang nyata eksistensinya dan dapat dibedakan dari obyek-obyek yang lain. Mempunyai sekumpulan sifat, dan nilai dari beberapa sifat tersebut adalah unik yang dapat mengidentifikasi entitas tersebut.
  • Entitas
Sebagai contoh : setiap mahasiswa pada suatu perguruan tinggi merupakan suatu entitas, dan NIM  menjadi identitas seorang mahasiswa.
  •  Himpunan Entitas
  • Sekumpulan entitas yang mempunyai tipe yang sama (sejenis) dan berada dalam lingkup yang sama membentuk suatu himpunan entitas
  • Sebagai contoh, sekumpulan orang yang menjadi mahasiswa pada suatu perguruan tinggi, dapat didefinisikan sebagai himpunan entitas mahasiswa. Sehingga dapat dikatakan bahwa entitas menunjuk pada individu suatu objek, sedangkan himpunan entitas menunjuk pada rumpun dari individu tersebut. 
  • Suatu entitas memiliki atribut. Atribut merupakan sifat-sifat atau properti yang dimiliki oleh entitas. Atribut inilah yang membedakan antara entitas yang satu dengan entitas yang lain.
  • Sebagai contoh, entitas mahasiswa mempunyai atribut NIM, nama_mhs,alamat_mhs,tgl_lahir 

Proses Desain Data Base

  • Analisis Persyaratan 
Memahami dan mengetahui data yang harus disimpan dalam database, aplikasi apa yang harus diterapkan, jenis operasi apa yang akan digunakan, dst.
  • Desain Data Base Konseptual
Informasi yang dikumpulkan pada tahap analisis persyaratan digunakan untuk mengembangkan deskripsi data tingkat tinggi.
Tahapan ini dilakukan dengan model E-R, tujuannya untuk menciptakan gambaran sederhana tentang data yang mirip dengan pemikiran pengguna / user.


  • Desain Data Base Logika
Merubah skema E-R menjadi skema database relasional.
Tujuannya adalah memperoleh skema konseptual pada model data relasional yang sering dinamakan dengan skema logika.

  • Perbaikan Skema
Analisis mengenai sekumpulan relasi dalam skema database relasional untuk mengidentifikasi permasalahan yang muncul dan memperbaikinya.

  • Desain Data Base Fisik
Tahapan ini mencakup pembuatan indeks pada beberapa tabel, mengelompokkan beberapa tabel atau melibatkan desain ulang yang substansial terhadap beberapa bagian skema database.

  • Desain Aplikasi dan Keamanan 
Semua perangkat lunak yang melibatkan sebuah DBMS harus mempertimbangkan aspek aplikasi yang berada di luar database, Enkripsi, dan Digital Signature.

Model - Model Basis Data

 1. Model Data Flat File
Model flat file (file datar), dimana semua record disimpan dalam betuk sebuah file biasa / format file text. Informasi pada suatu file-file disimpan sebagai fields,dengan fields-nya memiliki panjang konstan atau bervariasi yang dipisahkan beberapa karakter / delimeter. Pada model ini, tidak ada hubungan (relationship) yang bisa didefinisikan atau dibuat diantara fields tersebut, Dengan tidak adanya hubungan antar fields, maka fields tersebut hanya bisa diakses dengan cara berurutan (sekuensial). Sebagai contoh, jika ingin menemukan suatu fields pelanggan ke 50, maka akan dilakukan pencarian dari field pertama sampai ke field 49 secara berurutan. Model ini sesuai dengan kondisi dimana semua fields akan diproses secara keseluruhan, tapi tidak sesuai jika hanya ingin mencari fields yang sesuai saja dalam suatu database. Kelemahan lainya pada model ini pengaturan data kurang akurat dan efisien, karena lokai fisik fields data dengan file harus diketahui, sehingga program perlu dikembangkan dalam mengatur data.


2. Model Data Hirarki 
Model selanjutnya adalah hierarchial model (model hirarki), Model ini dirancang dengan hubungan yang terstruktur sehingga memungkinkan dan mempermudah akses terhadap suatu data, memiliki kemampuan untuk menemukan dan memelihara relasi antar kelompok data. Hubungan yang terjadi dalam model hirarki ini adalah parent-child dan one-to-many. Setiap tabel parent bisa mempunyai beberapa child tabel, namun setiap child tabel hanya mempunyai satu parent tabel.

Kelebihanya : Karena struktur datanya permanen, dan secara eksplisit terhubung antara satu sama lainnya, maka proses pengaksesan data akan lebih cepat, mudah dilakukanya pengaturan dalam integritas data.

Kelemahannya : Meskipun demikian, model struktur yang bersifat kaku ini menyebabkan beberapa masalah. Penambahan child tabel tidak bisa dilakukan jika tidak terhubung dengan parent tabel. Misalnya, jika parent tabelnya adalah “Dokter” dan child tabelnya adalah “Pasien”, maka penambahan pasien akan bergantung dengan dokter. Dengan kata lain, seorang pasien harus juga menambahkan seorang dokter. Begitu juga jika sebuah parent tabel dihapus, maka child-child tabel dibawahnya juga akan terhapus.
Pada model ini pengguna harus familiar dengan struktur basis data, sering terjadinya redudansi (berulangnya) data.



3. Model Data Jaringan 
Model ini menerapkan hubungan data yang merupakan perbaikan dari model hirarki, tabel-tabel terhubung dalam sebuah himpunan, dimana suatu tabel owner akan dihubungkan dengan beberapa tabel member.
Menerapkan konsep dasar relasi parent/child, set strutur dapat direpresentasikan sebagai relasi one-to-many antar table. Memiliki kemampuan root table untuk melakukan share relationships dengan child tables.
Kelebihan : Seperti halnya model hirarki, pengaksesan data pada network model juga berlangsung sangat cepat, data dapat diakses dari beberapa table, dapat membentuk query ( perintah-perintah untuk mengakses data ) yang komplek dalam melakukan retrieve data.
Namun demikian, model ini juga mempunyai beberapa masalah. Misalnya, seorang user harus paham betul secara menyeluruh struktur database yang ada untuk memperoleh sebuah data atau informasi. Jika strukturnya berubah, maka segala informasi yang berkaitan dengannya akan berubah juga. 



4. Model Data Relasional
Model ini banyak digunakan pada masa sekarang ini, pada model database relational, data disimpan dalam sebuah relations (relasi), biasanya disebut dengan table. Tabel terdiri atas baris dan kolom. Baris mempresentasikan record (atau tuples), dan kolom mempresentasikan fields (atau attributes) adalah komponen-komponen dasar yang membentuk suatu relasi database. Setiap data individual, disimpan dalam field di suatu tabel dan setiap record terdiri dari beberapa field yang membentuk suatu tabel.
Model hirarki dan network cenderung bermasalah dengan redundansi dan integritas data. Kelebihan pada model Relasional ini :
  • akses data dapat dilakukan dengan cepat dan lebih akurat 
  • Mudah dalam pengubahan struktur basis data 
  • Dipresentasikannya data secara logic 
  • Pembentukan query yang lebih komplek dalam retrieve data 
  • Integritas ( suatu hubungan ) data mudah diimplementasikan 
  • Mudah dibangunnya dan modifikasi pada program applikasi 
  • Dikembangkanya SQL ( Struktur Query Language )
Tetapi pada model relasional user harus familiar dengan relasi antar table dan menguasai SQL, pada kelompok table/informasi yang berbeda harus dilakukannya joined untuk melakukan retrieve data.


5. Model Data Berorientasi Objek ( Object Oriented ) 
Pada model ini biasanya digunakn untuk hal-hal rekayasa ( missal skripisi ), Model Basis data berorientasi objek , di definisikan dengan bahasa pemograman misalnya bahasa JAVA , disimpan dan diakses serta applikasi End User dibangun dengan pemrograman berorientasi objek pula.  Untuk membuat link antara basis data dengan applikasi digunakanlah ODMS ( Object Database Management System ).