61
Disciplina Banco de Dados III - Margareth Nassif É o fechamento das disciplinas de Banco de Dados. BD I ACCESS BD II My SQL BD III Oracle 10g Express Edition (ORACLE XE) Durante as aulas iremos : - Conhecer o BD ORACLE XE - Aprender a trabalhar com o BD Oracle XE - Criar o BD que será utilizado no Projeto Final do Curso

Aulas Oracle 10g

Embed Size (px)

Citation preview

Page 1: Aulas Oracle 10g

Disciplina Banco de Dados III - Margareth Nassif

É o fechamento das disciplinas de Banco de Dados.

BD I ACCESS

BD II My SQL

BD III Oracle 10g Express Edition (ORACLE XE)

Durante as aulas iremos :

- Conhecer o BD ORACLE XE

- Aprender a trabalhar com o BD Oracle XE

- Criar o BD que será utilizado no Projeto Final do Curso

Page 2: Aulas Oracle 10g

Critérios de Avaliação

Primeiro Bimestre = 40 Pontos

2 exercícios em aula de 5 Pontos 10 Pontos

Atividade 10 Pontos

Prova Bimestral de 20 Pontos 20 Pontos

Segundo Bimestre = 60 Pontos

2 exercícios em aula de 10Pontos 20 Pontos

Atividade 10 Pontos

Prova Bimestral de 30 Pontos 30 Pontos

Cronograma (Ver Arquivo de Cronograma Anexo)

Page 3: Aulas Oracle 10g

A história da Oracle

Há quase trinta anos, Larry Ellison vislumbrou uma oportunidade que outras companhias não haviam percebido, quando encontrou uma descrição de um protótipo funcional de um banco de dados relacional e descobriu que nenhuma empresa tinha se empenhado em comercializar essa tecnologia.

Ellison e os co-fundadores da Oracle, Bob Miner e Ed Oates, perceberam que havia um tremendo potencial de negócios no modelo de banco de dados relacional, mas não se deram conta de que mudariam a face da computação empresarial para sempre.

Hoje a Oracle (Na bolsa de valores Nasdaq: ORCL) continua à frente de seu tempo. A tecnologia Oracle pode ser encontrada em quase todos os setores do mundo inteiro e nos escritórios de 98 das empresas citadas na lista “Fortune 100”.

A Oracle é a primeira empresa de software a desenvolver e empregar software empresarial totalmente habilitado para Internet em toda a sua linha de produtos: banco de dados, aplicativos empresariais e ferramentas para desenvolvimento de aplicativos e suporte a decisões.

A Oracle é o principal fornecedor de software para gerenciamento de informações e a segunda maior empresa de software independente do mundo.

A Oracle Corporation anunciou em 17 de setembro de 2010, que foi nomeada como fornecedora líder de sistemas gerenciadores de banco de dados (SGBD) pelo terceiro ano consecutivo com base em 2009.

Page 4: Aulas Oracle 10g

O SGBD ORACLE

O Oracle Database é um Sistema Gerenciador de Banco de Dados (SGBD) que está no mercado desde o fim dos anos 70 e que cada vez mais conquista novos adeptos.

É uma ferramenta cliente/servidor para gestão de base de dados muito eficiente.

O Oracle 9i foi pioneiro no suporte ao modelo web.

O Oracle 10g possui muitas melhorias em relação ao Oracle 9i.

Page 5: Aulas Oracle 10g

ORACLE : VANTAGENS X DESVANTAGENS

VANTAGENS DESVANTAGENSGrande otimização de performance

para dados em grande quantidade;

Exige alta especialização técnica, seja

para administração do banco (tarefas

como backup/recovery, performance

controle de usuários/segurança, etc.),

bem como para atividades como

programação para geração de saídas

adequadas e derivação de dados;

Robustez, segurança dos dados,

Confiabilidade e organização ;

Alto custo da licença e do hardware

necessário para rodar os softwares

Oracle

Trata-se de um sistema naturalmente

multi-usuário, permitindo a edição,

atualização, consulta simultânea de

dados/mapas/metadados por diversas

pessoas,inclusive via internet/intranet

(com o uso de sistemas de

disponibilização);

Permite a criação de programas que

fazem carregamento automático de

informações, verificação de

consistência, limpeza,etc;

Permite intercâmbio com diversas

tecnologias (programação de

interfaces em linguagens de

programação como VB, C, Java);

ORACLE NO MERCADO DE BANCOS DE DADOS

