[email protected], © 2009 SQL 3 UNIVERSIDADE DA BEIRA INTERIOR Departamento de Informática Bases de Dados I LEI/2 Aluno NumAluno Nome 12425 António Carlos 13181 Rita Campos 13829 Joana Almeida Curso CodCurso Naturalidade 123 Covilhã 76 Porto 22 Lisboa Disciplina CodCurso Créditos Descrição 22 145 Engenharia Química 76 160 Matemática 123 154 Português 651 132 Medicina Inscrição CodDisciplina CodCurso Ano Créditos Descrição 1 22 1 3 Álgebra 2 76 2 4 Química 3 651 1 2 Gestão Médica 4 123 3 5 Análise NumAluno 12425 12425 13829 13829 Ano 2003 2004 2003 2004 CodDisciplina 1 4 2 4 Classificação NumAluno CodDisciplina 12425 11 13829 21 12425 77 13829 12 Ano 2003 2004 2003 2001 Nota 14 8 12 11 As tabelas acima transpostas dizem respeito à base de dados utilizada pelos Serviços Académicos da Universidade da Beira Interior para registar as classificações dos alunos. Cada aluno pertence exclusivamente a um curso e, para simplificar a situação, supõe-se que não é permitida a transferência de alunos entre cursos. Cada disciplina leccionada a um determinado curso tem obviamente um código diferente, apesar de disciplinas com códigos diferentes corresponderem na prática à mesma disciplina. (2820, 3313, 1466 são códigos respeitantes à disciplina de “Bases de Dados I”, de diferentes cursos) Cada disciplina possui um valor de “créditos” associado, sendo este valor atribuído ao aluno após ter efectuado uma prova com classificação final igual ou superior a 10 valores. Mais uma vez, para efeitos de simplificação, supõe-se que não 1 de 4 existe a possibilidade de executar exames para melhoria de nota, ou seja, para cada disciplina, o aluno apenas pode ter uma nota positiva. 1- Crie o respectivo modelo Entidade / Relacionamento, indicando a cardinalidade e obrigatoriedade de cada relação existente. 2- Com base no esquema de relações acima transcrito, efectue a respectiva passagem para o modelo físico da base de dados pretendida, especificando todas as restrições que achar convenientes. 3- Implemente blocos de SQL que permitam seleccionar a informação pretendida: a. Listagem dos alunos do curso com código igual a “7” b. Listagem dos alunos de “Engenharia Química” c. Listagem dos alunos inscritos à disciplina com código igual a “71” no ano de 2004. d. Listagem das disciplinas pertencentes ao curso de “Física Óptica”, ordenadas pelo ano lectivo a que pertencem e. Listagem das disciplinas que não têm alunos inscritos em 2004. f. Listagem das disciplinas (Código + Descrição) com mais de 40 alunos inscritos. g. Listagem dos alunos inscritos a “Bases de Dados I” h. Listagem da descrição das disciplinas com mais que 100 alunos inscritos. i. Nome e valor total de créditos do aluno com número igual a “12345”. j. Listagem dos alunos que ainda não foram aprovados a “Análise Matemática”. k. Listagem dos alunos que, tendo efectuado pelo menos uma prova, não foram aprovados a “Análise Matemática”. l. Total de alunos aprovados à disciplina com código “123” no ano lectivo de 2003. m. Total de alunos inscritos à disciplina com código “123” no ano lectivo de 2004. n. Total de alunos que, estando inscritos, não realizaram nenhuma prova à disciplina com código “1454” durante o ano lectivo de 2003. o. Total de alunos que não realizaram nenhuma prova às disciplinas em que se encontravam inscritos no ano lectivo de 2003. p. Listagem com a descrição e total de alunos inscritos no ano de 2004. Esta deve estar ordenada decrescentemente pelo número total de alunos. q. Supondo que a média de um aluno é dada simplesmente pela média aritmética das suas classificações positivas, pretende-se listar o número e média do aluno com número “12345”. r. Listagem dos alunos que nunca obtiveram nenhuma classificação negativa. s. Listagem dos alunos que já terminaram o curso e nunca tiveram nenhuma classificação negativa. t. Listagem ordenada dos alunos do curso de “Gestão”, ordenados pela sua classificação média actual. 2 de 4 u. Listagem dos alunos que já terminaram a licenciatura (total de créditos maior ou igual que o valor previsto na tabela “Curso”). Esta listagem deve estar ordenada pelo número de aluno. v. Listagem das disciplinas que aumentaram o número de alunos em 2004. (Disciplinas para as quais existiram mais novos alunos inscritos em 2004 que aprovados em 2003) w. Listagem dos cursos com menos que 20 alunos actuais (não terminaram o curso) x. Classificação média dos alunos à disciplina de “Análise Matemática” durante o ano lectivo de 2003. y. Listagem das disciplinas e respectiva classificação média durante o ano lectivo de 2003. Esta deve estar ordenada pela classificação média. 4- Imagine que as restrições explicitadas no texto introdutório (impossibilidade de mudar de curso ou efectuar melhorias de classificação) não existiam. Proponha as alterações ao modelo descrito por forma a permitir registar e consultar qualquer item mencionado na questão anterior. Elabore o correspondente diagrama Entidade / Relacionamento. 5- Considere o seguinte esquema de relações: Departamento(CodDepartamento, Nome, Piso, CodChefe) Empregado(Codigo,Nome, Salario, CodSuperior, Departmento) Venda(Departmento, CodProducto, Data, Quantidade) Produto(CodProduto, Descricao, Valor) a. Implemente blocos SQL para responder a cada uma das seguintes questões: 1. Quais os empregados que trabalham no departamento “Sapatos”? 2. Quais os empregados que ganham mais de 2000 EUR? 3. Quais os empregados do departamento de “Senhora” que ganham mais que 200 EUR? 4. Quais os empregados que trabalham no segundo piso? 5. Quais os empregados que ganham mais que o seu patrão? 6. Quais os empregados que são chefes de um departamento mas não têm ningúem directamente a seu cargo? 7. Quais os empregados que ganham mais que o chefe do departamento de “Jardinagem”? 3 de 4 8. Quais os empregados que trabalham em departamentos que efectuaram alguma venda inferior a 100 EUR? 9. Quais os empregados que ganham mais que o melhor pago do departamento “Homem”? 10. Que produtos forma vendidos no terceiro piso? 11. Que produtos nunca foram vendidos? 12. Que produtos fora vendidos em todos os pisos? 13. Que produtos foram vendidos em pelo menos dois departamentos? 14. Que produtos nunca foram vendidos no segundo piso? 15. Que produtos foram vendidos por todos os departamentos? 16. Que produtos foram vendidos por todos os departamentos do segundo piso? 17. Que produtos forma vendidos exclusivamente pelo departamento de “Criança”? 18. Em que departamentos todos os empregados ganham menos que o respectivo chefe? 19. Em que departamentos os empregados ganham menos que o chefe pior remunerado da empresa? 20. Que produtos forma vendidos exclusivamente no segundo piso? 21. Qual a soma dos salários dos empregados que trabalham no segundo piso? 22. Qual a soma dos salários dos empregados que trabalham em departamentos com menos de 10 empregados? 4 de 4