Você está na página 1de 15

EXERCÍCIOS PRÁTICOS BASE DE DADOS

Dos exercícios que se seguem:


a) Listar as entidades e seus atributos
b) Listar os relacionamentos entre as entidades
c) Criar o Diagrama de Entidades e Relacionamentos.

1. Um aluno realiza vários trabalhos. Um trabalho é realizado por um ou mais alunos.

2. Um director dirige no máximo um departamento. Um departamento tem no máximo um


director.

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.

6. 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).

7. Um hospital, com um conjunto de pacientes e um conjunto de médicos. A consulta só pode ser


realizada por um único médico e possuir um único paciente. Na mesma consulta podem ser
prescritos medicamentos ou solicitado algum tipo de exames. O médico possui um CRM (que
é único para cada médico), nome, telefone e e-mail. O paciente deve informar o CPF, nome,
endereço, telefone e nome do plano de saúde. A consulta deve ser marcada numa determinada
data e o tipo (se é consulta ou retorno).

8. Elaborar um diagrama E-R para uma seguradora de automóveis

TLP | Base de Dados | Professor Eng.º Sungo Afonso | Email: afsungo@gmail.com 1


Entidades: Cliente, Apólice, Carro e Acidentes.

Requisitos:
a) Um cliente pode ter várias apólices (no mínimo uma);
b) Cada apólice somente dá cobertura a um carro;
c) Um carro pode ter zero ou n registros de acidentes a ele.

Atributos:

a) Cliente: Número, Nome e Endereço;


b) Apólice: Número e Valor;
c) Carro: Registro e Marca;
d) Acidente: Data, Hora e Local;

9. Numa Indústria, temos:

Entidades: Peças, Depósitos, Fornecedor, Projeto, Funcionário e Departamento.

Requisitos:

a) Cada Funcionário pode estar alocado a somente um Departamento;


b) Cada Funcionário pode pertencer a mais de um Projeto;
c) Um projeto pode utilizar-se de vários Fornecedores e de várias Peças;
d) Uma Peça pode ser fornecida por vários Fornecedores e atender a vários Projetos;
e) Um Fornecedor pode atender a vários Projetos e fornecer várias Peças;
f) Um Depósito pode conter várias Peças;
g) Deseja-se ter um controle do material utilizado por cada Projeto, identificando
inclusive o seu Fornecedor. Gravar as informações de data de Início e Horas
Trabalhadas no Projeto.

Atributos:

a) Peças: Número, Peso e Cor;


b) Depósito: Número e Endereço;
c) Fornecedor: Número e Endereço;
d) Projeto: Número e Orçamento;
e) Funcionário: Número, Salário e Telefone;
f) Departamento: Número e Setor.

10. Numa escola, um aluno está inscrito em um único curso e esse curso possui uma ou várias
disciplinas. Cada disciplina pertence a um determinado departamento. Um curso não pode
estar vazio, isto é, deve possuir alguma disciplina em seu currículo. Um aluno, mesmo que

TLP | Base de Dados | Professor Eng.º Sungo Afonso | Email: afsungo@gmail.com 2


não inscrito em nenhum curso, deve permanecer por algum tempo no banco de dados. Uma
disciplina pode ser pré-requisito de outras disciplinas.

11. Projetar um Banco de Dados satisfazendo as seguintes restrições e requisitos:

a) Para um Vendedor, armazenar seu código, nome, endereço e comissão;


b) Para um Cliente, armazenar o seu código, nome, endereço, faturamento acumulado
e limite de crédito. Além disso, armazenar o código e o nome do vendedor que o
atende. Um vendedor pode atender muitos clientes, porém um cliente deve ser
atendido por exatamente um vendedor;
c) Para uma peça, armazenar seu código, descrição, preço quantidade em estoque e o
número do armazém onde a peça está estocada. Uma peça somente pode estar
estocada num único armazém. Para um armazém, armazenar seu código e endereço;
d) Para um pedido, armazenar seu número, data, código, nome e endereço do cliente,
que fez o pedido e o código do vendedor para cálculo da comissão. Além disso,
para cada item do pedido armazenar o código da peça, quantidade e preço cotado.
Há somente um cliente por pedido e um vendedor;
e) O preço cotado no pedido pode ser mesmo que o preço corrente no arquivo de
peças, mas não necessariamente.

12. 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 manter um cadastro de todas as
categorias existentes, com informações como: código da categoria e descrição. Uma
categoria pode ter vários livros associados a ela.

