Senin, 24 Oktober 2011

CONTOH FUNCTIONAL DEPENDENCY

FUNCTIONAL DEPENDENCY

Functional Dependency menggambarkan hubungan attributes dalam sebuah relasi
Suatu attribute dikatakan functionally dependant pada yang lain jika kita menggunakan nilai atribut tersebut untuk menentukan nilai atribut yang lain.
Simbol yang digunakan adalah à untuk mewakili functional dependency.
à dibaca secara fungsional menentukan
Notasi: A -> B
A dan B adalah atribut dari sebuah tabel. Berarti secara fungsional A menentukan B atau B tergantung pada A, jika dan hanya jika ada 2 baris data dengan nilai A yang sama, maka nilai B juga sama
Notasi: A -> B atau A x-> B
Adalah kebalikan dari notasi sebelumnya.
FUNCTIONAL DEPENDENCY (FD)
Contoh:
Functional Dependency:
NRP -> Nama
Mata_Kuliah, NRP -> Nilai
Non Functional Dependency:
Mata_Kuliah -> NRP
NRP -> Nilai
Functional Dependency
Functional Dependency dari tabel nilai
Nrp -> Nama
Karena untuk setiap nilai Nrp yang sama, maka nilai Nama juga sama
{Mata_kuliah, NRP} -> Nilai
Karena attribut Nilai tergantung pada Mata_kuliah dan NRP secara bersama-sama. Dalam arti lain untuk Mata_kuliah dan NRP yang sama, maka Nilai juga sama, karena Mata_kuliah dan NRP merupakan key (bersifat unik).
Mata_kuliah -> NRP
NRP -> Nilai
BENTUK NORMAL PERTAMA (First Normal Form - 1NF)
Suatu relasi dikatakan bentuk normal pertama, jika dan hanya jika setiap atribut bernilai tunggal untuk setiap baris. Tiap field hanya satu pengertian, bukan merupakan kumpulan kata yang mempunyai arti mendua, hanya satu arti saja dan juga bukanlah pecahan kata – kata sehingga artinya lain. Tidak ada set atribut yang berulang-ulang atau atribut bernilai ganda.
Suatu tabel dikatakan berada pada bentuk normal I jika ia tidak berada pada bentuk unnormalized table, dimana terjadi penggandaan field yang sejenis dan memungkinkan ada field yang null (kosong)
Tidak diperboleh adanya :
Atribut yang bernilai banyak (Multivalued attribut).
Attribut komposit atau kombinasi dari keduanya.
Jadi :
Harga domain atribut harus merupakan harga atomik
Misal Data Mahasiswa sbb :
atau:
Contoh
Dekomposisi menjadi :
Tabel Mahasiswa :
 - Tabel Hobi :

BENTUK NORMAL KEDUA (Second Normal Form - 2NF)
Bentuk normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh memiliki Functional Dependency pada primary key
Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya (Functional Dependency) hanya bersifat parsial saja (hanya tergantung pada sebagian dari primary key)
Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan
Ketergantungan fungsional X -> Y dikatakan penuh jika menghapus suatu atribut A dari X berarti Y tidak lagi bergantung fungsional.
Ketergantungan fungsional X -> Y dikatakan partial jika menghapus suatu atribut A dari X berarti Y masih bergantung fungsional.
Skema relasi R dalam bentuk 2NF jika setiap atribut non primary key A Î R bergantung penuh secara fungsioanl pada primary key R.

