UTFPR - Universidade Tecnológica Federal do Paraná. Processamento e otimização de consultas
|
|
- Rayssa Sacramento Nobre
- 6 Há anos
- Visualizações:
Transcrição
1 UTFPR - Universidade Tecnológica Federal do Paraná Processamento e otimização de consultas Leyza Baldo Dorini 04/Nov/2009
2 Programação da aula Introdução: processamento e otimização de consultas Etapas: Tradução Transformação Definição do plano de execução
3 Introdução Os SGBDs são responsáveis por uma série de tarefas que antes ficavam sob responsabilidade do programador. Dentre estas Processamento e otimização de consultas Gerenciamento de transações Recuperação de falhas
4
5 Processamento de consultas Refere-se ao conjunto de atividades envolvidas na extração de dados de um BD. Tais atividades envolvem: Tradução de linguagens de alto nível em expressões que sejam mais adequadas para serem utilizadas no nível físico do sistema de arquivos Uma variedade de transformações para otimização de consultas Avaliação/execução de consultas
6 Processamento de consultas
7 Processamento de consultas Tradução: é responsável pelas etapas de: 1. análise léxica (identifica cláusulas SQL e nomes) 2. análise sintática (validação da gramática-regras sintáticas) 3. análise semântica (nomes usados de acordo com a estrutura do esquema) 4. conversão para uma árvore algébrica da consulta (recebe a consulta em linguagem de alto nível (consulta SQL, p. ex.), e retorna uma representação interna (árvore algébrica da consulta)
8 Processamento de consultas Transformação: é responsável pela geração da árvore algébrica otimizada a partir da árvore algébrica da consulta. A árvore algébrica otimizada é uma árvore de consulta equivalente (chega ao mesmo resultado, mas que processa de forma mais eficiente). Também chamada de fase de Otimização Algébrica.
9 Processamento de consultas Definição do plano de execução: é a fase de análise de alternativas de definição de estratégias de acesso (escolha de algoritmos para implementação de operações). Leva em conta a existência de índices, estimativas sobre os dados (tamanho de tabelas, etc,...). Gera uma árvore com indicação de estratégias de acesso.
10 Processamento de consultas Gerador de código: recebe a árvore com indicação de estratégias de acesso (plano de execução) e gera código executável correspondente. Processador run time: recebe o código executável, processa a consulta e retorna os resultados ao usuário.
11 Otimização de consultas A otimização de consultas é feita basicamente em duas etapas: Otimização Algébrica (ou baseada em regras ou heurística) Plano de execução (ou baseada em custos)
12 Otimização de consultas: otimização algébrica Otimização algébrica É responsável por gerar uma árvore algébrica otimizada, equivalente à árvore inicial da consulta, mas que processa mais rapidamente. Recebe como entrada a árvore da consulta inicial, e gera na saída uma árvore da consulta otimizada. Tem como base as regras de equivalência algébrica e o algoritmo de otimização algébrica
13 Otimização de consultas: otimização algébrica Otimização algébrica (considerações): As regras de equivalência algébrica devem ser conhecidas pelo otimizador para que possam ser geradas transformações válidas; O algoritmo de otimização algébrica indica a ordem de aplicação das regras e de outros processamentos de otimização.
14 Otimização de consultas: plano de execução Tem como objetivo analisar alternativas de processamento e escolher a melhor alternativa dentre as estimadas. Para avaliar o custo de uma alternativa, analisa estimativas sobre os dados (tamanho das tabelas, existência de índices, seletividade,...) e o respectivo custo dos algoritmos de processamento de operações algébricas.
15 Processamento de consultas Em resumo: Tradução Transformação Criação de plano (estratégia) de acesso A princípio, vamos ver de maneira global. Depois, veremos os detalhes envolvidos em cada etapa.
16 Processamento de consultas
17 PC: tradução
18 PC: tradução O primeiro passo consiste em traduzir a consulta expressada em uma linguagem de alto nível (ex: SQL) para uma forma mais adequada para ser utilizada como representação interna de uma consulta ao sistema.
19 PC: tradução Consulta SQL Adequada para uso humano; Não adequada ao processamento pelo SGBD: descreve uma sequência de passos (procedimento) a ser seguida; Não descreve uma estratégia eficiente para a implementação de cada passo no que tange o acesso em nível físico (arquivos do BD).
20 PC: tradução Exemplo de representação adequada: baseada na álgebra relacional, criando uma árvore (algébrica) da consulta. Ex: SELECT m.crm, m.nome, a.andar FROM Medicos m, Ambulatorio a WHERE m.espec = ortopedia AND a.andar = 2 AND m.nro = a.nro A árvore é a estrutura que representa o mapeamento da consulta para a álgebra relacional
21 PC: tradução Os nós internos representam operações algébricas e os nós folha as relações do BD ou resultados intermediários Neste passo, o analisador sintático também verifica a sintaxe da consulta do usuários, se os nomes das relações existem, etc
22 PC: tradução (visão geral) De forma geral, uma consulta SQL é traduzida em uma expressão equivalente da álgebra relacional estendida e é representada em uma estrutura de dados de árvore de consulta que é então otimizada Em geral, as consultas SQL são decompostas em blocos de consultas, que formam as unidades básicas que podem ser traduzidas em operadores algébricos otimizados
23 PC: tradução Um bloco de consulta contém uma única expressão SELECT-FROM-WHERE, bem como cláusulas GROUP BY e HAVING, se elas forem partes do bloco Por isso, consultas consultas aninhadas dentro de uma consulta são identificadas por blocos separados (não-correlacionadas é + fácil) Como a SQL inclui operadores de agregacão (MAX, MIN...) eles também devem estar incluídos na álgebra relacional estendida
24 PC: tradução Considere a seguinte consulta SQL: SELECT LNAME, FNAME FROM EMPLOYEE WHERE SALARY > (SELECT (MAX) SALARY FROM EMPLOYEE WHERE DNO = 5);
25 PC: tradução Essa consulta inclui uma subconsulta aninhada, seria decomposta em 2 blocos. Bloco interno (SELECT (MAX) SALARY FROM EMPLOYEE WHERE DNO = 5) Bloco externo SELECT LNAME, FNAME FROM EMPLOYEE WHERE SALARY > c
26 PC: tradução SELECT LNAME, FNAME FROM EMPLOYEE WHERE SALARY > ( SELECT MAX (SALARY) FROM EMPLOYEE WHERE DNO = 5); SELECT FROM WHERE LNAME, FNAME EMPLOYEE SALARY > C SELECT MAX (SALARY) FROM EMPLOYEE WHERE DNO = 5 π LNAME, FNAME (σ SALARY>C (EMPLOYEE)) F MAX SALARY (σ DNO=5 (EMPLOYEE))
27 PC: transformação
28 PC: transformação A base é composta por: Regras de equivalência algébrica: devem ser conhecidas pelo otimizador para que possam ser geradas transformações válidas Algoritmo de otimização algébrica indica a ordem de aplicação das regras e de outros procedimentos de otimização Transformação: Entrada: árvore da consulta inicial; Saída: árvore da consulta otimizada (pode manter a mesma árvore).
29 Transformações de Expressões Relacionais Uma consulta pode ser expressa de diversas maneiras diferentes, com diferentes custos de avaliação. Equivalêcia de Expressões; Regras de Equivalência; Exemplos de Transformações;
30 Equivalência de expressões: exemplo Considerando as tabelas a seguir e suas instâncias, encontre os nomes de todos os clientes que possuem uma conta em qualquer agência localizada no Brooklyn. Para resolver esta expressão, seguindo a forma como ela está escrita, é necessário criar uma relação intermediária grande
31 Equivalência de expressões
32 Equivalência de expressões
33 Equivalência de expressões Entretanto, somente as tuplas que pertencem a agências localizadas no Brooklyn são interessantes. Reescrevendo a consulta, consegue-se eliminar a necessidade de considerar as tuplas que não têm cidade_agência = Brooklyn, reduzindo o tamanho do resultado intermediário:
34 Equivalência de expressões
35 Equivalência de expressões
36 Equivalência de expressões Dada uma expressão de álgebra relacional, a função do otimizador de consulta propor um plano de avaliação da consulta que gere o mesmo resultado da expressão fornecida e que seja uma maneira menos onerosa de gerar o resultado (ou que, pelo menos, não seja muito mais cara que a maneira mais barata). Para isso o otimizador precisa gerar planos alternativosque produzam o mesmo resultado da expressão dada e escolher o menos caro.
37 Regras de Equivalência Algébrica Uma regra de equivalência diz que expressões de duas formas são equivalentes se podemos transformar uma na outra preservando a equivalência. Preservar a equivalência significa que as relações geradas pelas duas expressões têm o mesmo conjunto de atributos e contêm o mesmo conjunto de tuplas, embora seus atributos possam estar ordenados de forma diferente.
38 Regras de Equivalência Algébrica As regras de equivalência são usadas pelo otimizador para transformar expressões em outras logicamente equivalentes. Assuma que: θ: denota predicados; L: denotas listas de atributos; E: denota expressões da álgebra relacional.
39
40
41
42
43
44
45 Exemplos de transformações
46 Otimização Heurística Uma árvore de consulta pode ser transformada passo a passo em outra árvore de consulta mais eficiente. Entretanto é preciso assegurar que os passos de transformação sempre levem a uma árvore de consulta equivalente. Determinadas regras de transformação preservam essa equivalência.
47
48
49
50
51
52
53
54 Resumindo... Determinar a árvore algébrica inicial correspondente a esta consulta Fazer seleções o mais cedo possível Converter produtos cartesianos seguidos de seleção em junção Fazer projeções o mais cedo possível
55 PC: definição do plano de acesso (execução)
56 PC: definição do plano de acesso (execução) Análise de alternativas de definição de estratégias de acesso: escolha de algoritmos para implementação de operações, existência de índices, estimativas sobre os dados (tamanho de tabelas, por exemplo) Considera algoritmos predefinidos para implementação de passos do processamento e estimativas sobre os dados
57 A Escolha de Planos de Avaliação Em outras palavras... A geração de expressões é apenas parte do processo de otimização de consultas. Um plano de avaliação define exatamente qual algoritmo será usado para cada operação e como a execução das operações é coordenada.
58 A Escolha de Planos de Avaliação
59 Próxima aula... Veremos otimização baseada em custos com mais detalhes!!
60 Otimização baseada em custo O otimizador baseado no custo gera uma faixa de planos de avaliação a partir de uma determinada consulta usando as regras de equivalência e escolhe aquele de menor custo. Para uma consulta complexa, o número de planos diferentes por ser muito grande.
61 PC: otimizador de consultas A transformação e a definição do plano de execução compõem o otimizador de consultas
62 Otimização de consultas Em resumo, a otimização de consultas é o processo de selecionar o plano de execução mais eficiente enttre as muitas estratégias possíveis Isso evita que o usuário tenha que fornecer a melhor consulta Em resumo: otimização de consultas é o processo de melhoria da estratégia de processamento
63 Exercício!!!
64
Administração de. José Antônio da Cunha CEFET-RN
Administração de Banco de Dados José Antônio da Cunha CEFET-RN O Otimizador de um Sistema de Gerenciamento de Banco de Dados Relacionais (SGBDR) é responsável por analisar uma consulta SQL e escolher qual
Leia maisOTIMIZAÇÃO DE CONSULTAS RELACIONAIS TRABALHO DE PÓS-GRADUAÇÃO
UNIVERSIDADE ESTADUAL DE CAMPINAS PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO INSTITUTO DE COMPUTAÇÃO OTIMIZAÇÃO DE CONSULTAS RELACIONAIS TRABALHO DE PÓS-GRADUAÇÃO Alunos: João Paulo Silva Cintra Renato Capello
Leia mais3 Plano de Execução de Consultas
Sumário 1 Introdução ao Processamento de Consultas 2 Otimização de Consultas 3 Plano de Execução de Consultas 4 Introdução a Transações 5 Recuperação de Falhas 6 Controle de Concorrência 7 Fundamentos
Leia maisProcessamento da Consulta. Processamento da Consulta
Processamento da Consulta Equipe 05 Adriano Vasconcelos Denise Glaucia Jose Maria Marcigleicy Processamento da Consulta Refere-se ao conjunto de atividades envolvidas na extra de dados de um banco de dados.
Leia maisSubconsultas ou Consultas Aninhadas
Subconsultas ou Consultas Aninhadas Forma alternativa de especificar consultas envolvendo relacionamentos entre tabelas Otimização filtragens prévias de dados na subconsulta apenas tuplas/atributos de
Leia maisÁlgebra Relacional e SQL
Álgebra Relacional e SQL Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Álgebra Relacional Maneira teórica de se manipular o banco de dados relacional Linguagem de consulta procedural usuários
Leia maisBases de Dados BDDAD. Linguagem SQL. Comando SELECT Divisão Algébrica. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9
BDDAD Bases de Dados Linguagem SQL Comando SELECT Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9 Operador Sumário Introdução Expressão Equivalente em SQL Soluções Tradução Directa de Expressão Algébrica Quantificação
Leia maisCompiladores. Conceitos Básicos
Compiladores Conceitos Básicos Processadores de Linguagem De forma simples, um compilador é um programa que recebe como entrada um programa em uma linguagem de programação a linguagem fonte e o traduz
Leia maisUso de Índices na Otimização e Processamento de Consultas. Otimização e Processamento de Consultas. Otimização e Processamento de Consultas
usuário processador de E/S gerador de respostas Uso de Índices na Otimização e Processamento de Consultas Profa. Dra. Cristina Dutra de Aguiar Ciferri analisador controle de autorização verificador de
Leia maisUniversidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores
Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores 2013-2 Compilador para a Linguagem Cafezinho Especificação dos trabalhos: T2 (Geração da Representação Intermediária e Análise
Leia maisBanco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas
Processamento e Otimização de Consultas Banco de Dados Motivação Consulta pode ter sua resposta computada por uma variedade de métodos (geralmente) Usuário (programador) sugere uma estratégia para achar
Leia maisIntrodução à Programação
Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira
Leia maisO Modelo e a Álgebra Relacional
O Modelo e a Álgebra Relacional O Modelo Relacional Modelo de dados, que se baseia no princípio em que todos os dados estão guardados em tabelas Baseado em lógica de predicados e na teoria de conjuntos.
Leia maisINE 5336 Banco de Dados II
UFSC-CTC-INE Curso de Ciências da Computação INE 5336 Banco de Dados II Ronaldo S. Mello 2008/2 http://www.inf.ufsc.br/~ronaldo/ine5336 Programa da Disciplina Objetivo Conteúdo Avaliação Bibliografia Cronograma
Leia maisSubconsulta na Cláusula FROM
Subconsulta na Cláusula FROM Gera uma tabela derivada a partir de uma ou mais tabelas, para uso na consulta externa otimização: filtra linhas e colunas de uma tabela que são desejadas pela consulta externa
Leia maisINE 5616 Banco de Dados II
UFSC-CTC-INE Curso de Sistemas de Informação INE 5616 Banco de Dados II Ronaldo S. Mello 2011/1 http://www.inf.ufsc.br/~ronaldo/ine5616 Programa da Disciplina Objetivo Conteúdo Avaliação Bibliografia Cronograma
Leia maisSubconsultas ou Consultas Aninhadas
Subconsultas ou Consultas Aninhadas Forma alternativa de especificar consultas envolvendo relacionamentos entre tabelas Otimização filtragens prévias de dados na subconsulta apenas tuplas/atributos de
Leia maisINE 5432 Banco de Dados II
UFSC-CTC-INE Curso de Ciências da Computação INE 5432 Banco de Dados II Ronaldo S. Mello 2010/1 http://www.inf.ufsc.br/~ronaldo/ine5432 Programa da Disciplina Objetivo Conteúdo Avaliação Bibliografia Cronograma
Leia maisÁLGEBRA E CÁLCULO RELACIONAL
UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO ERINALDO SANCHES NASCIMENTO ÁLGEBRA E CÁLCULO RELACIONAL MARINGÁ 2014 SUMÁRIO SUMÁRIO...1 1 INTRODUÇÃO...2 1.1
Leia maisAutômatos e Linguagens
Autômatos e Linguagens Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Agosto, 2016 1 / 41 Sumário 1 Compiladores 2 Linguagens de programação 3 Ciência dos compiladores
Leia maisTABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE
TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE CARACTERISTICA DE UMA TABELA: NÃO EXISTEM DUAS LINHAS IGUAIS A ORDEM DAS LINHAS É INSIGNIFICANTE A ORDEM DAS COLUNAS É INSIGNIFICANTE
Leia maisCompiladores I Prof. Ricardo Santos (cap 1)
Compiladores I Prof. Ricardo Santos (cap 1) Compiladores Linguagens de programação são notações que permitem descrever como programas devem executar em uma máquina Mas, antes do programa executar, deve
Leia maisModelo Relacional - Manipulação
Modelo Relacional - Manipulação Duas categorias de linguagens formais álgebra relacional e cálculo relacional comerciais (baseadas nas linguagens formais) SQL Linguagens formais - Características orientadas
Leia maisCompiladores. Introdução à Compiladores
Compiladores Introdução à Compiladores Cristiano Lehrer, M.Sc. Introdução (1/2) O meio mais eficaz de comunicação entre pessoas é a linguagem (língua ou idioma). Na programação de computadores, uma linguagem
Leia maisCompiladores - Gramáticas
Compiladores - Gramáticas Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Sintática A análise sintática agrupa os tokens em uma árvore sintática de acordo com a estrutura do programa
Leia maisGBC053 Gerenciamento de Banco de Dados. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM/BCC
GBC053 Gerenciamento de Banco de Dados Plano de Curso e Introdução Ilmério Reis da Silva ilmerio@ufu.br www.facom.ufu.br/~ilmerio/gbd UFU/FACOM/BCC Plano de Curso Ementa Arquitetura de um Sistema de Gerenciamento
Leia maisCompiladores. Fabio Mascarenhas
Compiladores Fabio Mascarenhas 2017.1 http://www.dcc.ufrj.br/~fabiom/comp Introdução Compiladores x Interpretadores Offline x Online Um compilador transforma um programa executável de uma linguagem fonte
Leia maisModelos de Dados Temporais
CMP 151 Modelos de Dados Temporais Roteiro! Conceitos de representação temporal! Modelos de dados temporais! Linguagens de consulta temporais " Bancos de dados temporais " Implementação de BDs temporais
Leia maisCompiladores e Computabilidade
Compiladores e Computabilidade Prof. Leandro C. Fernandes UNIP Universidade Paulista, 2013 GERAÇÃO DE CÓDIGO INTERMEDIÁRIO Geração de Código Intermediário Corresponde a 1ª etapa do processo de Síntese
Leia maisBANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING
BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING http://www.uniriotec.br/~tanaka/tin0036 tanaka@uniriotec.br Bancos de Dados Distribuídos Processamento de Consultas Ambiente com SGBD Distribuído Processamento
Leia maisProva de Fundamentos de Bancos de Dados 2003/1 Prova 1
Prova de Fundamentos de Bancos de Dados 2003/1 Prova 1 Prof. Carlos A. Heuser 17 de junho de 2003 Duração: 2 horas Prova com consulta 1. Deseja-se projetar uma base de dados que mantenha resultados de
Leia maisConstrução de Compiladores. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2014.
Construção de Compiladores Capítulo 1 Introdução José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2014.2 1/22 1 Linguagens de programação 2 Compilação 2/22 Tópicos 1
Leia maisLinguagens de Programação Classificação
Classificação Classificação A proximidade que a linguagem de programação tem com a humana determina sua classe (o nível): Linguagem de máquina (primeira geração) Linguagem assembly - de montagem (segunda
Leia maisIntrodução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s
Introdução Contribuição do Capítulo 2: discutir modelos de dados definir conceitos de esquemas e instâncias descrever os tipos de interfaces e linguagens oferecidas por um SGBD mostrar o ambiente de programas
Leia maisSQL-99: Esquema de BD EMPRESA
SQL-99: Esquema de BD EMPRESA SQL-99: Instâncias do esquema EMPRESA 1 Consultas externa, aninhada e correlacionada para cada tupla da consulta externa, a consulta aninhada devolve o atributo solicitado
Leia maissaí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
Tópicos do Curso: Introdução Listar os principais recursos do Banco de Dados Oracle 10g Apresentar uma visão geral de: componentes, plataforma de internet, servidor de aplicações e suite do desenvolvedor
Leia maisComo construir um compilador utilizando ferramentas Java
Como construir um compilador utilizando ferramentas Java p. 1/2 Como construir um compilador utilizando ferramentas Java Aula 1 - Introdução Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir um
Leia mais- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.
2.3 Linguagens relacionais (continuação) SQL Structured Query Language 1) "Query block" Select From Where - Um "query block" permite a implementação
Leia maisÁ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:
Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção
Leia maisSistemas de Informação e Bases de Dados 2012/2013. Índices. Alberto Sardinha
Sistemas de Informação e Bases de Dados 2012/2013 Índices Alberto Sardinha Sumário Índices Criação de Índices em SQL Exemplos 2012 Ins)tuto Superior Técnico 1 Bibliografia Raghu Ramakrishnan, Database
Leia maisOtimização e Execução de Consultas Caso Centralizado Parse Query
Bancos de Dados III Processamento de Consultas em Bancos de Dados Distribuídos Rogério Costa rogcosta@inf.puc-rio.br 1 Otimização e Execução de Consultas Caso Centralizado Parse Query Check de Semântica
Leia maisProcessamento e Otimização de Consultas
Introdução Processamento e Banco de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM 1 Processamento
Leia maisProjeto de Compiladores
Projeto de Compiladores FIR Faculdade Integrada do Recife João Ferreira 26 e 27 de fevereiro de 2007 Agenda da Aula Revisão Linguagem de Programação Tradutores Compilador As Fases de Um Compilador Linguagem
Leia maisLinguagens de Domínio Específico
Linguagens de Domínio Específico Fabio Mascarenhas 2016.1 http://www.dcc.ufrj.br/~fabiom/dsl Processamento de uma DSL Erros Uma falha em um parser de combinadores tem dois significados: A alternativa que
Leia maisBANCO DE DADOS II SQL Básico. COTEMIG Gerson Borges
BANCO DE DADOS II SQL Básico COTEMIG Gerson Borges gerson@cotemig.com.br Definição de Banco de Dados [Elmasri & Navathe, 2000] Um banco de dados é uma coleção de dados relacionados Representando algum
Leia maisL Q S m e g a u g n Li A
A Linguagem SQL Introdução Originalmente proposta para o System R desenvolvido nos laboratórios da IBM na década de 70 SEQUEL (Structured English QUEry Language) Objeto de um esforço de padronização coordenado
Leia maisUniversidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Síntese. Prof. Geovane Griesang
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Síntese Prof. geovanegriesang@unisc.br Data 18/11/2013 Análise sintática Parte 01 25/11/2013 Análise sintática Parte 02
Leia maisAgenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais
Linguagem de Consulta SQL Profa. Carla A. Lima Reis SQL Agenda Introdução Histórico BD relacionais Linguagem SQL Definição de BD Manipulação de BD com SQL Consultas SQL Consultas com várias tabelas Subconsultas
Leia maisConversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação
Conversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação Para executar uma tarefa qualquer, um computador precisa receber instruções precisas sobre o que fazer. Uma seqüência adequada
Leia maisAnálise Sintática de Frases utilizando Gramáticas Livres de Contexto Probabilísticas
Universidade de São Paulo Mestrado em Ciência da Computação Instituto de Matemática e Estatística Disciplina MAC5725 Lingüística Computacional Análise Sintática de Frases utilizando Gramáticas Livres de
Leia maisTratamento dos Erros de Sintaxe. Adriano Maranhão
Tratamento dos Erros de Sintaxe Adriano Maranhão Introdução Se um compilador tivesse que processar somente programas corretos, seu projeto e sua implementação seriam grandemente simplificados. Mas os programadores
Leia maisSistemas de Banco de Dados
Sistemas de Banco de Dados Fundamentos em Bancos de Dados Relacionais Wladmir Cardoso Brandão www.wladmirbrandao.com Departamento de Ciência da Computação (DCC) Instituto de Ciências Exatas e Informática
Leia maisBanco de Dados. Otimização de consultas. Prof. Joao Eduardo Ferreira Prof. Osvaldo Kotaro Takai. Última atualização: 15 de maio de 2006
Banco de Dados Otimização de consultas Última atualização: 15 de maio de 2006 Prof. Joao Eduardo Ferreira Prof. Osvaldo Kotaro Takai Introdução Consulta em linguagem de alto nível Análise e validação Forma
Leia maisProgramação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO
Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO Dados em Algoritmos Quando escrevemos nossos programas, trabalhamos com: Dados que nós fornecemos ao programa Dados
Leia maisUsando Subconsultas para Solucionar Consultas
Usando Subconsultas para Solucionar Consultas Objetivos Ao concluir esta lição, você será capaz de: Definir subconsultas Descrever os tipos de problemas que as subconsultas podem solucionar Listar os tipos
Leia maisBanco de Dados I Módulo III: Linguagens de Consulta. (Aula 1) Clodis Boscarioli
Banco de Dados I 2007 Módulo III: Linguagens de Consulta (Aula 1) Clodis Boscarioli Conteúdo do Módulo: Linguagens de Consulta Formais Álgebra Relacional; Cálculo Relacional de Tupla; Cálculo Relacional
Leia maisPROJETO DE PROGRAMAS. Projeto de Programas PPR0001
PROJETO DE PROGRAMAS Projeto de Programas PPR0001 Desenvolvimento de Software 2 3 Desenvolvimento de Software Análise de Requisitos Distinguir e dividir o sistema em componentes: Analisar os componentes
Leia maisLembrando análise semântica. Compiladores. Implementação de esquemas de tradução L-atribuídos. Exemplo de implementação top-down (1)
Lembrando análise semântica Compiladores Geração de código intermediário (1) Parser Bottom-up: squema S-atribuído sem problema Apenas atributos sintetizados squema L-atribuído: ok, mas deve-se usar variáveis
Leia maisANÁLISE E PROJETO DE BANCO DE DADOS
ANÁLISE E PROJETO DE BANCO DE DADOS SQL FELIPE G. TORRES SQL A linguagem SQL (Struct Query Language) é utilizada como padrão em bancos de dados relacionais. Seu desenvolvimento foi originalmente no início
Leia maisBanco de Dados I Módulo VI: Processamento e Otimização de Consultas. (Aulas 1-5) Clodis Boscarioli
Banco de Dados I 2007 Módulo VI: Processamento e Otimização de Consultas (Aulas 1-5) Clodis Boscarioli Agenda: O Processador de Consultas: Conceitos Principais. Algoritmos usados para implementar operações
Leia maisÁlgebra Relacional. Introdução. Introdução. Álgebra Relacional
Pós-graduação em Ciência da Computação CCM-205 Sistema de Bancos de Dados O que foi visto até agora... Álgebra Relacional Profa. Maria Camila Nardini Barioni camila.barioni@ufabc.edu.br Bloco B - sala
Leia maisselect nome from Médicos where codm in (select codm from Consultas where data = 06/06/13 )
Subconsultas * subconsulta: forma alternativa de expressar consultas envolvendo relacionamentos entre tabelas * cláusulas para tratamento de subconsultas: IN, ANY, ALL, EXISTS 3.1) Cláusula [NOT] IN *
Leia maisMecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas
Arquitetura de Computadores, Arquitetura de Computadores Organização de Computadores, Conjunto de Instruções, Sistemas Operacionais, Sistemas Operacionais, Sistemas Mecanismos de Interrupção e de Exceção,
Leia maisSSC510 Arquitetura de Computadores 1ª AULA
SSC510 Arquitetura de Computadores 1ª AULA REVISÃO DE ORGANIZAÇÃO DE COMPUTADORES Arquitetura X Organização Arquitetura - Atributos de um Sistema Computacional como visto pelo programador, isto é a estrutura
Leia maisOracle Database 11g: Introdução à Linguagem SQL Novo
Oracle University Contact Us: 0800 891 6502 Oracle Database 11g: Introdução à Linguagem SQL Novo Duration: 5 Days What you will learn Neste curso, os alunos aprendem os conceitos de bancos de dados relacionais.
Leia maisInformática. Banco de Dados Relacional. Professor Julio Alves.
Informática Banco de Dados Relacional Professor Julio Alves www.acasadoconcurseiro.com.br Informática 1. BANCOS DE DADOS RELACIONAL Um BD relacional possui apenas um tipo de construção, a tabela. Uma
Leia maisP R O J E T O: C A R N A V A L. 2. Informações Básicas sobre o Sistema a ser Desenvolvido
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Disciplina de Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri P R O J E T
Leia maisAnálise Sintática. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 18
Análise Sintática Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Outubro, 2016 1 / 18 Sumário 1 Introdução 2 Derivações 2 / 18 1 Introdução 2 Derivações 3 /
Leia maisProcessamento de Produtos ( X )
Processamento de Produtos ( X ) Alternativas e suas estimativas de custo A: laço aninhado ( nested-loop ) A: laço aninhado com índice ( indexed nestedloop ) A: merge-junção ( balanced-line ou sortmerge
Leia maisUm Tradutor de Esquemas Relacionais em XML para Esquemas SQL
UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO TECNOLÓGICO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA SISTEMAS DE INFORMAÇÃO Resumo do Trabalho de Conclusão de Curso Entitulado Um Tradutor de Esquemas Relacionais
Leia maisData Warehouse ETL. Rodrigo Leite Durães.
Data Warehouse ETL Rodrigo Leite Durães rodrigo_l_d@yahoo.com.br Introdução Um dos desafios da implantação de um DW é a integração dos dados de fontes heterogêneas e complexas, padronizando informações,
Leia maisCompiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador
Estrutura de um compilador programa fonte Compiladores Análise lexical () Expressões Regulares analisador léxico analisador sintático analisador semântico análise gerador de código intermediário otimizador
Leia maisModelo Entidade Relacionamento
Programa DCC011 Introdução a Banco de Dados Modelo Entidade Relacionamento Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Introdução Conceitos
Leia maisExercícios do Curso COS833 Distribuição e Paralelismo em Bancos de Dados Prof ª Marta Mattoso / Prof. Alexandre Assis
Exercícios do Curso COS833 Distribuição e Paralelismo em Bancos de Dados Prof ª Marta Mattoso / Prof. Alexandre Assis 1 a. Questão Quais são as principais etapas de um projeto de distribuição de dados?
Leia maisMATA60 BANCO DE DADOS Aula 2- Sistema Gerenciador de Banco de Dados. Prof. Daniela Barreiro Claro
MATA60 BANCO DE DADOS Aula 2- Sistema Gerenciador de Banco de Dados Prof. Daniela Barreiro Claro Agenda SGBD Visão Geral Componentes Vantagens Arquitetura de um SGBD FORMAS - UFBA 2 de X SGBD Um Sistema
Leia maisAlgoritmos e Programação
ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE ENGENHARIA ELÉTRICA
Leia maisBases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os registos que satisfazem uma condição exemplo: empréstimos da agência de Perryridge
Bases de Dados Álgebra Relacional Selecção (σ) Seleccionar os registos que satisfazem uma condição exemplo: empréstimos da agência de Perryridge σ branch_name = Perryridge (loan) 2 1 Outros exemplos de
Leia maisPROGRAMAÇÃO I. Introdução
PROGRAMAÇÃO I Introdução Introdução 2 Princípios da Solução de Problemas Problema 1 Fase de Resolução do Problema Solução na forma de Algoritmo Solução como um programa de computador 2 Fase de Implementação
Leia maisINE 5616 Banco de Dados II
UFSC-CTC-INE Curso de Sistemas de Informação INE 5616 Banco de Dados II Ronaldo S. Mello 2008/1 http://www.inf.ufsc.br/~ronaldo/ine5616 Horário Atendimento: Quintas-feiras, das 18h00 às 19h30 Programa
Leia maisAlgoritmo: Definição. Algoritmo. O que é Lógica? Lógica de Programação. Mas e a Lógica de Programação?
: Definição Introdução a s Prof. Araken Medeiros araken@ufersa.edu.br Um algoritmo pode ser definido como uma sequência de passos finitos, que se executados em um determinado período de tempo, atingirá
Leia maisIntrodução à Programação
Introdução à Program João Manuel R. S. Tavares Sumário 1. Ciclo de desenvolvimento de um programa; 2. Descrição de algoritmos; 3. Desenvolvimento modular de programas; 4. Estruturas de controlo de um programa.
Leia maisIntrodução ao Modelo Relacional
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Introdução ao Modelo Relacional Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com 19/05/2016 Sumário Instalação do
Leia maisIntrodução a Banco de Dados Aula 02. Prof. Silvestri
Introdução a Banco de Dados Aula 02 Prof. Silvestri www.eduardosilvestri.com.br Modelos de Dados Tipos de Banco de Dados. Atualmente existem diversos Banco de Dados no mercado, tais como Oracle, SQL Server,
Leia maisAula 2 BD Introdução. Profa. Elaine Faria UFU
Aula 2 BD Introdução Profa. Elaine Faria UFU - 2017 Motivação A quantidade de informação disponível está crescendo exponencialmente Os dados e as informações tem um papel importante para as organizações
Leia maisBanco de Dados I. Aula 17 - Prof. Bruno Moreno 08/11/2011
Banco de Dados I Aula 17 - Prof. Bruno Moreno 08/11/2011 Plano de Aula Visões em SQL Normalização Motivação Definição Formas Normais Banco de Dados I VISÕES Visões É uma tabela única derivada de outra(s)
Leia maisProf. Adriano Maranhão COMPILADORES
Prof. Adriano Maranhão COMPILADORES LINGUAGENS: INTERPRETADAS X COMPILADAS Resumo: Linguagem compilada: Se o método utilizado traduz todo o texto do programa, para só depois executar o programa, então
Leia maisINTRODUÇÃO AO MODELO RELACIONAL
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO AO MODELO RELACIONAL Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com 26/06/2013 SUMÁRIO Instalação do
Leia maisSQL. Agregações e agrupamentos. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática
SQL Agregações e agrupamentos Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática SQL Agregações As operações de agregação calculam um valor para um conjunto de tuplos. Operadores de
Leia maisAnálise Sintática. Fabiano Baldo
Compiladores Análise Sintática Fabiano Baldo Gramáticas Livre de Contexto (GLC) É utilizada na especificação formal lda sintaxe de uma linguagem de programação. É um conjunto de produções ou regras gramaticais
Leia maisRadiométricas. Alexandre Xavier Falcão. Instituto de Computação - UNICAMP
Operações Matemáticas e Transformações Radiométricas Instituto de Computação - UNICAMP afalcao@ic.unicamp.br Operações Matemáticas Sejam Î = (D I, I ) e Ĵ = (D J, J) duas imagens cinzas de mesmo domínio,
Leia maisSQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri
SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE
Leia maisCompiladores Ciência e Tecnologia da Computação Engenharia Informática e de Computadores
Compiladores Ciência e Tecnologia da Computação Engenharia Informática e de Computadores Análise Semântica Universidade dos Açores Departamento de Matemática www.uac.pt/~hguerra Análise semântica 3ª etapa
Leia maisBANCO DE DADOS. Araújo Lima. Fev / Araújo
BANCO DE DADOS Lima Fev / 2016 1 Aula 3 3.Modelos de dados Modelo Conceitual Modelo Lógico Modelo Físico Classificação de Bancos de Dados Hierárquico Rede Relacional 2 MODELOS DE DADOS... Ferramenta usada
Leia maisBanco de Dados. Professor: Marcelo Machado Cunha IFS Campus Aracaju
Banco de Dados Professor: Marcelo Machado Cunha IFS Campus Aracaju Definição Banco de Dados Conjunto de dados interrelacionados que objetivam atender as necessidades de um conjunto de usuários. Inglês:
Leia maisResolução de Problemas. Universidade Católica de Pelotas Engenharia da Computação Disciplina: Inteligência Artificial
Resolução de Problemas Universidade Católica de Pelotas Engenharia da Computação Disciplina: Inteligência Artificial 2 Resolução de Problemas Introdução Componentes Solução Busca de soluções 3 Resolução
Leia maisBancos de Dados. Linguagens F ormais de Cons ulta a Banco de Dados
Linguagens F ormais de Cons ulta a Banco de Dados Tópicos Introdução: Linguagens de Consulta Um pequeno Banco de Dados para Controle de Estoque A Álgebra Relacional O Cálculo Relacional Exercícios Parte
Leia mais