13. Uma floricultura deseja informatizar suas operações. Inicialmente, deseja manter um
cadastro de todos os seus clientes, mantendo informações como: nif, nome, telefone e
endereço. Deseja também manter um cadastro contendo informações sobre os produtos que
vende, tais como: nome do produto, tipo (flor, vaso, planta,...), preço e quantidade em
estoque. Quando um cliente faz uma compra, a mesma é armazenada, mantendo
informação sobre o cliente que fez a compra, a data da compra, o valor total e os produtos
comprados.

14. Uma firma vende produtos de limpeza, e deseja melhor controlar os produtos que vende,
seus clientes e os pedidos. Cada produto é caracterizado por um código, nome do produto,

TLP | Base de Dados | Professor Eng.º Sungo Afonso | Email: afsungo@gmail.com 3


categoria (ex. detergente, sabão em pó, sabonete, etc), e seu preço. A categoria é uma
classificação criada pela própria firma. A firma possui informações sobre todos seus
clientes. Cada cliente é identificado por um código, nome, endereço, telefone, status
("bom", "médio", "ruim"), e o seu limite de crédito. Guarda-se igualmente a informação
dos pedidos feitos pelos clientes. Cada pedido possui um número e guarda-se a data de
elaboração do pedido. Cada pedido pode envolver de um a vários produtos, e para cada
produto, indica-se a quantidade deste pedida.

15. A companhia discográfica AlunosDoIMPAL decidiu criar uma base de dados com
informação sobre os seus músicos bem como outra informação da companhia. A
informação dada ao desenhador foi a seguinte:
• Cada músico tem um nro. de BI, um nome, uma morada e um número de telefone.
Os músicos em início de carreira muitas vezes partilham um endereço e além disso
assume-se que cada endereço só tem um telefone.
• Cada instrumento usado nos estúdios tem um nome (ex. guitarra, bateria, etc.) e um
código interno.
• Cada disco gravado na companhia tem um título, uma data, um formato (ex. CD,
MC, K7), e um identificador do disco.
• Cada música gravada na companhia tem um título e um autor.
• Cada músico pode tocar vários instrumentos, e cada instrumento pode ser tocado
por vários músicos.
• Cada disco tem um certo número de músicas, mas cada música só pode aparecer
num disco.
• Cada música pode ter a participação de vários músicos, e cada músico pode
participar em várias músicas.
• Cada disco tem um músico que é o seu produtor. Os músicos podem produzir vários
discos.

TLP | Base de Dados | Professor Eng.º Sungo Afonso | Email: afsungo@gmail.com 4


EXERCICIOS RESOLVIDOS

16. Uma empresa de transportes chamada TIR Lda. é responsável pela distribuição de pacotes
(encomendas) dos armazéns para a rede de lojas da companhia Lojas Lda. Existem vários
armazéns e várias lojas. Cada camião pode transportar vários pacotes numa mesma viagem,
e entregar pacotes a diferentes lojas. Cada armazém tem um número de armazém, e a sua
localização, decomposta em cidade, rua e número. As lojas têm a mesma informação. Os
camiões são de um determinado tipo, e têm um número de camião, matrícula e quilómetros.
Os tipos de camiões têm diferentes capacidades de transporte, quer em volume, quer em
peso. Cada viagem inicia-se com um carregamento num armazém. Cada viagem é
composta de tapas, de uma loja a outra loja. Cada viagem tem um número de viagem e uma
data de partida. A uma viagem está associado um camião. Cada etapa tem um número de
etapa a que corresponde na respetiva viagem. Cada pacote tem um número de pacote e
informação sobre o seu volume e o seu peso, e a data limite para entrega. Os pacotes
destinam-se a lojas.

Pretende-se uma base de dados para ser usada por TIR Lda. e Lojas Lda., que mantenha
informação acerca da utilização dos camiões e dos pacotes e que sirva para programar as
viagens dos camiões de forma a garantir entregas atempadas às lojas.

Solução

Entidades

• ARMAZEM (Numero, Localizacao(Cidade, Rua, Numero))


• LOJA(Numero, Localizacao(Cidade, Rua, Numero))
• VIAGEM (Numero, DataPartida)
• PACOTE (Numero, DataLimite, Peso, Volume)
• CAMIAO (Numero,Matricula,km)
• TIPO (NomeTipo, Capacidade(Volume, Peso))
• ETAPA (Numero)

