Sei sulla pagina 1di 31

OCA Oracle Database 11g:

Fundamentos I SQL
Manual do Exame (Exame 1Z0-051)
SOBRE OS AUTORES
John Watson (Oxford, Reino Unido) trabalha para a BPLC Management
Consultants, lecionando e fazendo consultoria por toda Europa e frica.
Ele esteve com a Oracle University por muitos anos na frica do Sul e, antes
disso, ele trabalhou em vrias empresas, departamentos do governo e ONGs
na Inglaterra e na Europa. Ele tem qualificao OCP tanto em banco de dados
como em administrao de Application Server. John autor de muitos livros e
numerosos artigos sobre tecnologia e tem 25 anos de experincia em TI.
Roopesh Ramklass (frica do Sul), OCP, um especialista independente em
Oracle com mais de 10 anos de experincia em uma grande variedade ambientes
de TI. Nessa experincia, esto inclusos planejamento e desenvolvimento de
software, anlise de sistema, desenvolvimento de software educacional e palestras.
Trabalhou para o Oracle Support e lecionou na Oracle University da frica do
Sul por muitos anos. Roopesh tem experincia em gerenciar e executar projetos
de desenvolvimento de TI, incluindo fornecimento de sistemas de infraestrutura,
desenvolvimento de software e integrao de sistemas.
Sobre o Editor Tcnico
Bruce Swart (frica do Sul) trabalha para a 2Cana Solutions e tem mais de 14
anos de experincia em TI. Enquanto mantinha um grande interesse em ensinar,
ele teve vrias responsabilidades, entre elas a de desenvolvedor, analista, lder
de equipe, administrador, gerente de projetos, consultor e palestrante. Ele tem
qualificao OCP tanto em banco de dados como em cargos de desenvolvedor.
Lecionou na Oracle University da frica do Sul por muitos anos e tambm falou
em vrias conferncias locais do Oracle User Group. Sua paixo ajudar as
pessoas a alcanarem grandeza.
Rio de janeiro, 2010
OCA Oracle Database 11g:
Fundamentos I SQL
Manual do Exame (Exame 1Z0-051)
John Watson
Roopesh Ramklass
Agradeo Silvia por fazer a vida ser algo que vale a pena.
John
Ameetha, voc tem me dado um apoio maravilhoso e quero lhe
agradecer por cada momento que passa comigo.
Roopesh
5UMARlO RE5UMlDO
1 Oracle Server Technologies e Paradigma Relacional . . . . . . . . . . . . . . . . . . . . 1
2 Recuperao de Dados Utilizando a Declarao SQL SELECT . . . . . . . . . . .51
3 Restringindo e Classificando Dados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
4 Funes de Linha Simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
5 Utilizando Funes de Converso e Expresses Condicionais . . . . . . . . . . .227
6 Informando Dados Agregados Utilizando as Funes de Grupo . . . . . . . . .273
7 Exibindo Dados a partir de Tabelas Mltiplas . . . . . . . . . . . . . . . . . . . . . . 309
8 Utilizando Subconsultas para Resolver Problemas . . . . . . . . . . . . . . . . . . . .357
9 Utilizando os Operadores de Conjunto . . . . . . . . . . . . . . . . . . . . . . . . . . . .381
10 Utilizando Declaraes DDL para Criar e Gerenciar Tabelas . . . . . . . . . . . 403
11 Utilizando Declaraes DDL para Criar e Gerenciar Tabelas . . . . . . . . . . . 449
12 Criando Outros Objetos de Esquema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Apndice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
Glossrio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .537
ndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
5UMARlO
Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
1 Oracle Server Technologies e Paradigma Relacional . . . . . . . .1
Posicionando as Tecnologias de Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
A Arquitetura de Servidor da Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
O Servidor de Aplicativos Oracle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Oracle Enterprise Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Computao em Grade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Exerccio 1-1: Investigue seu Ambiente de Banco de Dados
e de Aplicativo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Ferramentas de Desenvolvimentos e Linguagens . . . . . . . . . . . . . . . . . . . . . . . 9
Entenda as Estruturas Relacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
Linhas e Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
Normalizao de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
Exerccio 1-2: Realize uma Anlise Relacional Estendida . . . . . . . . . . . . . 20
Resuma a Linguagem SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Padres SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Comandos SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Linguagem orientada a conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Utilize as Ferramentas do Cliente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
SQL*Plus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
SQL Developer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Criar Esquemas de Demonstrao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
Usurios e Esquemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Os Esquemas HR e OE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Criao do Esquema de Demonstrao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
3

Reviso Em Dois Minutos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
P&R Auto-Avaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Pergunta de Laboratrio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Respostas da Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Resposta do Laboratrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2 Recuperao de Dados UtiIizando
a DecIarao 5QL 5ELECT. . . . . . . . . . . . . . . . . . . . . . . . . . . .51
Lista as Habilidades das Declaraes SQL SELECT. . . . . . . . . . . . . . . . . . . . . . . . 52
Apresentando a Declarao SQL SELECT . . . . . . . . . . . . . . . . . . . . . . . . . . 52
O Comando de Tabela DESCRIBE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Exerccios 2-1: Descrevendo o esquema dos Recursos Humanos. . . . . . . . 55
Habilidades da Declarao SELECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Execute uma Declarao SELECT Bsica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
x
OCA Oracle Database 11g: Fundamentos I SQL Manual do Exame (Exame 1Z0-051)
Sintaxe da Declarao SELECT Primitva. . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
As Regras Existem Para Serem Seguidas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Exerccio 2-2: Respondendo Nossas Primeiras Perguntas com SQL. . . . . . .67
Expresses e Operadores SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
NULO nada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81
Exerccio 2-3: Fazendo Experincias com Expresses e Tabela DUAL . . . 86
3

Reviso Em Dois Minutos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
P&R Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Pergunta de Laboratrio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Respostas da Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Resposta do Laboratrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3 Restringindo e Classificando Dados . . . . . . . . . . . . . . . . . . . .103
Limite as Linhas Recuperadas por uma Consulta . . . . . . . . . . . . . . . . . . . . . . . . .104
A Clusula WHERE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104
Operadores de Comparao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113
Exerccio 3-1: Utilizando o Operador LIKE. . . . . . . . . . . . . . . . . . . . . . . .124
Operadores Booleanos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126
Regras de Precedncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
Classifique as Linhas Recuperadas por uma Consulta . . . . . . . . . . . . . . . . . . . . .136
A Clusula ORDER BY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136
Exerccio 3-2: Classificando Dados Usando a Clusula ORDER BY 141
Substituio do & comercial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Variveis de Substituio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143
Definir e Verificar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149
Exerccio 3-3: Utilizando Substituio de E comercial 155
3

Reviso em Dois Minutos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
P&R Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160
Pergunta de Laboratrio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162
Respostas da Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164
Resposta do Laboratrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166
4 Funes de Linha Simples . . . . . . . . . . . . . . . . . . . . . . . . . . . .169
Descreva Vrios Tipos de Funes Disponveis em SQL . . . . . . . . . . . . . . . . . . . .170
Definindo uma Funo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170
Tipos de Funes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Utilize Funes de Caractere, Nmero e Data em Instrues SELECT. . . . . . . . . 177
Utilizando Funes de Converso de Caracteres Maisculos e Minsculos . . . . 177
Exercise 4-1: Utilizando as Funes de Converso
de Maiscula e Minscula. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Utilizando Funes para Manipulaes de Caractere . . . . . . . . . . . . . . . . . .183
Exerccio 4-2: Utilizando as Funes Manipulao
de Maisculos e Minsculos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Utilizando Funes Numricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196

