Pengertian Entity Relationship Diagram
Menurut Janner Simarmata & Iman Peryudi (2005) “Entity Relationship Model atau yang lebih dikenal dengan Entity Relationship Diagram (ERD) adalah suatu model data atau diagram untuk deskripsi tingkat tinggi dari model data konseptual”. ERD menyediakan notasi-notasi grafis untuk merepresentasikan model-model data dalam bentuk Entity Relationship Diagram. Model-model data tersebut biasa digunakan pada desain sistem informasi tingkat pertama, contohnya untuk mendeskripsikan kebutuhan informasi dan tipe informasi yang ingin disimpan pada basis data selama analisa. Notasi-notasi dasar pada Entity Relationship Diagram (ERD) :
Tingkat paling dasar, basis data relasional ditampilkan sebagai suatu koleksi tabel-tabel berbeda yang mewakili setiap entiti yang ada. Hubungan atau relasi antar entiti juga menjadi bagian dari basis data. Suatu tabel terdiri atas baris-baris (rows) dan kolom-kolom (columns) yang kira-kira dapat disamakan dengan sebuah spreadsheet yang biasa dijumpai dalam aplikasi semacam Microsoft Excel atau Lotus 123. Sebuah baris mewakili kemunculan suatu entiti tertentu. Sebuah kolom pada baris tersebut memuat sebuah atom informasi (bagian tertentu dari informasi) tentang kemunculan entiti tertentu tersebut. Sesuai terminologi non-database suatu tabel dapat disamakan dengan file, suatu baris sebagai record, dan kolom sebagai field. Sebagai contoh, suatu tabel dapat berisi informasi tentang semua pelanggan dalam bisnis: sebuah baris untuk setiap pelanggan, dan sebuah kolom dapat berisi potongan informasi seperti nomor telepon si pelanggan.
Aturan RDBMS
Aturan desain untuk Basis Data Relasional yang Normal dapat dirangkum sebagai berikut:
- Suatu tabel dalam basis data hanya boleh memuat informasi secara spesifik untuk satu entiti tertentu saja.
- Setiap tabel harus memiliki sebuah primary key atau kunci utama yang unik sehingga setiap kemunculan entiti dapat dibedakan dengan yang lainnya. Primary Key harus merupakan salah satu dari kolom yang ada pada tabel dan boleh jadi terdiri dari beberapa kolom sekaligus.
- Urutan baris-baris dan urutan kolom-kolom dalam suatu baris tidaklah penting karena mereka dapat dilihat dari segala urutan yang diinginkan.
- Pertemuan (titik potong) antara suatu baris dan suatu kolom berisi sebuah potongan informasi. Titik pertemuan ini seringkali disebut sebagai suatu atribut. Atribut tidak dapat dibagi lagi (oleh sebab itu digunakan istilah atom) dan selalu ditampilkan sebagai suatu keseluruhan, walaupun dapat ditulis dalam sembarang format yang disukai.
- Semua informasi pada kolom tertentu haruslah memiliki jenis atau tipe yang sama, berbeda hanya pada nilainya saja.
- Tidak ada dua kolom pada baris yang sama yang memiliki jenis informasi yang sama; atau dengan kata lain: pengulangan field tidak diperbolehkan.
- Informasi pada kolom tertentu haruslah tergantung secara menyeluruh hanya pada primary key dari baris yang disebutkan. Suatu pengecualian diperbolehkan untuk suatu foreign key yang berisi primary key dari suatu baris di tabel lain yang terkait. Pada kenyataannya, “foreign key” merupakan cara tabel-tabel saling berhubungan satu sama lain.
Tabel-tabel dapat direlasikan satu sama lain dan dapat diakses seakan-akan mereka adalah satu gabungan tabel yang terdiri atas banyak kolom dan baris. Jumlah entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain disebut kardinalitas/ derajad relasi.
Jenis Relasi
Beberapa jenis relasi yang mungkin dari suatu tabel ke tabel yang lain, yaitu:
- One-to-one: Terdapat korespondensi satu ke satu antara baris-baris pada tabel pertama dengan baris-baris di tabel kedua. Jenis ini tidaklah teramat penting karena kedua tabel tersebut sebenarnya dapat digabung menjadi satu, namun kadangkala penting untuk alasan kinerja atau keamanan.
- One-to-many: Terdapat satu atau beberapa baris tunggal di tabel pertama yang memiliki relasi ke banyak baris di tabel kedua. Jenis ini mungkin merupakan jenis relasi yang paling umum dan sering digunakan.
- Many-to-one: Kebalikan dari one to many, dimana banyak baris di tabel pertama yang memiliki banyak relasi ke baris tunggal di tabel kedua. Kardinalitas one-to-many dan many-to-one dapat dianggap sama, karena tinjauan kardinalitas relasi selalu dilihat dari dua sisi (dari Himpunan Entitas A ke Himpunan Entitas B dan dari Himpunan Entitas B ke Himpunan Entitas A). Jadi pada penggambaran kardinalitas many-to-one, dimana Himpunan Entitas A ditempatkan di sebelah kanan dan Himpunan Entitas B ditempatkan di sebelah kiri, maka bila dijadikan one-to-many maka letak dari himpunan entitas tersebut dapat dibalik.
- Many-to-many: Setiap baris di tabel pertama dapat berhubungan dengan nol atau lebih baris di tabel kedua dan setiap baris di tabel kedua juga dapat memiliki hubungan dengan nol atau lebih baris di tabel pertama. Walaupun jenis relasi ini seringkali muncul, namun tidak ada software basis data yang ada saat ini yang mendukungnya secara langsung. Semua relasi many-to-many dapat dipecah menjadi dua relasi one-to-many dengan memakai sebuah tabel penghubung di antara keduanya. Satu baris di tabel pertama dapat berhubungan dengan banyak baris di tabel penghubung, dan satu baris di tabel kedua juga dapat memiliki relasi dengan banyak baris di tabel penghubung. Terkadang tabel penghubung dapat berisi informasi tertentu yang terkait dengan relasi tertentu yang dimiliki baris pada tabel pertama dengan baris pada tabel kedua. Berhubung tabel penghubung yang disebutkan diatas terlibat dalam relasi antar dua tabel yang berbeda, maka selanjutnya dapat dikatakan bahwa setiap tabel diperbolehkan untuk terlibat dalam banyak relasi. Saat semua tabel dan relasi telah didefinisikan, berbagai jaringan tabel-tabel yang saling berhubungan dapat dibuat dan dianggap sebagai satu tabel dengan menggunakan query. Suatu query dapat diandaikan sebagai suatu tabel virtual (tidak nyata) sebab bagi aplikasi ia terlihat sebagai sebuah tabel tunggal sederhana, namun pada kenyataannya ia tidak ada. Tabel, baris dan kolom dalam suatu query termasuk urutan-urutannya tergantung sepenuhnya pada kebutuhan dari aplikasi.