Você está na página 1de 21

29/10/2020

Modelação e Bases de Dados

O Modelo Conceitual
Valéria Pequeno

Modelação de Bases de Dados


A modelação é a principal etapa
no projeto de desenvolvimento
de uma BD
• Relembre:
• Uma base de dados é um conjunto de dados devidamente
relacionados, os quais representam algum aspecto do mundo real

• Para que a base de dados represente as necessidades do


utilizador, sejam eficientes e coerentes, precisamos fazer a
modelação dos dados que serão armazenados nesta base de
dados
• Objetivo da modelação:
• Transmitir e mostrar uma representação única e resumida dos
dados de uma aplicação

1
29/10/2020

Fases do Projeto de
Desenvolvimento de uma BD
• Faz-se entrevistas com o utilizador
REQUISITOS a fim de perceber o que este deseja
• Criação da documentação do
projeto

CONCEITUAL • Criação do modelo conceitual (ER)

• Criação do modelo lógico (MR -


LÓGICO mais detalhes, mais técnico)

• Criação do modelo físico (detalhes


FÍSICO sobre armazenamento, segurança
dos dados, etc.)

O Nível Conceitual
• Nesta fase é criado o esquema conceitual:
• Esquema inicial da base de dados

• É uma descrição de alto nível de toda a base de dados

• Preocupa-se em descrever quais dados serão armazenados e


como se relacionam

• Fornece uma visão mais próxima do modo como o utilizador


visualiza os dados

• Criado usando um modelo de dados de alto nível de abstração:


• Modelo entidade-relacionamento (entidade-associação)

• Oculta os detalhes das estruturas de armazenamento físico

2
29/10/2020

Ferramentas para Modelação de


Dados Nesta disciplina usaremos
apenas este tipo de
• Ferramentas de desenhos de diagramas ferramentas!
• Apenas faz o desenho do modelo
• Exemplo: gliffy, draw.io
• Ferramentas Case
• Além da modelação gráfica, possui várias funcionalidades tais
como controle de versões
• Exemplo: Erwin data modeler
• Outros:
• Ferramentas integradas em SGBDs: SQL Server Management
Studio
• Ambientes de desenvolvimento integrado: Visual Studio

Modelo Entidade-Relacionamento
(MER)
• Consiste em uma coleção de objetos básicos chamados de
entidades e de relacionamentos/relação entre as entidades
• Entidade:
• Representação abstrata de um objeto do mundo real sobre o
qual desejamos guardar informações
• Algo do mundo real (objeto) com existência independente
• Exemplo:
• um cliente
• um fornecedor
• um aluno
• Um carro
• Um curso universitário
• Também conhecida como instância (embora não muito usual)

3
29/10/2020

Modelo Entidade-
Relacionamento (MER)
ENTIDADE
possui possui

UM VALOR PARA
ATRIBUTOS
CADA ATRIBUTO

• João Silva
e1 • 22 anos
• Engenheiro civil

entidade e1 empregado e seus atributos

Modelo Entidade-Relacionamento
(MER)
• Conjunto de Entidades
• Consiste de um conjunto de entidades do mesmo tipo, ou seja,
que partilham as mesmas características (propriedades)
• Exemplo:

• Conjunto de alunos

• Conjunto de clientes

• Conjunto de fornecedores

• Conjunto de equipas de futebol

4
29/10/2020

Modelo Entidade-Relacionamento
(MER)
• Atributo de uma entidade (atributo)
• Informações que desejamos guardar sobre uma entidade
• Propriedades descritivas que todas as instâncias do conjunto de
entidades devem possuir
• Representa uma característica intrínseca da entidade
• Exemplo:
• Nome do aluno Características de
• Data de nascimento do aluno
atributos
• Número do aluno
Características de
• código da disciplina
• Nome da disciplina atributos

• Representação no MER:
atributos
Conjunto de
• ALUNO(nomeAluno,dt_nascimento,numeroAluno)
entidades

Modelo Entidade-Relacionamento
(MER)
• Relacionamento:
• Representa a associação entre entidades contidas em conjunto
de entidade distintos
• Relação matemática, onde:
• Dado E1, E2, …, En sendo conjuntos de entidades
• Um relação é {(e1, …, en) | e1 Î E1, e2 Î E2, …, en Î En}
• Exemplo:

• Pedro está matriculado em Base de Dados

Representação
no MER

• ESTA_MATRICULADO(ALUNO,DISCIPLINA)

5
29/10/2020