TLP | Base de Dados | Professor Eng.º Sungo Afonso | Email: afsungo@gmail.com 5


Relações

Cardinalidade Participação

TERMINA (LOJA, ETAPA) 1:N parcial:total

COMPOE (ETAPA, VIAGEM) N:1 total:total

INICIOU-SE (VIAGEM, ARMAZEM) N:1 total:parcial

ENTREGA (ETAPA, PACOTE) 1:N total:parcial

EFECTUA(CAMIAO,VIAGEM) 1:N parcial:total

TEM (CAMIAO, TIPO) N:1 total:parcial

Diagrama ER

TLP | Base de Dados | Professor Eng.º Sungo Afonso | Email: afsungo@gmail.com 6


17. Um grupo de alunos da Faculdade de Ciências costuma reunir-se no Piolho para jogar
cartas. Pretendem agora levar os jogos mais a sério e criar uma base de dados de suporte.
A base de dados deve guardar informação relativa aos alunos que fazem parte desse grupo,
como sejam o seu código de aluno, o nome, a morada (decomposta em localidade, rua e
número), a data de nascimento, o curso que frequenta e o número de jogos em que
participou. A base de dados deve guardar também informação relativa a cada tipo de jogo
(Sueca, King, etc), nomeadamente as cartas utilizadas em cada tipo de jogo e se é um jogo
de pares ou individual. Os pontos atribuídos a cada carta em cada tipo de jogo também
devem ser guardados (note que no King o rei de copas vale 160 no jogo do rei de copas,
20 na parte das copas e 30 nos reis e valetes; i.e. as cartas podem ter diferentes pontos no
mesmo tipo de jogo). Os pontos totais para o tipo de jogo também devem estar disponíveis.
Cada jogo efectuado deve ficar registado, registando-se a data, os participantes e o tipo de
jogo. Se for um jogo de pares deve ficar registado quem faz par com quem. Os jogos são
compostos por partidas. A base de dados deve registar as cartas distribuídas a cada jogador
em cada partida. Finalmente, a base de dados deve também registar as cartas jogadas por
cada jogador na respectiva ordem em cada partida.

Solução

TLP | Base de Dados | Professor Eng.º Sungo Afonso | Email: afsungo@gmail.com 7


Entidades

• ALUNO (CodAluno, Nome, DataNasc, Morada(Localidade, Rua, Numero))


• JOGADOR (Codigo)
• CARTA (Face, Naipe)
• JOGO (Num, Hora)
• PARTIDA (Num, Data)
• TIPOJOGO (Nome, Pares)

Relações

Cardinalidade Participação
PARTICIPA (ALUNO, JOGADOR) 1:N parcial:total
JOGA (JOGADOR, CARTA) N:M parcial:parcial
ENTRA (JOGADOR, JOGO) (1,1):(2,N) total:total
COMPOSTO (JOGO, PARTIDA) N:1 total:parcial
TEM(PARTIDA,TIPOJOGO) N:1 total:parcial
UTILIZADA (CARTA,TIPOJOGO) N:M parcial:total

TLP | Base de Dados | Professor Eng.º Sungo Afonso | Email: afsungo@gmail.com 8


18. A FIA, Federação Internacional de Automobilismo, pretende construir uma base de dados
para guardar informação sobre os seus campeonatos de Fórmula 1. A base de dados deve
guardar informação relativa aos campeonatos, como sejam o ano a que diz respeito, o nome
do director, a equipa campeã e o piloto campeão. Um campeonato é composto por provas
que se disputam em circuitos. Cada prova tem um nome, um país e uma data. Um circuito
tem um nome, uma localização (composto por País, Cidade, Rua, Número e Código
Postal), um comprimento em quilómetros e um tempo recorde de volta mais rápida. Deve
ficar igualmente guardada informação relativa aos pilotos, como sejam o seu nome, o
número de federação, a data de nascimento e a melhor classificação já obtida no final de

TLP | Base de Dados | Professor Eng.º Sungo Afonso | Email: afsungo@gmail.com 9


um campeonato. Adicionalmente, a informação das equipas a que cada piloto vai
pertencendo ao longo dos campeonatos também deve ficar registada (pretende-se apenas
guardar a data de entrada na equipa). Deve ficar ainda registada a composição da grelha de
partida de cada prova, assim como a classificação final.

Solução

Entidades

• CAMPEONATO (Ano, Director)


