oracle 11g - fundamentos

28
Banco de Dados II Fundamentos Oracle Gustavo S´ avio [email protected] 2015.2

Upload: gustavo-savio

Post on 07-Jan-2017

562 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Oracle 11g - Fundamentos

Banco de Dados IIFundamentos Oracle

Gustavo [email protected]

2015.2

Page 2: Oracle 11g - Fundamentos

SQLStructured Query Language

I Anos 70I Padrao BD RelacionaisI 1986 American National

Standards Institute (ANSI1)

Atualmente...Estamos no padrao ANSI3

1 / 27

Page 3: Oracle 11g - Fundamentos

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

Page 4: Oracle 11g - Fundamentos

DMLData Manipulation Language

O que e?Instrucoes que manipulam (acesso e armazenamento) os dados

Exemplos...

SELECT, INSERT , DELETE , UPDATE

3 / 27

Page 5: Oracle 11g - Fundamentos

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

Page 6: Oracle 11g - Fundamentos

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

Page 7: Oracle 11g - Fundamentos

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

Page 8: Oracle 11g - Fundamentos

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

Page 9: Oracle 11g - Fundamentos

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

Page 10: Oracle 11g - Fundamentos

Instalacao do Banco / SQL Developer

I OracleXE112 Win64I Sqldeveloper-4.1.0.19.07

9 / 27

Page 11: Oracle 11g - Fundamentos

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

Page 12: Oracle 11g - Fundamentos

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

Page 13: Oracle 11g - Fundamentos

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

Page 14: Oracle 11g - Fundamentos

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

Page 15: Oracle 11g - Fundamentos

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

Page 16: Oracle 11g - Fundamentos

Parametros do BancoVisualizando as configuracoes do banco de dados

SELECT * FROM nls_database_parameters;

15 / 27

Page 17: Oracle 11g - Fundamentos

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

Page 18: Oracle 11g - Fundamentos

Importando dados

I Analisando tabelas.sql...I Analisando inserts.sql...

17 / 27

Page 19: Oracle 11g - Fundamentos

Importando dados

I Conectar com o usuario criado ’aluno’I Executar os scripts seguindo a ordem:

I tabelas.sqlI inserts.sql

18 / 27

Page 20: Oracle 11g - Fundamentos

Transacao

O que e?Permite englobar varias acoes em uma unica operacao tudo ou nada

SET TRANSACTION, COMMIT OU ROLLBACK

19 / 27

Page 21: Oracle 11g - Fundamentos

Executando um SQL

Como o oracle executa uma consulta SQL?

PARSE, EXECUTE e FETCH

20 / 27

Page 22: Oracle 11g - Fundamentos

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

Page 23: Oracle 11g - Fundamentos

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

Page 24: Oracle 11g - Fundamentos

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

Page 25: Oracle 11g - Fundamentos

Executando um SQLFETCH

I Retorna as informacoes

24 / 27

Page 26: Oracle 11g - Fundamentos

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

Page 27: Oracle 11g - Fundamentos

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

Page 28: Oracle 11g - Fundamentos

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