U.C Fundamentos de Bases de Dados Resolução e Critérios de Correção INSTRUÇÕES:

Documentos relacionados
Fundamentos de Bases de Dados e-fólio B

Fundamentos de Bases de Dados e-fólio B Resolução e Critérios de Correção

U.C Fundamentos de Bases de Dados Resolução e Critérios de Correção INSTRUÇÕES

Fundamentos de Bases de Dados e-fólio B Resolução e Critérios de Correção

U.C Fundamentos de Bases de Dados Resolução e Critérios de Correção INSTRUÇÕES

Fundamentos de Bases de Dados e-fólio C Resolução e Critérios de Correcção

Fundamentos de Bases de Dados e-fólio C Resolução e Critérios de Correção

Fundamentos de Bases de Dados e-fólio A Resolução e Critérios de Correção

Fundamentos de Bases de Dados e-fólio A Resolução e Critérios de Correção

Fundamentos de Bases de Dados e-fólio B Resolução e Critérios de Correção

Fundamentos de Bases de Dados e-fólio C. Resolução e Critérios de Correção

Fundamentos de Bases de Dados e-fólio A Resolução e Critérios de Correcção

Análise de Sistemas e-fólio A Resolução e Critérios de Correção

Análise de Sistemas e-fólio A Resolução e Critérios de Correção

Sistemas de Gestão de Bases de Dados e-fólio C. Resolução e Critérios de Correção

Análise de Sistemas e-fólio B. Resolução e Critérios de Correção

Análise de Sistemas e-fólio A

21177 Modelação de Sistemas de Informação e-fólio B Resolução e Critérios de Correção

21177 Modelação de Sistemas de Informação e-fólio B

21177 Modelação de Sistemas de Informação e-fólio B Resolução e Critérios de Correção

21177 Modelação de Sistemas de Informação e-fólio A Resolução e Critérios de Correção

Sistemas de Gestão de Bases de Dados e-fólio A. Resolução e Critérios de Correção

21177 Modelação de Sistemas de Informação e-fólio A Resolução e Critérios de Correção

Sistemas de Gestão de Bases de Dados e-fólio C. Resolução e Critérios de Correção

21177 Modelação de Sistemas de Informação e-fólio B

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

Resolução e Critérios de Correção U.C Fundamentos de Bases de Dados. 28 de janeiro de 2019 INSTRUÇÕES

Rápida revisão do Modelo Relacional

Comandos de Manipulação

SQL (Tópicos) Structured Query Language

U.C Sistemas de Gestão de Bases de Dados Resolução e Critérios de Correção INSTRUÇÕES

Utilizando o Postgres - comandos SQL para a manipulação de dados

Linguagem SQL (Parte II)

Introdução ao PostgreSQL

Época de Recurso Sem consulta

IMPLEMENTAÇÃO DE BANCO DE DADOS

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

Resolução e Critérios de Correção U.C Fundamentos de Bases de Dados. 26 de Julho de 2012 INSTRUÇÕES

Resolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 26 de fevereiro de 2016

Conceitos básicos. Funcionario SIAPE Nome Lotacao Cargo Salario Admissao

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

Resolução e Critérios de Correção U.C Fundamentos de Bases de Dados. 27 de janeiro de 2014 INSTRUÇÕES

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

Exame de Recurso de Base de Dados Universidade do Algarve 03/Fev/2005, (duração: 2 horas)

SQL. Prof. Roger Cristhian Gomes

Conceitos SQL SQL 19/03/2017 O que é dado? O que é BD? O que é uma informação? O que é SGBD? O que é SQL? O que é BD? O que é SGBD?

1º Teste Sem consulta

BCD29008 Banco de dados

Múltiplas Tabelas. Disciplina de Banco de Dados

1º Teste Sem consulta

Banco de Dados. Professora: Luciana Faria

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

Resolução e Critérios de Correção U.C Fundamentos de Bases de Dados. 26 de janeiro de 2015 INSTRUÇÕES

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

Planificação Anual. Departamento Expressões e Tecnologias

BANCO DE DADOS PARA WEB

Resolução e Critérios de Correção U.C Fundamentos de Bases de Dados. 28 de julho de 2014 INSTRUÇÕES

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

Introdução ao Banco 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. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

Sumário Introdução Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL A Composição deste Livro 3

A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S )

Apresentação Modelo e SQL. André Luiz Montevecchi

PSI Linguagem de Definição de dados. Módulo 15

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais

SQL Structured Query Language

Disciplina: Banco de Dados Tema: SQL Parte 2

Bases de Dados 2015/2016. Enunciado do Projeto Parte 2. O trabalho a desenvolver para a primeira parte do projeto consiste nos seguintes itens:

L Q S m e g a u g n Li A

Época de Recurso Sem consulta

Linguagem SQL. Comandos Básicos

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

Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT

Revisão de Bancos de Dados

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

Resolução e Critérios de Correção U.C Fundamentos de Bases de Dados. 20 de julho de 2015 INSTRUÇÕES

Bancos (Bases) de Dados

1º Teste Sem consulta

Revisão Banco de Dados

FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA. Módulo de Programação Prof. Bruno Maciel

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

BANCO DE DADOS WEB AULA 9. concessão e revogação de privilégios. professor Luciano Roberto Rocha.

Teste Exemplo Revisão da tentativa 1

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer

'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?

ALTERANDO O NOME DA TABELA ALTER TABLE DEPTO RENAME TO TAB_DEPARTAMENTO

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

Linguagem de Consulta Estruturada (SQL)

MySql. Introdução a MySQL. Andréa Garcia Trindade

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011

Bases de Dados. DDL Data Definition Language

BANCO DE DADOS II CONVENIÊNCIA

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

Transcrição:

e-fólio B U.C. 21053 Fundamentos de Bases de Dados 2017-2018 Resolução e Critérios de Correção INSTRUÇÕES: 1) O e-fólio é constituído por 5 perguntas. A cotação global é de 5 valores. 2) O e-fólio deve ser entregue num único ficheiro PDF, não zipado, com fundo branco, com perguntas numeradas e sem necessidade de rodar o texto para o ler. Penalização de 10% a 100%. 3) Não são aceites e-fólios manuscritos, i.e. tem penalização de 100%. 4) O nome do ficheiro deve seguir a normal efoliob + <nº estudante> + <nome estudante com o máximo de 3 palavras> 5) Na primeira página do e-fólio deve constar o nome completo do estudante bem como o seu número. Penalização de 10% a 100%. 6) Durante a realização do e-fólio, os estudantes devem concentrar-se na resolução do seu trabalho individual, não sendo permitida a colocação de perguntas ao professor ou entre colegas. 7) A interpretação das perguntas também faz parte da sua resolução, se encontrar alguma ambiguidade deve indicar claramente como foi resolvida. 8) A legibilidade, a objectividade e a clareza nas respostas serão valorizadas, pelo que, a falta destas qualidades serão penalizadas. A informação da avaliação do estudante está contida no vetor das cotações: Questão: 1 2 3 4 5 Cotação: 10 10 10, 5 15 décimas

1) Considere a seguinte figura relativa com a estrutura hierárquica com 5 níveis de uma empresa: a) (1/2 valor) crie uma base de dados em SQL que suporte a estrutura hierárquica b) (1/2 valor) crie uma consulta em SQL que devolva o número de níveis na empresa a) A tabela que contêm um ID que é a chave principal, um Nome e uma chave estrangeira IDPai que aponta (recursivamente) para a linha pai que pode ser NULL no caso de ser raiz. CREATE TABLE Relacao ( ID INT, Nome VARCHAR(20), IDPai INT, PRIMARY KEY (ID), FOREIGN KEY (IDPai) REFERENCES Relacao(ID) ); b) Neste caso usamos uma consulta recursiva WITH RelacaoTmp AS ( SELECT ID, IDPai, 1 AS Nivel -- nível da raiz FROM Relacao AS R1 WHERE IDPai IS NULL UNION ALL SELECT ID, IDPai, Nivel+1 -- recursividade restantes níveis FROM Relacao AS R2 JOIN RelacaoTmp ON RelacaoTmp.ID=R2.IDPai) SELECT MAX (Nivel) AS NumeroNiveis FROM RelacaoTmp - a) 5 dec. criar tabela com ID (chave principal) e IDPai (chave esctrageira) - b) 5 dec. criar consulta recursiva com início da recursividade na raiz - soluções com numerações prévias: - 50%

2) Considere 3 utilizadores B1, B2 e B3 e suponha que o utilizador B1 cria a tabela FACTURA numa base de dados, de seguida diga: 2.a) (1/3 valor) Como B1 pode transmitir o privilégio de acesso a FACTURA a B2 e permite-lhe que propague esse privilégio a outros. A transferência de privilégios é realizada por um utilizador com o comando GRANT, com a sintaxe: GRANT <lista privilégios: ALL, SELECT, UPDATE INSERT, DELETE> ON <tabela, view> TO <utilizador ou lista> GRANT SELECT ON FATURA TO B2 WITH GRANT OPTION; 2.b) (1/3 valor) Como B2 transmite o privilégio de acesso a FACTURA a B3. GRANT SELECT ON FATURA TO B3; 2.c) (1/3 valor) Como B1 cancela todos os privilégios de acesso a FACTURA. A remoção de privilégios é realizada por um utilizador com o comando REVOKE, com a sintaxe: REVOKE <lista privilégios: ALL, SELECT, UPDATE INSERT, DELETE> ON <tabela, view> FROM <utilizador ou lista> REVOKE SELECT ON FATURA FROM B2 CASCADE; - falta CASCADE 1 décima

3) Considere a seguinte base de dados e escreva em Álgebra Relacional, consideração os operadores de,, >< e G para as funções agregadoras de G sum, G count, G average, etc. a) (1/2 valor) Qual o valor monetário das encomendas por estado? b) (1/2 valor) Qual o número do cliente com a maior soma de pagamentos no ano 2017?

