Apa itu attribute dalam ERD?



Pengertian Atribut (Field)

Atribut adalah properti atau karakteristik yang menjelaskan sebuah entitas (entity) atau relasi (relationship).  Contoh: entitas Mahasiswa bisa memiliki atribut NIM, Nama, Tanggal_Lahir, dll. 


Tipe-Tipe Atribut

1. Simple / Atomic 

  • Tidak bisa dibagi lagi. 
  • Contoh: NIM, Jenis_Kelamin. 
  • Implementasi: satu kolom di tabel.

2. Composite (terdiri dari sub-atribut) 

  • Terdiri beberapa bagian.
  • Contoh: Nama → (Nama_Depan, Nama_Belakang); Alamat → (Jalan, Kota, Provinsi).
  • Notasi (Chen): oval bercabang ke sub-ovals.

3. ingle-valued vs Multi-valued

  • Single-valued: satu nilai per instance (mis. Tanggal_Lahir).
  • Multi-valued: bisa banyak nilai (mis. No_Telepon, Keahlian).
  • Notasi: multi-valued biasanya digambar sebagai double oval.

4. Derived (diturunkan/terhitung)

  • Nilainya dapat dihitung dari atribut lain.
  • Contoh: Usia diturunkan dari Tanggal_Lahir.
  • Notasi: oval bergaris putus-putus. Biasanya tidak disimpan di DB—hanya dihitung saat dibutuhkan (kecuali dimaterialisasi untuk performa).

5. Key attribute (atribut kunci)

  • Menidentifikasi entitas secara unik (mis. NIM untuk Mahasiswa).
  • Notasi: digarisbawahi pada nama atribut.
  • Ada juga candidate key, primary key, dsb.

6. Optional / Mandatory (nullable / not null)

  • Menyatakan apakah atribut harus ada nilainya. Beberapa notasi ER tidak menunjukkan ini grafis, tapi ini penting pada tahap desain fisik (DB).

7. Atribut pada relasi

  • Relasi juga bisa punya atribut. Contoh: relasi Mengambil antara Mahasiswa dan MataKuliah punya atribut Nilai, Tanggal_Pendaftaran.


Notasi umum (Chen)

  • Entitas: persegi/rectangle.
  • Atribut: oval terhubung ke entitas.
  • Kunci: digarisbawahi.
  • Multi-valued: double oval.
  • Derived: oval putus-putus.
  • Composite: oval bercabang ke oval-sub.

Cara mengimplementasikan atribut ke basis data relasional (mapping rules)

  • Simple / single-valued → jadikan kolom pada tabel entitas.
  • Composite → biasanya dipecah jadi beberapa kolom (mis. nama_depan, nama_belakang).
  • Multi-valued → buat tabel terpisah dengan foreign key (one-to-many). Jangan menyimpan banyak nilai dalam satu kolom terpisah koma (melanggar 1NF).
  • Derived → umumnya tidak disimpan, dihitung saat query; jika disimpan, perlu mekanisme sinkronisasi (trigger/job).
  • Atribut relasi (mis. untuk many-to-many) → disimpan di tabel asosiasi (join table) bersama FK ke kedua entitas + kolom atribut relasi.

Komentar