Slide 3 Modelagem de Bancos de Dados parte 01

03/03/2026

Professor Miguél Suares

3.1 Introdução: Visitando a teoria de Bancos de Dados

Banco de Dados Um banco de dados é uma coleção compartilhada de dados logicamente relacionados, projetada para atender às necessidades informacionais de uma organização. - DATE, C. J. An Introduction to Database Systems. 8. ed. Boston: Addison-Wesley, 2003.

Ou seja, alguns pontos-chave da definição de Date:

  • “Coleção de dados …” → não é um conjunto de arquivos soltos, mas dados organizados.

  • “Compartilhada …” → não pertence a apenas um usuário ou aplicação; é usada por vários.

  • “Dados logicamente relacionados …” → os dados têm um relacionamento semântico, não são apenas agrupamentos arbitrários.

  • “Projetada para atender necessidades …” → o banco existe para suportar os processos de uma organização (consultas, relatórios, controle, tomada de decisão).

Banco de Dados Relacional Um banco de dados relacional é um banco de dados baseado em um modelo de dados relacional, no qual os dados são representados como um conjunto de relações (tabelas), e cada relação consiste em tuplas (linhas) e atributos (colunas). - SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Database System Concepts. 6. ed. New York: McGraw-Hill, 2010.

Agora, alguns pontos-chave da definição de Abraham Silberschatz :

  • Base no modelo relacional de Codd (1970).

  • Dados representados em tabelas (relações).

  • Cada tabela é composta de tuplas (linhas) e atributos (colunas).

  • Integridade garantida por restrições (chaves, integridade referencial, domínio de atributos).

  • Manipulação feita por linguagens relacionais (álgebra relacional, cálculo relacional, SQL).

O Banco de Dados Relacional organiza as informações em tabelas bidiomensionais constituídas de linhas e colunas chamadas e essas tabelas recebem o nome de relações. Cada relação possui um campo-chave que confere identificação exclusiva a cada registro da tabela.

3.2 Modelo Matemático de um Banco de Dados

Considere um Banco de Dados para representar, com consistência Matemática os funcionários e Departamentos de uma Empresa.

3.2.1 Podemos representa-lo matemáticamente utilizando a teoria dos conjuntos

Diagrama de Montadoras, Veículos e Proprietários

Figure 3.1: Diagrama de Montadoras, Veículos e Proprietários

3.2.1.1 Edgard F Cood explica em sua obra “A Relational Model of Data for Large Shared Data Banks” como definir uma Banco de Dados compartilhado matemáticamente

Um banco de dados relacional é um banco de dados no qual todos os dados são representados por meio de relações (matematicamente, conjuntos de tuplas), e todas as operações sobre os dados são baseadas em operadores formais do cálculo relacional e da álgebra relacional. - A Relational Model of Data for Large Shared Data Banks” (Communications of the ACM, vol. 13, n. 6, pp. 377–387, 1970).

Professor Edgar Frank Codd - Universidade do Tenessi

3.2.2 Então para podemos relacionar estes dois conjuntos (Funcionários e Departamentos) utilizando a Teoria das Funções

\[ \text{Edgard Frank Codd era um matemático tradicional} \\ \text{Considere o conseito de função: } \\ f(x) = Y \\ \text{era dessa forma que ele imaginava relacionamento e } \\ \text{ garantia matemática de CONSISTÊNCIA entre } \\ \text{ elementos de 2 conjuntos de dados diferentes } \]

Diagrama de Montadoras, Veículos e Proprietários

Figure 3.2: Diagrama de Montadoras, Veículos e Proprietários

Mas vai ficar faltando como representar os atributos nesse modelo (colunas das tabelas):

\[ \begin{array}{c| c | c} \textbf{ Conjunto Funcionários} & \textbf{ Relacionamento Trabalha} & \textbf{Conjunto Departamentos)} \\ \hline FULANO & \quad TRABALHA & \quad RH \\ BELTRANO & \quad TRABALHA & \quad FINANCEIRO \\ CICLANO & \quad TRABALHA & \quad DEIRETORIA \\ \hline \textbf{Total: 3 ELEMENTOS } & \textbf{ CONECTADOS } & \textbf{Total: 3 ELEMENTOS } \end{array} \]

Ainda, é necessário acrescentar algumas regras de integridade a representação;

3.3 Modelo Lógico de Banco de Dados

3.3.1 Modelo Conceitual “Entidade Relacionamento” de Banco de Dados

O Modelo Entidade-Relacionamento (MER), proposto por Peter Chen em 1976, é uma ferramenta fundamental na modelagem de dados. É um modelo de dados de alto nível que descreve a estrutura conceitual de um banco de dados. O Modelo Entidade-Relacionamento (MER) é representado graficamente através de um DER (Diagrama Entidade-Relacionamento).

Professor Peter Chen - universidade norte-americana de Luisiania