Page 6: Aulas Oracle 10g

O Oracle é o principal banco de dados atualmente,sendo responsável pelo armazenamento de boa parte dasinformações das principais organizações ao redor do mundo.

Sua participação no mercado de banco de dados ébastante acentuada, principalmente em grandes empresase em conjunto com sistemas de médio e grande porte.

O Oracle é muito robusto e exige bastante hardware parauma boa performance.

Outro fator importante é o gerenciamento, onde sãoexigidos profissionais bastante capacitados para este fim.

Um ponto muito alto do banco de dados Oracle é asegurança, principalmente quando bem administrado.

Segurança dos dados é um dos principais pontos aanalisar no aspecto de banco de dados e neste caso o Oracletem a simpatia de muitas empresas e DBA’s.

A versão free do Oracle é a Oracle Database 10g Express Edition ou Oracle XE, que tem como limitação o tamanho da base (4Gb).

A Oracle criou essa versão justamente para tentar impedir o crescimento de outros bancos free como: Opensource, Firebird e PostgreSQL.

Page 7: Aulas Oracle 10g

Banco de Dados Oracle 10g Express Edition (ORACLE XE)  

A Oracle lançou oficialmente o seu Banco de Dados Oracle 10g Express Edition (Oracle XE) em 2005.

Desde o início o Banco de Dados Oracle XE tem recebido forte apoio em todo o mundo de desenvolvedores, estudantes e fornecedores de soluções que o utilizam para desenvolver aplicativos de banco de dados nas plataformas Windows e Linux.

O Banco de Dados Oracle XE é gratuito e oferece liberdade para desenvolver e implementar aplicativos de muitas plataformas e traz suporte para variados ambientes de desenvolvimento.

Centenas de milhares de programadores Java, .NET, PHP e da Web, incluindo estudantes e fornecedores de soluções de terceiros, já baixaram o banco de dados da Internet sem qualquer custo.

O Oracle XE traz recursos de performance, confiabilidade e segurança da ORACLE.

Por ser compatível com toda a família de produtos do Banco de Dados Oracle, ele permite aos usuários a facilidade de começar com uma solução básica e ir mudando para outras versões quando necessário.

Segundo Thomas Kyte, da Oracle, o produto agrada aos desenvolvedores que querem acesso gratuito a um software de banco de dados consagrado e de alta qualidade. “Ele é um banco de dados básico com toda a funcionalidade exigida nas corporações", concluiu.

O ORACLE XE é um dos melhores bancos que existe atualmente.

Page 8: Aulas Oracle 10g

Ele é o mais estável e é o que tem mais recursos sendo assim o mais utilizado.

Algumas funções do Oracle:· Funcionalidade de administração comum do sistema, incluindo esquema e criação de usuário

· Banco de dados de monitoramento (limites de recursos, estatísticas, consultas de SQL, sessões e assim por diante).

· Permite criar e editar tabelas, índices, triggers, views(visões do banco), funções, procedimentos armazenados e assim por diante.

Importante: Os procedimentos armazenados e pacotes completos estão incluídas no Oracle XE.

· Editor SQL e Query Browser

· Log para Restore do banco , geração de DDL(Ling.Def.Dados)

· Importação / Exportação de Texto, Planilha, ou XML

· Application Builder com aplicações de exemplo pronto para instalar

ARQUITETURA DO SGBD ORACLE

Page 9: Aulas Oracle 10g

Linha do tempo do RDBMS Oracle

1977 – Larry Ellison, Bob Miner, Ed Oates e Bruce Scott formam a SDL. Larry e Bob foram parceiros em um projeto da CIA apelidado de “Oracle”. Bob e Bruce começam a trabalhar no banco de dados. 1978 – A CIA é o primeiro cliente, embora o produto ainda não tenha sido lançado comercialmente. A SDL muda seu nome para Relational Software Inc. (RSI). 1979 – A RSI lança sua primeira versão comercial, a versão 2 do banco de dados escrito em linguagem Assembler. Não foi lançada uma versão 1 por medo de as pessoas não comprarem uma primeira versão de software. A primeira versão comercial do software é vendida à Base da Força Aérea americana. Esse é o primeiro RDBMS comercial no mercado. 1981 – A primeira ferramenta, Interactive Application Facility (IAF), que é um predecessor da futura ferramenta SQL*Forms do Oracle, é criada. 1982 – A RSI muda seu nome para Oracle Systems Corporation (OSC) e depois

O Oracle é composto por 3 tipos de arquivos que são fisicamente salvos em disco:

