Avisos. SQL: Visões. Roteiro SELECT. Suporte de SQL para OLAP SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Cronograma das próximas aulas

Documentos relacionados
Roteiro. SQL: Visões. Suporte de SQL para OLAP SELECT. Detalhando GROUP BY SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Consultas Avançadas Visões

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

Exercício Aula Passada. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada

Roteiro. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada

SQL DML. SQL Linguagem de Manipulação de Dados SELECT SELECT SELECT SELECT

GBC043 Sistemas de Banco de Dados

Discussão exercício aula 18. SQL Linguagem de Manipulação de Dados. Discussão exercício aula 18. Discussão exercício aula 18 SQL.

Visão & Visão Materializada. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Rápida revisão do Modelo Relacional

IMPLEMENTAÇÃO DE BANCO DE DADOS

Linguagem SQL Comando SELECT Agrupamento de Resultados

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

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

A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de Perryridge

Introdução ao PostgreSQL

Ordenação de tuplos order by

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

Programação com Acesso a Banco de Dados

Linguagem de Consulta - SQL

GBC043 Sistemas de Banco de Dados

SQL (Tópicos) Structured Query Language

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

ANÁLISE E PROJETO DE BANCO DE DADOS

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

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho

Fundamentos de SQL. Curso: Técnico em Redes de Computadores Disciplina: Tecnologias e Linguagem de Banco de dados Professor: Rodrigo da Rocha

SQL. Agregações e agrupamentos. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

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

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

Sintaxe do comando SELECT

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única

Aula 11 SBD SQL Parte 3. Profa. Elaine Faria UFU

Licenciatura em Informática

Linguagem de Consulta Estruturada SQL- DML

Álgebra Relacional e SQL

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL

Prof. Fabiano Taguchi

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

SQL Structured Query Language. SQL Structured Query Language. SQL Structured Query Language. Composição do SQL. Composição do SQL.

TRABALHO DE DEPENDÊNCIA ETAPA 2

José Antônio da Cunha CEFET - RN. José Antônio - CEFET-RN

mod._1_teoria_sistemas de bancos de dados.doc

ÁLGEBRA E CÁLCULO RELACIONAL

Comandos de Manipulação

Projeto de Banco de Dados

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

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas

Bancos (Bases) de Dados

Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado

BCD29008 Banco de dados

Introdução ao Banco de Dados. Banco de Dados

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

Material Teórico. Cláusula GROUP BY e HAVING. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque

Marcelo Henrique dos Santos

SQL Básica DML. Prof. Marcos A. Schreiner. 22 de outubro de Curso de Licenciatura em Computação

Oracle Database 10g: Fundamentos de SQL e PL/SQL

GBC043 Sistemas de Banco de Dados

Bancos de Dados IV. OLAP e Cubos de Dados. Rogério Costa

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

Unipar Universidade Paranaense Disciplina: Banco de Dados II 3ª Série Profª: Késsia Marchi Profa. Késsia Marchi

Orientações. Transações - PostgreSQL. Relembrando: Propriedades desejáveis. Abrir Prompt de comando ROLLBACK

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

Aula 05. Evandro Deliberal

SQL-99: Esquema de BD EMPRESA

Modelagem Multidimensional - Nível Físico -

Bases de Dados. DML Data Manipulation Language Parte 3

SQL. Prof. Roger Cristhian Gomes

Banco de Dados. Prof. Dr. Joel da Silva SQL - Introdução

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

Múltiplas Tabelas. Disciplina de Banco de Dados

PLANO DE ENSINO. PRÉ-REQUISITO: Modelagem e Programação Orientada a Objetos. PROFESSORA RESPONSÁVEL: Roberta Macêdo Marques Gouveia

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

Conteúdo Segunda Prova. Revisão Segunda Prova. Relembrando: operações. Álgebra Relacional. Seleção. Projeção. Data da prova: 23/05.

Introdução a Bancos de Dados

Banco de Dados. Prof. Antonio

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello

Introdução. Introdução. Álgebra Relacional. Linguagens formais de Consulta Modelo Relacional. O que foi visto até agora...

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

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

Álgebra Relacional e SQL operações de interesse

SQL Comandos para Relatórios e Formulários. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

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

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

Projeto de Banco de Dados

Tecnologias e Linguagens para Banco de Dados II. Funções de Agregação. Usando funções de agregação Funções de agregação com valores NULL

Avisos. Sumário. Atividade em lab Aula 29. Atividade em lab Aula 29. Programando com SQL Triggers EXERCÍCIO LAB SP. Vista da segunda prova

INF01145 Fundamentos de Banco de Dados Plano de ensino

Bases de Dados. DML Data Manipulation Language Parte 2

SQL DML. Frederico D. Bortoloti

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo.

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

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

Bancos de Dados Notas de Aula Introdução Prof. Dr. Daniel A. Furtado

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