É utilizado para projetar Bancos de Dados Relacionais a partir de entrevistas onde se descreve as informações que se deseja armazenar de forma consistente. Exemplo:

Desenhe um diagrama entidade-relacionamento DER contendo as entidades funcionarios e departamentos. A entidade ”funcionários” possui os atributos ”nome” e ”CPF”. A entidade ”Departamentos” possui os atributos ”Nome” e ”sigla”. O atributo ”CPF” é chave primária da entidade ”Funcionários”. O atributo ”sigla” é chave primária da entidade ”Departamentos”. As entidades ”Funcionários” e ”Departamentos” se relacionam através de um relacionamento chamado ”Pertence”.”

Segundo Laudon

Diagrama Entidade/Relacionamento (DER) é uma representação esquemática utilizada para entender as relações entre as tabelas de um banco de dados relacional. [[1] - LAUDON, Kenneth C.; LAUDON, Jane P. *Sistemas de informação gerenciais*. 11. ed. São Paulo: Pearson Education do Brasil, 2010. p. 180.]

3.3.2 Composição e Significado do Diagrama Entidade Relacionamento (DER)

\[ \begin{array}{c| c | c} \textbf{ NOME DO COMPONENTE} & \textbf{Representação Gráfica} & \textbf{ Liguagem Natural (texto)} \\ \hline ENTIDADE & \quad RETÂNGULO & \quad SUBSTÃNTIVO \\ ATRIBUTO & \quad ELÍPSE & \quad ADJETIVO \\ RELACIONAMENTO & \quad LOSÂNGULO & \quad VERBO \\ \hline \textbf{Total: 3 ELEMENTOS } & \textbf{ FORMA GRÁFICA } & \textbf{ FORMA MOFOLÓGICA GRAMATICAL } \end{array} \]

Diagrama de Montadoras, Veículos e Proprietários

Figure 3.3: Diagrama de Montadoras, Veículos e Proprietários

3.4 Modelo Físico de Banco de Dados

3.4.1 Geração do modelo Físico para aplica-lo ao SGBD (Sistema de Gerenciamento de Banco de Dados):

Uma vez que o modelo conceitual seja gerado, o analista pode mapea-lo para um “modelo físico”. Aqui, cada entidade irá gerar uma tebela, cada atributo irá originar uma coluna pertinente da tabela em questão e cada relacionamento irá mapear chaves primárias e chaves forasteiras nas tabelas interrelacionadas.

\[ \begin{array}{c| c | c} \textbf{Componente Lógico} & \textbf{ Componente Físico} & \textbf{Liguagem Natural (texto)} \\ \hline ENTIDADE & \quad TABELA & \quad SUBSTÃNTIVO \\ ATRIBUTO & \quad COLUNA & \quad ADJETIVO \\ RELACIONAMENTO & \quad CHAVE-ESTRANGEIRA & \quad VERBO \\ \hline \textbf{Diagrama Lógico DER } & \textbf{ FORMA FÍSICA - SGBD } & \textbf{ FORMA MOFOLÓGICA GRAMATICAL ORIGINAL } \end{array} \]

A ferramenta que irá criar as estruturas Físicas (tabelas, colunas, chaves) dentro do Banco de Dados é o Sistema de Gerenciamento de Banco de Dados através da linguagem SQL.

3.4.2 Interagindo com o Modelo Físico - A linguagem SQL (Structured Query Language)

A linguagem SQL foi criada nos laboratórios da IBM em 1974, como interface de manipulação ao Bando de Dados Relacional System-R , atualmente denominado IBM DB2. Os criadores foram engenheiros de sistemas que sucederam o professor Edgard Frank Codd no projeto de Banco de Dados Relacional: Donald Chamberlain e Raymond Boyce.

Donald Chamberlain - Criador da linguagem SQL nos laboratórios da IBM
Donald Chamberlain - Criador da linguagem SQL nos laboratórios da IBM
Raymond Boyce - Criador da linguagem SQL nos laboratórios da IBM
Raymond Boyce - Criador da linguagem SQL nos laboratórios da IBM

A lingauem SQL é a ponte com o mundo exterior para um Sistema de Gerenciamento de Banco de Dados (SGBD). Os conjunto de comandos da linguagem SQL são divididos em 3 grandes grupos:

\[ \begin{array}{c| c | c} \textbf{GRUPO} & \textbf{ Comandos} & \textbf{Finalidade} \\ \hline Grupo \ DDL & \quad \ Data \ Definion \ Language & \quad Criar \ estruturas \ de \ dados \\ Grupo \ DML & \quad \ Data \ Manipulation \ Language & \quad Manipular \ dados \ armazenados \\ Grupo \ DCL & \quad \ Data \ Control \ Language & \quad Criar \ Regras \ para \ os \ dados \\ Grupo \ TCL & \quad \ Transaction \ Control \ Language & \quad Criar \ Transações \ para \ os \ dados \\ \hline \textbf{Subconjunto SQL } & \textbf{ Significado } & \textbf{ Conjunto Completo } \end{array} \]

