UNIVERSIDADE LUSÓFONA DE CABO VERDE

Curso: Emgenharia Informática Disciplina: Base de Dados Docente: Estanislau Lima

Lista de exercicio 3 BD – Modelos de Dados E-R
Para cada uma das situações abaixo, construa um Diagrama de Entidades e Relações que descreva a informação e faz a representação do Modelo Relacional de cada uma das (E-R).

1.Uma transportadora aérea pretende implementar uma base de dados com a seguinte informação: • A transportadora tem vários aviões. Cada avião tem, para além da matrícula, um nome, a marca do avião, o número de lugares, e indicação da sua autonomia. • Na transportadora trabalham vários pilotos. • Cada avião faz vários voos. Cada voo deve ter, pelo menos, a indicação da data e hora em que se efectua, dos locais de partida e de destino. • Cada voo de um dado avião é pilotado por um piloto.

2. Uma fábrica pretende implementar uma base de dados para gerir os "stocks" dos seus armazéns, as encomendas,e as vendas. Para tornar o problema menos extenso, não vamos aqui considerar a parte relativa às vendas. Háassim que ter em conta que: • A empresa comercializa vários produtos, cada um dos quais com um código, um nome, e um preço. Emcada momento a empresa deve ainda saber qual a quantidade existente no armazém de cada um dos produtos. • Uma encomenda, que deve ter um número de encomenda e a data em que foi feita, pode ter vários produtos, mas diz respeito apenas a um fornecedor.

• De cada fornecedor a empresa deseja guardar a informação do seu nome, número de contribuinte, morada, forma de pagamento, prazo de pagamento, e um código interno de tipo de fornecedor.

3. Um 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.

4. Uma 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.

5. Um 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.

6.Pretende-se desenvolver uma base de dados para armazenar informação duma 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, a sua classificação; • 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

OBS: Se necessário faça uso das ferramentas de modelação (VISIO, UML,…) SQL… Crie uma base de dados Universidade com as tabelas a seguir: Alunos (RA, nome, endereço, cidade) Disciplinas (COD_DISC, nome_disc, carga_hor) Professores (COD_PROF, nome, endereço, cidade) Turma (COD_DISC, COD_TURMA, COD_PROF, ANO, horário) Histórico (RA, COD_DISC, COD_TURMA, COD_PROF, ANO, freqüência, nota) Após criar esta tabelas, e incluir alguns dados nestas, poderemos “brincar” e testar todos os comando que aprendemos nos artigos anteirores 1. Encontre o RA dos alunos com nota em BD em 2010 menor que 5 (obs: BD = código da disciplinas). 2. Forneça o RA, nome e nota dos alunos com nota menor que 5 em BD em 2010. 3. Forneça o nome dos professores de BD em 2010. 4. Encontre o nome, endereço, cidade dos alunos e código das disciplinas onde os alunos tiveram nota menor que 5 em 2010. 5. Obtenha o nome e RA dos alunos do professor em 2010. 6. Localize o nome e RA dos alunos do professor JOSÉ em 2010 ou 2009 que tiveram aulas com o professor MARCOS em algum ano. 7. Forneça o histórico escolar do aluno de nome Alex, ou seja, seu RA, nome, a lista de disciplinas que ele já cursou contendo o código e nome da disciplina, freqüência e nota e ano que o aluno a cursou. 8. Encontre o nome e endereço dos alunos e professores de Campinas. 9. Forneça o nome dos alunos que cursaram disciplinas com carga horária menor que 60 horas, bem como os respectivos professores que as lecionaram.

10. Localize o nome dos professores que lecionaram matérias nas quais o aluno “Pedro Paulo Cunha” foi reprovado. (nota < 5) 11. Encontre o RA dos alunos que já cursaram todas as disciplinas lecionadas pelo prof.João. 12. Encontre o Ra, nome e média das notas dos alunos que cursaram todas as matérias lecionadas por professores de Campinas. 13. Localize o RA e nome dos alunos com nota menor que qualquer uma das notas do aluno de RA 20090121. 15. Encontre o nome dos alunos que não cursaram nenhuma disciplina oferecida em 2010. 16. Forneça o nome dos professores que somente lecionaram matérias com carga horária foi inferior a 60 horas. Exercícios de Álgebra Relacional e Consultas

1) Dada modelo relacional a seguir para uma escola, responda as perguntas abaixo:

ALUNO (matricula, nome, curso, nivel, idade) TURMA (nr_turma, nometurma, sala, horario) MATRÍCULA (matricula, nr_turma, nota_1, nota_2, nota_3, nota_final, nr_faltas)

· Quais os nomes de todos os alunos ? · Quais os números das matrículas dos alunos ? · Quais os números das matrículas dos alunos que não estão matriculados em uma turma ? · Quais os números dos alunos matriculados em uma turma de número ‘30’ ? · Qual o horário da turma do aluno ‘JOSÉ’ ? · Quais os nomes dos alunos matriculados em uma turma de número ‘30’ ? · Quais os nomes dos alunos que não estão matriculados na turma de número ‘30’? · Quais os nomes das turmas com alunos com nota final maior que 8 ?

2) Modelo relacional para vendas:

VENDEDOR (nrvendedor, nomevendedor, idade, salario) PEDIDO (nr_pedido, nrvendedor, nrcliente, quantidade_itens, valor_total) CLIENTE (nrcliente, cidade, tipo)

· Quais os nomes de todos os vendedores ? · Quais os números dos vendedores que realizaram algum pedido ? · Quais os números dos vendedores que não realizaram pedidos ? · Quais os nomes dos vendedores que realizaram pedido para clientes do tipo “INDÚSTRIA” ? · Qual o tipo do cliente que foram atendidos (realizaram pedido) com o vendedor “JOÃO” ? · Quais os nomes e tipods dos clientes com pedidos acima de 5000 reais?

3) Modelo relacional para empregados e departamentos:

EMPREGADO (idtemp, nomeemp, aniversario, enderecoemp, sexoemp,salarioemp, nrdep) DEPARTAMENTO (nrdep, nomedep, idtgerente, horario) LOCALIZAÇÃO (localizacao , nrdep) TRABALHA_EM (idtemp, nrprojeto, horas) PROJETO (nrproj, nomeproj, nrdep) DEPENDENTE (iddepende, idtempregado, nomedep, sexodep, aniversariodep,parentesco)

· Recuperar o nome e o endereço de todos os empregados que trabalham para o Departamento de Compras. · Para cada projeto localizado no ‘Rio de Janeiro’, exibir o número do projeto, o número do departamento que o controla e a identidade de seu gerente, seu endereço e a data de seu aniversário. · Descobrir os nomes dos projetos onde trabalham empregados com o nome ‘João’. · Listar os nomes dos empregados que não têm dependentes.