Dados (data files)

Controle (control files)

Log (redo log files)

E também pelos arquivos :

Parâmetros (parameter file)

Senha (Password file)

Data files – Contém todos os dados do banco. Estruturas lógicas, tabelas, índices e outros objetos são armazenados nestes arquivos.

Page 10: Aulas Oracle 10g

Control files – Arquivos que armazenam informações sobre as estruturas físicas do banco de dados (nome dos demais arquivos, localização, integridade de armazenamento dos dados, controle de sequencia de operações,etc...).

Redo log files – Arquivos que guardam todas as alterações efetuadas nos dados das tabelas e são utilizados para recuperação destas informações quando necessário.

Parameter file – O Oracle para inicializar uma instância, lê o arquivo de parâmetros e coleta todas as informações inicias para começar a trabalhar (espaço de memoria, localização padrão dos arquivos de dados, número máximo de sessöes permititas, etc..).

Instância Oracle : A cada inicialização do banco Oracle, parte da memória do computador é alocada para a SGA (System Global Area) e processos Oracle de segundo plano (Background Process) são inicializados, visando controlar o banco.

Então uma Instância Oracle (Instance) é o conjunto da SGA (buffers de memória) + processos Oracle de segundo plano (Background), que juntos oferecem aos vários usuários o acesso ao banco de dados.

Existe um banco de dados para cada instancia e é possível criar em um mesmo equipamento mais de uma instancia, sendo, por exemplo, uma para conter um banco de dados de produção e outra para conter o banco de dados de teste.

Neste caso, haverá processos sendo executados em background específicos para cada instancia e uma área de memória independente utilizada em cada instancia.

Page 11: Aulas Oracle 10g

Sobre as estruturas de armazenamento de banco de dados  

A estrutura de armazenamento do Oracle Database 10g Express Edition se divide em Estrutura Lógica e Estrutura Física, como demonstra a imagem abaixo :  

Page 12: Aulas Oracle 10g

 Database

 O Database é o conjunto de estruturas lógicas e físicas que contém todos os dados da sua aplicação. O banco de dados também contém estruturas de controle necessárias para iniciar sua operação. Todas essas estruturas serão detalhadas a seguir e estão representadas na figura acima.

A instância do Oracle Database XE (que consiste do Oracle Database XE processo de retaguarda e a memória alocada) trabalha com um database único.

No lugar de permitir a criação de múltiplos databases  para acomodar diferentes aplicações o Oracle Database XE usa um único database  e suporta a criação de múltiplas aplicações permitindo a você separar os dados em diferentes schemas ou diferentes instâncias.

Tablespaces

Um database é composto de uma ou mais tablespaces.

Uma tablespace é um conjunto de um ou mais arquivos físicos (datafiles ou tempfiles) sendo a tablespace a estrutura primária de gerenciamento de armazenamento de um database.

Datafiles e tempfiles

Datafiles são arquivos do sistema que armazenam dados do database. Estes dados são gravados no arquivo em um formato proprietário da Oracle  e não conseguem ser lidos por outros programas que não seja o Oracle Database XE.

Tempfiles são arquivos especiais do Oracle que estão associados somente a tablespaces temporárias. Temporary tablespaces fornecem uma área de trabalho para processar queries(consultas).

 

Page 13: Aulas Oracle 10g

 

Arquivo de controle

O arquivo de controle (control file) é um arquivo binário que rastreia o nome e as localizações dos componentes físicos do banco de dados, mantém também o controle de informações, incluindo registros de todos os backups e arquivos relacionados.

Ele é essencial para o funcionamento do banco de dados.

 

Arquivo de parâmetros do servidor (Server parameter file)

O arquivo de parâmetro do servidor (SPFILE) contém os parâmetros necessários para o Oracle Database XE iniciar e determinar a configuração dos recursos do servidor.

Não tente editar este arquivo com um editor de texto ele é um arquivo binário.

Você pode mudar os parâmetros deste arquivo utilizando o comando ALTER SYSTEM no SQL Command Line (SQL Plus).

 

Arquivo de senhas

O Oracle Database XE usa o arquivo de senhas para autenticar os seus usuários.  

Este arquivo é automaticamente criado quando você instala o Oracle Database XE ao contrário de outras estruturas do banco de dado o arquivo de senha não é backupeado para  a área de flash recovery.

 

 

Page 14: Aulas Oracle 10g

 

Estruturas relacionadas à recuperação na Flash Recovery Area

