Apr 03

Functional Dependencies

Functional dependency (FD) atau kebergantungan fungsional adalah constraint  atau batasan/ ketentuan antara 2 buah himpunan atribut pada sebuah tabel.

Kebergantungan Fungsional

JIka A dan B adalah himpunan atribut dari tabel T, kebergantungan fungsional antara A dan B biasanya dinyatakan dalam notasi notasi A -> B. Notasi A -> B berarti:

  • A menentukan B
  • B secara fungsional bergantung kepada A.

A -> B jika memenuhi syarat berikut ini :

Pada sebuah tabel T, jika ada dua baris data atau lebih dengan nilai atribut A yang sama maka baris-baris data tersebut pasti akan memiliki nilai atribut B yang sama Namun hal ini tidak berlaku sebaliknya.

Untuk lebih jelasnya perhatikan tabel berikut ini:

NIM Nama_Mhs Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai
1-01 Tukimin TE Elektro TE-001 Elektronika 3 A
1-01 Tukimin TE Elektro DU-001 English 2 A
2-01 Jamilah IF Informatika IF-001 Algoritma 3 B
2-01 Jamilah IF Informatika DU-001 English 2 C
2-02 Maemunah IF Informatika IF-002 Database 2 A

Contoh kebergantungan fungsional

  • NIM -> Nama_mhs
    Untuk setiap baris data, jika NIM = 1-01 pasti Nama_mhs = ‘Tukimin’, walaupun belum tentu semua mahasiswa yang bernama Tukimin memiliki NIM = 1-01
  • NIM -> Kd_jur
    Untuk setiap baris data, jika NIM = 1-01 pasti Kd_jur = ‘TE’, walaupun tidak semua baris data dengan kd_jur ‘TE’ memiliki kolom NIM bernilai 1-01
  • NIM -> Nama_Jur
    Untuk setiap baris data dengan kolom NIM bernilai 1-01 pasti memiliki kolom Nama_Jur = ‘Elektro’, walaupun tidak semua orang di jurusan Elektro memiliki NIM = 1-01. Demikian pula tidak semua baris data pada tabel dengan kolom Nama_Jur = ‘Elektro’ memiliki kolom NIM = 1-01

Penulisan Kebergantungan Fungsional

Penulisan kebergantungan fungsional dari 3 poin di atas dapat diringkas menjadi (NIM) -> (nama_mhs, kd_jur, nama_jur)

Dengan demikian, dari tabel tersebut dapat kita simpulkan beberapa kebergantungan fungsional (FD) sebagai berikut:

  • FD1: (nim) -> (nama_mhs, kd_jur, nama_jur)
  • FD2: (kd_jur) -> (nama_jur)
  • FD3: (kode_mk) -> (nama_mk, sks)
  • FD4: (nim,kode_mk) -> (nilai)

Jenis Kebergantungan Fungsional

Ada beberapa jenis kebergantungan fungsional, di antaranya yaitu:

  1. Partial Functional dependency
  2. Transitive Functional dependency
  3. Multivalued Functional dependency

Ketiganya adalah konsep penting dalam normalisasi.

Apr 03

The Three Keys

Konsep tentang key adalah konsep yang penting untuk memahami keterkaitan antar atribut data dalam tabel dan akan sangat berguna dalam proses normalisasi. Dalam setiap tabel, terdapat 3 macam key:

Super key

Super key adalah satu atribut atau gabungan atribut (kolom) pada tabel yang dapat membedakan semua baris secara unik.

Candidate key

Candidate key disebut juga dengan minimal super key, yaitu super key yang tidak mengandung super key yang lain. Setiap candidate key pasti merupakan super key, namun tidak semua super key akan menjadi candidate key.

Primary key

Primary key adalah salah satu candidate key yang dipilih (dengan berbagai pertimbangan) untuk digunakan dalam DBMS. Tiap tabel hanya memiliki 1 primary key, namun primary key tersebut bisa saja dibentuk dari beberapa atribut (kolom).

Untuk memperjelas pemahaman kita terhadap 3 macam key di atas, perhatikan contohnya pada tabel mata_kuliah di bawah ini: Continue reading

Mar 14

Definisi dan Tujuan Normalisasi

Definisi Normalisasi

Normalisasi adalah langkah-langkah sistematis untuk menjamin bahwa struktur database memungkinkan untuk general purpose query dan bebas dari insertion, update dan deletion anomalies yang dapat menyebabkan hilangnya integritas data (E.F. Codd, 1970)

Tujuan Normalisasi

Pada dasarnya normalisasi dilakukan untuk memperbaiki desain tabel yang kurang baik sehingga penyimpanan data menjadi lebih efisien dan bebas anomali data. Untuk memperjelas pemahaman tentang proses normalisasi, perhatikan diagram berikut:

Intinya, normalisasi dilakukan terhadap desain tabel yang sudah ada dengan tujuan untuk meminimalkan redundansi (pengulangan) data dan menjamin integritas data dengan cara menghidari 3 Anomali Data: Update, Insertion dan Deletion Anomaly. Continue reading

Mar 13

Representasi Spesialisasi dan Agregasi

Representasi Spesialisasi (IS A)

Ada 2 pendekatan yang dipakai didalam menurunkan spesialisasi kedalam tabel.

  1. Pendekatan 1
    • Bentuklah tabel untuk level entitas yg lebih tinggi
    • Bentuklah tabel untuk level entitas yg lebih rendah
      (*dengan memasukkan primary key pada level yg lebih tinggi ke  tabel dengan level yang lebih rendah)

    Continue reading

Mar 13

Representasi Relasi (* pada kardinalitas N to N)

Himpunan Banyak ke Banyak

Relasi dari Himpunan Banyak ke Banyak direpresentasikan kedalam Tabel tersendiri dengan primary key dari 2 Entitas menjadi atribut di Tabel Relasi. Perhatikan relasi banyak ke banyak berikut dan contoh penurunan ke tabel :

”"

Hubungan Kardinalitas dengan Tabel yang Terbentuk

Kardinalitas relasi dari Himpunan Entitas yang saling ber-relasi akan menentukan banyaknya tabel yang bisa di buat. Adapun aturannya sebagai berikut :

  1. 1 ke 1
    Pilih primary key di 1 himpunan entitas untuk menjadi foreign key bagi himpunan entitas yang lain.
  2. 1 ke banyak / banyak ke 1
    Primary key pada Tabel berkardinalitas sedikit menjadi foreign key pada tabel berkardinalitas banyak.
  3. Banyak ke banyak
    Sudah jelas di atas
Mar 13

Representasi Atribut Sebagai Kolom

Atribut Simple, Single, dan Derivied

Pada atribut bertipe simple , single dan derived direpresentasikan sama persis seperti diagram ER. Tetapi untuk atribut komposit dan multivalued mempunyai aturan tersendiri.

Atribut Komposit

Atribut komposit akan dipecah dengan membuat atribut terpisah untuk masing masing komponennya. Contoh atribut nama pada tabel mahasiwa, di pecah menjadi 2 kolom yaitu nama depan dan nama belakang.

Atribut Multivalued

Atribut multivalued mengharuskan untuk di pecah menjadi 2 Tabel. Atribut multivalued  M dari entitas E direpesentasikan oleh tabel terpisah EM. Perhatikan gambar di bawah yang menunjukkan bagaimana penurunan sebuah atribut multivalued : Continue reading