Bahasan Sistem Basis Data kali ini tentang Entity Relationship Diagram (ERD) salah satu bentuk pemodelan basis data yang sering digunakan dalam pengembangan sistem informasi. Bahasan meliputi: Pengertian ERD, Notasi ERD, Metode ERD, Tahap ERD, Kardinalitas, dan Contoh kasus ERD

Pengertian ERD

Dalam rekayasa perangkat lunak, sebuah Entity-Relationship Model (ERM) merupakan abstrak dan konseptual representasi data. Entity-Relationship adalah salah satu metode pemodelan basis data yang digunakan untuk menghasilkan skema konseptual untuk jenis/model data semantik sistem. Dimana sistem  seringkali memiliki basis data relasional, dan ketentuannya bersifat top-down. Diagram untuk menggambarkan model Entitiy-Relationship ini disebut Entitiy-Relationship diagram, ER diagram, atau ERD.

Notasi ERD

Ada sejumlah konvensi mengenai Notasi  ERD. Notasi klasik sering digunakan untuk model konseptual. Berbagai notasi lain juga digunakan untuk menggambarkan secara logis dan fisik dari suatu basis data, salah satunya adalah IDEF1X.

Model ERD

Model ERD

Notasi-notasi simbolik yang digunakan dalam Entity Relationship Diagram adalah sebagai berikut :

  • Entitas, Adalah segala sesuatu yang dapat digambarkan oleh data. Entitas juga dapat diartikan sebagai individu yang mewakili sesuatu yang nyata (eksistensinya) dan dapat dibedakan dari sesuatu yang lain (Fathansyah, 1999). Ada dua macam entitas yaitu entitas kuat dan entitas lemah. Entitas kuat merupakan entitas yang tidak memiliki ketergantungan dengan entitas lainnya. Contohnya entitas anggota. Sedangkan entitas lemah merupakan entitas yang kemunculannya tergantung pada keberadaaan entitas lain dalam suatu relasi.
  • Atribut, Atribut merupakan pendeskripsian karakteristik dari entitas. Atribut digambarkan dalam bentuk lingkaran atau elips. Atribut yang menjadi kunci entitas atau key diberi garis bawah.
  • Relasi atau Hubungan, Relasi menunjukkan adanya hubungan diantara sejumlah entitas yang berasal dari himpunan entitas yang berbeda.
  • Penghubung antara himpunan relasi dengan himpunan entitas dan himpunan entitas dengan atribut dinyatakan dalam bentuk garis.

Contoh ERD

Contoh ERD

Derajat relasi atau kardinalitas

Menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain. Macam-macam kardinalitas adalah:

  • Satu ke satu (one to one), Setiap anggota entitas A hanya boleh berhubungan dengan satu anggota entitas B, begitu pula sebaliknya.
  • Satu ke banyak (one to many), Setiap anggota entitas A dapat berhubungan dengan lebih dari satu anggota entitas B tetapi tidak sebaliknya.
  • Banyak ke banyak (many to many), Setiap entitas A dapat berhubungan dengan banyak entitas himpunan entitas B dan demikian pula sebaliknya.

Tahap ERD

Tahap pertama pada desain sistem informasi menggunakan model ER adalah menggambarkan kebutuhan informasi atau jenis informasi yang akan disimpan dalam database. Teknik pemodelan data dapat digunakan untuk menggambarkan setiap ontologi (yaitu gambaran dan klasifikasi dari istilah yang digunakan dan hubungan anatar informasi) untuk wilayah tertentu.

Tahap berikutnya disebut  desain logis, dimana data dipetakan ke model data yang logis, seperti model relasional.  Model data yang loguis ini kemudian dipetakan menjadi model fisik , sehingga kadang-kadang, Tahap kedua ini disebut sebagai “desain fisik”.

Secara umum metodologi ERD sebagai berikut:

Metodologi ERD

Metodologi ERD

Contoh Kasus:

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

Menentukan Relasi

Gambar ERD sementara

Hubungkan entitas sesuai dengan matrik relasi yang dibuat

ERD Sementara

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

Mengisi kardinalitas

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

Menentukan Kunci Utama

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

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

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.

Normalisasi

Proses normalisasi adalah proses untuk memperoleh properti-properti skema relasi yang bagus menjadi bentuk normal lebih tinggi sehingga syarat-syarat dibawah ini terpenuhi:
a. Mengoptimalisasi redudansi (pengulangan data yang tidak perlu). Redudansi tidak bisa dihilangkan sama sekali karena berguna untuk integritas referensial, tetapi redudansi bisa dioptimalisasi. Untuk jumlah data yang tidak terlalu banyak mungkin tidak terlalu berpengaruh dalam hal penggunaan harddisk. Tapi bayangkan jika ada ribuan, bahkan jutaan redudansi, mungkin akan sangat berpengaruh pada penggunaan ruang.
b. Menghilangkan anomali. Anomali pada dasarnya adalah ketidak-konsistenan (inkonsistensi). Misalkan ada pergantian nama dari Bank Perkasa menjadi Bank Perkasa Utama sebanyak 4 record. Jika pergantian nama hanya dilakukan pada salah satu record saja, maka terjadi ketidak-konsistenan yaitu satu nomor bank berrelasi dengan 2 nama bank yang berbeda.

