Mais Exercícios de Normalização e Modelo Entidade-Relação (Por ordem crescente de dificuldade)

Os exercícios que se seguem são para os meus alunos dos cursos da ATEC – Academia de Formação e ISEP (Instituto Superior de Engenharia do Porto).

Esboce o modelo E-R e de dados dos seguintes exercícios:

Empresa de Táxi

taxiConsidere uma empresa de táxi, onde os motoristas são contratados.

Cada motorista pode dirigir vários carros e um carro pode ser dirigido por vários motoristas. No entanto, no mesmo dia, um motorista pode conduzir apenas um carro, devendo ser registado no sistema os quilómetros percorridos naquele dia. De cada motorista é necessário armazenar um código, nome, morada e os seus telefones. Dos carros é necessário armazenar a matricula, a marca, o modelo, a cor, e o ano de construção.


Empresa de Turismo

VW TUma empresa de turismo realiza viagem para diversos lugares de Portugal utilizando carrinhas e autocarros. A empresa possui diversos motoristas, sobre os quais é necessário armazenar um código, nome e o telefone. Os motoristas podem realizar várias viagens e em cada viagem será utilizado um veículo. Quando uma viagem é marcada é necessário registrar a origem (de onde o veículo vai sair), o destino (para onde o veículo vai), a data de saída, a data de chegada, a hora de saída e a hora de chegada. Além disso, é necessário saber quantos quilômetros o veículo percorreu na viagem. A quilometragem é obtida subtraindo a quilometragem do veículo antes da viagem e após a viagem. Sobre o veículo, é necessário armazenar a marca, a quantidade de lugares que ele possui, a matrícula e o ano. Um veículo pode realizar várias viagens.


Empresa de Produtos de Limpeza

LimpezaUma empresa vende produtos de limpeza deseja controlar melhor os produtos que vende aos seus clientes. Cada produto é caracterizado por um código, nome, categoria (ex. detergente, sabonete, etc.), e o preço. A categoria é uma classificação criada pela própria empresa. A empresa possui informações sobre todos os seus clientes. Cada cliente é identificado por um código (interno à firma), o seu nome, morada, telefone e status (“bom”, “razoável”, “mau”). Cada venda possui um número (único) e uma data. Esta pode envolver vários produtos, e para cada produto, indica-se a quantidade deste pedida.


Clube

health-clubUm clube deseja manter informações sobre seus sócios. Cada sócio possui um número de matrícula (único), nome, morada e telefone. Os sócios podem participar em acontecimentos como actividades (aulas de ginástica, tênis, natação, etc.) e eventos realizados pelo clube (festa, bingos, etc.). As atividades são identificadas por um código e é desejável que se armazene também o nome da actividade. Cada evento também é identificado por um código e é necessário saber o assunto do evento e a data de realização.


Sistema de Controlo Bancário

millenniumUm banco é formado por várias sucursais. Uma sucursal possui uma morada e um código identificador. As sucursais possuem contas que podem ser corrente ou conta poupança. Todas as contas possuem um número e um valor inicial de depósito.

As contas são de propriedade de clientes. Os clientes possuem nome, NIF e uma morada. Os clientes podem realizar depósitos e levantamentos. Para cada uma das movimentações realizadas pelo cliente na conta é necessário informar a data e hora, bem como o valor movimentado.


Recursos Humanos

Uma empresa de Recursos Humanos deseja elaborar um sistema de currículos online.

Para isso é necessário possuir registos das pessoas que procuram emprego. Para as pessoas é necessário armazenar o nome, NIF, morada, telefone e idade. É importante armazenar também as formações que a pessoa possui. Para isso deve ser informado o nome da escola / universidade, o ano de conclusão, o grau obtido (nível de 1 a 8, pela U.E.) e o nome do curso realizado.

Também é necessário armazenar a experiência profissional que a pessoa tem, ou seja, os locais (empresas) que ela já trabalhou, o cargo que ela assumiu na empresa, a data de início do emprego e a data que ela deixou de trabalhar para essa mesma empresa.


 Conferência

conferenciaUm grupo de docentes pretende organizar uma conferência e, para guardar toda a informação relevante, vai ter que criar uma base de dados.

Na conferência são apresentados vários artigos, cada um dos quais com um título e um número. Cada artigo tem um ou mais autores. De cada autor, pretende armazenar-se para além do nome, o endereço de email, e o nome e morada da instituição a que estão associados.