Modelo Entidade-Relacionamento
(MER)
• Exemplo com entidades Conjunto de entidades
Atributo
Alunos Disciplinas
Entidade
1001 João A BDA
1002 Clara B IP
1003 Ana C PP
1004 Jorge D POO
1005 Paulo F SO

relacionamento
• ESTA_MATRICULADO(ALUNO,DISCIPLINA):
• (João,BDA)
• (Clara,BDA)
• (Jorge,IP) (Jorge,PP)

Modelo Entidade-Relacionamento
(MER)
• Atributo de um relacionamento
• Quando um atributo é associado a um relacionamento
• Característica que faz mais sentido está na associação entre dois
conjuntos de entidades do que em um conjunto de entidades
• Exemplo: Representação
no MER
• João está matriculado em BDA no ano lectivo 2016/2017

• ESTA_MATRICULADO(ALUNO,DISCIPLINA,anoLetivo)
• Repare que:
• anoLetivo não é uma característica de Aluno nem de Disciplina

• anoLetivo diz respeito ao ano em que o aluno inscreveu-se na disciplina

6
29/10/2020

Modelo Entidade-Relacionamento
(MER)
• Chave de um conjunto de entidades:
• Conhecida simplesmente por chave
• Subconjunto (não vazio) dos atributos de um conjunto de
entidades que unicamente identificam cada entidade deste
conjunto
• Pode ser formada por um único atributo (mais usual)
• Exemplo:
• Chave de ALUNO: numeroAluno

O número do aluno unicamente identifica um aluno


Não existem dois alunos com o mesmo número!
• Representação no MER:
• ALUNO(numeroAluno,nome,dt_nascimento)

O sublinhado identifica a chave

Modelo Entidade-
Relacionamento (MER)
• Entidade fraca:
• Quando não existe um subconjunto de atributos de um conjunto
de entidades que unicamente identifica cada entidade

• É necessário examinar características de outro conjunto de


entidades (chamada entidade identificadora) para poder
unicamente identificar entidades de uma entidade fraca

• Normalmente possui uma chave parcial, a qual é o conjunto de


atributos que unicamente identifica as instâncias das entidades
fraca perante a entidade identificadora

7
29/10/2020

Modelo Entidade-
Relacionamento (MER) Representação no MER:
• Entidade fraca: • Conjunto de entidades sem
• Exemplo: qualquer atributo sublinhado.
• Também é usado o tracejado
DEPENDENTE(nome,data_nascimento) para indicar a chave parcial
EMPREGADO(nome,bi,data_nascimento,salario)

DEPENDE_DE(DEPENDENTE,EMPREGADO)

• Entidade Fraca: DEPENDENTE

• Entidade Identificadora: EMPREGADO

• Relacionamento Identificador: DEPENDENTE_DE

• Chave parcial: nome (do dependente)

Exercício 1*
Identifique os conjuntos de entidades, os relacionamentos e crie
alguns atributos para os conjuntos de entidades e
relacionamentos
1. Um aluno realiza vários trabalhos. Um trabalho é realizado
por um ou mais alunos.
2. Um diretor dirige no máximo um departamento. Um
departamento tem no máximo um diretor.
3. Um autor escreve vários livros. Um livro pode ser escrito por
vários autores.
4. Uma equipa é composta por vários jogadores. Um jogador
joga apenas em uma equipa.
5. Um cliente realiza várias encomendas. Uma encomenda diz
respeito apenas a um cliente.
* Fonte: Vitor Valerio de Souza Campos

8
29/10/2020

MER: Tipos de Atributos


• Atributo simples ou atómico:
• Seu valor é indivisível
• Exemplo: BI, data_de_nascimento, telefone
• Atributo composto:
• Pode ser dividido em atributos simples, com valores independentes
• Exemplo: Endereço(morada, cidade, codigo_postal)
• Valor único ou monovalorado:
• Só pode ter um valor para cada entidade
• Exemplo: sexo, BI
• Multi-valor ou multivalorado:
• Pode tomar um ou mais valores para cada entidade
• Exemplo: grau_academico à licenciado, mestre, doutor
• telefone à fixo, telemóvel, trabalho

MER: Tipos de Atributos (cont)


• Atributo derivados (também chamado calculado):
• Seu conteúdo pode ser criado a partir do valor de outros atributos

• Exemplo: idade pode ser criada a partir da data de nascimento

• Atributo Nulo (NULL):


• Quando o atributo não é aplicável

• Exemplo: o atributo grau_academico só tem valor para aqueles que


tem curso superior

• O valor NULO pode também ser usado em outros contextos, como


por exemplo quando o valor do atributo é desconhecido

9
29/10/2020

