oracle 11g - fundamentos

Post on 07-Jan-2017

563 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Banco de Dados IIFundamentos Oracle

Gustavo Saviogsoprofessor@gmail.com

2015.2

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

top related