Comandos exemplo:

\[ \begin{array}{c| c } \textbf{GRUPO} & \textbf{ Comandos} \\ \hline Grupo \ DDL & \quad CREATE, \quad ALTER,\quad DROP \ \ \\ Grupo \ DML & \quad SELECT, \quad INSERT, \quad UPDATE, \quad DELETE, \quad JOIN \\ Grupo \ DCL & \quad GRANT, \quad REVOKE \\ Grupo \ TCL & \quad COMMIT, \quad ROLLBACK, \quad SAVEPOINT \\ \hline \textbf{Subconjunto SQL } & \textbf{ Significado } \end{array} \]

O código abaixo escrito em Lingauem SQL padrão transfere para o modelo físico o modelo lógico anterior:

Transformando em SQL - EQUIVALENTE:

-- Exemplo testado e gerado no SGBD Postgres versão 15

-- Tabela Funcionários
CREATE TABLE IF NOT EXISTS "public".funcionarios
(
    cpf bigint NOT NULL,
    nome varchar(200)
);

-- Tabela Departamentos

CREATE TABLE IF NOT EXISTS "public".departamentos
(
    sigla integer NOT NULL,
    nome varchar(200)
);

-- Definindo a coluna "cpf" da tabela "funcionários" como chave primária
alter table "public".funcionarios add constraint "chave_primaria_funcionarios" primary key (cpf);

-- Definindo a coluna "sigla"" da tabela "departamentos" como chave primária
alter table "public".departamentos add constraint "chave_primaria_departamentos" primary key (sigla);

-- Gerando a integridade referêncial 
-- Importando a chave primária da tabela "departamentos" como "chave estrangeira"
-- na tabela "funcionários"

-- primeiro adiciona-se a coluna estrageira "sigla" que é coluna originalmente 
-- pertencente a tabela departamentos
alter table "public".funcionarios add column sigla integer;

-- finalmente conecte a coluna sigla a chave primária da tabela "departamento"
-- criando então uma chave estrageira na tabela "funcionários".
alter table "public".funcionarios add constraint "Chave_estrangeira_Departamento_funcionarios" foreign key (sigla) references "public".departamentos(sigla);

3.5 EXEMPLO: REVENDA DE VEÍCULOS MULTI-MARCAS

Uma revenda de veículos multimarcas deseja informatizar seu negócio e precisa de um banco de dados que registre informações sobre veículos, fabricantes e clientes. Cada veículo deve ter código de identificação, modelo, ano de fabricação, cor, preço e chassi. Todo veículo pertence a um fabricante. O fabricante é identificado por um código e deve ter armazenados seu nome e país de origem. A revenda vende veículos para clientes, e cada venda deve registrar a data, o valor da negociação e a forma de pagamento. Um cliente pode comprar mais de um veículo, mas cada veículo só pode ser vendido uma vez. Cada cliente é identificado por um código e deve ter armazenados seu nome, CPF/CNPJ, telefone e endereço.

3.5.1 Passo 1 - Visualizando matemáticamente os dados:

Vejamos como ficaria representar matemáticamente o enunciado acima:

  • Teoria dos Conjuntos - Ajudaria a organizar e agrupar os dados em conjuntos;

  • Teoria das Funções - A idéia era fornecer um mecanismo de consistência aos dados de conjuntos diferentes relacionados. Por exemplo, haveria uma função que mapeasse um um elemento do conjunto veículo a outro elemento do conjunto montadora.

3.5.1.1 Representação Matemática em Conjuntos e seus Elementos :

Vamos visualizar gráficamente os conjuntos de Marcas, modelos e proprietários :

Diagrama de Montadoras, Veículos e Proprietários

Figure 3.4: Diagrama de Montadoras, Veículos e Proprietários

3.5.1.2 Gerando os Relacionamentos “Matemáticamente” - (Teoria das Funções, Domínios e Imagens):

Vamos visualizar gráficamente os relacionamentos entre os lementos dos conjuntos Marcas, modelos e proprietários :

Diagrama de Montadoras, Veículos e Proprietários

Figure 3.5: Diagrama de Montadoras, Veículos e Proprietários

A limitação desta representação gráfica logo fica evidente: por mais que na forma matemática se consiga representar os elementos dos conjuntos e o relacionamento entre eles, a representação não consegue representar os diferentes atributos (características) que os elementos dos conjuntos compartilham.

3.5.2 Modelo Lógico: Modelo Entidade Relacionamento

Vamos agora converter a representação matemática para uma representação lógica utilizando o modelo M.E.R. (modelo entidade-relacionamento ) proposto pelo professor Peter Chen

3.5.2.1 Modelo Entidade Relacionamento

O modelo Entidade Relacionamento consistem em traduzir elementos morfológicos da gramática da língua portuguesa em um texto para um modelo de Banco de dados utilizando a com a seguinte regra de montagem:

