Jumat, 12 Oktober 2012

Studi Kasus ERD dan Normalisasi

 7. STUDI KASUS ERD dan NORMALISASI

Studi kasus erd

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 pegawaiMengisi kardinalitas   
  • Menentukan kunci utama
    Kunci utamanya: Nomor Pengawas, Nama Bagian, Nomor Pegawai, Nomor Proyek

Menggambar ERD berdasarkan kunci

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

    Menggambar ERD dengan atribut

    Menggambar ERD dengan atribut 

     

    Contoh Kasus Normalisasi

    Diberikan tabel Mahasiswa di bawah ini, akan dilakukan  normalisasi sampai bentuk normal ke tiga


    Perhatikan bahwa tabel di atas sudah dalam bentuk normal ke Satu(1NF)
    Bentuk Normal ke dua(2NF) :


    Belum memenuhi kriteria 3NF, Karena atribut non-key Nilai dan bobot masih memiliki ketergantungan fungsional.
    Bentuk Normal ke tiga(3NF) :




    Query :

Alat Bantu Perancangan Basis Data

6. ALAT BANTU PERANCANGAN BASIS DATA ( ERD DAN NORMALISASI )

6.1 Model ERD ( Entity Relationship Diagram )
6.1.1 Konsep Dasar Model ERD 
Tipe Entity 
Tipe Entiti : Sekumpulan obyek dengan kesamaan property.
Entity Occurrence : obyek “unik” pada suatu tipe entiti

Diagram ER untuk tipe entiti staff dan branch


Tipe Relationship
Tipe Relationship: Sekumpulan hubungan (bemakna) antara tipe-tipe entiti
 Relationship Occurrence : hubungan “unik”
 Semantic net dari tipe relationship Has



Degree of a Relationship type: Jumlah tipe entiti yang terlibat pada suatu relationshipRelationship dari degree Dua disebut binary
Tiga disebut ternary
Empat disebut quaternary
Binary relationship disebut POwns


Ternary relationship disebut Registers
  




 Quaternary relationship disebut Arranges






Recursive Relationship: Tipe relationship dimana terdapat tipe entiti sama terlibat pada lebih dari satu different roles Atau disebut unary relationship. Nama role digunakan bila terdapat 2 entiti dihubungkan dengan satu atau lebih relationship

Recursive relationship – Supervises dengan role names


 
Entiti-Entiti yang dihubungkan dengan 2 relationship yang berbeda dengan role names
 

 

Diagram ER entiti Staff dan Branch beserta atributnya

 

Tipe Entiti Kuat – Client dan Tipe Entiti Lemah – Preference


 

Simbol ERD








Derajat Relationship

DERAJAT RELATIONSHIP yang menjelaskan jumlah entity yang berpartisipasi dalam suatu relationship. Dalam Derajat Relationship terbagi dari tiga tingkatan yakni, Unary Degree , Binary Degree , kemudian Ternary Degree.



Perbedaan utama dari ketiga tingkatan ini adalah, Unary Degree hanya memproses satu proses dan langsung menyelesaikannya. Lain halnya dengan Binary Degree melakukan proses melalui perantara dan melalui suatu kerja kemudian menghasilkan output.

Sedangkan Ternary Degree dari proses awal terdapat dua alternatif pilihan yang dapat dipilih. Sehingga output yang didapatkan bisa lebih dari satu.


Cardinality Constraint
Suatu keadaan yang digunakan untuk menyatakan jumlah instan dalam sebuah entitas yang dapat dikaikan dengan sebuah instan pasa entitas lain.
 
Participation Constraint Dependency
Menunjukkan apakah keberadaan suatu entitas bergantung penuh / tidak dengan entitas relasinya.
Batasan (constraint) adalah jumlah minimum relasi dimana tiap entitas dapat ikut berpatisipasi.
Ada 2 jenis Participation Constraint:
  1. Partisipasi Total (         )
        adalah bentuk partisipasi yang menunjukkan ketergantungan   penuh suatu entitas (semua dan harus).
  2. Partisipasi Parsial (         )
  adalah bentuk partisipasi yang menujukkan ketergantuan tidak   penuh suatu entitas (beberapa, tidak harus semua)