Respostas a) (1/2 valor) Qual o valor monetário das encomendas por estado? temp π status, quantityordered*priceeach (orderdetails >< orders) as amount resultado status, Gsum (amount) [temp] Podemos ainda desenhar a árvore do plano de execução: status, Gsum(amount) π status, (quantityordered * priceeach) as amount orderdetails >< orders - 1/3 cotação: utilizar as tabelas orders e orderdetails - 1/3 cotação: realizar o produto de quantidade pelo preço - 1/3 cotação: calcular a soma por status - dificuldade na leitura: - 1 a -4 décimas

b) (1/2 valor) Qual o número do cliente com a maior soma de pagamentos no ano 2017? o número do cliente corresponde a payments.customernumber Em SQL teremos: CREATE VIEW Consulta1 SELECT customernumber, SUM (amount) as total FROM payments WHERE paymentdate>= 2017-01-01 AND paymentdate<= 2017-12-31 GROUP BY customernumber) alias T CREATE VIEW Consulta2 SELECT T.customerNumber FROM Consulta1 T WHERE T.total = (SELECT MAX(T.total) FROM T) Podemos ainda desenhar a árvore do plano de execução: total=gmax(total) customernumber, Gsum(amount) as total paymentdate>= 2017-01-01 /\ paymentdate<= 2017-12-31 (payments) E finalmente em álgebra relacional: temp1 paymentdate>= 2017-01-01 /\ paymentdate<= 2017-12-31 [payments] temp2 customernumber, Gsum(amount) as total [temp1] resultado total= Gmax(total) [temp2] - 1/3 cotação: utilizar a tabela payments - 1/3 cotação: realizar a soma amount - 1/3 cotação: encontrar o cliente cujo totla é igual ao máximo do total - dificuldade na leitura: - 1 a -4 décimas

4) (1/2 valor) Implemente em SQL o operador FACTOR para o exemplo roster (passenger, class, smoking) pp. 38 da bibliografia de David Maier do Capítulo 3. -- Criação da tabela roster2 CREATE TABLE roster2 AS (SELECT DISTINCT CLASS, SMOKING FROM roster ORDER BY CLASS DESC, SMOKING DESC); -- Inserção da coluna LINK na primeira posição ALTER TABLE roster2 ADD LINK INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST; -- Criação da tabela roster1 CREATE TABLE roster1 AS (SELECT roster.passenger, roster2.link FROM roster, roster2 WHERE roster.class=roster2.class AND roster.smoking=roster2.smoking); - 1/2 cotação: roster2-1/2 cotação: roster1

5) Projeto de Bases de Dados Numa empresa multinacional, dispersa por vários continentes, vários países e várias cidades existem escritórios com empregados. Os dados dos empregados incluem o nome, contactos (e-mails e telemóvel), função atual, salário atual e escritório atual. Cada empregado tem um histórico. Os empregados podem mudar de escritório, de função e de salário durante a sua vida na empresa. Podem ainda sair e voltar a entrar na empresa passado algum tempo. Para cada função, existe um título e um salário máximo e mínimo. Pretende-se manter a informação atual e histórica de todos os empregados da empresa multinacional. 5.a) (1/2 valor) Comece por identificar as diferentes entidades do Modelo Entidade- Relação. De seguida, identifique os relacionamentos entre as entidades do Modelo Entidade-Relação. Dê um nome ao relacionamento. Classifique cada relacionamento quanto à cardinalidade (1:1, 1:N, N:N). De seguida, desenhe o diagrama do Modelo Entidade-Relação. Identifique os relacionamentos e os atributos das entidades.

Entidades: escritorio (id_escritorio, nome_escritório, continente, país, cidade) empregado (id_empregado, nome, email, telemovel ) historico (id, id_empregado, id_escritorio, id_funcao, salario, data_início, data_fim) funcao (id_funcao, título, salário_máximo, salário_mínimo) Relações: escritorio-historico, 1:N, um escritório tem um ou mais empregados ativos função-historico, 1:N, uma função tem ou mais empregados ativos empregado-historico, 1:N, cada empregado tem um ou mais registos no histórico Nota: empregados ativo i.e. com data_fim=null - 1/2 cotação: entidades e relações (cardinalidade) - 1/2 cotação: modelos E/R

5.b) (1/2 valor) Desenhe a base de dados relacional correspondente ao modelo anterior, em que nas ligações de 1:N, a tabela com uma única linha é desenhada em cima e da tabela com várias linhas é desenhada por baixo. A base de dados não deve exceder as 7 tabelas. Se utilizar ligações que denotem transitividade, deve justificá-la convenientemente. - 1/2 cotação: tabelas - 1/2 cotação: cardinalidade - valoriza-se a simplicidade, a representação e a não-transitividade

5.c) (1/2 valor) Identifique dois fatores críticos de sucesso e escreva as respetivas consultas em SQL. FCS_1 - Consultar o total de salários dos empregados, por escritório para os empregados ativos i.e. com data_fim=null SELECT id_escritorio, SUM(empregado.salario) FROM historico WHERE data_fim =NULL GROUP BY id_escritorio FCS_2 - Consultar o histórico de um empregado com base no nome: SELECT * FROM historico WHERE empregado.nome= X - 1/2 cotação: FCS1-1/2 cotação: FCS2