Classe morfológica da palavra CORRESPONDÊNCIA NO MODELO MATEMÁTICO CORRESPONDÊNCIA NO MODELO LÓGICO CORRESPONDÊNCIA NO MODELO FÍSICO-RELACIONAL
Substantivos CONJUNTOS ENTIDADES TABELAS
Adjetivos N/A ATRIBUTO COLUNAS
Verbos Idéia de “funções y=f(x)” RELACIONAMENTOS CHAVE ESTRANGEIRA

Tomando como exemplo a revenda de carros:

Classe morfológica da palavra
Substantivos VEÍCULOS, FABRICANTES, CLIENTES
Adjetivos

Referentes a veículos: Modelo, Ano_Fabricacao, Cor, Preco, Chassi

Referentes a fabricante: Nome, Pais_Origem

Referentes a cliente: Nome, CPF_CNPJ, Telefone, Endereco

Verbos

Fabricante - PRODUZ- Veículo

clinte - COMPRA/VENDE - Veículo

3.5.2.2 Modelo Entidade Relacionamento - representação gráfica

Classe morfológica da palavra REPRESENTAÇÃO GRÁFICA
Substantivos RETÂNGULOS
Adjetivos ELIPSES
Verbos LOSÂNGULOS



-- ================================================
-- 1) TRANSFORME AS ENTIDADES E ATRIBUTOS EM 
--    TABELAS E COLUNAS
-- ================================================
CREATE TABLE fabricantes
(
    codigo_fabricante  INTEGER      NOT NULL,
    nome               VARCHAR(100) NOT NULL,
    pais_origem        VARCHAR(60)  NOT NULL
);

CREATE TABLE clientes
(
    codigo_cliente   INTEGER      NOT NULL,
    nome             VARCHAR(120) NOT NULL,
    cpf_cnpj         VARCHAR(20)  NOT NULL UNIQUE,
    telefone         VARCHAR(30),
    endereco         TEXT
);

CREATE TABLE veiculos 
(
    codigo_veiculo      INTEGER       NOT NULL,
    modelo              VARCHAR(100)  NOT NULL,
    ano_fabricacao      INTEGER       NOT NULL,
    cor                 VARCHAR(40),
    preco               NUMERIC(12,2) NOT NULL,
    chassi              VARCHAR(30)   UNIQUE NOT NULL
);

CREATE TABLE vendas
(
    codigo_venda     INTEGER          NOT NULL,
    data_venda       DATE             NOT NULL,
    valor_negociado  NUMERIC(12,2)    NOT NULL,
    forma_pagamento  VARCHAR(50)      NOT NULL
);

-- ================================================
-- 2) TRANSFORME OS ATRIBUTOS CHAVE PRIMÁRIA
-- EM CHAVES-PRIMÁRIAS DAS TABELAS
-- ================================================
ALTER TABLE fabricantes ADD CONSTRAINT chave-primaria_fabricante PRIMARY KEY (codigo_fabricante);

ALTER TABLE clientes    ADD CONSTRAINT chave-primaria_cliente PRIMARY KEY (codigo_cliente);

ALTER TABLE veiculos    ADD CONSTRAINT chave-primaria_veiculo PRIMARY KEY (codigo_veiculo);

ALTER TABLE vendas      ADD CONSTRAINT chave-primaria_venda PRIMARY KEY (codigo_venda);

-- ================================================
-- 3) ADICIONAR NAS TABELAS AS COLUNAS EXTRAS
--    QUE VÃO RECEBER AS CHAVES ESTRANGEIRAS
-- ================================================

-- adicione uma coluna que irá acomodar a chave primária da tabela fabricantes como chave estrangeira
ALTER TABLE veiculos add cloumn  codigo_fabricante   INTEGER NOT NULL;

-- adicione uma coluna que irá acomodar a chave primária da tabela clientes como chave estrangeira
ALTER TABLE vendas   add cloumn  codigo_cliente      INTEGER NOT NULL;

-- adicione uma coluna que irá acomodar a chave primária da tabela veículos como chave estrangeira
ALTER TABLE vendas   add cloumn  codigo_veiculo      INTEGER NOT NULL UNIQUE;

-- ================================================
-- 3) CRIE AS CHAVES ESTRANGEIRAS QUE FAZEM A LIGAÇÃO
-- DAS TABELAS "LADO N" DO RELACIONAMENTO NO 
-- DIAGRAMA ENTIDADE-RELACIONAMENTO COM AS
-- COLUNAS DO LADO 1
-- ================================================

-- utilizando chave estrangeira, faça esta tabela veículos referenciar a tabela fabricantes
ALTER TABLE veiculos
    ADD CONSTRAINT chave-estrageira_veiculo_fabricante
    FOREIGN KEY (codigo_fabricante)
    REFERENCES fabricantes (codigo_fabricante)
    ON UPDATE CASCADE
    ON DELETE RESTRICT;

