Entiteit-relatiemodel

Introductie tot datamodellering in Snowflake

Nuno Rocha

Director of Engineering

Introductie tot entiteit-relatiemodellering

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

Entiteiten voor het model in collegesetting

Introductie tot datamodellering in Snowflake

Voorbeeld van het entiteit-relatiemodel

Interacties tussen entiteiten in collegesetting

Introductie tot datamodellering in Snowflake

Waarom kiezen voor het ER‑model

  • Helderheid
    • Vereenvoudigt bedrijfsrelaties en weerspiegelt interacties uit de praktijk
  • Structuur
    • Splitst data op in samenhangende entiteiten, wat beheer makkelijker maakt
  • Flexibiliteit
    • Past zich aan groei en verandering door de tijd aan
Introductie tot datamodellering in Snowflake

Het ER‑model opbouwen

Model voor collegesetting 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);

Model in collegesetting, koppeling tussen classes en schools

Introductie tot datamodellering in Snowflake

Het ER‑model opbouwen

Model in collegesetting, nieuwe entiteit enrollments

Introductie tot datamodellering in Snowflake

Het ER‑model opbouwen

CREATE OR REPLACE TABLE enrollments (
      -- Maak een nieuwe entiteit met een unieke identifier
      enrollment_id NUMBER(10,0) PRIMARY KEY

-- Voeg attributen van de entiteit toe year NUMBER(4,0), semester VARCHAR(255)
-- Voeg relaties met andere entiteiten toe 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 college

Introductie tot datamodellering in Snowflake

Gegevens ophalen uit het ER‑model

Query op ER‑model voor studentnamen en vakken in 2023 bij Science

Introductie tot datamodellering in Snowflake

Gegevens ophalen uit het ER‑model

SELECT students.name  
FROM students;

Query op ER‑model 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;

Query op ER‑model voor students en enrollments

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

Query op ER‑model 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';

Query op ER‑model 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.

Query op ER‑model voor Science-school

Introductie tot datamodellering in Snowflake

Overzicht van termen en functies

  • Entiteit-relatiemodel (ER): 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 bij WHERE om meerdere voorwaarden te combineren.
-- Gegevens opvragen uit gekoppelde 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...