SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
Banco	
  de	
  dados	
  geográficos
Unidade	
  II	
  –	
  Linguagem	
  SQL	
  e	
  suas	
  
extensões	
  espaciais	
  
Sérgio	
  Souza	
  Costa
Especialização	
  de	
  Geoprocessamento
Tópicos
1. Linguagem de consulta (SQL)
2. Extensões espaciais
a. Tipos de dados espaciais
b. Operadores espaciais
Linguagem de consulta SQL
Linguagem padrão para consulta e manipulação de dados
Structured Query Language
Desenvolvida pela IBM na década de 70, inicialmente chamada de SEQUEL.
Tem evoluído, e vários padrões já foram desenvolvidos:
ANSI SQL, SQL92 (SQL2), SQL99 (SQL3), SQL2003 ...
Linguagem de consulta (SQL)
Linguagem de consulta (SQL)
Nome Preço Categoria Marca
Galaxy A9 SM-A910 1198 Celular Samsung
S04 Modo Expresso 299.99
Eletrodoméstico Três Corações
Bella Arome II C-09
149.99 Eletrodoméstico Mondial
Smart TV HD Série 4
LED 32 polegadas
1250 TV Samsung
Produto
Nome da tabela
Campos (ou
atributos)
Linhas (ou tuplas)
Linguagem de consulta (SQL)
Nome Preço Categoria Marca
Galaxy A9 SM-A910 1198 Celular Samsung
S04 Modo Expresso 299.99
Eletrodoméstico Três Corações
Bella Arome II C-09
149.99 Eletrodoméstico Mondial
Smart TV HD Série 4
LED 32 polegadas
1250 TV Samsung
Produto
Nome da tabela
Campos (ou
atributos)
Linhas (ou tuplas)
Uma tupla ou linha é
usualmente referida
como registro,
enquanto a tabela é
uma coleção de
registros.
Linguagem de consulta (SQL)
Todo campo tem um domínio, ou seja, ele precisa ter um tipo de dados
definido:
Os tipos básicos são:
Caracteres: CHAR(20), VARCHAR(50)
Números: INT, BIGINT, SMALLINT, FLOAT
Outros:: MONEY, DATETIME, …
Linguagem de consulta (SQL)
Uma tabela pode ser descrita textualmente pelo seu nome, e dos seus campos:
Produto (Nome, Preco, Categoria, Marca)
Um dos campos pode ser escolhido como chave primária, um campo que pode
ser usado para identificar. Nesse caso ele é usualmente sublinhado:
Produto (Nome, Preco, Categoria, Marca)
Linguagem de consulta (SQL)
Definição de dados: criação das estruturas
○  Data Definition Language (DDL)
○  create, alter, drop
Manipulação de dados: atualização e consultas
○  Data Manipulation Language (DML)
○  select, insert, update, delete ...
Controle de acesso
○  Data Control Language (DCL)
○  grant Revoke, etc
Linguagem de consulta (SQL) - Select
Forma básica:
SELECT lista de campos
FROM lista de tabelas
WHERE condição.
SELECT *
FROM produto
WHERE categoria = 'Eletrodoméstico'
Nome Preço Categoria Marca
Galaxy A9 SM-A910 1198 Celular Samsung
S04 Modo Expresso 299.99 Eletrodoméstico
Três Corações
Bella Arome II C-09
149.99
Eletrodoméstico
Mondial
Smart TV HD Série 4
LED 32 polegadas
1250 TV Samsung
Linguagem de consulta (SQL) - Select
SELECT *
FROM produto
WHERE categoria = 'Eletrodoméstico'
Nome Preço Categoria Marca
Galaxy A9 SM-A910 1198 Celular Samsung
S04 Modo Expresso 299.99 Eletrodoméstico
Três Corações
Bella Arome II C-09
149.99
Eletrodoméstico
Mondial
Smart TV HD Série 4
LED 32 polegadas
1250 TV Samsung
Nome Preço Categoria Marca
S04 Modo Expresso 299.99 Eletrodoméstico
Três Corações
Bella Arome II C-09
149.99
Eletrodoméstico
Mondial
Linguagem de consulta (SQL) - Select
SELECT Nome, Marca
FROM produto
WHERE preco > 1000
Nome Preço Categoria Marca
Galaxy A9 SM-A910 1198 Celular Samsung
S04 Modo Expresso 299.99 Eletrodoméstico
Três Corações
Bella Arome II C-09
149.99
Eletrodoméstico
Mondial
Smart TV HD Série 4
LED 32 polegadas
1250 TV Samsung
Linguagem de consulta (SQL) - Select
SELECT Nome, Marca
FROM produto
WHERE preco > 1000
Nome Preço Categoria Marca
Galaxy A9 SM-A910 1198 Celular Samsung
S04 Modo Expresso 299.99 Eletrodoméstico
Três Corações
Bella Arome II C-09
149.99
Eletrodoméstico
Mondial
Smart TV HD Série 4
LED 32 polegadas
1250 TV Samsung
Nome Marca
Galaxy A9 SM-A910 Samsung
Smart TV HD Série 4
LED 32 polegadas
Samsung
Linguagem de consulta (SQL) - Select
Linguagem de consulta (SQL) - Select (chaves)
PNome Preço Categoria Marca
Galaxy A9 SM-A910 1198 Celular Samsung
S04 Modo Expresso 299.99
Eletrodoméstico Três Corações
Bella Arome II C-09
149.99 Eletrodoméstico Mondial
Smart TV HD Série 4
LED 32 polegadas
1250 TV Samsung
ENome País
Samsung Coréia do Sul
Três Corações Brasil
Mondial
Brasil
Produto
Empresa
Chave estrangeira Chave primária
PNome Preço Categoria Marca
Galaxy A9 SM-A910 1198 Celular Samsung
S04 Modo Expresso 299.99
Eletrodoméstico Três Corações
Bella Arome II C-09
149.99 Eletrodoméstico Mondial
Smart TV HD Série 4
LED 32 polegadas
1250 TV Samsung
ENome País
Samsung Coréia do Sul
Três Corações Brasil
Mondial
Brasil
Linguagem de consulta (SQL) - Select (join)
PNome Preço Categoria Marca
Galaxy A9 SM-A910 1198 Celular Samsung
S04 Modo Expresso 299.99
Eletrodoméstico Três Corações
Bella Arome II C-09
149.99 Eletrodoméstico Mondial
Smart TV HD Série 4
LED 32 polegadas
1250 TV Samsung
ENome País
Samsung Coréia do Sul
Três Corações Brasil
Mondial
Brasil
Linguagem de consulta (SQL) - Select (join)
SELECT PNome, Preço
FROM Produto, Empresa
WHERE Marca=ENome
AND Pais=‘Brasil’
PNome Preço Categoria Marca
Galaxy A9 SM-A910 1198 Celular Samsung
S04 Modo Expresso 299.99
Eletrodoméstico Três Corações
Bella Arome II C-09
149.99 Eletrodoméstico Mondial
Smart TV HD Série 4
LED 32 polegadas
1250 TV Samsung
ENome País
Samsung Coréia do Sul
Três Corações Brasil
Mondial
Brasil
Linguagem de consulta (SQL) - Select (join)
SELECT PNome, Preço
FROM Produto, Empresa
WHERE Marca=ENome
AND Pais=‘Brasil’
PNome Preço
S04 Modo Expresso 299.99
Bella Arome II C-09
149.99
Linguagem de consulta (SQL) - Select (agregação)
SQL suporta várias operações de agregação para os dados básicos:
sum, count, min, max, avg
SELECT avg(Preco)
FROM Produto
SELECT count(*)
FROM Produto
where marca = 'samsung
Linguagem de consulta (SQL) - Select (agregação)
PNome Preço Categoria Marca
Galaxy A9 SM-A910 1198 Celular Samsung
S04 Modo Expresso 299.99
Eletrodoméstico Três Corações
Bella Arome II C-09
149.99 Eletrodoméstico Mondial
Smart TV HD Série 4
LED 32 polegadas
1250 TV Samsung
SELECT sum(Preco)
FROM Produto, Empresa
WHERE Marca=EName
AND Pais=‘Brasil’
ENome País
Samsung Coréia do Sul
Três Corações Brasil
Mondial
Brasil
Linguagem de consulta (SQL) - Select (agregação)
PNome Preço Categoria Marca
Galaxy A9 SM-A910 1198 Celular Samsung
S04 Modo Expresso 299.99
Eletrodoméstico Três Corações
Bella Arome II C-09
149.99 Eletrodoméstico Mondial
Smart TV HD Série 4
LED 32 polegadas
1250 TV Samsung
SELECT sum(Preco)
FROM Produto, Empresa
WHERE Marca=EName
AND Pais=‘Brasil’
149.99+299.99 =
449.98
ENome País
Samsung Coréia do Sul
Três Corações Brasil
Mondial
Brasil
Linguagem de consulta (SQL) - Select (agregação)
PNome Preço Categoria Marca
Galaxy A9 SM-A910 1198 Celular Samsung
S04 Modo Expresso 299.99
Eletrodoméstico Três Corações
Bella Arome II C-09
149.99 Eletrodoméstico Mondial
Smart TV HD Série 4
LED 32 polegadas
1250 TV Samsung
SELECT sum(Preco)
FROM Produto, Empresa
WHERE Marca=EName
AND Pais=‘Brasil’
149.99+299.99 =
449.98
N a s r e f e r ê n c i a s ,
pesquisem sobre as
cláusulas group-by,
order e having.
Extensões espaciais
Alguns gerenciadores de banco de dados dão suporte a manipulação de dados
espaciais, sendo referido como banco de dados espaciais (ou geográficos).
Onde um banco de dados espacial é:
Banco de dados espaciais armazenam e manipulam objetos espaciais como
qualquer outro objeto.
Extensões espaciais
Alguns gerenciadores de banco de dados dão suporte a manipulação de dados
espaciais, sendo referido como banco de dados espaciais (ou geográficos).
Onde um banco de dados espacial é:
“Spatial database system is a database system that offers spatial data types in its data model
and query language and supports spatial data types in its implementation, providing at least
spatial indexing and spatial join methods” (Guting, 1994).
Nesse curso iremos usar o PostGIS que é uma extensão espacial para o
gerenciador de banco de dados PostgreSQL,
Extensões espaciais
Extensões espaciais
Essas extensões espaciais tem que dar suporte a três aspectos principais dos
gerenciadores de banco de dados: dados espaciais, funções espaciais e índices.
Extensões espaciais
Essas extensões espaciais tem que dar suporte a três aspectos principais dos
gerenciadores de banco de dados: dados espaciais, funções espaciais e índices.
Convencionais
●  Tipos
○  char, integer, real, date
●  Índices
○  b-tree, hash
●  Funções
○  strlen(char)
○  pow(real, real),
○  now()
PostGIS
●  Tipos
○  geometry, geography
●  Índices
○  r-tree, quad-tree, kd-tree
●  Funções
○  ST_Length(geometry),
○  ST_X(geometry)
Extensões espaciais
Essas extensões espaciais tem que dar suporte a três aspectos principais dos
gerenciadores de banco de dados: dados espaciais, funções espaciais e índices.
Convencionais
●  Tipos
○  char, integer, real, date
●  Índices
○  b-tree, hash
●  Funções
○  strlen(char)
○  pow(real, real),
○  now()
PostGIS
●  Tipos
○  geometry, geography
●  Índices
○  r-tree, quad-tree, kd-tree
●  Funções
○  ST_Length(geometry),
○  ST_X(geometry)
Extensões espaciais - tipos de dados
Extensões espaciais - tipos de dados
Os dados estão
descritos no formato
textual Well-known
text (WKT).
Extensões espaciais - tipos de dados
Extensões espaciais - exemplo
Criando a extensão em um dado banco de dados:
create extension postgis;
Verificando a tabela do sistema de referência:
select * from spatial_ref_sys;
Extensões espaciais - exemplo
Criando uma tabela de pontos:
CREATE TABLE pontos (
geom_pt geometry(POINT,0),
nome varchar
);
Extensões espaciais - exemplo
Considerem três pontos no plano cartesiano:
Extensões espaciais - exemplo
Inserindo os três pontos na tabela pontos:
INSERT INTO pontos VALUES ('POINT(0 0)', 'Origem');
INSERT INTO pontos VALUES ('POINT(5 0)', 'Eixo X');
INSERT INTO pontos VALUES ('POINT(0 5)', 'Eixo Y');
Extensões espaciais - exemplo
Consulta:
SELECT nome, geom_pt
FROM pontos;
WKB (Well-Known
Binary)
Extensões espaciais - exemplo
Consulta:
SELECT nome, ST_AsText(geom_pt)
FROM pontos;
WKT (Well-Known
Text)
Função PostGIS
Extensões espaciais - exemplo
Consulta:
SELECT nome, ST_AsText(geom_pt),
ST_Distance(geom_pt, 'POINT(5 5)')
FROM pontos;
Função
PostGIS
Extensões espaciais - exemplo
O mais comum é utilizarmos um banco de dados integrado com um sistema de
informação geográfica, por exemplo o QGis:
Extensões espaciais - exemplo
O mais comum é utilizarmos um banco de dados integrado com um sistema de
informação geográfica, por exemplo o QGis:
select * from ma;
Extensões espaciais - exemplo
Exemplo de uso das funções Within (dentro) e de transformações entre
projeções:
Todas as sedes que estão localizadas em São Luís (186):
select distinct "Name", ma.id from sedes, ma where ma.id = 186 and
ST_Within( ST_Transform(sedes.geom, 4326),
ST_Transform(ma.geom, 4326))
Extensões espaciais - exemplo
Exemplo de uso das funções Within (dentro) e de transformações entre projeções:
Todas as sedes que estão localizadas em São Luís (186):
select distinct "Name", ma.id from sedes, ma where ma.id = 186 and
ST_Within( ST_Transform(sedes.geom, 4326),
ST_Transform(ma.geom, 4326))
São Luís
Extensões espaciais - exemplo
No nosso encontro
presencial, iremos
explorar o uso da
extensão PostGIS e sua
integração com o QGIS
Aqui contextualizamos a linguagem SQL e apresentamos
brevemente uma extensão espacial denominada PostGIS.
O detalhamento desta extensão e sua utilização será explorada na
aula presencial.
Leiam o fascículo, acessem o material complementar.
Bons estudos!!!
Referências
GÜTING, Ralf Hartmut. An introduction to spatial database systems. The VLDB Journal—The
International Journal on Very Large Data Bases, v. 3, n. 4, p. 357-399, 1994.
Banco de dados geográficos e SQL espacial