MER - Convenções
• Conjunto de entidades
• Nomes no singular com todas as letras em maiúsculas
• Atributos
• Nomes no singular ou plural com a primeira letra de cada palavra
em maiúscula
• Relacionamentos
• Verbos (ou nomes) com todas as letras em maiúsculas
• Devem fazer sentido aos serem lidos da esquerda para a direita

Esta notação é muito importante quando modelamos usando o


MER para distinguir, por exemplo, o conjunto de entidades dos
atributos de um relacionamento

MER: BD Empresa
• Uma determinada empresa está organizada por
departamentos.
departamentos
• A cada departamento está associado um nome único único, um
único um empregado que é o gerente e a data em
número único,
que este começou a gerir o departamento
• Um departamento pode ter várias localizações
• Para os empregados é necessário guardar o nome (próprio e
família), número do BI, endereço, salário, sexo, data de
de família)
nascimento e o correspondente supervisor Conjunto entidades:
letras maiúsculas
Conjunto de entidades:
DEPARTAMENTO(Nome, Num, {Localização})
EMPREGADO(Nome(Próprio,Família),BI,End,Salario,
Sexo,DataNasc)

10
29/10/2020

MER: BD Empresa
• Uma determinada empresa está organizada por
departamentos.
• A cada departamento está associado um nome únicoúnico, um
único um empregado que é o gerente e a data em
número único,
que este começou a gerir o departamento
• Um departamento pode ter várias localizações
• Para os empregados é necessário guardar o nome (próprio e
família), número do BI, endereço, salário, sexo, data de
de família)
nascimento e o correspondente supervisor Atributos entre
parêntesis
Conjunto de entidades:
DEPARTAMENTO(Nome, Num, {Localização})
EMPREGADO(Nome(Próprio,Família),BI,End,Salario,
Sexo,DataNasc)

MER: BD Empresa
• Uma determinada empresa está organizada por
departamentos.
• A cada departamento está associado um nome único, um
número único, um empregado que é o gerente e a data em
que este começou a gerir o departamento
• Um departamento pode ter várias localizações
• Para os empregados é necessário guardar o nome (próprio e
de família), número do BI, endereço, salário, sexo, data de
nascimento e o correspondente supervisor Chave sublinhada

Conjunto de entidades:
DEPARTAMENTO(Nome, Num, {Localização})
EMPREGADO(Nome(Próprio,Família),BI,End,Salario,
Sexo,DataNasc)

11
29/10/2020

MER: BD Empresa
• Uma determinada empresa está organizada por
departamentos.
• A cada departamento está associado um nome único, um
número único, um empregado que é o gerente e a data em
que este começou a gerir o departamento
• Um departamento pode ter várias localizações
• Para os empregados é necessário guardar o nome (próprio e
de família), número do BI, endereço, salário, sexo, data de
nascimento e o correspondente supervisor Atributos
multivalorados entre { }
Conjunto de entidades:
DEPARTAMENTO(Nome, Num, {Localização})
EMPREGADO(Nome(Próprio,Família),BI,End,Salario,
Sexo,DataNasc)

MER: BD Empresa
• Uma determinada empresa está organizada por
departamentos.
departamentos
• A cada departamento está associado um nome único, um
número único, um empregado que é o gerente e a data em
que este começou a gerir o departamento
• Um departamento pode ter várias localizações
• Para os empregados é necessário guardar o nome (próprio e
de família), número do BI, endereço, salário, sexo, data de
nascimento e o correspondente supervisor Relacionamentos:
letras maiúsculas

Relacionmentos:
DIRIGE(EMPREGADO,DEPARTAMENTO,data)
SUPERVISIONA(EMPREGADO,EMPREGADO)

12
29/10/2020

MER: BD Empresa
• Uma determinada empresa está organizada por
departamentos.
departamentos
• A cada departamento está associado um nome único, um
número único, um empregado que é o gerente e a data em
que este começou a gerir o departamento
• Um departamento pode ter várias localizações
• Para os empregados é necessário guardar o nome (próprio e
de família), número do BI, endereço, salário, sexo, data de
nascimento e o correspondente supervisor Conjuntos de entidades
dentro dos ( ) e listadas no
Relacionmentos: início
DIRIGE(EMPREGADO,DEPARTAMENTO,Data)
SUPERVISIONA(EMPREGADO,EMPREGADO)