-- utilizando chave estrangeira, faça esta tabela vendas referenciar a tabela clientes
ALTER TABLE vendas
    ADD CONSTRAINT chave-estrageira_venda_cliente
    FOREIGN KEY (codigo_cliente)
    REFERENCES clientes (codigo_cliente)
    ON UPDATE CASCADE
    ON DELETE RESTRICT;

-- utilizando chave estrangeira, faça esta tabela vendas referenciar a tabela veículos 
ALTER TABLE vendas
    ADD CONSTRAINT chave-estrageira_venda_veiculo
    FOREIGN KEY (codigo_veiculo)
    REFERENCES veiculos (codigo_veiculo)
    ON UPDATE CASCADE
    ON DELETE RESTRICT;

3.6 VERBOS: Relacionamentos e Cardinalidade

A cardinalidade define quantas ocorrências de uma entidade podem estar associadas a ocorrências de outra entidade em um relacionamento.

Ela é fundamental para entender as regras de negócio do banco de dados e deve estar sempre representada no Diagrama Entidade-Relacionamento (DER).


3.6.1 🔹 Tipos principais de cardinalidade

  1. Um para Um (1:1)
  2. Um para Muitos (1:N)
  3. Muitos para Muitos (N:M)

A seguir, vamos detalhar cada caso.


3.6.2 1. Relacionamento 1:1 (Um para Um)

Um exemplo clássico:
- Cada MARIDO possui uma única ESPOSA.
- Cada ESPOSA pertence a um único MARIDO.

3.6.2.1 Representação no DER:

3.6.3 Relacionamento 1:N (Um para Muitos)

Exemplo:

Um Cliente pode fazer muitos Pedidos.

Mas cada Pedido só pode pertencer a um Cliente.

3.6.3.1 Representação no DER:

3.6.4 Relacionamento N:M (Muitos para Muitos)

Exemplo:

Um Aluno pode se matricular em muitas Disciplinas.

Cada Disciplina pode ter muitos Alunos.

( Esse tipo de relacionamento precisa de uma entidade associativa para ser implementado no banco (ex.: Matricula) )

3.6.4.1 Representação no DER:

3.7 Entidade Dominante e Entidade Subordinada

No Modelo Entidade-Relacionamento (MER), algumas entidades só existem dependendo da existência de outra.
Nesses casos, usamos os conceitos de Entidade Dominante e Entidade Subordinada.


3.7.1 Definições:

  • Entidade Dominante (ou Forte):
    É uma entidade que existe por si só, sem depender de nenhuma outra.
    Ex.: Cliente, Produto, Funcionário.

  • Entidade Subordinada (ou Fraca):
    É uma entidade que depende de outra para existir.
    Ela não possui chave primária própria completa e precisa da chave da entidade dominante.
    Ex.: ItemPedido, Dependente, Parcela.

A entidade subordinada é representada por um losango duplo (relacionamento identificador) em algumas notações, ou simplesmente destacada como entidade fraca.

Outro Exemplo:


3.8 CARDINALIDADE DO MODELO LÓGICO E A CRIAÇÃO DE CHAVES ESTRANGEIRAS NO MODELO FÍSICO-RELACIONAL

Vai ser a cardinalidade que irá ditar em quais tabelas criaremos chaves estrangeiras.

3.9 Referências

CHEN, Peter (1990). Gerenciando Banco de Dados. A Abordagem Entidade-Relacionamento para Projeto Lógico. São Paulo: McGraw-Hill. 80 páginas. ISBN 0-07-460575-5

DATE, C. J. An Introduction to Database Systems. 8. ed. Boston: Addison-Wesley, 2003.

SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Database System Concepts. 6. ed. New York: McGraw-Hill, 2010.

CODD, E. F. A Relational Model of Data for Large Shared Data Banks. Communications of the ACM, New York, v. 13, n. 6, p. 377–387, 1970.

3.10 Exercícios RESOLVIDOS

Exercício 1 — Universidade
Considere uma Universidade que possui vários Cursos. Cada curso tem um nome, uma duração em semestres e um coordenador. A universidade possui Professores, cada um com um nome, título e CPF. Um professor pode ministrar várias disciplinas, e cada disciplina pertence a um único curso.
  1. Identifique as entidades
  1. Identifique os atributos de cada Entidade
  1. Identifique os relacionamentos entre as Entidades
  1. Faça o diagrama DEM (Diagrama Entidade Relacionamento) contendo as entidades, atributos e relacionamentos que você mapeou.

3.10.0.1 Passo #1 -

Identificar SUBSTANTIVOS no contexto; identificar os ADJETIVOS pertinentes a cada SUBSTANTIVO; identificar os VERBOS de relação entre os substantivos.

Identificando SUBSTANTIVOS, ADJETIVOS referentes e VERBOS de relação
Substantivos do contexto: leve-os ao plural Adjetivos Verbos
UNIVERSIDADE -> UNIVERSIDADES