xi
Trabalhando com Datas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Utilizando Funes de Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Exerccio 4-3: Utilizando as Funes de Data. . . . . . . . . . . . . . . . . . . . . . . 210
3

Reviso em Dois Minutos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
P&R Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221
Pergunta de Laboratrio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Respostas da Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .224
Resposta do Laboratrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
5 UtiIizando Funes de Converso
e Expresses Condicionais. . . . . . . . . . . . . . . . . . . . . . . . . . . .227
Descreva Vrios Tipos de Funes de Converso Disponveis em SQL. . . . . . . . 228
Funes de Converso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Utilize as Funes de Converso TO_CHAR, TO_NUMBER e TO_DATE . . . . . .231
Utilizando as Funes de Converso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Exerccio 5-1: Convertendo Datas em Caracteres .
Utilizando a Funo TO_CHAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Aplique Expresses Condicionais em uma Instruo SELECT . . . . . . . . . . . . . . .245
Funes Aninhadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245
Exerccio 5-2: Utilizando NULLIF e NVL2
para Lgica Condicional Simples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
As Funes Condicionais. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Exerccio 5-3: Utilizando a Funo DECODE. . . . . . . . . . . . . . . . . . . . . 260
3

Reviso em Dois Minutos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
P&R Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Pergunta de Laboratrio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .267
Respostas da Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Resposta do Laboratrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
6 lnfornando Dados Agregados UtiIizando
as Funes de Grupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273
Descreva as Funes de Grupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Definio de Funes de Grupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Tipos e Sintaxe de Funes de Grupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .275
Identifique as Funes de Grupo Disponveis . . . . . . . . . . . . . . . . . . . . . . . . . . . .279
Utilizando as Funes de Grupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .279
Exerccio 6-1: Utilizando as Funes de Grupo . . . . . . . . . . . . . . . . . . . 284
Funes de Grupo Aninhadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Dados de Grupo Utilizando a Clusula GROUP BY 287
Criando Grupos de Dados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287
A Clusula GROUP BY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Agrupando por Colunas Mltiplas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .291
Exerccio 6-2: Agrupando Dados Baseados em Colunas Mltiplas . . . . . 292
Sumrio
xii
OCA Oracle Database 11g: Fundamentos I SQL Manual do Exame (Exame 1Z0-051)
Inclua ou Exclua Linhas Agrupadas Utilizando a Clusula HAVING . . . . . . . . 294
Restringindo Resultados de Grupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
A Clusula HAVING. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Exerccio 6-3: Usando a Clusula HAVING . . . . . . . . . . . . . . . . . . . . . . 298
3

Reviso Em Dois Minutos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301
P&R Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Questo de Laboratrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Respostas da Auto-Avaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Resposta do Laboratrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
7 Exibindo Dados a partir de TabeIas MItipIas . . . . . . . . . . . .309
Grave Instrues SELECT para Acessar Dados de Mais de uma
Tabela Utilizando Junes Equivalentes e No Equivalentes . . . . . . . . . . . 310
Tipos de Junes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Unindo Tabelas Utilizando SQL: Sintaxe 1999. . . . . . . . . . . . . . . . . . . . . . . 316
Qualificando Nomes de Coluna Ambguos . . . . . . . . . . . . . . . . . . . . . . . . . . 317
A Clusula NATURAL JOIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Exerccio 7-1: Utilizando a NATURAL JOIN . . . . . . . . . . . . . . . . . . . . . 320
A Clusula Natural JOIN USING. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .321
A Clusula Natural JOIN ON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Exerccio 7-2: Utilizando a Clusula NATURAL JOIN...ON. . . . . . . . . 324
Condies de Diversas Junes e Junes Adicionais. . . . . . . . . . . . . . . . . . .327
Junes No Equivalentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Una uma Tabela a Ela Mesma Utilizando Auto-Juno 331
Unindo uma Tabela a Ela Mesma Utilizando a Clusula JOINON. . . . . .331
Exerccio 7-3: Realizando uma Auto-Juno . . . . . . . . . . . . . . . . . . . . . . 332
Visualizar Dados que No Satisfazem uma Condio
de Juno Utilizando Junes Externas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Junes Internas Versus Externas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Junes Externas da Esquerda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Junes Externas da Direita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337
Junes Externas Completas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Exerccio 7-4: Realizando uma Juno Externa . . . . . . . . . . . . . . . . . . . . 340
Gere um Produto Cartesianos de Duas ou Mais Tabelas . . . . . . . . . . . . . . . . . . . 342
Criando Produtos Cartesiano Utilizando Junes Cruzadas . . . . . . . . . . . . 342
Exerccio 7-5: Realizando uma Juno Cruzada . . . . . . . . . . . . . . . . . . . . 344
3

Reviso em Dois Minutos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
P&R Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Pergunta de Laboratrio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Respostas da Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Resposta do Laboratrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
8 UtiIizando 5ubconsuItas para ResoIver ProbIenas. . . . . . . .357
Defina Subconsultas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Exerccio 8-1: Tipos de Subconsultas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359

xiii
Descreva os Tipos de Problemas que as Subconsultas Podem Resolver . . . . . . . . 360
Utilizao de um Conjunto de Resultados de Subconsultas
para Fins de Comparao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Transformao Estrela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361
Crie uma Tabela da qual aplicar SELECT . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Crie Valores para Projeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Crie linhas para Serem Passadas para uma Instruo DML. . . . . . . . . . . . . 363
Exerccio 8-2: Subconsultas mais complexas . . . . . . . . . . . . . . . . . . . . . . 363
Especifique os Tipos de Subconsultas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
Subconsultas de Linhas nicas e Mltiplas. . . . . . . . . . . . . . . . . . . . . . . . . 365
Subconsultas Correlatas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Exerccio 8-3: Investigue os Diferentes Tipos de Subconsulta . . . . . . . . . .367
Grave Subconsultas de Linhas Simples e Mltiplas . . . . . . . . . . . . . . . . . . . . . . . 369
Exerccio 8-4: Grave uma Consulta que seja confivel
e de utilizao fcil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
3

Reviso em Dois Minutos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
P&R Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Pergunta de Laboratrio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .378
Respostas da Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Resposta do Laboratrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
9 UtiIizando os Operadores de Conjunto . . . . . . . . . . . . . . . . .381
Descreva os Operadores de Conjunto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Conjuntos e Diagramas de Venn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Princpios Gerais do Operador de Conjunto . . . . . . . . . . . . . . . . . . . . . . . 384
Exerccio 9-1: Descreva os Operadores de Conjunto 385
Utilize um Operador de Conjunto para combinar consultas
mltiplas em uma nica consulta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
O Operador UNION ALL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .387
O Operador UNION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .387
O Operador INTERSECT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
O Operador MINUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Exemplos Mais Complexos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Exerccio 9-2: Utilizando os Operadores de Conjunto . . . . . . . . . . . . . . 392
Controle a ordem das linhas retornadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Exerccio 9-3: Controle a ordem das linhas retornadas . . . . . . . . . . . . . . 394
3