MER: BD Empresa
• Uma determinada empresa está organizada por
departamentos.
• A cada departamento está associado um nome único, um
número único, um empregado que é o gerente e a data em
que este começou a gerir o departamento
• Um departamento pode ter várias localizações
• Para os empregados é necessário guardar o nome (próprio e
de família), número do BI, endereço, salário, sexo, data de
nascimento e o correspondente supervisor Atributos do
relacionamento dentro dos
Relacionmentos: ( ) e listados no fim
DIRIGE(EMPREGADO,DEPARTAMENTO,Data)
SUPERVISIONA(EMPREGADO,EMPREGADO)

13
29/10/2020

MER: BD Empresa
• Cada departamento controla um determinado número de
projectos.
• Cada projeto tem um nome único, um número único e uma
localização única

Conjunto de entidades:
PROJETO(Nome,Num,Localização)

Relacionamentos:
CONTROLA(DEPARTAMENTO,PROJETO)

MER: BD Empresa
• Cada empregado pertence a um único departamento,
mas pode trabalhar em vários projectos, que não são
necessariamente controlados pelo mesmo departamento
• Para cada projeto é necessário tomar nota do número de
horas por semana que cada empregado nele trabalha.

Relacionamentos:
TRABALHA_PARA(EMPREGADO,DEPARTAMENTO)
TRABALHA_EM(EMPREGADO,PROJETO, Horas)
CONTROLA(DEPARTAMENTO,PROJETO)

14
29/10/2020

MER: BD Empresa
• Para efeitos de seguro é necessário conhecer os
dependentes de cada empregado,ou seja, o nome, sexo
sexo,
data de nascimento e grau de parentesco
parentesco.

Conjunto de entidades:
DEPENDENTE(Nome, Sexo, DataNasc, Parentesco)
DEPENDE_DE(DEPENDENTE,EMPREGADO)

Problema de Modelação 1
• Um berçário deseja informatizar suas operações.
• Quando um bebê nasce, algumas informações sobre o bebé
são armazenadas: nome, data do nascimento, peso do
nascimento, altura, a mãe deste bebê e o médico que fez seu
parto.
• Para as mães, o berçário também deseja guardar informações
tais como: nome, endereço, telefone e data de nascimento.
• Para os médicos, é importante saber: número de identificação
do médico, nome, telefone móvel e especialidade.
• Exercício:
• Liste os conjuntos de entidades encontradas
• Liste os relacionamento encontrados
• Faça o MER que representa as informações que o berçário deseja
guardar

15
29/10/2020

Problema de Modelação 2:
• Uma floricultura deseja informatizar suas operações.
Inicialmente, guarda informações de todos os seus clientes,
nomeadamente: BI; nome, telefone e endereço.
• Deseja também guardar informações sobre os produtos que
vende, tais como: nome do produto, tipo (flor, vaso, planta,...),
preço unitário e quantidade em estoque.
• Quando um cliente faz uma compra, a mesma é armazenada,
mantendo informação sobre o cliente que fez a compra, a
quantidade de produtos comprados, e os produtos
comprados. de cada produto comprado
• Exercício:
• Liste os conjuntos de entidades encontradas
• Liste os relacionamento encontrados
• Faça o MER que representa as informações que a floricultura
deseja guardar

Problema de Modelação 3
• Uma escola tem várias turmas. Uma turma tem vários
professores, sendo que um professor pode ministrar aulas em
mais de uma turma.
• Uma turma tem sempre aulas na mesma sala, mas uma sala
pode estar associada a várias turmas (com horários
diferentes).

• Exercício:
• Liste os conjuntos de entidades encontradas
• Liste os relacionamentos encontrados
• Faça o MER que representa as informações que a escola deseja
guardar

16
29/10/2020

Problema de Modelação 4
• Uma biblioteca deseja manter informações sobre seus livros.
• Inicialmente, quer armazenar para os livros as seguintes
características: ISBN, título, ano editora e autores deste livro.
• Para os autores, deseja manter: nome e nacionalidade.
• Cabe salientar que um autor pode ter vários livros, assim
como um livro pode ser escrito por vários autores.
• Cada livro da biblioteca pertence a uma categoria. A biblioteca
deseja guardar informações sobre todas as categorias
existentes,nomeadamente:código da categoria e descrição.
Uma categoria pode ter vários livros associados a ela.
• Exercício:
• Liste os conjuntos de entidades encontradas
• Liste os relacionamentos encontrados
• Faça o MER que representa as informações que a biblioteca
deseja guardar

MER: Grau de um
Relacionamento
• Indica o número de conjuntos de entidades que estão
envolvidos em um relacionamento
• Binário:
• Quando o relacionamento envolve apenas dois conjuntos de
entidades
• Exemplo:
• INSCRITO(ALUNO,DISCIPLINA,anoLetivo)
• SUPERVISIONA(EMPREGADO,DEPARTAMENTO,anoInicio,anoFim)
• Auro-relacionamento é um tipo de relacionamento binário que
envolve um mesmo conjunto entidade
• Exemplo:
• É_GERENTE(EMPREGADO,EMPREGADO)

