Entity-Relationship-Modell

Einführung in das Data Modeling in Snowflake

Nuno Rocha

Director of Engineering

Einführung ins Entity-Relationship-Modell

  • Entity-Relationship (ER)-Modell: Strukturiert normalisierte Daten mit Entitäten, Attributen und Beziehungen

College-Thema: zu modellierende Entitäten

Einführung in das Data Modeling in Snowflake

Beispiel für das Entity-Relationship-Modell

College-Thema: Interaktion der Entitäten

Einführung in das Data Modeling in Snowflake

Warum das ER-Modell wählen

  • Klarheit
    • Vereinfacht Geschäftsbeziehungen, da sie reale Interaktionen abbilden
  • Organisation
    • Zerlegt Daten in verwandte Entitäten und erleichtert so das Informationsmanagement
  • Flexibilität
    • Anpassbar für Wachstum und Veränderungen über die Zeit
Einführung in das Data Modeling in Snowflake

ER-Modell aufbauen

College-Thema: Modell plus Einschreibungen

Einführung in das Data Modeling in Snowflake

ER-Modell aufbauen

  • Beziehung zwischen bestehenden Entitäten hinzufügen:
ALTER TABLE classes
ADD FOREIGN KEY (school_id) REFERENCES schools(school_id);

College-Thema: Modell, Verknüpfung der Entitäten classes und schools

Einführung in das Data Modeling in Snowflake

ER-Modell aufbauen

College-Thema: neue Entität enrollments

Einführung in das Data Modeling in Snowflake

ER-Modell aufbauen

CREATE OR REPLACE TABLE enrollments (
      -- Neue Entität mit eindeutigem Bezeichner erstellen
      enrollment_id NUMBER(10,0) PRIMARY KEY

-- Attribute der Entität hinzufügen year NUMBER(4,0), semester VARCHAR(255)
-- Beziehungen zu anderen Entitäten hinzufügen FOREIGN KEY (student_id) REFERENCES students(student_id), FOREIGN KEY (class_id) REFERENCES classes(class_id)
);
Einführung in das Data Modeling in Snowflake

ER-Modell aufbauen

Abschließendes College-ER-Modell

Einführung in das Data Modeling in Snowflake

Daten aus dem ER-Modell abrufen

Abfrage des ER-Modells: Studierendennamen und belegte Kurse 2023 in der Schule Science

Einführung in das Data Modeling in Snowflake

Daten aus dem ER-Modell abrufen

SELECT students.name  
FROM students;

Abfrage des ER-Modells: Studierendennamen

Einführung in das Data Modeling in Snowflake

Daten aus dem ER-Modell abrufen

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

Abfrage des ER-Modells: Studierende und Einschreibungen

Einführung in das Data Modeling in Snowflake

Daten aus dem ER-Modell abrufen

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

Abfrage des ER-Modells: Einschreibungen 2023

Einführung in das Data Modeling in Snowflake

Daten aus dem ER-Modell abrufen

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

Abfrage des ER-Modells: Kursnamen

Einführung in das Data Modeling in Snowflake

Daten aus dem ER-Modell abrufen

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';
Einführung in das Data Modeling in Snowflake

Daten aus dem ER-Modell abrufen

  • JOIN ON: SQL-Klausel, die Zeilen aus Tabellen über eine verwandte Spalte kombiniert.

Abfrage des ER-Modells: Schule Science

Einführung in das Data Modeling in Snowflake

Überblick: Begriffe und Funktionen

  • Entity-Relationship (ER)-Modell: Strukturiert normalisierte Daten mit Entitäten und Beziehungen.
  • SELECT FROM: SQL-Befehl, um Spalten aus einer Tabelle abzurufen.
  • JOIN ON: SQL-Klausel, die Zeilen aus Tabellen über eine verwandte Spalte kombiniert.
  • WHERE: SQL-Klausel, um Datensätze nach Bedingungen zu filtern.
  • AND: Logischer Operator mit WHERE, um Bedingungen zu verknüpfen.
-- Daten aus verknüpften Entitäten nach Bedingungen abfragen
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;
Einführung in das Data Modeling in Snowflake

Lass uns üben!

Einführung in das Data Modeling in Snowflake

Preparing Video For Download...