Pengertian Entitas
Entitas adalah objek nyata atau konseptual dalam domain masalah yang ingin kita modelkan, yang memiliki identitas dan karakteristik (atribut). Contohnya: Mahasiswa, Dosen, MataKuliah, Pesanan.
Komponen & istilah penting
- Entity instance (occurrence): satu contoh konkret entitas (mis. mahasiswa dengan NIM 12345).
- Entity set: kumpulan entity instance yang sejenis (mis. semua mahasiswa).
- Nama entitas: biasanya kata benda tunggal, jelas, konsisten (mis. Mahasiswa, bukan DataMahasiswa).
- Identifier / Key attribute: atribut yang membedakan tiap instance secara unik (mis. NIM). Ditandai sebagai primary key di implementasi.
- Entitas vs Atribut vs Relasi:
- Entitas = objek/actor (rectangle).
- Atribut = properti entitas (oval).
- Relasi = asosiasi antar entitas (diamond atau garis dengan crow’s foot).
Jenis-jenis entitas (konsep)
1. Strong (regular) entity
- Berdiri sendiri, punya key sendiri. Contoh: Mahasiswa, Produk.
- Diimplementasikan sebagai tabel dengan primary key.
2. Weak entity (entitas lemah)
- Tidak punya key unik sendiri; identitasnya bergantung pada entitas lain (owner).
- Memerlukan identifying relationship ke owner. Contoh: OrderItem yang hanya unik bila digabung dengan OrderID.
- Di notasi Chen: weak entity sering digambar dengan double rectangle, dan identifying relationship dengan double diamond.
3. Associative entity (associative / intersection / relationship entity)
- Merupakan relasi many-to-many yang juga punya atribut → dimodelkan sebagai entitas sendiri.
- Contoh: Enrollment (Mahasiswa–MataKuliah) dengan atribut nilai, tgl_daftar.
4. Recursive entity
- Entitas yang berelasi ke dirinya sendiri (mis. Karyawan yang punya relasi manages ke Karyawan lain).
5. Supertype / Subtype (generalization / specialization)
- Supertype: entitas umum (mis. Pegawai), Subtype: entitas spesifik (mis. Dosen, Staf) — bisa punya atribut/relasi khusus.
Aturan mapping ke tabel relasional (praktis)
- Strong entity → tabel tunggal; setiap atribut → kolom; key attribute → PRIMARY KEY.
- Weak entity → tabel dengan primary key komposit yang mengandung PK owner (mis. (order_id, item_no)), dan foreign key ke owner.
- Associative entity → tabel join dengan FK ke dua entitas dan kolom untuk atribut relasi.
- Subtype/supertype → beberapa cara mapping: single table inheritance, class table inheritance, concrete table per subtype — pilih sesuai kebutuhan performa/normalisasi.
Perbedaan konsep vs implementasi
- Entitas (konseptual) fokus pada domain bisnis — siapa dan apa.
- Tabel (implementasi) adalah bentuk fisik di DB yang menyimpan entitas; kadang satu entitas bisa dipetakan menjadi beberapa tabel dan sebaliknya, tergantung strategi normalisasi/performansi.
Kesalahan umum
- Menjadikan atribut yang sering berubah sebagai primary key.
- Memakai nama entitas yang ambigu (mis. Data_Mahasiswa vs Mahasiswa).
- Mengabaikan weak entity sehingga kehilangan identitas yang diperlukan.
- Tidak memikirkan partisipasi/mandatory sehingga terjadi anomali data.
Komentar
Posting Komentar