ISEL - DEETC 1ª Época / 2º Semestre / 2007/2008 SI1 – SISTEMAS DE INFORMAÇÃO 1 Duração: 3’00’’ 23.JUN.2008 ATENÇÃO • Todas as folhas devem ser identificadas, de forma legível, com o nome e número do aluno. • As questões podem ser respondidas com consulta de 1 única folha A4. • As questões devem ser respondidas na folha do enunciado. • A interpretação do enunciado faz parte da avaliação. • A legibilidade da resposta faz parte da avaliação. GRUPO . QUESTÃO (ALÍNEA) COTAÇÃO TOTAL GRUPO I.1 I.2 I.3 (a) 1; (b) 2 (a) 3; (b) 2 (a) 2; (b) 2 12 II . 1 II . 2 (a) 3; (b) 1 4 8 IDENTIFICAÇÃO DO ALUNO Nome: Número: Nome do Aluno: Número do Aluno: GRUPO I (12 VALORES) 1. Considere o esquema de relação R(nome, local, distrito, descricao, revisor, pontos) e a sua seguinte relação: nome Local Joaquim Guimarães Joaquim Guimarães Joaquim Alverca José Covilhã José Mação Sónia Belém distrito descricao revisor pontos Braga Castelo de Guimarães João 5 Braga Castelo de Guimarães Clara 3 Lisboa Jardim Ana 4 Castelo Branco Serra da Estrela Ana 5 Castelo Branco KartCross Joaquim 2 Lisboa Torre de Belém João 5 (a) Considerando o conjunto F de dependências funcionais. Indique se existirem, as chaves candidatas de R. Justifique a sua resposta. F = { {nome, local}->descricao, {nome, local, revisor}->pontos, local->distrito } (b) Admitindo as dependências funcionais enumeradas na alínea anterior, diga justificando qual é a formal normal de R. Apresente uma decomposição de R que esteja na terceira forma normal (3FN). “Sistemas de Informação 1” – 1ª Época / 2º Semestre / 2007/2008 Pág. 2 / 6 Nome do Aluno: 2. Número do Aluno: Uma empresa multinacional, no ramo do turismo, pretende conceber um sistema de informação para apoiar a gestão de reservas de visitas a Pontos de Interesse Turístico (PIT). Para o efeito, é necessário manter informação sobre os PIT que estão distribuídos geograficamente por países, regiões e localidades. Por cada região, deve ser possível saber qual é a língua mais falada, a moeda e o fuso horário. Tendo em vista satisfazer as necessidades de alojamento dos clientes a empresa deseja manter registo dos hotéis com as respectivas distâncias a cada um dos PIT. Em relação a cada um dos hotéis deve ser mantida informação sobre o preço médio do quarto, tempo médio de transferência para os aeroportos mais próximos e sobre as instalações de lazer (ténis, sauna, piscina, divertimentos para crianças e etc.). Todas as entidades possuem nomes ou designações que as identificam univocamente no contexto em que são referidas. (a) Elabore o modelo entidade-associação (modelo conceptual) que caracteriza, na perspectiva dos dados, a situação atrás descrita. Sempre que considerar necessário indique os pressupostos que tiver assumido (lembre-se que a legibilidade da resposta é considerada na avaliação). (b) Transforme o modelo apresentado na alínea anterior num modelo relacional (modelo lógico). Indique as chaves primárias, candidatas e chaves estrangeiras assim como outras restrições que ache convenientes. “Sistemas de Informação 1” – 1ª Época / 2º Semestre / 2007/2008 Pág. 3 / 6 Nome do Aluno: Número do Aluno: 3. Considere o seguinte esquema relacional, que representa parte de um sistema de informação sobre turismo. CLIENTE(BI_cliente, pais, nome, data_nascimento, designacao, regiao) HOTEL(designacao, regiao, preco, data_inauguracao) Considere ainda que: Os atributos sublinhados são chave primária do esquema de relação; os atributos em itálico são chave estrangeira. A chave estrangeira referencia a relação que tem a chave primária com o mesmo nome. Todos os atributos são obrigatórios. (a) Complete a directiva SQL com o objectivo de aumentar 10% do preço dos hotéis inaugurados depois de 1/1/2008 e que já tiveram mais de 1000 clientes. UPDATE HOTEL SET preco = WHERE (b) Indique uma expressão em álgebra relacional que calcule o valor da média de idades dos clientes dos hotéis da região de Lisboa com preços superiores a 100 euros. Escreva uma única directiva SQL relativa à expressão que indicou anteriormente. GRUPO II (8 VALORES) 1. Tendo como base o modelo relacional apresentado no “Grupo I.3”. (a) Complete a seguinte especificação XSD, de modo a representar uma estrutura equivalente a esse modelo relacional. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xs:complexType name="CT_hotel" > <xs:simpleContent> <xs:extension base="xs:string"> _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ </xs:extension> </xs:simpleContent> </xs:complexType> “Sistemas de Informação 1” – 1ª Época / 2º Semestre / 2007/2008 Pág. 4 / 6 Nome do Aluno: Número do Aluno: <xs:complexType name="CT_cliente" > <xs:simpleContent> <xs:extension base="____________"> <xs:attribute name="_______________" type="_________" use="required" <xs:attribute name="_______________" type="_________" use="required" <xs:attribute name="_______________" type="_________" use="required" <xs:attribute name="designacao" type="xs:string" use="required" <xs:attribute name="regiao" type="xs:string" use="required" </xs:extension> </xs:simpleContent> </xs:complexType> <xs:complexType name="CT_visitas"> <xs:sequence> <xs:element name="__________" type="__________" maxOccurs="__________" <xs:element name="__________" type="__________" maxOccurs="__________" </xs:sequence> </xs:complexType> <xs:element name="visitas" type="CT_visitas" > <xs:key name="PK_HOTEL" > <xs:selector xpath="________________________________" /> <xs:field xpath="________________________________" /> <xs:field xpath="________________________________" /> </xs:key> <xs:key name="PK_CLIENTE" > <xs:selector xpath="cliente" /> <xs:field xpath="@bi" /> <xs:field xpath="@pais" /> </xs:key> <xs:keyref name="FK_CLIENTE_HOTEL" refer="____________" > <xs:selector xpath="________________________________" /> <xs:field xpath="________________________________" /> <xs:field xpath="________________________________" /> </xs:keyref> </xs:element> </xs:schema> /> /> /> /> /> /> /> (b) Apresente uma instância do esquema (XSD) indicado na alínea anterior. “Sistemas de Informação 1” – 1ª Época / 2º Semestre / 2007/2008 Pág. 5 / 6 Nome do Aluno: Número do Aluno: 2. Pretende-se processar, usando uma transformação XSLT, o documento XML indicado na ilustração 1 para obter a lista apresentada na ilustração 2. <?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet type="text/xsl" href="listar.xsl"?> <alunos> <leic> <aluno numero='li12'> <nome>Joaquim Silva</nome> <email>[email protected]</email> </aluno> <aluno numero='lt34'> <nome>João Santos</nome> <email>[email protected]</email> </aluno> </leic> <meic> <aluno numero='li56'> Ilustração 2 - Lista de e-mails <nome>José Saraiva</nome> <email>[email protected]</email> </aluno> </meic> </alunos> Ilustração 1 - Documento “alunos.xml” Para o efeito deve completar o documento “listar.xsl” seguinte: <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" version="1.0" encoding="ISO-8859-1" /> <xsl:template match="/"> <html> <body> <h3>Lista de e-mails:</h3> <table> <xsl:for-each select="/alunos_____________________________"> <xsl:sort select="______________________________________"/> <tr> <td> <xsl:value-of select="____________"/> </td> <td>:</td> <td> <xsl:value-of select="____________"/> </td> </tr> </xsl:for-each> </table> <hr/> LEIC: <xsl:value-of select="count(/alunos______________________)" /> MEIC: <xsl:value-of select="____________________________________" /> TOTAL: <xsl:value-of select="____________________________________" /> <hr/> </body> </html> </xsl:template> </xsl:stylesheet> “Sistemas de Informação 1” – 1ª Época / 2º Semestre / 2007/2008 Pág. 6 / 6