Mais conteúdo relacionado

Mais de Sérgio Souza Costa

Banco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de EncerramentoBanco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de EncerramentoSérgio Souza Costa
 
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagemBanco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagemSérgio Souza Costa
 
Banco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de aberturaBanco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de aberturaSérgio Souza Costa
 
Gödel’s incompleteness theorems
Gödel’s incompleteness theoremsGödel’s incompleteness theorems
Gödel’s incompleteness theoremsSérgio Souza Costa
 
DBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cellsDBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cellsSérgio Souza Costa
 
Conceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetosConceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetosSérgio Souza Costa
 
Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)Sérgio Souza Costa
 
Relações (composição e agregação)
Relações (composição e agregação)Relações (composição e agregação)
Relações (composição e agregação)Sérgio Souza Costa
 
Explorando Games para o Ensino do Pensamento Computacional
Explorando Games para o Ensino do Pensamento ComputacionalExplorando Games para o Ensino do Pensamento Computacional
Explorando Games para o Ensino do Pensamento ComputacionalSérgio Souza Costa
 
Aula 1 - introdução a fundamentos de computação
Aula 1 - introdução a fundamentos de computaçãoAula 1 - introdução a fundamentos de computação
Aula 1 - introdução a fundamentos de computaçãoSérgio Souza Costa
 
