Model relasi entitas

Pengantar Pemodelan Data di Snowflake

Nuno Rocha

Director of Engineering

Pengantar pemodelan entity-relationship

  • Model entity-relationship (ER): Menstrukturkan data ternormalisasi dengan entitas, atribut, dan relasi

Entitas tema kampus untuk dimodelkan

Pengantar Pemodelan Data di Snowflake

Contoh model entity-relationship

Interaksi entitas tema kampus

Pengantar Pemodelan Data di Snowflake

Mengapa memilih model ER

  • Kejelasan
    • Menyederhanakan koneksi bisnis yang mencerminkan interaksi nyata
  • Organisasi
    • Memecah data ke entitas terkait, memudahkan pengelolaan informasi
  • Fleksibilitas
    • Mudah beradaptasi untuk bertumbuh dan berubah seiring waktu
Pengantar Pemodelan Data di Snowflake

Membangun model ER

Model tema kampus plus enrollments

Pengantar Pemodelan Data di Snowflake

Membangun model ER

  • Tambahkan relasi antar entitas yang ada:
ALTER TABLE classes
ADD FOREIGN KEY (school_id) REFERENCES schools(school_id);

Model tema kampus, menghubungkan entitas classes dan schools

Pengantar Pemodelan Data di Snowflake

Membangun model ER

Model tema kampus, entitas baru enrollments

Pengantar Pemodelan Data di Snowflake

Membangun model ER

CREATE OR REPLACE TABLE enrollments (
      -- Create a new entity with a unique identifier
      enrollment_id NUMBER(10,0) PRIMARY KEY

-- Add the entity's attributes year NUMBER(4,0), semester VARCHAR(255)
-- Add relationships to other entities FOREIGN KEY (student_id) REFERENCES students(student_id), FOREIGN KEY (class_id) REFERENCES classes(class_id)
);
Pengantar Pemodelan Data di Snowflake

Membangun model ER

Model ER kampus final

Pengantar Pemodelan Data di Snowflake

Mengambil data dari model ER

Kueri model ER untuk nama mahasiswa dan kelas yang diambil tahun 2023 di sekolah Sains

Pengantar Pemodelan Data di Snowflake

Mengambil data dari model ER

SELECT students.name  
FROM students;

Kueri model ER untuk nama mahasiswa

Pengantar Pemodelan Data di Snowflake

Mengambil data dari model ER

SELECT students.name
FROM students
    JOIN enrollments 
    ON students.student_id = enrollments.student_id;

Kueri model ER untuk mahasiswa dan enrollments

Pengantar Pemodelan Data di Snowflake

Mengambil data dari model ER

SELECT students.name
FROM students
    JOIN enrollments 
    ON students.student_id = enrollments.student_id
WHERE enrollments.year = '2023';

Kueri model ER untuk enrollments 2023

Pengantar Pemodelan Data di Snowflake

Mengambil data dari model ER

SELECT students.name, 
    classes.class_name
FROM students
    JOIN enrollments 
    ON students.student_id = enrollments.student_id
    JOIN classes 
    ON enrollments.class_id = classes.class_id
WHERE enrollments.year = '2023';

Kueri model ER untuk nama kelas

Pengantar Pemodelan Data di Snowflake

Mengambil data dari model ER

SELECT students.name, 
    classes.class_name
FROM students
    JOIN enrollments 
    ON students.student_id = enrollments.student_id
    JOIN classes 
    ON enrollments.class_id = classes.class_id
    JOIN schools 
    ON classes.department_id = schools.school_id
WHERE enrollments.year = '2023'
    AND schools.school_name = 'Science';
Pengantar Pemodelan Data di Snowflake

Mengambil data dari model ER

  • JOIN ON: Klausa SQL untuk menggabungkan baris tabel berdasarkan kolom terkait.

Kueri model ER untuk sekolah Sains

Pengantar Pemodelan Data di Snowflake

Ringkasan istilah dan fungsi

  • Model entity-relationship (ER): Menstrukturkan data ternormalisasi dengan entitas dan relasi.
  • SELECT FROM: Perintah SQL untuk mengambil kolom dari tabel.
  • JOIN ON: Klausa SQL untuk menggabungkan baris tabel berdasarkan kolom terkait.
  • WHERE: Klausa SQL untuk memfilter record menurut kondisi.
  • AND: Operator logika pada klausa WHERE untuk menggabungkan beberapa kondisi.
-- Mengambil data dari entitas tergabung dengan filter kondisi tertentu
SELECT column_name
FROM table_name
    JOIN other_table ON table_name.FK = other_table.PK
WHERE column_name  condition  value
    AND column_name  condition  value;
Pengantar Pemodelan Data di Snowflake

Ayo berlatih!

Pengantar Pemodelan Data di Snowflake

Preparing Video For Download...