Contoh:
abel berikut ini memenuhi 1NF, tetapi tidak termasuk 2NF
Tidak memenuhi 2NF, karena {NIM, KodeMk} yang dianggap sebagai primary key sedangkan:
{NIM, KodeMk} -> NamaMhs
{NIM, KodeMk} -> Alamat
{NIM, KodeMk} -> Matakuliah
{NIM, KodeMk} -> Sks
{NIM, KodeMk} -> NilaiHuruf
Tabel tersebut perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF
Contoh
Functional dependencynya sbb:
{NIM, KodeMk} -> NilaiHuruf (fd1)
NIM -> {NamaMhs, Alamat} (fd2)
KodeMk -> {Matakuliah, Sks} (fd3)
Sehingga :
fd1 (NIM, KodeMk, NilaiHuruf) -> Tabel Nilai
fd2 (NIM, NamaMhs, Alamat) -> Tabel Mahasiswa
fd3 (KodeMk, Matakuliah, Sks) -> Tabel MataKuliah
BENTUK NORMAL KETIGA (Third Normal Form - 3NF)
Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF, dan jika tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya (ketergantungan transitif).
Contoh
Tabel mahasiswa berikut ini memenuhi syarat 2NF, tetapi tidak memenuhi 3NF
Karena masih terdapat atribut non primary key (yakni Kota dan Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni KodePos) :
KodePos à {Kota, Provinsi}
Contoh
Sehingga tabel tersebut perlu didekomposisi menjadi :
Mahasiswa (NIM, NamaMhs, Jalan, KodePos)
KodePos (KodePos, Provinsi, Kota)
Boyce-Codd Normal Form (BNCF)
Boyce-Codd Normal Form mempunyai paksaan yang lebih kuat dari bentuk Normal ketiga. Untuk menjadi BNCF, relasi harus dalam bentuk Normal Kesatu dan setiap atribut dipaksa bergantung pada fungsi pada atribut super key.
Pada contoh dibawah ini terdapat relasi Seminar, Kunci Primer adalah NPM + Seminar.
Siswa boleh mengambil satu atau dua seminar. Setiap seminar membutuhkan 2 pembimbing dan setiap siswa dibimbing oleh salah satu diantara 2 pembimbing seminar tersebut. Setiap pembimbing hanya boleh mengambil satu seminar saja. pada contoh ini NPM dan Seminar menunjukkan seorang Pembimbing.
Bentuk Relasi Seminar adalah bentuk Normal Ketiga, tetapi tidak BCNF
karena Kode Seminar masih bergantung fungsi pada Pembimbing, jika setiap Pembimbing dapat mengajar hanya satu seminar. Seminar bergantung pada satu atribut bukan super key seperti yang disayaratakan oleh BCNF. Maka
relasi Seminar harus dipecah menjadi dua yaitu :


 

Selasa, 11 Oktober 2011

DBMS

  1. Database relasional
Cara kerja database relasional:
Elemen-elemen data disimpan dalam tabel lain yang membentuk baris dan kolom. Dalam model database ini data diatur secara logis, yakni berdasarkan isi. Masing-masing record dalam tabel diidentifikasi oleh sebuah field – kunci primer – yang berisi sebuah nilai unik. Karena itulah data dalam database relasional dapat muncul dengan cara yang berbeda dari cara ia disimpan secara fisik pada komputer. Pengguna tidak boleh mengetahui lokasi fisik sebuah record untuk mendapatkan kembali datanya.


2.    Database Jaringan
Konsep database jaringan mirip dengan database hierarkis tetapi setiap record child dapat memiliki lebih dari satu record parent. Selanjutnya setiap record child dapat dimiliki oleh lebih dari satu record parent.
Database jaringan pada dasarnya digunakan dengan mainframe, lebih fleksibel disbanding database hierarkis karena ada hubungan yang berbeda antarcabang data. Akan tetapi strukturnya masih harus didefinisikan lebih dahulu. Pengguna harus sudah terbiasa dengan struktur database. Lagipula jumlah hubungan antar-record juga terbatas, dan untuk menguji sebuah field seseorang harus mendapatkan kembali semua record.
 
3. Database hierarkis
Database hierarkis merupakan model tertua dan paling sederhana dari kelima model database. Dalam model database ini mengakses atau mengupdate data bisa berlangsung sangat cepat karena hubungan-hubungan sudah ditentukan. Tetapi, karena struktur harus didefinisikan lebih dahulu, maka hal ini cukup riskan. Lagipula menambahkan field baru ke sebuah record database membuat semua database harus didefinisikan kembali. Karena itulah diperlukan model database yang baru untuk menunjukkan masalah pengulangan data dan hubungan data yang kompleks.