FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Licenciatura em Engenharia Informática e Computação Tecnologia de Sistemas de Gestão de Bases de Dados 2ª chamada, 16 de Julho de 1999 DURAÇÃO MÁXIMA 2 horas e 30 minutos, com consulta Problema 1: Interrogação (6.0 valores) Considere o seguinte esquema de uma BD do subsistema de cartões de crédito de um banco. Há pessoas que podem deter cartões e clientes que são titulares de contas. Os cartões, sujeitos a um limite máximo de crédito, debitam numa determinada conta e só podem ser atribuídos, além de ao próprio, a pessoas que sejam cônjuges ou filhos do respectivo titular. As relações de parentesco registam-se numa tabela PARENTE, onde Grau={'Filho', 'Cônjuge'} é o grau de parentesco da pessoa BIP relativamente à pessoa BI. PESSOA( BI, Nome, Telefone, Morada, Assinatura ) CLIENTE( BI, NumContribuinte ) BI refere PESSOA(BI) CONTA( Nr, Balcão, Titular ) Titular refere CLIENTE(BI) CARTÃO( Id, Detentor, Conta, Emissão, Expiração, Limite ) Detentor refere PESSOA(BI) Conta refere CONTA(Nr) PARENTE( BI, BIp, Grau ) BI e BIp referem PESSOA(BI) Escreva perguntas para obter as seguintes informações, na linguagem indicada: a) A lista de todos os pares de nomes (avo, neto) de que o sistema tem conhecimento. (Álgebra relacional) b) A lista dos cartões com detentor ilegal, i.e., que não é titular da conta, seu cônjuge ou filho. (SQL) c) O número de contribuinte e o nome de cada cliente e o valor máximo que poderá ter que pagar num mês, ou seja, se todos os cartões de todas as suas contas atingirem o limite de crédito. (SQL) d) Os nomes dos clientes que têm conta em todos os balcões. e) Os nomes dos detentores de cartões cujo limite de crédito é o máximo entre os dos cartões associados à conta respectiva. (SQL) (Álgebra relacional) Problema 2: Optimização(4.0 val) Suponha que existem as relações R(A,B), com 1 000 000 de tuplos e S(B,C) com 100 000. Suponha que cabem num bloco 20 registos de R ou 100 registos de S e que o tamanho da imagem de B é de 500. a) Qual o custo de saída de computar RS? b) Qual o custo de entrada de RS se a memória contiver M=100 blocos? c) Repetir b) no caso do M=1000. Comente o resultado. d) Qual o custo de saída para a junção natural de R e S? e) Qual o custo do método ordenação-junção natural de R e S? f) Qual o custo do método junção natural de R e S baseada em índice agrupador em S.B? GABRIEL DAVID 1/2 27-06-17 9:27 TECNOLOGIA DE SISTEMAS DE GESTÃO DE BASES DE DADOS FEUP/LEIC Problema 3: Concorrência (5.0 valores) a) Considere que acontece uma falha de memória não volátil e que o SGBD usa logging. Descreva a estratégia que pode ser usada por forma a tornar possível a recuperação e como pode ser reposto um estado consistente para a base de dados no caso desta falha de memória. b) Considere o seguinte escalonamento de transacções usando bloqueios partilhados: T1 RLOCK(B) T2 T3 T4 WLOCK(A) UNLOCK(A) RLOCK(A) UNLOCK(B) RLOCK(A) UNLOCK(A) WLOCK(B) UNLOCK(B) RLOCK(B) UNLOCK(A) WLOCK(A) UNLOCK(B) UNLOCK(B) Averigúe se o escalonamento apresentado é válido; em caso afirmativo averigúe se é serializável e, no caso de ser, apresente um escalonamento série equivalente. Problema 4: BDOO (5.0 valores) A Brisa, SA pretende desenhar um modelo conceptual para a informação sobre a utilização das suas autoestradas: as autoestradas existentes vão desde a A1 (Norte) até à A8 (Loures); as portagens são cobradas nas barreiras, as quais têm um número próprio e estão implantadas num local; o valor da portagem depende da classe do veículo (de 1 a 4) e é aditivo (Porto Coimbra = Porto Aveiro + Aveiro Coimbra) e simétrico; interessa saber qual o dia e a hora em que a portagem foi paga, o percurso a que se refere e a matrícula e a marca do respectivo veículo; alguns dos veículos são verdes, i.e., têm um dispositivo de identificação automática e é necessário saber qual o número de conta, banco e agência responsável pelos respectivos pagamentos. NOTA: deve ser possível representar os custos dos percursos independentemente de já ter havido alguém a pagar essa portagem. a) Defina um esquema (só a parte dos dados) para a BD descrita, usando a norma ODMG/ODL. Justifique as opções que tomar. b) O que entende por caminho (path) no contexto de uma Base de Dados ObjectStore? Para que serve? GABRIEL DAVID 2/2 27-06-17 9:27