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
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)
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.
6.2 Normalisasi
6.1.1 Konsep dasar Normalisasi
Pengertian dan Tujuan Normalisasi
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 :
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).
Dikenakan pada tabel yang sama sekali belum ternomalisasi. Tabel yang belum ternomalisasi adalah tabel yang mempunyai atribut berulang. Contoh : terdapat suatu data sebagai berikut :
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.
Bentuk Normalisasi 2:
Bentuk ini didefinisikan berdasarkan dependensi fungsional dengan syarat adalah :
Bentuk Normalisasi 3 :
{NIP, Keahlian} –> Lama Kerja
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
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)
- 1. KASUS NORMALISASI DATABASE
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 |
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
- 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
{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 |
kita juga punya nih jurnal mengenai entity relationship diagram
BalasHapus, silahkan dikunjungi dan dibaca , berikut linknya http://repository.gunadarma.ac.id/bitstream/123456789/766/1/WabBaseTech_AlexanderSetiawan_1%286%29313_318.pdf semoga bermanfaat yaa :)