• PROVA (Data, Nome, País)
• CIRCUITO (Nome,Localizacao(País,Cidade, Rua, Número, CodPostal), Comprimento,
TempoRecorde)
• PILOTO (NumFed, Nome, DataNasc)
• EQUIPA(Nome)
• RESULTADO( Volta, Lugar,Pontos)

Relações

Cardinalidade Participação

CONSTITUÍDO POR (CAMPEONATO,


N:1 total:total
PROVA)

DISPUTADA (PROVA, CIRCUITO) 1:N total:parcial

CLASSIFICAÇÃO (CAMPEONATO,
N:N total:parcial
PILOTO,Lugar)

PERTENCE (PILOTO, EQUIPA,


N:N total:total
{DataEntrada})

CORRE(PILOTO,PROVA,RESULTADO) (0,N):(1,N):(1,1)

TLP | Base de Dados | Professor Eng.º Sungo Afonso | Email: afsungo@gmail.com 10


Diagrama ER

19. Um grande hipermercado pretende criar uma base de dados sobre as compras efectuadas
pelos seus clientes. O HiperMercado tem lojas físicas e uma loja virtual. Pretende-se
modelar uma BD que sirva para ambos os tipos de loja. Os clientes podem fazer o
registo online ou através de um cartão para uso nas lojas físicas. A base de dados deve ter
informação relativa aos clientes como seja o nome, morada (decomposta em localidade,
rua e número), data de nascimento, sexo e número de BI. No registo online pede-se também
um nome de utilizador e palavra passe para acesso à loja virtual.
Note-se que o mesmo cliente pode ter um registo online e um cartão.

Também deve possuir informação relativa aos produtos, como a descrição do produto e a
marca. Nem todos os produtos estão disponíveis online. A quantidade disponível de cada
produto deve ser mantida. Deve ser possível saber qual o stock disponível. Os produtos
vão tendo preços diferentes ao longo do tempo e esses diferentes preços devem ficar
registados na base de dados. A indicação de que um produto possui um preço de promoção
também é importante ficar registada. Os produtos pertencem a diferentes secções. Cada
secção tem um nome e pode ter sub-secções. As secções podem ser virtuais (estar
disponíveis online) ou não. Os produtos poderão estar em mais do que uma secção. A base
de dados deve registar cada ida ao hipermercado dos clientes (virtual ou não), guardando

TLP | Base de Dados | Professor Eng.º Sungo Afonso | Email: afsungo@gmail.com 11


(além dos produtos comprados) a data da ida e o total gasto em compras. As
compras online podem ser iniciadas num dia mas apenas terminadas noutro. Deve-se
guardar estas informações. Nas compras online a data da entrega escolhida pelo cliente
deve ficar na BD (as entregas são gratuitas).

O empregado que atendeu o cliente (na caixa da loja física ou na entrega do carrinho
virtual) deve ficar registado na BD. Sabendo-se do empregado o seu nome, número
contribuinte, morada (decomposta em localidade, rua e número), sexo e número de BI.

Associado à escolha de cada produto (na compra online) o cliente pode associar um
comentário para facilitar ou indicar algo na selecção dos produtos. A quantidade pretendida
pode ser expressa em peso para além de poder ser expressa em unidades.

O pagamento pode ser efectuado por VISA (guardando-se o número de cartão, a data de
expiração, código de validação e nome), MBNET (sendo relevante o número do
pagamento) e transferência bancária (guardando-se o NIB de origem). O pagamento deve
ser validado antes de se proceder à entrega.

Os clientes poderão criar listas de produtos para facilitar as suas compras online.

Solução

TLP | Base de Dados | Professor Eng.º Sungo Afonso | Email: afsungo@gmail.com 12


Diagrama ER

Diagrama relacional

TLP | Base de Dados | Professor Eng.º Sungo Afonso | Email: afsungo@gmail.com 13


Notas:

• As lojas não são consideradas, sendo que o objectivo era construir uma BD genérica que podesse
ser usada numa loja online ou física.
Caso se pretendesse ter uma BD com conhecimento das compras efectuadas em todas as lojas
dever-se-ia acrescentar a entidade LOJA relacionada com SECCÇÃO, EMPREGADO, CARRINHO do
modo que se apresenta de seguida:

• O atributo Online representa um sim ou não sobre se a entidade é do mundo virtual ou físico.

TLP | Base de Dados | Professor Eng.º Sungo Afonso | Email: afsungo@gmail.com 14


TLP | Base de Dados | Professor Eng.º Sungo Afonso | Email: afsungo@gmail.com 15

Você também pode gostar