Modello entità-relazioni

Introduzione al Data Modeling in Snowflake

Nuno Rocha

Director of Engineering

Introduzione al modello entità-relazioni

  • Modello entità-relazioni (ER): struttura dati normalizzati con entità, attributi e relazioni

Entità del tema universitario da modellare

Introduzione al Data Modeling in Snowflake

Esempio di modello entità-relazioni

Interazione tra entità nel tema universitario

Introduzione al Data Modeling in Snowflake

Perché scegliere il modello ER

  • Chiarezza
    • Semplifica i legami di business, riflettendo le interazioni reali
  • Organizzazione
    • Suddivide i dati in entità correlate, facilitando la gestione
  • Flessibilità
    • Si adatta a crescita e cambiamenti nel tempo
Introduzione al Data Modeling in Snowflake

Creare il modello ER

Modello a tema universitario con iscrizioni

Introduzione al Data Modeling in Snowflake

Creare il modello ER

  • Aggiungi una relazione tra entità esistenti:
ALTER TABLE classes
ADD FOREIGN KEY (school_id) REFERENCES schools(school_id);

Modello universitario, collegare entità corsi e scuole

Introduzione al Data Modeling in Snowflake

Creare il modello ER

Modello universitario, nuova entità iscrizioni

Introduzione al Data Modeling in Snowflake

Creare il modello ER

CREATE OR REPLACE TABLE enrollments (
      -- Crea una nuova entità con identificatore univoco
      enrollment_id NUMBER(10,0) PRIMARY KEY

-- Aggiungi gli attributi dell'entità year NUMBER(4,0), semester VARCHAR(255)
-- Aggiungi relazioni con altre entità FOREIGN KEY (student_id) REFERENCES students(student_id), FOREIGN KEY (class_id) REFERENCES classes(class_id)
);
Introduzione al Data Modeling in Snowflake

Creare il modello ER

Modello ER universitario finale

Introduzione al Data Modeling in Snowflake

Recuperare dati dal modello ER

Query del modello ER per nomi studenti e corsi del 2023 nella scuola di Scienze

Introduzione al Data Modeling in Snowflake

Recuperare dati dal modello ER

SELECT students.name  
FROM students;

Query del modello ER per i nomi degli studenti

Introduzione al Data Modeling in Snowflake

Recuperare dati dal modello ER

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

Query del modello ER per studenti e iscrizioni

Introduzione al Data Modeling in Snowflake

Recuperare dati dal modello ER

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

Query del modello ER per le iscrizioni 2023

Introduzione al Data Modeling in Snowflake

Recuperare dati dal modello 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';

Query del modello ER per i nomi dei corsi

Introduzione al Data Modeling in Snowflake

Recuperare dati dal modello 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';
Introduzione al Data Modeling in Snowflake

Recuperare dati dal modello ER

  • JOIN ON: clausola SQL per combinare righe di tabelle in base a una colonna correlata.

Query del modello ER per la scuola di Scienze

Introduzione al Data Modeling in Snowflake

Riepilogo: termini e funzioni

  • Modello ER: struttura dati normalizzati con entità e relazioni.
  • SELECT FROM: comando SQL per recuperare colonne da una tabella.
  • JOIN ON: combina righe tra tabelle tramite una colonna correlata.
  • WHERE: filtra i record in base a una condizione.
  • AND: operatore logico usato con WHERE per più condizioni.
-- Query su entità unite, filtrate per condizioni specifiche
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;
Introduzione al Data Modeling in Snowflake

Ayo berlatih!

Introduzione al Data Modeling in Snowflake

Preparing Video For Download...