NOME (implícito no enunciado)

CNPJ (implícito no enunciado)

universidade POSSUI (vários) cursos
CURSO -> CURSOS

NOME (explícito no enunciado)

DURAÇÃO (explícito no enunciado)

COORDENADOR (explícito no enunciado)

CODIGO_CURSO (implícito no enunciado)

cursos são POSSUÍDOS por (vários) universidades
PROFESSOR -> PROFESSORES

CPF (explícito no enunciado)

NOME (explícito no enunciado)

TÍTULO (explícito no enunciado)

universidade POSSUI (vários) professores

professor MINISTRA (várias) disciplinas

DISCIPLINA -> DISCIPLINAS

NOME (implícito no enunciado)

CODIGO_DISCIPLINA (implícito no enunciado)

disciplina É MINISTRADA por (vários) professores

disciplina PERTENCE a (um único) curso

3.10.0.2 Passo #2

Criar o MODELO ENTIDADE RELACIONAMENTO (M.E.R.) - Converter SUBSTANTIVO em ENTIDADES; converter ADJETIVOS em ATRIBUTOS e converter VERBOS em RELACIONAMENTOS.

  • ENTIDADES identificadas: UNIVERSIDADES, CURSOS, PROFESSORES e DISCIPLINAS

  • ATRIBUTOS identificados: UNIVERSIDADES [ nome,cnpj ] ; CURSOS [ nome, duração, coordenador, codigo_curso] ; PROFESSORES [ cpf, nome e título] ; DISCIPLINAS [nome e codigo_disciplina]

  • RELACIONAMENTOS: [universidade-POSSUI-curso] ; [universidade-POSSUI-professores]; [professor-MINISTRA-disciplina] ; [disciplina-PERTENCE-curso]

3.10.0.3 Passo #3

Criar um DIAGRAMA ENTIDADE-RELACIONAMENTO (D.E.R.) com as informações levantadas:

3.10.0.4 Passo #4

Identificar os Relacionamentos:

  • [universidade-POSSUI-curso] ; [universidade-POSSUI-professores]; [professor-MINISTRA-disciplina] ; [disciplina-PERTENCE-curso]


Exemplo 2 — Um Projeto de e-commerce |
Um Cliente faz Pedidos em um sistema de e-commerce. Cada cliente tem um nome, endereço e telefone. Os pedidos possuem uma data, um valor total e podem conter vários Produtos. Cada produto tem um nome, uma descrição e um preço.
  1. Identifique as entidades
  1. Identifique os atributos de cada Entidade
  1. Identifique os relacionamentos entre as Entidades
  1. Faça o diagrama DEM (Diagrama Entidade Relacionamento) contendo as entidades, atributos e relacionamentos que você mapeou.

3.10.0.5 Passo #1 -

Identificar SUBSTANTIVOS no contexto; identificar os ADJETIVOS pertinentes a cada SUBSTANTIVO; identificar os VERBOS de relação entre os substantivos.

Identificando SUBSTANTIVOS, ADJETIVOS referentes e VERBOS de relação
Substantivos do contexto: leve-os ao plural Adjetivos Verbos
CLIENTE -> CLIENTES

NOME (explícito no enunciado)

ENDERECO (explícito no enunciado)

TELEFONE (explícito no enunciado)

CPF (implícito no enunciado)

(vários) clientes PEDEM (vários) produtos

PEDIDO -> PEDIDOS ????

PEDIDO NÃO É SUBSTABNTIVO, MAS SIM O PARTICÍPIO PASSADO DO VERBO PEDIR.

(PEDIR É VERBO !!!)

DATA (explícito no enunciado)

VALOR_TOTAL (explícito no enunciado)

(vários) clientes PEDEM (vários) produtos
PRODUTO -> PRODUTOS

NOME (implícito no enunciado)

DESCRICAO (explícito no enunciado)

PRECO (explícito no enunciado)

COD_PRODUTO (implícito no enunciado)

(vários) produtos são PEDidos por (vários) clientes

3.10.0.6 Passo #2

Criar o MODELO ENTIDADE RELACIONAMENTO (M.E.R.) - Converter SUBSTANTIVO em ENTIDADES; converter ADJETIVOS em ATRIBUTOS e converter VERBOS em RELACIONAMENTOS.

Normalmente apenas as ENTIDADES levam atributos. Quando aparece um relacionamento N-N entre duas entidades, também podem aparecer atributos atrelados aos relacionamentos (como é o caso de PEDIDO aqui).

  • ENTIDADES identificadas: CLIENTES, PRODUTOS

  • ATRIBUTOS identificados: CLIENTES [ nome, endereco, telefone, cpf] ; PRODUTOS [ nome, descricao, preco, cod_produto] ; PEDIDO[data, valor_total]

  • RELACIONAMENTOS: [cliente-PEDE-produto] ; [produto-PEDIDO-cliente];

3.10.0.7 Passo #3

