Época de Recurso Sem consulta

Documentos relacionados
Considere as Relações Funcionários (F) e Dependentes (D), com o seguinte esquema simplificado:

SQL (Structured Query Language)

Prova de Fundamentos de Bancos de Dados 1 a Prova

Comandos de Manipulação

Linguagem SQL. Comandos Básicos

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

Aplicações - SQL. Banco de Dados: Teoria e Prática. André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013

SQL: Definição de tabelas, Modificações à Base de Dados

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

Linguagem SQL (Parte II)

Correção da 1a Prova de GBD1 2010/1. Profa. Sandra de Amo

Page 1. Prof. Constantino Jacob

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas

BANCO DE DADOS. Vinícius Pádua

Introdução ao SQL. Aécio Costa

Bases de Dados 2012/2013 Restrições de Integridade em SQL. Helena Galhardas 2012 IST. Bibliografia

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Introdução à Manipulação de Dados

A linguagem SQL

Prova de Fundamentos de Bancos de Dados 2 a Prova

Prova de Fundamentos de Bancos de Dados 2 a Prova

Correção da 1a Prova de GBD1 2009/2. Profa. Sandra de Amo

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Prova de Fundamentos de Bancos de Dados 2 a Prova

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL

SQL. Prof. Márcio Bueno.

Tarefa Orientada 19 Triggers

Bases de Dados. Parte V: A Linguagem SQL

EXAME DE 1ª ÉPOCA Semestre de Verão 2004/ Junho 2005 duração: 2h30m

Modelo Comportamental

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

SQL. Autor: Renata Viegas

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Bases de Dados. Álgebra Relacional ou Como manipular uma BD SQL. P. Serendero,

Disciplina de Banco de Dados Parte V

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

aplicação arquivo Condições Gerais de Utilização

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) )

UNIVERSIDADE FEDERAL FLUMINENSE PÓLO UNIVERSITÁRIO DE RIO DAS OSTRAS FACULDADE FEDERAL DE RIO DAS OSTRAS CURSO DE CIÊNCIA DA COMPUTAÇÃO

Tipos de dados complexos e objectos Tipos de dados estruturados e herança em SQL Herança de tabelas Matrizes e multi-conjuntos em SQL Identidade de

Entropia, Entropia Relativa

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

Linguagem SQL Parte I

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

Banco de Dados Avançados Banco de Dados Ativo

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Linguagem de Consulta - SQL

Structured Query Language (SQL) Aula Prática

Capítulo 1. Importação de Dados de Instituições Financeiras - Arquivo TXT 3

Prova de Fundamentos de Bancos de Dados 2003/2 Prova 1

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

Cadeira de Tecnologias de Informação. Ano lectivo 2009/2010. Sites dinâmicos. Com Expression Web TI2009/10 EWD_1. Filipa Pires da Silva (2009)

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Integridade. Carlos Eduardo Portela Serra de Castro

SQL - Criação de Tabelas

trigger insert, delete, update

BANCO DE DADOS Parte 4

Questões frequentes relativas à Instrução da CMVM n.º 1/2010 Deveres de Informação dos Emitentes:

BANCO DE DADOS I. Exercícios

PHP INTEGRAÇÃO COM MYSQL PARTE 1

EGEA ESAPL - IPVC. Resolução de Problemas de Programação Linear, com recurso ao Excel

Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você

Relatório. Projecto de Base de Dados Parte 2. Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves Rui Barradas Hélton Miranda 68477

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

Exercícios de Lógica Exercícios de Fixação 08

[RESOLUÇÃO] Economia I; 2012/2013 (2º semestre) Prova da Época Recurso 3 de Julho de 2013

Criando Restrições em Tabelas

BANCO DE DADOS CONCEITOS BÁSICOS

Programação Orientada a Objetos SANTOS, Rafael

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL)

Companhia de Seguros PAGA & CALA

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

Índice. Introdução Tutorial 1: O Microsoft Access como Sistema de Gestão de Bases de Dados Relacionais... 35

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

