Administração de Banco de Dados

Tamanho: px
Começar a partir da página:

Download "Administração de Banco de Dados"

Transcrição

1 Administração de Banco de Dados Adriano J. Holanda 28/8/2015 Índices Para os testes com os índices criaremos uma tabela chamada tteste com o comando teste=> CREATE TABLE tteste (id int4); CREATE TABLE A tabela será preenchida com uma sequência de números de 1 a para o campo id usando o comando teste=> INSERT INTO tteste SELECT * FROM generateseries(1, ); INSERT Para obter informações sobre a consulta usamos o comando EXPLAIN antes da consulta SQL teste=> EXPLAIN SELECT * FROM tteste; Seq Scan on tteste (cost= rows= width=4) (1 row) As informações indicam que foi feita uma varredura sequencial (Seq Scan) e os números entre parênteses são: O custo estimado de inicialização é 0.00, ou seja, o tempo gasto para a fase de saída começar. O custo estimado total é , que é o tempo gasto para todas as tuplas estarem disponíveis para acesso. O número de tuplas retornadas na consulta é Média estimada do tamanho das tuplas de saída é 4 bytes. Para obter mais informações da consulta de EXPLAIN ANALYZE teste=> EXPLAIN ANALYZE SELECT * FROM tteste; Seq Scan on tteste (cost= rows= width=4) \ (actual time= rows= loops=1) Total runtime: ms Adicionando a restrição id= teremos teste=> EXPLAIN ANALYZE SELECT * FROM tteste WHERE id=987987; Seq Scan on tteste (cost= rows=1 width=4) \ (actual time= rows=1 loops=1) Filter: (id = ) Rows Removed by Filter: Total runtime: ms (4 rows) 1

2 O tempo de execução da consulta foi aproximadamente 1,6s, mesmo que parte do tempo tenha sido gasto com a geração da explicação, é um tempo considerávelmente alto. Vamos criar um índice no campo id da tabela tteste: teste=> CREATE INDEX itesteid ON tteste(id); CREATE INDEX E executar novamente a consulta de seleção do id=987987: teste=> EXPLAIN ANALYZE SELECT * FROM tteste WHERE id=987987; Index Only Scan using itesteid on tteste (cost= rows=1 width=4) \ (actual time= rows=1 loops=1) Index Cond: (id = ) Heap Fetches: 1 Total runtime: ms (4 rows) Ao invés da varredura sequencial (Seq Scan), a tabela de índices é usada como indicado pela informação Index Only Scan, o que reduziu o tempo de saída para 21,993 ms. O PostgreSQL usa uma variação da árvore B chamada árvore de Lehman-Yao para armazenamento dos índices. Esta estrutura permite acesso concorrente aos valores armazenados na árvore. Métodos de varredura O PostgreSQL possui três métodos de varredura (scan): 1. Sequencial: as tuplas são acessadas sequencialmente e aquelas que satisfizerem à condição de busca serão recuperadas; 2. Indexada somente (index): pega um ponteiro para a tupla por vez do índice, e imediatamente visita aquela tupla na tabela; 3. Indexada com mapa de bits (bitmap index): todas os ponteiros para as tuplas do índice são capturados em uma passada, ordenados na memória principal usando uma estrutura de dados chamada mapa de bits (bitmap), e então visita as tuplas na tabela, seguindo a ordem do endereço físico da tupla. Esta varredura usa a localidade espacial das tuplas para melhorar a performance de acesso, ao custo de manter e gerenciar o mapa de bits na memória. A tupla não é recuperada na ordem de armazenamento no índice, o que só fará diferença para a consulta, se esta for feita com ORDER BY. De modo geral, a varredura somente com índice ganha para um pequeno número de tuplas, a varredura com mapa de bits e índice ganha para um número maior de tuplas e a varredura sequencial ganha quando o número de tuplas se aproxima do tamanho da tabela. Para exemplificar a diferença entre os três métodos vamos usar a tabela pgclass SELECT relname FROM pgclass ORDER BY 1 LIMIT 8; relname pgforeigndatawrappers pgforeignservers pgforeigntablecolumns pgforeigntables pgusermappings administrableroleauthorizations applicableroles attributes (8 rows) 2