Dekomposisi tabel dapat mengurangi redudansi yang ada dan menghilangkan anomali.
Perancangan melalui proses normalisasi mempunyai keuntungan-keuntungan sebagai berikut :

a. Meminimalkan ukuran penyimpanan yang diperlukan untuk penyimpanan data.
b. Meminimalkan resiko inkonsistensi data pada basis data.
c. Meminimalkan kemungkinan anomaly pembaruan.
d. Memaksimalkan stabilitas struktur data.

Bentuk Normal

Tujuan proses normalisasi adalah mengkonversi relasi menjadi bentuk normal lebih tinggi. Terdapat beragam tingkat bentuk normal, yaitu :

a. Bentuk normal pertama (1NF)
b. Bentuk normal kedua (2NF)
c. Bentuk normal ketiga (3NF)
d. Bentuk normal Boyce-Codd (BCNF)
e. Bentuk normal keempat (4NF)
f. Bentuk normal kelima (5NF)

Codd mendefinisikan bentuk normal pertama, kedua dan ketiga di makalah (Codd, 1970). Bentuk normal ketiga kemudian diperbaiki sehingga mempunyai bentuk normal yang lebih kuat yaitu BCNF (Codd, 1974). Fagin memperkenalkan bentuk normal keempat (Fagin, 1977), kemudian Fagin juga memperkenalkan bentuk normal kelima (Fagin, 1979).

Bentuk normal pertama untuk menghilangkan atribut bernilai jamak. Bentuk normal kedua untuk menghilangkan kebergantungan parsial. Bentuk normal ketiga untuk menghilangkan kebergantungan transitif. Bentuk normal Boyce-Codd untuk menghilangkan anomaly tersisa disebabkan kebergantungan fungsional. Bentuk normal keempat untuk menghilangkan kebergantungan nilai jamak. Bentuk normal kelima untuk menghilangkan anomaly tersisa.

Tiga bentuk normal pertama berkaitan dengan kebergantungan fungsional. Sementara itu bentuk keempat dan kelima berkaitan dengan redudansi yang disebabkan kebergantungan banyak nilai (multi-valued dependencies).

Bentuk Normal Pertama

Bentuk normal pertama adalah ekivalen dengan definisi model relasional. Relasi adalah bentuk normal pertama (1NF) jika semua nilai atributnya adalah sederhana (bukan komposit).
Syarat :
o Tidak ada set atribut yang berulang atau bernilai ganda.
o Telah ditentukannya primary key untuk tabel atau relasi.
o Tiap atribut hanya memiliki satu pengertian.
o Tiap atribut yang dapat memiiki banyak nilai sebenarnya menggambarkan entitas atau relasi yang terpisah.

Bentuk Normal Kedua
Syarat :
o Bentuk data telah memenuhi kriteria bentuk normal ke satu.
o Atribut bukan kunci(non-key attribute) haruslah memiliki ketergantungan fungsional sepenuhnya pada primary key
Relasi pada bentuk normal kedua harus tidak menyimpan fakta-fakta mengenai bagian kunci relasi. Bentuk normal kedua menghilangkan kebergantungan parsial dan masih memiliki anomali-anomali yang secara praktis tidak dapat diterima.

Bentuk Normal Ketiga
Syarat :
o Bentuk data telah memenuhi kriteria bentuk normal ke dua.
o Atribut bukan kunci(non-key attribute) tidak boleh memiliki ketergantungan fungsional terhadap atribut bukan kunci lainnya. Seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap primary key di relasi itu saja.

Bentuk normal ketiga menghilangkan kebergantungan transitif, awalnya bentuk normal ketiga dipikir sebagai bentuk normal puncak/paling akhir. Namun kemudian dapat ditemukan bentuk normal lebih kuat yaitu bentuk normal Boyce-Codd.

Bentuk Normal Boyce-Codd (BCNF)

BCNF memiliki ketentuan yaitu masing-masing atribut utama bergantung fungsional penuh pada masing-masing kunci dimana kunci tersebut bukan bagiannya. Relasi adalah BCNF (optimal) jika setiap determinan atribut-atribut relasi adalah kunci relasi. Relasi adalah BCNF (optimal) jika kapanpun fakta-fakta disimpan mengenai beberapa atribut, maka atribut-atribut ini merupakan satu kunci relasi. BCNF dapat memiliki lebih dari satu kunci. Properti penting BCNF adalah relasi tidak memiliki informasi yang redundan.

Bentuk Normal Keempat

Relasi dalam bentuk normal keempat (4NF) jika relasi dalam BCNF dan tidak berisi kebergantungan banyak nilai. Untuk menghilangkan kebergantungan banyak nilai dari satu relasi, kita membagi relasi menjadi dua relasi baru. Masing – masing relasi berisi dua atribut yang mempunyai hubungan banyak nilai.
Bentuk Normal Kelima

Bentuk normal kelima (5NF) berurusan dengan properti yang disebut join tanpa adanya kehilangan informasi (lossless join). Bentuk normal kelima (5NF) juga disebut PJNF (projection-join normal form). Kasus-kasus ini sangat jarang muncul dan sulit untuk dideteksi secara praktis.

Contoh Normalisasi pada beberapa tingkatan.
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 3 NF3

ALAT BANTU PERANCANGAN BASIS DATA (ERD DAN NORMALISASI)