Entity-relationship-modellen

Introduktion till datamodellering i Snowflake

Nuno Rocha

Director of Engineering

Introduktion till ER-modellering

  • Entity-relationship-modellen (ER-modellen): Strukturerar normaliserad data med entiteter, attribut och relationer

Entiteter med collegetema att modellera

Introduktion till datamodellering i Snowflake

Exempel på ER-modellen

Interaktion mellan entiteter med collegetema

Introduktion till datamodellering i Snowflake

Varför välja ER-modellen

  • Tydlighet
    • Förenklar affärssamband som speglar verkliga interaktioner
  • Organisation
    • Delar upp data i relaterade entiteter, vilket underlättar informationshantering
  • Flexibilitet
    • Anpassningsbar och kan växa och förändras över tid
Introduktion till datamodellering i Snowflake

Bygga ER-modellen

Collegetema-modell med kursregistreringar

Introduktion till datamodellering i Snowflake

Bygga ER-modellen

  • Lägg till en relation mellan befintliga entiteter:
ALTER TABLE classes
ADD FOREIGN KEY (school_id) REFERENCES schools(school_id);

Collegetema-modell som länkar entiteterna classes och schools

Introduktion till datamodellering i Snowflake

Bygga ER-modellen

Collegetema-modell med ny entitet för kursregistreringar

Introduktion till datamodellering i Snowflake

Bygga ER-modellen

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)
);
Introduktion till datamodellering i Snowflake

Bygga ER-modellen

Färdig ER-modell för collegetema

Introduktion till datamodellering i Snowflake

Hämta data från ER-modellen

Fråga mot ER-modellen för studentnamn och kurser registrerade under 2023 vid Science-skolan

Introduktion till datamodellering i Snowflake

Hämta data från ER-modellen

SELECT students.name  
FROM students;

Fråga mot ER-modellen för studentnamn

Introduktion till datamodellering i Snowflake

Hämta data från ER-modellen

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

Fråga mot ER-modellen för studenter och kursregistreringar

Introduktion till datamodellering i Snowflake

Hämta data från ER-modellen

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

Fråga mot ER-modellen för kursregistreringar år 2023

Introduktion till datamodellering i Snowflake

Hämta data från ER-modellen

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';

Fråga mot ER-modellen för kursnamn

Introduktion till datamodellering i Snowflake

Hämta data från ER-modellen

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';
Introduktion till datamodellering i Snowflake

Hämta data från ER-modellen

  • JOIN ON: SQL-sats för att kombinera rader från tabeller, baserat ON en gemensam kolumn.

Fråga mot ER-modellen för Science-skolan

Introduktion till datamodellering i Snowflake

Översikt över terminologi och funktioner

  • Entity-relationship-modellen (ER-modellen): Strukturerar normaliserad data med entiteter och relationer.
  • SELECT FROM: SQL-kommando för att hämta kolumner från en tabell.
  • JOIN ON: SQL-sats för att kombinera rader från tabeller, baserat ON en gemensam kolumn.
  • WHERE: SQL-sats för att filtrera poster utifrån ett villkor.
  • AND: Logisk operator som används med WHERE-satsen för att kombinera flera villkor.
-- 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;
Introduktion till datamodellering i Snowflake

Nu kör vi en övning!

Introduktion till datamodellering i Snowflake

Preparing Video For Download...