Kardinalitas & Relasi — Database

Kardinalitas dalam Database Kardinalitas menjelaskan jumlah hubungan antara dua entitas. Ini menentukan bagaimana tabel saling terhubung. 1. One-to-One (1:1)…

Kardinalitas dalam Database

Kardinalitas menjelaskan jumlah hubungan antara dua entitas. Ini menentukan bagaimana tabel saling terhubung.

1. One-to-One (1:1)

Satu record di tabel A terhubung dengan tepat satu record di tabel B.

-- Contoh: User dan Profile (1:1)
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    email VARCHAR(255) UNIQUE NOT NULL
);

CREATE TABLE profiles (
    id SERIAL PRIMARY KEY,
    user_id INT UNIQUE REFERENCES users(id),
    bio TEXT,
    avatar_url VARCHAR(500)
);

2. One-to-Many (1:N)

Satu record di tabel A bisa terhubung dengan banyak record di tabel B. Relasi paling umum.

-- Contoh: User dan Posts (1:N)
CREATE TABLE posts (
    id SERIAL PRIMARY KEY,
    user_id INT REFERENCES users(id),
    title VARCHAR(200) NOT NULL
);
-- Satu user bisa punya banyak posts

3. Many-to-Many (M:N)

Banyak record di tabel A bisa terhubung dengan banyak record di tabel B. Memerlukan pivot table.

-- Contoh: Students dan Courses (M:N)
CREATE TABLE students (id SERIAL PRIMARY KEY, name VARCHAR(100));
CREATE TABLE courses (id SERIAL PRIMARY KEY, title VARCHAR(200));

-- Pivot table
CREATE TABLE student_course (
    student_id INT REFERENCES students(id),
    course_id INT REFERENCES courses(id),
    enrolled_at TIMESTAMP DEFAULT NOW(),
    PRIMARY KEY (student_id, course_id)
);

Menentukan Kardinalitas

Tanyakan: "Berapa banyak B yang bisa dimiliki oleh satu A, dan sebaliknya?"

Yang akan kamu pelajari