6.1.2Transformasi ER ke Model Data Relasional

 Model Entity Relationship (ER) yang disajikan dengan Diagram ER (biasa disebut dengan ERD) bukanlah sebuah basis data relasional. Keduanya merupakan dua hal yang berbeda. Karena perbedaan tersebut maka diperlukan proses transformasi dari sebuah ERD menjadi suatu basis data relasional lengkap dengan tabel-tabel (atau relasi) yang telah memenuhi standar normalisasi (paling tidak normalisasi hingga tingkat 3NF). Rancangan basis data relasional hasil transformasi sendiri bergantung kepada desain awal ERD yang telah dibuat. Apakah rancangan tersebut nantinya akan baik dan maksimal dalam merumuskan kebutuhan aturan bisnis perusahaan, serta memenuhi aturan integritas basis data relasional, bergantung pada keahlian, ketelitian dan keberuntungan anda mendesain ERD tersebut.
Ada 12 Aturan yang digunakan untuk melakukan transformasi. 12 Aturan ini di dasarkan dari pemilihan jenis entity, tipe atribute, relationship degree, ratio constrain dan participation constrain yang tergambar di ERD. Untuk membantu anda untuk mengingatnya, saya kelompokan 12 aturan tersebut sebagai berikut:
  • Aturan 1 & 2 berbicara mengenai entity dan atribut.
  • Aturan 3 & 4 berbicara mengenai unary relationship.
  • Aturan 5 s/d 10 berbicara mengenai binary relationship.
  • Aturan 11 berbicara mengenai ternary relationship.
  • Aturan 12 berbicara mengenai weak entity.
Yang anda harus ingat dan pahami dalam menggunakan 12 aturan transformasi ini, yaitu:
  • Kerjakan proses transformasi secara bertahap dan berurut dari aturan 1 sampai dengan 12.
  • Tidak semuanya aturan harus dilakukan. Akan banyak sekali aturan-aturan yang terlewati karena tidak memiliki ciri-ciri yang disebutkan oleh setiap aturan.
  • Telitilah dalam melihat setiap relationship, terutama jika anda ingin mentransformasi dari suatu ERD yang cukup besar.
  • Aturan 1 adalah aturan yang mutlak dilakukan.
  • Menurut pengalaman saya, aturan yang paling sering digunakan adalah aturan 8 dan 10 karena memang ciri-ciri inilah yang paling sering muncul pada sebuah ERD. (Anda akan lihat sendiri nanti)
Sekarang mari kita membahas mengenai aturan transformasi tersebut satu persatu.
Aturan 1 – Entity dan Atribut Simpel, Key & Composite
“Setiap entity yang ada di ERD dibuatkan suatu relasi di mana relasi tersebut memuat semua atribut key dan simple. Sedangkan untuk atribut composite, dibuatkan atribut sesuai dengan komponen-komponennya saja.”
  • Buatkan relasi-relasi untuk mewakilkan setiap entity yang ada pada ERD.
  • Atribut key pada setiap entity, secara otomatis menjadi primary key pada relasi bersangkutan.
  • Atribut simple pada setiap entity, secara otomatis menjadi atribut-atribut baru pada relasi bersangkutan.
  • Atribut composite pada setiap entity, maka hanya komponen-komponen pada atribut composite tersebut yang menjadi atribut di relasi bersangkutan.
Aturan 2 – Atribut Multivalue
“Setiap relasi yang mempunyai atribut multivalue, maka dibuatkan sebuah relasi baru di mana primary key-nya bertipe composite key. Primary key tersebut yaitu gabungan dari Primary Key dari entity yang memiliki atribut multivalue dan nama atribut multivalue itu sendiri.”
  • Buatkan sebuah relasi baru.
  • Relasi baru ini memiliki primary key bertipe composite key (kunci gabungan).
  • Primary key tersebut adalah gabungan dari Primary Key dari Entity tersebut dan nama Atribut multivalue itu sendiri.
