ISEL – DEETC – SSIC EXAME DE 2ª ÉPOCA Semestre de Verão 2004/2005 8 Julho 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 __________________________________________________________________________________ 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 – Verão 2004/2005 – 8 Julho 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 empresa de Formação, de acordo com os Requisitos de Sistema abaixo apresentados. Na empresa existem vários cursos de formação. Os cursos são identificados por um código, caracterizados por um título, uma descrição, uma data de início e um preço. Os cursos são compostos por módulos de aprendizagem. Cada módulo de aprendizagem é identificado pelo seu número de ordem e pelo curso a que diz respeito. Sobre os módulos é ainda necessário saber a sua designação e a sua duração. Os cursos poderão ter precedência entre si, pelo que é necessário registar essa informação, assinalando se a precedência é obrigatória ou não. Importa também registar se um determinado curso tem componente de laboratório ou não, e no caso de ter, é necessário saber quantos alunos no máximo deverá ter cada turma prática. Existem formadores certificados que ministram os módulos dos cursos. Cada módulo é ministrado apenas e obrigatoriamente por um formador, mas um formador pode ministrar mais do que um módulo em simultâneo. Sempre que um formador termina de ministrar um determinado módulo, tem que registar o seu relatório de avaliação para aquele módulo. Os relatórios de avaliação são identificados por uma referência, e caracterizados por uma data de registo e pelo texto respectivo. Importa ainda registar informação sobre os alunos que se inscrevem nos cursos de formação. Um aluno apenas é registado no sistema no momento em que pretende realizar o primeiro curso. É necessário saber em que cursos o aluno está inscrito e se já liquidou o pagamento respectivo a cada curso. Os alunos podem ainda pedir um apoio adicional a um formador certificado. Um aluno apenas pode pedir apoio a um formador que ministre módulos de algum dos cursos que o aluno frequenta. 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 – Verão 2004/2005 – 8 Julho 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, a3) (A.a1, a4) (a5 , a6) (A.a1, B.A.a1, C.a5, a7) *C.a5 é NOT NULL 3 Introdução aos Sistemas de Informação – Exame 2ª Época – Verão 2004/2005 – 8 Julho 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) com F1 = {AÆ ABCD , CÆABCD, BÆD} e C chave candidata R2 (E, F, G, H, I, J) com F2 = {EFGÆHIJ , IJÆEFGH , GÆH} e IJ chave candidata R3 (K, L, M, N) com F3 = {KLMÆN , KLMÆL} R4 (O, P, Q, R , S) com F4 = {OPÆQRS , PÆQRS , RÆS} 1. (1,5 val.) a. Diga em que forma normal se encontram cada uma das relações. Justifique de forma clara. 2. (1,5 val.) a. Normalize as relações por forma a ficarem na 3FN. Justifique os passos da decomposição. 4 Introdução aos Sistemas de Informação – Exame 2ª Época – Verão 2004/2005 – 8 Julho 2005 Número do Aluno: __________ Nome do Aluno: _______________________________________ _________________________________________________________________________________ Grupo III – Álgebra Relacional (3 val) Considere o seguinte Modelo Relacional Cliente(nº, BI, nome) Colchão(modelo, descrição, preço, stock) Encomenda(cod, cliente, data) *1 Item(encomenda, nºordem, colchão, quantidade) *2 Notas: *1 cliente = Cliente.nº *2 encomenda = Encomenda.cod; colchão = Colchão.modelo O stock é igual ou superior a zero A quantidade é superior a zero O preço é superior a zero BI é chave candidata de Cliente Todos os atributos são de preenchimento obrigatório. Numa mesma encomenda um modelo de colchão apenas aparece listado uma vez, com a respectiva quantidade. 1. (1 val.) Escreva uma expressão em Álgebra Relacional que permita obter: “Quais as encomendas (cod, cliente) em que apenas foram encomendados modelos de colchão cujo preço é inferior a 100€ ” 2. (1 val.) Escreva uma expressão em Álgebra Relacional que permita obter: “Dos modelos que ainda não esgotaram, qual (modelo, preço) o mais encomendado” 3. (1 val.) Escreva uma expressão em Álgebra Relacional que permita obter: “Quais os clientes que já encomendaram todos os modelos de colchão cujo preço é superior a 400€” 5 Introdução aos Sistemas de Informação – Exame 2ª Época – Verão 2004/2005 – 8 Julho 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 Cliente, Colchão e Item. Nota: assuma que Colchão.modelo é do tipo varchar(10); Encomenda.cod é do tipo int 2. (1 val.) Considerando o modelo relacional do Grupo III, e a base de dados vazia, apresente uma sequência de comandos que viole uma restrição de integridade referencial na tabela Item sem violar qualquer outra, e uma restrição domínio/coluna na tabela Encomenda. Justifique de forma clara. 6 Introdução aos Sistemas de Informação – Exame 2ª Época – Verão 2004/2005 – 8 Julho 2005 Número do Aluno: __________ Nome do Aluno: _______________________________________ _________________________________________________________________________________ 3. Grupo V – SQL/DML e Transacções (6 val) Relembre o Modelo Relacional: Cliente(nº, BI, nome) Colchão(modelo, descrição, preço, stock) Encomenda(cod, cliente, data) *1 Item(encomenda, nºordem, colchão, quantidade) *2 Notas: *1 cliente = Cliente.nº *2 encomenda = Encomenda.cod; colchão = Colchão.modelo O stock é igual ou superior a zero A quantidade é superior a zero O preço é superior a zero BI é chave candidata de Cliente Todos os atributos são de preenchimento obrigatório. Numa mesma encomenda um modelo de colchão apenas aparece listado uma vez, com a respectiva quantidade. 1. Escreva uma (apenas uma por alínea) interrogação SQL que permita obter: a. (1 val. ) “Qual a quantidade média de colchões das encomendas feitas pelo ‘Molinhas’ durante o ano de 2004” b. (1,5 val. ) “Quais as encomendas feitas depois de 07/07/2005 que não contemplam modelos de colchão que se encontram esgotados” 7 Introdução aos Sistemas de Informação – Exame 2ª Época – Verão 2004/2005 – 8 Julho 2005 Número do Aluno: __________ Nome do Aluno: _______________________________________ _________________________________________________________________________________ c. (1,5 val) “Quais os clientes que encomendaram todos os modelos de colchão numa só encomenda” 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 Colchão WHERE preço > 200 T2 BEGIN TRANSACTION SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED SELECT * FROM Colchão WHERE stock < 10 INSERT INTO Colchão VALUES (‘CM-23’,’molas’, 300, 20) T1 DELETE FROM Colchão WHERE stock = 0 SELECT * FROM Colchão WHERE preço > 200 T2 SELECT * FROM Colchão WHERE stock < 10 T1 COMMIT T2 COMMIT 8 Introdução aos Sistemas de Informação – Exame 2ª Época – Verão 2004/2005 – 8 Julho 2005 Número do Aluno: __________ Nome do Aluno: _______________________________________ _________________________________________________________________________________ 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