Entiteit-relatiemodel

Introductie tot datamodellering in Snowflake

Nuno Rocha

Director of Engineering

Introductie tot ER-modellering

  • Entiteit-relatie (ER) model: Structureert genormaliseerde data met entiteiten, attributen en relaties

Entiteiten voor hogeschoolthema modelleren

Introductie tot datamodellering in Snowflake

Voorbeeld van het ER-model

Interactie tussen entiteiten in hogeschoolthema

Introductie tot datamodellering in Snowflake

Waarom kiezen voor het ER-model

  • Duidelijkheid
    • Vereenvoudigt bedrijfsrelaties en weerspiegelt echte interacties
  • Organisatie
    • Splitst data in gerelateerde entiteiten, wat beheer vereenvoudigt
  • Flexibiliteit
    • Makkelijk mee te laten groeien en veranderen
Introductie tot datamodellering in Snowflake

Het ER-model opbouwen

Hogeschoolthema-model plus inschrijvingen

Introductie tot datamodellering in Snowflake

Het ER-model opbouwen

  • Relatie toevoegen tussen bestaande entiteiten:
ALTER TABLE classes
ADD FOREIGN KEY (school_id) REFERENCES schools(school_id);

Hogeschoolthema-model, koppeling tussen entities classes en schools

Introductie tot datamodellering in Snowflake

Het ER-model opbouwen

Hogeschoolthema-model, nieuwe entiteit inschrijvingen

Introductie tot datamodellering in Snowflake

Het ER-model opbouwen

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)
);
Introductie tot datamodellering in Snowflake

Het ER-model opbouwen

Definitief ER-model voor de hogeschool

Introductie tot datamodellering in Snowflake

Gegevens ophalen uit het ER-model

ER-model bevragen voor studentnamen en vakken ingeschreven in 2023 bij de faculteit Science

Introductie tot datamodellering in Snowflake

Gegevens ophalen uit het ER-model

SELECT students.name  
FROM students;

ER-model bevragen voor studentnamen

Introductie tot datamodellering in Snowflake

Gegevens ophalen uit het ER-model

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

ER-model bevragen voor studenten en inschrijvingen

Introductie tot datamodellering in Snowflake

Gegevens ophalen uit het ER-model

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

ER-model bevragen voor inschrijvingen in 2023

Introductie tot datamodellering in Snowflake

Gegevens ophalen uit het ER-model

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-model bevragen voor vaknamen

Introductie tot datamodellering in Snowflake

Gegevens ophalen uit het ER-model

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';
Introductie tot datamodellering in Snowflake

Gegevens ophalen uit het ER-model

  • JOIN ON: SQL-clausule om rijen uit tabellen te combineren op basis van een gerelateerde kolom.

ER-model bevragen voor faculteit Science

Introductie tot datamodellering in Snowflake

Overzicht termen en functies

  • Entiteit-relatie (ER) model: Structureert genormaliseerde data met entiteiten en relaties.
  • SELECT FROM: SQL-opdracht om kolommen uit een tabel op te halen.
  • JOIN ON: SQL-clausule om rijen uit tabellen te combineren op basis van een gerelateerde kolom.
  • WHERE: SQL-clausule om records te filteren op een voorwaarde.
  • AND: Logische operator met WHERE om meerdere voorwaarden te combineren.
-- Gegevens opvragen uit samengevoegde entiteiten, gefilterd op voorwaarden
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;
Introductie tot datamodellering in Snowflake

Laten we oefenen!

Introductie tot datamodellering in Snowflake

Preparing Video For Download...