Criar um DIAGRAMA ENTIDADE-RELACIONAMENTO (D.E.R.) com as informações levantadas:


Exercício 3 — Hospital
Um Hospital registra Pacientes, cada um com nome, idade, endereço e telefone. Os pacientes podem realizar várias Consultas com Médicos. Cada médico possui um CRM, um nome e uma especialidade. Durante a consulta, o médico pode prescrever Receitas, que possuem medicação e dosagem.
  1. Identifique as entidades
  1. Identifique os atributos de cada Entidade
  1. Identifique os relacionamentos entre as Entidades
  1. Faça o diagrama DEM (Diagrama Entidade Relacionamento) contendo as entidades, atributos e relacionamentos que você mapeou.

3.10.0.8 Passo #1 -

Identificar SUBSTANTIVOS no contexto; identificar os ADJETIVOS pertinentes a cada SUBSTANTIVO; identificar os VERBOS de relação entre os substantivos.

Identificando SUBSTANTIVOS, ADJETIVOS referentes e VERBOS de relação
Substantivos do contexto: leve-os ao plural Adjetivos Verbos
HOSPITAL -> HOSPITAIS

NOME (implícito no enunciado)

CNPJ (implícito no enunciado)

(explícito) hospital REGISTRA (vários) pacientes

(implícito) hospital POSSUI medicos

PACIENTE -> PACIENTES

NOME (explícito no enunciado)

IDADE (explícito no enunciado)

ENDERECO (explícito no enunciado)

TELEFONE (explícito no enunciado)

CPF (implícito no enunciado)

pacientes são REGISTRADOS em (um) hospital

(vários) pacientes CONSULTAM (vários) médicos

(vários) pacientes SÃO RECEITADOS por (vários) médicos

MÉDICO -> MEDICOS

CRM (explícito no enunciado)

NOME (explícito no enunciado)

ESPECIALIDADE (explícito no enunciado)

(vários) médico(s) CONSULTA (vários) pacientes

(vários) médico(s) RECEITAM (vários) pacientes

RECEITA ?? -> RECEITAR é VERBO

MEDICACAO (explícito no enunciado)

DOSAGEM(explícito no enunciado)

médico RECEITA ao paciente

(vários) paciente(s) É(SÃO) RECEITADO(s) por (vários) médico(s)

CONSULTA ?? -> CONSULTAR é VERBO

DATA (implícito no enunciado)

HORA(implícito no enunciado)

sala(implícito no enunciado)

(vários) pacientes(s) CONSULTA(M) (vários) médico(s)

3.10.0.9 Passo #2

Criar o MODELO ENTIDADE RELACIONAMENTO (M.E.R.) - Converter SUBSTANTIVO em ENTIDADES; converter ADJETIVOS em ATRIBUTOS e converter VERBOS em RELACIONAMENTOS.

  • ENTIDADES identificadas: HOSPITAIS, PACIENTES, MEDICOS

  • ATRIBUTOS identificados: HOSPITAIS [ nome,cnpj ] ; PACIENTES [ nome, idade, endereco, telefone, cpf] ; MEDICOS [ crm, nome e especialidade] ;

  • RELACIONAMENTOS: [medico-consulta-paciente] ; [medico-receita-paciente]; [hospital-registra-paciente] ; [hospital-POSSUI-medicos]

3.10.0.10 Passo #3

Criar um DIAGRAMA ENTIDADE-RELACIONAMENTO (D.E.R.) com as informações levantadas:


3.10.1 Exercícios

3.10.2 📝 Lista de Exercícios – Modelo Entidade-Relacionamento (MER)

3.10.2.1 Exercício 1 – Cliente e CPF (1:1)

Considere um projeto de Banco de Dados de uma escola. Faça a modelagem utilizando o Modelo Entidade-Relacionamento de Peter Chen (M.E.R.).
Cada Diretor gerencia exatamente uma Escola, e cada Escola só pode estar associada a um único Diretor. Com base nestas informações:
- Identifique entidades, atributos e relacionamento.
- Represente o MER com cardinalidade 1:1.


3.10.2.2 Exercício 2 – Cliente e Pedidos (1:N)

Considere um projeto de Banco de Dados.Faça a modelagem utilizando o Modelo Entidade-Relacionamento de Peter Chen (M.E.R.).
Um Cliente pode fazer vários Pedidos, mas cada Pedido pertence a apenas um Cliente.
- Liste as entidades e atributos.
- Defina o relacionamento e a cardinalidade.
- Monte o DER.


3.10.2.3 Exercício 3 – Alunos e Disciplinas (N:M)

Considere um projeto de Banco de Dados.Faça a modelagem utilizando o Modelo Entidade-Relacionamento de Peter Chen (M.E.R.).
Um Aluno pode se matricular em várias Disciplinas, e cada Disciplina pode ter vários Alunos.
- Identifique entidades e atributos. - Qual entidade associativa deve ser criada? - Desenhe o DER com a entidade associativa.


