Mô hình thực thể - quan hệ (ER)

Nhập môn Mô hình dữ liệu trong Snowflake

Nuno Rocha

Director of Engineering

Giới thiệu về mô hình thực thể - quan hệ

  • Mô hình thực thể - quan hệ (ER): Cấu trúc dữ liệu chuẩn hóa bằng thực thể, thuộc tính và quan hệ

Các thực thể chủ đề trường học cần mô hình hóa

Nhập môn Mô hình dữ liệu trong Snowflake

Ví dụ về mô hình thực thể - quan hệ

Tương tác giữa các thực thể chủ đề trường học

Nhập môn Mô hình dữ liệu trong Snowflake

Vì sao chọn mô hình ER

  • Rõ ràng
    • Đơn giản hóa các kết nối nghiệp vụ, phản ánh tương tác thực tế
  • Tổ chức
    • Phân tách dữ liệu thành các thực thể liên quan, dễ quản lý thông tin
  • Linh hoạt
    • Thích ứng để mở rộng và thay đổi theo thời gian
Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng mô hình ER

Mô hình chủ đề trường học cộng thêm enrollments

Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng mô hình ER

  • Thêm quan hệ giữa các thực thể hiện có:
ALTER TABLE classes
ADD FOREIGN KEY (school_id) REFERENCES schools(school_id);

Mô hình chủ đề trường học, liên kết thực thể classes và schools

Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng mô hình ER

Mô hình chủ đề trường học, thêm thực thể enrollments

Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng mô hình ER

CREATE OR REPLACE TABLE enrollments (
      -- Tạo thực thể mới với định danh duy nhất
      enrollment_id NUMBER(10,0) PRIMARY KEY

-- Thêm thuộc tính của thực thể year NUMBER(4,0), semester VARCHAR(255)
-- Thêm quan hệ tới thực thể khác FOREIGN KEY (student_id) REFERENCES students(student_id), FOREIGN KEY (class_id) REFERENCES classes(class_id)
);
Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng mô hình ER

Mô hình ER cuối cùng của trường học

Nhập môn Mô hình dữ liệu trong Snowflake

Truy xuất dữ liệu từ mô hình ER

Truy vấn ER để lấy tên sinh viên và lớp đã đăng ký năm 2023 tại khối Khoa học

Nhập môn Mô hình dữ liệu trong Snowflake

Truy xuất dữ liệu từ mô hình ER

SELECT students.name  
FROM students;

Truy vấn ER để lấy tên sinh viên

Nhập môn Mô hình dữ liệu trong Snowflake

Truy xuất dữ liệu từ mô hình ER

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

Truy vấn ER cho sinh viên và lượt ghi danh

Nhập môn Mô hình dữ liệu trong Snowflake

Truy xuất dữ liệu từ mô hình ER

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

Truy vấn ER cho lượt ghi danh năm 2023

Nhập môn Mô hình dữ liệu trong Snowflake

Truy xuất dữ liệu từ mô hình 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';

Truy vấn ER để lấy tên lớp học

Nhập môn Mô hình dữ liệu trong Snowflake

Truy xuất dữ liệu từ mô hình 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';
Nhập môn Mô hình dữ liệu trong Snowflake

Truy xuất dữ liệu từ mô hình ER

  • JOIN ON: Mệnh đề SQL để kết hợp các dòng từ bảng dựa ON cột liên quan.

Truy vấn ER cho khối Khoa học

Nhập môn Mô hình dữ liệu trong Snowflake

Tổng quan thuật ngữ và chức năng

  • Mô hình thực thể - quan hệ (ER): Cấu trúc dữ liệu chuẩn hóa bằng thực thể và quan hệ.
  • SELECT FROM: Lệnh SQL để lấy cột từ một bảng.
  • JOIN ON: Mệnh đề SQL kết hợp các dòng từ bảng dựa ON cột liên quan.
  • WHERE: Mệnh đề SQL lọc bản ghi theo điều kiện.
  • AND: Toán tử logic dùng với WHERE để kết hợp nhiều điều kiện.
-- Truy vấn dữ liệu từ các thực thể đã JOIN, lọc theo điều kiện
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;
Nhập môn Mô hình dữ liệu trong Snowflake

Ayo berlatih!

Nhập môn Mô hình dữ liệu trong Snowflake

Preparing Video For Download...