Transcrição:

Ciência da Computação GBC043 Sistemas de Banco de Dados Avisos SQL: Visões Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br Bloco B - sala 1B137 1 semestre de 2019 Cronograma das próximas aulas 10/05 Discussão mapeamento projeto e desenvolvimento do projeto 10/05 Lab SQL DML 16/05 (quinta-feira) aula em laboratório Lab 3 17/05 (sexta-feira) revisão para a prova projeto GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 2 Roteiro Consultas Avançadas Visões SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 3 GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 4 Suporte de SQL para OLAP SELECT OLAP SQL Artigo de pesquisadores do Microsoft Research Gray et al., Data Cube: A Relational Aggregation Operator Generalizing Group-By, Cross-Tab and Sub- Totals. Data Mining and Knowledge Discovery, 1(1):29-54, 1997. http://dx.doi.org/10.1023/a:1009726021843 implementação no MS SQL Server Proposta ainda não foi padronizada A seguir, proposta do PostgreSQL implementada a partir da versão 9.5.6 SELECT <lista de atributos e funções> FROM <lista de tabelas> [ WHERE predicado ] [ GROUP BY grouping_element [,...] ] [ HAVING <condição para agrupamento> ] [ ORDER BY <lista de atributos> ] [ LIMIT { count ALL } ] ; http://www.postgresql.org/docs/9.2/static/sql-select.html GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 5 GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 6 1

[ GROUP BY grouping_element [,...] ] Agrupa em uma única linha todas as linhas selecionadas que compartilham os mesmos valores para as expressões de agrupamento grouping_element : ( ) expression ( expression [,...] ) ROLLUP ( { expression ( expression [,...] ) } [,...] ) CUBE ( { expression ( expression [,...] ) } [,...] ) ROLLUP e CUBE Operações de agrupamento mais complexas Os dados selecionados pelas cláusulas FROM e WHERE são agrupados separadamente por cada conjunto de agrupamentos especificado, agregados calculados para cada grupo, assim como para as cláusulas GROUP BY simples GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 7 GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 8 : Pedidos 3 Nike G 3 4 Adidas G 6 : Pedidos SELECT marca, SUM(qtde) GROUP BY marca marca SUM(qtde) -------- ------------- GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 9 GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 10 marca SUM(qtde) : Pedidos -------- ------------- Cod_cliente marca tamanho 30 qtde SELECT marca, SUM(qtde) GROUP BY ROLLUP(marca) marca tamanho SUM(qtde) : Pedidos -------- ----------- ------------- Adidas M 5 Adidas G 5 Nike M 5 Nike G 15 30 SELECT marca, tamanho, SUM(qtde) GROUP BY ROLLUP(marca, tamanho) GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 11 GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 12 2

marca tamanho SUM(qtde) : Pedidos -------- ----------- ------------- Adidas M 5 Adidas G 5 Nike M 5 Nike G 15 M 10 G 20 30 SELECT marca, tamanho, SUM(qtde) GROUP BY CUBE(marca, tamanho) Detalhando LIMIT Permite recuperar apenas uma parte das linhas geradas pelo resto da consulta GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 13 GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 14 Detalhando LIMIT 3 Nike G 3 4 Adidas G 6 GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 15 Detalhando LIMIT cod_cliente SUM(qtde) Cod_cliente marca -------------- tamanho --------- qtde 1 Adidas 5 M 111 1 Nike 4 M 9 2 3 Nike 3 G 7 3 4 Adidas G 6 /* Selecionar os três clientes que mais compraram */ SELECT cod_cliente, SUM(qtde) GROUP BY cod_cliente ORDER BY SUM(qtde) DESC LIMIT 3 GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 16 ME-R cod_livro cod_autor VISÕES Autor cod_autor nome nascimento M escreve N Livro N publica cod_livro título valor volume cod_editora 1 Editora cod_editora razão endereço cidade GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 17 GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 18 3

Modelo Relacional AUTOR = { COD_AUTOR, NOME, NASCIMENTO } ESCREVE = { COD_AUTOR, COD_LIVRO} LIVRO = { COD_LIVRO, TITULO, VALOR, VOLUME, COD_EDITORA } EDITORA = { COD_EDITORA, RAZAO, ENDERECO, CIDADE } Visão Em SQL tabela simples que é derivada de outras tabelas as tabelas base podem ser tabelas ou outras visões não existe necessariamente em sua forma física tabela virtual a definição de uma visão é armazenada no dicionário de dados que guarda a consulta que gerou a tabela GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 19 GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 20 Visão Utilidade forma de se especificar uma tabela que precisa ser acessada freqüentemente, embora essa tabela não exista fisicamente facilita a escrita de consultas complexas Pode restringir a visualização do conteúdo de uma tabela por meio da limitação das colunas que são exibidas e das linhas que são filtradas CREATE VIEW CREATE VIEW nome_visão (lista_de_atributos) AS <expressão_da_consulta> Especifica uma visão Características lista_de_atributos: opcional (função de renomeação) expressão_da_consulta: consulta para especificar o conteúdo da visão (SELECT... FROM... WHERE...) GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 21 https://www.tutorialspoint.com/postgresql/postgresql_views.htm GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 22 Criação da visão CREATE VIEW livro_autor AS SELECT nome, titulo FROM autor, escreve, livro WHERE autor.cod_autor = cod_autor_esc AND cod_livro_esc = cod_livro Perguntas quantos atributos a visão possui? qual a ordem desses atributos? Criação da visão CREATE VIEW livro_editora (titulo, editora) AS SELECT titulo, razao FROM livro, editora WHERE livro.cod_editora = editora.cod_editora Perguntas quantos atributos a visão possui? qual a ordem desses atributos? GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 23 GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 24 4