Aturan 3 – Unary Relationship 1:N
“Setiap unary relationship 1:N, pada relasi tersebut perlu ditambahkan suatu foreign key yang menunjuk ke nilai primary key-nya.”
  • Pada relasi yang mewakilkan entity yang dimaksud perlu ditambahkan sebuah atribut yang bertindak sebagai foreign key.
  • Atribut foreign key ini mengacu pada primary key milik relasi itu sendiri.
  • Sebagai saran, untuk penamaan atribut foreign key di sini, gunakan penamaan yang tepat yang dapat memberikan informasi apa nama primary key acuan dan alasan kenapa mengacu pada primary key tersebut (biasanya adalah penamaan relationship unary di ERD).
Aturan 4 – Unary Relationship M:N
“Setiap Unary Relationship M:N, buatlah relasi baru dimana primary key-nya bertipe composite key. Primary key tersebut yaitu gabungan dari dua atribut di mana keduanya menunjuk ke primary key relasi awal dengan penamaan berbeda.”
  • Buatkan sebuah relasi baru.
  • Relasi baru ini memiliki primary key bertipe composite key (kunci gabungan).
  • Primary key tersebut adalah gabungan dari dua atribut foreign key, yang kedua-duanya mengacu pada primary key relasi awal.
  • Kedua atribut foreign key yang menjadi primary key ini harus memiliki penamaan yang berbeda. Penamaan ini biasanya mengacu kepada sebab terjadinya relationship unary tersebut seperti: induk – anak atau head – detail.
Aturan 5 – Binary Relationship 1:1 dgn kedua sisi Total Participation Constrain
“Setiap Binary Relationship 1:1, dimana kedua sisi Total Participation Constrain, buatlah suatu relasi baru yang merupakan relasi gabungan dari kedua entity yang be-relationship dan menghapus dua relasi lama, di mana primary key-nya pada relasi baru tersebut dapat dipilih salah satu dari dua primary key relasi awal.”
  • Buatkan sebuah relasi baru.
  • Relasi baru tersebut berupa gabungan dari dua relasi awal yang berarti semua atributnya berasal dari dua relasi awal.
  • Kedua relasi awal harus dihapus karena telah diwakilkan dengan relasi penggabungan yang baru dibuat tersebut.
  • Primary key untuk relasi baru ini dapat dipilih salah satu dari dua primary key relasi awal yang digabungkan.
Aturan 6 – Binary Relationship 1:1 dgn satu sisi Total Participation Constrain
“Setiap Binary Relationship 1:1 dan salah satu Participation Constrainnya total, maka Primary key pada relasi yang Participation Constrainnya Partial menjadi Foreign Key pada relasi yang lain.”
  • Pada relasi yang bersisi total participation constrain, perlu ditambahkan sebuah atribut yang bertindak sebagai foreign key.
  • Foreign key ini mengacu pada Primary key di relasi yang bersisi partial participation constrain.
Aturan 7 – Binary Relationship 1:1 dgn kedua sisi Partial Participation Constrain
“Setiap Binary Relationship 1:1, dimana kedua Participation Constrainnya partial, maka selain kedua relasi perlu dibuat relasi baru yang berisi Primary Key gabungan dari Primary Key kedua tipe Entity yang berelasi.”
  • Buatkan sebuah relasi baru.
  • Relasi baru ini memiliki primary key bertipe composite key (kunci gabungan).
  • Primary key tersebut adalah gabungan dari dua primary key entitas yang berelasi.
Aturan 8 – Binary Relationship 1:N dgn sisi N Total Participation Constrain
“Setiap Binary Relationship 1:N, dimana tipe Entity yang bersisi N mempunyai Participation Constrain Total, maka Primary Key pada relasi yang bersisi 1 dijadikan Foreign Key pada relasi yang bersisi N.”
  • Pada relasi yang bersisi N, perlu ditambahkan sebuah atribut yang bertindak sebagai foreign key.
  • Foreign key ini mengacu pada Primary key di relasi yang bersisi 1.
Aturan 9 – Binary Relationship 1:N dgn sisi N Partial Participation Constrain
“Setiap Binary Relationship 1:N , di mana tipe Entity yang bersisi N mempunyai Participation Constrain Partial, buatlah relasi baru di mana Primary Key-nya merupakan gabungan dari Primary Key kedua tipe Entity yang berelasi.”
  • Buatkan sebuah relasi baru.
  • Relasi baru ini memiliki primary key bertipe composite key (kunci gabungan).
  • Primary key tersebut adalah gabungan dari dua primary key entitas yang berelasi.