3 Se selecionarmos somente a primeira letra de cada entrada de relname temos: SELECT substring(relname, 1, 1) FROM pgclass ORDER BY 1 LIMIT 8; substring a a a (8 rows) Criaremos uma tabela temporária com as primeiras letras de relname no primeiro campo e a letra x repetida 250 vezes no segundo campo da seguinte maneira: CREATE TEMPORARY TABLE temp(letra, lixo) AS SELECT substring(relname, 1, 1), repeat('x', 250) FROM pgclass ORDER BY random(); SELECT 294 E vamos criar uma tabela de índices para o campo letra da tabela temp teste=> CREATE INDEX itempletra ON temp(letra); CREATE INDEX Vamos criar uma função para gera a distribuição de letras teste=> CREATE OR REPLACE FUNCTION buscarletra(text) RETURNS SETOF text AS $$ BEGIN RETURN QUERY EXECUTE ' EXPLAIN SELECT letra WHERE letra = ''' $1 ''''; END $$ LANGUAGE plpgsql; CREATE FUNCTION E verificar a distribuição para a tabela temp teste=> WITH letras (letra, count) AS ( SELECT letra, COUNT(*) GROUP BY 1 ) SELECT letra, count, (count * / (SUM(count) OVER ()))::numeric(4,1) AS "%" FROM letras ORDER BY 2 DESC; letra count % p c s r f t

4 u d v a e i k (14 rows) Vejamos a estatística da letras p, d e k WHERE letra = 'p'; Index Only Scan using itemp on temp (cost= rows=1 width=32) Index Cond: (letra = 'p'::text) WHERE letra = 'd'; Index Only Scan using itemp on temp (cost= rows=1 width=32) Index Cond: (letra = 'd'::text) WHERE letra = 'k'; Index Only Scan using itemp on temp (cost= rows=1 width=32) Index Cond: (letra = 'k'::text) Com o uso de ANALYZE na tabela temp, a varredura sequencial é usada para valores repetidos teste=> ANALYZE temp; ANALYZE Analisando de novo as consultas da da seleção em temp para as letras p, d e k WHERE letra = 'p'; Seq Scan on temp (cost= rows=227 width=2) Filter: (letra = 'p'::text) Apesar da criação do índice, a consulta não é feita utilizando-o 4

5 WHERE letra = 'd'; Bitmap Heap Scan on temp (cost= rows=4 width=2) Recheck Cond: (letra = 'd'::text) -> Bitmap Index Scan on itempletra (cost= rows=4 width=0) Index Cond: (letra = 'd'::text) (4 rows) WHERE letra = 'k'; Bitmap Heap Scan on temp (cost= rows=2 width=2) Recheck Cond: (letra = 'k'::text) -> Bitmap Index Scan on itempletra (cost= rows=2 width=0) Index Cond: (letra = 'k'::text) (4 rows) Vamos verificar qual índice de varredura é usado para cada letra armazenada no campo letra da tabela temp teste=> WITH letra (letra, count) AS ( SELECT letra, COUNT(*) GROUP BY 1 ) SELECT letra AS l, count, buscarletra(letra) FROM letra ORDER BY 2 DESC; l count buscarletra p 227 Seq Scan on temp (cost= rows=227 width=2) p 227 Filter: (letra = 'p'::text) c 12 Seq Scan on temp (cost= rows=12 width=2) c 12 Filter: (letra = 'c'::text) s 9 Filter: (letra = 's'::text) s 9 Seq Scan on temp (cost= rows=9 width=2) r 8 Filter: (letra = 'r'::text)... Vamos agrupar os índices com o comando teste=> WITH letra (letra, count) AS ( SELECT letra, COUNT(*) GROUP BY 1 ) SELECT letra AS l, count, (SELECT * FROM buscarletra(letra) AS l2 LIMIT 1) AS buscarletra FROM letra ORDER BY 2 DESC; l count buscarletra

6 p 227 Seq Scan on temp (cost= rows=227 width=2) c 12 Seq Scan on temp (cost= rows=12 width=2) s 9 Seq Scan on temp (cost= rows=9 width=2) r 8 Seq Scan on temp (cost= rows=8 width=2) f 6 Bitmap Heap Scan on temp (cost= rows=6 width=2) t 6 Bitmap Heap Scan on temp (cost= rows=6 width=2) 5 Bitmap Heap Scan on temp (cost= rows=5 width=2) u 5 Bitmap Heap Scan on temp (cost= rows=5 width=2) v 4 Bitmap Heap Scan on temp (cost= rows=4 width=2) d 4 Bitmap Heap Scan on temp (cost= rows=4 width=2) a 3 Bitmap Heap Scan on temp (cost= rows=3 width=2) e 2 Bitmap Heap Scan on temp (cost= rows=2 width=2) i 2 Bitmap Heap Scan on temp (cost= rows=2 width=2) k 1 Bitmap Heap Scan on temp (cost= rows=2 width=2) (14 rows) Vamos desabilitar as varreduras sequencial e por mapa de bits para que a consulta seja feita usando índices teste=> SET enableseqscan = false; SET teste=> SET enablebitmapscan = false; SET E executamos de novo o agrupamento das letras por método de varredura teste=> WITH letra (letra, count) AS ( SELECT letra, COUNT(*) GROUP BY 1 ) SELECT letra AS l, count, (SELECT * FROM buscarletra(letra) AS l2 LIMIT 1) AS buscarletra FROM letra ORDER BY 2 DESC; l count buscarletra p 227 Index Only Scan using itempletra on temp (cost= rows=227 width=2) c 12 Index Only Scan using itempletra on temp (cost= rows=12 width=2) s 9 Index Only Scan using itempletra on temp (cost= rows=9 width=2) r 8 Index Only Scan using itempletra on temp (cost= rows=8 width=2) f 6 Index Only Scan using itempletra on temp (cost= rows=6 width=2) t 6 Index Only Scan using itempletra on temp (cost= rows=6 width=2) 5 Index Only Scan using itempletra on temp (cost= rows=5 width=2) u 5 Index Only Scan using itempletra on temp (cost= rows=5 width=2) v 4 Index Only Scan using itempletra on temp (cost= rows=4 width=2) d 4 Index Only Scan using itempletra on temp (cost= rows=4 width=2) a 3 Index Only Scan using itempletra on temp (cost= rows=3 width=2) i 2 Index Only Scan using itempletra on temp (cost= rows=2 width=2) e 2 Index Only Scan using itempletra on temp (cost= rows=2 width=2) k 1 Index Only Scan using itempletra on temp (cost= rows=2 width=2) (14 rows) Notamos que o custo da busca usando a tabela de índices para a letra p é 42,93, maior que o custa da busca sequencial que foi 14,68. O mesmo acontece para o custo de busca da letra f que usou a varredura por mapa de bits e foi 14,16, enquanto que usando o índice foi de 17,66. Vamos verificar o espaço em disco ocupado pela tabela tteste e pelo índice itesteid 6

7 teste=> SELECT pgsizepretty(pgrelationsize('tteste')), pgsizepretty(pgrelationsize('itesteid')); pgsizepretty pgsizepretty MB 214 MB (1 row) Notamos que a tabela de índices ocupa um espaço considerável. Vamos apagar a tabela tteste teste=> DROP TABLE tteste; DROP TABLE E adicionar um campo w teste=> CREATE TABLE tteste (id int4, w text); CREATE TABLE E inserir a palavra alice para cada entrada da série gerada de 1 a teste=> INSERT INTO tteste SELECT w, 'alice' FROM generateseries(1, ) as w; INSERT E vamos criar índices para p campo w da tabela tteste, isto exigirá um pouco de paciência teste=> CREATE INDEX itestew ON tteste(w); CREATE INDEX Verificamos o espaço em disco ocupado teste=> SELECT pgsizepretty(pgrelationsize('tteste')), pgsizepretty(pgrelationsize('itestew')); pgsizepretty pgsizepretty MB 214 MB (1 row) E fazemos a busca utilizando o índice do campo w teste=> EXPLAIN SELECT * FROM tteste WHERE w = 'alice'; Index Scan using itestew on tteste (cost= rows= width=10) Index Cond: (w = 'alice'::text) Habilitamos a varredura sequencial teste=> SET enableseqscan = true; SET e repetimos a consulta teste=> EXPLAIN SELECT * FROM tteste WHERE w = 'alice'; Seq Scan on tteste (cost= rows= width=10) Filter: (w = 'alice'::text) 7

8 O custo da varredura sequencial foi menor ( ) do que a indexada ( ,43). O índice neste caso é inútil, pois há muitas repetições para o campo w. A busca forçando o uso do índice faz com que o PostgreSQL leia todas as entradas do índice e depois todas as entradas na tabela. Com a varredura sequencial habilitada, o otimizador de plano de consultas verifica o custo do uso ou não do índice e opta pela estratégia de menor custo, que no caso é a não utilização de índices, que provoca a leitura sequencial da tabela, reduzindo as requisições de entrada/saída. O uso de índice é justificado quando há pouca ou nenhuma repetição do elemento indexado, por exemplo, se procurarmos um valor que não está na tabela, o custo utilizando índice será bem menor, conforme mostrado a seguir: teste=> EXPLAIN SELECT * FROM tteste WHERE w = 'foo'; Index Scan using itestew on tteste (cost= rows=1 width=10) Index Cond: (w = 'foo'::text) Desabilitamos os índices teste=> SET enableindexscan = true; SET e repetimos a consulta teste=> EXPLAIN SELECT * FROM tteste WHERE w = 'foo'; Seq Scan on tteste (cost= rows=1 width=10) Filter: (w = 'foo'::text) Não houve alteração do custo para a varredura sequencial, porém, para a varredura com índice o custo foi bem menor (4,45). Isto ocorreu pelo fato de a palavra não existir na árvore de índices, o que reduz o custo da busca na árvore B. Além disso, como o valor não é encontrado no índice, nem é procurado na tabela. É interessante que o administrador de banco de dados verifique a utilização dos índices, pois se um índice estiver sendo pouco utilizado poderá ser removido, liberando espaço em disco e evitando que haja sobrecarga no banco de dados devido à manutenção da estrutura dos índices. No PostgreSQL podemos ver a estatística de utilização do índice usando o comando: teste=> select * from pgcatalog.pgstatuserindexes; Referências. A apresentação Explaining the Postgres Query Optimizer de Bruce Momjian disponível em https://goo.gl/wun9ow é uma fonte adicional de informações sobre índices. O livro Troubleshooting PostgreSQL de Hans-Jürgen Schönig também é uma boa referência, por mostrar exemplos de uso dos índices. Os exemplos deste manuscrito foram extraídos destas referências. 8

PostgreSQL Performance

PostgreSQL Performance PostgreSQL Performance André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) PostgreSQL Performance February 24, 2012 1 / 45 Sumário 1 Armazenamento 2 Índices

Leia mais

PL/pgSQL por Diversão e Lucro

PL/pgSQL por Diversão e Lucro PL/pgSQL por Diversão e Lucro Roberto Mello 3a. Conferência Brasileira de PostgreSQL - PGCon-BR Campinas - 2009 1 Objetivos Apresentar as partes principais do PL/pgSQL Apresentar casos de uso comum do

Leia mais

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

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Linguagem de Programação de Banco de Dados Triggers em PostgreSQL Todos os bancos de dados comerciais possuem uma linguagem procedural auxiliar para a

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

A empresa brasileira de PostgreSQL

A empresa brasileira de PostgreSQL PostgreSQL 9.4: O que vem por aí A empresa brasileira de PostgreSQL 03/03/2015 Sobre este material Copyright 2015 Timbira. Todos os direitos reservados. Embora este material tenha sido elaborado com toda

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 10 - PROCEDIMENTOS ARMAZENADOS - STORED PROCEDURES 1. INTRODUÇÃO Em muitas situações será necessário armazenar procedimentos escritos com a finalidade de se utilizar recursos como loop, estruturas

Leia mais

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

Consistem num conjunto de apontadores para instâncias especificas de cada relação. Mecanismo usado para mais fácil e rapidamente aceder à informação existente numa base de dados. Bases de Dados de elevadas dimensões. Consistem num conjunto de apontadores para instâncias especificas de

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

Estatística, monitoramento e diagnóstico através do catálogo do PostgreSQL

Estatística, monitoramento e diagnóstico através do catálogo do PostgreSQL Estatística, monitoramento e diagnóstico através do catálogo do PostgreSQL O trabalho Estatística, monitoramento e diagnóstico através do catálogo do PostgreSQL de Fabiano Machado Dias e Eduardo Wolak

Leia mais

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL Laboratório de Banco de Dados Prof. Luiz Vivacqua PL/pgSQL A Linguagem de programação do PostgreSQL 1) Visão Geral A PL/pgSQL é uma linguagem de programação procedural para o Sistema Gerenciador de Banco

Leia mais

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com SQL Procedural Josino Rodrigues Neto josinon@gmail.com SQL Procedural Agregada em SQL-92 As ferramentas têm nomes para suas linguagens SQL procedurais/embutidas Oracle : PL/SQL Postgres PL/Pgsql SQL Server

Leia mais

Regras de Negócios é com o Elefante!

Regras de Negócios é com o Elefante! Regras de Negócios é com o Elefante! HARDWARE SOFTWARE Pesquisa Quantas camadas? Regras na Aplicação? Regras numa Camada Intermediária? Regras no Banco de Dados? Explain / Plano de Consulta? E as minhas

Leia mais

FUNCTION ) RETURNS INTEGER AS $$ DECLARE

FUNCTION ) RETURNS INTEGER AS $$ DECLARE PERFORM O comando PERFORM permite a execução de um comando SELECT desprezando o resultado do comando. PERFORM query; A variável especial FOUND é definida como verdadeiro se a instrução produzir pelo menos

Leia mais

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

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL (Structured Query Language) SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. Além de permitir a realização de consultas, SQL possibilita: definição

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

Busca bonita e veloz

Busca bonita e veloz Indexação de Textos com o Tsearch 2 Busca bonita e veloz CAPA Vamos realizar buscas em um portal jornalístico fictício para verificar a necessidade da indexação de textos e de outros recursos oferecidos

Leia mais

PostgreSQL o SGBD das 1001 linguagens Diogo Biazus diogob@gmail.com

PostgreSQL o SGBD das 1001 linguagens Diogo Biazus diogob@gmail.com PostgreSQL o SGBD das 1001 linguagens Diogo Biazus diogob@gmail.com Um dos grandes diferenciais do PostgreSQL em relação à maioria dos outros sistemas de bancos de dados é a presença de diversas linguagens

Leia mais

PostgreSQL 8.0. Diogo Biazus

PostgreSQL 8.0. Diogo Biazus PostgreSQL 8.0 Diogo Biazus PostgreSQL 7.X Totalmente ACID MVCC Tipos e operadores customizáveis Diversas linguagens procedurais Hot backup Código aberto (BSD) Facilidade de extensão PL/pgSQL, PL/Python,

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çõ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 mais

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

PostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br PostgreSQL www.postgresql.org André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br Características Licença BSD (aberto, permite uso comercial) Multi-plataforma (Unix, GNU/Linux,

Leia mais

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados LINGUAGEM SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características

Leia mais

Um objeto de estatística contém informações de distribuição de valores de uma ou mais colunas de uma tabela ou view indexada

Um objeto de estatística contém informações de distribuição de valores de uma ou mais colunas de uma tabela ou view indexada Desvendando Estatísticas do SQL Server Parte 1 Nesta série de artigos vamos dar um mergulho profundo nas Teorias Probabilísticas (mais conhecido como estatísticas) do SQL Server. Introdução Estatísticas

Leia mais

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre. Triggers um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre. o evento pode ser INSERT, UPDATE, ou DELETE. o trigger pode ser accionado imediatamente

Leia mais

T-SQL Mitos. Vamos criar uma tabela para os nossos exemplos e, em seguida, comparar planos de execução. Mãos à obra.

T-SQL Mitos. Vamos criar uma tabela para os nossos exemplos e, em seguida, comparar planos de execução. Mãos à obra. T-SQL Mitos Mito T-SQL: COUNT(1) é mais rápido que COUNT(*) Já escutei algumas pessoas afirmarem, inclusive DBAs, que usar COUNT(1) é mais performático que COUNT(*). Além disso, também ouço programadores

Leia mais

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

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino de Ciências

Leia mais

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli Banco de Dados I 2007 Módulo V: Indexação em Banco de Dados (Aulas 4) Clodis Boscarioli Agenda: Indexação em SQL; Vantagens e Custo dos Índices; Indexação no PostgreSQL; Dicas Práticas. Índice em SQL Sintaxe:

Leia mais

Bancos de Dados I. Integridade semântica

Bancos de Dados I. Integridade semântica Bancos de Dados I PUC-Rio Departamento de Informática (DI) Eng./Ciência da Computação e Sist. Informação Contrôle de Integridade em SGBDs: procedimentos armazenados, gatilhos e funções Prof. sergio@inf.puc-rio.br

Leia mais

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

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

Capítulo 6 Sistemas de Arquivos

Capítulo 6 Sistemas de Arquivos Capítulo 6 Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios 6.3 Implementação do sistema de arquivos 6.4 Exemplos de sistemas de arquivos 1 Armazenamento da Informação a Longo Prazo 1. Deve ser possível

Leia mais

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

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL Criar uma base de dados (criar um banco de dados) No mysql: create database locadora; No postgresql: createdb locadora Criar

Leia mais

Banco de Dados. Maurício Edgar Stivanello

Banco de Dados. Maurício Edgar Stivanello Banco de Dados Maurício Edgar Stivanello Agenda Conceitos Básicos SGBD Projeto de Banco de Dados SQL Ferramentas Exemplo Dado e Informação Dado Fato do mundo real que está registrado e possui um significado

Leia mais

Sistemas de Informação

Sistemas de Informação Sistemas de Informação Rules and Triggers André Restivo Sistemas de Informação 2006/07 Rules e Triggers Nem todas as restrições podem ser definidas usando os mecanismos que estudamos anteriormente: - CHECK

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

FAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure

Leia mais

Arquitetura de SGBD Relacionais Previsão de Seletividade

Arquitetura de SGBD Relacionais Previsão de Seletividade Arquitetura de SGBD Relacionais Previsão de Seletividade Caetano Traina Jr. Grupo de Bases de Dados e Imagens Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos caetano@icmc.usp.br

Leia mais

Oracle Advanced Compression x External Tables (Armazenamento de dados históricos)

Oracle Advanced Compression x External Tables (Armazenamento de dados históricos) Oracle Advanced Compression x External Tables (Armazenamento de dados históricos) Agenda Sobre Rodrigo Mufalani Clico de dados Visão Geral Avanced Compression Visão Geral External Tables Performance Disponibilidade

Leia mais

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve Triggers e Regras Fernando Lobo Base de Dados, Universidade do Algarve 1 / 14 Triggers Um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Leia mais

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 02 AT02 Diversos I 1 Indice ESQUEMAS NO BANCO DE DADOS... 3 CRIANDO SCHEMA... 3 CRIANDO TABELA EM DETERMINADO ESQUEMA... 4 NOÇÕES BÁSICAS SOBRE CRIAÇÃO E MODIFICAÇÃO

Leia mais

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

Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você por Cristóferson Guimarães Magalhães Bueno e Odilon Corrêa da Silva 1 O objetivo deste artigo é demonstrar como criar um sistema

Leia mais

EXEMPLOS DE COMANDOS NO SQL SERVER

EXEMPLOS DE COMANDOS NO SQL SERVER EXEMPLOS DE COMANDOS NO SQL SERVER Gerenciando Tabelas: DDL - DATA DEFINITION LANGUAG Criando uma tabela: CREATE TABLE CLIENTES ID VARCHAR4 NOT NULL, NOME VARCHAR30 NOT NULL, PAGAMENTO DECIMAL4,2 NOT NULL;

Leia mais

Arquitetura de SGBD Relacionais Métodos de Acesso Físico

Arquitetura de SGBD Relacionais Métodos de Acesso Físico Arquitetura de SGBD Relacionais Métodos de Acesso Físico Caetano Traina Jr. Grupo de Bases de Dados e Imagens Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos caetano@icmc.usp.br

Leia mais

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS Exemplos de Scripts SQL (PostgreSQL) Pizzaria 1 2 Criação de BANCO DE DADOS CREATE DATABASE nome_do_banco; CREATE DATABASE pizzaria; Criação de TABELAS SOMENTE COM CHAVE PRIMÁRIA CREATE TABLE nome_da_tabela

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

DBMS%Performance% Carlos%Soares% (baseado%em%materiais%gen8lmente%cedidos% por%andré%res8vo,%joão%correia%lopes%e%do% livro%ramakrishnan%&%gehrke)% %

DBMS%Performance% Carlos%Soares% (baseado%em%materiais%gen8lmente%cedidos% por%andré%res8vo,%joão%correia%lopes%e%do% livro%ramakrishnan%&%gehrke)% % DBMS%Performance% Carlos%Soares% (baseado%em%materiais%gen8lmente%cedidos% por%andré%res8vo,%joão%correia%lopes%e%do% livro%ramakrishnan%&%gehrke)% % Plano% Contexto% Índices% Carga%da%base%de%dados%%

Leia mais

MySQL: Inserção e Seleção em Tabelas

MySQL: Inserção e Seleção em Tabelas MySQL: Inserção e Seleção em Tabelas Programação de Servidores Marx Gomes Van der Linden http://marx.vanderlinden.com.br/ INSERT INTO Para inserir novas entradas (linhas) em um tabela, usa-se INSERT INTO.

Leia mais

Oracle PL/SQL Overview

Oracle PL/SQL Overview Faculdades Network Oracle PL/SQL Overview Prof. Edinelson PL/SQL Linguagem de Programação Procedural Language / Structured Query Language Une o estilo modular de linguagens de programação à versatilidade

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

PGBR 2013. Como lidar com cargas de trabalho mistas Flavio Gurgel

PGBR 2013. Como lidar com cargas de trabalho mistas Flavio Gurgel PGBR 2013 Como lidar com cargas de trabalho mistas Flavio Gurgel Flavio Gurgel Engenheiro eletricista - UFPR Líder de projetos especiais 4Linux EnterpriseDB Certified Postgres Plus Associate Experiência:

Leia mais

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 06 AT06 Índices 1 Indice INTRODUÇÃO... 3 CLUSTERED INDICES... 4 NONCLUSTERED INDICES... 5 TRANSACT-SQL AND INDICES... 6 COMPOSITE INDEX... 8 ALTERING INDICES...

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003 Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,

Leia mais

Laboratório de Banco de Dados II

Laboratório de Banco de Dados II Laboratório de Banco de Dados II Esquema de um banco de dados relacional Em aulas anteriores, vocês implantaram um projeto físico de banco de dados com todos os seus elementos, inclusive tratando do projeto

Leia mais

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos Bases de Dados Stored procedures e triggers Introdução às funções e procedimentos SQL suporta funções e procedimentos úteis com tipos de dados específicos p.ex. objectos geométricos, imagens intersecção

Leia mais

Prof. Carlos Majer Aplicações Corporativas UNICID

Prof. Carlos Majer Aplicações Corporativas UNICID Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da Universidade Cidade de São Paulo UNICID Licença de Uso Este trabalho está licenciado sob uma Licença

Leia mais

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL PL/SQL Laboratório de Bases de Dados PL/SQL Program Language SQL linguagem de programação da Oracle que permite processar dados armazenados no banco de dados Exemplos de operações permitidas alterar, remover,

Leia mais

Linguagem de Consulta - SQL

Linguagem de Consulta - SQL Complementos da Linguagem SQL - Eliminando Tuplas Repetidas Exemplo: Obter o código das editoras que têm livros publicados CodEditora Titulo Publicacao... 04 Banco de Dados 1989 02 Análise 2000 01 XML

Leia mais

O que são Bancos de Dados?

O que são Bancos de Dados? SQL Básico Liojes de Oliveira Carneiro professor.liojes@gmail.com www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados

Leia mais

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 1 1- Bancos de dados compreendem desde agendas telefônicas até sistemas computadorizados. (Sim) 2- Só podemos instalar o SQL Server Express se tivermos

Leia mais

GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL

GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC Página 2 Prgrama Teórico/Prático - SQL Linguagem

Leia mais

Bases de Dados 2012/2013 Funções/procedimentos e triggers. Helena Galhardas 2012 IST. Bibliografia. Manual referência PostgreSQL

Bases de Dados 2012/2013 Funções/procedimentos e triggers. Helena Galhardas 2012 IST. Bibliografia. Manual referência PostgreSQL Bases de Dados 2012/2013 Funções/procedimentos e triggers em PostgreSQL Helena Galhardas Bibliografia Manual referência PostgreSQL http://www.postgresql.org/docs/9.2/static/ plpgsql.html http://www.postgresql.org/docs/9.2/static/

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

SQL DDL Criando Tabelas e Restrições

SQL DDL Criando Tabelas e Restrições SQL DDL Criando Tabelas e Restrições Fernanda Baião UNIRIO Material parcialmente extraído a partir das notas de aula de Maria Luiza M. Campos, Arnaldo Rocha e Maria Cláudia Cavalcanti Comandos de Definição

Leia mais

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS info 3º ano Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br Na última aula estudamos Unidade 4 - Projeto Lógico Normalização; Dicionário de Dados. Arquitetura

Leia mais

Gerenciamento de um Sistema de

Gerenciamento de um Sistema de SBD Gerenciamento de um Sistema de Banco de Dados Prof. Michel Nobre Muza ua michel.muza@ifsc.edu.br Prof. Marcos Antonio Viana Nascimento Por que é importante: Motivação Participar na organização e no

Leia mais

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Introdução à Engenharia da Computação. Banco de Dados Professor Machado Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:

Leia mais

MySQL - Operações com SQL básico

MySQL - Operações com SQL básico MySQL - Operações com SQL básico Para testar se o MySQL esta instalado corretamente, execute a seguinte linha no prompt do DOS: c:\mysql\bin\mysql Se tudo estiver nos seus devidos lugares você vai receber

Leia mais

Unidade 5 Armazenamento e Indexação

Unidade 5 Armazenamento e Indexação Unidade 5 Armazenamento e Indexação Engenharia de Computação / Engenharia de Produção Banco de Dados Prof. Maria das Graças da Silva Teixeira Material base: Banco de Dados, 2009.2, prof. Otacílio José

Leia mais

Logado no OracleXE vamos acessar a opção:

Logado no OracleXE vamos acessar a opção: Tutorial PL/SQL O PL/SQL é uma linguagem procedural que roda diretamente no núcleo do SGBD Oracle. O objetivo deste tutorial é mostrar a criação de funções e procedimentos em PL/SQL, interagindo com comandos

Leia mais

Linguagem SQL - Structured Query Language

Linguagem SQL - Structured Query Language Linguagem SQL - Structured Query Language Breve introdução aos comandos: insert delete update select Alguns casos práticos: 1 Marca nome país nºpontos Carro nºcarro peso potência velocidademáxima Piloto

Leia mais

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger A tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco

Leia mais

Extend Statistics Multcolumn Statistics

Extend Statistics Multcolumn Statistics Extend Statistics Multcolumn Statistics Extendend Statistics é uma feature do 11g que ajuda o otimizador baseado em custo (CBO) tomar melhores decisões utilizando estatisticas em grupo de colunas, quando

Leia mais

Transações Seguras em Bancos de Dados (MySQL)

Transações Seguras em Bancos de Dados (MySQL) Transações Seguras em Bancos de Dados (MySQL) Índice Entendendo os storage engines do MySQL 5 1 As ferramentas 1 Mais algumas coisas que você deve saber 1 Com a mão na massa 2 Mais ferramentas Usando o

Leia mais

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger a tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco

Leia mais

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos. Banco de Dados O que é um Banco de Dados? Este assunto é muito vasto, tentaremos resumi-lo para atender as questões encontradas em concursos públicos. Já conhecemos o conceito de dado, ou seja, uma informação

Leia mais

Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro Prof. Daniela Barreiro Claro SQL, SQL3 e OQL são linguagens declarativas O SGBD deve processar e otimizar estas consultas antes delas serem efetivamente executadas Uma consulta possui muitas estratégias

Leia mais

Disciplina: Unidade V: Prof.: E-mail: Período:

Disciplina: Unidade V: Prof.: E-mail: Período: Encontro 17 Disciplina: Sistemas de Banco de Dados Unidade V: Introdução à Linguagem SQL Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM 13. Introdução à Linguagem SQL Introdução

Leia mais

Projeto de Banco de Dados

Projeto de Banco de Dados Projeto de Banco de Dados Prof. Marcelo Siedler Objetivos do documento: Apresentar os conceitos de stored procedutes e funções. Exercícios. Referência: http://dev.mysql.com/doc/refman/4.1/pt/stored-procedures.html

Leia mais

CONCORRÊNCIA. 1. Introdução. Recursos exclusivos. Não necessita controle. Abundância de recursos compartilhados. Controle necessário mas mínimo

CONCORRÊNCIA. 1. Introdução. Recursos exclusivos. Não necessita controle. Abundância de recursos compartilhados. Controle necessário mas mínimo CONCORRÊNCIA 1. Introdução Recursos exclusivos Não necessita controle Abundância de recursos compartilhados Controle necessário mas mínimo Harmonia, provavelmente não haverá conflito Recursos disputados

Leia mais

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

Relatório. Projecto de Base de Dados Parte 2. Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves 64027 Rui Barradas 68239 Hélton Miranda 68477 Relatório Projecto de Base de Dados Parte 2 Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves 64027 Rui Barradas 68239 Hélton Miranda 68477 1. Criação da base de dados De seguida vem escrito um script

Leia mais

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com SQL Prof. Márcio Bueno {bd2tarde,bd2noite}@marciobueno.com Material dos professores Ana Carolina Salgado, Fernando Foncesa e Valéria Times (CIn/UFPE) SQL SQL - Structured Query Language Linguagem de Consulta

Leia mais

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

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS CLAUDIO RIBEIRO DA SILVA MARÇO 1997 2 1 - CONCEITOS GERAIS DE 1.1 - Conceitos Banco de Dados - Representa

Leia mais

Fundamentos do Sistema Gerenciador de Banco de Dados

Fundamentos do Sistema Gerenciador de Banco de Dados Fundamentos do Sistema Gerenciador de Banco de Dados Cláudio Luís V. Oliveira Janeiro de 2010 Definição "Um sistema cujo objetivo principal é gerenciar o acesso, a correta manutenção e a integridade dos

Leia mais

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL Banco de Dados Exercícios SQL 1 TRF (ESAF 2006) 32. Analise as seguintes afirmações relacionadas a Bancos de Dados e à linguagem SQL: I. A cláusula GROUP BY do comando SELECT é utilizada para dividir colunas

Leia mais

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS Esclarecimento Licenciamento de Uso Este documento é propriedade intelectual 2012 da NRSYSTEM COMÉRCIO E SERVIÇOS DE INFORMÁTICA LTDA-ME, consiste de uma compilação de diversos materiais entre livros,

Leia mais

MySQL. Prof. César Melo. com a ajuda de vários

MySQL. Prof. César Melo. com a ajuda de vários MySQL Prof. César Melo com a ajuda de vários Banco de dados e Sistema de gerenciamento; Um banco de dados é uma coleção de dados. Em um banco de dados relacional, os dados são organizados em tabelas. matricula

Leia mais

Manter estatísticas atualizadas é uma das regras de ouro na busca por performance.

Manter estatísticas atualizadas é uma das regras de ouro na busca por performance. Atualização de Estatísticas Um objeto de estatística pode ser atualizado manualmente pelo usuário, através dos comandos SP_UPDATESTATS e/ou UPDATE STATISTICS. Enquanto que a procedure SP_UPDATESTATS atualiza

Leia mais

Integridade dos Dados

Integridade dos Dados 1 Integridade dos Dados Integridade dos Dados Melissa Lemos melissa@inf.puc-rio.br A integridade dos dados é feita através de restrições, que são condições obrigatórias impostas pelo modelo. Restrições

Leia mais

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

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

Triggers e mais... Instituto Militar de Engenharia IME 1o. Semestre/2005 Triggers Propósito mais amplo que restrições Restrições onde se explicita o evento Regras event-condition-action (ECA) Eventos:

Leia mais

SQL comando SELECT. SELECT [DISTINCT] FROM [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda. SQL comando SELECT Uma das tarefas mais requisitadas em qualquer banco de dados é obter uma listagem de registros armazenados. Estas tarefas são executadas pelo comando SELECT Sintaxe: SELECT [DISTINCT]

Leia mais

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza PHP e Banco de Dados progweb2@thiagomiranda.net Conteúdos Os materiais de aula, apostilas e outras informações estarão disponíveis em: www.thiagomiranda.net PHP e Banco de Dados É praticamente impossível

Leia mais

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

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) ) TADS Exercício Laboratório I Analise o modelo de banco de dados abaixo: MUSICA FAIXA Codigo_Musica: INTEGER Nome_Musica: VARCHAR(60) Duracao: NUMERIC(6,2) Codigo_Musica: INTEGER (FK) Codigo_CD: INTEGER

Leia mais

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

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

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

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl

Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl AVALIAÇÃO DA QUALIDADE DO CÓDIGO FONTE ESCRITO EM PL/SQL Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento

Leia mais

Linguagem SQL - Structured Query Language

Linguagem SQL - Structured Query Language Linguagem SQL - Structured Query Language Breve introdução aos comandos: insert delete update select Alguns casos práticos: 1 Piloto Carro Marca Corrida Circuito Classificação #piloto nome morada idade

Leia mais

trigger insert, delete, update

trigger insert, delete, update 1 Um trigger é um conjunto de instruções SQL armazenadas no catalogo da BD Pertence a um grupo de stored programs do MySQL Executado quando um evento associado com uma tabela acontece: insert, delete,

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Processamento e Otimização de Consultas

Processamento 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 mais

AULA 16 - Sistema de Arquivos

AULA 16 - Sistema de Arquivos AULA 16 - Sistema de Arquivos Arquivos podem ser vistos como recipientes que contêm dados ou como um grupo de registros correlatos. Os arquivos armazenam informações que serão utilizadas, em geral, por

Leia mais