Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
1
www.tiagodemelo.info
Sumrio
2
www.tiagodemelo.info
Bibliografia
Elmasri, R; Navathe, S
Benjamin Cummings, 2003, 4th ed.
Ramakrishnan, R
McGraw Hill, 2003, 3rd ed.
3
www.tiagodemelo.info
Bibliografia
Date, C. J.
Editora Campus, 8a ed, 2004.
4
www.tiagodemelo.info
5
www.tiagodemelo.info
Sistemas de Informao
AUMENTO DE COMPETITIVIDADE
Sistemas
VANTAGEM ESTRATGICA
Passagem Area
Supermercado
Avano tecnolgico
Processo de
Desenvolvimento
Hardware
7
www.tiagodemelo.info
Criao/Controle de um BD:
manual
8
www.tiagodemelo.info
Aplicao
Aplicao
SO
Aplicao
SGBD
Meta Dados
os aplicativos acessam e
manipulam os arquivos
diretamente nos discos
os aplicativos acessam e
manipulam as informaes
atravs dos SGBDs
9
www.tiagodemelo.info
10
www.tiagodemelo.info
sem reservas?
sem multas pendentes?
registra emprstimo
abre arquivos (fechando outros...)
carrega registros na memria (abre ndice, usa o ponteiro, estourou
memria?, ...)
11
www.tiagodemelo.info
Isolamento
a organizao sabe que os dados existem?
formato de arquivo apropriado para uma nova aplicao?
possvel integrar dados de diferentes sistemas?
12
www.tiagodemelo.info
Problemas de integridade
Os
Problemas de atomicidade
Em
13
www.tiagodemelo.info
Concorrncia
Tolerncia a falhas
difcil implementao
Segurana
14
www.tiagodemelo.info
natureza auto-contida
15
www.tiagodemelo.info
16
www.tiagodemelo.info
17
www.tiagodemelo.info
18
www.tiagodemelo.info
Um SGBD
19
www.tiagodemelo.info
Um SGBD
20
www.tiagodemelo.info
SGBDs - Atores
Programador de Aplicaes
Usurio Final
aplicao
linguagem de consulta interativa
21
www.tiagodemelo.info
SGBDs - Atores
Monitorar desempenho
SGBDs - Atores
Projetista do Banco de Dados
23
www.tiagodemelo.info
Controlar redundncia
24
www.tiagodemelo.info
25
www.tiagodemelo.info
Processo de Soluo
Mundo
Real
MundoReal
Soluo
Modelo
26
www.tiagodemelo.info
Modelo de Dados
Modelo do
Sistema
(mente do
Cliente)
Modelo de Dados de
Alto Nvel
(conceitual)
Modelo de Dados de
Nvel Intermedirio
(representao ou
Implementao)
Modelo de Baixo
Nvel (fsico)
Server
Representao
Tabular do Modelo de
Entidade
Modelo de Entidade do
Cliente
27
Tabelas no disco
www.tiagodemelo.info
Mundo
Real
MundoReal
nvel fsico
28
www.tiagodemelo.info
nvel lgico
neste nvel de abstrao so escolhidas as estruturas lgicas que
representaro os objetos do modelo conceitual no computador.
nvel fsico
Modelo de dados
Esquema
A descrio de um BD chamada de Esquema de Banco de Dados
O Projeto do BD denominado de esquema do BD
Viso
Externa A
Viso
Externa B
...
Viso
Externa N
Mapeamento
Externo/Conceitual
NVEL
CONCEITUAL
Esquema Conceitual
Mapeamento
Conceitual/Interno
NVEL
INTERNO
Esquema Interno
Banco de Dados
Armazenado
31
www.tiagodemelo.info
NVEL
EXTERNO
Viso
Externa A
Viso
Externa B
...
Viso
Externa N
Mapeamento
Externo/Conceitual
NVEL
CONCEITUAL
Esquema Conceitual
Mapeamento
Conceitual/Interno
NVEL
INTERNO
Esquema Interno
Banco de Dados
Armazenado
32
www.tiagodemelo.info
Independncia de Dados
33
www.tiagodemelo.info
Modelagem da Realidade
Processo
identificao de um conjunto de
procedimentos que nela se realizam,
interao entre eles e identificao
dos dados necessrios para a
execuo desses procedimentos
Enfoques
Dados
identificao dos objetos que
compe a realidade, seguida pela
identificao das operaes que
incidem sobre estes
34
www.tiagodemelo.info
Fases de um Projeto de BD
Simplificado
Mundo
Real
Coleo e Anlise de
Requerimentos
Requerimentos Funcionais
Requerimentos de BD
Anlise FUNCIONAL
Projeto CONCEITUAL
Especificao das
Transaes de Alto-Nvel
Independente de SGBD
Esquema Conceitual
(Modelo de dados de alto nvel)
Projeto LGICO
(MAPEAMENTO)
Especfico do SGBD
Projeto FSICO
PROGRAMAS DA
APLICAO
IMPLEMENTAO
Esquema Interno
35
www.tiagodemelo.info
Modelagem de Dados
Em Resumo: o processo de especificao das
estruturas de dados e regras de negcio para a
definio de um sistema de informao
36
www.tiagodemelo.info
Modelo de Entidade e
Relacionamento
Banco de Dados
39
www.tiagodemelo.info
atributo
entidade
40
www.tiagodemelo.info
41
www.tiagodemelo.info
Atributo Composto
Atributo Derivado
E1
E2
Participao total de E2 em R
Ex: Agncia e Conta Corrente
E1
(min,max)
E2
Constraint (min,max) de E em R
42
www.tiagodemelo.info
Primeiro
Nome
CPF
Salario
Sexo
Localizaes
Numero
Nome
TRABALHA
Data_Inicio
FUNCIONRIO
1
DEPARTAMENTO
1
GERENCIA
1
1
Horas
TRABALHA
NO
N
TRABALHA
NO
SUPERVISIONA
SUPERVISOR
SUPERVISIONADO
1
PROJETO
DEPENDENTES
Numero
N
Nome
Localizao
Aniv
DEPENDENTE
Sexo
Nome
Parentesco
43
www.tiagodemelo.info
endereco
codigo
salario
codigo
funcionario
1
genero
1
genero
codigo
nome
codigo
supervisor
ator
codigo
N
N
possui
filme
qtde fitas
preco
Status
cliente
possui
descr
nome
principal
Valor
pago
descr
possui
multa
aluguel
N
cliente
codigo
nome
endereco
Valor
previsto
dt aluguel
dt prev ret
dt retorno
condicao
N
N
fita
codigo
44
www.tiagodemelo.info
endereco
codigo
salario
codigo
funcionario
4,N
genero
1,1
1,N
1,1
genero
codigo
codigo
supervisor
2,N
filme
possui
nome
qtde fitas
1,1
preco
Status
cliente
codigo
possui
0,N
1,N
ator
1,1
descr
nome
principal
Valor
pago
descr
possui
multa
aluguel
0,N
1,N
cliente
codigo
nome
endereco
Valor
previsto
dt aluguel
dt prev ret
dt retorno
1,N
1,N
fita
condicao
codigo
45
www.tiagodemelo.info
Componentes do MER
Entidade
46
www.tiagodemelo.info
Dependentes
entidades
Independentes
entidades
47
www.tiagodemelo.info
nome
codigo
salario
funcionario
1
supervisor
nome
endereco
1
N
codigo
N
tem
dependente
codigo
trabalha
nome
departamento
48
www.tiagodemelo.info
Componentes do MER
Atributo
Relacionamento
49
www.tiagodemelo.info
Identificadores
No Identificadores
50
www.tiagodemelo.info
identificador
nome
nome
endereco
codigo
salario
Entidade
dependente
de
funcionario 1
c
om
N
po
st
N
supervisor
codigo
tem
possui
N
od
e
trabalha
traba
l
codigo
nome
ha no
1
No identificador
dependente
departamento
Papel do
relacionamento
51
www.tiagodemelo.info
Relacionamentos Recursivos
codigo
salario
endereco
funcionario
1
supervisor
52
www.tiagodemelo.info
cardinalidade: um ou muitos
obrigatoriedade: total (obrigatria) ou parcial(opcional)
E1
E1
E1
RR
parcial
E2
E1
E2
E1
E2
E1
E2
E2
E2
total
53
www.tiagodemelo.info
54
www.tiagodemelo.info
nome
codigo
sexo
endereco
tipo
funcionario
total
d
generalizao
consultor
horas
tx hora
terceiro
salario
55
www.tiagodemelo.info
nome
codigo
sexo
endereco
tipo
funcionario
Sobreposta
Parcial
O
consultor
horas
tx hora
terceiro
salario
Especializao
56
www.tiagodemelo.info
nome
codigo
sexo
funcionario
endereco
tipo
mostra a direo do
relacionamento
superclasse/subclasse
consultor
horas
tx hora
especializao
57
www.tiagodemelo.info
Agregao
entrevista
candidato
entrevistador
empresa
data
58
www.tiagodemelo.info
Agregao
candidato
entrevista
entrevistador
empresa
data
cargo
59
www.tiagodemelo.info
Agregao
candidato
entrevista
entrevistador
empresa
data
encaminha
cargo
60
www.tiagodemelo.info
Agregao
candidato
entrevista
entrevistador
empresa
data
encaminha
cargo
Outras Notaes
Exemplos de Diagramas
ER e ER Estendidos
Banco de Dados
62
www.tiagodemelo.info
Diagramas EER
NOME
CPF
TELEFONES
TITULO
VERSO
M
N
PESSOA
SUBORDINADO
CHEFIA
ALOCADA
PROJETO
CHS
CHEFE
63
www.tiagodemelo.info
Diagramas EER
NOME
TELEFONES
SUBORDINADO
TITULO
CHS
1
N
PESSOA
CHEFIA
ALOCADA
PROJETO
N
CHEFE
ADMINISTRATIVO
Qual a diferena
entre Generalizao
e Especializao ?
-UM
-UM
TCNICO
TEM
ENGENHEIRO
ESPECIALIDADE
ID
VERSO
VERSO
64
www.tiagodemelo.info
Diagramas EER
Especializao
N
EMPREGADO
TRABALHA
PROJETO
MODALIDADE
-UM
ESPORTISTA
-UM
ENGENHEIRO
ESPECIALIDADE
FILIADO
EQUIPE
65
www.tiagodemelo.info
Diagramas EER
Diagrama com a Notao do Navathe
TRABALHA
N
EMPREGADO
DEPARTAMENTO
1
SUBORDINADO
N
CHEFIA
CHEFE
GERENCIA
66
www.tiagodemelo.info
Diagramas EER
ESPECIALIZAO
GENERALIZAO ?????
GENERALIZAO
EMPREGADO
Secretrio
Tcnico
Engenheiro
SuporteRedes
Gerente
Assalariado
Empregado
Honorrio
Gerencia
SuporteBD
Gerente
67
www.tiagodemelo.info
N
PRREQUISITO
CURSO
68
www.tiagodemelo.info
requerimentos e anlise
projeto conceitual do banco de dados
escolha de um SGBD
mapeamento do modelo de dados
projeto fsico do banco de dados
implementao e configurao do BD
69
www.tiagodemelo.info
Requerimentos e Anlise
70
www.tiagodemelo.info
71
www.tiagodemelo.info
Escolha de um SGBD
72
www.tiagodemelo.info
73
www.tiagodemelo.info
resposta
espao de utilizao
transaes
74
www.tiagodemelo.info
75
www.tiagodemelo.info
REQUERIMENTOS:
controlar acervo de filmes
controlar acervo de fitas
fazer aluguel de fitas
fazer devoluo de fitas
consultar fitas em atraso
consultar previso de caixa
cadastro de cliente
cliente quer consultar seus filmes alugados, seus melhores
filmes e os melhores do rank
clculos de multas
76
www.tiagodemelo.info
REQUERIMENTOS:
cadastro de alunos, professores e funcionrios
controlar acervo da biblioteca
fazer emprstimo de itens do acervo
fazer reserva do acervo
consultar itens do acervo: ttulo, palavras-chave, etc
consultar itens em atraso
77
www.tiagodemelo.info
Listas de Exerccios
Modelo Conceitual - MER
Banco de Dados
78
www.tiagodemelo.info
Venda de Produtos
Uma firma vende produtos de limpeza e deseja controlar melhor
os produtos que vende, seus clientes e os pedidos. Cada produto
caracterizado por um cdigo nico, nome do produto, categoria
(ex. detergente, sabo em p, sabonete, etc), e seu preo. A
categoria uma classificao criada pela prpria firma. A firma
possui informaes sobre todos os seus clientes. Cada cliente
identificado por um cdigo nico (interno firma), o nome do
cliente, endereo (rua, nro, sala, cidade, CEP, UF), telefone,
status do cliente (bom, mdio, ruim), e o seu limite de crdito.
Guarda-se igualmente a informao dos pedidos feitos pelos
clientes. Cada pedido possui um nmero (nico), e guarda-se a
data de elaborao do pedido. Cada pedido pode envolver de 1 a
vrios produtos, e para cada produto, indica-se a quantidade
pedida. Atualmente, a firma usa o formulrio a seguir para
controle de pedidos, preenchido a ttulo de exemplo. As demais
informaes so hoje mantidas pelos vendedores em listas de
papel.
80
www.tiagodemelo.info
Limpex S.A.
Controle Interno
Comendador Oliveira, 27
Pedido: 98765
CGC: 7654321/09
Data: 27/03/2002
Cdigo: C-1234
Nome: Joo da Silva
End: Anita Garibaldi, 8765, Porto Alegre, RS, 90345-678
Telefone: (051) 234-5678
Cod
Desc
Qtde
Total
123
Limpa Tudo
10,00
345
Detergentex
4,00
678
Escovex
3
TOTAL
17,00
81
www.tiagodemelo.info
82
www.tiagodemelo.info
83
www.tiagodemelo.info
84
www.tiagodemelo.info
85
www.tiagodemelo.info
86
www.tiagodemelo.info
87
www.tiagodemelo.info
88
www.tiagodemelo.info
89
www.tiagodemelo.info
90
www.tiagodemelo.info
91
www.tiagodemelo.info
92
www.tiagodemelo.info
93
www.tiagodemelo.info
94
www.tiagodemelo.info
95
www.tiagodemelo.info
96
www.tiagodemelo.info
97
www.tiagodemelo.info
98
www.tiagodemelo.info
99
www.tiagodemelo.info
100
www.tiagodemelo.info
101
www.tiagodemelo.info
102
www.tiagodemelo.info
103
www.tiagodemelo.info
105
www.tiagodemelo.info
em
diversas especialidades
106
www.tiagodemelo.info
Modelo RELACIONAL
Banco de Dados
107
www.tiagodemelo.info
Modelo Relacional
representa DADOS e RELACIONAMENTOS por um conjunto de
Tabelas
relao
tuplas
atributos
108
www.tiagodemelo.info
Repetio de informao
Informaes
110
www.tiagodemelo.info
Modelo Relacional
Modelo Relacional
Codd, E. F.
112
www.tiagodemelo.info
Modelo Relacional
Objetivos
Independncia de dados
ordem
indexao
caminhos de acesso
reduzir inconsistncias
113
www.tiagodemelo.info
Modelo Relacional
Modelo Relacional: Informal
um banco de dados relacional um conjunto de relaes ou tabelas bidimensionais,
gerenciados por operaes relacionais e regidos por restries de integridade de
dados
Pode ser acessado e
modificado executando
instrues SQL (Structured
Query Language)
Banco
de Dados
ENAME
JOB
7839
KING
7698
Usa um conjunto de
operadores
DEPTNO
DEPTNO
DNAME
LOC
PRESIDENT
10
10
ACCOUNTING
NEW YORK
BLAKE
MANAGER
30
20
RESEARCH
DALLAS
7782
CLARK
MANAGER
10
30
SALES
CHICAGO
7566
JONES
MANAGER
20
40
OPERATIONS
BOSTON
114
www.tiagodemelo.info
Modelo Relacional
115
www.tiagodemelo.info
Modelo Relacional
116
www.tiagodemelo.info
Modelo Relacional
117
www.tiagodemelo.info
Modelo Relacional
118
www.tiagodemelo.info
Modelo Relacional
119
www.tiagodemelo.info
Modelo Relacional
120
www.tiagodemelo.info
Modelo Relacional
121
www.tiagodemelo.info
Modelo Relacional
122
www.tiagodemelo.info
Modelo Relacional
123
www.tiagodemelo.info
Modelo Relacional
125
www.tiagodemelo.info
126
www.tiagodemelo.info
Primeiro Passo:
Funcionrio = {FNmero, FNome, Endereo, Salrio}
Departamento = {DNmero,DNome}
Projeto = {PNmero, PNome}
OBSERVAES:
O atributo "Localizao" no foi representado na relao
"Departamento" pois um atributo multi-valorado e ser tratado no
passo 7.
O conjunto de entidade "Dependente", um conjunto de entidade
fraco e ser tratado no seguinte, o passo 2
127
www.tiagodemelo.info
128
www.tiagodemelo.info
Segundo Passo:
Dependente = {DNome, FNmero, DataNiver, Parentesco}
129
www.tiagodemelo.info
130
www.tiagodemelo.info
Terceiro Passo:
Departamento = {DNmero,Dnome, DataIni,FNmero}
Os atributos FNmero e DataIni so adicionados relao "Departamento",
definida no primeiro passo. Note que o atributo Fnmero adicionado como
um atributo no chave na relao "Departamento"
131
www.tiagodemelo.info
132
www.tiagodemelo.info
Quarto Passo:
Funcionrio = {FNmero, FNome, Endereo, Salrio, SuperNmero,
DNmero}
Projeto = {PNmero, Pnome,DNmero}
Avaliando o relacionamento supervisionar, nota-se que este
relacionamento no possui atributos, logo, apenas o atributo
SuperNmero foi adicionado a relao "Funcionrio", definida no
primeiro passo.
O mesmo acontece com o relacionamento trabalhar; apenas o
atributo DNumero foi adicionado a relao "Funcionrio".
No relacionamento controlar, que tambm no possui atributos, foi
adicionado o atributo DNumero na relao Projeto que j havia sido
definida no primeiro passo.
134
www.tiagodemelo.info
135
www.tiagodemelo.info
Quinto Passo:
O relacionamento participar que envolve os conjuntos de entidades
"Funcionrio" e "Projeto", avaliado neste passo.
Cria-se uma nova relao: Participar = {FNmero, PNmero, horas}
136
www.tiagodemelo.info
137
www.tiagodemelo.info
138
www.tiagodemelo.info
Stimo Passo:
LocalDep = {DNmero, Localizao}
140
www.tiagodemelo.info
num
conta
tx juros
movimento
Lim ch esp
141
www.tiagodemelo.info
num
conta
Poupana
tx juros
movimento
Lim ch esp
142
www.tiagodemelo.info
Cod_candidato
candidato
CGC
N
entrevista
entrevistador
empresa
data
entrevista = {cod_candidato, CGC, entrevistador, data}
encamiha = {cod_candidato, CGC, cod_cargo}
encaminha
cargo
Cod_cargo
143
www.tiagodemelo.info
Exerccios
144
www.tiagodemelo.info
Exerccios
145
www.tiagodemelo.info
Exerccios
146
www.tiagodemelo.info
Exerccios
147
www.tiagodemelo.info
Exerccios
148
www.tiagodemelo.info
Dependncia Funcional
149
www.tiagodemelo.info
Dependncia Funcional
Notao: A B
150
www.tiagodemelo.info
Dependncia Funcional
151
www.tiagodemelo.info
Dependncia Funcional
F#
F1
F1
F2
F2
F3
F4
F4
F4
CIDADE
Londres
Londres
Paris
Paris
Paris
Londres
Londres
Londres
P#
P1
P2
P1
P2
P2
P2
P4
P5
QDE
100
100
200
200
300
400
400
400
152
www.tiagodemelo.info
Dependncia Funcional
153
www.tiagodemelo.info
Dependncia Funcional
Propriedades funcionais
Sejam A, B e C subconjuntos arbitrrios do
conjunto de atributos de uma relao R, e
considerando que AB usada para indicar a
unio de A e B, teremos as seguintes
propriedades:
Reflexo:
B.
se B um subconjunto de A, ento
Aumento:
se A B, ento AC BC.
Transitividade:
se A B e B C, ento A C.
154
www.tiagodemelo.info
Dependncia Funcional
Autoderminao:
A A.
Decomposio:
C.
Unio:
se A BC, ento A B e A
se A B e A C, ento A BC.
Composio:
se A B e C D, ento AC BD.
Teorema
Geral da Unificao: se A B e C
D, ento A U (C D) BD.
155
www.tiagodemelo.info
Dependncia Funcional
156
www.tiagodemelo.info
Dependncia Funcional
Soluo:
1. A
BC
(dada)
2. A
(1, decomposio)
3. AD
CD
(2, aumento)
4. CD
EF
(dada)
5. AD
EF
(3 e 4, transitividade)
6. AD
(5, decomposio)
157
www.tiagodemelo.info
Normalizao
158
www.tiagodemelo.info
Normalizao
Conseqncias:
Problemas de anomalias e inconsistncias diminuem.
Relaes simplificadas e estrutura regular.
Aumento da integridade dos dados.
Necessidade de realizao de junes.
Eventual queda na performance.
159
www.tiagodemelo.info
160
www.tiagodemelo.info
1 FN
as linhas da tabela so unvocas
as linhas no contm itens repetitivos
os atributos so atmicos
161
www.tiagodemelo.info
Normalizao - 1FN
Tabela: PEDIDO (no normalizada)
NumPed
DataEmis
Fornecedor
Jan 20
Casa Software
Feb 10
Computer
CGC
End
CodProd NomeProd
2222222-22
111
222
333
222
333
Itu 49
Qtde
Preo
10
44
50
73
80
R$100.00
R$150.00
R$120.00
R$150.00
R$120.00
Prod 1
Prod 2
Prod 3
Prod 4
Prod 5
DataEmis Fornecedor
Jan 20
Jan 20
Jan 20
Feb 10
Feb 10
Casa Software
Casa Software
Casa Software
Computer
Computer
CGC
End
Prod 1
Prod 2
Prod 3
Prod 4
Prod 5
10
44
50
73
80
R$100.00
R$150.00
R$120.00
R$150.00
R$120.00
162
www.tiagodemelo.info
Normalizao 1FN
Processo para obteno da 1FN
163
www.tiagodemelo.info
Normalizao 1FN
Tabela: PEDIDO sem itens repetidos
NumPed
3
3
3
4
4
DataEmis Fornecedor
Jan 20
Jan 20
Jan 20
Feb 10
Feb 10
Casa Software
Casa Software
Casa Software
Computer
Computer
CGC
1111111-11
1111111-11
1111111-11
2222222-22
2222222-22
End
Lapa Rua A
Lapa Rua A
Lapa Rua A
Itu Rua 49
Itu Rua 49
111
222
333
222
333
Prod 1
Prod 2
Prod 3
Prod 2
Prod 3
10
44
50
73
80
R$100.00
R$150.00
R$120.00
R$150.00
R$120.00
DataEmis
Fornecedor
CGC
Bairro
Rua
Cod Prod
NomeProd
QtdeProd
3
3
3
4
4
Jan 20
Jan 20
Jan 20
Feb 10
Feb 10
Casa Software
Casa Software
Casa Software
Computer
Computer
1111111-11
1111111-11
1111111-11
2222222-22
2222222-22
Lapa
Lapa
Lapa
Itu
Itu
Rua A
Rua A
Rua A
Rua 49
Rua 49
111
222
333
222
333
Prod 1
Prod 2
Prod 3
Prod 2
Prod 3
10
44
50
73
80
164
www.tiagodemelo.info
Normalizao 1FN
Processo para obteno da 1FN
165
www.tiagodemelo.info
Normalizao 1FN
Tabela: PEDIDO com Chave Primria: NumPed+CodProd
NumPed
3
3
3
4
4
Cod Prod
111
222
333
222
333
DataEmis
Jan 20
Jan 20
Jan 20
Feb 10
Feb 10
Fornecedor
Casa Software
Casa Software
Casa Software
Computer
Computer
CGC
1111111-11
1111111-11
1111111-11
2222222-22
2222222-22
Bairro
Lapa
Lapa
Lapa
Itu
Itu
Rua
Rua A
Rua A
Rua A
Rua 49
Rua 49
NomeProd
Prod 1
Prod 2
Prod 3
Prod 2
Prod 3
QtdeProd
10
44
50
73
80
166
www.tiagodemelo.info
Normalizao 1FN
167
www.tiagodemelo.info
Normalizao 2FN
168
www.tiagodemelo.info
Normalizao 2FN
Segunda Forma Normal (2FN)
est na 1FN
cada uma das colunas no pertencentes chave
primria no dependente parcial dessa chave
cada atributo no-chave dependente de toda a
chave primria.
a dependncia parcial de uma chave s ser
possvel se esta chave for definida com mais de
uma coluna
dizemos que uma coluna parcialmente
dependente da chave se, para que seu valor seja
determinado no necessitamos conhecer a chave
como um todo
169
www.tiagodemelo.info
Normalizao 2FN
Tabela: no normalizada
E depende s de B
Coluna A
Coluna B
Coluna C
Coluna D Coluna E
CHAVE
C depende de A e B
D depende s de A
170
www.tiagodemelo.info
Normalizao 2FN
Tabela: normalizada
Coluna A
Coluna B Coluna C
Coluna A
Coluna D
Coluna B Coluna E
171
www.tiagodemelo.info
Normalizao 2FN
Processo para obteno da 2FN
172
www.tiagodemelo.info
Normalizao 2FN
Tabela na 1FN: Pedido
NumPed Cod Prod
3
3
3
4
4
111
222
333
222
333
DataEmis Fornecedor
Jan 20
Jan 20
Jan 20
Feb 10
Feb 10
Casa Software
Casa Software
Casa Software
Computer
Computer
CGC
1111111-11
1111111-11
1111111-11
2222222-22
2222222-22
Bairro
Lapa
Lapa
Lapa
Itu
Itu
Prod 1
Prod 2
Prod 3
Prod 2
Prod 3
10
44
50
73
80
R$100.00
R$150.00
R$120.00
R$150.00
R$120.00
111
222
333
222
333
Jan 20
Jan 20
Jan 20
Feb 10
Feb 10
Casa Software
Casa Software
Casa Software
Computer
Computer
C GC
1111111-11
1111111-11
1111111-11
2222222-22
2222222-22
Bairro
Lapa
Lapa
Lapa
Itu
Itu
Rua QtdeProd
Rua A
Rua A
Rua A
Rua 49
Rua 49
10
44
50
73
80
N om eProd
Prod 1
Prod 2
Prod 3
PreoProd
R $1 00.00
R $1 50.00
R $1 20.00
173
www.tiagodemelo.info
Normalizao 3FN
174
www.tiagodemelo.info
Normalizao 3FN
Terceira Forma Normal (3FN)
est na 2FN
nenhuma coluna no pertencente chave fica
determinada transitivamente por esta.
cada atributo no chave dependente no
transitivo da chave primria.
a dependncia transitiva de uma chave s ser
possvel se a tabela tiver pelo menos duas
colunas no pertencentes chave
uma coluna depende transitivamente da chave
se seu valor determinado pelo contedo de uma
coluna no chave
175
www.tiagodemelo.info
Normalizao 3FN
Tabela: no normalizada
C determina D
Coluna A
Coluna B
Coluna C
Coluna D Coluna E
A determina B
A determina C
A determina E
176
www.tiagodemelo.info
Normalizao 3FN
Tabela: normalizada
Coluna A
Coluna B Coluna C
Coluna E
C o lu n a CC o lu n a D
177
www.tiagodemelo.info
Normalizao 3FN
Tabela na 2FN: Pedido
N u m P e dC o d P r o dD a t a E m is
F o r n e ce d o r C G C
3
3
3
4
4
111
222
333
222
333
2 0 /Ja n
2 0 /Ja n
2 0 /Ja n
1 0 /Fe v
1 0 /Fe v
Ca sa So ft w a re 1 1 1 1 1 1 1 -1 1
Ca sa So ft w a re 1 1 1 1 1 1 1 -1 1
Ca sa So ft w a re 1 1 1 1 1 1 1 -1 1
Co m p u t e r 2 2 2 2 2 2 2 -2 2
Co m p u t e r 2 2 2 2 2 2 2 -2 2
B a ir r o
La p a
La p a
La p a
It u
It u
Ru a Q t de P r o d
Ru a A
Ru a A
Ru a A
Ru a 4 9
Ru a 4 9
10
44
50
73
80
Ba ir r o
Lap a
It u
Ru a
Ru a A
Ru a 4 9
N u m P e dC o d P r o dD a t a E m is C G C
3
3
3
4
4
111
222
333
222
333
2 0 /Ja n
2 0 /Ja n
2 0 /Ja n
1 0 /Fe v
1 0 /Fe v
Q t de Prod
1 1 1 1 1 1 1 -1 1
1 1 1 1 1 1 1 -1 1
1 1 1 1 1 1 1 -1 1
2 2 2 2 2 2 2 -2 2
2 2 2 2 2 2 2 -2 2
10
44
50
73
80
Pro d 1
Pro d 2
Pro d 3
R$ 1 0 0 ,0 0
R$ 1 5 0 ,0 0
R$ 1 2 0 ,0 0
1 1 1 1 1 1 1 -1 1
2 2 2 2 2 2 2 -2 2
Casa Soft w ar e
Com p u t er
178
www.tiagodemelo.info
Matrcula
Nome
CodCargo
NomeCargo
CodProj
DataFim
Horas
Programador
01
17/07/95
37
120
Joo
120
Joo
Programador
08
12/01/96
12
121
Hlio
Programador
01
17/07/95
45
121
Hlio
Programador
12
21/03/96
107
270
Gabriel
Analista
08
12/01/96
10
270
Gabriel
Analista
12
21/03/96
38
273
Silva
Projetista
01
17/07/95
22
274
Abrao
Analista
12
21/03/96
31
179
www.tiagodemelo.info
Anomalias:
Inserir:
180
www.tiagodemelo.info
Nome
CodCargo
1
1
2
3
2
Joo
Hlio
Gabriel
Silva
Abrao
ALOCAO
Matrcula
120
120
121
121
121
270
270
273
274
CodProj
01
08
01
08
12
08
12
01
12
NomeCargo
Programador
Programador
Analista
Projetista
Analista
PROJETO
Horas
37
12
45
21
107
10
78
22
31
CodProj
01
08
12
DataFim
17/07/95
12/01/96
21/03/96
181
www.tiagodemelo.info
Anomalias:
Inserir:
182
www.tiagodemelo.info
Nome
Joo
Hlio
Gabriel
Silva
Abrao
CodCargo
1
1
2
3
2
CARGO
CodCargo
1
2
3
Nome
Programador
Analista
Projetista
183
www.tiagodemelo.info
184
www.tiagodemelo.info
185
www.tiagodemelo.info
Ferramenta de Modelagem
Objetivo:
Apresentar ferramenta livre de banco
de dados
186
www.tiagodemelo.info
DBDesigner 4
187
www.tiagodemelo.info
188
www.tiagodemelo.info
DBDesigner 4 - Principal
189
www.tiagodemelo.info
190
www.tiagodemelo.info
191
www.tiagodemelo.info
192
www.tiagodemelo.info
193
www.tiagodemelo.info
194
www.tiagodemelo.info
195
www.tiagodemelo.info
Objetivos:
Listar os recursos das instrues SELECT SQL
Executar uma instruo SELECT bsica
196
www.tiagodemelo.info
Seleo
Projeo
Tabela 1
Tabela 1
Tabela 1
Juno
Tabela 2
197
www.tiagodemelo.info
SELECT
FROM
198
www.tiagodemelo.info
199
www.tiagodemelo.info
SQL> SELECT *
2 FROM
dept;
DEPTNO
--------10
20
30
40
DNAME
-------------ACCOUNTING
RESEARCH
SALES
OPERATIONS
LOC
------------NEW YORK
DALLAS
CHICAGO
BOSTON
200
www.tiagodemelo.info
LOC
------------NEW YORK
DALLAS
CHICAGO
BOSTON
201
www.tiagodemelo.info
Justificada default
Esquerda: Dados de caractere e data
Direita: Dados numricos
Exibio default: Letra maiscula
202
www.tiagodemelo.info
Expresses Aritmticas
Operador
Descrio
Adicionar
Subtrair
Multiplicar
Dividir
203
www.tiagodemelo.info
204
www.tiagodemelo.info
Precedncia do Operador
/ +
205
www.tiagodemelo.info
Precedncia do Operador
206
www.tiagodemelo.info
Usando Parnteses
207
www.tiagodemelo.info
209
www.tiagodemelo.info
210
www.tiagodemelo.info
SALARY
------------- --------...
SQL> SELECT ename "Name",
2
sal*12 "Annual Salary"
3 FROM
emp;
Name
Annual Salary
------------- ------------...
211
www.tiagodemelo.info
Operador de Concatenao
212
www.tiagodemelo.info
SQL> SELECT
2 FROM
ename||job AS "Employees"
emp;
Employees
------------------KINGPRESIDENT
BLAKEMANAGER
CLARKMANAGER
JONESMANAGER
MARTINSALESMAN
ALLENSALESMAN
...
14 rows selected.
213
www.tiagodemelo.info
214
www.tiagodemelo.info
215
www.tiagodemelo.info
Linhas Duplicadas
217
www.tiagodemelo.info
Type
-----------NUMBER(2)
VARCHAR2(14)
VARCHAR2(13)
218
www.tiagodemelo.info
Objetivos:
Limitar linhas recuperadas por uma consulta
Classificar linhas recuperadas por uma consulta
219
www.tiagodemelo.info
EMP
EMPNO ENAME
7839
7698
7782
7566
...
KING
BLAKE
CLARK
JONES
JOB
...
DEPTNO
PRESIDENT
MANAGER
MANAGER
MANAGER
10
30
10
20
"recuperar
todos os
funcionrios do
departamento 10"
EMP
EMPNO ENAME
JOB
7839 KING
PRESIDENT
7782 CLARK MANAGER
7934 MILLER CLERK
...
DEPTNO
10
10
10
220
www.tiagodemelo.info
221
www.tiagodemelo.info
JOB
DEPTNO
--------- --------CLERK
30
CLERK
20
CLERK
20
CLERK
10
222
www.tiagodemelo.info
SQL> SELECT
2 FROM
3 WHERE
223
www.tiagodemelo.info
Operadores de Comparao
Operador
Significado
Igual a
>
Maior do que
>=
<
Menor do que
<=
Menor ou igual a
<>
Diferente de
224
www.tiagodemelo.info
225
www.tiagodemelo.info
Operador
Significado
BETWEEN
...AND...
IN(list)
LIKE
IS NULL
um valor nulo
IS NOT NULL
No um valor nulo
226
www.tiagodemelo.info
SQL> SELECT
2 FROM
3 WHERE
ename, sal
emp
sal BETWEEN 1000 AND 1500;
ENAME
SAL
---------- --------MARTIN
1250
TURNER
1500
WARD
1250
ADAMS
1100
MILLER
1300
Limite
inferior
Limite
superior
227
www.tiagodemelo.info
Usando o Operador IN
SQL> SELECT
2 FROM
3 WHERE
EMPNO
--------7902
7369
7788
7876
ENAME
SAL
MGR
---------- --------- --------FORD
3000
7566
SMITH
800
7902
SCOTT
3000
7566
ADAMS
1100
7788
228
www.tiagodemelo.info
SQL> SELECT
2 FROM
3 WHERE
ename
emp
ename LIKE 'S%';
229
www.tiagodemelo.info
SQL> SELECT
2 FROM
3 WHERE
ename
emp
ename LIKE '_A%';
ENAME
---------MARTIN
JAMES
WARD
possvel usar o identificador ESCAPE para procurar por "%" ou "_".
230
www.tiagodemelo.info
SQL> SELECT
2 FROM
3 WHERE
ename, mgr
emp
mgr IS NULL;
ENAME
MGR
---------- --------KING
231
www.tiagodemelo.info
Operadores Lgicos
Operador
Significado
AND
OR
NOT
232
www.tiagodemelo.info
SQL>
2
3
4
SELECT
FROM
WHERE
AND
EMPNO
--------7876
7934
ENAME
---------ADAMS
MILLER
JOB
SAL
--------- --------CLERK
1100
CLERK
1300
233
www.tiagodemelo.info
Usando o Operador OR
SELECT
FROM
WHERE
OR
EMPNO ENAME
--------- ---------7839 KING
7698 BLAKE
7782 CLARK
7566 JONES
7654 MARTIN
...
7900 JAMES
...
14 rows selected.
JOB
SAL
--------- --------PRESIDENT
5000
MANAGER
2850
MANAGER
2450
MANAGER
2975
SALESMAN
1250
CLERK
950
234
www.tiagodemelo.info
JOB
--------PRESIDENT
SALESMAN
SALESMAN
SALESMAN
SALESMAN
235
www.tiagodemelo.info
Regras de Precedncia
Ordem de Avaliao
1
Operador
Todos os operadores
de comparao
NOT
3
4
AND
OR
236
www.tiagodemelo.info
Regras de Precedncia
SQL>
2
3
4
5
SELECT
FROM
WHERE
OR
AND
ENAME
---------KING
MARTIN
ALLEN
TURNER
WARD
237
www.tiagodemelo.info
Regras de Precedncia
SELECT
FROM
WHERE
OR
AND
ENAME
---------KING
ALLEN
238
www.tiagodemelo.info
Clusula ORDER BY
239
www.tiagodemelo.info
SQL> SELECT
ename, job, deptno, hiredate
2 FROM
emp
3 ORDER BY hiredate DESC;
ENAME
JOB
DEPTNO HIREDATE
---------- --------- --------- --------ADAMS
CLERK
20 12-JAN-83
SCOTT
ANALYST
20 09-DEC-82
MILLER
CLERK
10 23-JAN-82
JAMES
CLERK
30 03-DEC-81
FORD
ANALYST
20 03-DEC-81
KING
PRESIDENT
10 17-NOV-81
MARTIN
SALESMAN
30 28-SEP-81
...
14 rows selected.
240
www.tiagodemelo.info
SQL> SELECT
empno, ename, sal*12 annsal
2 FROM
emp
3 ORDER BY annsal;
EMPNO ENAME
ANNSAL
--------- ---------- --------7369 SMITH
9600
7900 JAMES
11400
7876 ADAMS
13200
7654 MARTIN
15000
7521 WARD
15000
7934 MILLER
15600
7844 TURNER
18000
...
14 rows selected.
241
www.tiagodemelo.info
SQL> SELECT
ename, deptno, sal
2 FROM
emp
3 ORDER BY deptno, sal DESC;
ENAME
DEPTNO
SAL
---------- --------- --------KING
10
5000
CLARK
10
2450
MILLER
10
1300
FORD
20
3000
...
14 rows selected.
242
www.tiagodemelo.info
Sumrio
SELECT
FROM
[WHERE
[ORDER BY
243
www.tiagodemelo.info
Objetivos:
Descrever vrios tipos de funes disponveis
no SQL
Usar funes de data, nmero e caractere
nas instrues SELECT
Descrever o uso das funes de converso
244
www.tiagodemelo.info
Funes SQL
Entrada
Funo
arg 1
Sada
A funo executa
a ao
arg 2
Resultado
valor
arg n
245
www.tiagodemelo.info
Funes
Funes de
Uma nica Linha
Funes de
Vrias Linhas
246
www.tiagodemelo.info
247
www.tiagodemelo.info
Caractere
Geral
Nmero
Funes de
Uma nica Linha
Converso
Data
248
www.tiagodemelo.info
Funes de Caractere
Funes de
caractere
Funes de Converso de
Maisculas e Minsculas
LOWER
UPPER
INITCAP
Funes de manipulao
de caractere
CONCAT
SUBSTR
LENGTH
INSTR
LPAD
TRIM
249
www.tiagodemelo.info
Objetivos:
Criar instrues SELECT para obter acesso aos dados a partir de
mais de uma tabela usando as junes idnticas e no-idnticas
Visualizar dados que, em geral, no correspondem a uma
condio de juno usando junes externas
Unindo uma tabela a ela mesma
250
www.tiagodemelo.info
EMP
EMPNO
-----7839
7698
...
7934
DEPT
ENAME
----KING
BLAKE
... DEPTNO
... -----...
10
...
30
MILLER ...
10
DEPTNO
-----10
20
30
40
DNAME
---------ACCOUNTING
RESEARCH
SALES
OPERATIONS
LOC
-------NEW YORK
DALLAS
CHICAGO
BOSTON
Use uma juno para consultar dados a partir de uma ou mais tabelas.
SELECT
FROM
WHERE
tabela1.coluna, tabela2.coluna
tabela1, tabela2
tabela1.coluna1 = tabela2.coluna2;
252
www.tiagodemelo.info
Produto Cartesiano
253
www.tiagodemelo.info
ENAME
----KING
BLAKE
DEPT (4 linhas)
... DEPTNO
... -----...
10
...
30
MILLER ...
"Produto
Cartesiano:
14*4=56 linhas"
10
DEPTNO
-----10
20
30
40
DNAME
---------ACCOUNTING
RESEARCH
SALES
OPERATIONS
ENAME
DNAME
--------------KING
ACCOUNTING
BLAKE
ACCOUNTING
...
KING
RESEARCH
BLAKE
RESEARCH
...
56 rows selected.
LOC
-------NEW YORK
DALLAS
CHICAGO
BOSTON
254
www.tiagodemelo.info
Tipos de Junes
Juno
idntica
Juno
no-idntica
Juno
externa
Autojuno
255
www.tiagodemelo.info
EMP
EMPNO ENAME
DEPTNO
------ ------- ------7839 KING
10
7698 BLAKE
30
7782 CLARK
10
7566 JONES
20
7654 MARTIN
30
7499 ALLEN
30
7844 TURNER
30
7900 JAMES
30
7521 WARD
30
7902 FORD
20
7369 SMITH
20
...
14 rows selected.
Chave estrangeira
DEPT
DEPTNO
------10
30
10
20
30
30
30
30
30
20
20
...
14 rows
DNAME
---------ACCOUNTING
SALES
ACCOUNTING
RESEARCH
SALES
SALES
SALES
SALES
SALES
RESEARCH
RESEARCH
LOC
-------NEW YORK
CHICAGO
NEW YORK
DALLAS
CHICAGO
CHICAGO
CHICAGO
CHICAGO
CHICAGO
DALLAS
DALLAS
selected.
Chave primria
256
www.tiagodemelo.info
SQL> SELECT
2
3 FROM
4 WHERE
emp.empno,
emp.ename, emp.deptno,
dept.deptno, dept.loc
emp, dept
emp.deptno=dept.deptno;
257
www.tiagodemelo.info
258
www.tiagodemelo.info
EMP
DEPT
EMPNO ENAME
DEPTNO
------ ------- ------7839 KING
10
7698 BLAKE
30
7782 CLARK
10
7566 JONES
20
7654 MARTIN
30
7499 ALLEN
30
7844 TURNER
30
7900 JAMES
30
7521 WARD
30
7902 FORD
20
7369 SMITH
20
...
14 rows selected.
DEPTNO DNAME
------ --------10 ACCOUNTING
30 SALES
10 ACCOUNTING
20 RESEARCH
30 SALES
30 SALES
30 SALES
30 SALES
30 SALES
20 RESEARCH
20 RESEARCH
...
14 rows selected.
LOC
-------NEW YORK
CHICAGO
NEW YORK
DALLAS
CHICAGO
CHICAGO
CHICAGO
CHICAGO
CHICAGO
DALLAS
DALLAS
259
www.tiagodemelo.info
260
www.tiagodemelo.info
CUSTOMER
NAME
CUSTID
---------------JOCKSPORTS
100
TKB SPORT SHOP
101
VOLLYRITE
102
JUST TENNIS
103
K+T SPORTS
105
SHAPE UP
106
WOMENS SPORTS
107
...
...
9 rows selected.
ORD
CUSTID
ORDID
------- ------101
610
102
611
104
612
106
601
ITEM
102
602
106
604 ITEMID
ORDID
106 -----605 ------...
610
3
21 rows selected.
611
1
612
1
601
1
602
1
...
64 rows selected.
261
www.tiagodemelo.info
Junes No-idnticas
EMP
EMPNO ENAME
SAL
------ ------- -----7839 KING
5000
7698 BLAKE
2850
7782 CLARK
2450
7566 JONES
2975
7654 MARTIN
1250
7499 ALLEN
1600
7844 TURNER
1500
7900 JAMES
950
...
14 rows selected.
SALGRADE
GRADE LOSAL HISAL
----- ----- -----1
700
1200
2
1201
1400
3
1401
2000
4
2001
3000
5
3001
9999
262
www.tiagodemelo.info
SQL>
2
3
4
SELECT
FROM
WHERE
BETWEEN
ENAME
SAL
GRADE
---------- --------- --------JAMES
950
1
SMITH
800
1
ADAMS
1100
1
...
14 rows selected.
263
www.tiagodemelo.info
Junes Externas
EMP
ENAME
----KING
BLAKE
CLARK
JONES
...
DEPTNO
-----10
30
10
20
DEPT
DEPTNO
-----10
30
10
20
...
40
DNAME
---------ACCOUNTING
SALES
ACCOUNTING
RESEARCH
OPERATIONS
Nenhum funcionrio do
departamento OPERATIONS
264
www.tiagodemelo.info
Junes Externas
265
www.tiagodemelo.info
SQL>
2
3
4
SELECT
FROM
WHERE
ORDER BY
ENAME
DEPTNO DNAME
---------- --------- ------------KING
10 ACCOUNTING
CLARK
10 ACCOUNTING
...
40 OPERATIONS
15 rows selected.
266
www.tiagodemelo.info
Autojunes
EMP (WORKER)
EMPNO
----7839
7698
7782
7566
7654
7499
ENAME
-----KING
BLAKE
CLARK
JONES
MARTIN
ALLEN
EMP (MANAGER)
MGR
---7839
7839
7839
7698
7698
EMPNO ENAME
----- -------7839
7839
7839
7698
7698
KING
KING
KING
BLAKE
BLAKE
267
www.tiagodemelo.info
268
www.tiagodemelo.info
Sumrio
SELECT
FROM
WHERE
Juno
idntica
tabela1.coluna, tabela2.coluna
tabela1, tabela2
tabela1.coluna1 = tabela2.coluna2;
Juno
no-idntica
Juno
externa
Autojuno
269
www.tiagodemelo.info
270
www.tiagodemelo.info
271
www.tiagodemelo.info
Objetivos:
Identificar as funes de grupo disponveis
Descrever o uso de funes de grupo
Agrupar dados usando a clusula
GROUP BY
Incluir ou excluir linhas agrupadas usando a clusula HAVING
272
www.tiagodemelo.info
EMP
DEPTNO
SAL
--------- --------10
2450
10
5000
10
1300
20
800
20
1100
20
3000
20
3000
20
2975
30
1600
30
2850
30
1250
30
950
30
1500
30
1250
"salrio
mximo na
tabela EMP"
MAX(SAL)
--------5000
273
www.tiagodemelo.info
AVG
COUNT
MAX
MIN
STDDEV
SUM
VARIANCE
274
www.tiagodemelo.info
SELECT
FROM
[WHERE
[GROUP BY
[ORDER BY
[coluna,] group_function(coluna)
tabela
condio]
coluna]
coluna];
275
www.tiagodemelo.info
AVG(sal), MAX(sal),
MIN(sal), SUM(sal)
emp
job LIKE 'SALES%';
276
www.tiagodemelo.info
SQL> SELECT
2 FROM
MIN(hiredate), MAX(hiredate)
emp;
MIN(HIRED MAX(HIRED
--------- --------17-DEC-80 12-JAN-83
277
www.tiagodemelo.info
COUNT(*)
emp
deptno = 30;
COUNT(*)
--------6
278
www.tiagodemelo.info
SQL> SELECT
2 FROM
3 WHERE
COUNT(comm)
emp
deptno = 30;
COUNT(COMM)
----------4
279
www.tiagodemelo.info
280
www.tiagodemelo.info
281
www.tiagodemelo.info
EMP
DEPTNO
SAL
--------- --------10
2450
10
5000
10
1300
20
800
20
1100
20
3000
20
3000
20
2975
30
1600
30
2850
30
1250
30
950
30
1500
30
1250
2916.6667
DEPTNO AVG(SAL)
"salrio
mdio
------- --------na
tabela
2175
10 2916.6667
EMP
para cada
20
2175
departamento"
30 1566.6667
1566.6667
282
www.tiagodemelo.info
SELECT
FROM
[WHERE
[GROUP BY
[ORDER BY
coluna, group_function(coluna)
tabela
condio]
group_by_expression]
coluna];
283
www.tiagodemelo.info
SQL> SELECT
deptno, AVG(sal)
2 FROM
emp
3 GROUP BY deptno;
DEPTNO AVG(SAL)
--------- --------10 2916.6667
20
2175
30 1566.6667
284
www.tiagodemelo.info
285
www.tiagodemelo.info
EMP
DEPTNO JOB
SAL
2450
10 PRESIDENT
5000
10 CLERK
1300
20 CLERK
800
20 CLERK
1100
20 ANALYST
3000
20 ANALYST
3000
20 MANAGER
2975
30 SALESMAN
1600
30 MANAGER
2850
30 SALESMAN
1250
30 CLERK
950
30 SALESMAN
1500
30 SALESMAN
1250
DEPTNO
--------
"soma de
salrios na
tabela EMP
para cada
cargo,
agrupados por
departamento"
JOB
SUM(SAL)
--------- ---------
10
CLERK
1300
10
MANAGER
2450
10
PRESIDENT
5000
20
ANALYST
6000
20
CLERK
1900
20
MANAGER
2975
30
CLERK
30
MANAGER
2850
30
SALESMAN
5600
950
286
www.tiagodemelo.info
SQL> SELECT
deptno, job, sum(sal)
2 FROM
emp
3 GROUP BY deptno, job;
DEPTNO JOB
SUM(SAL)
--------- --------- --------10 CLERK
1300
10 MANAGER
2450
10 PRESIDENT
5000
20 ANALYST
6000
20 CLERK
1900
...
9 rows selected.
287
www.tiagodemelo.info
SQL> SELECT
2 FROM
deptno, COUNT(ename)
emp;
Y
B
Y
P
B
U
P
O
U
R
O
G
R
a
G
ssuulla
u
l
u
c
l
a
c
n
a
eennttee n
s
u
s
a
u
a
a
n
a
u
n
C
Coolludeptno,
SELECT
COUNT(ename)
*
ERROR at line 1:
ORA-00937: Nenhuma funo de grupo de grupo nico
(Not a single-group group function)
288
www.tiagodemelo.info
SELECT
FROM
WHERE
GROUP BY
deptno, AVG(sal)
emp
AVG(sal) > 2000
deptno;
llaa
u
u
ss ss
u
u
ll ppoo
c
c
aa ggrruu
r
r
aa giirr
s
s
u
u riinng
l
l
e
vve essttr
s
sss aa rre
o
o
*
pp aarr
pp
o
ERROR at line 3:
o
E
E
R
N
R
Nde
E
E
ORA-00934: A funo
grupo
no permitida aqui
H
H
W allowed here)
(Group function is W
not
289
www.tiagodemelo.info
EMP
DEPTNO
SAL
--------- --------10
2450
10
5000
10
1300
20
800
20
1100
20
3000
20
3000
20
2975
30
1600
30
2850
30
1250
30
950
30
1500
30
1250
5000
3000
"salrio
mximo por
departamento
maior do que
US$ 2.900"
DEPTNO
MAX(SAL)
--------- --------10
5000
20
3000
2850
290
www.tiagodemelo.info
coluna, group_function
tabela
condio]
group_by_expression]
group_condition]
coluna];
291
www.tiagodemelo.info
SQL>
2
3
4
SELECT
FROM
GROUP BY
HAVING
deptno, max(sal)
emp
deptno
max(sal)>2900;
DEPTNO MAX(SAL)
--------- --------10
5000
20
3000
292
www.tiagodemelo.info
SQL>
2
3
4
5
6
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
JOB
PAYROLL
--------- --------ANALYST
6000
MANAGER
8275
293
www.tiagodemelo.info
SQL> SELECT
max(avg(sal))
2 FROM
emp
3 GROUP BY deptno;
MAX(AVG(SAL))
------------2916.6667
294
www.tiagodemelo.info
Sumrio
SELECT
FROM
[WHERE
[GROUP BY
[HAVING
[ORDER BY
coluna, group_function(coluna)
tabela
condio]
group_by_expression]
group_condition]
coluna];
295
www.tiagodemelo.info
296
www.tiagodemelo.info
297
www.tiagodemelo.info