Modelo entidade-relacionamento

Introdução à Modelagem de Dados no Snowflake

Nuno Rocha

Director of Engineering

Introdução ao modelagem entidade-relacionamento

  • Modelo entidade-relacionamento (ER): Estrutura dados normalizados com entidades, atributos e relacionamentos

Entidades do tema faculdade para modelar

Introdução à Modelagem de Dados no Snowflake

Exemplo do modelo entidade-relacionamento

Interação entre entidades do tema faculdade

Introdução à Modelagem de Dados no Snowflake

Por que escolher o modelo ER

  • Clareza
    • Simplifica conexões de negócio, espelhando interações reais
  • Organização
    • Divide dados em entidades relacionadas, facilitando a gestão
  • Flexibilidade
    • Adapta-se para crescer e mudar ao longo do tempo
Introdução à Modelagem de Dados no Snowflake

Construindo o modelo ER

Modelo do tema faculdade com matrículas

Introdução à Modelagem de Dados no Snowflake

Construindo o modelo ER

  • Adicionar relacionamento entre entidades existentes:
ALTER TABLE classes
ADD FOREIGN KEY (school_id) REFERENCES schools(school_id);

Modelo do tema faculdade, ligando entidades classes e schools

Introdução à Modelagem de Dados no Snowflake

Construindo o modelo ER

Modelo do tema faculdade, nova entidade enrollments

Introdução à Modelagem de Dados no Snowflake

Construindo o modelo ER

CREATE OR REPLACE TABLE enrollments (
      -- Crie uma nova entidade com um identificador exclusivo
      enrollment_id NUMBER(10,0) PRIMARY KEY

-- Adicione os atributos da entidade year NUMBER(4,0), semester VARCHAR(255)
-- Adicione relacionamentos com outras entidades FOREIGN KEY (student_id) REFERENCES students(student_id), FOREIGN KEY (class_id) REFERENCES classes(class_id)
);
Introdução à Modelagem de Dados no Snowflake

Construindo o modelo ER

Modelo ER final da faculdade

Introdução à Modelagem de Dados no Snowflake

Buscando dados no modelo ER

Consultando o modelo ER por nomes de estudantes e turmas em 2023 na escola Science

Introdução à Modelagem de Dados no Snowflake

Buscando dados no modelo ER

SELECT students.name  
FROM students;

Consultando o modelo ER por nomes de estudantes

Introdução à Modelagem de Dados no Snowflake

Buscando dados no modelo ER

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

Consultando o modelo ER por estudantes e matrículas

Introdução à Modelagem de Dados no Snowflake

Buscando dados no modelo ER

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

Consultando o modelo ER por matrículas de 2023

Introdução à Modelagem de Dados no Snowflake

Buscando dados no modelo 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';

Consultando o modelo ER por nomes de turmas

Introdução à Modelagem de Dados no Snowflake

Buscando dados no modelo 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';
Introdução à Modelagem de Dados no Snowflake

Buscando dados no modelo ER

  • JOIN ON: cláusula SQL para combinar linhas de tabelas com base ON em uma coluna relacionada.

Consultando o modelo ER para a escola Science

Introdução à Modelagem de Dados no Snowflake

Visão geral de termos e funções

  • Modelo entidade-relacionamento (ER): Estrutura dados normalizados com entidades e relacionamentos.
  • SELECT FROM: comando SQL para buscar colunas de uma tabela.
  • JOIN ON: cláusula SQL para combinar linhas de tabelas com base ON em uma coluna relacionada.
  • WHERE: cláusula SQL para filtrar registros por condição.
  • AND: operador lógico usado com WHERE para combinar condições.
-- Consultando dados de entidades unidas, filtrados por condições específicas
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;
Introdução à Modelagem de Dados no Snowflake

Vamos praticar!

Introdução à Modelagem de Dados no Snowflake

Preparing Video For Download...