oracle 11g - fundamentos
TRANSCRIPT
SQLStructured Query Language
I Anos 70I Padrao BD RelacionaisI 1986 American National
Standards Institute (ANSI1)
Atualmente...Estamos no padrao ANSI3
1 / 27
DDLData Definition Language DDL
O que e?Instrucoes que criam os objetos do banco de dados
Exemplos...
CREATE TABLE, ALTER TABLE, DROP TABLE
2 / 27
DMLData Manipulation Language
O que e?Instrucoes que manipulam (acesso e armazenamento) os dados
Exemplos...
SELECT, INSERT , DELETE , UPDATE
3 / 27
DCLData Control Language
O que e?Instrucoes que controlam o acesso aos dados
I Grupos: controle de transacao, sessao e sistema
Exemplos...
COMMIT, ROLLBACK, GRANT, REVOKE
4 / 27
Oracle
I Fundada em 1977 formada por Larry Ellison, Bob Miner, EdOates e Bruce Scott, chamada de Software DevelopmentLaboratories (SDL)
Larry e Bob vieram da Ampex, trabalhavam em um projeto da CIAchamado de Oracle
I Em 1978 mudou o nome para Relational Software Inc (RSI)
5 / 27
Oracle
I Em 1979 surgiu a primeira versao comercial, vendida a ForcaAerea Americana
I Primeiro RDBMS comercial do mercadoI Em 1982 mudou o nome para Oracle Systems Corporation (OSC)
Posteriormente simplificada para Oracle Corporation
6 / 27
Oracle 11g XEOracle Database 11g Express Edition
Express EditionOracle XE e uma versao gratuita oferecida pela Oracle, livre para de-senvolver e distribuir
I Entretanto, possui as seguintes limitacoes:I 1 por servidorI 1 CPUI Usa apenas 1GB/RAMI 11 GB de espaco em disco
7 / 27
SQL Developer
SQL Developer is a free integrated development environment that sim-plifies the development and management of Oracle Database in bothtraditional and Cloud deployments. SQL Developer offers completeend-to-end development of your PL/SQL applications, a worksheet forrunning queries and scripts, a DBA console for managing the database,a reports interface, a complete data modeling solution, and a migrationplatform for moving your 3rd party databases to Oracle”
8 / 27
Instalacao do Banco / SQL Developer
I OracleXE112 Win64I Sqldeveloper-4.1.0.19.07
9 / 27
Acessando o Banco
I Quando instalamos o Oracle, os usuarios Sys e System saocriados com perfil DBA (Role)
Privilegio AdministrativosExistem dois privilegios de sistema especiais, SYSDBA e SYSOPER
I Conecte com o usuario System
10 / 27
Tablespace
Subdivisao logica de um banco de dados
I Especifica a localizacao fısica do armazenamento em datafilesI System e a primeira tablespace criada pelo Oracle
11 / 27
TablespaceCriando o tablespace disciplina
CREATE TABLESPACE disciplina LOGGING DATAFILE’C:\oraclexe\app\oracle\oradata\XE\disciplina.dfb’SIZE 1024mAUTOEXTEND ON NEXT 500mEXTENT MANAGEMENT LOCAL;
12 / 27
UsuarioCriando o usuario aluno
CREATE USER alunoIDENTIFIED BY alunoDEFAULT TABLESPACE disciplinaQUOTA UNLIMITED ON disciplina;
Usuario e Schema = Confusao!
I Um schema e uma colecao de objetos de um usuarioI Um usuario esta relacionado a um schemaI Quando o Oracle cria um usuario, automaticamente tambem cria
um schema com o mesmo nome do usuario
13 / 27
Permissao de UsuarioDefinindo as permissoes do usuario aluno
GRANT CREATE SESSION, ALTER SESSION, CREATE TABLE,CREATE PROCEDURE, CREATE VIEW,CREATE MATERIALIZED VIEW, CREATE TRIGGER,CREATE SEQUENCE, CREATE ANY DIRECTORY,CREATE TYPE, CREATE SYNONYM,DEBUG CONNECT SESSION,DEBUG ANY PROCEDURE TO aluno;
14 / 27
Parametros do BancoVisualizando as configuracoes do banco de dados
SELECT * FROM nls_database_parameters;
15 / 27
Importando dados
DROP TABLE IF EXISTSO oracle nao possui uma funcao nativa para a funcionalidade de deletaruma tabela, caso ela exista...
CREATE OR REPLACE PROCEDURE dropTable(tabela IN VARCHAR2)IS
BEGINFOR i IN (SELECT NULL FROM user_tables WHERE table_name = UPPER(tabela)) LOOP
EXECUTE IMMEDIATE ’DROP TABLE ’ || tabela || ’ CASCADE CONSTRAINTS’;END LOOP;
END;
16 / 27
Importando dados
I Analisando tabelas.sql...I Analisando inserts.sql...
17 / 27
Importando dados
I Conectar com o usuario criado ’aluno’I Executar os scripts seguindo a ordem:
I tabelas.sqlI inserts.sql
18 / 27
Transacao
O que e?Permite englobar varias acoes em uma unica operacao tudo ou nada
SET TRANSACTION, COMMIT OU ROLLBACK
19 / 27
Executando um SQL
Como o oracle executa uma consulta SQL?
PARSE, EXECUTE e FETCH
20 / 27
Executando um SQLPARSE
I Valida a sintaxe (Syntax Parse)I Verifica se a consulta ja foi carregada na memoria (Shared Pool)
Cenario 1I Se ja foi carregada, o plano de execucao ja esta feitoI Reutiliza o plano de execucao
21 / 27
Executando um SQLPARSE
I Valida a sintaxe (Syntax Parse)I Verifica se a consulta ja foi carregada na memoria (Shared Pool)
Cenario 2I Se nao foi carregada, verifica o dicionario de dados, checando a
existencia das tabelas/colunas/permissoes de acesso dos objetosI Traca o plano de execucao (Parse Tree)I Coloca o plano de execucao na memoria (Shared Pool)
22 / 27
Executando um SQLEXECUTE
I Aplica o plano de execucaoI Efetua a leitura dos dados (em disco ou memoria)I Verifica as regras de integridade (Constraints)I Executa
23 / 27
Executando um SQLFETCH
I Retorna as informacoes
24 / 27
BancoPais (sigla, nome)Cidade (codigo, nome, UF, pais) pais referencia Pais (sigla)
Cliente (codigo, nome, tipo, contrato, cargo, endereco, cidade, cep, fone, fax, obs) cidadereferencia Cidade (codigo)
Funcao (codigo, nome, gratif)
Setor (sigla, nome, ramal, chefe)
Funcionario (codigo, nome, sexo, rg, cpf, datanasc, naturalidade, dataadm, funcao,cidade, setor, ...) naturalidade referencia Cidade (codigo) funcao referencia Funcao(codigo) cidade referencia Cidade (codigo) setor referencia Setor (sigla)
Tipo (codigo, nome, descricao)
Pedido (codigo, cliente, vendedor, dataPedido, dataFatura, via, frete) cliente referenciaCliente (codigo) vendedor referencia Funcionario (codigo)
Produto (codigo, nome, descricao, apresent, venda, custo, quantest, estmin, tipo,situacao, status) tipo referencia Tipo (codigo)
Itens (pedido, produto, preco, quant, desconto) pedido referencia Pedido (codigo)produto referencia Produto (codigo)
25 / 27
Exercıcio
1. Crie uma consulta SQL que retorne o codigo e o nome de todosos funcionarios da base de dados
2. Crie uma consulta SQL que retorne o codigo e o nome dosfuncionarios do sexo masculino
3. Crie uma consulta SQL que retorne o codigo e o nome dosprodutos cujo valor de venda e maior do que 500 reais
4. Crie uma consulta SQL que retorne o codigo e o nome doproduto, alem do nome do tipo do produto para todos osprodutos da base de dados
5. Crie uma consulta SQL que retorne o nome do cliente e o nomeda cidade onde o cliente mora, para todos os clientes da base dedados
26 / 27
Bibliografia
Oracle Database XE 11g Release 2Disponıvel em: http://www.oracle.com/technetwork/database/database-technologies/express-edition/overview/ index.html
Database Express Edition Installation GuideDisponıvel em:http://docs.oracle.com/cd/E17781 01/install.112/e18802/toc.htm
Oracle SQL DeveloperDisponıvel em:http://www.oracle.com/technetwork/developer-tools/sql-developer/overview/index-097090.html
27 / 27