Reviso Em Dois Minutos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
P&R Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Pergunta de Laboratrio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
Respostas da Auto-Avaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
Resposta de Laboratrio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .401
10 UtiIizando DecIaraes DDL para
Criar e Gerenciar TabeIas . . . . . . . . . . . . . . . . . . . . . . . . . . . .403
Descreva cada Instruo de DML (Linguagem de Manipulao de Dados) . . . . . 404
Sumrio
xiv
OCA Oracle Database 11g: Fundamentos I SQL Manual do Exame (Exame 1Z0-051)
INSERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
UPDATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
DELETE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
MERGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
TRUNCATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
Falhas da Instruo DML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
Insira Linhas em uma Tabela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .413
Exerccio 10-1: Utilize o Comando INSERT . . . . . . . . . . . . . . . . . . . . . . . 417
Atualize Linhas em uma Tabela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
Exerccio 10-2: Utilize o Comando UPDATE . . . . . . . . . . . . . . . . . . . . . .421
Exclua Linhas de uma Tabela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Removendo Linhas com DELETE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Exerccio 10-3: Utilize o Comando DELETE . . . . . . . . . . . . . . . . . . . . . .424
Removendo Linhas com TRUNCATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
MERGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
Transaes de Controle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .427
Transaes de Banco de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
As Instrues das Transaes de Controle . . . . . . . . . . . . . . . . . . . . . . . . . . .431
Exerccio 10-4: Utilize os Comandos COMMIT e ROLLBACK. . . . . . . 433
3

Reviso em Dois Minutos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
P&R Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .441
Pergunta de Laboratrio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
Respostas da Auto-Avaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
Resposta do Laboratrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
11 UtiIizando DecIaraes DDL para Criar
e Gerenciar Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .449
Categorize os Principais Objetos de Banco de Dados. . . . . . . . . . . . . . . . . . . . . . 450
Tipos de Objeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Usurios e Esquemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Nomeando Objetos de Esquema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Espao de Nomes de Objeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Exerccio 11-1: Determine quais objetos so acessveis a sua sesso. . . . . 455
Revise a Estrutura da Tabela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Exerccio 11-2: Investigue Estruturas de Tabela . . . . . . . . . . . . . . . . . . . . .457
Especifique os Tipos de Dados que Esto Disponveis para Colunas. . . . . . . . . . .457
Exerccio 11-3: Investigue os Tipos de Dados no esquema HR . . . . . . . . .461
Crie uma Tabela Simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Criando Tabelas com Especificaes de Coluna . . . . . . . . . . . . . . . . . . . . . 462
Criando Tabelas de Subconsultas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
Alterando Definies de Tabela Depois da Criao. . . . . . . . . . . . . . . . . . . 465
Suspendendo e Truncando Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Exerccio 11-4: Crie Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .467

xv
Explique Como as Restries So Criadas no Momento da Criao da Tabela . . . . . . . 469
Os Tipos de Restries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .470
Definindo Restries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .473
Exercise 11-5: Trabalhe com Restries . . . . . . . . . . . . . . . . . . . . . . . . . . .476
3

Reviso em Dois Minutos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .478
P&R Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .479
Pergunta de Laboratrio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
Respostas da Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Resposta do Laboratrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
12 Criando Outros Objetos de Esquena . . . . . . . . . . . . . . . . . .488
Crie Visualizaes Simples e Complexas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Por que utilizar visualizao?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
Visualizaes simples e complexas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
CREATE VIEW, ALTER VIEW e DROP VIEW . . . . . . . . . . . . . . . . . . . . 493
Exerccio 12-1: Crie Visualizaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
Recupere Dados das Visualizaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Exerccio 12-2: Utilize visualizaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Crie Sinnimos Particulares e Pblicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
Exerccio 12-3: Crie e Utilize Sinnimos . . . . . . . . . . . . . . . . . . . . . . . . . 500
Crie, Mantenha e Utilize Sequncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .501
Criando Sequncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Utilizando Sequncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
Exerccio 12-4: Crie e Utilize Sequncias. . . . . . . . . . . . . . . . . . . . . . . . . 507
Crie e Mantenha ndices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
Para que servem os ndices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
Tipos de ndice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
Criando e utilizando ndices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .515
Modificando e cancelando ndices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
Exerccio 12-5: Criando ndices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
3

Reviso em Dois Minutos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .521
P&R Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Pergunta de laboratrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .527
Respostas da Autoavaliao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
Resposta do Laboratrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .531
Apndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .533
Glossrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .537
lndice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .555
Sumrio
lNTRODUAO
H
uma demanda sempre crescente por pessoal com certificao na
lnoustrla oe T|. Os bene|lclos aos colaboraoores so slgnl|lcantes eles
pooem estar certos oe que o pessoal tem certo nlvel oe competncla e
os benefcios s pessoas, em termos de demanda por seus servios, so igualmente
grandes. Muitos empregadores esto exigindo que os funcionrios tcnicos tenham
certificaes e muitos compradores de TI no compram de empresas que no tm
um quadro de funcionrios certificados. As certificaes Oracle esto entre as mais
procuradas. Mas alm das premiaes no mbito empresarial, saber que voc est em
um grupo relativamente pequeno de profissionais Oracle de elite e que comprovou
sua competncia uma recompensa pessoal que vale a pena ser obtida.
Existem muitos certificados Oracle este livro voltado para o certificado
Administrao de Banco de Dados Oracle, especificamente para a edio 11g do
banco de dados. H trs nveis de certificao em DBA: OCA (Certificado para
Associado), OCP (Certificado para Profissional) e COM (Certificado para Mestre). A
qualificao OCA baseada em dois exames; o primeiro deles abordado neste livro.
A qualificao OCP requer que se passe em um terceiro exame. Os exames podem ser
realizados em qualquer centro Prometric e composto de 60 a 70 questes para serem
resolvidas em 90 minutos. A qualificao OCM requer que se complete uma avaliao
de dois dias em um centro de testes Oracle, envolvendo simulaes de ambientes
complexos e utilizao de tcnicas avanadas.
O contedo do exame tambm provavelmente o ponto de incio, se voc
pretende estudar para o Oracle PL/SQL e o certificado Desenvolvedor de Formulrios
Oracle, embora (no momento em que se escreveu este livro) este esteja na edio 10g
sem anncio da edio 11g.
Para se preparar para o primeiro exame OCA, voc pode frequentar um curso de
treinamento conduzido por instrutores na Oracle University, pode estudar o material
de aprendizado on-line da Oracle University ou pode ler este livro. Em todos os casos,
voc deve consultar a Biblioteca de Documentao Oracle para obter maiores detalhes
sobre sintaxe. Este livro ser um acrscimo valioso a outros mtodos de estudo, mas
tambm autossuficiente. Foi desenvolvido tendo os objetivos de exame em mente,
embora tambm inclua uma grande quantidade de informaes que sero teis ao
longo de seu trabalho. Para leitores procurando desenvolvimento, o tema deste livro
tambm o ponto de partida para estudar as ferramentas de desenvolvimento da Oracle
Corporation: SQL, PL/SQL e os kits de desenvolvimento de aplicativos de internet
enviados com o Oracle Application Server.
Entretanto, no suficiente comprar este livro, coloc-lo embaixo de seu travesseiro
e achar que o conhecimento ir penetrar em seu crebro por um processo de osmose:
voc deve l-lo inteiramente, fazer os exerccios e resolver as questes de amostra e
experimentar os vrios comandos. medida que se acostuma com o ambiente Oracle,
xviii
OCA Oracle Database 11g: Funoamentos | SQL Manual oo Lame (Lame 1Z0-051)
voc percebe que h uma regra de ouro: na dvida, experimente. Em muitos casos,
voc descobre que um simples teste que leva alguns minutos pode poupar horas de
especulao e pesquisa em manuais. Se qualquer coisa no estiver clara, elabore um
exemplo e veja o que acontece. Este livro foi desenvolvido utilizando Windows e
Linux, mas para realizar os exerccios e suas investigaes, pode-se utilizar qualquer
plataforma que suporte Oracle. Sua iniciao ao mundo mgico da administrao
de banco de dados Oracle est prestes a comear. Esta uma matria que voc pode
estudar e apreciar para o resto de sua vida.
Neste Livro
Este livro est organizado para funcionar com uma reviso detalhada para o OCA
Oracle Database 11g: exame para Fundamentos I SQL para profissionais Oracle.
Cada captulo aborda um aspecto importante do exame; todos os objetivos da
certificao oficial OCA foram cuidadosamente abordados neste livro.
No CD
O CD-ROM (em ingls) contm um teste prtico que simula o verdadeiro teste
de certificao Oracle Database 11g OCA. Para maiores informaes sobre o CD-
ROM, consulte o apndice.
Lista de Verificao de Preparao para o Exane
Ao final desta introduo, voc encontrar uma Lista de Verificao de Preparao para
o Exame. Essa tabela contm os objetivos oficiais do exame. A lista tambm permite que
voc determine seu nvel de habilidade em cada objetivo no comeo de seus estudos.
Isso deve ajud-lo a verificar seu progresso e garantir que voc passe o tempo que precisa
em sees mais difceis ou que no so conhecidas. Cada objetivo est exatamente como
a Oracle Corporation apresenta, incluindo o captulo e a pgina de referncia.
En Cada CaptuIo
Este livro contm uma srie de componentes de captulos que chamam sua
ateno para itens importantes, reforam pontos importantes e fornecem dicas
teis para o momento do exame. Confira o que voc encontrar em cada
captulo:
n As notas Exame Dicas chamam ateno para informaes sobre o exame,
bem como grandes armadilhas.
n Os exerccios esto intercalados em todos os captulos e eles permitem que
voc obtenha a experincia prtica necessria para passar nos exames. Eles
ajudam a aperfeioar habilidades que uma rea de provvel foco no exame.
No leia apenas os exerccios; eles so exerccios prticos com os quais voc