Aturan 10 – Binary Relationship M:N
“Setiap Binary Relationship M:N, buatlah relasi baru dimana Primary Keynya merupakan gabungan dari Primary key kedua tipe Entity yang berelasi.”
  • Buatkan sebuah relasi baru.
  • Relasi baru ini memiliki primary key bertipe composite key (kunci gabungan).
  • Primary key tersebut adalah gabungan dari dua primary key entitas yang berelasi.
Aturan 11 – Ternary Relationship Degree
“Setiap Ternary Relationship, buatlah relasi baru dimana Primary Keynya merupakan gabungan dari Primary Key ketiga Entity yang berelasi.”
  • Buatkan sebuah relasi baru.
  • Relasi baru ini memiliki primary key bertipe composite key (kunci gabungan).
  • Primary key tersebut adalah gabungan dari tiga primary key entitas yang berelasi.
Aturan 12 – Weak Entity
“Setiap tipe Weak Entity, dibuat suatu relasi yang memuat semua atributnya di mana Primary Key-nya adalah gabungan dari Partial Key dan Primary Key di relasi induk (Identifying owner).”
  • Buatkan sebuah relasi baru.
  • Relasi baru ini memiliki primary key bertipe composite key (kunci gabungan).
  • Primary key tersebut adalah gabungan dari partial key milik weak entity dan primary key milik relasi induk.
6.1.3 Contoh Aplikasi ER

kali ini saya gambarkan contoh untuk ER-D Aplikasi Sistem Transaksi Jual Beli Kantin Koperasi. Ada beberapa entitas yang terlibat, diantaranya : Anggota, Supplier dan Barang.
Berikut contoh ER-D (Entity Relationship Diagram) sistem transaksi jual beli di kantin koperasi : 

6.2 Normalisasi

6.1.1 Konsep dasar Normalisasi

Pengertian dan Tujuan Normalisasi

Istilah Normalisasi berasal dari E. F.Codd, salah seorang perintis teknologi basis data. selain dipakai sebagai metodologi tersendiri untuk menciptakan struktur tabel 9relasi) dalam basis data (dengan tujuan utnuk mengurangi kemubaziran data)  , normalisasi terkadang hanya diipakai sebagai perangkat verifikasi terhadap tabel-tabel yang dihasilkan oleh metodologi lain ( misalnya E-R). Normalisasi memberikan panduan yang sangat membantu bagi pengembang untuk mencegah penciptaan struktur tabel yang kurang fleksibel atau mengurangi keflekxibelan.
Kroenke mendefinisikan normalisasi sbagai proses untuk mengubah suatu relasi yang memiliki masalah tertentu ke dalam dua buah relasi atau lebih yang tida memiliki masalah tersebut. Masalah yang dimaksud olej kroenke ini sering disebut dengan istilah anomali.
( Pada beberapa literatur, istilah relasi yang digunakan pada bab ini terkadang digantikan dengan tabel. Istilah relasi digunakan pada bab ini dikarenakan definisi tentang normalisasi memang menggunakan istilah relasi).

Tujuan normalisasi

  • Untuk menghilangkan kerangkapan data
  • Untuk mengurangi kompleksitas
  • Untuk mempermudah pemodifikasian data

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 anomaly-anomali yang tersisa

Bentuk Normal Kelima



Ketergantungan Fungsional

Definisi :

Atribut Y pada relasi R dikatakan tergantung fungsional pada atribut X (R.X      R.Y), jika dan hanya jika setiap nilai X pada relasi R mempunyai tepat satu nilai Y pada R.


Ketergantungan Fungsional Penuh

Definisi :
Atribut Y pada relasi R dikatakan tergantung fungsional penuh pada atribut X pada relasi R, jika Y tidak tergantung pada subset dari X (bila X adalah key gabungan)

 
Ketergantungan Transitif :


Definisi :
            Atribut Z pada relasi R dikatakan tergantung transitif pada atribut X, jika atribut Y tergantung pada atribut X pada relasi R dan atribut Z  tergantung pada atribut Y pada relasi R.  ( X ->  Y,    Y ->  Z,  maka     X ->  Z )