PL/pgSQL por Diversão e Lucro

PostgreSQL. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br

Cadeira de Tecnologias de Informação. Ano lectivo 2009/2010. Sites dinâmicos. Com Expression Web (Parte 2) TI2009/10 EWD_1

Forma Normal de Boyce-Codd

SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS)

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Reforçando conceitos de SQL Estudo de Caso: Agenciamento de Corridas de Táxis

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Transcrição:

Bases de Dados 2014/15 20/Junho/15 9:00 Duração: 3h Época de Recurso Sem consulta Leia com atenção a informação constante desta página, enquanto espera a indicação do docente para começar a resolução do exame. Este enunciado é composto por: Uma Folha de Rosto (esta) Uma Folha de Respostas Seis Páginas de Perguntas Quatro Páginas de Rascunho O exame é composto por dois grupos de perguntas: GRUPO I: Composto por 7 perguntas de resposta curta valendo 8 valores no total. GRUPO II: Composto por 16 perguntas de escolha múltipla valendo 12 valores no total. GRUPO I: A simplicidade e clareza das respostas neste grupo contarão na avaliação. Poderá inclusivamente ter uma cotação de 0 valores numa pergunta se a sua solução for muito mais complicada do que o necessário. Todas as perguntas deste grupo têm aproximadamente a mesma cotação. GRUPO II: Cada pergunta tem um número variado de respostas possíveis, onde apenas uma está correcta. Cada resposta correcta vale 0,75 valores. As respostas incorrectas descontam, de forma progressiva, de acordo com a seguinte regra: o Se errar n>0 respostas, terá um desconto de 0,1 k 1 valores. o Ou seja a 1ª resposta errada não desconta a 2ª resposta errada desconta 0,1 valores (num total de 0,1 valores de desconto) a 3ª resposta errada desconta 0,2 valores (num total de 0,3 valores de desconto) a 4ª resposta errada desconta 0,3 valores (num total de 0,6 valores de desconto) a 5ª resposta errada desconta 0,4 valores (num total de 1,0 valores de desconto)... A cotação mínima no GRUPO II é de 0 valores. Preenchimento: Deverá preencher o Nome e o Número na folha de respostas. Todas as respostas deverão ser dadas nas folhas de respostas fornecida, usando apenas a área indicada. As zonas sombreadas da folha de respostas não deverão ser preenchidas. Para contribuir para a legibilidade da folha de respostas, minimizando rasuras, agradece-se a utilização do espaço de rascunho fornecido (no fim do mesmo) antes de escrever a resposta final na folha de respostas. No fim de 3 horas de exame os docentes recolherão apenas a folha de respostas. Aconselha-se que veja todas as perguntas do exame antes de começar a sua resolução, para melhor planear a estratégia de resolução. Tem aproximadamente 7 minutos e 45 segundos por pergunta pelo que não deve demorar demasiado tempo em cada uma. Boa Sorte! n k = 1 ( )

20/Jun/2015 9:00 Nome: Bases de Dados Folha de Respostas DI/FCT/UNL, Época de Recurso Exame, 2014/15 Número: Duração: 3h PARTE II MODELO II.1 II.2 II.3 II.4 II.5 II.6 II.7 II.8 II.9 II.10 II.11 II.12 II.13 II.14 II.15 II.16 acbcdab N Ã O E S C R E V A A Q U I I.1 PARTE I I.2 I.3 I.4

I.5 I.6 I.7 a) I.7 b) I.7 c)