DROP VIEW DROP VIEW nome_visão Remove a definição de uma visão As tabelas base não são afetadas por esse comando s: DROP VIEW livro_autor; DROP VIEW livro_editora; GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 25 É possível executar operações de seleção, junção, inserção, atualização e remoção sobre uma visão, como se ela fosse uma tabela regular da base de dados, com apenas poucas restrições: Existem visões atualizáveis e visões read-only No PostgreSQL elas podem ser dos dois tipos http://www.postgresqltutorial.com/postgresql-views/ GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 26 Visões atualizáveis no PostgreSQL A consulta que define a visão possui apenas uma tabela na cláusula FROM A consulta que define a visão não possui as cláusulas: GROUP BY, HAVING, LIMIT, OFFSET, DISTINCT, WITH, UNION, INTERSECT, and EXCEPT A consulta que define a visão não possui nenhuma função de agregação, como: SUM, COUNT, AVG, MIN, MAX Visões materializadas no PostgreSQL Permite que os dados da visão sejam armazenados fisicamente São úteis para aplicações que necessitam de rápido acesso aos dados Data Warehouses Business Intelligence http://www.postgresqltutorial.com/postgresql-updatable-views/ GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 27 GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 28 Visões materializadas no PostgreSQL CREATE MATERIALIZED VIEW nome_visão AS consulta WITH [NO] DATA; WITH DATA para carregar os dados no momento da criação da visão WITH NO DATA não carrega os dados no momento da criação Visões materializadas no PostgreSQL Para carregar os dados em uma visão materializada REFRESH MATERIALIZED VIEW nome_visão; http://www.postgresqltutorial.com/postgresql-materialized-views/ GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 29 GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 30 5

Usando o comando SELECT em uma visão O comando SELECT funciona da maneira usual com uma visão Usando o comando SELECT em uma visão - s CREATE VIEW autor_editora (autor, titulo, editora) AS SELECT nome, titulo, razao FROM autor, escreve, livro, editora WHERE autor.cod_autor = cod_autor_esc AND cod_livro_esc = cod_livro AND livro.cod_editora = editora.cod_editora SELECT * FROM autor_editora SELECT editora, COUNT(*) FROM autor_editora GROUP BY (editora) GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 31 GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 32 Visão Comandos adicionais Para visualizar no dicionário de dados Selecionar a tabela pg_views Para substituir uma visão Eliminar com o comando DROP e depois empregar o comando CREATE VIEW Usar a opção OR REPLACE do comando CREATE VIEW Essa opção preserva as autorizações de segurança existentes Bibliografia Elmasri, Ramez; Navathe, Shamkant B. Sistemas de banco de dados. 4 ed. São Paulo: Addison Wesley, 2005, 724 p. Bibliografia: p. [690]-714. Deitel, H. M. Java: como programar. 6 ed. São Paulo: Pearson Prentice Hall, 2005. GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 33 GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 34 Leitura complementar para casa Elmasri Navathe (6ª Edição) Capítulo 5 Capítulo 5 Seção 5.3 Visões Manual do SGBD PostgreSQL Explorar as outras particularidades dos comandos apresentados http://www.postgresql.org/docs/manuals/ Conteúdo Segunda Prova Álgebra Relacional SQL (tudo sobre SQL) DDL DML Visões (NÃO! FICA PARA A 3ª PROVA) Data da prova: 23/05 Haverá uma lista adicional de exercícios no site da disciplina GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 35 GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 36 6

Sugestão de revisão das matérias anteriores... Revisar as notas de aula e as suas anotações Leituras complementares para casa Fazem parte do conteúdo da prova!!! Ao final de cada capítulo existem as seções Resumo e Perguntas de Revisão que sumarizam os principais conceitos abordados Revisar as listas de exercícios Fazer exercícios adicionais disponíveis nos livros da bibliografia da disciplina GBC043 Sistemas de Banco de Dados - 1 semestre de 2019 37 7