Nome: Número: INSTITUTO SUPERIOR TÉCNICO DEPARTAMENTO DE ENGENHARIA INFORMÁTICA Bases de Dados 1º Teste (LEIC Tagus) Não se esqueçam de identificar todas as folhas! 10 de Novembro de 2002 – 8H30 Duração: 1H30 Grupo 1 - Modelos ER e Relacional (7 valores) 1. Considere o domínio do problema proposto na 1ª série de problemas e algumas extensões. Pretende-se guardar informação sobre os alunos, docentes, licenciaturas, departamentos e licenciaturas do IST. Os alunos são identicados pelo número de aluno, tem um nome e uma data de nascimento. Cada disciplina é identificada unívocamente por um código de disciplina e tem associado um nome, o programa e o número de créditos (ex: Bases de Dados no Tagus Park tem o código ‘IV’, o programa “XXXX” e 5 créditos). Um aluno inscreve-se na ocorrência de uma disciplina para um ano lectivo e um semestre (ex: Bases de Dados no 1º semestre de 2003/04). Podem existir várias inscrições para o mesmo aluno, mas cada aluno não se pode inscrever na mesma disciplina no mesmo semestre e ano lectivo (obviamente!). Cada disciplina pertence a uma licenciatura e asume-se que cada licenciatura é da responsabilidade de um departamento (ex: Bases de Dados é uma disciplina da LEIC do DEI). Cada licenciatura tem um identificador e um nome e cada departamento tem um identificador e um nome. A oferta de uma disciplina num determinado ano lectivo e semestre é da responsabilidade de um docente que tem que ser professor. Uma ocorrência de disciplina pode ter associados outros docentes (ex: professores, assistentes, monitores) que asseguram as aulas práticas e/ou laboratório. Pretende-se saber, para cada oferta de disciplina, qual o responsável e o resto do corpo docente associado. Uma licenciatura tem um coordenador de licenciatura que é um professor. Cada departamento tem um presidente que é um professor catedrático. Qualquer docente é identificado pelo seu número mecanográfico, tem um nome e pertence a um departamento. 1 Nome: Número: O corpo docente de uma disciplina de uma licenciatura tem que pertencer ao mesmo departamento a que pertence a licenciatura. Na mesma ordem de ideias, o presidente de cada departamento tem que pertencer a esse departamento, bem como os coordenadores das licenciaturas desse departamento. Obtenha o diagrama ER para este problema. Tente modelizar o maior conhecimento possível usando as primitivas do ER. Escreva em texto todo o conhecimento que não conseguiu captar no modelo ER obtido. 2. Considere o seguinte esquema ER que modeliza informação sobre as equipas do EURO2004. Assuma que cada equipa se pode identificar univocamente de duas maneiras alternativas: i) pelo código da equipa dentro do grupo, e ii) pela sua nacionalidade. perte nce Grupo Equipa id pertence códigoEquipa pontos Nacionalidade País a) O esquema ER em cima representa todo o conhecimento que se pretende? Justifique. b) Obtenha o esquema relacional correspondente. Não se esqueça de especificar quais as chaves primárias e estrangeiras. Indique, se existirem as restrições de integridade que não estão expressas no esquema relacional obtido. Grupo 1 - Resposta 2 Nome: Número: Grupo 1 - Resposta 3 Nome: Número: Grupo 2 – Álgebra Relacional e SQL (6 valores) Considere o seguinte esquema relacional: Factura (nFact, nProd, data, comprador, vendedor) Produto (nProd, nome, preço, categoria) 1. Escreva uma interrogação em álgebra relacional que retorne o conjunto de electrodomésticos (produtos cuja categoria é “electrodomésticos”) que não foram vendidos pelo José Santos. A resposta deve ser uma relação com uma única coluna com os nomes dos produtos. 2. Escreva uma vista SQL que retorne todos os produtos que custam mais do que o preço médio de um electrodoméstico. A vista tem uma única coluna. 3. Escreva uma interrogação SQL que retorne o número total de vendas por categoria, mas só para as datas em que o número de vendas excedeu o número de vendas em 12/02/2003. Por exemplo, retorna o total de vendas de electrodomésticos para 1/03/2003 se e só se o número de elctrodomésticos vendidos nesse dia foi superior ao número de electrodomésticos vendidos em 12/2/2003. A resposta é uma relação com três colunas: categoria, data e número total de produtos vendidos. 4. Diga como pode garantir e escreva em SQL, que: a) O preço de cada produto é um valor real não negativo. b) As categorias possíveis para cada produto pertencem a um conjunto enumerado. Exemplifique. Grupo 2 - Resposta 4 Nome: Número: Grupo 2 - Resposta 5 Nome: Número: Grupo 3 - XML (3 valores) Considere os seguintes dados sob o formato relacional: Id Duração Título Compositor Maestro 3 1:01 Mad Rush J. Sibelius L. Bernstein 4 1:47 Andante L. Beethoven NULL 5 1:57 Upon Enchanted Ground A. Hovhaness NULL Id 13 55 56 57 Pai 3 5 5 5 Cantor A. Karis Y. Kondonassis F. Hendrickx H. Coryn Escreva o documento XML obras.xml obtido depois de exportar os dados relacionais acima para a seguinte DTD: <!ELEMENT obras (peça*)> <!ELEMENT peça (duração, título, compositor, maestro?, cantor*> <!ELEMENT duração (#PCDATA)> <!ELEMENT título (#PCDATA)> <!ELEMENT compositor (#PCDATA)> <!ELEMENT maestro (#PCDATA)> <!ELEMENT cantor (#PCDATA)> <!ATTLIST peça id ID REQUIRED> 6 Nome: Número: Grupo 3 - Resposta 7 Nome: Número: Grupo 4 – Organização de ficheiros e Índices (4 valores) 1. Diga qual a melhor organização de ficheiros para cada um dos seguintes tipos de interrogações frequentes: a) Procura de registos baseada num intervalo de valores. b) Inserções e pesquisas onde a ordem dos registos não interessa. c) Procura de um registo baseada no valor de um dado campo. 2. Qual a diferença entre um índice clustered e um índice unclustered. Dê um exemplo de cada. 8 Nome: Número: Grupo 4 - Resposta 9