xix
deve se sentir confortvel em completar. Aprender enquanto se faz uma
forma eficaz de aumentar sua competncia com um produto.
n As notas No Trabalho descrevem os assuntos que aparecem na maioria
das vezes em cenrios reais. Elas fornecem uma perspectiva valiosa sobre
tpicos relacionados certificao e a produtos. Elas apontam erros
comuns e respondem perguntas que surgiram de discusses em ambiente
de trabalho e em experincias.
n As sees Dentro do Exame ao final de cada captulo so projetadas para
prever o que o exame enfatizar. Essas so sugestes relacionadas aos
tpicos importantes nos quais se deve focar com base nas experincias
dos autores em passar por provas de produo e beta e de estar no grupo
interno da Oracle que valida as questes do exame.
n O Resumo de Certificao uma reviso sucinta do captulo e uma
reformulao de pontos salientes em relao ao exame.
n A Reviso em Dois Minutos no final de cada captulo uma lista de
verificao dos pontos principais do captulo. Voc pode utiliz-la para
uma reviso rpida e de ltima hora, antes do teste.
n A Autoavaliao oferece questes similares s encontradas no exame de
certificao. As respostas a essas perguntas, bem como explicaes das
respostas, podem ser encontradas no final de cada captulo. Fazendo a
Autoavaliao depois de completar cada captulo, voc reforar o que
aprender em cada captulo, enquanto se acostuma com a estrutura das
questes do exame. *As Perguntas de Laboratrio no final das sees
de Autoavaliao oferecem um forma de questo exclusivo e desafiador
que, para que seja respondido corretamente, exige que o leitor entenda
conceitos de muitos captulos. Essas questes so mais complexas e mais
abrangentes do que outras questes, pois verificam a capacidade de pegar
todo o conhecimento adquirido da leitura do captulo e aplic-lo a situaes
complicadas e reais.
Algumas sugestes
Assim que terminar de ler este livro, separe algum tempo para fazer uma reviso
completa. Voc pode querer voltar ao livro muitas vezes e utilizar todos os
mtodos que ele oferece para revisar o material antes de realizar o exame.
O fluxo de log de
recuperao inclui todas as mudanas: as
que so aplicadas a segmentos de dados
e para segmentos de funo desfazer,
para transaes comprometimento e
descomprometimento.
Introduo
P&R

xx
OCA Oracle Database 11g: Fundamentos I SQL Manual do Exame (Exame 1Z0-051)
n Releia todas as revises de dois minutos ou pea que algum lhe faa
perguntas. Voc tambm pode utilizar as revises como uma forma de
fazer um estudo rpido antes do exame.
n Releia todas as notas Exame Dicas. Lembre-se de que essas notas so
baseadas no exame OCA. Elas chamaro sua ateno para o que voc deve
esperar e o que voc deve procurar.
n Refaa as Autoavaliaes. uma boa ideia fazer a Autoavaliao logo
aps ler o captulo, porque as questes ajudam a reforar o que voc
acabou de aprender e depois refaa todas ao final. No exame, as questes
no aparecem convenientemente agrupadas por assunto: voc ter de estar
preparado para pular de um tpico para outro.
n Complete os Exerccios. Voc fez os Exerccios do captulo e as Questes
de Laboratrio quando leu cada captulo? Se no fez, faa! Esses exerccios
so desenvolvidos para cobrir os tpicos do exame e no h forma melhor
de conhecer esse material do que praticar. Certifique-se de entender por
que voc est realizando cada passo de cada exerccio. Se h algo que voc
no entendeu completamente, releia a seo do captulo.
Estrutura do Teste
Os exames OCA so questes de mltipla escolha, mas no so necessariamente
questes que se deve escolher uma resposta. Algumas pediro duas ou trs respostas,
algumas diro nas entrelinhas para escolher todas as alternativas corretas. A
maioria das questes composta por textos, mas algumas tm um quadro, que pode
ser um diagrama ou talvez uma captura de tela que ilustra a questo.
Leia todas as questes atentamente. Em alguns casos, quando a questo
pede uma resposta, voc pode pensar que esto todas erradas ou que muitas
esto corretas. Sempre, ao reler a questo cuidadosamente, voc ver o que os
examinadores esto procurando.
Voc ter uma mdia de somente um minuto ou dois para cada questo. Faa
todas, rpido, respondendo as que voc sabe e marcando as que no sabe para
revisar depois. Ento, volte s questes marcadas. Isso tomar a maior parte do
tempo. Se h algumas questes que voc realmente no sabe, chute a resposta: no
se diminui nota por respostas incorretas.
Cono se preparar para o Exane
Estude e pratique! Volte a cada captulo do livro, fazendo todos os exerccios
e experimentando novos testes. Faa uso de outros recursos se algo ainda no
estiver claro: a Biblioteca de Documentao Oracle (um download gratuito do
website da Oracle Corporation) de leitura essencial. Se tiver oportunidade de
fazer um curso da Oracle University ou ter acesso a cursos individuais on-line da
Oracle University, tudo isso pode ter muita valia.

