DBMS - Representasi Diagram ER

Assalamualaikum, para desainer basis data yang sedang berkembang! Hari ini, kita akan melihat dunia yang menakjubkan Diagram Entity-Relationship (ER). Sebagai guru ilmu komputer yang ramah di lingkungan sekitar Anda, saya di sini untuk mengarahkan Anda melalui konsep penting ini dalam desain basis data. Jangan khawatir jika Anda belum pernah mengprogram sebelumnya - kita akan mulai dari dasar dan naik tingkat per tingkat. Jadi, ambil secangkir kopi (atau teh, jika itu hal Anda), dan mari kita mulai!

DBMS - ER Diagram Representation

Entitas

Apa Itu Entitas?

Entitas seperti halnya "sesuatu" atau "objek" dalam dunia nyata yang kita inginkan untuk menyimpan informasi tentang basis data kita. Pensejukkan hal ini seperti kata benda dalam kalimat. Misalnya, dalam basis data sekolah, kita mungkin memiliki entitas seperti "Murid," "Guru," atau "Kursus."

Bagaimana Menyajikan Entitas dalam Diagram ER

Dalam diagram ER, kita menyajikan entitas sebagai kotak persegi panjang dengan nama entitas di dalamnya. Itu saja!

+---------+
| Murid   |
+---------+

Dalam contoh ini, "Murid" adalah entitas kita. Mudah-mudahan, kan?

Entitas Kuat vs Entitas Lemah

Sekarang, mari kita tambahkan sedikit perisa. Kita memiliki dua jenis entitas:

  1. Entitas Kuat: Ini adalah entitas yang dapat ada sendiri. Hal ini seperti superhero yang tidak memerlukan teman seperjuangan.
  2. Entitas Lemah: Entitas ini bergantung pada entitas lain untuk ada. Hal ini lebih seperti Robin kepada Batman.

Dalam diagram ER, kita menyajikan entitas lemah dengan kotak ganda:

+===========+
| Alamat    |
+===========+

Di sini, "Alamat" mungkin adalah entitas lemah karena itu bergantung pada entitas "Murid" atau "Guru" untuk ada.

Atribut

Apa Itu Atribut?

Atribut adalah karakteristik atau properti dari entitas. Jika entitas adalah kata benda, think of attributes as the adjectives that describe it. For our "Student" entity, attributes might include "Name," "Age," "Student ID," etc.

Jenis Atribut

mari kitauraikan jenis-jenis atribut yang berbeda:

Tipe Atribut Deskripsi Representasi
Sederhana Nilai tunggal, tak dapat dibagi Oval terhubung ke entitas
Komposit Dapat dibagi menjadi subbagian yang lebih kecil Oval dengan oval terhubung
Multi-nilai Dapat memiliki nilai ganda Oval ganda
Diterima Nilai dihitung dari atribut lain Oval Bergaris
Kunci Mengidentifikasi secara unik instance entitas Oval di bawah garis

Menyajikan Atribut dalam Diagram ER

mari kita lihat bagaimana ini terlihat dalam diagram ER:

(Nama)
|
(Umur)
|
+--------+    (ID Murid)
|Murid   |------(Alamat)
+--------+        |
((Nomor Telepon))
|
/(IPK)\

Dalam diagram ini:

  • "Nama," "Umur," dan "Alamat" adalah atribut sederhana
  • "ID Murid" adalah atribut kunci (perhatikan garis bawah)
  • "Nomor Telepon" adalah multi-nilai (perhatikan oval ganda)
  • "IPK" adalah atribut diterima (perhatikan oval bergaris)

Hubungan

Apa Itu Hubungan?

Hubungan adalah koneksi antara dua atau lebih entitas. Hal ini seperti kata kerja dalam kalimat, menjelaskan bagaimana entitas berinteraksi satu sama lain. Misalnya, seorang Murid "mendaftar" dalam Kursus.

Menyajikan Hubungan dalam Diagram ER

Kita menyajikan hubungan sebagai bentuk permata di diagram ER, terhubung ke entitas yang berhubungan dengan garis.

+---------+        +-----------+
| Murid   |--------| Mendaftar  |-------- | Kursus |
+---------+        +-----------+         +--------+

Kardinalitas dalam Hubungan

Kardinalitas memberitahu kita berapa banyak instance satu entitas dapat dihubungkan dengan entitas lain dalam hubungan. Hal ini seperti kelebihan dalam UML, jika Anda familiar dengan itu.

Kita memiliki beberapa jenis kardinalitas:

  1. Satu-ke-Satu (1:1)
  2. Satu-ke-Banyak (1:N)
  3. Banyak-ke-Satu (N:1)
  4. Banyak-ke-Banyak (M:N)

mari kita lihat bagaimana kita menyajikan ini:

// Satu-ke-Satu
+---------+        +-----------+        +---------+
| Murid   |--------| Memiliki  |--------| Alamat  |
+---------+        +-----------+        +---------+
|                                       |
1                                       1

// Satu-ke-Banyak
+---------+        +-----------+        +---------+
| Guru    |--------| Mengajar  |--------| Kursus  |
+---------+        +-----------+        +---------+
|                                       |
1                                       N

// Banyak-ke-Banyak
+---------+        +-----------+        +---------+
| Murid   |--------| Mendaftar  |--------| Kursus  |
+---------+        +-----------+        +---------+
|                                       |
M                                       N

Batasan Partisipasi

Batasan partisipasi memberitahu kita apakah semua instance entitas harus ikut serta dalam hubungan. Kita memiliki dua jenis:

  1. Partisipasi Total: Semua instance harus ikut serta (diwakili oleh garis ganda)
  2. Partisipasi Sebagian: Beberapa instance mungkin tidak ikut serta (diwakili oleh garis tunggal)

Ini adalah contoh:

+---------+        +-----------+        +---------+
| Murid   |========| Mendaftar  |--------| Kursus  |
+---------+        +-----------+        +---------+

Dalam diagram ini, garis ganda menunjukkan bahwa semua murid harus mendaftar dalam kursus (partisipasi total), sedangkan garis tunggal menunjukkan bahwa tidak semua kursus harus memiliki murid mendaftar (partisipasi sebagian).

Dan itulah, teman-teman! Kita telah menutupi dasar representasi Diagram ER. Ingat, latihan membuat Diagram ER menjadi sempurna. Cobalah membuat Diagram ER untuk sistem yang Anda kenal - mungkin sistem perpustakaan sekolah Anda atau layanan pengiriman pizza lokal. Semakin banyak Anda latihan, semakin naturalnya akan menjadi.

Sementara kita menyusun, saya teringat cerita lucu dari hari teaching awal saya. Pernah sekali saya punya murid yang menggambar diagram ER keseluruhan nya menggunakan emoji instead of shapes. Meskipun kreatif, itu bukanlah notasi standar - tapi itu membuat pengalaman penilaian yang tak terlupakan!

Terus jelajah, terus bertanya, dan yang paling penting, bersenang-senang dengan desain basis data. Sampai jumpa lagi, selamat menggambar diagram!

Credits: Image by storyset