ISEL – DEETC – SSIC EXAME DE 2ª ÉPOCA Semestre de Inverno 2004/2005 1 Fevereiro 2005 – duração: 2h30m Introdução aos Sistemas de Informação Engenharia Informática e Computadores Ano Lectivo: 2004 / 2005 – 1º Sem. Docente: Lara Santos __________________________________________________________________________________ Número do Aluno: __________ Nome do Aluno: ________________________________________ __________________________________________________________________________________ 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 ☺ Introdução aos Sistemas de Informação – Exame 2ª Época – Inverno 2004/2005 – 1 Fevereiro 2005 Número do Aluno: __________ Nome do Aluno: _______________________________________ _________________________________________________________________________________ Grupo I – Modelação (5,5 val.) 1. (3,5 val.) Modelo Entidade Associação Construa o Modelo Entidade-Associação de uma base de dados para uma cadeia de oficinas de automóveis, de acordo com os Requisitos de Sistema abaixo apresentados. As oficinas efectuam arranjos, são identificadas por um código único e caracterizadas por um nome. A cada arranjo está associado um e só um veículo. Sobre esses veículos é necessário conhecer a marca, o modelo e o ano. Os veículos são identificados pela matrícula. Sobre cada arranjo é necessário conhecer o cliente que o pediu, o número do arranjo, a data em que foi pedido, a data em que ficou concluído e o preço associado. Um arranjo é identificado pelo seu número e respectiva oficina em que foi realizado. Sobre cada cliente quer saber-se o nome, o número de contribuinte para o poder identificar e o número da carta de condução caso ele possua. Existem várias operações pré-definidas que as oficinas efectuam (ex: mudar o óleo, alinhar a direcção, etc). Cada uma dessas operações é identificada por uma referência e tem uma descrição textual. Pretende-se saber quais as operações efectuadas em cada arranjo, bem como a data e hora a que ocorreram. Para cada operação que foi efectuada durante um arranjo quer saber-se quem foi o técnico responsável. Um técnico não pode ser responsável por mais do que 10 arranjos em curso. Sobre todos os técnicos quer saber-se o seu id, o nome, a data em que começou a trabalhar na oficina e caso sejam engenheiros o número que os identifica na ordem dos engenheiros. 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 Introdução aos Sistemas de Informação – Exame 2ª Época – Inverno 2004/2005 – 1 Fevereiro 2005 Número do Aluno: __________ Nome do Aluno: _______________________________________ _________________________________________________________________________________ 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 B C D (a1, a2, B.b1) *B.b1 NOT NULL (b1) (A.a1, B.b1) (d1, C.A.a1, C.B.b1, d2) 3 Introdução aos Sistemas de Informação – Exame 2ª Época – Inverno 2004/2005 – 1 Fevereiro 2005 Número do Aluno: __________ Nome do Aluno: _______________________________________ _________________________________________________________________________________ Grupo II – Normalização (3 val) Considere o Esquema Relacional constituído por: R1 (A, B, C, D, E, F, G) e os conjunto de dependências funcionais: F = {ABCÆDE, AB ÆC, DÆE, CÆG} 1. (1 val.) Determine uma chave candidata para R. Justifique. 2. (1,5 val.) Decomponha o esquema R de modo a que se encontre na 3ª Forma Normal. Justifique os passos da decomposição. 3. (0,5 val.) Suponha {A,B,C} como chave primária de R. Caso R estivesse na 3FN, estaria na Forma Normal de Boyce-Codd? Justifique. 4 Introdução aos Sistemas de Informação – Exame 2ª Época – Inverno 2004/2005 – 1 Fevereiro 2005 Número do Aluno: __________ Nome do Aluno: _______________________________________ _________________________________________________________________________________ Grupo III – Álgebra Relacional (3 val) Considere o seguinte Modelo Relacional Fornecedor(id, nome, NC, morada) Peça(cod, descrição, categoria) Fornece(fornecedor, peça, preço) *1 Loja(nº, nome, email) Stock(loja, peça, quantidade) *2 Notas: *1 fornecedor = Fornecedor.id; peça = Peça.cod *2 loja = Loja.nº ; peça = Peça.cod A quantidade é igual ou superior a zero O preço é superior a zero NC é chave candidata de Fornecedor 1. (1 val.) Escreva uma expressão em Álgebra Relacional que permita obter: “O nome e NC de todos os fornecedores que fornecem peças, que a Loja nº 3 tem em stock ” 2. (1 val.) Escreva uma expressão em Álgebra Relacional que permita obter: “O cod e a descrição de cada peça e o qual o preço mínimo a que é fornecida” 3. (1 val.) Escreva uma expressão em Álgebra Relacional que permita obter: “Todas as peças e respectiva quantidade (total) em stock” 5 Introdução aos Sistemas de Informação – Exame 2ª Época – Inverno 2004/2005 – 1 Fevereiro 2005 Número do Aluno: __________ Nome do Aluno: _______________________________________ _________________________________________________________________________________ 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 Fornecedor, Loja e Stock. Nota: assuma que Peça.cod é do tipo int 2. (1 val.) Considerando todas as relações apresentadas no modelo relacional do Grupo III, diga qual a ordem pela qual deve ser efectuada a destruição das tabelas. Justifique de forma clara. 6 Introdução aos Sistemas de Informação – Exame 2ª Época – Inverno 2004/2005 – 1 Fevereiro 2005 Número do Aluno: __________ Nome do Aluno: _______________________________________ _________________________________________________________________________________ Grupo V – SQL/DML e Transacções (6 val) Relembre o Modelo Relacional: Fornecedor(id, nome, NC, morada) Peça(cod, descrição, categoria) Fornece(fornecedor, peça, preço) *1 Loja(nº, nome, email) Stock(loja, peça, quantidade) *2 Notas: *1 fornecedor = Fornecedor.id; peça = Peça.cod *2 loja = Loja.nº ; peça = Peça.cod A quantidade é igual ou superior a zero O preço é superior a zero NC é chave candidata de Fornecedor 1. Escreva uma (apenas uma por alínea) interrogação SQL que permita obter: a. (1 val. ) “O nº e nome das lojas que têm mais do que 10 unidades de alguma peça fornecida pelo fornecedor com id 22” b. (1 val. ) “Qual o fornecedor que fornece um maior número de peças diferentes” 7 Introdução aos Sistemas de Informação – Exame 2ª Época – Inverno 2004/2005 – 1 Fevereiro 2005 Número do Aluno: __________ Nome do Aluno: _______________________________________ _________________________________________________________________________________ c. (1 val) “O cod e descrição das peças que não são fornecidas por nenhum fornecedor” d. d. (1 val) “Quais as lojas que têm em stock peças de todos os fornecedores” 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 SERIALIZABLE UPDATE Stock SET quantidade = 3 WHERE loja =1 AND peça =30 T2 BEGIN TRANSACTION SET TRANSACTION ISOLATION LEVEL READ UNCOMMITED SELECT * FROM Stock WHERE quantidade > 0 T1 INSERT into Stock VALUES (1,2,2) T2 SELECT * FROM Stock WHERE quantidade > 0 T1 ROLLBACK T2 COMMIT 8 Introdução aos Sistemas de Informação – Exame 2ª Época – Inverno 2004/2005 – 1 Fevereiro 2005 Número do Aluno: __________ Nome do Aluno: _______________________________________ _________________________________________________________________________________ a. (2 val.) No cenário acima descrito é definido para a T2 o nível de isolamento READ UNCOMMITED. Diga, indicando quais a(s) anomalia(s) presentes, se este nível de isolamento é adequado. No caso de ter considerado o nível de isolamento inadequado, indique qual o nível de isolamento a considerar, para a resolução da(s) anomalia(s) encontradas, tendo em conta que se pretende prejudicar o mínimo possível a concorrência. 9