3.10.2.4 Exercício 4 – Funcionário e Dependentes (Entidade Fraca)

Considere um projeto de Banco de Dados. Faça a modelagem utilizando o Modelo Entidade-Relacionamento de Peter Chen (M.E.R.).
Cada Funcionário pode ter vários Dependentes. Um Dependente não existe sem um Funcionário.
- Identifique a entidade forte e a entidade fraca.
- Defina atributos e chaves.
- Monte o DER indicando a dependência existencial.


3.10.2.5 Exercício 5 – Pedido e Itens de Pedido (Entidade Associativa + Fraca)

Considere um projeto de Banco de Dados.Faça a modelagem utilizando o Modelo Entidade-Relacionamento de Peter Chen (M.E.R.).
Um Pedido contém vários Itens, mas cada Item está sempre vinculado a apenas um Pedido.
- Qual entidade é dominante e qual é subordinada?
- Identifique atributos das duas entidades.
- Represente o DER com cardinalidade 1:N.


3.10.2.6 Exercício 6 – Médicos e Consultas (1:N)

Considere um projeto de Banco de Dados.Faça a modelagem utilizando o Modelo Entidade-Relacionamento de Peter Chen (M.E.R.).
Um Médico pode realizar várias Consultas, mas cada Consulta está associada a apenas um Médico.
- Identifique entidades e atributos.
- Desenhe o DER.
- Indique as cardinalidades.


3.10.2.7 Exercício 7 – Professor e Departamento (1:1)

Considere um projeto de Banco de Dados.Faça a modelagem utilizando o Modelo Entidade-Relacionamento de Peter Chen (M.E.R.).
Cada Professor dirige apenas um Departamento, e cada Departamento tem apenas um Professor responsável.
- Identifique entidades, atributos e relacionamento.
- Defina cardinalidade 1:1 no DER.


3.10.2.8 Exercício 8 – Livros e Autores (N:M)

Considere um projeto de Banco de Dados.Faça a modelagem utilizando o Modelo Entidade-Relacionamento de Peter Chen (M.E.R.).
Um Livro pode ter vários Autores, e cada Autor pode escrever vários Livros.
- Identifique as entidades e atributos.
- Qual entidade associativa deve ser criada?
- Monte o DER em notação conceitual.


3.10.2.9 Exercício 9 – Biblioteca (Entidades Fortes e Fracas)

Considere um projeto de Banco de Dados.Faça a modelagem utilizando o Modelo Entidade-Relacionamento de Peter Chen (M.E.R.).
Um Livro pode ter vários Exemplares. Um Exemplar só existe se estiver associado a um Livro.
- Identifique entidades fortes e fracas.
- Defina atributos (Livro: título, ano; Exemplar: código_exemplar, status).
- Monte o DER com a dependência existencial.


3.10.2.10 Exercício 10 – Empresa, Funcionário e Projeto (Misto 1:N e N:M)

Considere um projeto de Banco de Dados.Faça a modelagem utilizando o Modelo Entidade-Relacionamento de Peter Chen (M.E.R.).
- Uma Empresa possui vários Funcionários.
- Cada Funcionário pode participar de vários Projetos, e cada Projeto pode ter vários Funcionários.
- Identifique todas as entidades, atributos e relacionamentos.
- Determine cardinalidades corretas (Empresa–Funcionário 1:N, Funcionário–Projeto N:M).
- Crie o DER completo.


3.10.2.11 Tarefas propostas para cada exercício:

  1. Identificar entidades e atributos.
  2. Definir relacionamentos.
  3. Especificar cardinalidades.
  4. Indicar entidades fortes e fracas (quando houver).
  5. Representar graficamente o DER.

3.10.3 Respostas dos Exercícios:

3.10.3.1 Exercício #1


3.10.3.2 Exercício #2

3.10.3.2.1 Exercício 2 - SQL referênte ao diagrama anterior

3.10.3.3 Exercício #3

3.10.3.3.1 Exercício 3 - SQL referênte ao diagrama anterior

3.10.3.4 Exercício #4

3.10.3.4.1 Exercício 4 - SQL referênte ao diagrama anterior

3.10.3.5 Exercício #5

3.10.3.5.1 Exercício 5 - SQL referênte ao diagrama anterior

3.10.3.6 Exercício #6

3.10.3.6.1 Exercício 6 - SQL referênte ao diagrama anterior

3.10.3.7 Exercício #7

3.10.3.7.1 Exercício 7 - SQL referênte ao diagrama anterior

3.10.3.8 Exercício #8

3.10.3.8.1 Exercício 8 - SQL referênte ao diagrama anterior

3.10.3.9 Exercício #9

3.10.3.9.1 Exercício 9 - SQL referênte ao diagrama anterior

3.10.3.10 Exercício #10

3.10.3.10.1 Exercício 10 - SQL referênte ao diagrama anterior