17
29/10/2020

MER: Grau de um
Relacionamento (cont.)
• Ternário:
• Quando o relacionamento envolve três conjuntos de entidades

• Exemplo:
• PARTO(MÃE,BEBÊ,MÉDICO,data,hora)

• Existem relacionamentos com grau 4, 5, etc. mas são mais


raros

MER: Cardinalidade
• Representa o número de entidades que pode estar associada
em um relacionamento
• Relacionamento um para um (1:1)
• Exemplos:
• O João é casado com a Maria
• O departamento RH tem um gerente
• Relacionamento um para muitos (1:N)
• Exemplo:
• João trabalha no departamento pessoal
• Relacionamento muitos para muitos (M:N)
• Exemplo:
• João está matriculado em Base de Dados

18
29/10/2020

MER: BD Empresa
• Conjuntos de entidades:
• DEPARTAMENTO(Nome,Num,{Localização}
• PROJETO(Nome, Num, Localização)
• EMPREGADO(Nome(Próprio, Família), BI, Endereço, Salário, Sexo,
DataNasc)
• DEPENDENTE(Nome, Sexo, DataNasc, Parentesco)
• Relacionamentos:
DIRIGE(EMPREGADO,DEPARTAMENTO, Data) 1:1
CONTROLA(DEPARTAMENTO,PROJETO) 1:N
SUPERVISIONA(EMPREGADO,EMPREGADO) 1:N
TRABALHA_PARA(EMPREGADO,DEPARTAMENTO) N:1
TRABALHA_EM(EMPREGADO,PROJETO,Horas) M:N
DEPENDE_DE(DEPENDENTE,EMPREGADO) N:1

Exercício 2*
Crie um MER para cada uma das situações abaixo, indicando a
cardinalidade em cada caso.
1. Um aluno realiza vários trabalhos. Um trabalho é realizado
por um ou mais alunos.
2. Um diretor dirige no máximo um departamento. Um
departamento tem no máximo um diretor.
3. Um autor escreve vários livros. Um livro pode ser escrito por
vários autores.
4. Uma equipa é composta por vários jogadores. Um jogador
joga apenas em uma equipa.
5. Um cliente realiza várias encomendas. Uma encomenda diz
respeito apenas a um cliente.

* Fonte: Vitor Valerio de Souza Campos

19
29/10/2020

MER: Restrições de Participação


• Especifica se a existência de cada entidade de um conjunto de
entidades depende ou não de outras entidades presentes no
relacionamento
• Total (dependência existencial):
• Quando todas as entidades de um conjunto de entidades estão
relacionadas com as outras entidades participantes no
relacionamento
• Exemplo: Todo empregado trabalha em um departamento
• Parcial:
• Quando não se espera que todas as entidades participem no
relacionamento
• Exemplo: empregado gerencia departamento
(nem todo empregado é um gerente, só alguns)

Exemplo:
• Na BD Empresa, identificamos as seguintes restrições de
participação nos relacionamentos:

DIRIGE(EMPREGADO,DEPARTAMENTO, Data) Parcial/total


CONTROLA(DEPARTAMENTO,PROJETO) Parcial/total
SUPERVISIONA(EMPREGADO,EMPREGADO) Parcial/parcial
TRABALHA_PARA(EMPREGADO,DEPARTAMENTO) Total/total
TRABALHA_EM(EMPREGADO,PROJETO,Horas) Total/total
DEPENDE_DE(DEPENDENTE,EMPREGADO) Total/parcial

20
29/10/2020

Exercício 3
• Identifique o grau, a cardinalidade e as restrições de
participação dos relacionamentos encontrados em:
• Problema de Modelação 1 (berçário)
• Problema de Modelação 2 (floricultura)
• Problema de Modelação 3 (escola)
• Problema de Modelação 4 (biblioteca)

Referências
• Exercícios retirados de apresentações disponíveis na Internet:
• https://www.dcc.fc.up.pt/~ricroc/aulas/1011/bd/apontamentos/
parteII.pdf
• http://barter.bligoo.com.br/media/users/41/2066323/files/7186
87/Lista_de_exercicios_Resolvido_01_-_MC_-_6_folhas.pdf

• Fundamentos de Bases de Dados, cap. 3


• Feliz Gouveia, FCA

21

Você também pode gostar