ISEL DEETC SSIC EXAME DE 1ª ÉPOCA Semestre de Verão 2004/2005 20 Junho 2005 duração: 2h30m Introdução aos Sistemas de Informação Engenharia Informática e Computadores Ano Lectivo: 2004 / 2005 2º Sem. Docente: Lara Santos _ Notas: O exame é com consulta; Identifique devidamente todas as folhas; Responda às questões directamente no enunciado; Caso pretenda desistir do exame, assinale esse facto escrevendo DESISTO no canto superior desta folha, e rubrique; Caso considere alguma questão ambígua, explique qual foi a interpretação que considerou ao responder; _ Concentração... e... Boa Sorte
1. (3,5 val.) Modelo Entidade Associação Grupo I Modelação (5,5 val.) Construa o Modelo Entidade-Associação de uma base de dados para um Campo de Férias Juvenil, de acordo com os Requisitos de Sistema abaixo apresentados. No campo de férias existem grupos, que são identificados por um nome e caracterizados pela faixa etária a que correspondem, i.e. idade mínima e idade máxima. Cada grupo é constituído por várias equipas. Cada equipa é identificada pelo seu número e pelo grupo a que pertence. Sobre as equipas é ainda necessário saber a sua designação e o número de crianças que a constituem. Uma equipa é composta por várias crianças. As crianças são identificadas por um código atribuído pelo campo e caracterizadas pelo seu nome, idade e telefone de contacto. Uma criança não pode pertencer a mais do que uma equipa. A idade da criança tem que estar compreendida na faixa etária do grupo a que pertence a sua equipa. Existem várias actividades (desportivas e não desportivas) que os grupos irão realizar. As actividades são identificadas por uma referência, e caracterizadas pela sua designação e descrição. No caso das actividades desportivas é ainda necessário indicar o nº de elementos mínimo necessário. Cada grupo pode realizar várias actividades, e é necessário registar a duração de cada actividade nesses grupos. Existem monitores que coordenam as actividades em cada grupo. Os monitores são identificados por um número e caracterizados pelo seu nome, idade e escolaridade. Uma actividade num grupo é coordenada por vários monitores. E um monitor pode coordenar várias actividades, mesmo que em grupos diferentes (ex. Actividade 1 no Grupo 1 é coordenada pelos monitores 1,2,3; a Actividade 1 no Grupo 2 é coordenada pelos monitores 3,4,5). Finalmente importa registar para cada monitor, qual o colega que será o seu conselheiro. Cada monitor tem apenas um e um só conselheiro. Nota: Caso seja necessário deve definir as restrições de integridade necessárias, com excepção das restrições de domínio. 2. 2
2. Modelo Relacional Transformação entre Modelos a. (1 val.) Transformação do Modelo EA para Relacional Construa o Modelo Relacional que deriva do Modelo EA apresentado em seguida: b. (1 val.) Transformação do Modelo Relacional para EA Construa o Modelo EA que corresponde ao modelo Relacional apresentado em seguida: A (a1, a2, A.a1) *A.a1 é NOT NULL B (A.a1, a3) C (A.a1, a4) D (C.A.a1, a5) *a5 é UNIQUE e NOT NULL 3
Grupo II Normalização (3 val) Considere o Esquema Relacional constituído por: R1 (A, B, C, D, E) R2 (E, F, G, H, I, J) 1. (1,5 val.) a. Apresente um conjunto de dependências funcionais tal que o Esquema Relacional apresentado se encontre na 1FN mas não na 2FN. Justifique. b. Considerando a sua resposta à alínea anterior, decomponha o esquema de modo a que se encontre na 2FN. Justifique os passos da decomposição. 2. (1,5 val.) a. Apresente um conjunto de dependências funcionais tal que o Esquema Relacional apresentado se encontre na 2FN mas não na 3FN. Justifique. b. Considerando a sua resposta à alínea anterior, decomponha o esquema de modo a que se encontre na 3FN. Justifique os passos da decomposição. 4
Considere o seguinte Modelo Relacional Grupo III Álgebra Relacional (3 val) Empregado(id, BI, nomee, telefone) Produto(ref, descrição, preço) Loja(nº, nomel, morada) Trabalha(empregado, loja, datacontrato) *1 Vendeu(empregado, loja, produto, quantidade) *2 Notas: *1 empregado = Empregado.id; loja = Loja.nº *2 empregado = Trabalha.empregado; loja = Trabalha.loja; produto = Produto.ref A quantidade é igual ou superior a zero O preço é superior a zero BI é chave candidata de Empregado Todos os atributos são de preenchimento obrigatório. 1. (1 val.) Escreva uma expressão em Álgebra Relacional que permita obter: Os empregados (BI, nome) com data de contrato posterior a 1 Jan 2005, que venderam mais do 100 unidades do Produto P1, na Loja 4 2. (1 val.) Escreva uma expressão em Álgebra Relacional que permita obter: Os produtos (ref, preço) com preço superior a 50 que já foram vendidos em todas as lojas 3. (1 val.) Escreva uma expressão em Álgebra Relacional que permita obter: A loja (nº, nomel, morada) em que trabalham mais empregados 5
Grupo IV SQL/DDL (2,5 val) Considere o Modelo Relacional do Grupo III: 1. (1,5 val.) Escreva as instruções para criação das tabelas Trabalha e Vendeu. Nota: assuma que Empregado.id é do tipo int; Produto.ref é do tipo varchar(15); e Loja.nº é do tipo int 2. (1 val.) Considerando o modelo relacional do Grupo III, e a base de dados vazia, apresente apenas um comando que viole simultaneamente restrições de integridade referencial e restrições de domínio/coluna. Justifique de forma clara. 6
3. Grupo V SQL/DML e Transacções (6 val) Relembre o Modelo Relacional: Empregado(id, BI, nomee, telefone) Produto(ref, descrição, preço) Loja(nº, nomel, morada) Trabalha(empregado, loja, datacontrato) *1 Vendeu(empregado, loja, produto, quantidade) *2 Notas: *1 empregado = Empregado.id; loja = Loja.nº *2 empregado = Trabalha.empregado; loja = Trabalha.loja; produto = Produto.ref A quantidade é igual ou superior a zero O preço é superior a zero BI é chave candidata de Empregado Todos os atributos são de preenchimento obrigatório. 1. Escreva uma (apenas uma por alínea) interrogação SQL que permita obter: a. (1 val. ) Quais os produtos (ref, descrição) vendidos na Loja 4 pelo empregado 143 que nunca foram vendidos na Loja 1 b. (1,5 val. ) Dos empregados que trabalham na Loja 5, quais (BI, nome) os que já venderam um número de produtos acima da média 7
c. (1,5 val) Quais as lojas (nº, nome) que não contrataram nenhum empregado após 1 Janeiro 2005 2. Considere que duas transacções (T1 e T2) estão a ser executadas concorrentemente, com o seguinte cenário de execução: T1 BEGIN TRANSACTION SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED SELECT * FROM Trabalha WHERE empregado=1 T2 BEGIN TRANSACTION SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED DELETE FROM Trabalha WHERE empregado=1 T1 SELECT * FROM Trabalha WHERE empregado=1 INSERT INTO Trabalha VALUES (2,6, 20-06-2005) T2 SELECT * FROM Trabalha T1 ROLLBACK T2 COMMIT 8
a. (2 val.) No cenário acima descrito é definido para T1 e T2 o nível de isolamento READ UNCOMMITTED. Diga, indicando quais a(s) anomalia(s) presentes, se estes níveis de isolamento são adequados. No caso de ter considerado o níveis de isolamento inadequados, indique quais se deveriam considerar, para a resolução da(s) anomalia(s) encontradas em T1 e T2, tendo em conta que se pretende prejudicar o mínimo possível a concorrência. 9