Sabtu, 13 Oktober 2012

7. Studi Kasus ERD dan Normalisasi



Sebuah perusahaan mempunyai beberapa bagian. Masing-masing bagian mempunyai pengawas dan setidaknya satu pegawai. Pegawai ditugaskan paling tidak di satu bagian (dapat pula dibeberapa bagian). Paling tidak satu pegawai mendapat tugas di satu proyek. Tetapi seorang pegawai dapat libur dan tidak dapat tugas di proyek.

Menentukan entitas
Entitasnya : pengawas, bagian, pegawai, proyek
Menentukan relasi dengan matrik relasi





Menentukan Relasi

Gambar ERD sementara
Hubungkan entitas sesuai dengan matrik relasi yang dibuat


ERD Sementara

Mengisi kardinalitas
Dari gambaran permasalahan dapat diketahui bahwa:
  • masing-masing bagian hanya punya satu pengawas
  • seorang pengawas bertugas di satu bagian
  • masing-masing bagian ada minimal satu pegawai
  • masing-masing pegawai bekerja paling tidak di satu bagian
  • masing-masing proyek dikerjakan paling tidak oleh satu pegawai












Mengisi kardinalitas

Menentukan kunci utama
Kunci utamanya: Nomor Pengawas, Nama Bagian, Nomor Pegawai, Nomor Proyek














Menentukan Kunci Utama

Menggambar ERD berdasarkan kunci
Ada dua relasi many to many pada ERD sementara, yaitu antara bagian dengan pegawai, pegawai dengan proyek, oleh sebab itu kita buat entitas baru yaitu bagian -pegawai dan pegawai-proyek Kunci utama dari entitas baru adalah kunci utama dari entitas lain yang akan menjadi kunci tamu di entitas yang baru.














Menggambar ERD berdasarkan kunci

Menentukan atribut
Atribut yang diperlukan adalah: nama bagian, nama proyek, nama pegawai, nama pengawas, nomor proyek, nomor pegawai, nomor pengawas
Memetakan atribut
  • Bagian : Nama bagian
  • Proyek: Nama proyek
  • Pegawai:Nama pegawai
  • Pengawas: Nama pengawas
  • Proyek-Pegawai : Nomor proyek, Nomor pegawai
  • Pengawas: Nomor pengawas
Menggambar ERD dengan atribut














Menggambar ERD dengan atribut

Memeriksa Hasil
Periksa apakah masih terdapat redundasi. ERD akhir: untuk pemodelan data pada sistem.


6. Alat Bantu Perancangan Basis Data


6.1 Model ERD (Entity Relationship Diagram)
ERD merupakan suatu model untuk menjelaskan hubungan antar data dalam basis data berdasarkan objek-objek dasar data yang mempunyai hubungan antar relasi.
ERD untuk memodelkan struktur data dan hubungan antar data, untuk menggambarkannya digunakan beberapa notasi dan simbol. Pada dasarnya ada tiga simbol yang digunakan, yaitu :
  1. Entiti
Entiti merupakan objek yang mewakili sesuatu yang nyata dan dapat dibedakan dari sesuatu yang lain (Fathansyah, 1999: 30). Simbol dari entiti ini biasanya digambarkan dengan persegi panjang.
  1. Atribut
Setiap entitas pasti mempunyai elemen yang disebut atribut yang berfungsi untuk mendeskripsikan karakteristik dari entitas tersebut. Isi dari atribut mempunyai sesuatu yang dapat mengidentifikasikan isi elemen satu dengan yang lain. Gambar atribut diwakili oleh simbol elips.
  1. Hubungan / Relasi
Hubungan antara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Relasi dapat digambarkan sebagai berikut :
Relasi yang terjadi diantara dua himpunan entitas (misalnya A dan B) dalam satu basis data yaitu (Abdul Kadir, 2002: 48) :
1). Satu ke satu (One to one)
Hubungan relasi satu ke satu yaitu setiap entitas pada himpunan entitas A berhubungan paling banyak dengan satu entitas pada himpunan entitas B.
2). Satu ke banyak (One to many)
Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, tetapi setiap entitas pada entitas B dapat berhubungan dengan satu entitas pada himpunan entitas A.
3). Banyak ke banyak (Many to many)
Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B.