xxi
As questes-exemplo no final de cada captulo e no CD no so cpias das
questes reais do OCA (porque isso seria fraude), mas so exemplos reais dos
tipos de questo e o formato das perguntas com as quais voc ir se deparar. Elas
cobrem todo o material examinado. No anterior realizao do exame, bom
refaz-los, procurando algum que voc no saiba a resposta.
Este livro no foi feito s para ser um preparador para exames: foi feito para ensinar
voc como desenvolver aplicativos com SQL. Se voc souber fazer isso, passar na
prova. No decore as respostas das questes aprenda as tcnicas, os princpios e
sintaxe que permitiro que voc desenvolva as respostas de qualquer questo.
Exam 1Z0-051
Objetivo OficiaI OCA CaptuIo Pgina
Recuperao de Dados utilizando a Declarao SQL SELECT
Especifique os Recursos das Declaraes SQL SELECT 2 52
Execute uma Declarao SELECT Bsica 2 59
Restringindo e Classificando Dados
Limite as linhas que so recuperadas por uma consulta 3 104
Limite as linhas que so recuperadas por uma consulta 3 136
Utilize substituio de E comercial para restringir e classificar
resultado no tempo de execuo
3 142
Funes de Linha Simples
Descreva Vrios Tipos de Funes Disponveis em SQL 4 170
Utilize Funes de Caractere, Nmero e Data em Instrues
SELECT
4 177
Utilizando Funes de Converso e Expresses Condicionais
Descreva Vrios Tipos de Funes de converso que esto
disponveis em SQL
5 228
Utilize as Funes de Converso TO_CHAR, TO_NUMBER
e TO_DATE
5 231
Aplique Expresses Condicionais em uma Instruo SELECT 5 245
Informando Dados Agregados Utilizando as Funes de Grupo
Identifique as Funes de Grupo Disponveis 6 279
Descreve a utilizao de funes de grupo 6 279
Dados de Grupo Utilizando a Clusula GROUP BY 6 287
Inclua ou Exclua Linhas Agrupadas Utilizando a Clusula
HAVING
6 294
Exibindo Dados a partir de Tabelas Mlti plas
Grave Instrues SELECT para acessar dados de mais de uma
tabela utilizando junes equivalentes e no equivalentes.
7 310
Una uma Tabela a ela mesma utilizando Autojuno 7 331
Introduo
xxii
OCA Oracle Database 11g: Fundamentos I SQL Manual do Exame (Exame 1Z0-051)
Objetivo OficiaI OCA CaptuIo Pgina
Visualizar Dados que geralmente no satisfazem uma
Condio de Juno utilizando junes externas
7 334
Crie um Produto Cartesiano de todas as linhas de duas ou
mais Tabelas
7 342
Utilizando Subconsultas para Resolver Problemas
Defina Subconsultas 8 358
Descreva os tipos de problemas que as subconsultas podem resolver 8 360
Especifique os Tipos de Subconsultas 8 364
Grave Subconsultas de Linhas nicas e Mltiplas 8 369
Utilizando dos Operadores de Conjunto
Descreva os Operadores de Conjunto 9 382
Utilize um Operador de Conjunto para combinar consultas
mltiplas em uma nica consulta
9 386
Controle a ordem das linhas retornadas 9 393
Mani pulando Dados
Descreva cada Instruo de DML (Linguagem de Manipulao
de Dados)
10 404
Insira Linhas em uma Tabela 10 413
Atualize linhas em uma tabela 10 419
Exclua linhas de uma tabela 10 423
Transaes de Controle 10 427
Utilizando Declaraes DDL para Criar e Gerenciar Tabelas
Categorize os Principais Objetos de Banco de Dados 11 450
Revise a estrutura da tabela 11 456
Especifique os Tipos de Dados que esto disponveis para colunas 11 457
Crie uma Tabela Simples 11 462
Explique como as restries so criadas no momento da
criao da tabela
11 469
Criando Outros Objetos de Esquema
Crie Visualizaes simples e complexas 12 488
Recuperar dados das visualizaes 12 497
Crie, Mantenha e Utilize Sequncias 12 501
Crie e Mantenha ndices 12 509
Crie Sinnimos particulares e pblicos 12 498
1
Oracle Server
Technologies e
Paradigma Relacional
OBjETlVO5 DA CERTlFlCAAO
1.01 Posicionando as Tecnologias
de Servidor
1.02 Entenda as Estruturas Relacionais
1.03 Resuma a Linguagem SQL
1.04 Utilize as Ferramentas do Cliente
1.05 Criar Esquemas
de Demonstrao
Reviso em Dois Minutos
P&R Autoavaliao
2
Captulo 1: Oracle Server Technologies e Paradigma Relacional
O
contedo deste captulo no diretamente avaliado pelo exame OCP, mas
de suma importncia entender o propsito do SQL e o que pretende
atingir. considerado conhecimento de pr-requisito que todo estudante
deve ter, comeando com uma apreciao de como as tecnologias de servidor Oracle
se encaixam a posio relativa de cada produto.
O conjunto de produtos das tecnologias de servidor Oracle mais do que um
banco de dados. H tambm o Oracle Application Server e o Oracle Enterprise
Manager. Juntas, essas so as tecnologias de servidor que compem a Grade. A
computao em grade um ambiente que surge para gerenciar todo o ambiente
de TI e fornecer recursos para usurios sob demanda.
O paradigma relacional para gerenciamento de informaes de banco de
dados teve sua primeira formalizao no final da dcada de 1960 e tem sido
continuamente refinado. Um paradigma uma srie de padres combinados
por todos os que esto envolvidos que especifica como os problemas devem
ser entendidos e resolvidos. H outros paradigmas dentro do mundo do
processamento de dados. O banco de dados Oracle uma implementao de um
SGBDR (Sistema Gerenciador de Banco de Dados Relacional) que est de acordo
com o paradigma relacional, mas vai alm, para incluir alguns aspectos de outros
paradigmas como modelos hierrquicos e orientados a objetos.
SQL (Linguagem de Consulta Estruturada) um padro internacional
para gerenciar dados armazenados em bancos de dados relacionais. O
Oracle Database 11g oferece uma implementao de SQL que geralmente
compatvel com o padro em vigor quando da publicao, que SQL-2003.
Os detalhes completos de compatibilidade esto no Apndice B de SQL
Language Reference, que faz parte da Biblioteca de Documentao do Banco
de Dados Oracle. Com regra, a compatibilidade por ser aceita.
Em todo este livro, duas ferramentas so utilizadas extensivamente
para exerccios: SQL*Plus e SQL Developer. Essas so ferramentas que os
desenvolvedores utilizam todos os dias em seus trabalhos. Os exerccios e
muitos dos exemplos so baseados em dois conjuntos de demonstraes de
dados, conhecidos como os esquemas HR e OE. Essas so instrues sobre
como lanar ferramentas e criar os sistemas de demonstrao, embora voc
possa precisar de assistncia de seu administrador local de banco de dados
para comear.
Este captulo consiste em descries resumidas das Tecnologias de Servidor
Oracle; os conceitos por trs do paradigma relacional e normalizao de dados em
estruturas relacionais; a linguagem SQL; as ferramentas de clientes e os esquemas
de demonstrao.