GRUPO I Considere a seguinte base de dados, que armazena informação sobre uma oficina de reparação de automóveis (onde os atributos das chaves primárias estão sublinhados): obra(ido,matr,datai) maoobra(ido,bi,data,horas) saidas(ido,dataf) funcionarios(bi,nomef,idc) categorias(idc,nomec,precohora) Sempre que é iniciada uma reparação, é inserido um tuplo na relação obra, armazenando-se nesse tuplo a informação do nº da obra (IdO) (que é único), da matrícula do automóvel a reparar (Matr), e da data de entrada do automóvel para reparação (DataI). Ao longo da obra vão-se armazenando em maoobra as várias intervenções relativas à reparação correspondente. Em cada tuplo é assinalado o nº de horas (Horas) que um dado funcionários (BI) despendeu numa dada obra (IdO) num dado dia (Data). Quando a reparação é terminada, tal facto é assinalado pela introdução dum tuplo em saidas, com o nº da obra respectiva (IdO) e a data de conclusão da reparação (DataF). Para além disso, há ainda uma relação de funcionários - com o BI (BI), nome (NomeF) e categoria (IdC) dos vários funcionários - e uma relação de categorias de funcionários onde para cada categoria (IdC) é armazenado o seu nome (NomeC) bem como informação sobre o preço por hora (PrecoHora) cobrada por um qualquer funcionário dessa categoria. Apresente consultas em SQL correspondentes a cada uma das expressões das seguintes duas alíneas: I.1. Quais os funcionários (BI e NomeF) que já fizerem intervenções em reparações já terminadas do automóvel com matrícula 01-01-AA? Cada funcionário deve aparecer apenas uma vez. I.2. Quais as reparações (IdO) já concluídas e, para cada uma delas, qual o preço total de mão de obra gasto na reparação? As reparações devem aparecer ordenadas por ordem decrescente de duração da reparação. Apresente consultas em Álgebra Relacional correspondentes a cada uma das expressões das seguintes duas alíneas: I.3. Quais os automóveis (Matr) que foram intervencionados mais do que uma vez, em obras diferentes, pelo mesmo funcionário? I.4. Quais as obras (IdO) que tiveram intervenções por funcionários de todas as categorias? Entretanto, deu-se conta que a base de dados permitia a introdução de intervenções que não faziam qualquer sentido. Nomeadamente permitia a introdução de intervenções numa obra em data anterior à data de início da obra e também em data posterior à data de conclusão da obra. Para resolver este problema: I.5. Apresente um comando SQL que apague todas essas intervenções erradas. I.6. Apresente um comando SQL que crie um trigger que impeça a inserção de intervenções com datas erradas Decidiu-se alterar parte do desenho da base de dados, para guardar mais informação sobre os automóveis, tendo sido proposto criar uma tabela com o seguinte esquema: O1=(Matr, Num_Chassis, Num_Motor, Modelo, DataI, DataF) onde Num_Chassis, Num_Motor e Modelo denotam, respectivamente, o nº do chassis e de motor, e modelo do veículo. Além disso, foram definidas as seguintes dependências funcionais: Num_Chassis, Num_Motor Matr Matr Num_Chassis Matr Num_Motor, Modelo I.7. Tendo em conta as dependências funcionais indicadas: a) Apresente todas as chaves candidatas da relação O1. b) Mostre através de um exemplo que o esquema O1 não evita redundâncias. c) Apresente uma decomposição da relação O1 para a Forma Normal de Boyce-Codd, usando o algoritmo dado nas aulas.

GRUPO II II.1. Pretendemos guardar informação sobre os médicos, doentes e sessões num centro de reabilitação. Cada doente é identificado pelo seu BI. Cada médico é identificado pela sua licença profissional (lp). As sessões dizem respeito a um médico e um doente. Cada sessão é identificada por um número de ordem (no), que é único para cada doente (e.g. existem as sessões nºs 1, 2 e 3 do doente Manuel, e as sessões 1, 2 e 3 da doente Maria). Qual dos seguintes diagramas ER (onde outros atributos são omitidos) melhor modela a situação descrita? (A) (B) (C) (D) (E) (F) (G) l p l p l p l p l p l p l p Médicos Médicos Médicos Médicos Médicos Médicos Médicos n o n o n o R1 n o R1 n o R1 n o R1 n o Sessões Sessões Sessões Sessões Sessões Sessões Sessões R2 R2 R2 R2 Doentes Doentes Doentes Doentes Doentes Doentes Doentes b i b i b i b i b i b i b i II.2. Considere o seguinte Diagrama de Entidades e Relações: R5 Ent7 e 7 e 2 Ent2 R1 Ent1 e 1 R3 Ent4 e 4 e 5 ISA e3 Ent3 R4 Ent6 e6 R2 e9 Quantos atributos tem a relação R2, pertencente ao Modelo Relacional obtido através da conversão deste Diagrama de Entidades e Relações segundo o método apresentado nas aulas? (C) 3 (G) 7 (K) 11 (O) 15 (S) 19 (W) 23 (D) 4 (H) 8 (L) 12 (P) 16 (T) 20 (X) 24 (E) 5 (I) 9 (M) 13 (Q) 17 (U) 21 (Y) 25 (F) 6 (J) 10 (N) 14 (R) 18 (V) 22 (Z) 26

