Funcionalidades Oracle
-
Upload
harlycarreiro -
Category
Technology
-
view
6.756 -
download
0
description
Transcript of Funcionalidades Oracle
Funcionalidades do SGDB Oracle
Por: Ulisses da Silva Jardim e Harly Carreiro Varão
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;
Organização física
Arquivos em disco (datafiles); Áreas de memória;
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;
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;
Esquema lógico
• Tabelas
• Índices
• Visões
• Sequencias
• Procedures
• Functions
• Triggers
• Package
• etc.
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;
Instancia Oracle
PGA Oracle - Área privada da sessão; SGA – Área de tráfego das sqls;
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;
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;
ColdBackup
Backup simples: Com o banco desligado copia-se os arquivos e depois liga-se o banco;
HotBackup
Backup com o banco em funcionamento, porém o mesmo deve estar no modo ARCHIVELOG.
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
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.
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';
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;
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
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)
);
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);
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.
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;
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;
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.
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;
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.
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.
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;
Linguagem PL/SQL
Funcões, procedures, cursores, pacotes.
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.
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.
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.
Gerenciamento de usuários
Para verificar os privilégios dos usuários: select * from dba_sys_privs;
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;
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;