Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Funcionário Cliente
Nome Data_Nascimento Nome Data_Nascimento
José dos Santos 12/10/1970 Maria dos Anjos 04/07/1973
Pedro Ribeiro 09/06/1971 Sandra Pereira 23/11/1970
Ana da Silva 13/01/1977 Antônio da Silva 30/08/1969
Sandra Pereira 23/11/1970 José dos Santos 12/10/1970
• UNION
• SELECT DISTINCT
• SYSDATE
• TO_DATE(campo, máscara)
1
• LENGTH(campo)
Índices
Um índice pode ser entendido como um objeto auxiliar que está associado a
uma tabela. Sendo que a sua função consiste, basicamente, em acelerar o tempo
de acesso às linhas da tabela, para realizar isso ponteiros (referências) são
criados para os dados armazenados em determinados campos. O banco de dados
utiliza o índice de maneira similar ao índice remissivo de um livro, verificando se
um determinado assunto existe no índice e, posteriormente, localiza a sua
posição dentro da tabela.
Criação:
2
Exclusão:
Visões
Criação ou alteração:
O comando REPLACE recria uma visão já existente. Deve ser utilizado para
alterar uma visão existente sem a necessidade de apagá-la.
Exclusão:
O comando DROP VIEW exclui uma visão. Nenhum efeito ocorrerá sobre as
tabelas que são referenciadas.
Utilização:
3
Seqüências
Criação:
Alteração:
Exclusão:
4
DROP SEQUENCE <nome_da_seqüência>;
Exemplo:
5
INSERT INTO cliente VALUES (codigo_cliente.NEXTVAL, 'José da Silva');
INSERT INTO cliente VALUES (codigo_cliente.NEXTVAL, 'Maria dos Santos');
INSERT INTO cliente VALUES (codigo_cliente.NEXTVAL, 'Ana Rodrigues');
Gatilhos (Triggers)
Criação ou alteração:
Exclusão:
Verificar os erros:
6
SHOW ERRORS;
Exemplo:
E SALDO:
7
Em seguida, para cada conta corrente usada no exemplo deverá ser
acrescentado um registro na tabela saldo com a data de 01/01/2007 e valor R$
0,00. Por exemplo:
CONTACORRE
EDITAR AGENCIA NTE DATA VALOR
0101 4567123 01/01/07 0
0011 1234567 01/01/07 0
0123 0123456 01/01/07 0
TRIGGER_N STAT
AME TRIGGER_BODY US
BEGIN UPDATE saldo SET data = :NEW.data, valor =
valor + :NEW.valor WHERE agencia = :NEW.agencia AND
INSERIR_MOVI contacorrente = :NEW.contacorrente; IF :NEW.valor < 10 ENABL
MENTO THEN INSERT INTO movimento VALUES ED
(:NEW.agencia, :NEW.contacorrente, :NEW.data, 'Taxa',
1.00); END IF; END inserir_movimento;
8
IA ENTE
11 1234567 12/01/07 Depósito 100
123 123456 05/02/07 Depósito 10
101 4567123 18/01/07 Depósito 50
11 1234567 28/01/07 Saque -20
AGENC CONTACORR
EDITAR IA ENTE DATA VALOR
101 4567123 18/01/07 50
11 1234567 28/01/07 80
123 123456 05/02/07 10
AGENC CONTACORR
EDITAR IA ENTE DATA VALOR
101 4567123 18/01/07 50
11 1234567 28/01/07 90
123 123456 05/02/07 10
Para concluir este exemplo tente agora criar um gatilho para tratar as
exclusões efetuadas na tabela MOVIMENTO, considerando que, neste caso, não
9
há como realizar a alteração na data, apenas o campo saldo é que deverá ser
atualizado.
Instâncias e Esquemas
Um banco de dados muda ao longo do tempo por meio das informações que
nele são inseridas, alteradas ou excluídas. O conjunto de informações contidas
em determinado banco de dados, em um determinado momento, é chamado de
instância do banco de dados. O projeto geral do banco de dados é chamado
esquema, sendo que os esquemas, ao contrário dos dados, são alterados com
pouca freqüência.
Independência de Dados
A capacidade de modificar a definição dos esquemas em determinado nível,
sem afetar o esquema de nível superior, é chamado de independência de dados.
Nos SGDB existem dois níveis:
Independência física de dados : é a capacidade de modificar o esquema
físico sem que, com isso, qualquer esquema, dado ou programa de aplicação
precise ser reescrito. Modificações neste nível, normalmente, são necessárias
para a melhoria da capacidade e/ou do desempenho do sistema.
Independência lógica de dados : é a capacidade de modificar o esquema
lógico sem que, com isso, qualquer programa de aplicação precise ser
modificado. Modificações, neste nível, são necessárias quando a estrutura
10
lógica do banco de dados é alterada. Por exemplo, quando um SGDB passa a
suportar novos idiomas.
Modelo de Dados
Sob a estrutura do banco de dados está o modelo de dados, ou seja, um
conjunto de ferramentas conceituais usadas para a descrição de dados,
relacionamentos entre os dados, semântica de dados e regras de integridade.
Estrutura do SGBD
Onde:
- Tablespace : é o primeiro nível da organização lógica do SGDB, todos os
demais objetos do banco de dados (tabelas, índices, visões entre outros) são
criados dentro das tablespaces.
- Esquemas: cada objeto criado dentro do banco de dados pertence à um
usuário, desta forma um objeto é referenciado pelo nome do usuário e nome do
objeto. Por exemplo: jose.produto, onde jose é o nome do usuário e produto
referencia o nome desta tabela.
Segurança
A segurança de um SGBD é baseada em modelos e métodos que procuram
garantir a proteção de dados contra o acesso, alteração ou exclusão não
autorizada. Em síntese é garantir que um usuário tenha, de fato, autorização para
executar a operação que estiver tentando executar.
Manutenção de Usuários
CREATE USER nome_usuário
11
IDENTIFIED BY senha
DEFAULT TABLESPACE nome_tablespace
TEMPORARY TABLESPACE nome_tablespace
QUOTA UNLIMITED ON nome_tablespace
QUOTA 1M ON nome_tablespace;
*Privilégios:
Tabelas: SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER e
INDEX.
Funções e Procedimentos: EXECUTE.
**Privilégios:
Administrativos: CREATE SESSION, CONNECT, RESOURCE, DBA,
CREATE TABLE, CREATE INDEX, CREATE TRIGGER, CREATE VIEW,
CREATE PROCEDURE, CREATE SEQUENCE, CREATE SYNONYM,
CREATE PUBLIC SYNONYM
12