II.3. Considere as seguintes instâncias de uma Base de Dados. e a seguinte consulta: S R c d a b c NULL 3 1 2 x x 3 1 5 y y 2 NULL 3 x y NULL 2 1 NULL NULL 4 x SELECT a, SUM(b+d) FROM R NATURAL INNER JOIN S GROUP BY a Qual a soma de todos os valores diferentes de NULL de todos os atributos de todos os tuplos do resultado da consulta? (A) 16 (E) 20 (I) 24 (M) 28 (Q) 32 (U) 36 (B) 17 (F) 21 (J) 25 (N) 29 (R) 33 (V) 37 (C) 18 (G) 22 (K) 26 (O) 30 (S) 34 (W) 38 (D) 19 (H) 23 (L) 27 (P) 31 (T) 35 (X) 39 II.4. Considere as tabelas criadas com os seguintes comandos: CREATE TABLE S(d CHAR PRIMARY KEY, e INT NOT NULL); CREATE TABLE R(a INT PRIMARY KEY, b INT, c CHAR, FOREIGN KEY (b) REFERENCES R, FOREIGN KEY (c) REFERENCES S ON DELETE CASCADE); Inicialmente as tabelas têm as seguintes instâncias: S R d e a b c a 10 1 NULL a b 20 2 1 a c 30 3 1 b 4 3 b 5 3 c 6 3 a Em seguida executamos a seguinte sequência de comandos: DELETE FROM R WHERE A=6; DELETE FROM S WHERE E >= 20; No final, a soma do número de tuplos nas tabelas R e S é: (A) 0 (B) 1 (C) 2 (D) 3 (E) 4 (F) 5 (G) 6 (H) 7 (I) 8 (J) 9 II.5. Considere uma relação R(a,b), sem ocorrência de valores nulos, e os seguintes programas Datalog, onde o resultado é dado, em ambos os casos, pela relação S. Q1: P(X,Y) <- R(X,P), R(Y,P), X Y. S(X,Y) <- R(X,W), R(Y,Z), P(W,Z). Q2: Q(X,Y) <- R(X,P), R(P,Y). S(X,Y) <- Q(X,A), Q(Y,A), X Y. Qual das seguintes frases é verdadeira? (A) Q1 e Q2 produzem sempre a mesma resposta. (B) A frase (A) não é verdadeira e a resposta a Q1 está sempre contida na resposta a Q2. (C) A frase (A) não é verdadeira e a resposta a Q2 está sempre contida na resposta a Q1. (D) Nenhuma das anteriores.

