โมเดล Entity-Relationship

Data Modeling ใน Snowflake เบื้องต้น

Nuno Rocha

Director of Engineering

แนะนำการสร้างโมเดล Entity-Relationship

  • โมเดล Entity-Relationship (ER): จัดโครงสร้างข้อมูลที่ผ่านการ Normalize โดยใช้ Entity, Attribute และ Relationship

Entity ในธีมวิทยาลัยสำหรับการสร้างโมเดล

Data Modeling ใน Snowflake เบื้องต้น

ตัวอย่างโมเดล Entity-Relationship

การโต้ตอบระหว่าง Entity ในธีมวิทยาลัย

Data Modeling ใน Snowflake เบื้องต้น

ทำไมต้องใช้โมเดล ER

  • ความชัดเจน
    • ลดความซับซ้อนของความสัมพันธ์ทางธุรกิจให้สะท้อนการทำงานจริง
  • การจัดระเบียบ
    • แบ่งข้อมูลออกเป็น Entity ที่เกี่ยวข้อง ช่วยให้จัดการข้อมูลได้ง่ายขึ้น
  • ความยืดหยุ่น
    • ปรับขยายและเปลี่ยนแปลงได้ตามเวลา
Data Modeling ใน Snowflake เบื้องต้น

การสร้างโมเดล ER

โมเดลธีมวิทยาลัยพร้อม Enrollment

Data Modeling ใน Snowflake เบื้องต้น

การสร้างโมเดล ER

  • เพิ่ม Relationship ระหว่าง Entity ที่มีอยู่:
ALTER TABLE classes
ADD FOREIGN KEY (school_id) REFERENCES schools(school_id);

โมเดลธีมวิทยาลัย เชื่อม Entity classes และ schools

Data Modeling ใน Snowflake เบื้องต้น

การสร้างโมเดล ER

โมเดลธีมวิทยาลัย Entity ใหม่ enrollments

Data Modeling ใน Snowflake เบื้องต้น

การสร้างโมเดล 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)
);
Data Modeling ใน Snowflake เบื้องต้น

การสร้างโมเดล ER

โมเดล ER สมบูรณ์ของวิทยาลัย

Data Modeling ใน Snowflake เบื้องต้น

การดึงข้อมูลจากโมเดล ER

คิวรีโมเดล ER เพื่อดึงชื่อนักเรียนและคลาสที่ลงทะเบียนในปี 2023 ของคณะวิทยาศาสตร์

Data Modeling ใน Snowflake เบื้องต้น

การดึงข้อมูลจากโมเดล ER

SELECT students.name  
FROM students;

คิวรีโมเดล ER เพื่อดึงชื่อนักเรียน

Data Modeling ใน Snowflake เบื้องต้น

การดึงข้อมูลจากโมเดล ER

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

คิวรีโมเดล ER เพื่อดึงข้อมูลนักเรียนและ Enrollment

Data Modeling ใน Snowflake เบื้องต้น

การดึงข้อมูลจากโมเดล ER

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

คิวรีโมเดล ER สำหรับ Enrollment ปี 2023

Data Modeling ใน Snowflake เบื้องต้น

การดึงข้อมูลจากโมเดล 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';

คิวรีโมเดล ER เพื่อดึงชื่อคลาส

Data Modeling ใน Snowflake เบื้องต้น

การดึงข้อมูลจากโมเดล 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';
Data Modeling ใน Snowflake เบื้องต้น

การดึงข้อมูลจากโมเดล ER

  • JOIN ON: คำสั่ง SQL สำหรับรวมแถวจากหลายตาราง โดยอิงจากคอลัมน์ที่เกี่ยวข้องกันตามเงื่อนไข ON

คิวรีโมเดล ER สำหรับคณะวิทยาศาสตร์

Data Modeling ใน Snowflake เบื้องต้น

สรุปคำศัพท์และฟังก์ชัน

  • โมเดล Entity-Relationship (ER): จัดโครงสร้างข้อมูลที่ผ่านการ Normalize โดยใช้ Entity และ Relationship
  • SELECT FROM: คำสั่ง SQL สำหรับดึงคอลัมน์จากตาราง
  • JOIN ON: คำสั่ง SQL สำหรับรวมแถวจากหลายตาราง โดยอิงจากคอลัมน์ที่เกี่ยวข้องกันตามเงื่อนไข ON
  • WHERE: คำสั่ง SQL สำหรับกรองข้อมูลตามเงื่อนไขที่กำหนด
  • AND: ตัวดำเนินการเชิงตรรกะที่ใช้ร่วมกับ WHERE เพื่อรวมหลายเงื่อนไข
-- Querying data from merged entities filtered by specific conditions
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;
Data Modeling ใน Snowflake เบื้องต้น

มาฝึกกันเถอะ!

Data Modeling ใน Snowflake เบื้องต้น

Preparing Video For Download...