DEPENDENCY DAN NORMALISASI

Functional Dependency (ketergantungan fungsional) : menggambarkan hubungan, batasan, keterkaitan antara atribut-atribut dalam relasi. Suatu atribut dikatakan fuctional dependency pada yang lain jika kita menggunakan harga tersebut untuk menentukan harga atribut lain. Functional dependency digambarkan dengan tanda panah :
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.
Macam-macam Dependency :
  • Function Dependency
    • Full Dependency (ketergantungan penuh) 
    • Menunjukkan jika terdapat atribut A dan B
      dalam suatu relasi, dimana :
      ◦ B memiliki ketergantungan fungsional secara penuh pada A,
      ◦ B bukan memiliki dependensi terhadap subset A
                    Contoh :
{NIM, nama} -> idRuang  bukan Full Dependency jika nama dihilangkan, maka NIM -> idRuang bisa Full dependency
    • Partially Dependency (ketergantungan parsial) : B memiliki ketergantungan terhadap subset A. 
                    Contoh : terdapat sebuah tabel seperti dibawah ini
                              {NIM, Nama} --> idRuang merupakan partially dependency. Dimana jika salah 
                               satu atribut dihilangkan (Nama dihilangkan), maka ketergantungan masih tetap
                               ada.

    • Transitive Dependency : A menentukan B, B menentukan C. Jadi bisa dikatakan A menentukan C melalui B.
                    Contoh : terdapat sebuah tabel seperti dibawah ini

                           NIP --> kdCabang, kdCabang --> almCabang. Jadi NIP menentukan almCabang 
                           melalui kdCabang.
Normalisasi : adalah proses untuk mendapatkan struktur tabel atau relasi yang efisien dan bebas dari anomali. Sehingga sebagian ambiguitas dalam struktur data bisa dihilangkan.
Berikut ini ada beberapa alasan mengapa kita melakukan normalisasi :
  1. Optimalisasi struktur-struktur tabel
  2. Meningkatkan kecepatan
  3. Menghilangkan pemasukan data yang sama
  4. Lebih efisien dalam penggunaan media penyimpanan
  5. Mengurangi redudansi (penggandaan data)
  6. Mengindari anomali
  7. Integritas data yang ditingkatkan
Terdapat beberapa bentuk normalisasi yang biasa digunakan yaitu :
  1. First normal form (1NF)
  2. Second normal form (2NF)
  3. Third normal form (3NF)
  4. Boyce-codd normal form (BCNF)
  5. Four normal form (4NF)
  6. Five normal form (5NF)
Dari 6 bentuk normalisasi diatas, saya hanya akan menjelaskan poin 1 - 3. yang poin 4 - 6 insya alloh akan  saya jelaskan pada postingan berikutnya.

1NF (Bentuk normal Pertama)
adalah suatu keadaan yang membuat setiap perpotongan baris dan kolom dalam relasi hanya berisi satu nilai, atau tidak ada dua value dalam satu atribut.

2NF (Bentuk normal kedua)
Bentuk normal 2NF terpenuhi jika memenuhi 1NF, dan semua tribut selain primary key, secara utuh memiliki Functional Dependency pada primary key. Jika ada tribut yang tidak mempunyai ketergantungan pada primary key, maka dihapus.

3NF (Bentuk normal ketiga)
Bentuk normal 3NF terpenuhi jika memenuhi 2NF, dan juga tidak ada atribut non primary key yang tidak memiliki ketergantungan terhadap atribut non primary key yang lainnya ( ketergantungan transitif).

Query Language

Query language atau Bahasa Query merupakan bahasa yang digunakan untuk melakukan query / perintah-perintah untuk mengakses data pada sistem basisdata.
Bahasa Query dikategorikan menjadi 2, yaitu :
  1. Bahasa prosedural 
    Bahasa prosedural ini identik dengan aljabar relational. Bahasa prosedural merupakan suatu bahasa yang membuat suatu urutan instruksi.
  2. Bahasa non prosedural 
    Bahasa non prosedural identik dengan kalkulus relational dan kalkulus relasional tupel. Bahasa non prosedural mendeskripsikan informasi tanpa memberikan urutan instruksi.


Bahasa DBMS :
  • Data Definition Language (DDL) : Mendefinisikan skema dan penyimpanan disimpan dalam Data Dictionary. 
  • Data Manipulasi Bahasa (DML) : Manipulatif mengisi skema, update database, retrieval query isi database.
  • Data Control Language (DCL) : Perizinan, akses kontrol dll.
   
Query Operators
  • Relational Aljabar
    •   tuple (unary) Seleksi, Proyeksi 
    •   set (biner) Union, Intersection, Perbedaan 
    •   tuple (biner) Join, Divisi
  • Additional  Operator 
    • Outer Join, Uni Outer

Aljabar Relational
Aljabar relasional adalah suatu bahasa query prosedural  yang memiliki satu atau dua masukkan dan menghasilkan keluaran dari operasi tersebut. Ada dua operasi pada aljabar relasional yaitu operasi dasar dan operasi tambahan
  • Operasi Dasar 
    terdiri dari select, project, cross, union, intersection, subdifference, rename,Cartesian product
  • Operasi Tambahan 
    terdiri dari set intersection,tetha join , natural join, division

Jenis-jenis Operasi

  • Unary  
    suatu operasi yang hanya digunakan pada suatu relasi
  • Binary 
    suatu operasi yang memerlukan sepasang relasi

Selection
Selection merupakan suatu operasi untuk menyeleksi tupel-tupel yang memenuhi suatu predikat.

Projection

Projection merupakan sebuah operasi unary yang digunakan untuk memperoleh kolom-kolom tertentu.

Transformasi Model Data

Model data relational lanjut

  •  Varian entitas, terdiri dari :
    • Entitas kuat : suatu entitas yang keberadaannya tidak tergantung pada entitas lain.
    • Entitas lemah : suatu entitas yang keberadaannya tergantung pada entitas lain. Entitas lemah tidak memiliki atribut yang dapat berfungsi sebagai atribut kunci.
    • Contoh entitas kuat dan lemah :
    • Pada gambar diatas, hobi merupakan entitas lemah, karena entitas hobi tergantung pada entitas mahasiswa.
  • Agregasi : menggambarkan sebuah himpunan relasi yang secara langsung menghubungkan sebuah entitas dengan sebuah himpunan relasi dalam ERD. Contoh agregasi :
 
Transformasi Model Data ke Basis Data Fisik
Komponen ERD ditransformasikan menjadi tabel yang merupakan komponen utma pembentuk basis data. Kemudian atribut yang melekt pada masing-masing himpunan entitas dan relasi dinyatakan sebagai field dari tabel yang sesuai.
Terdapat beberapa transformasi model data ke basis data fisik, yaitu :
  1. Transformasi Dasar : setiap himpunan entitas akan diimplementasikan sebaga sebuah tabel
  2. Relasi 1-1 menghubungkan dua buah entitas yang diwujudkn dalam bentuk penambahan atribut-atribut relasi ke tabel yang mewakili salah satu dari kedua himpunan entitas.
  3. Relasi 1-N menghubungkan dua buah himpunan entitas, direpresentasikan dalam bentuk pemberian atribut key dari himpunan entitas yang berderajat 1 ke tabel yang mewakili himpunan entitas berderajat N.
  4. Relasi N-N menghubuungkan dua buah himpunan entitas, diwujudkan dalam bentuk table khusus yang memiliki field/foreign key yang berasal dari key-key dari himpunan entitas yang dihubungkan.