O documento descreve as principais funcionalidades do sistema gerenciador de banco de dados Oracle, incluindo sua história, organização física e lógica, objetos lógicos como tabelas e índices, linguagem PL/SQL, gerenciamento de usuários e privilégios.
2. História
É pioneiro na tecnologia de BDRs, sendo o
mais respeitado, e unaminidade;
É possuído pela empresa de mesmo nome a
Oracle Corporation;
Foi o ”carro-chefe” da Oracle corporation;
Hoje encontra-se na versão 11g;
4. Organização lógica
Objetos são organizados em esquemas por
usuários;
Esquemas são o conjunto de objetos de
usuários;
O primeiro usuário que já vem no Oracle é o
sys;
Os objetos já existentes no oracle fazem parte
do esquema do usuário sys na tablespace
system;
5. Organização lógica
Todos os objetos do tablespace system e
pertencentes ao usuários sys, são para
administração do banco de dados;
7. Arquivos
Datafiles: São os arquivos que contém
físicamente as tabelas, índices, e etc.
Controlfiles: São os arquivos de controle do
BD, responsáveis por sincronizar as alterações
nos arquivos do BD;
Redo Log Files: Históricos de transações
comitadas;
Arquivos de log;
8. Instancia Oracle
PGA Oracle - Área privada da sessão;
SGA – Área de tráfego das sqls;
9. Tablespaces
São subdivisões lógicas em um BD, que
agrupam objetos relacionados;
Uma tablespace pode ser gravada em vários
datafiles;
Vários usuários podem escrever na mesma
tablespace;
10. Backup e Recover
Exportação: Ato de colocar uma base de dados
ou o schema de usuário em um outro SGBD
Oracle;
Importação: O inverso da exportação. Receber
uma base de dados ou schema de usuário de
um outro SGBD Oracle;
Importante: Para ex/importar são usados os
datafiles;
11. ColdBackup
Backup simples: Com o banco desligado copia-
se os arquivos e depois liga-se o banco;
12. HotBackup
Backup com o banco em funcionamento,
porém o mesmo deve estar no modo
ARCHIVELOG.
13. Recover
Instância Derrubada Recuperação automática – basta religa-la
ControFile Inacessível Basta alterar o parâmetro control_file para que
não faca referencia ao arquivo perdido:
Caso, todos tenha sido perdidos :
alter database backup controlfile to trace;
create control file;
DataFile Inacessível Alter database mount;
Alter database datafile ______ offline drop;
LogFile Inacessível Impossivel de recuperalos, Devem ser
multiplexados ou constar em discos
espelhados;
RMAN
14. Objetos lógicos - Database
É uma coleção de dados vista como unidade.
(Oracle).
Armazena e recupera as informações.
Tem uma estrutura física e lógica.
Pode ser executado em múltiplos nós.
É carregado dentro de uma instância.
15. Objetos lógicos – Database link
É um recurso que permite uma base de dados
acessar objetos em outra base de dados. Para
isso, não é necessário que esta outra base de
dados esteja num SGBD Oracle.
Para criar um database link simples, basta a
partir da base de dados que está logado, dar o
seguinte comando:
create database link link_to_cadastro_cidades
connect to cidades_usr using
'senha_cidades_usr';
16. Objetos lógicos - sequence
É um objeto utilizado para gerar uma
sequência númerica.
Exemplo de criação de sequence:
CREATE SEQUENCE supplier_seq MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
17. Objetos lógicos - sinônimos
É um apelido para os objetos no banco de dados.
Geralmente é utilizado para dar nomes mas curtos, e
menos complexos a objetos do banco.
Por exemplo, digamos que para acessar a tabela
cidades é necessário utilizar o seguinte texto:
link_to_cadastro_cidades@cidades
É possível definir um sinônimo para a seguinte tabela
como abaixo: create or replace synonym cidades to
link_to_cadastro_cidades@cidades
18. Objetos lógicos - tabela
unidade básica de armazenamento no banco de
dados oracle. Cada tabela é constituída por linhas e
colunas.
Exemplo de criação de tabela:
CREATE TABLE employees_demo (
employee_id NUMBER(6),
first_name VARCHAR2(20),
last_name VARCHAR2(25)
CONSTRAINT emp_last_name_nn NOT NULL,
email VARCHAR2(25)
);
19. Objetos lógicos - índices
objetos que são associados a tabelas, para
melhorar a performance na recuperação de
dados.
Exemplo de criação de índice:
CREATE INDEX ord_customer_ix ON orders
(customer_id);
20. Objetos lógicos - triggers
Gatilhos são procedimentos que são
armazenados no banco de dados, e rodam
implicitamente de acordo com eventos gerados
nas tabelas.
Gatilhos são excelentes mecanismos para
auditoria no banco de dados, pois com elas é
possível executar código de acordo com
determinadas condições.
21. Objetos lógicos - triggers
Uma gatilho no oracle é constituída de três
partes:
1. O evento que dispara o gatilho;
2. A condição para execução do gatilho;
3. O código de negócio do gatilho;
22. Objetos lógicos - constraints
São restrições que você estabelece para um campo
da tabela. As constraints pode ser do seguintes tipos:
- Primary Key (PK): cria um índice único para um
conjunto de colunas ou uma coluna para Chave
Primaria;
- Unique: determina que um campo não poderá ter
dois registros com o mesmo valor;
-Foreign Key (FK ou Chave Estrangeira): determina
um campo ou um conjunto de campos que possuem
valores em outras tabelas;
23. Objetos lógicos - constraints
-Check: Especifica a condição que o campo precisa
ter para ser salvo;
-Not Null: Determina que o campo tem preenchimento
obrigatório.
24. Objetos lógicos - constraints
CREATE TABLE EMPREGADOS (
COD NUMBER(6) NOT NULL CONSTRAINT CODEMP_PK
PRIMARY KEY,
NOME VARCHAR2(20) NOT NULL,
DEPARTAMENTO VARCHAR2(40) NOT NULL CONSTRAINT
DEPTO_FK REFERENCES DEPTO INITIALLY DEFERRED,
SEXO CHAR(1) NOT NULL CONSTRAINT CHECK_SEXO
CHECK (SEXO IN ('F','M')),
IDADE NUMBER(2) CONSTRAINT CHECK_IDADE CHECK
(IDADE > 18),
EMAIL VARCHAR2(40) NOT NULL UNIQUE
)TABLESPACE USERS;
25. Objetos lógicos - visão
Uma visão é uma simples representação em
memória de uma consulta SQL que pode ser
reusada.
Visões não geram nenhum tipo de
armazenamento na base de dados, a não ser
uma entrada no dicionário de dados do Oracle.
26. Linguagem PL/SQL
É uma linguagem procedural utilizada para construir programas
em um banco de dados Oracle.
PL/SQL estende a SQL, adicionando construções encontradas
em linguagem procedurais (como funções, procedimentos,
laços de repetição, estruturas condicionais), o que resulta em
uma linguagem estruturada mais poderosa que a SQL.
A unidade básica na PL/SQL é o bloco. Todos os programas
PL/SQL são feitos em blocos, os quais podem ser aninhados.
Geralmente, cada bloco executa uma ação lógica no
programa.
27. Linguagem PL/SQL
declare
/* seção declarativa utilizada para mencionar
as variáveis, tipos que farão parte do programa
*/
begin
/* comandos PL/SQL são feitos aqui */
exception
/* manipulação de exceções */
end;
29. Gerenciamento de usuários
É um nome definido no BD que representa um
conjunto de permissões para acesso aos
objetos do BD de acordo com condições
estabelecidas pelo administrador do BD.
Todo usuário está ligado a uma tablespace, se
nenhuma tablespace for indicada no comando
de criação ele estará ligado ao tablespace
SYSTEM.
30. Gerenciamento de usuários
Schema - é um conjunto de objetos(tabelas,
índices, visões e etc) pertencentes a um
usuário.
Papel(Role) - Conjunto de privilégios
agrupados com um nome. Facilita gerência de
privilégios.
Perfil(Profile) - Limites que restringem as ações
de um usuário.
31. Gerenciamento de usuários
Existem dois tipos de permissão para usuários
no Oracle:
- De conexão (só conecta);
- De possuir recursos (pode criar objetos);
Role - É um grupo de privilégios reunidos sobre
um único nome, que pode ser concedido a um
ou mais usuários e roles.
Roles tanto para DDL quanto para DML.
33. Criar usuário
create user ulisses identified by '123'
default tablespace sistema_meu
quota 1M on users
profile default
Account unlock;
Grant Connect, Resource to ulisses;
34. Gerenciamento de usuários
Alguns privilégios só o DBA pode dar, por
exemplo para execução de comandos DDL.
Outros só o dono do schema pode dar:
DML – tabelas, visões, índices;