3
OBjETlVO5 DA CERTlFlCAAO 1.01
Posicionando as Tecnologias de Servidor
Existe uma famlia de produtos que compe as tecnologias de servidor Oracle:
n O Banco de Dados Oracle;
n O Servidor de Aplicativos Oracle;
n Oracle Enterprise Manager;
n Vrias ferramentas de desenvolvimento de aplicativos e linguagens.
Cada um desses produtos tem uma posio no conjunto de produtos Oracle.
O banco de dados o repositrio para dados e o mecanismo que gerencia o acesso
a eles. O Servidor de Aplicativos Oracle executa softwares em nome de usurios
finais: ele cria a interface de usurio na forma de janelas exibidas em navegadores de
usurios e envia chamados de recuperao de dados e modificao no banco de dados
para execuo. O Oracle Enterprise Manager uma ferramenta de administrao
abrangente para monitorar, gerenciar e ajustar os processos Oracle e tambm (por
meio de plug-ins) produtos de terceiros. Por ltimo, existem ferramentas e linguagens
para desenvolver aplicativos; tanto em aplicativos que so executados nas mquinas de
usurios finais no modelo de servidor do cliente ou em aplicativos que so executados
de forma central em servidores de aplicativo.
A combinao das tecnologias de servidor e as ferramentas de desenvolvimento
formam uma plataforma para desenvolvimento de aplicativos e fornecimento que
habilitam a Grade. A Grade uma abordagem para fornecimento de servios de
TI que maximiza a reduo de custo de todo o ambiente fornecendo poder de
computao a partir de um grupo de recursos disponveis para onde for necessrio,
sob demanda.
A Arquitetura de Servidor da Oracle
Um banco de dados Oracle uma srie de arquivos em disco. Ele existe at que
esses arquivos sejam deliberadamente excludos. No h limites prticos para o
tamanho e nmero desses arquivos, e, portanto no h limites prticos para o
tamanho de um banco de dados. O acesso ao banco de dados feito por meio
da instncia Oracle. A instncia um conjunto de processos e estruturas de
memria: existe nas CPU(s) e na memria do n do servidor, e essa existncia
temporria. Uma instncia pode ser iniciada e parada. Os usurios do banco de
dados estabelecem sesses contra a instncia. A instncia gerencia todo o acesso
ao banco de dados. absolutamente impossvel no ambiente Oracle qualquer
usurio ter contato direto com o banco de dados. Uma instncia Oracle com um
banco de dados Oracle forma um servidor Oracle.
Posicionando as Tecnologias de Servidor
4
Captulo 1: Oracle Server Technologies e Paradigma Relacional
O modelo de processamento inserido pelo servidor Oracle de processamento-
cliente/servidor, sempre chamado de duas camadas. No modelo cliente/servidor,
a gerao da interface de usurio e muito da lgica de aplicativos so separados
do gerenciamento dos dados. Para um aplicativo desenvolvido utilizando SQL
(como todos os aplicativos de banco de dados relacional sero), isso significa que
a camada do cliente cria os comandos SQL e a camada do servidor os executa.
Essa a diviso bsica de cliente/servidor, com (como regra geral) uma rede local
de rea entre os dois lados. O protocolo de comunicaes de rede utilizado entre
o processo de usurio e o processo de servidor o protocolo de proprietrio da
Oracle, a Oracle Net.
A camada do cliente consiste em dois componentes: os usurios e os
processos de usurio. A camada do servidor tem trs componentes: os
processos de servidor que executam SQL, a instncia e o prprio banco de
dados. Cada usurio interage com um processo de usurio. Cada processo
de usurio interage com um processo de servidor, normalmente, sobre uma
rede local de rea. Os processos de servidores interagem com a instncia e
a instncia com o banco de dados. A Figura 1-1 mostra a relao em forma
de diagrama. Uma sesso um processo de usurio em comunicao com
um processo de servidor. Haver normalmente um processo de usurio e
um processo de servidor por processo de usurio. Os processos de usurio
e servidor que formam as sesses so ativados sob demanda por usurios
e finalizados quando no so mais necessrios. Esse o ciclo de logon e
logoff. Os processos de instncia e as estruturas de memria so ativados
pelo administrador do banco de dados e persistem at que o administrador,
deliberadamente, os finaliza. Esse o ciclo de inicializao e encerramento.
O processo de usurio pode ser qualquer software do lado do cliente que seja
capaz de se conectar a um processo de servidor Oracle.
Ao longo deste livro, dois processos de usurios sero utilizados
extensivamente: SQL*Plus e SQL Developer. Esses so processos simples
fornecidos pela Oracle para estabelecer sesses contra um servidor Oracle e
emitir SQL ad hoc.
FlGURA 1-1
A conexo
indireta entre
um usurio e um
banco de dados
Componentes do lado do cliente Componentes do lado do servidor
Instncia
Processo de servidor
Processo de usurio
Componentes de sesso
Usurio
Banco de Dados

