Proses ini mengubah konsep visual dari ERD menjadi struktur tabel yang konkret.
Strong Entity Set:
Aturan: Setiap strong entity set menjadi sebuah tabel (relasi) dengan kolom-kolom yang sama persis dengan atribut-atributnya.
Contoh: Entitas course dengan atribut _course_id_, title, credits menjadi tabel course(course_id, title, credits).
Weak Entity Set:
Aturan: Setiap weak entity set menjadi sebuah tabel yang berisi semua atributnya, ditambah dengan Primary Key dari identifying entity sebagai Foreign Key. Gabungan dari Primary Key identifying entity dan discriminator dari weak entity akan menjadi Primary Key tabel baru ini.
Atribut Composite:
Aturan: Atribut composite “diratakan” (flattened out) dengan membuat kolom terpisah untuk setiap komponennya.
Contoh: Atribut name(first_name, last_name) pada entitas instructor akan menjadi dua kolom, first_name dan last_name, di dalam tabel instructor.
Atribut Multi-valued:
Aturan: Atribut multi-valuedTIDAK menjadi kolom di tabel aslinya. Sebaliknya, ia dibuatkan menjadi tabel baru yang terpisah.
Tabel baru ini berisi Primary Key dari entitas asli (sebagai Foreign Key) dan satu kolom untuk atribut multi-valued itu sendiri.
Contoh: Atribut {phone_number} pada instructor menjadi tabel inst_phone(ID, phone_number).
Atribut Derived:
Aturan: Atribut ini diabaikan selama pembuatan skema fisik. Nilainya tidak disimpan, melainkan dihitung saat dibutuhkan, biasanya melalui view atau logika aplikasi.
Aturan Pemetaan Relationship Sets
Relasi Many-to-Many (N:M):
Aturan: Setiap relasi N:M menjadi sebuah tabel baru (disebut junction table).
Tabel ini minimal berisi Primary Key dari kedua entitas yang berpartisipasi (keduanya sebagai Foreign Key). Atribut deskriptif dari relasi juga menjadi kolom di tabel ini.
Relasi One-to-Many (1:N):
Aturan (Optimal): Tidak perlu membuat tabel baru. Cukup tambahkan sebuah kolom Foreign Key pada tabel di sisi “Many” yang merujuk ke Primary Key di sisi “One”.
Contoh: Relasi inst_dept (1:N) antara department (sisi “one”) dan instructor (sisi “many”) dipetakan dengan menambahkan kolom dept_name (FK) ke dalam tabel instructor.
Relasi Ternary (dan n-ary):
Aturan: Sama seperti relasi N:M, setiap relasi ternary menjadi sebuah tabel baru yang berisi Primary Key dari semua entitas yang berpartisipasi sebagai Foreign Key.
Specialization/Generalization (IS A):
Aturan: Ada beberapa metode, salah satu yang umum adalah membuat tabel terpisah. Buat satu tabel untuk entitas level tinggi (superclass) dan satu tabel untuk setiap entitas level rendah (subclass). Tabel subclass berisi atribut lokalnya dan Primary Key dari superclass (yang berfungsi sebagai PK dan FK sekaligus).
Studi Kasus: Translasi ERD ke Skema
Permasalahan:
“Diberikan ERD berikut, translasikan ke dalam skema relasional (CREATE TABLE).”
Relasi works_in adalah 1:N. Maka, kita tambahkan Foreign Key (dept_id) ke sisi ‘N’, yaitu tabel Employee.
Atribut skills adalah multi-valued. Maka, kita buat tabel baru Employee_Skills.
Skema Relasional Solusi:
-- Tabel untuk entitas DepartmentCREATE TABLE Department ( dept_id VARCHAR(10) PRIMARY KEY, dept_name VARCHAR(50) NOT NULL);-- Tabel untuk entitas Employee (dengan FK dari relasi 1:N)CREATE TABLE Employee ( emp_id VARCHAR(10) PRIMARY KEY, emp_name VARCHAR(50), dept_id VARCHAR(10), FOREIGN KEY (dept_id) REFERENCES Department(dept_id));-- Tabel untuk atribut multi-valued 'skills'CREATE TABLE Employee_Skills ( emp_id VARCHAR(10), skill VARCHAR(50), PRIMARY KEY (emp_id, skill), FOREIGN KEY (emp_id) REFERENCES Employee(emp_id));
Summary
Reduksi ER ke Relasional adalah proses sistematis untuk mengubah desain konseptual menjadi tabel fisik. Aturannya jelas: Entitas menjadi tabel, atribut composite diratakan, atribut multi-valued menjadi tabel baru, dan relasi dipetakan secara berbeda tergantung kardinalitasnya. Relasi N:M menjadi tabel baru, sementara relasi 1:N secara efisien dipetakan dengan menambahkan sebuah Foreign Key pada tabel di sisi ‘N’.
Additional Information (Optional)
Pilihan Lain untuk Relasi 1:1
Untuk relasi 1:1, ada dua pilihan pemetaan:
Pendekatan Foreign Key: Sama seperti 1:N, Anda bisa memilih salah satu tabel untuk ditambahkan Foreign Key yang merujuk ke tabel lainnya. Pilihlah tabel yang partisipasinya bersifat total untuk ditambahkan FK, ini akan menghindari nilai NULL pada kolom FK tersebut.
Menggabungkan Menjadi Satu Tabel: Jika partisipasi kedua entitas bersifat total, Anda bisa menggabungkan keduanya menjadi satu tabel tunggal. Namun, pendekatan ini jarang dilakukan karena bisa jadi kedua entitas tersebut memang konsep yang berbeda secara logis.