II.6. Considere as relações r(a,b) e s(c,d). Qual das seguintes igualdades é verdadeira? (E) σ!!!!!! r s = σ!!! s σ!!! r (F)!,! r s =!,! σ!!!!!! r s (G)!,! σ!!! r s =! σ!!! r! s (H) Nenhuma das anteriores (i.e. são todas falsas) II.7. Considere a relação R(A, B, C, D, E) com a dependência multi-valor AE CD. Sabemos que R contém pelo menos os seguintes 3 tuplos: A B C D E 9 9 9 9 0 9 0 0 0 0 9 9 0 0 0 Qual é o número mínimo de tuplos de R (incluindo os 3 indicados)? (A) 3. (B) 4. (C) 5 (D) 6. (E) 7 (F) 8 (G) 9 (H) 12 ou mais. As próximas duas perguntas dizem respeito a uma relação R(A, B, C, D, E) com dependências funcionais: E B, E C, BD E II.8. Que dependências funcionais são causa de violação da Forma Normal de Boyce-Codd (BCNF) mas não são causa de violação da 3ª Forma Normal (3NF)? (B) Apenas E C. (C) Apenas BD E. (D) Apenas E B. (E) E B e E C. (F) E C e BD E. (G) E B e BD E. II.9. Se decompusermos R na BCNF começando por E B, quais as dependências funcionais que não podem ser preservadas? (E) Nenhuma (F) Apenas E B (G) Apenas E C (H) Apenas BD E (I) Apenas E B e E C (J) Apenas E B e BD E (K) Apenas E C e BD E (L) E B, E C e BD E II.10. Considere a tabela criada com o seguinte comando SQL: CREATE TABLE R(a INT, b INT, c INT NOT NULL, PRIMARY KEY (a,b), FOREIGN KEY (a,b) REFERENCES S, FOREIGN KEY (c) REFERENCES T); As tabelas S e T têm chave primária (a,b) e (c), respectivamente. Sejam Q1 e Q2 as seguintes consultas: Q1: SELECT c, SUM(a+b) FROM R GROUP BY c; Q2: SELECT a,b, COUNT(*) FROM R GROUP BY a,b; Qual das seguintes frases é verdadeira? (A) Q1 pode devolver um número de tuplos superior ao de R. (B) Q1 pode devolver um número de tuplos superior ao de S. (C) Q2 pode devolver um número de tuplos superior ao de R. (D) Q2 pode devolver um número de tuplos superior ao de T. (E) Nenhuma das respostas anteriores

II.11. Considere o seguinte esquema de Base de Dados, onde não há valores NULL: pessoa(bi,nome) edifício(nomeed, biresp) autorização(nomeed, bipessoa, data) Uma pessoa é identificada pelo seu número de bilhete de identidade (bi). Um edifício é identificado pelo seu nome e tem um responsável (biresp é chave externa para pessoa). Uma autorização de acesso a um edifício é dada a uma pessoa (bipessoa é chave externa para pessoa) numa determinada data. Queremos saber os nomes dos responsáveis que têm autorização para todos os edifícios de que são responsáveis. Quais das seguintes consultas devolvem a resposta pretendida? I.!"#$%$&&"' ρ!!"#$%&,!"#$%$!!"# pessoa autorização!"#$%& edificio II.!"#$%$&&"' σ!"#$%&!!"#$%%&' ρ!!"#$%&,!"#$%$&&"' pessoa edificio autorização III. SELECT DISTINCT nome FROM pessoa p INNER JOIN edifício e ON (p.bi=e.biresp) WHERE e.nomeed = ALL (SELECT a.nomeed FROM autorização a WHERE a.bipessoa = e.biresp); (E) Nenhuma (G) Apenas II. (I) Apenas I e II. (K) Apenas II e III. (F) Apenas I. (H) Apenas III. (J) Apenas I e III. (L) Todas. II.12. Considere as consultas Q1 e Q2 envolvendo as tabelas R e S que têm pelo menos o atributo b que não pode conter valores nulos: Q1: SELECT b FROM R WHERE b <> ALL (SELECT b FROM s); Q2:(SELECT b FROM R) EXCEPT ALL (SELECT b FROM S); Qual das seguintes frases é verdadeira? (E) Q1 e Q2 produzem sempre a mesma resposta. (F) A frase (E) não é verdadeira e a resposta a Q1 está sempre contida na resposta a Q2. (G) A frase (E) não é verdadeira e a resposta a Q2 está sempre contida na resposta a Q1. (H) Nenhuma das anteriores. II.13. Considere as duas tabelas P(i,s) e M(i,v) criadas com os seguintes comandos: CREATE TABLE P(i VARCHAR(10) PRIMARY KEY, s NUMBER DEFAULT 0 NOT NULL); CREATE TABLE M(i VARCHAR(10) NOT NULL, v NUMBER DEFAULT 0 NOT NULL, FOREIGN KEY (i) REFERENCES P); Foram ainda criados os seguintes triggers CREATE TRIGGER Ps BEFORE INSERT ON P FOR EACH ROW BEGIN :NEW.s := 0; END; CREATE TRIGGER Mv AFTER INSERT ON M FOR EACH ROW BEGIN UPDATE P SET P.s = P.s + :NEW.v WHERE P.i = :NEW.i; END; Qual dos seguintes triggers garante que a restrição o valor de s em P, para um determinado i, é igual à soma dos valores v dos tuplos em M com o mesmo i se continua a verificar após actualização de um ou mais tuplos da tabela M? (F) CREATE TRIGGER um AFTER UPDATE ON M FOR EACH ROW BEGIN UPDATE P SET P.s = P.s - :OLD.v WHERE P.i = :NEW.i; UPDATE P SET P.s = P.s + :NEW.v WHERE P.i = :OLD.i; END; (G) CREATE TRIGGER um AFTER UPDATE ON M FOR EACH ROW BEGIN UPDATE P SET P.s = P.s - :OLD.v WHERE P.i = :OLD.i; UPDATE P SET P.s = P.s + :NEW.v WHERE P.i = :NEW.i; END; (H) CREATE TRIGGER um AFTER UPDATE ON M FOR EACH ROW BEGIN UPDATE P SET P.s = P.s + :OLD.v WHERE P.i = :OLD.i; UPDATE P SET P.s = P.s - :NEW.v WHERE P.i = :NEW.i; END; (I) CREATE TRIGGER um AFTER UPDATE ON M FOR EACH ROW BEGIN UPDATE P SET P.s = P.s + :OLD.v WHERE P.i = :NEW.i; UPDATE P SET P.s = P.s - :NEW.v WHERE P.i = :OLD.i; END;