Há ainda a informação relativa aos participantes na conferência. De cada a participante deverá ser retida a informação do seu nome, morada e endereço de email. Além disso, distingue-se entre os participantes que são estudantes e os que não são. Cada participante não estudante tem de pagar antecipadamente a inscrição por transferência bancária, pelo que é necessário guardar o número da transação. Para não pagar, o estudante tem de enviar antecipadamente um certificado e na base de dados deve ser armazenado o nome da universidade que o passou.

Nota: Considere que instituição e universidade são a mesma entidade.


Clinica Médica

clinica-medicaUma clínica médica pretende informatizar os seus serviços. Para já querem começar por informatizar os dados referentes a médicos, a clientes (ou pacientes) e a consultas.

Na clínica trabalham vários médicos, de várias especialidades diferentes. De cada médico, identificado internamente por um número de empregado, a clínica pretende armazenar o nome, especialidade, morada e telefone.

Como é usual, os médicos dão consultas a clientes. A clínica pretende ter sempre disponível a informação dos nomes e moradas dos seus clientes.

A cada consulta está associado um só médico e um só cliente. Actualmente as consultas são numeradas para cada um dos médicos, ou seja para cada médico há uma consulta 1, uma consulta 2, etc. Para a clínica é importante manter este sistema de identificação das consultas, por forma a poderem ser introduzidos dados relativos ao tempo em que a clínica ainda não estava informatizada. Da consulta pretende armazenar-se a data em que ocorreu, bem como os vários fármacos que foram receitados pelo médico na consulta.


Imobiliária

ImobiliáriaUm empresa de compra e vende de imóveis pretende informatizar os seus serviços.

A empresa tem vários casas para venda, cada uma das quais pertencente a um cliente da empresa. Da casa a empresa quer ter disponível a zona de localização, o número de assoalhadas, o preço e o ano de construção. Dos clientes deve ser armazenado o seu nome, morada e nº de telefone. Um mesmo cliente pode ter várias casas para venda na empresa. Claro está que, nesses casos, não se quer repetir a informação da morada e nº de telefone do cliente.

Há ainda os clientes da empresa que, em vez de quererem vender casas, querem comprar. Desses deve ser armazenado, para além da informação que se guarda dos outros clientes, a informação acerca dos interesses do cliente. Dos interesses fazem parte o nº de assoalhadas e zona de localização da casa que pretendem comprar. Um cliente pode ter interesse por vários tipos de casas diferentes.

De cada casa que esteja para venda na empresa, deve ainda ser armazenada a informação de que clientes já a visitaram, e quando.


Biblioteca 2

BibliotecaPretende-se desenvolver uma base de dados para armazenar informação de uma biblioteca. Tal base de dados deverá conter pelo menos informação referente a:

  • todos os títulos existentes na biblioteca incluindo, de cada um deles, o ISBN (que é um código atribuído a nível internacional e que identifica univocamente um livro), o nome, o ou os autores, a editora, os descritores do livro (temas), a sua classificação (relevância em relação aos temas);
  • as localizações (e.g. o nº da prateleira) onde se devem encontram os vários livros (ou exemplares) de cada um dos títulos;
  • as informação relevantes sobre as editoras (como nome, telefone, morada, fax, etc);
  • os leitores da biblioteca, cada um dos quais com um nº de leitor. Dos leitores, a biblioteca pretende ainda ter mais alguma informação disponível, como o nome, morada, etc;
  • a biblioteca pretende, como é natural, ter disponível a informação de que leitores têm que livros requisitados.

Notas: Os descritores dos livros são como “palavras-chave” que dão indicações sobre os temas abordados pelos livros. Para uniformizar, os descritores não são livres, mas escolhidos de entre uma lista de possíveis descritores, sendo cada um deles identificado por um código.


Hospital Veterinário

VeterinárioCada cliente pode possuir um ou vários animais em tratamento. Para cada cliente é necessário armazenar um código, o nome, morada, telefone, etc. Para cada animal é necessário armazenar um código, o nome, a raça e a idade. Cada animal pode estar a sofrer de uma ou várias doenças. Essas doenças são catalogadas com um código único e um nome.

Um animal pode realizar vários tratamentos e um tratamento é de apenas um animal.

Em cada tratamento podem ser tratadas várias doenças, lembrando que podem existir vários tratamentos de animais diferentes para a mesma doença. Os veterinários são os responsáveis por realizar os tratamentos e cada tratamento é realizado por um único veterinário. Sobre os veterinários é necessário armazenar o nome, numero de licença, telefone e morada. Cada tratamento possui uma data de início.


Hospital 3

Num hospital existem vários funcionários. Sobre estes funcionários deseja-se manter o nome, o NIF e o telefone. Os funcionários podem ser médicos, enfermeiros e secretários. Para os médicos deve-se armazenar a especialidade médica, para os enfermeiros a especialidade de enfermagem, e para secretários o nível de escolaridade. Um médico pode realizar várias consultas, em determinada data e hora, cada uma com um paciente. Um paciente pode ser atendido por vários médicos em várias consultas diferentes. Em cada consulta o médico pode solicitar exames e prescrever medicamentos. Os exames possuem nome e o valor de referência (valor desejável) e os medicamentos possuem nome, princípio activo e uma descrição. Defina outros os atributos que achar necessário.


Empresa 2

EmpresaUma empresa é organizada em departamentos e cada departamento tem um nome e um funcionário que o coordena. Pretende-se guardar a data na qual o funcionário começou a coordenar o departamento.

Um departamento controla um número de projetos, os quais possuem número, nome e um único local.

Um funcionário é caracterizado por um número, nome, sexo e salário. Ele está associado a um departamento, mas pode trabalhar em vários projetos que não necessariamente controlados pelo mesmo departamento. Deseja-se guardar o número de horas que um empregado trabalha num projeto e qual o seu supervisor direto (do funcionário para aquele projecto – pode ser qualquer outro funcionário da empresa, podendo não ser o coordenador do departamento).

Cada funcionário possui dependentes caracterizados por nome, data de nascimento e grau de parentesco.


Biblioteca 3

bibliotecaUma biblioteca armazena um conjunto de livros, de diversas categorias.

Conforme as suas categorias, os livros estão dispostos em estantes apropriadas. Um livro tem vários exemplares. São mantidos dados detalhados sobre autores e editoras dos livros para fins de consulta. Na biblioteca trabalham vários bibliotecários.

Cada bibliotecária é responsável por organizar periodicamente sempre o mesmo conjunto de estantes (correspondendo a uma ou mais categorias) e realizar empréstimos (requisições) de exemplares para clientes.

Essas requisições devem conter a data da devolução e o valor diário da multa, permanecendo na aplicação até o cliente entregar o exemplar. O bibliotecário que realizou o empréstimo também é relevante de ser mantido no registo. Alguns bibliotecários são estagiários. Um bibliotecário estagiário está sempre sob a responsabilidade de um bibliotecário efectivo (monitor). Deve-se saber também a instituição de ensino da qual o estagiário vem.

Nota: Não se pretende armazenar a localização dos livros na estante. Apenas a que categoria pertencem.


Academia desportiva

Academia desportivaUma academia deseja informatizar os treinos dos atletas (clientes). Cada cliente da academia precisa ser registado. Para isso são informados o nome, NIF, sexo, peso e altura, com esses dados o peso ideal do cliente e seu IMC são calculados. Existem vários instrutores na academia. Estes são responsáveis por informar e explicar como o exercício deve ser realizado pelo cliente. Os instrutores também são inseridos no sistema, com os atributos nome e morada. Os instrutores elaboram um treino mensal para cada aluno. Um treino possui um objetivo é composto por uma série de exercícios físicos que o cliente deve realizar durante um mês. Cada exercício do treino deve ser realizado utilizando um equipamento (esteira, bicicleta, alteres, barra, mesa flexora, etc.), todo exercício do treino tem um tempo de duração ou número de repetições e uma carga (peso). Um professor treina vários alunos por mês, um treino é de um único aluno e um aluno pode realizar vários treinos, um a cada mês. Todos os equipamentos da academia são registados. Para isso é informado o nome do equipamento, a data de aquisição e o estado de conservação. Existe na academia uma relação de todos os exercícios físicos possíveis de ser realizados. Neste registo de exercício existe o nome do exercício, a região muscular que ele exercita.


Escola

EscolaUma escola pretende automatizar suas avaliações realizando-as por meio de computador. Para isso é necessário criar um sistema que armazene as provas, perguntas e respostas dos alunos. Uma prova apenas pode ser de uma disciplina e uma disciplina pode possuir várias provas. Todas as provas possuem uma data de aplicação e várias questões. Uma questão é de uma disciplina específica e pode ser repetida em várias provas. Uma questão possui um código, um objetivo avaliativo e o texto da pergunta. Todas as questões são do tipo de escolha múltipla. Uma questão pode possui várias alternativas, sendo que as alternativas são apenas para uma questão. As alternativas possuem o texto da resposta, para fins de correção é necessário saber se a(s) alternativa(s) é(/são) correta(s) para a questão. Os alunos é identificado pelo número e nome. Os alunos respondem as questões seleccionando uma das alternativas. Um aluno pode realizar várias provas e uma prova pode ser realizada por vários alunos.