6.1.2 Proses Normalisasi 

bentuk normal ke-1 ( 1NF = first normalized form )
- bentuk normal ke pertama dicapai apabila setiap nilai atribute adalah tunggal
- ciri-cirinya
a) file dibentuk dalam bentuk plat file
b) fieldnya berupa atomic value yang artinya data tidak bisa dipecah kebentuk yang lebih kecil
c) tidak ada field yang sama
d) setiap fieldnya mempunyai satu pengertian
3. bentuk normal ke-2 ( 2NF = second normalized form )
- bentuk bormal ke-2 dicapai apabila atribute yang dijadikan adentitas benar-benar sebagai determinan dari semua atribute
- syarat-syarat :
a) bentuk ke-2 dicapai jika tabel sudah membentuk normal ke-1
b) atribut bukan kunci, harus bergantung secara fungsi pada kunci pertama
c) menetukan field-field kunci-kunci bisa berupa primary key, kandidat key, dll.
4. bentuk normal ke-3 ( 3NF = third normalized form )
- adalah bentuk normal ke-2 tanpa terjadi adanya ketergantungan transitif determinan
- syarat
a) tabel sudah harus berbentuk normal ke-2
b) atribut bukan primer tidak tergantung secara transitif determinan terhadap kunci primernya.

ONTOH KASUS NORMALISASI

  1. 1. KASUS NORMALISASI DATABASE
Bentuk normalisasi 1:
Dikenakan pada tabel yang sama sekali belum ternomalisasi. Tabel yang belum ternomalisasi adalah tabel yang mempunyai atribut berulang. Contoh : terdapat suatu data sebagai berikut :
NIP Nama Jabatan Keahlian Lama Kerja
107 Ilham Analis Senior Cobol 6



Oracle 1
109 Ryan Analis Junior Cobol 2



C++ 2
120 Fika Programmer Dbase 3



Sybase 1



Cobol 1
Pada contoh di atas, keahlian mempunyai atribut yang berulang. Untuk itu akan dibentuk ke normal 1NF. Syarat Normal 1NF adalah suatu relasi dikatakan dalam bentuk normal pertama jika dan hanya jika setiap atribut bernilai tunggal dalam satu baris.
NIP Nama Jabatan Keahlian Lama Kerja
107 Ilham Analis Senior Cobol 6
107 Ilham Analis Senior Oracle 1
109 Ryan Analis Junior Cobol 2
109 Ryan Analis Junior C++ 2
120 Fika Programmer Dbase 3
120 Fika Programmer Sybase 1
120 Fika Programmer Cobol 1

Bentuk Normalisasi 2:
Bentuk ini didefinisikan berdasarkan dependensi fungsional dengan syarat adalah :
  • Berada pada bentuk normal pertama
  • Semua atribut bukan kunci memiliki dependensi sepenuhnya terhadap kunci primer
Contoh :
  • Nama  dan jabatan mempunyai dependensi fungsional terhadap NIP
  • Lama mempunyai dependensi fungsional terhadap NIP dan keahlian
  • Bentuk tabelnya adalah : NNJ (NIP, Nama, Jabatan) dan NKL (NIP, Keahlian, Lama Kerja)

NIP Nama Jabatan
107 Ilham Analis Senior
109 Ryan Analis Junior
120 Fika Programmer
NIP Keahlian Lama Kerja
107 Cobol 6
107 Oracle 1
109 Cobol 2
109 C++ 2
120 Dbase 3
120 Sybase 1
120 Cobol 1




















Bentuk Normalisasi 3 :
  • Berada dalam bentuk normal 2 NF
  • Setiap atribut bukan kunci tidak memiliki dependensi transitif terhadap kunci primer
Contoh di atas sudah memenuhi normal 3NF karena Tidak memiliki dependensi transitif, yaitu :      NIP –> {Nama, Jabatan}
{NIP, Keahlian} –> Lama Kerja
NIP Nama Jabatan
107 Ilham Analis Senior
109 Ryan Analis Junior
120 Fika Programmer





NIP Keahlian Lama Kerja
107 Cobol 6
107 Oracle 1
109 Cobol 2
109 C++ 2
120 Dbase 3
120 Sybase 1
120 Cobol 1