5
Uma alternativa bastante utilizada a TOAD (a Ferramenta de Desenvolvedores de
Aplicativos) da Quest Software. Um software licenciado, antes de utiliz-lo, assegure-
se de que a licena legal. Ser necessrio que os aplicativos de usurios finais sejam
criados com algo mais sofisticado do que essas ferramentas, algo capaz de gerenciar
janelas, menus, dilogos na tela adequados, e assim por diante. Tal aplicativo pode ser
criado com os produtos da Oracle Developer Suite, com o Microsoft Access conectado
aos drivers do Oracle ODBD; com qualquer linguagem de terceira gerao (como C
ou Java) para a qual a Oracle tenha fornecido uma biblioteca de chamadas de funo
que permitir que interaja com o servidor; ou com qualquer nmero de ferramentas de
terceiros compatveis com Oracle. No importa para servidor Oracle o que o processo
de usurio na realidade. Quando um usurio final preenche um formulrio e clica
no boto Enviar, o processo de usurio criar uma instruo INSERT (detalhada no
Captulo 11) e a enviar para um processo de servidor para executar contra a instncia
e o banco de dados. At onde o servidor est envolvido, a instruo INSERT tambm
pode ter sido digitada no SQL*Plus como o que conhecido como SQL ad hoc.
Nunca se esquea de que toda a comunicao com o servidor Oracle segue esse
modelo cliente/servidor. A separao de cdigo de usurio, a partir de cdigo de
servidor, remonta as primeiras verses do banco de dados e isso inevitvel. Mesmo
se o processo de usurio estiver sendo executado na mesma mquina do servidor
(como o caso se, por exemplo, algum estiver executando um banco de dados em
seu prprio laptop para desenvolvimento ou treinamento), a diviso cliente/servidor
ainda reforada, e os protocolos de rede so ainda utilizados pra as comunicaes
entre os dois processos. Os aplicativos sendo executados em um ambiente de
servidor de aplicativos (descritos na prxima seo), tambm seguem o modelo
cliente/servidor para seu acesso ao banco de dados.
A forma mais simples do servidor de banco de dados uma instncia
conectada a um banco de dados, mas em um ambiente mais complexo, um
banco de dados pode ser aberto por muitas instncias. Isso conhecido por RAC
(Real Application Cluster Cluster Real de Aplicativos). O RAC pode trazer
muitos benefcios potenciais, que podem incluir escalabilidade, desempenho e
indisponibilidade zero. A habilidade de adicionar dinamicamente mais instncias,
sendo executadas em mais ns em um banco de dados, uma poro maior de
contribuio do banco de dados para a Grade.
O Servidor de Aplicativos Oracle
Junto com o aparecimento da Web como uma plataforma padro de
comunicao, para fornecer aplicativos a usurios finais, veio a necessidade de
servidores de aplicativo. Um servidor de aplicativo substitui o software do lado
do cliente, tradicionalmente instalado nos terminais do usurio final. Ele executa
os aplicativos centralmente, apresentando-os aos usurios em janelas exibidas
localmente nos navegadores de Internet. Os aplicativos fazem uso dos dados
armazenados e um ou mais servidores de banco de dados.
Posicionando as Tecnologias de Servidor
6
Captulo 1: Oracle Server Technologies e Paradigma Relacional
O Oracle Application Server uma plataforma para desenvolver, implementar e
gerenciar aplicativos de Internet. Um aplicativo da internet pode ser definido como um
aplicativo com o qual os usurios se comunicam com o http. Os aplicativos da Web,
normalmente, so executados em, no mnimo, trs camadas: a camada de banco de
dados gerencia acesso aos dados, a camada de cliente (sempre implementada como um
navegador de Internet) lida com o gerenciamento da janela local para comunicao
entre os usurios. Uma camada de aplicativo no meio executa a lgica do programa
que cria a interface de usurio e o SQL se conecta ao banco de dados.
Os aplicativos de Web podem ser desenvolvidos com algumas tecnologias, dentre
as quais a predominante Java. Os aplicativos escritos em Java podem se adequar ao
padro J2EE (Java 2 Enterprise Edition), que define como tais aplicativos podem ser
compactados e implementados. O J2EE e os padres relacionados so controlados pela
Sun Microsystems e aceitos, praticamente, por todos os desenvolvedores de software.
O Oracle Application Server um servidor de aplicativos compatvel com J2EE. A
implementao da Oracle dos padres permite balanceamento de carga automtico
e tolerncia a falhas em servidores de mltiplos aplicativos, em mltiplas mquinas.
Apesar de o armazenamento em cluster do J2EE. O armazenamento em cluster
virtualiza a proviso do servio de aplicativo. Os usurios pedem um aplicativo que
pode estar disponvel em alguns lugares, e o cluster funciona em qualquer sesso
ou solicitao, podendo ser melhor atendida. Se um local falhar, outros assumiro
a carga, e mais recursos podem ser disponibilizados para um aplicativo, conforme
necessrio. A capacidade de separar a solicitao de um servio de um local de sua
proviso e para adicionar ou remover servidores J2EE de um cluster dinamicamente,
uma parte importante da contribuio do Oracle Application Server para a Grade.
importante observar, que o comprometimento da Oracle com os padres
internacionais muito forte. Os aplicativos, sendo executados no ambiente do Oracle
Application Server, podem se conectar a qualquer banco de dados para os quais
existem drivers compatveis com Java; no necessrio utilizar um banco de dados
Oracle. Os aplicativos desenvolvidos com o kit de ferramentas Oracle Application
Server podem ser implementados para um servidor de aplicativos compatvel com
J2EE de terceiros.
O modelo de processamento mais simples de aplicativos da web tem trs camadas:
uma camada de cliente que gerencia a interface de usurio; uma camada mdia que
cria a interface e emite as instrues SQL para a camada de dados; e uma camada
de dados que gerencia os prprios dados. No ambiente Oracle, a camada do cliente
ser um navegador (como Mozilla ou Microsoft Internet Explorer) que lida com
o gerenciamento local de janelas, controla o teclado e rastreia os movimentos do
mouse. A camada mdia ser um Oracle Application Server executando o software
(provavelmente escrito em Java) que gera as janelas enviadas camada do cliente para
serem exibidas e as instrues SQL enviadas camada de dados para execuo.
A camada de dados ser um servidor Oracle: uma instncia em um banco de
dados. Nesse ambiente de trs camadas, existem dois tipos de sesso: sesses de
usurio final (a partir da camada do cliente para a camada central) e sesses de banco
de dados (a partir da camada do meio para a camada de dados). As sesses de usurio
final sero estabelecidas com HTTP. As sesses de banco de dados so sesses de

7
cliente/servidor que consistem em um processo de usurio e um processo de servidor,
como descrito na seo anterior. possvel que um aplicativo utilize um mapeamento
um-para-um de sesso de usurio final para a sesso de banco de dados: cada usurio,
a partir de seu navegador, estabelecer uma sesso contra o servidor de aplicativo e o
servidor de aplicativo, ento, estabelecer uma sesso contra o servidor de banco de
dados em nome do usurio. Entretanto, esse modelo provou ser muito ineficiente ao
ser comparado ao modelo de pool de conexes. Com o pool de conexes, o servidor
de aplicativos estabelece um nmero relativamente pequeno de sesses de banco de
dados persistentes e as disponibiliza sob demanda (enfileirando solicitaes, caso seja
necessrio) para um nmero relativamente grande de sesses de usurio final contra
o aplicativo de servidor. A Figura 1-2 ilustra a arquitetura de trs camadas utilizando
o pool de conexes. A partir do ponto de vista do banco de dados, no faz diferena
se uma instruo SQL vem de um processo do lado do cliente como SQL*Plus ou
Microsoft Access ou de uma sesso de pool para um servidor de aplicativo. No caso
anterior, o processo de usurio acontece inteiramente na mquina. Nesse ltimo, o
processo de usurio foi dividido em duas camadas: uma camada de aplicativos que
gera a interface de usurio e uma camada de cliente que a exibe.
Oracle Enterprise Manager
O crescente tamanho e a complexidade das instalaes de TI faz do
gerenciamento uma tarefa desafiadora. Isso no bem uma surpresa: ningum
nunca disse que gerenciar um ambiente poderoso deveria ser necessariamente
simples. Entretanto, as ferramentas de gerenciamento podem facilitar a tarefa e
tornar o pessoal de gerenciamento mais produtivo.
FlGURA 1-2
O modelo de
pool de conexes
Sesses persistentes estveis
sobre a Oracle Net
Servidor de
Aplicativos
Servidor de
banco de dados
Sesses no persistentes sem
preservao de estado sobre HTTP
Navegador
Navegador
Navegador
Navegador
Posicionando as Tecnologias de Servidor
8
Captulo 1: Oracle Server Technologies e Paradigma Relacional
O Oracle Enterprise Manager vem em trs formas:
n Controle de Banco de Dados;
n Controle de Servidor de Aplicativo;
n Controle de Grade.
O Controle de Banco de Dados do Oracle Enterprise Manager uma
ferramenta grfica para gerenciar um banco de dados, que pode ser um banco
de dados armazenado em cluster por RAC. Ele consiste em um processo Java
sendo executado na mquina de servidor do banco de dados. Os administradores
se conectam ao Controle de Banco de Dados a partir de um navegador, e o
Controle de Banco de Dados, ento, se conecta ao servidor de banco de dados. O
Controle de Banco de Dados tem recursos para gerenciamento e monitoramento
em tempo real, para execuo de trabalhos agendados e para enviar condies de
alerta interativamente e por e-mail. O Controle de Servidor de Aplicativo Oracle
Enterprise Manager uma ferramenta grfica para gerenciar uma instncia de
servidor de aplicativo ou um grupo de instncias. A tecnologia de agrupamento
dependente da verso. At a verso 2 do Oracle Application Server 10g,
muitos servidores de aplicativo eram gerenciados como uma fazenda, com um
repositrio de metadados (normalmente residindo em um banco de dados Oracle)
como um ponto central de gerenciamento. Da verso 3 em diante, a tecnologia
baseou-se no armazenamento em cluster J2EE, que no de propriedade da
Oracle.
O Controle de Grade do Oracle Enterprise Manager globaliza o ambiente
de gerenciamento. Um repositrio de gerenciamento (residindo em um banco
de dados Oracle) e um ou mais servidores de gerenciamento controlam todo o
ambiente: todos os bancos de dados e os servidores de aplicativo, onde quer que
estejam. O Controle de Grade pode tambm gerenciar os ns, ou mquinas,
nos quais os servidores trabalham, bem como (por meio de plug-ins) uma gama
variada de produtos de terceiros. Cada n gerenciado executa um processo de
agente, que responsvel pelo monitoramento do alvo gerenciado no n: executar
trabalhos contra eles e reportar status, nveis de atividade e condies de alerta
para o(s) servidor(es) de gerenciamento.
O Controle Grade oferece uma viso holstica do ambiente e, se for bem
configurado, faz o pessoal da administrao ficar mais produtivo do que se
estivessem sem. Torna-se possvel que um administrador gerencie efetivamente
centenas de alvos.
Computao em Grade
Um item crtico ao conceito de computao em grade a virtualizao. Isso significa
que em todos os nveis h uma camada de abstrao entre o que solicitado e o que
fornecido. Os usurios finais pedem um servio de aplicativo e deixam a Grade
decidir qual servidor de aplicativo de J2EE, armazenado em cluster, pode fazer o
melhor fornecimento. Os servidores de aplicativo pedem um servio de banco de

