Modelo entidad-relación

Introducción al modelado de datos en Snowflake

Nuno Rocha

Director of Engineering

Introducción al modelado entidad-relación

  • Modelo entidad-relación (ER): Estructura datos normalizados con entidades, atributos y relaciones

Entidades del tema universitario a modelar

Introducción al modelado de datos en Snowflake

Ejemplo del modelo entidad-relación

Interacción de entidades del tema universitario

Introducción al modelado de datos en Snowflake

Por qué elegir el modelo ER

  • Claridad
    • Simplifica conexiones de negocio reflejando interacciones reales
  • Organización
    • Divide los datos en entidades relacionadas, facilitando su gestión
  • Flexibilidad
    • Se adapta para crecer y cambiar con el tiempo
Introducción al modelado de datos en Snowflake

Cómo construir el modelo ER

Modelo del tema universitario más matrículas

Introducción al modelado de datos en Snowflake

Cómo construir el modelo ER

  • Añade una relación entre entidades existentes:
ALTER TABLE classes
ADD FOREIGN KEY (school_id) REFERENCES schools(school_id);

Modelo del tema universitario, enlazando entidades classes y schools

Introducción al modelado de datos en Snowflake

Cómo construir el modelo ER

Modelo del tema universitario, nueva entidad enrollments

Introducción al modelado de datos en Snowflake

Cómo construir el modelo 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)
);
Introducción al modelado de datos en Snowflake

Cómo construir el modelo ER

Modelo ER final del tema universitario

Introducción al modelado de datos en Snowflake

Recuperar datos del modelo ER

Consultando el modelo ER para nombres de estudiantes y asignaturas inscritas en 2023 en la facultad de Science

Introducción al modelado de datos en Snowflake

Recuperar datos del modelo ER

SELECT students.name  
FROM students;

Consultando el modelo ER para nombres de estudiantes

Introducción al modelado de datos en Snowflake

Recuperar datos del modelo ER

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

Consultando el modelo ER para estudiantes y matrículas

Introducción al modelado de datos en Snowflake

Recuperar datos del modelo ER

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

Consultando el modelo ER para matrículas de 2023

Introducción al modelado de datos en Snowflake

Recuperar datos del modelo 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';

Consultando el modelo ER para nombres de asignaturas

Introducción al modelado de datos en Snowflake

Recuperar datos del modelo 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';
Introducción al modelado de datos en Snowflake

Recuperar datos del modelo ER

  • JOIN ON: Cláusula SQL para combinar filas de tablas, basada ON una columna relacionada.

Consultando el modelo ER para la facultad de Science

Introducción al modelado de datos en Snowflake

Resumen de terminología y funciones

  • Modelo entidad-relación (ER): Estructura datos normalizados con entidades y relaciones.
  • SELECT FROM: Comando SQL para obtener columnas de una tabla.
  • JOIN ON: Cláusula SQL para combinar filas de tablas, basada ON una columna relacionada.
  • WHERE: Cláusula SQL para filtrar registros según una condición.
  • AND: Operador lógico usado con WHERE para combinar condiciones.
-- Consultar datos de entidades combinadas filtradas por condiciones específicas
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;
Introducción al modelado de datos en Snowflake

¡Vamos a practicar!

Introducción al modelado de datos en Snowflake

Preparing Video For Download...