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 recurso, 29 de Julho de 1999 DURAÇÃO MÁXIMA 2 horas e 30 minutos, com consulta Problema 1: Interrogação (6.0 valores) Relativamente a uma BD de uma biblioteca, com o esquema LIVRO Nr Título autor LEITOR cod preço REQ liv lei nome datar cidade datae onde o significado dos atributos é o óbvio (REQ - requisições; datar - data de requisição; datae - data de entrega), formule as seguintes perguntas, usando a linguagem indicada: a) Livros muito lidos (SQL). Quais os títulos dos livros com mais de dez requisições? b) Fãs (Português). select nome, L.autor from livro L, leitor where L.nr in select liv from req where lei = leitor.cod; group by nome, L.autor having count(*) = select count(*) from livro where autor = L.autor/ c) Leitores excêntricos (álgebra relacional). Quais os nomes dos leitores que só lêem livros que mais ninguém lê? d) Leitores inovadores (SQL). Quais os códigos dos leitores que são sempre os primeiros a requisitar os livros? e) Facturas (SQL). Obtenha a lista dos nomes dos leitores, títulos dos livros, datas de requisição e respectivos alugueres, sabendo que o aluguer é de 1% do preço do livro por dia. Problema 2: Optimização(4.0 val) a) Suponha que a relação R(A,B,C,D) tem um índice agrupador em A e índices não agrupadores nas outras colunas. Os quatro índices têm as imagens 50, 10, 20 e 100, respectivamente. O número de tuplos na relação é 10 000, os quais ocupam 500 blocos. Quais as maneiras de avaliar a pergunta A( A=0 B=1 C>2 D=3( R )) e qual o seu custo?. Qual o método mais económico? GABRIEL DAVID 1/3 27-06-17 17:54 FEUP/LEIC TECNOLOGIA DE SISTEMAS DE GESTÃO DE BASES DE DADOS A equação S(E1-E2) = S(E1) - S(E2) é válida? Justifique com um exemplo. b) Problema 3: Concorrência (5.0 valores) O escalonamento seguinte usa uma política de controlo optimista da concorrência (sem bloqueios), baseada na comparação dos instantes das operações sobre a BD. Instante inicial (1) (2) (3) (4) (5) (6) T1 T2 100 120 A IL = 0 IE = 0 LER A LER A A:= A+1 A:= A+1 ESCREVER A ESCREVER A a) Qual o princípio básico do controlo optimista da concorrência? b) Indique como vão evoluindo os instantes (timestamps) de leitura (IL) e de escrita (IE) associados ao dado A ao longo dos vários passos do escalonamento? Qual o estado das transacções no passo (6)? c) Explique porque razão um protocolo de bloqueios linear evita a ocorrência de deadlock? d) Qual a importância da noção de escalonamento serializável? Problema 4: BDOO (5.0 valores) A FerTagus, SA colocou recentemente em funcionamento a linha de comboios suburbana que atravessa a ponte 25 de Abril, entre o Fogueteiro e Entrecampos. Para organizar o serviço, prestar informações aos utentes e obter estatísticas de funcionamento necessita de ter um sistema de informação em funcionamento. Foi tomada a decisão de utilizar uma base de dados orientada por objectos, pelo que se pretende definir o esquema da base de dados a partir das seguintes observações: Cada comboio é identificado por um número e possui um determinado número de carruagens. O mesmo comboio circula alternadamente no sentido paraSul e no sentido paraNorte, transportando passageiros entre as estações. As estações são caracterizadas por um nome e um número de telefone. Há passageiros anónimos que adquirem bilhetes e que portanto só contam para as estatísticas de entrada e de saída, uma vez que todos têm que validar o bilhete nos torniquetes de entrada e deixá-lo ficar nos torniquetes de saída. Os passageiros com passe também usam as máquinas de validação, as quais têm capacidade de leitura do número respectivo. Para além do número do passe, também se sabe o tipo de passe, o nome, a data de nascimento e a morada desses passageiros. Há um regime especial para os passageiros deficientes, pelo que se regista nestes casos o tipo de deficiência e a percentagem de redução nos preços que lhe corresponde. GABRIEL DAVID 2/3 27-06-17 17:54 FEUP/LEIC TECNOLOGIA DE SISTEMAS DE GESTÃO DE BASES DE DADOS Embora a linha seja única, a circulação dos comboios é feita segundo vários tipos de serviço: normal, em que o comboio pára em todas as estações; directo, em que apenas há paragem nalgumas estações, dependendo do sentido; reduzido, em que só parte da linha é percorrida; etc. Dependendo do tipo de serviço, o tempo que se demora a chegar a cada estação está previsto e é com base nessa informação que se elaboram os horários. Admite-se que os horários de todas as viagens de um determinado tipo de serviço é semelhante. O que caracteriza cada horário é apenas o tipo de dia (semana, sábado, domingos e feriados) e a hora da partida, podendo os momentos de chegada a cada estação ser obtidos por adição da hora de partida com o tempo correspondente. Para além do horário, pretende-se monitorizar de forma detalhada o desempenho real. Para isso regista-se, para cada viagem, o dia em que ocorreu a viagem correspondente a um determinado horário e qual o comboio utilizado. Para cada paragem nas estações do seu tipo de serviço regista-se a hora de chegada e de partida e o número de entradas e saídas contabilizadas nos torniquetes, que lhe correspondem. Pretende-se ainda saber quais foram os passageiros com passe que entraram e saíram nessa paragem. a) Defina um esquema para a BD descrita, usando a norma ODMG/ODL. Justifique as opções que tomar. Indique as restrições de integridade mais significativas que não estiverem implícitas no modelo de dados. b) Exprima em OQL a pergunta: “quais os tipos e sentidos dos serviços oferecidos e quantas estações abrangem?”. c) Por que razão se indica um especificador de tipo (os_typespec) na criação de objectos? Que modalidades existem em que condições se utilizam? GABRIEL DAVID 3/3 27-06-17 17:54