9
dados e permitem que a Grade decida qual n RAC melhor atender aos dados.
Dentro de Grade h um mapeamento de possveis servios para fornecedores de
servio disponveis, e h algoritmos para designar a carga de trabalho e os recursos
apropriadamente.
O resultado: os usurios finais no tm necessidade nem capacidade de saber de
onde seus recursos de computao so realmente fornecidos. A analogia, que sempre
feita com o fornecimento de eletricidade domstica, fornecida sob demanda, e o
proprietrio da casa no tem como dizer qual estao de energia est lhe servindo no
momento. A Grade no exclusivo para o Oracle. No nvel fsico, alguns sistemas
operacionais e fornecedores de hardware fornecem recursos similares a Grade. Eles
incluem a habilidade de particionar servidores em mquinas virtuais e adicionar ou
remover dinamicamente CPU(s) e memrias RAM das mquinas virtuais de acordo
com a demanda. Isso conceitualmente similar abordagem da Oracle de dinmica
de designer recursos de servidor de aplicativo e servidor de banco de dados a servios
lgicos. No h razo para que as duas abordagens no sejam combinadas. Ambas
esto trabalhando para o mesmo objetivo e podem trabalhar juntas. O resultado deve
ser um ambiente onde recursos adequados esto sempre disponveis sob demanda,
sem encarar os problemas de excesso de capacidade algumas vezes e mau desempenho
em outras. Tambm possvel desenvolver um ambiente Grade sem nenhum ponto
de falha, atingindo assim a meta de 100% de tempo em funcionamento mesmo que
esteja sendo demandando por muitos usurios.
O desenvolvedor de aplicativo SQL no precisa saber como a Grade foi
implementada. O SQL ser invocado a partir de um servidor de aplicativo e
executado por uma instncia contra um banco de dados: a Grade garantir que
a qualquer momento, pools de servidores de aplicativo e instncias medidas
apropriadamente para a carga de trabalho atual estejam disponveis.
EXERClClO 1-1
Investigue seu Ambiente de Banco de Dados e de Aplicativo
Esse um exerccio impresso em papel, sem uma soluo especfica.
Tente identificar os processos de usurio, servidores de aplicativo e servidores
de banco de dados utilizados em seu ambiente. Tente verificar onde o SQL est
sendo gerado e onde est sendo executado. Tenha em mente que, normalmente,
os processos de usurio utilizados pelos usurios finais sero grficos e passaro
frequentemente por servidores de aplicativo; a administrao do banco de dados
e o pessoal de desenvolvimento sempre preferiro utilizar ferramentas de cliente/
servidor que se conectam ao servidor de banco de dados diretamente.
Ferramentas de Desenvolvimentos e Linguagens
As tecnologias de servidor Oracle incluem vrios recursos para desenvolver
aplicativos, alguns existentes dentro do banco de dados, outros externamente.
Posicionando as Tecnologias de Servidor
10
Captulo 1: Oracle Server Technologies e Paradigma Relacional
Dentro do banco de dados, possvel usar trs linguagens. Uma que
inevitvel e assunto deste livro, o SQL. SQL utilizada para acesso de dados,
mas no pode ser utilizada para desenvolver aplicativos completos. Ela no tem
recursos reais para desenvolver interfaces de usurio e tambm no tem estruturas
procedurais necessrias para manipular linhas individualmente. As outras duas
linguagens disponveis dentro do banco de dados preenchem essas lacunas.
So elas: PL/SQL e Java. PL/SQL uma linguagem de terceira gerao (3GL)
pertencente Oracle. Possui os conceitos procedurais normais (como if-then-else e
looping) e recursos para design de interface de usurio. No cdigo PL/SQL, pode-
se integrar chamadas para o SQL. Assim, um aplicativo PL/SQL pode utilizar
SQL para recuperar uma ou mais linhas a partir do banco de dados, depois
executar vrias aes baseadas em seu contedo e depois emitir mais SQL para
escrever linhas para o banco de dados. Java oferece uma capacidade similar para
integrar chamadas dentro do cdigo Java. Isso tecnologia de padro industrial:
qualquer programador Java deve ser capaz de escrever cdigos que funcionaro
com um banco de dados Oracle (ou de fato com um banco de dados compatvel
com Java).
Outras linguagens esto disponveis para desenvolver aplicativos de cliente/
servidor que sejam executados externamente ao banco de dados. As mais
comumente usadas so C e Java, mas possvel usar a maioria das 3GLs da
atualidade. Para todas essas linguagens, a Oracle Corporation fornece bibliotecas
OCI (Oracle Call Interface Interface de Chamada Oracle) que permite que
cdigos escritos nessas linguagens estabeleam sesses contra um banco de dados e
invoquem comandos SQL.
Muitas empresas no querem usar uma 3GL para desenvolver aplicativos de banco
de dados. A Oracle Corporation fornece ferramentas rpidas de desenvolvimento de
aplicativos como parte do Oracle Developer Sute, e h muitos produtos de terceiros.
Com elas, a produtividade dos programadores melhor do que se estivessem trabalhando
com uma 3GL. Como as linguagens, todas essas ferramentas de desenvolvimento de
aplicativo terminam fazendo a mesma coisa: criando instrues SQL que so enviadas
para o servidor de banco de dados para execuo.
Todos os desenvolvedores e administradores que trabalham no ambiente
Oracle devem conhecer PL/SQL. C e Java no so necessrias, a menos
que o projeto as utilize especificamente.
OBjETlVO5 DA CERTlFlCAAO 1.02
Entenda as Estruturas Relacionais
Algo crucial para o entendimento de SQL o entendimento do paradigma
relacional e a capacidade de normalizar dados em estruturas relacionais.

Potrebbero piacerti anche