A flash recovery area é essencial para a proteção de dados do Oracle Database Express Edition.

Esta área é uma pasta diferente da pasta do banco de dados onde às estruturas relacionadas à recuperação dos dados são armazenadas. Estas estruturas incluem:

» Backups dos arquivos físicos do banco de dados (datafiles, control files e server parameters file (SPFILE))

Observação importante: Os arquivos de backups do Oracle Database e os arquivos  de recuperação visam a proteção dos arquivos físicos do banco de dados.

Backups são armazenadas em coleções de objetos chamadas backup sets. Um backup set consiste em um conjunto  de pedaços de backup armazenados em um formato proprietário e que somente pode ser acessado pelo Oracle Database.

» Logs de redo

O online redo log files gravam todas as mudanças do banco de dados. Eles podem ser usados para a recuperação dos dados no caso de um evento de falha ocorrer.

» Redo logs arquivos

Se você ativar o arquivamento do log de arquivos de redo, os arquivos de redo logs que forem preenchidos são copiados para a flash recovery area antes de serem reusados. Os arquivos on line e os arquivos de log arquivados possuem todos os registros do banco de dados que foram atualizados desde o último backup.

 

O banco de dados gerencia automaticamente todo o conteúdo do flash recovery area. Você não precisa manipular os arquivos da flash recovery area utilizando comandos do sistema operacional.

 

Page 15: Aulas Oracle 10g

TabbleSpaces Internas do Oracle:  

 

 

 

 

Page 16: Aulas Oracle 10g

Iniciando o Oracle 10g Database Express Edition

O Oracle 10g Database Express Edition (Oracle Database XE) inicia imediatamente após o sistema operacional no qual ele foi instalado seja iniciado. Então não  há necessidade de iniciar o Oracle Database XE, exceto se previamente você parou os serviços do Oracle Database XE.

 Você pode iniciar os serviços do Oracle Database XE através do Desktop ou através da linha de comando utilizando o SQL Plus.

Para iniciar os serviços usando através do desktop:

- Faça sua autenticação no computador Windows onde esta instalado o Oracle Database XE com um usuário que tenha permissão de administrador.

- Clique no botão Iniciar em seguida

clique em  Programas ou em Todos os programas,

clique em Oracle Database 10g Express Edition e

selecione Start Database.

Page 17: Aulas Oracle 10g

Parando banco de dados

O Oracle Database 10g Express Edition para automaticamente quando você desliga o computador que ele esta instalado.

Antes de encerrar os serviços do Oracle Database 10g Express Edition tenha certeza que todos os trabalhos foram finalizados e todos os usuários encontram-se desconectados do banco de dados.

Se ainda houver usuários conectados ou aplicações sendo executadas no Oracle Database 10g Express Edition o banco de dados executará as seguintes ações antes de ser desligado:

» Nenhuma nova conexão será permitida e não será permitido que se inicie nenhuma nova transação.

