Модель «сутність–зв'язок»

Вступ до моделювання даних у Snowflake

Nuno Rocha

Director of Engineering

Вступ до моделювання «сутність–зв'язок»

  • Модель «сутність–зв'язок» (ER): структурує нормалізовані дані за допомогою сутностей, атрибутів і зв'язків

Сутності для моделювання в темі коледжу

Вступ до моделювання даних у Snowflake

Приклад моделі «сутність–зв'язок»

Взаємодія сутностей у темі коледжу

Вступ до моделювання даних у Snowflake

Чому обрати модель ER

  • Чіткість
    • Спрощує бізнес-зв'язки, відображаючи реальні взаємодії
  • Організація
    • Розбиває дані на пов'язані сутності, полегшуючи керування інформацією
  • Гнучкість
    • Легко масштабувати й змінювати з часом
Вступ до моделювання даних у Snowflake

Побудова моделі ER

Модель теми коледжу плюс зарахування

Вступ до моделювання даних у Snowflake

Побудова моделі ER

  • Додайте зв'язок між наявними сутностями:
ALTER TABLE classes
ADD FOREIGN KEY (school_id) REFERENCES schools(school_id);

Модель теми коледжу, зв'язок сутностей classes і schools

Вступ до моделювання даних у Snowflake

Побудова моделі ER

Модель теми коледжу, нова сутність enrollments

Вступ до моделювання даних у 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)
);
Вступ до моделювання даних у Snowflake

Побудова моделі ER

Фінальна ER-модель коледжу

Вступ до моделювання даних у Snowflake

Отримання даних з ER-моделі

Запит до ER-моделі для імен студентів і курсів, на які записались у 2023 році в школі Science

Вступ до моделювання даних у Snowflake

Отримання даних з ER-моделі

SELECT students.name  
FROM students;

Запит до ER-моделі для імен студентів

Вступ до моделювання даних у Snowflake

Отримання даних з ER-моделі

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

Запит до ER-моделі: студенти та зарахування

Вступ до моделювання даних у Snowflake

Отримання даних з ER-моделі

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

Запит до ER-моделі для зарахувань 2023 року

Вступ до моделювання даних у 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-моделі для назв курсів

Вступ до моделювання даних у 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';
Вступ до моделювання даних у Snowflake

Отримання даних з ER-моделі

  • JOIN ON: SQL-оператор для об'єднання рядків таблиць на основі пов'язаного стовпця (ON).

Запит до ER-моделі для школи Science

Вступ до моделювання даних у Snowflake

Терміни та огляд функцій

  • Модель «сутність–зв'язок» (ER): структурує нормалізовані дані за допомогою сутностей і зв'язків.
  • SELECT FROM: команда SQL для вибірки стовпців з таблиці.
  • JOIN ON: SQL-оператор для об'єднання рядків таблиць на основі пов'язаного стовпця.
  • WHERE: оператор SQL для фільтрації записів за умовою.
  • AND: логічний оператор у WHERE для поєднання кількох умов.
-- Запит даних із поєднаних сутностей з фільтрами
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;
Вступ до моделювання даних у Snowflake

Давайте потренуємось!

Вступ до моделювання даних у Snowflake

Preparing Video For Download...