From remote sensing to agent-based models
From remote sensing to agent-based modelsFrom remote sensing to agent-based models
From remote sensing to agent-based modelsSérgio Souza Costa
 
Explorando o HTML5 para visualização de dados geográficos
Explorando o HTML5 para visualização de dados geográficosExplorando o HTML5 para visualização de dados geográficos
Explorando o HTML5 para visualização de dados geográficosSérgio Souza Costa
 

Mais de Sérgio Souza Costa (20)

Banco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de EncerramentoBanco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de Encerramento
 
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagemBanco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
 
Banco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de aberturaBanco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de abertura
 
Gödel’s incompleteness theorems
Gödel’s incompleteness theoremsGödel’s incompleteness theorems
Gödel’s incompleteness theorems
 
Turing e o problema da decisão
Turing e o problema da decisãoTuring e o problema da decisão
Turing e o problema da decisão
 
DBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cellsDBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cells
 
Conceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetosConceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetos
 
Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)
 
Herança e Encapsulamento
Herança e EncapsulamentoHerança e Encapsulamento
Herança e Encapsulamento
 
Relações (composição e agregação)
Relações (composição e agregação)Relações (composição e agregação)
Relações (composição e agregação)
 
Abstract classes and interfaces
Abstract classes and interfacesAbstract classes and interfaces
Abstract classes and interfaces
 