As próximas três perguntas são baseadas no seguinte documento XML Faculdade : <Faculdade> <Cursos> <ROW> <Nome id="c1">informática</nome> <Grau>1º ciclo</grau> </ROW> <ROW> <Nome id="c2">informática</nome> <Grau>2º ciclo</grau> </ROW> </Cursos> <Alunos> <ROW> <Nome id="a1">joão Manuel</Nome> <Curso ref="c1"/> </ROW> <ROW> <Nome id="a2">joana Manuela</Nome> <Curso ref="c2"/> </ROW> <ROW> <Nome id="a3">manuel João</Nome> <Curso ref="c1"/> </ROW> </Alunos> </Faculdade> II.14. Qual das seguintes expressões Xpath produz um conjunto com mais de 2 nós quando aplicada ao documento Faculdade? (E) //ROW[Nome/text() = "Informática"]/Grau (F) /Faculdade/Alunos/ROW[Curso] (G) /Faculdade/* (H) /*/* II.15. Num DTD que o documento Faculdade satisfaça, qual das seguintes declarações de elemento não encontraria certamente? (E) <!ELEMENT ROW ANY> (F) <!ELEMENT ROW ( (Nome Curso Grau)* )> (G) <!ELEMENT ROW ( (Nome, (Grau Curso )) )> (H) <!ELEMENT ROW ( (Nome, Grau)?, (Curso)? )> II.16. Assumindo que Faculdade está armazenado no ficheiro Faculdade.xml e executamos a consulta Xquery: for $c in doc("faculdade.xml")/faculdade/cursos/row, $a in doc("faculdade.xml")//row[curso/@ref = $c/nome/@id] return <XPTO>{$c/Nome/text()} - {$a/nome/text()}</xpto> Quantas vezes a cadeia de caracteres Informática aparece no resultado? (E) 0 (F) 1 (G) 2 (H) 3 (I) 4 (J) 5 (K) 6 FIM

Espaço de rascunho:

Espaço de rascunho:

Espaço de rascunho:

Espaço de rascunho: