Escolar Documentos
Profissional Documentos
Cultura Documentos
SQL
Banco de Dados lgebra Relacional e SQL Profa. Dra. Cristina Dutra de Aguiar Ciferri
Banco de Dados
Profa. Dra. Cristina Dutra de Aguiar Ciferri
lgebra Relacional
Banco de Dados lgebra Relacional e SQL Profa. Dra. Cristina Dutra de Aguiar Ciferri
Maneira terica de se manipular o banco
de dados relacional
Linguagem de consulta procedural
usurios especificam os dados necessrios
e como obt-los
Consiste de um conjunto de operaes
entrada: uma ou duas relaes
sada: uma nova relao resultado
Operaes
Banco de Dados lgebra Relacional e SQL Profa. Dra. Cristina Dutra de Aguiar Ciferri
Fundamentais
seleo
projeo
produto cartesiano
renomear
unio
diferena de conjuntos
Adicionais
interseco de
conjuntos
juno natural
diviso
agregao
SQL DML
SELECT <lista de atributos e funes>
FROM <lista de tabelas>
[ WHERE predicado ]
[ GROUP BY <atributos de agrupamento> ]
[ HAVING <condio para agrupamento> ] [
ORDER BY <lista de atributos> ] ;
Banco de Dados lgebra Relacional e SQL Profa. Dra. Cristina Dutra de Aguiar Ciferri
lgebra Relacional: Seleo
Seleciona tuplas que satisfaam
condio de seleo
condio_seleo
( relao argumento )
relao
resultado de alguma
operao da lgebra
relacional
pode envolver operadores
de comparao
(=, >, , <, , )
pode combinar condies
usando-se , ,
Banco de Dados lgebra Relacional e SQL Profa. Dra. Cristina Dutra de Aguiar Ciferri
Banco de Dados lgebra Relacional e SQL Profa. Dra. Cristina Dutra de Aguiar Ciferri
lgebra Relacional: Seleo
cliente (nro_cli, nome_cli, end_cli, saldo, cod_vend)
nro_cli nome_cli end_cli saldo cod_vend
1 Mrcia Rua X 100,00 1
2 Cristina Avenida 1 10,00 1
3 Manoel Avenida 3 234,00 1
4 Rodrigo Rua X 137,00 2
lgebra Relacional: Projeo
Projeta as colunas solicitadas (i.e. produz
um subconjunto vertical)
lista_atributos
( relao argumento )
Banco de Dados lgebra Relacional e SQL Profa. Dra. Cristina Dutra de Aguiar Ciferri
relao
resultado de alguma
operao da lgebra
relacional
lista de atributos
os atributos so separados
por vrgula
lgebra Relacional: Projeo
Banco de Dados lgebra Relacional e SQL Profa. Dra. Cristina Dutra de Aguiar Ciferri
cliente (nro_cli, nome_cli, end_cli, saldo, cod_vend)
nro_cli nome_cli end_cli saldo cod_vend
1 Mrcia Rua X 100,00 1
2 Cristina Avenida 1 10,00 1
3 Manoel Avenida 3 234,00 1
4 Rodrigo Rua X 137,00 2
lgebra Relacional: Produto
Cartesiano
Combina tuplas de duas relaes
relaes no precisam ter atributos comum
Tuplas da relao resultante
todas as combinaes de tuplas possveis
entre as relaes participantes
relao argumento 1 relao argumento 2
relao
resultado de alguma operao da lgebra relacional
Banco de Dados lgebra Relacional e SQL Profa. Dra. Cristina Dutra de Aguiar Ciferri
Relaes Cliente e Vendedor
Banco de Dados lgebra Relacional e SQL Profa. Dra. Cristina Dutra de Aguiar Ciferri
cliente (nro_cli, nome_cli, end_cli, saldo, cod_vend)
vendedor (cod_vend, nome_vend)
nro_cli nome_cli end_cli saldo cod_vend
1 Mrcia Rua X 100,00 1
2 Cristina Avenida 1 10,00 1
3 Manoel Avenida 3 234,00 1
4 Rodrigo Rua X 137,00 2
cod_vend nome_vend
1 Adriana
2 Roberto
Cliente Vendedor
grau: nmero de atributos
de cliente + nmero de
atributos de vendedor
nmero de tuplas: nmero de
tuplas de cliente * nmero de
tuplas de vendedor
Banco de Dados lgebra Relacional e SQL Profa. Dra. Cristina Dutra de Aguiar Ciferri
nro_cli nome_cli end_cli saldo cliente.
cod_vend
vendedor.
cod_vend
nome_vend
1 Mrcia Rua X 100,00 1 1 Adriana
1 Mrcia Rua X 100,00 1 2 Roberto
2 Cristina Avenida 1 10,00 1 1 Adriana
2 Cristina Avenida 1 10,00 1 2 Roberto
3 Manoel Avenida 3 234,00 1 1 Adriana
3 Manoel Avenida 3 234,00 1 2 Roberto
4 Rodrigo Rua X 137,00 2 1 Adriana
4 Rodrigo Rua X 137,00 2 2 Roberto
lgebra Relacional: Renomear
Renomeia
nome da relao
nomes dos atributos da relao
nome da relao e nomes dos atributos
S(B
1
,B
2
, ..., B
n
)
(relao)
nome antigo da relao nome novo da relao
nomes novos dos atributos
Banco de Dados lgebra Relacional e SQL Profa. Dra. Cristina Dutra de Aguiar Ciferri
lgebra Relacional: Renomear
Banco de Dados lgebra Relacional e SQL Profa. Dra. Cristina Dutra de Aguiar Ciferri
Exemplos
comprador
(cliente)
AVG(preo)
(vinho)
SELECT AVG (preo)
FROM vinho
Qual o vinho mais barato e qual o vinho
mais caro?
MIN(preo), MAX(preo)
(vinho)
SELECT MIN (preo), MAX (preo)
FROM vinho
217,125
7,00, 397,00
Exemplos
Banco de Dados lgebra Relacional e SQL Profa. Dra. Cristina Dutra de Aguiar Ciferri
Quantos vinhos existem na relao
vinho?
COUNT (vinho_id)
(vinho)
SELECT COUNT (vinho_id)
FROM vinho
Quantos tipos de vinho diferentes
existem na relao vinho?
COUNT-DISTINCT (tipo_vinho)
(vinho)
SELECT COUNT (DISTINCT tipo_vinho
FROM vinho
8
3
SQL: Clusula GROUP BY
Banco de Dados lgebra Relacional e SQL Profa. Dra. Cristina Dutra de Aguiar Ciferri
Funcionalidade
permite aplicar uma funo de agregao
no somente a um conjunto de tuplas, mas
tambm a um grupo de conjunto de tuplas
Grupo de conjunto de tuplas
conjunto de tuplas que possuem o mesmo
valor para os atributos de agrupamento
Semntica da respostas
atributos de agrupamento no GROUP BY
tambm devem aparecer no SELECT