DERAJAT RELATIONSHIP
Derajat Relationship adalah :
  1. Unary ( Derajat Satu )
Adalah satu buah relationship menghubungkan satu buah entity.
Contoh : Manusia menikah dengan manusia, relationship menikah hanya menghubungkan entity manusia.

  1. Binary ( Derajat Dua )
Adalah satu buah relationship yang menghubungkan dua buah entity.
Contoh : Pegawai memiliki kendaraan, sebuah relationship memiliki mengubungkan entity Pegawai dan entity Kendaraan.

  1. Ternary ( Derajat Tiga )
Adalah satu buah relationship menghubungkan tiga buah entity.
Contoh : Pegawai pada kota tertentu mempunyai suatu Proyek.
Entity Bekerja mengubungkan Entity Pegawai, Proyek dan Kota

CARDINALITY RASIO
Yaitu menjelaskan batasan pada jumlah entity yang berhubungan melalui suatu relationship.
Jenis-jenis Cardinality Rasio :
  1. One To One ( 1 : 1)
Yaitu perbandingan antara entity pertama dengan entity kedua berbanding satu berbanding satu.

  1. One To Many ( 1 : M )
Yaitu perbandingan antara entity pertama dengan entity kedua berbanding satu berbanding banyak.
  1. Many To One ( M : 1 )
Yaitu perbandingan antara entity pertama dengan entity kedua berbanding banyak berbanding satu.
  1. Many To Many ( M : M )
Yaitu perbandingan antara entity pertama dengan entity kedua berbanding banyak berbanding banyak.





















 Participation Constraint
Participation constraint merupakan batasan yang menjelaskan apakah keberadaan suatu entity tergantung pada hubungannya dengan entity lain .Terdapat 2 macam participation constraint , total participation contraints dan partial participation constraints

·         Total Participation
Keberadaan suatu entity tergantung pada hubungannya dengan entity lain.
·         Partial Participation
Keberadaan suatu entity tidak tergantung pada hubungannya dengan entity lain.

Weak entity
Weak Entity adalah suatu Entity dimana keberadaan dari entity tersebut tergantung dari keberadaan entity lain. Entity yang merupakan induknya disebut Identifying Owner dan relationshipnya disebut Identifying Relationship. Weak Entity selalu mempunyai Total Participation constraint dengan Identifying Owner.


Transformasi dari ERD ke Database Relasional
1.      Setiap tipe Entity dibuat suatu relasi yang memuat semua atribut simple, sedangkan untuk atribut composite hanya dimuat komponen-komponennya saja.

2.      Setiap relasi yang mempunyai atribut multivalue, buatlah relasi baru dimana Primary Keynya merupakan gabungan dari Primary Key dari relasi tersebut dengan atribut multivalue.

3.      Setiap Unary Relationship 1:N, pada relasi perlu ditambahkan suatu foreign key yang menunjuk ke nilai primary keynya.

4.      Setiap Unary Relationship M:N, buatlah relasi baru dimana primary keynya merupakan gabungan dari dua atribut dimana keduanya menunjuk ke primary key relasi awal dengan penamaan yang berbeda.

5.      Setiap Binary Relationship 1:1, dimana Participation Constraint keduanya total, buatlah suatu relasi gabungan dimana Primary Keynya dapat dipilih salah satu.

6.      Setiap Binary Relationship 1:1 dan salah satu Participation Constraintnya Total, maka Primary Key pada relasi yang Participation Constraintnya Partial menjadi Foreign Key pada relasi yang lainnya.

7.      Setiap Binary Relationship 1:1, dimana kedua Participation Constraintnya partial, maka selain kedua relasi perlu dibuat relasi baru yang berisi Primary Key gabungan dari Primary Key kedua tipe Entity yang berelasi.

8.      Setiap Binary Relationship 1 : N, dimana tipe Entity yang bersisi N mempunyai Participation Constraint Total, maka Primary Key pada relasi yang bersisi 1 dijadikan Foreign Key pada relasi yang bersisi N.

