SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Banco de Dados II
Fundamentos Oracle
Gustavo S´avio
gsoprofessor@gmail.com
2015.2
SQL
Structured Query Language
Anos 70
Padr˜ao BD Relacionais
1986 American National
Standards Institute (ANSI1)
Atualmente...
Estamos no padr˜ao ANSI3
1 / 27
DDL
Data Definition Language DDL
O que ´e?
Instruc¸˜oes que criam os objetos do banco de dados
Exemplos...
CREATE TABLE, ALTER TABLE, DROP TABLE
2 / 27
DML
Data Manipulation Language
O que ´e?
Instruc¸˜oes que manipulam (acesso e armazenamento) os dados
Exemplos...
SELECT, INSERT , DELETE , UPDATE
3 / 27
DCL
Data Control Language
O que ´e?
Instruc¸˜oes que controlam o acesso aos dados
Grupos: controle de transac¸˜ao, sess˜ao e sistema
Exemplos...
COMMIT, ROLLBACK, GRANT, REVOKE
4 / 27
Oracle
Fundada em 1977 formada por Larry Ellison, Bob Miner, Ed
Oates e Bruce Scott, chamada de Software Development
Laboratories (SDL)
Larry e Bob vieram da Ampex, trabalhavam em um projeto da CIA
chamado de Oracle
Em 1978 mudou o nome para Relational Software Inc (RSI)
5 / 27
Oracle
Em 1979 surgiu a primeira vers˜ao comercial, vendida `a Forc¸a
A´erea Americana
Primeiro RDBMS comercial do mercado
Em 1982 mudou o nome para Oracle Systems Corporation (OSC)
Posteriormente simplificada para Oracle Corporation
6 / 27
Oracle 11g XE
Oracle Database 11g Express Edition
Express Edition
Oracle XE ´e uma vers˜ao gratuita oferecida pela Oracle, livre para de-
senvolver e distribuir
Entretanto, possui as seguintes limitac¸˜oes:
1 por servidor
1 CPU
Usa apenas 1GB/RAM
11 GB de espac¸o 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 both
traditional and Cloud deployments. SQL Developer offers complete
end-to-end development of your PL/SQL applications, a worksheet for
running queries and scripts, a DBA console for managing the database,
a reports interface, a complete data modeling solution, and a migration
platform for moving your 3rd party databases to Oracle”
8 / 27
Instala¸c˜ao do Banco / SQL Developer
OracleXE112 Win64
Sqldeveloper-4.1.0.19.07
9 / 27
Acessando o Banco
Quando instalamos o Oracle, os usu´arios Sys e System s˜ao
criados com perfil DBA (Role)
Privil´egio Administrativos
Existem dois privil´egios de sistema especiais, SYSDBA e SYSOPER
Conecte com o usu´ario System
10 / 27
Tablespace
Subdivis˜ao l´ogica de um banco de dados
Especifica a localizac¸˜ao f´ısica do armazenamento em datafiles
System ´e a primeira tablespace criada pelo Oracle
11 / 27
Tablespace
Criando o tablespace disciplina
CREATE TABLESPACE disciplina LOGGING DATAFILE
’C:oraclexeapporacleoradataXEdisciplina.dfb’
SIZE 1024m
AUTOEXTEND ON NEXT 500m
EXTENT MANAGEMENT LOCAL;
12 / 27
Usu´ario
Criando o usu´ario aluno
CREATE USER aluno
IDENTIFIED BY aluno
DEFAULT TABLESPACE disciplina
QUOTA UNLIMITED ON disciplina;
Usu´ario e Schema = Confus˜ao!
Um schema ´e uma colec¸˜ao de objetos de um usu´ario
Um usu´ario est´a relacionado a um schema
Quando o Oracle cria um usu´ario, automaticamente tamb´em cria
um schema com o mesmo nome do usu´ario
13 / 27
Permiss˜ao de Usu´ario
Definindo as permiss˜oes do usu´ario 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
Parˆametros do Banco
Visualizando as configura¸c˜oes do banco de dados
SELECT * FROM nls_database_parameters;
15 / 27
Importando dados
DROP TABLE IF EXISTS
O oracle n˜ao possui uma func¸˜ao nativa para a funcionalidade de deletar
uma tabela, caso ela exista...
CREATE OR REPLACE PROCEDURE dropTable(tabela IN VARCHAR2)
IS
BEGIN
FOR 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
Analisando tabelas.sql...
Analisando inserts.sql...
17 / 27
Importando dados
Conectar com o usu´ario criado ’aluno’
Executar os scripts seguindo a ordem:
tabelas.sql
inserts.sql
18 / 27
Transa¸c˜ao
O que ´e?
Permite englobar v´arias ac¸˜oes em uma ´unica operac¸˜ao 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 SQL
PARSE
Valida a sintaxe (Syntax Parse)
Verifica se a consulta j´a foi carregada na mem´oria (Shared Pool)
Cen´ario 1
Se j´a foi carregada, o plano de execuc¸˜ao j´a est´a feito
Reutiliza o plano de execuc¸˜ao
21 / 27
Executando um SQL
PARSE
Valida a sintaxe (Syntax Parse)
Verifica se a consulta j´a foi carregada na mem´oria (Shared Pool)
Cen´ario 2
Se n˜ao foi carregada, verifica o dicion´ario de dados, checando a
existˆencia das tabelas/colunas/permiss˜oes de acesso dos objetos
Trac¸a o plano de execuc¸˜ao (Parse Tree)
Coloca o plano de execuc¸˜ao na mem´oria (Shared Pool)
22 / 27
Executando um SQL
EXECUTE
Aplica o plano de execuc¸˜ao
Efetua a leitura dos dados (em disco ou mem´oria)
Verifica as regras de integridade (Constraints)
Executa
23 / 27
Executando um SQL
FETCH
Retorna as informac¸˜oes
24 / 27
Banco
Pais (sigla, nome)
Cidade (codigo, nome, UF, pais) pais referencia Pais (sigla)
Cliente (codigo, nome, tipo, contrato, cargo, endereco, cidade, cep, fone, fax, obs) cidade
referencia 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 referencia
Cliente (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 c´odigo e o nome de todos
os funcion´arios da base de dados
2. Crie uma consulta SQL que retorne o c´odigo e o nome dos
funcion´arios do sexo masculino
3. Crie uma consulta SQL que retorne o c´odigo e o nome dos
produtos cujo valor de venda ´e maior do que 500 reais
4. Crie uma consulta SQL que retorne o c´odigo e o nome do
produto, al´em do nome do tipo do produto para todos os
produtos da base de dados
5. Crie uma consulta SQL que retorne o nome do cliente e o nome
da cidade onde o cliente mora, para todos os clientes da base de
dados
26 / 27
Bibliografia
Oracle Database XE 11g Release 2
Dispon´ıvel em: http://www.oracle.com/technetwork/database/
database-technologies/express-edition/overview/ index.html
Database Express Edition Installation Guide
Dispon´ıvel em:
http://docs.oracle.com/cd/E17781 01/install.112/
e18802/toc.htm
Oracle SQL Developer
Dispon´ıvel em:
http://www.oracle.com/technetwork/developer-tools/
sql-developer/overview/index-097090.html
27 / 27

Mais conteúdo relacionado

Mais procurados

Comandos DDL para o MySQL
Comandos DDL para o MySQLComandos DDL para o MySQL
Comandos DDL para o MySQLArley Rodrigues
 
Funcionalidades Oracle
Funcionalidades OracleFuncionalidades Oracle
Funcionalidades Oracleharlycarreiro
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoRangel Javier
 
Apresentação Oracle SGBD
Apresentação Oracle SGBDApresentação Oracle SGBD
Apresentação Oracle SGBDDenis Vieira
 
Sql - Introdução ao mysql
Sql - Introdução ao mysqlSql - Introdução ao mysql
Sql - Introdução ao mysqlArley Rodrigues
 
Apostila Curso Php My Sql(Portugues)
Apostila Curso Php My Sql(Portugues)Apostila Curso Php My Sql(Portugues)
Apostila Curso Php My Sql(Portugues)guestcc491
 
Banco de dados aula 4
Banco de dados aula 4Banco de dados aula 4
Banco de dados aula 4Ed W. Jr
 
Intro Arquitetura Oracle
Intro Arquitetura OracleIntro Arquitetura Oracle
Intro Arquitetura OraclePablo Garcia
 
Banco de dados oracle
Banco de dados oracleBanco de dados oracle
Banco de dados oracleEduardo Lopes
 
Oracle 11g resumo
Oracle 11g resumoOracle 11g resumo
Oracle 11g resumomarcosgama
 
Apostila de sql server 2008
Apostila de sql server 2008Apostila de sql server 2008
Apostila de sql server 2008marcos0512
 
Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...
Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...
Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...Alex Zaballa
 

Mais procurados (20)

Comandos DDL para o MySQL
Comandos DDL para o MySQLComandos DDL para o MySQL
Comandos DDL para o MySQL
 
A Estrutura da Linguagem SQL
A Estrutura da Linguagem SQLA Estrutura da Linguagem SQL
A Estrutura da Linguagem SQL
 
Funcionalidades Oracle
Funcionalidades OracleFuncionalidades Oracle
Funcionalidades Oracle
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Apresentação Oracle SGBD
Apresentação Oracle SGBDApresentação Oracle SGBD
Apresentação Oracle SGBD
 
Sql - Introdução ao mysql
Sql - Introdução ao mysqlSql - Introdução ao mysql
Sql - Introdução ao mysql
 
Aprofundamento de DDL e DML
Aprofundamento de DDL e DMLAprofundamento de DDL e DML
Aprofundamento de DDL e DML
 
Apostila Curso Php My Sql(Portugues)
Apostila Curso Php My Sql(Portugues)Apostila Curso Php My Sql(Portugues)
Apostila Curso Php My Sql(Portugues)
 
Banco de dados aula 4
Banco de dados aula 4Banco de dados aula 4
Banco de dados aula 4
 
Apostila ib
Apostila ibApostila ib
Apostila ib
 
Aula2 - SQL
Aula2 - SQLAula2 - SQL
Aula2 - SQL
 
Intro Arquitetura Oracle
Intro Arquitetura OracleIntro Arquitetura Oracle
Intro Arquitetura Oracle
 
Orm android
Orm androidOrm android
Orm android
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Apostila Oracle 10g
Apostila Oracle 10gApostila Oracle 10g
Apostila Oracle 10g
 
Banco de dados oracle
Banco de dados oracleBanco de dados oracle
Banco de dados oracle
 
Aula 05 acessando o mysql
Aula 05   acessando o mysqlAula 05   acessando o mysql
Aula 05 acessando o mysql
 
Oracle 11g resumo
Oracle 11g resumoOracle 11g resumo
Oracle 11g resumo
 
Apostila de sql server 2008
Apostila de sql server 2008Apostila de sql server 2008
Apostila de sql server 2008
 
Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...
Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...
Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...
 

Destaque

Slideshre y Flickr
Slideshre y FlickrSlideshre y Flickr
Slideshre y FlickrLola Costa
 
Banco II - PostgreSQL - Funções
Banco II - PostgreSQL - FunçõesBanco II - PostgreSQL - Funções
Banco II - PostgreSQL - FunçõesGustavo Sávio
 
PL/SQL - Conceitos Básicos
PL/SQL - Conceitos BásicosPL/SQL - Conceitos Básicos
PL/SQL - Conceitos BásicosDanilo Braga
 
14100015 introducao-oracle-sqlplsql-vol2-pt
14100015 introducao-oracle-sqlplsql-vol2-pt14100015 introducao-oracle-sqlplsql-vol2-pt
14100015 introducao-oracle-sqlplsql-vol2-ptguest519a5b6
 
Apostila completa-oracle-programando-oracle
Apostila completa-oracle-programando-oracleApostila completa-oracle-programando-oracle
Apostila completa-oracle-programando-oracle79anderson
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLFábio Delboni
 

Destaque (10)

Slideshre y Flickr
Slideshre y FlickrSlideshre y Flickr
Slideshre y Flickr
 
Apostila de sql oracle
Apostila de sql oracleApostila de sql oracle
Apostila de sql oracle
 
Banco II - PostgreSQL - Funções
Banco II - PostgreSQL - FunçõesBanco II - PostgreSQL - Funções
Banco II - PostgreSQL - Funções
 
Oracle 9i curso_completo
Oracle 9i curso_completoOracle 9i curso_completo
Oracle 9i curso_completo
 
PL/SQL - Conceitos Básicos
PL/SQL - Conceitos BásicosPL/SQL - Conceitos Básicos
PL/SQL - Conceitos Básicos
 
14100015 introducao-oracle-sqlplsql-vol2-pt
14100015 introducao-oracle-sqlplsql-vol2-pt14100015 introducao-oracle-sqlplsql-vol2-pt
14100015 introducao-oracle-sqlplsql-vol2-pt
 
SQL Oracle
SQL OracleSQL Oracle
SQL Oracle
 
Apostila completa-oracle-programando-oracle
Apostila completa-oracle-programando-oracleApostila completa-oracle-programando-oracle
Apostila completa-oracle-programando-oracle
 
Exercícios PL/SQL
Exercícios PL/SQLExercícios PL/SQL
Exercícios PL/SQL
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 

Semelhante a BD II Fundamentos Oracle

364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdfQuitriaSilva550
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQlCezar Souza
 
MySQL - Instalação e Alguns comandos de Banco de Dados
MySQL - Instalação e Alguns comandos de Banco de DadosMySQL - Instalação e Alguns comandos de Banco de Dados
MySQL - Instalação e Alguns comandos de Banco de DadosClayton de Almeida Souza
 
6338 111121071604-phpapp01
6338 111121071604-phpapp016338 111121071604-phpapp01
6338 111121071604-phpapp01Gilson Figueredo
 
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Dickson S. Guedes
 
Aula8.pptx
Aula8.pptxAula8.pptx
Aula8.pptxacsme
 
PostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfPostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfArleiEvaristo
 
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6Wagner Bianchi
 
Mapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMMapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMFábio Rehm
 
T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012Rodrigo Ribeiro
 

Semelhante a BD II Fundamentos Oracle (20)

364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQl
 
MySQL - Instalação e Alguns comandos de Banco de Dados
MySQL - Instalação e Alguns comandos de Banco de DadosMySQL - Instalação e Alguns comandos de Banco de Dados
MySQL - Instalação e Alguns comandos de Banco de Dados
 
Bd ii material
Bd ii   materialBd ii   material
Bd ii material
 
Aulas_SQL.pdf
Aulas_SQL.pdfAulas_SQL.pdf
Aulas_SQL.pdf
 
6338 111121071604-phpapp01
6338 111121071604-phpapp016338 111121071604-phpapp01
6338 111121071604-phpapp01
 
Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 
DDD > Experiências
DDD > ExperiênciasDDD > Experiências
DDD > Experiências
 
Introdução ao BD Postgre
Introdução ao BD PostgreIntrodução ao BD Postgre
Introdução ao BD Postgre
 
Bd sql (1)
Bd sql (1)Bd sql (1)
Bd sql (1)
 
Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008
 
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
 
Aula8.pptx
Aula8.pptxAula8.pptx
Aula8.pptx
 
PostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfPostgreSQL-Prático.pdf
PostgreSQL-Prático.pdf
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
 
Apostila Oracle
Apostila OracleApostila Oracle
Apostila Oracle
 
Mapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMMapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORM
 
T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012
 
Acessando o MySql com o Python
Acessando o MySql com o PythonAcessando o MySql com o Python
Acessando o MySql com o Python
 

BD II Fundamentos Oracle

  • 1. Banco de Dados II Fundamentos Oracle Gustavo S´avio gsoprofessor@gmail.com 2015.2
  • 2. SQL Structured Query Language Anos 70 Padr˜ao BD Relacionais 1986 American National Standards Institute (ANSI1) Atualmente... Estamos no padr˜ao ANSI3 1 / 27
  • 3. DDL Data Definition Language DDL O que ´e? Instruc¸˜oes que criam os objetos do banco de dados Exemplos... CREATE TABLE, ALTER TABLE, DROP TABLE 2 / 27
  • 4. DML Data Manipulation Language O que ´e? Instruc¸˜oes que manipulam (acesso e armazenamento) os dados Exemplos... SELECT, INSERT , DELETE , UPDATE 3 / 27
  • 5. DCL Data Control Language O que ´e? Instruc¸˜oes que controlam o acesso aos dados Grupos: controle de transac¸˜ao, sess˜ao e sistema Exemplos... COMMIT, ROLLBACK, GRANT, REVOKE 4 / 27
  • 6. Oracle Fundada em 1977 formada por Larry Ellison, Bob Miner, Ed Oates e Bruce Scott, chamada de Software Development Laboratories (SDL) Larry e Bob vieram da Ampex, trabalhavam em um projeto da CIA chamado de Oracle Em 1978 mudou o nome para Relational Software Inc (RSI) 5 / 27
  • 7. Oracle Em 1979 surgiu a primeira vers˜ao comercial, vendida `a Forc¸a A´erea Americana Primeiro RDBMS comercial do mercado Em 1982 mudou o nome para Oracle Systems Corporation (OSC) Posteriormente simplificada para Oracle Corporation 6 / 27
  • 8. Oracle 11g XE Oracle Database 11g Express Edition Express Edition Oracle XE ´e uma vers˜ao gratuita oferecida pela Oracle, livre para de- senvolver e distribuir Entretanto, possui as seguintes limitac¸˜oes: 1 por servidor 1 CPU Usa apenas 1GB/RAM 11 GB de espac¸o em disco 7 / 27
  • 9. SQL Developer SQL Developer is a free integrated development environment that sim- plifies the development and management of Oracle Database in both traditional and Cloud deployments. SQL Developer offers complete end-to-end development of your PL/SQL applications, a worksheet for running queries and scripts, a DBA console for managing the database, a reports interface, a complete data modeling solution, and a migration platform for moving your 3rd party databases to Oracle” 8 / 27
  • 10. Instala¸c˜ao do Banco / SQL Developer OracleXE112 Win64 Sqldeveloper-4.1.0.19.07 9 / 27
  • 11. Acessando o Banco Quando instalamos o Oracle, os usu´arios Sys e System s˜ao criados com perfil DBA (Role) Privil´egio Administrativos Existem dois privil´egios de sistema especiais, SYSDBA e SYSOPER Conecte com o usu´ario System 10 / 27
  • 12. Tablespace Subdivis˜ao l´ogica de um banco de dados Especifica a localizac¸˜ao f´ısica do armazenamento em datafiles System ´e a primeira tablespace criada pelo Oracle 11 / 27
  • 13. Tablespace Criando o tablespace disciplina CREATE TABLESPACE disciplina LOGGING DATAFILE ’C:oraclexeapporacleoradataXEdisciplina.dfb’ SIZE 1024m AUTOEXTEND ON NEXT 500m EXTENT MANAGEMENT LOCAL; 12 / 27
  • 14. Usu´ario Criando o usu´ario aluno CREATE USER aluno IDENTIFIED BY aluno DEFAULT TABLESPACE disciplina QUOTA UNLIMITED ON disciplina; Usu´ario e Schema = Confus˜ao! Um schema ´e uma colec¸˜ao de objetos de um usu´ario Um usu´ario est´a relacionado a um schema Quando o Oracle cria um usu´ario, automaticamente tamb´em cria um schema com o mesmo nome do usu´ario 13 / 27
  • 15. Permiss˜ao de Usu´ario Definindo as permiss˜oes do usu´ario 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
  • 16. Parˆametros do Banco Visualizando as configura¸c˜oes do banco de dados SELECT * FROM nls_database_parameters; 15 / 27
  • 17. Importando dados DROP TABLE IF EXISTS O oracle n˜ao possui uma func¸˜ao nativa para a funcionalidade de deletar uma tabela, caso ela exista... CREATE OR REPLACE PROCEDURE dropTable(tabela IN VARCHAR2) IS BEGIN FOR 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
  • 19. Importando dados Conectar com o usu´ario criado ’aluno’ Executar os scripts seguindo a ordem: tabelas.sql inserts.sql 18 / 27
  • 20. Transa¸c˜ao O que ´e? Permite englobar v´arias ac¸˜oes em uma ´unica operac¸˜ao tudo ou nada SET TRANSACTION, COMMIT OU ROLLBACK 19 / 27
  • 21. Executando um SQL Como o oracle executa uma consulta SQL? PARSE, EXECUTE e FETCH 20 / 27
  • 22. Executando um SQL PARSE Valida a sintaxe (Syntax Parse) Verifica se a consulta j´a foi carregada na mem´oria (Shared Pool) Cen´ario 1 Se j´a foi carregada, o plano de execuc¸˜ao j´a est´a feito Reutiliza o plano de execuc¸˜ao 21 / 27
  • 23. Executando um SQL PARSE Valida a sintaxe (Syntax Parse) Verifica se a consulta j´a foi carregada na mem´oria (Shared Pool) Cen´ario 2 Se n˜ao foi carregada, verifica o dicion´ario de dados, checando a existˆencia das tabelas/colunas/permiss˜oes de acesso dos objetos Trac¸a o plano de execuc¸˜ao (Parse Tree) Coloca o plano de execuc¸˜ao na mem´oria (Shared Pool) 22 / 27
  • 24. Executando um SQL EXECUTE Aplica o plano de execuc¸˜ao Efetua a leitura dos dados (em disco ou mem´oria) Verifica as regras de integridade (Constraints) Executa 23 / 27
  • 25. Executando um SQL FETCH Retorna as informac¸˜oes 24 / 27
  • 26. Banco Pais (sigla, nome) Cidade (codigo, nome, UF, pais) pais referencia Pais (sigla) Cliente (codigo, nome, tipo, contrato, cargo, endereco, cidade, cep, fone, fax, obs) cidade referencia 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 referencia Cliente (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
  • 27. Exerc´ıcio 1. Crie uma consulta SQL que retorne o c´odigo e o nome de todos os funcion´arios da base de dados 2. Crie uma consulta SQL que retorne o c´odigo e o nome dos funcion´arios do sexo masculino 3. Crie uma consulta SQL que retorne o c´odigo e o nome dos produtos cujo valor de venda ´e maior do que 500 reais 4. Crie uma consulta SQL que retorne o c´odigo e o nome do produto, al´em do nome do tipo do produto para todos os produtos da base de dados 5. Crie uma consulta SQL que retorne o nome do cliente e o nome da cidade onde o cliente mora, para todos os clientes da base de dados 26 / 27
  • 28. Bibliografia Oracle Database XE 11g Release 2 Dispon´ıvel em: http://www.oracle.com/technetwork/database/ database-technologies/express-edition/overview/ index.html Database Express Edition Installation Guide Dispon´ıvel em: http://docs.oracle.com/cd/E17781 01/install.112/ e18802/toc.htm Oracle SQL Developer Dispon´ıvel em: http://www.oracle.com/technetwork/developer-tools/ sql-developer/overview/index-097090.html 27 / 27