Introdução ao Prolog
Introdução ao PrologIntrodução ao Prolog
Introdução ao Prolog
 
Heap - Python
Heap - PythonHeap - Python
Heap - Python
 
Paradigma lógico
Paradigma lógicoParadigma lógico
Paradigma lógico
 
Contextualizando o moodle
Contextualizando o moodleContextualizando o moodle
Contextualizando o moodle
 
Explorando Games para o Ensino do Pensamento Computacional
Explorando Games para o Ensino do Pensamento ComputacionalExplorando Games para o Ensino do Pensamento Computacional
Explorando Games para o Ensino do Pensamento Computacional
 
Software
SoftwareSoftware
Software
 
Aula 1 - introdução a fundamentos de computação
Aula 1 - introdução a fundamentos de computaçãoAula 1 - introdução a fundamentos de computação
Aula 1 - introdução a fundamentos de computação
 
From remote sensing to agent-based models
From remote sensing to agent-based modelsFrom remote sensing to agent-based models
From remote sensing to agent-based models
 
Explorando o HTML5 para visualização de dados geográficos
Explorando o HTML5 para visualização de dados geográficosExplorando o HTML5 para visualização de dados geográficos
Explorando o HTML5 para visualização de dados geográficos
 

Último

07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptxVagner Soares da Costa
 
apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaWilliamCruz402522
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp txrafaelacushman21
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06AndressaTenreiro
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxFlvioDadinhoNNhamizi
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMdiminutcasamentos
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptxVagner Soares da Costa
 

Último (7)

07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
 
apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aula
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp tx
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPM
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
 

Banco de dados geográficos e SQL espacial

  • 1. Banco  de  dados  geográficos Unidade  II  –  Linguagem  SQL  e  suas   extensões  espaciais   Sérgio  Souza  Costa Especialização  de  Geoprocessamento
  • 2. Tópicos 1. Linguagem de consulta (SQL) 2. Extensões espaciais a. Tipos de dados espaciais b. Operadores espaciais
  • 4. Linguagem padrão para consulta e manipulação de dados Structured Query Language Desenvolvida pela IBM na década de 70, inicialmente chamada de SEQUEL. Tem evoluído, e vários padrões já foram desenvolvidos: ANSI SQL, SQL92 (SQL2), SQL99 (SQL3), SQL2003 ... Linguagem de consulta (SQL)
  • 5. Linguagem de consulta (SQL) Nome Preço Categoria Marca Galaxy A9 SM-A910 1198 Celular Samsung S04 Modo Expresso 299.99 Eletrodoméstico Três Corações Bella Arome II C-09 149.99 Eletrodoméstico Mondial Smart TV HD Série 4 LED 32 polegadas 1250 TV Samsung Produto Nome da tabela Campos (ou atributos) Linhas (ou tuplas)
  • 6. Linguagem de consulta (SQL) Nome Preço Categoria Marca Galaxy A9 SM-A910 1198 Celular Samsung S04 Modo Expresso 299.99 Eletrodoméstico Três Corações Bella Arome II C-09 149.99 Eletrodoméstico Mondial Smart TV HD Série 4 LED 32 polegadas 1250 TV Samsung Produto Nome da tabela Campos (ou atributos) Linhas (ou tuplas) Uma tupla ou linha é usualmente referida como registro, enquanto a tabela é uma coleção de registros.
  • 7. Linguagem de consulta (SQL) Todo campo tem um domínio, ou seja, ele precisa ter um tipo de dados definido: Os tipos básicos são: Caracteres: CHAR(20), VARCHAR(50) Números: INT, BIGINT, SMALLINT, FLOAT Outros:: MONEY, DATETIME, …
  • 8. Linguagem de consulta (SQL) Uma tabela pode ser descrita textualmente pelo seu nome, e dos seus campos: Produto (Nome, Preco, Categoria, Marca) Um dos campos pode ser escolhido como chave primária, um campo que pode ser usado para identificar. Nesse caso ele é usualmente sublinhado: Produto (Nome, Preco, Categoria, Marca)
  • 9. Linguagem de consulta (SQL) Definição de dados: criação das estruturas ○  Data Definition Language (DDL) ○  create, alter, drop Manipulação de dados: atualização e consultas ○  Data Manipulation Language (DML) ○  select, insert, update, delete ... Controle de acesso ○  Data Control Language (DCL) ○  grant Revoke, etc
  • 10. Linguagem de consulta (SQL) - Select Forma básica: SELECT lista de campos FROM lista de tabelas WHERE condição.
  • 11. SELECT * FROM produto WHERE categoria = 'Eletrodoméstico' Nome Preço Categoria Marca Galaxy A9 SM-A910 1198 Celular Samsung S04 Modo Expresso 299.99 Eletrodoméstico Três Corações Bella Arome II C-09 149.99 Eletrodoméstico Mondial Smart TV HD Série 4 LED 32 polegadas 1250 TV Samsung Linguagem de consulta (SQL) - Select
  • 12. SELECT * FROM produto WHERE categoria = 'Eletrodoméstico' Nome Preço Categoria Marca Galaxy A9 SM-A910 1198 Celular Samsung S04 Modo Expresso 299.99 Eletrodoméstico Três Corações Bella Arome II C-09 149.99 Eletrodoméstico Mondial Smart TV HD Série 4 LED 32 polegadas 1250 TV Samsung Nome Preço Categoria Marca S04 Modo Expresso 299.99 Eletrodoméstico Três Corações Bella Arome II C-09 149.99 Eletrodoméstico Mondial Linguagem de consulta (SQL) - Select
  • 13. SELECT Nome, Marca FROM produto WHERE preco > 1000 Nome Preço Categoria Marca Galaxy A9 SM-A910 1198 Celular Samsung S04 Modo Expresso 299.99 Eletrodoméstico Três Corações Bella Arome II C-09 149.99 Eletrodoméstico Mondial Smart TV HD Série 4 LED 32 polegadas 1250 TV Samsung Linguagem de consulta (SQL) - Select
  • 14. SELECT Nome, Marca FROM produto WHERE preco > 1000 Nome Preço Categoria Marca Galaxy A9 SM-A910 1198 Celular Samsung S04 Modo Expresso 299.99 Eletrodoméstico Três Corações Bella Arome II C-09 149.99 Eletrodoméstico Mondial Smart TV HD Série 4 LED 32 polegadas 1250 TV Samsung Nome Marca Galaxy A9 SM-A910 Samsung Smart TV HD Série 4 LED 32 polegadas Samsung Linguagem de consulta (SQL) - Select
  • 15. Linguagem de consulta (SQL) - Select (chaves) PNome Preço Categoria Marca Galaxy A9 SM-A910 1198 Celular Samsung S04 Modo Expresso 299.99 Eletrodoméstico Três Corações Bella Arome II C-09 149.99 Eletrodoméstico Mondial Smart TV HD Série 4 LED 32 polegadas 1250 TV Samsung ENome País Samsung Coréia do Sul Três Corações Brasil Mondial Brasil Produto Empresa Chave estrangeira Chave primária
  • 16. PNome Preço Categoria Marca Galaxy A9 SM-A910 1198 Celular Samsung S04 Modo Expresso 299.99 Eletrodoméstico Três Corações Bella Arome II C-09 149.99 Eletrodoméstico Mondial Smart TV HD Série 4 LED 32 polegadas 1250 TV Samsung ENome País Samsung Coréia do Sul Três Corações Brasil Mondial Brasil Linguagem de consulta (SQL) - Select (join)
  • 17. PNome Preço Categoria Marca Galaxy A9 SM-A910 1198 Celular Samsung S04 Modo Expresso 299.99 Eletrodoméstico Três Corações Bella Arome II C-09 149.99 Eletrodoméstico Mondial Smart TV HD Série 4 LED 32 polegadas 1250 TV Samsung ENome País Samsung Coréia do Sul Três Corações Brasil Mondial Brasil Linguagem de consulta (SQL) - Select (join) SELECT PNome, Preço FROM Produto, Empresa WHERE Marca=ENome AND Pais=‘Brasil’
  • 18. PNome Preço Categoria Marca Galaxy A9 SM-A910 1198 Celular Samsung S04 Modo Expresso 299.99 Eletrodoméstico Três Corações Bella Arome II C-09 149.99 Eletrodoméstico Mondial Smart TV HD Série 4 LED 32 polegadas 1250 TV Samsung ENome País Samsung Coréia do Sul Três Corações Brasil Mondial Brasil Linguagem de consulta (SQL) - Select (join) SELECT PNome, Preço FROM Produto, Empresa WHERE Marca=ENome AND Pais=‘Brasil’ PNome Preço S04 Modo Expresso 299.99 Bella Arome II C-09 149.99
  • 19. Linguagem de consulta (SQL) - Select (agregação) SQL suporta várias operações de agregação para os dados básicos: sum, count, min, max, avg SELECT avg(Preco) FROM Produto SELECT count(*) FROM Produto where marca = 'samsung
  • 20. Linguagem de consulta (SQL) - Select (agregação) PNome Preço Categoria Marca Galaxy A9 SM-A910 1198 Celular Samsung S04 Modo Expresso 299.99 Eletrodoméstico Três Corações Bella Arome II C-09 149.99 Eletrodoméstico Mondial Smart TV HD Série 4 LED 32 polegadas 1250 TV Samsung SELECT sum(Preco) FROM Produto, Empresa WHERE Marca=EName AND Pais=‘Brasil’ ENome País Samsung Coréia do Sul Três Corações Brasil Mondial Brasil
  • 21. Linguagem de consulta (SQL) - Select (agregação) PNome Preço Categoria Marca Galaxy A9 SM-A910 1198 Celular Samsung S04 Modo Expresso 299.99 Eletrodoméstico Três Corações Bella Arome II C-09 149.99 Eletrodoméstico Mondial Smart TV HD Série 4 LED 32 polegadas 1250 TV Samsung SELECT sum(Preco) FROM Produto, Empresa WHERE Marca=EName AND Pais=‘Brasil’ 149.99+299.99 = 449.98 ENome País Samsung Coréia do Sul Três Corações Brasil Mondial Brasil
  • 22. Linguagem de consulta (SQL) - Select (agregação) PNome Preço Categoria Marca Galaxy A9 SM-A910 1198 Celular Samsung S04 Modo Expresso 299.99 Eletrodoméstico Três Corações Bella Arome II C-09 149.99 Eletrodoméstico Mondial Smart TV HD Série 4 LED 32 polegadas 1250 TV Samsung SELECT sum(Preco) FROM Produto, Empresa WHERE Marca=EName AND Pais=‘Brasil’ 149.99+299.99 = 449.98 N a s r e f e r ê n c i a s , pesquisem sobre as cláusulas group-by, order e having.
  • 24. Alguns gerenciadores de banco de dados dão suporte a manipulação de dados espaciais, sendo referido como banco de dados espaciais (ou geográficos). Onde um banco de dados espacial é: Banco de dados espaciais armazenam e manipulam objetos espaciais como qualquer outro objeto. Extensões espaciais
  • 25. Alguns gerenciadores de banco de dados dão suporte a manipulação de dados espaciais, sendo referido como banco de dados espaciais (ou geográficos). Onde um banco de dados espacial é: “Spatial database system is a database system that offers spatial data types in its data model and query language and supports spatial data types in its implementation, providing at least spatial indexing and spatial join methods” (Guting, 1994). Nesse curso iremos usar o PostGIS que é uma extensão espacial para o gerenciador de banco de dados PostgreSQL, Extensões espaciais
  • 26. Extensões espaciais Essas extensões espaciais tem que dar suporte a três aspectos principais dos gerenciadores de banco de dados: dados espaciais, funções espaciais e índices.
  • 27. Extensões espaciais Essas extensões espaciais tem que dar suporte a três aspectos principais dos gerenciadores de banco de dados: dados espaciais, funções espaciais e índices. Convencionais ●  Tipos ○  char, integer, real, date ●  Índices ○  b-tree, hash ●  Funções ○  strlen(char) ○  pow(real, real), ○  now() PostGIS ●  Tipos ○  geometry, geography ●  Índices ○  r-tree, quad-tree, kd-tree ●  Funções ○  ST_Length(geometry), ○  ST_X(geometry)
  • 28. Extensões espaciais Essas extensões espaciais tem que dar suporte a três aspectos principais dos gerenciadores de banco de dados: dados espaciais, funções espaciais e índices. Convencionais ●  Tipos ○  char, integer, real, date ●  Índices ○  b-tree, hash ●  Funções ○  strlen(char) ○  pow(real, real), ○  now() PostGIS ●  Tipos ○  geometry, geography ●  Índices ○  r-tree, quad-tree, kd-tree ●  Funções ○  ST_Length(geometry), ○  ST_X(geometry)
  • 29. Extensões espaciais - tipos de dados
  • 30. Extensões espaciais - tipos de dados Os dados estão descritos no formato textual Well-known text (WKT).
  • 31. Extensões espaciais - tipos de dados
  • 32. Extensões espaciais - exemplo Criando a extensão em um dado banco de dados: create extension postgis; Verificando a tabela do sistema de referência: select * from spatial_ref_sys;
  • 33. Extensões espaciais - exemplo Criando uma tabela de pontos: CREATE TABLE pontos ( geom_pt geometry(POINT,0), nome varchar );
  • 34. Extensões espaciais - exemplo Considerem três pontos no plano cartesiano:
  • 35. Extensões espaciais - exemplo Inserindo os três pontos na tabela pontos: INSERT INTO pontos VALUES ('POINT(0 0)', 'Origem'); INSERT INTO pontos VALUES ('POINT(5 0)', 'Eixo X'); INSERT INTO pontos VALUES ('POINT(0 5)', 'Eixo Y');
  • 36. Extensões espaciais - exemplo Consulta: SELECT nome, geom_pt FROM pontos; WKB (Well-Known Binary)
  • 37. Extensões espaciais - exemplo Consulta: SELECT nome, ST_AsText(geom_pt) FROM pontos; WKT (Well-Known Text) Função PostGIS
  • 38. Extensões espaciais - exemplo Consulta: SELECT nome, ST_AsText(geom_pt), ST_Distance(geom_pt, 'POINT(5 5)') FROM pontos; Função PostGIS
  • 39. Extensões espaciais - exemplo O mais comum é utilizarmos um banco de dados integrado com um sistema de informação geográfica, por exemplo o QGis:
  • 40. Extensões espaciais - exemplo O mais comum é utilizarmos um banco de dados integrado com um sistema de informação geográfica, por exemplo o QGis: select * from ma;
  • 41. Extensões espaciais - exemplo Exemplo de uso das funções Within (dentro) e de transformações entre projeções: Todas as sedes que estão localizadas em São Luís (186): select distinct "Name", ma.id from sedes, ma where ma.id = 186 and ST_Within( ST_Transform(sedes.geom, 4326), ST_Transform(ma.geom, 4326))
  • 42. Extensões espaciais - exemplo Exemplo de uso das funções Within (dentro) e de transformações entre projeções: Todas as sedes que estão localizadas em São Luís (186): select distinct "Name", ma.id from sedes, ma where ma.id = 186 and ST_Within( ST_Transform(sedes.geom, 4326), ST_Transform(ma.geom, 4326)) São Luís
  • 43. Extensões espaciais - exemplo No nosso encontro presencial, iremos explorar o uso da extensão PostGIS e sua integração com o QGIS
  • 44. Aqui contextualizamos a linguagem SQL e apresentamos brevemente uma extensão espacial denominada PostGIS. O detalhamento desta extensão e sua utilização será explorada na aula presencial. Leiam o fascículo, acessem o material complementar. Bons estudos!!!
  • 45. Referências GÜTING, Ralf Hartmut. An introduction to spatial database systems. The VLDB Journal—The International Journal on Very Large Data Bases, v. 3, n. 4, p. 357-399, 1994.