9.      Setiap Binary Relationship 1 : N, dimana tipe Entity yang bersisi N mempunyai Participation Constraint partial, buatlah relasi baru dimana Primary Keynya merupakan gabungan dari Primary Key kedua tipe Entity yang berelasi.

10.  Setiap Binary Relationship M:N, buatlah relasi baru dimana Primary Keynya merupakan gabungan dari Primary Key kedua tipe Entity yang berelasi.

11.  Setiap Ternary Relationship, buatlah relasi baru dimana Primary Keynya merupakan gabungan dari Primary Key ketiga tipe Entity yang berelasi.

12.  Setiap tipe Weak Entity, dibuat suatu relasi yang memuat semua atributnya dimana Primary Keynya adalah gabungan dari Partial Key dan Primary Key dari relasi induknya (identifying owner).


6.2 Normalisasi

Definisi

Normalisasi adalah suatu teknik untuk mengorganisasikan data ke dalam tabel-tabel untuk memenuhi kebutuhan pemakai di dalam suatu ogranisasi.

Tujuan dari Normalisasi


  Untuk menghilang kerangkapan data
  Untuk mengurangi kompleksitas
  Untuk mempermudah pemodifikasian data

Proses Normalisasi


*  Data diuraikan dalam bentuk table, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat.
*  Apabila table yang diuji belum memenuhi persyaratan tertentu, maka table tersebut perlu dipecah menjadi beberapa table yang lebih sederhana sampai memenuhi bentuk yang optimal.

Tahapan Normalisasi


Bentuk Tidak Normal
                        Menghilangkan perulangan group
Bentuk Normal Pertama (1 NF)
                        Menghilangkan Ketergantungan sebagian
Bentuk Normal Kedua (2NF)                        

                        Menghilangkan Ketergantungan Transitif

Bentuk Normal Ketiga (3NF)

                        Menghilangkan anomali-anomali hasil dari

ketergantungan fungsional

Bentuk Normal Boyce-Codd (BCNF)

                        Menghilangkan ketergantungan Multivalue

Bentuk Normal Keempat (4NF)
                       
                        Menghilangkan anomali-anomali yang tersisa

Bentuk Normal Kelima

Normalisasi pada database perkuliahan

Asumsi :
  • Seorang mahasiswa dapat mengambil beberapa mata kuliah
  • Satu mata kuliah dapat diambil oleh lebih dari satu mahasiswa
  • Satu mata kuliah hanya diajarkan oleh satu dosen
  • Satu dosen dapat mengajar beberapa mata kuliah
  • Seorang mahasiswa pada mata kuliah tertentu hanya mempunyai satu nilai

Tabel KULIAH ( 2NF )


Kode-MK                Nama-MK                                Kode-Dosen              Nama-Dosen           


 MI350                     Manajemen Basis Data                    B104                          Ati
 MI465                     Analisis Prc. Sistem                         B317                          Dita
 AKN201                 Akuntansi Keuangan                        D310                          Lia
 MKT300                 Dasar Pemasaran                              B212                          Lola   



Tabel MAHASISWA-3 ( 3NF )


 No-Mhs           Nama-Mhs                   Jurusan                 


  2683                     Welli                            MI
  5432                     Bakri                            AK    




Tabel Nilai ( 3NF )


No-Mhs           Kode MK                       Nilai


 2683                     MI350                          A
 2683                     MI465                          B
 5432                     MI350                          C
 5432                     AKN201                      B
 5432                     MKT300                      A   



Tabel MATAKULIAH ( 3NF )


Kode-MK                Nama-MK                                Kode-Dosen             


MI350                     Manajemen Basis Data                    B104                       
MI465                     Analisis Prc. Sistem                         B317                                  AKN201                 Akuntansi Keuangan                        D310                         
MKT300                 Dasar Pemasaran                              B212                             


Tabel DOSEN ( 3NF )


    Kode-Dosen              Nama-Dosen           


 B104                          Ati
 B317                          Dita
 D310                          Lia
 B212                          Lola