» Todas as transações que não tiverem sido encerradas serão desfeitas, ou seja, transações que ainda não tiverem sido “commitadas” serão “rollbackeadas” :(

» Aplicações e usuários serão imediatamente desconectados

 

Parando o banco de dados do desktop

Faça sua autenticação no computador Windows onde esta instalado o Oracle Database XE com um usuário que tenha permissão de administrador.

Clique no botão Iniciar em seguida

clique em  Programas ou em Todos os programas,

clique em Oracle Database 10g Express Edition e

selecione Stop Database.

Page 18: Aulas Oracle 10g

Acessando o ORACLE pela Database Home Page

 

O Oracle Database Express Edition possui uma interface baseada em navegadores web que permite ao usuário administrar o banco de dados, executar queries, criar aplicações Web e muito mais. O ponto de partida é a Database Home Page :

 

Os ícones da Database Home Page têm as funções:

Administration – Gerenciar as contas de usuários, Gerenciar a memória, capacidade de armazenamento e conexões de rede, monitorar as atividades do banco de dados e visualizar as        informações de configuração.

 

Object Browser – Visualizar, criar, modificar e apagar objetos de banco de dados. Usar o PL/SQL editor para editar e compilar

Page 19: Aulas Oracle 10g

pacotes, procedures, funções e triggers tendo a vantagem de usufruir de um relatório de erros.

SQL - Acesso as seguintes ferramentas SQL:

- SQL Commands – Executar comandos SQL e blocos anônimos de PL/SQL. Rodar os scripts e salvar as queries.

- SQL Scripts - Criar, editar, visualizar, executar e apagar arquivos de scripts. Realizar o upload e o download de scripts para o seu sistema de arquivos local.

Query Builder – Com pouco ou nenhum conhecimento SQL você poderá criar queries utilizando uma interface gráfica. Visualizar resultados formatados desta queries e salvá-las.

Utilities – Carregar e descarregar dados, gerar DDL, visualizar objetos de relatórios e restaurar objetos apagados do banco de dados.

Observação importante: Quando você logar do Database Home Page com um usuário diferente do SYSTEM um outro ícone chamado Application Builder será exibido :

Application Builder permite que você crie aplicações Oracle no Database Express Edition.

Para acessar a Database Home Page :

No Windows:

Clique no botão Iniciar,

clique em Programas (ou Todos os programas),

clique em Oracle Database 10g Express Edition e

selecione Go To Database Home Page.

NA UTRAMIG : Endereço Acesso Oracle na Rede

http://10.14.99.123:8080/apex/f?p=4550:9:729455589415572::NO:::

Page 20: Aulas Oracle 10g

Navegando na interface gráfica

Navegando usando ícones e menus

É possível navegar na interface gráfica do Oracle Database Express Edition clicando nos grandes ícones mostrados na Database Home Page ou nas outras páginas. Quando você usa estes ícones você tem duas opções:

Clicando nos ícones -  Clique no ícone para ir a página indicada pelo nome do ícone.

Selecionando no menu de ícones – Clique na seta para baixo ao lado do menu para ver as opções de menu e então definir para onde deseja ir.

 Este é o método mais direto de navegação.

 

 Navegando utilizando os links localizadores

Os localizadores aparecem nas páginas do Oracle 10g . Cada localizador mostra a página atual e o caminho percorrido. No exemplo,o usuário percorreu Home, SQL e está em Query Builder.

 

Monitorando o espaço utilizado

Page 21: Aulas Oracle 10g

 

Como o Oracle Database Express Edition (Oracle Database XE) é limitado a 4 gigabytes (GB) para dados do usuário é muito importante que você monitore o total de espaço utlizado.

Para monitorar o espaço utilizado:

 

1. Acesse a página Database Home Page

 

2. Clique no Usage Monitor do lado direito da página e examine a Storage bar graphic.

 

Observação importante: Se o Usage Monitor não aparecer no canto superior da página, clique em Customize na parte superior direita da página para ativar o Usage Monitor.

Page 22: Aulas Oracle 10g

Se for necessário desbloquear usuário hr :

- Fazer login como system

- Digitar : alter user hr account unlock;

- Será pedida nova senha

- Informar hr e confirmar hr novamente

NA UTRAMIG : Endereço Acesso Oracle na Rede

http://10.14.99.123:8080/apex/f?p=4550:9:729455589415572::NO:::

Page 23: Aulas Oracle 10g

Structured Query Language (SQL)

DDL (DATA DEFINITION LANGUAGE): é a parte da linguagem SQL em que os comandos são responsáveis pela criação de objetos, como tabelas, índices, visões etc. Entre esses comandos podemos citar Create Table, Create View, Create Index.

DML (DATA MANIPULATION LANGUAGE): é a parte da linguagem SQL onde os comandos executam consultas e alterações nos dados. Entre os comandos estão SELECT, INSERT, UPDATE, DELETE.

Comando SELECT :

SELECT <campo> FROM <tabela> WHERE <condição>ORDER BY <campo/critério>

Exemplos :

- select nome from funcionários;- select cargo from funcionários;- select nome,cargo from funcionários;- select * from funcionários;- select * from funcionários where escolaridade = ‘Mestre’;- select * from funcionários where escolaridade = ‘Mestre’ and cargo <> ‘Analista de Negócios’;- select * from funcionários order by nome;- select * from funcionários order by salário;

Page 24: Aulas Oracle 10g
Page 25: Aulas Oracle 10g
Page 26: Aulas Oracle 10g
Page 27: Aulas Oracle 10g

Inner JoinInner Join

Junção que une as linhas, baseando-se em condições de ligação e, somente retornaráas linhas que realmente se combinam entre si.

Exemplo: junção entre departamento e empregado.◦Somente os empregados que possuem

departamentos aparecerão no resultado.

Page 28: Aulas Oracle 10g

Inner JoinInner Join

EMP_ID NOME DEP_ID DEPT_ID DEPARTAMENTO

120 João 10 10 Entrega

230 Maria 10 10 Entrega

DEPARTAMENTOSEMPREGADOS

Daniel154

10Maria230

10João120

DEP_IDNOMEEMP_ID

XJOIN

Resultado

DEPT_ID DEPARTAMENTO

10 Entrega

20 RH

SELECT D.DEPARTMENT_NAME, E.FIRST_NAME, E.LAST_NAME FROM DEPARTMENTS D JOIN EMPLOYEES E ON D.MANAGER_ID = E.EMPLOYEE_ID;

-- ou

SELECT D.DEPARTMENT_NAME, E.FIRST_NAME, E.LAST_NAME FROM DEPARTMENTS D INNER JOIN EMPLOYEES E ON D.MANAGER_ID = E.EMPLOYEE_ID;

-- ou

SELECT D.DEPARTMENT_NAME, E.FIRST_NAME, E.LAST_NAME FROM DEPARTMENTS D, EMPLOYEES E WHERE D.MANAGER_ID = E.EMPLOYEE_ID;

Page 29: Aulas Oracle 10g

Join com mais de duas tabelas

EMP_ID NOME MGR_ID DEP_ID EMP_ID NOME MGR_ID DEP_ID DEPT_ID DEPARTAMENTO

230 Maria 120 10 120 João 10 10 Entrega

Resultado

EMPREGADOSEMPREGADOS

X

JOIN

EMP_ID NOME MGR_ID DEP_ID

120 João 10

230 Maria 120 10

154 Daniel 10

EMP_ID NOME MGR_ID DEP_ID

120 João 10

230 Maria 120 10

154 Daniel 10

DEPARTAMENTOS

RH20

Entrega10

DEPARTAMENTODEPT_ID

Inner JoinInner Join

Page 30: Aulas Oracle 10g

Left JoinLeft Join

Todas as linhas da tabela àesquerda (no select), serão recuperadas.

As linhas que possuírem equivalencia serão unidas da mesma forma que acontece no join.

Entretanto as linhas que não possuírem equivalência também são retornadas, mas com as colunas da outra tabela nulas.

Page 31: Aulas Oracle 10g

Left JoinLeft Join

DEPARTAMENTOSEMPREGADOS

Daniel154

10Maria230

10João120

DEP_IDNOMEEMP_ID

X

LEFT OUTER JOIN

Resultado

RH20

Entrega10

DEPARTAMENTODEPT_ID

EMP_ID NOME DEP_ID DEPT_ID DEPARTAMENTO

120 João 10 10 Entrega

230 Maria 10 10 Entrega

154 Daniel

-- Exemplo de left join

SELECT D.DEPARTMENT_NAME, E.FIRST_NAME, E.LAST_NAME FROM DEPARTMENTS D LEFT JOIN EMPLOYEES E ON D.MANAGER_ID = E.EMPLOYEE_ID;

--ou

SELECT D.DEPARTMENT_NAME, E.FIRST_NAME, E.LAST_NAME FROM DEPARTMENTS D, EMPLOYEES E WHERE D.MANAGER_ID = E.EMPLOYEE_ID(+);

Page 32: Aulas Oracle 10g

RightRight JoinJoinTodas as linhas da tabela àdireita(no

select), serão recuperadas. (inverso do leftjoin).

As linhas que possuírem equivalenciaserão unidas da mesma forma que acontece no join.

Mas as linhas que não possuírem equivalência também são retornadas, mas com as colunas da outra tabela nulas.

Page 33: Aulas Oracle 10g

RightRight JoinJoinDEPARTAMENTOSEMPREGADOS

Daniel154

10Maria230

10João120

DEP_IDNOMEEMP_ID

XRIGHT OUTER JOIN

Resultado

RH20

Entrega10

DEPARTAMENTODEPT_ID

EMP_ID NOME DEP_ID DEPT_ID DEPARTAMENTO

120 João 10 10 Entrega

230 Maria 10 10 Entrega

20 RH

-- Exemplo de right join

SELECT D.DEPARTMENT_NAME, E.FIRST_NAME, E.LAST_NAME FROM DEPARTMENTS D RIGHT JOIN EMPLOYEES E ON D.MANAGER_ID = E.EMPLOYEE_ID;

--ou

SELECT D.DEPARTMENT_NAME, E.FIRST_NAME, E.LAST_NAME FROM DEPARTMENTS D, EMPLOYEES E WHERE D.MANAGER_ID(+) = E.EMPLOYEE_ID;

Page 34: Aulas Oracle 10g

FullFull JoinJoin

Todas as linhas da consulta serão retornadas.

As linhas que possuírem equivalência serão unidas e as linhas que não possuírem equivalência serão retornadas com a outra parte da junção vazia.

Full joinexecuta o left joine o right joinao mesmo tempo.

Page 35: Aulas Oracle 10g

FullFull JoinJoin

Resultado

DEPARTAMENTOSEMPREGADOS

Daniel154

10Maria230

10João120

DEP_IDNOMEEMP_ID

XFULL OUTER JOIN

RH20

Entrega10

DEPARTAMENTODEPT_ID

EMP_ID NOME DEP_ID DEPT_ID DEPARTAMENTO

120 João 10 10 Entrega

230 Maria 10 10 Entrega

154 Daniel

20 RH

SELECT D.DEPARTMENT_NAME, E.FIRST_NAME, E.LAST_NAME FROM DEPARTMENTS D FULL JOIN EMPLOYEES E ON D.MANAGER_ID = E.EMPLOYEE_ID;

Page 36: Aulas Oracle 10g

CrossCross JoinJoin (Produto Cartesiano)(Produto Cartesiano)

O Cross join realiza o produto cartesiano, ou seja, realiza a junção de todas as linhas de uma tabela com todas as linhas da outra, sem usar uma coluna para junção.

O número de linhas éo total de linhas de uma tabela da junção multiplicado pelo total de linhas da outra tabela da junção.

Page 37: Aulas Oracle 10g

Relacionamento entre tabelas – Cross Join

EMP_ID NOME DEP_ID DEPT_ID DEPARTAMENTO

120 João 10 10 Entrega

230 Maria 10 10 Entrega

154 Daniel 10 Entrega

120 João 10 20 RH

230 Maria 10 20 RH

153 Daniel 20 RH

DEPARTAMENTOSEMPREGADOS

Daniel154

10Maria230

10João120

DEP_IDNOMEEMP_ID

XCROSS JOIN

Resultado

DEPT_ID DEPARTAMENTO

10 Entrega

20 RH

CrossCross JoinJoin (Produto Cartesiano)(Produto Cartesiano)

-- Exemplo de cross join

SELECT D.DEPARTMENT_NAME, E.FIRST_NAME, E.LAST_NAME FROM DEPARTMENTS D CROSS JOIN EMPLOYEES E;

--ou

SELECT D.DEPARTMENT_NAME, E.FIRST_NAME, E.LAST_NAME FROM DEPARTMENTS D, EMPLOYEES E;

Page 38: Aulas Oracle 10g

CapCapíítulo 04tulo 04

Consulta SQL – Subquery

Page 39: Aulas Oracle 10g
Page 40: Aulas Oracle 10g
Page 41: Aulas Oracle 10g
Page 42: Aulas Oracle 10g
Page 43: Aulas Oracle 10g
Page 44: Aulas Oracle 10g
Page 45: Aulas Oracle 10g

SEQUÊNCIAS

As seqüências são objetos especiais de banco de dados usados para gerar valores inteiros de acordo com regras definidas quando a seqüência foi criada.

As seqüências de banco de dados geralmente são usadas para preencher as chaves primárias de uma tabela.

Detalhes da sequência DEPARTMENT_SEQ

AlterarEliminar

Valor Mínimo 1

Valor Máximo 9990

Incrementar Por 10

Flag de Círculo N

Flag de Ordem N

Tamanho do Cache 0

Último Número 280

Detalhes da Sequência EMPLOYEES-SEQ

AlterarEliminar

Valor Mínimo 1

Valor Máximo 999999999999999999999999999

Incrementar Por 1

Flag de Círculo N

Flag de Ordem N

Tamanho do Cache 0

Último Número 207

CRIAÇÃO DE SEQUÊNCIAS

Page 46: Aulas Oracle 10g

- Fazer login no Oracle utilizando :

Nome de Usuário = Senha = A+Matrícula do aluno

- Entrar em ‘Browser de Objetos’

- Entrar em Criar ==> Sequência

CRIAÇÃO DE TABELAS

Page 47: Aulas Oracle 10g

- Fazer login no Oracle utilizando :

Nome de Usuário = Senha = A+Matrícula do aluno

- Entrar em ‘Browser de Objetos’

- Entrar em Criar ==> Tabela

1. Informar o nome da tabela (não pode conter espaços ou iniciar com números ou undescore)

2. Se for necessário, clickar para preservar a diferença entre maiús./minúsculas

3. Informar os detalhes para cada coluna : a. Informar o nome da coluna

b. Selecionar o tipo da coluna ( NUMBER, VARCHAR2, DATE, TIMESTAMP, CHAR, CLOB, BLOB, NVARCHAR2, BINARY_FLOAT, e BINARY_DOUBLE

c. Entrar com as seguintes informações, quando necessário :

o Precisão

o Escala

b. Para uma coluna não aceitar nulo, marcar ‘Não Nulo’

Para mudar a ordem das colunas, usar as setas para cima/baixo .

Para acrescentar mais colunas, clickar em ‘Adicionar Colunas’

c. Clickar em ‘Próximo’ para definir as chaves da tabela

Page 48: Aulas Oracle 10g

2. Para Chave Primária selecione uma das opções :

. Não há chave primária - Não preenche a chave primária simples

. Preenchido por uma nova sequência - Cria a chave primária e cria um

trigger e a nova sequência. A nova sequência é usada no trigger para popular a

coluna definida como chave. Só pode ser formada por uma única coluna.

. Preenchido por sequência já existente - Cria a chave primária e cria um

trigger. A sequência selecionada é usada no trigger para popular a coluna

definida como chave primária. Só pode ser formada por uma única coluna

. Não preenchido - Define uma chave primária mas que não tem os valores

automaticamente populados por uma sequência dentro de um trigger. Com

esta opção é possível definir uma chave primária concatenada (composta por

mais de um atributo).

Clickar em ‘Próximo’ para definir as chaves estrangeiras da tabela

Uma chave estrangeira define um relacionamento entre uma coluna (ou colunas) em uma tabela e uma chave em outra tabela.

Page 49: Aulas Oracle 10g

Para adicionar chave estrangeira :

Uma chave estrangeira estabelece um relacionamento entre colunas de uma tabela e uma chave primária de outra tabela.

Para definir uma chave estrangeira:

Selecione uma ou mais colunas e clique em Adicionar.

Selecione o nome da tabela que tem a chave primária correspondente.

Selecione as colunas de chave primária correspondentes e clique no ícone Adicionar.

Selecione Não Permitir Deleção para bloquear a deleção de linhas da tabela referenciada quando houver linhas dependentes nesta tabela.

Selecione Deleção em Cascata para deletar as linhas dependentes desta tabela quando a linha da tabela mãe correspondente for deletada.

Selecione Definir como Nulo ao Deletar para definir valores de coluna de chave estrangeira como nulos quando a linha da tabela mãe correspondente for deletada.

Clique em Adicionar.

Você pode definir mais de uma chave estrangeira nesta página, mas somente as exibidas no relatório, na parte superior da página, serão incluídas na instrução create table resultante.

Clickar em ‘Próximo’ para definir as constraints (restrições) da tabela

É possível criar várias constraints , mas é preciso adicioná-las separadamente.

Page 50: Aulas Oracle 10g

Para adicionar uma constraint

É possível criar várias constraints de cada tipo (Verificação ou Exclusiva), mas deve ser Adicionada uma constraint por vez.

Apenas as constraints exibidas no relatório, na parte superior da página, serão incluídas na instrução de create table resultante.

Uma constraint de verificação é uma verificação de validação para uma ou mais colunas da tabela. Nenhum valor pode ser inserido ou atualizado em uma tabela que viola uma constraint de verificação ativada. É preciso informar a expressão que deverá ser verificada como :

Flag in (‘S’, ‘N’)

STATUS IN ('OPEN','CLOSED','PENDING')

SAL IS NOT NULL OR COMM IS NOT NULL

LENGTH(ENAME) >= 6

SAL > 0

SAL + NVL(COMM,0) > 1000

Uma constraint exclusiva designa uma coluna ou uma combinação de colunas como chave exclusiva. Para satisfazer uma constraint exclusiva, duas linhas de uma tabela não podem ter os mesmos valores para as colunas especificadas. É preciso selecionar as colunas que serão exclusivas.

Page 51: Aulas Oracle 10g

CRIAÇÃO DE ÍNDICES

- Fazer login no Oracle utilizando :

Nome de Usuário = Senha = A+Matrícula do aluno

- Entrar em ‘Browser de Objetos’

- Entrar em Criar ==> Índice

Selecione a tabela e selecione o tipo de índice a ser criado.

Os tipos de indices são :

Normal – Índice formado por atributos da tabela Texto – Cria um índice de texto

Escolha uma ou mais colunas que vão formar o índice.