Oracle - bd4_12pgs

12
1 SGBD ORACLE Edgar Roque Leandro Farias Manoel Serafim Neto Rodrigo da Silva Gonçalves Thiago da Silva Gonçalves Instituto Ensino Superior da Paraíba IESP Faculdade de Tecnologia da Paraíba FATEC Resumo Oracle Corporation é uma companhia que desenvolve softwares corporativos. Neste artigo será abordado o seu principal produto, o sistema de gestão de bancos de dados relacionais chamado Oracle. Um breve histórico desde sua criação até as versões atuais; principais empresas mundiais que o utiliza; tipos de dados existentes em suas aplicações; plataformas que rodam o Banco de Dados e algumas funções peculiares. Abstract Oracle Corporation is a company that develops enterprise software. This article will address the main product, the management system relational database called Oracle. A brief history since its inception to the present version, leading companies using it, kind of existing data in their applications, platforms that run the database and some features peculiar. 1. História da Oracle e Perfil Empresarial [1] Oracle Corporation fundada em 1977 tendo como fundador Larry Ellison, Bob Miner e Ed Oates, os co-fundadores. Atende acerca de 345 mil organizações em todo o mundo, entre elas, 98 das empresas que figuram na lista da Revista Fortune 100. Atualmente conta com 85 mil em todo o mundo. A Oracle criou a linguagem de programação PL/SQL 1 , utilizada no processamento de transações. A versão Oracle Database 11g é a 1 PL/SQL (Expressão inglesa Procedural Language/Structured Query Language) é uma extensão da linguagem padrão SQL para o SGBD Oracle da Oracle Corporation. É uma Linguagem Procedural da Oracle que estende a linguagem SQL. Permite que a manipulação de dados seja incluída em unidades de programas. Blocos de PL/SQL são passados e processados por uma PL/SQL É a linguagem básica para criar programas complexos e poderosos, não só no banco de dados, mas também em diversas ferramentas Oracle.

Transcript of Oracle - bd4_12pgs

Page 1: Oracle - bd4_12pgs

1

SGBD ORACLE

Edgar Roque

Leandro Farias

Manoel Serafim Neto

Rodrigo da Silva Gonçalves

Thiago da Silva Gonçalves

Instituto Ensino Superior da Paraíba – IESP

Faculdade de Tecnologia da Paraíba – FATEC

Resumo

Oracle Corporation é uma companhia que desenvolve softwares corporativos. Neste

artigo será abordado o seu principal produto, o sistema de gestão de bancos de dados

relacionais chamado Oracle. Um breve histórico desde sua criação até as versões atuais;

principais empresas mundiais que o utiliza; tipos de dados existentes em suas

aplicações; plataformas que rodam o Banco de Dados e algumas funções peculiares.

Abstract

Oracle Corporation is a company that develops enterprise software. This article will

address the main product, the management system relational database called Oracle. A

brief history since its inception to the present version, leading companies using it, kind

of existing data in their applications, platforms that run the database and some features

peculiar.

1. História da Oracle e Perfil Empresarial [1]

Oracle Corporation fundada em 1977 tendo como fundador Larry Ellison, Bob Miner e

Ed Oates, os co-fundadores. Atende acerca de 345 mil organizações em todo o mundo,

entre elas, 98 das empresas que figuram na lista da Revista Fortune 100. Atualmente

conta com 85 mil em todo o mundo. A Oracle criou a linguagem de programação

PL/SQL1, utilizada no processamento de transações. A versão Oracle Database 11g é a

1 PL/SQL (Expressão inglesa Procedural Language/Structured Query Language) é uma extensão da linguagem padrão SQL para o SGBD Oracle da

Oracle Corporation. É uma Linguagem Procedural da Oracle que estende a linguagem SQL. Permite que a manipulação de dados seja incluída em

unidades de programas. Blocos de PL/SQL são passados e processados por uma PL/SQL É a linguagem básica para criar programas complexos e

poderosos, não só no banco de dados, mas também em diversas ferramentas Oracle.

Page 2: Oracle - bd4_12pgs

2

última (2007) lançada pela Oracle Corporation. Existe também uma versão livre, Oracle

Database 10g Express Edition, disponível para download na internet. Fundada em 1º de

setembro de 1988, a Oracle do Brasil, tem sede em São Paulo (SP) e filiais em Belo

Horizonte (MG), Brasília (DF), Porto Alegre (RS) e Rio de Janeiro (RJ). A Oracle do

Brasil conta com mais de 600 parceiros. Alguns clientes no País: Alcoa, TAM, Ticket,

Tigre, Telefonica, General Motors, Sky Brasil, L'Óreal, CVC, Banco Toyota, Schahin

Engenharia, entre outros.

2. Tipos de Dados Oracle [2]

a) Tipos de Dados Caracteres: CHAR (size) – Um campo de tamanho fixo para

caracteres. Pode chegar ao máximo de 2000 bytes. Em outras palavras, pode

armazenar 2000 caracteres. Se o tamanho não for especificado o valor padrão de

um byte será assumido; NCHAR (size) – Um campo de tamanho fixo para

caracteres, onde o conjunto de caracteres (character set) é determinado por sua

definição. O tamanho máximo desse campo é de 2000 caracteres. O objetivo é

trabalhar com caracteres Unicode; VARCHAR2 (size) - Um campo de tamanho

variável para caracteres. Pode armazenar no máximo 4000 bytes; NVARCHAR2

(size) - Um campo de tamanho variável para caracteres, onde o conjunto de

caracteres (character set) é determinado por sua definição. O tamanho máximo

desse campo é de 4000 caracteres. O objetivo é trabalhar com os caracteres

Unicode; LONG - Um campo de tamanho variável para caracteres. O objetivo é

armazenar textos longos. Pode armazenar no máximo 2GB.

b) Tipos de Dados Numéricos: NUMBER (precisão, escala) - Um campo de

tamanho variável. Precisão é o número total de dígitos que irão compor as casas

decimais. Precisão pode se encontrar na faixa de 1 a 38. Escala pode se

encontrar na faixa de -84 a 127. Se os 2 parâmetros forem informados o número

é de ponto flutuante. Se apenas um parâmetro for informado torna-se um número

inteiro.

c) Tipos de Dados Data e Hora: DATE - Um campo de data fixo de 7 bytes que é

usado para armazenar datas. A faixa de datas que podem ser armazenadas é a

seguinte: 01/01/4712 A.C. a 31/12/9999 D.C.; TIMESTAMP (precisão) -

Campo de tamanho variável na faixa de 7 a 11 bytes, que é usado para

representar um valor data/hora. Ele inclui tanto a data quanto a hora. A precisão

determina quantos números comporão os segundos. A precisão dos segundos

Page 3: Oracle - bd4_12pgs

3

varia de 0 a 9 com o padrão 6; TIMESTAMP (precisão) WITH TIME ZONE -

Campo de tamanho fixo de 13 bytes, que representa um valor data/hora e

também armazena a time zone; TIMESTAMP (precisão) WITH LOCAL TIME –

Campo de tamanho variável na faixa de 7 a 11 bytes. É similar ao tipo anterior.

A diferença é que ele armazena a time zone do banco de dados e recupera a time

zone do cliente.

d) Tipos de Dados Intervalos: INTERVAL DAY (day_precision) TO SECOND

(second_precision) - Campo de tamanho fixo de 11 bytes que representa um

período de tempo. Ele inclui dias, meses, horas, minutos e segundos;

INTERVAL YEAR (year_precision) TO MONTH - Campo de tamanho fixo de

5 bytes que representa um período de tempo. Inclui anos e meses.

e) Tipos de Dados Binários: RAW (size) - Campo de tamanho variável que

armazena dados em formato binário. O tamanho máximo para esse tipo é de

2000 bytes; LONG RAW - Campo de tamanho variável que armazena dados em

formato binário. O tamanho máximo para esse tipo é 2 GB; BLOB - Binary

Large Object é um campo que armazena dados binários não estruturados. Seu

tamanho máximo é de 4 GB; CLOB - Caracter Large Object é um campo que

armazena caracteres até um tamanho máximo de 4 GB; NCLOB - National

Character Large Object é um campo que armazena caracteres comuns e

Unicode e pode chegar a 4GB; BFILE - Um arquivo binário externo. O tamanho

máximo é de 4 GB. Esse tamanho também é limitado pelo S.O.

f) Tipos de Dados Rows: ROWID - Um tipo de dado que contem dados binários e

é utilizado para representar o endereço de um registro; UROWID - Universal

ROWID é o tipo de dado usado para armazenar o endereço lógico e físico de um

registro de uma tabela organizada por índice.

3. Tipos de Plataformas possíveis de rodar o Banco de Dados Oracle [3]

O banco de dados Oracle Database roda nos seguintes sistemas operacionais: Apple

Mac OS X Server; HP HP-UX: PA-RISC, Itanium; HP Tru6464 UNIX: Alpha; HP

Open V MS: Alpha, Itanium; IBM AIX5L: IBM POWER; IBM z/OS: zSeries; Linusx:

x86-64, PowerOC, zSeries, Itanium; Microsoft Windows: x86, x86-64, Itanium; Sun

Solaris: SPARC, x86, x-86-64

Page 4: Oracle - bd4_12pgs

4

4. Versões existentes no mercado [4]

Além das diferentes versões do software de gerenciamento de banco de dados Oracle, a

Oracle Corporation subdivide seu produto em "edições" variáveis - aparentemente por

razões de marketing e controle de licenças.

Standard Edition (SE) contém a funcionalidade básica de banco de dados. A

Oracle Corporation licencia este produto na base de usuários ou de sockets,

normalmente para servidores com um à quatro UCPs2. Se o número de UCPs

exceder 4, o usuário deve migrar para a licensa Enterprise. SE não possui limite

de memória e pode utilizar clusterização com o Oracle RAC sem custo

adicional.

Enterprise Edition (EE) inclue mais funcionalidades que a 'Standard Edition',

especialmente nas áreas de performance e segurança. A Oracle Corporation

licencia este produto na base de usuários ou de núcleos de processamento,

normalmente para servidores com um ou mais UCPs. EE não tem limite de

memória e pode utilizar clusterização usando o software Oracle RAC.

Standard Edition One, introduzido com o Oracle 10g, possui algumas restrições

de funcionalidades adicionais. A Oracle Corporation comercializa-o para uso

em sistemas com uma ou duas UCPs. Ela não possui limitações de memória.

Express Edition ('Oracle Database XE'), introduzido em 2005, oferece o Oracle

10g livre para distribuição nas plataformas Windows e Linux (com uma

limitação de apenas 150 MB e restrita ao uso de apenas uma UCP, um máximo

de 4 GB de dados de usuário e 1 GB de memória). O suporte para esta versão é

feito exclusivamente através de fóruns on-line, sem o suporte da Oracle.

Oracle Personal Edition fornece a funcionalidade de "alto fim" da Enterprise

Edition mas é comercializada (e licenciada) para desenvolvedores específicos

que trabalham em estações de trabalho pessoais.

Oracle Database Lite, destinada para rodar em dispositivos móveis. O banco de

dados, localizado parcialmente no dispositivo móvel, pode sincronizar com uma

instalação baseada em servidor.

2 Central Processing Unit (Unidade central de processamento, em português) ou o processador é a parte de um sistema de computador que executa

as instruções de um programa de computador, e é o elemento primordial na execução das funções de um computador.

Page 5: Oracle - bd4_12pgs

5

5. Funções internas do BD Oracle [5]

A Oracle oferece através da linguagem PL/SQL muitos recursos para utilização e

tratamentos de dados, como funções matemáticas, de datas e caracteres. A maioria dos

sistemas de informações da atualidade precisam manipular seus dados e necessitam

dessas funções para consultar seu histórico.

O armazenamento e consulta de dados, o próprio SGBD oferece recursos. Estes recursos

são funções que contém parâmetros de formatação permitindo a manipulação de

conteúdo como, data, caracteres e valores numéricos no servidor do banco de dados.

A tabela abaixo ilustra algumas funções de manipulação de caracteres.

Tabela 1

Funções de manipulação de String(caracter)

LOWER(string) Converte uma string em caixa alta para caixa baixa.

Select LOWER(nome) from Funcionario

INITCAP(string) Converte a primeira letra da palavra em maiúscula

Select INITCAP(nome) from funcionario

CONCAT(string) Serve para juntar as colunas em apenas uma sequência.

Select CONCAT(CONCAT(nome,´- ´), endereço) from

funcionario

A tabela abaixo ilustra algumas funções de manipulação de data.

Tabela 2

Funções de manipulação de data

DATEDIFF (parte, data

inicial, data final)

Subtrai a data inicial da data final, indicando o

resultado na unidade definida em "parte".

Select nome, DATEDIFF (year, datanasc, GetDate())

idade from funcionario

DATENAME (parte, data) Retorna o nome da parte de uma data.

Select nome, DATENAME (MONTH, datanasc)

MesDeNasc from Funcionario

MONTHS_BETWEEN

(data1, data2)

Retorna a diferença de duas datas em meses.

Select nome, round(MONTHS_BETWEEN('2010-10-

20', '2002-05-08'), 1) qtdMes from funcionario

where codigo = 4

Page 6: Oracle - bd4_12pgs

6

A tabela abaixo ilustra algumas funções de matemática.

Tabela 3

Funções matemáticas

ROUND(numero, precisão) Arredonda o número fornecido de acordo com a

precisão informada.

Select salario, ROUND(salario, -2) from funcionario

MOD(numero, divisor) Retorna o resto de uma divisão.

Select salario, MOD(salario,3) from funcionario

POWER(numero, potência) Retorna o valor elevado à potência informada.

Select salario, POWER(salario, 2) from funcionario

6. Procedures [6]

Uma procedure nada mais é do que um bloco PL/SQL nomeado. Pode ser compilado e

armazenado no banco de dados como um objeto de schema. Graças a essa característica

as procedures são de fácil manutenção, o código é reutilizável e permitem que

trabalhemos com módulos de programa. A sintaxe básica de uma procedure é:

CREATE [OR REPLACE] PROCEDURE [schema.]nome_da_procedure

[(parâmetro1 [modo1] tipodedado1,

parâmetro2 [modo2] tipodedado2,

...)]

IS|AS

Bloco PL/SQL

Onde:

REPLACE - indica que caso a procedure exista ela será eliminada e substituída pela

nova versão criada pelo comando; BLOCO PL/SQL - inicia com uma cláusula BEGIN

e termina com END ou END nome_da_procedure; NOME_DA_PROCEDURE -

indica o nome da procedure; PARÂMETRO - indica o nome da variável PL/SQL que

é passada na chamada da procedure ou o nome da variável que retornará os valores da

procedure ou ambos. O que irá conter em parâmetro depende de MODO; MODO -

Indica que o parâmetro é de entrada (IN), saída (OUT) ou ambos (IN OUT). É

importante notar que IN é o modo default, ou seja, se não declararmos nada o modo do

nosso parâmetro será, automaticamente, IN; TIPODEDADO - indica o tipo de dado do

parâmetro. Pode ser qualquer tipo de dado do SQL ou do PL/SQL. Pode usar

referências como %TYPE, %ROWTYPE ou qualquer tipo de dado escalar ou

Page 7: Oracle - bd4_12pgs

7

composto. Atenção: não é possível fazer qualquer restrição ao tamanho do tipo de dado

neste ponto; IS|AS - a sintaxe do comando aceita tanto IS como AS. Por convenção

usamos IS na criação de procedures e AS quando estivermos criando pacotes; BLOCO

PL/SQL - indica as ações que serão executadas por aquela procedure.

Exemplo de Criação:

CREATE PROCEDURE stp_Cidade (

P_codigo Cidade.Codigo%Type,

P_nome Cidade.nome%Type,

P_uf Cidade.uf%Type,

P_pais Cidade.pais%Type) IS

BEGIN

Delete Cidade Where Codigo = P_codigo;

END;

Exemplo de Alteração:

REPLACE PROCEDURE stp_Cidade (

P_codigo Cidade.Codigo%Type,

P_nome Cidade.nome%Type,

P_uf Cidade.uf%Type,

P_pais Cidade.pais%Type) IS

BEGIN

Delete Cidade Where Codigo = P_codigo;

END;

Exemplo de Exclusão:

DROP PROCEDURE stp_Cidade;

7. Funções [7]

Uma função no Oracle é muito semelhante a uma procedure. Ambos aceitam

argumentos, que podem ter qualquer modo. Ambos são formas diferentes de blocos de

PL/SQL, com seções declarativas, executável e de exceções. Ambos podem ser

armazenados na base de dados e declarados num bloco. Porém, uma chamada de

procedure é uma instrução PL/SQL por si só, enquanto que uma chamada de função é

chamada como parte de uma expressão.

Sintaxe das Funções

A sintaxe para criar uma função armazenada é muito semelhante a sintaxe de um

procedure.

Page 8: Oracle - bd4_12pgs

8

Create [OR REPLACE] FUNCTION nome_função

[(argumento[{IN | OUT | IN OUT}] tipo,

[(argumento[{IN | OUT | IN OUT}] tipo,

RETURN tipo_retorno { IS | AS }

corpo_funcao

Em que nome_função e o nome da função, argumento e tipo são iguais ao dos

procedures, tipo_retorno e o tipo do valor que a função devolve e corpo_função é o

bloco de PL/SQL que contém o código da função. Tal como nas procedures, a lista de

argumentos é opcional.

Para alterar uma função:

ALTER FUNCTION [schema.]função

|[COMPILE [DEBUG]]

|[nome_parâmetro = valor_parâmetro]|[REUSE SETTINGS];

Para excluir uma função:

Drop FUNCTION nome_função;

8. Índices (index) [8]

Os index são mecanismos criados pelos bancos de dados para melhorar a recuperação

das informações contidas nas tabelas.

Utilização

Um Exemplo clássico de utilização é quando queremos encontrar um número ou um

nome em uma tabela, primeiro faz uma busca no nó Root depois parte para o nó

intermediário onde ele faz uma busca na cabeças de dados, localizado desse, para o

nível chamado de folha retornado o registro.

Quais são os tipos e como criar um index.

Encontramos dois tipos de index conhecidos como clustered ou nonclustered, onde

teremos em uma tabela só um index clustered que geralmente é criado quando criamos a

primary key (chave primaria) permitido assim que na mesma tabela tenhamos vários

indexs nonclustered, onde para podemos criar um index temos que obedecer o seguintes

critério de 16 colunas e o tamanho do nível de index de aproximadamente 900 bytes.

Index Clustered: Como falamos anteriormente o index clustered é um index criado

geralmente quando criamos uma primary key (chave Primaria). Ele Possui uma

ordenação a nível de tabela.

Page 9: Oracle - bd4_12pgs

9

Index Non-Clustered: Possui uma ordenação a nível de página possuindo as mesmas

restrições dos index clustered.

As vezes temos que recuperar as informações das tabelas o mais rápido possível porém

as vezes usamos os index em uma determinada consulta, porém não obtemos as

informações com a rapidez que foram solicitadas, para tentar solucionar esse problema

foi inserido a opção de filtro, tal opção só é demonstrada quando usamos os index em

conjunto da clausula ‘Where’ podendo aumentar a performance.

Para trabalhar com clausula ‘Where’ em conjunto com index temos algumas restrições:

Não podemos usar Non-Clustered.

Não podemos usar colunas computadas.

Temos sempre que ter o cuidado quando trabalhamos com index para não deixa as

paginas de dados chegarem ao seu tamanho máximo, para auxiliar, o banco possui duas

opções, a Fillfactor e a Pad_Index, onde a opção FillFactor especifica uma

porcentagem de espaço livre nos níveis, onde esse espaço será usado na criação ou

recriação de um index e quando usamos o Pad_Index estamos aplicando a porcentagem

de espaço livre do nível FillFactor nos níveis intermediário.

Outro recurso na criação de index que é muito importante na hora de criá-lo é a cláusula

‘With On Line’ que por padrão vem desativada, se não ativarmos essa cláusula no

momento que fomos criar um index tudo ocorre normalmente, porém quando

precisamos recriar algum index não conseguiremos fazer qualquer seleção ou alteração

nos dados das tabelas, pois ficar bloqueado o acesso as informações.

A sintaxe básica para a criação de um index é:

CREATE [ TIPO ] INDEX [NOME]

ON [TABELA]

(COLUNAS)

Onde:

Tipo - Os index podendo ser unique, clustered ou no clustered; Nome - Nome que

devemos da ao index; Tabela - Nome da entidade que ira criar o index; Colunas -

Nome das colunas que iremos usar respeitando as restrições.

9. Trigers [9]

São procedimentos que podem ser gravados em Java, PL/SQL ou C. São executados (ou

disparados) implicitamente quando uma tabela é modificada, um objeto é criado ou

Page 10: Oracle - bd4_12pgs

10

ocorrem algumas ações de usuário ou de sistema de banco de dados. As triggers são

similares as stored procedures diferindo, apenas, na maneira como são chamadas. A

trigger é executada implicitamente quando ocorre algum evento de trigger, enquanto a

stored procedure deve ser executado explicitamente.

Ex.:

CREATE OR REPLACE TRIGGER Print_salary_changes

BEFORE DELETE OR INSERT OR UPDATE ON Emp_tab

FOR EACH ROW

WHEN (new.Empno > 0)

DECLARE

sal_diff number;

BEGIN

[…]

END;

10. Transação [10]

Uma transação é uma unidade lógica de trabalho que contém uma ou mais instruções

SQL. Os efeitos de todas as instruções SQL em uma transação podem ser todos commit

(aplicado ao banco de dados) ou todos de rolled back (desfeito a partir do banco de

dados). A transação termina quando ela é confirmada ou revertida, quer explicitamente

um COMMIT ou ROLLBACK declaração ou implicitamente quando uma instrução DDL é

emitido. Para ilustrar o conceito de transações, consideremos um banco de dados

bancários. Quando um cliente do banco transfere dinheiro de uma conta poupança para

uma conta corrente, a transação pode consistir em três operações distintas: diminuir a

conta poupança; incremento da conta corrente; registrar a transação no diário de

transações.

O banco de dados deve permitir duas situações. Se todas as três instruções SQL podem

ser executadas para manter as contas em equilíbrio, os efeitos da transação podem ser

aplicados ao banco de dados. No entanto, se um problema, tais como insuficiência de

fundos, número de conta inválida, ou uma falha de hardware impede que uma ou duas

das declarações no término da transação, toda a transação deve ser revertida de modo

que o saldo de todas as contas estão corretas.

Transações Commit

Commit de uma transação significa tornar permanentes as alterações realizadas

pelas instruções SQL dentro da transação.

Committing significa que um usuário tenha solicitado explicitamente ou

implicitamente que as mudanças na operação torna-se permanente. Um pedido

Page 11: Oracle - bd4_12pgs

11

explícito significa que o usuário publicou um COMMIT comunicado. Um pedido

implícito pode ser feita através do término normal de uma aplicação ou em

linguagem de definição, por exemplo. As alterações introduzidas pelas instruções

SQL da sua transação se tornam permanentes e visíveis a outros usuários somente

após sua transação for confirmada. Somente os usuários de outras operações que

começou depois vão ver as alterações confirmadas.

Nível de instrução Rollback

Se em algum momento durante a execução de uma instrução SQL acontecer um erro,

todos os efeitos da declaração são revertidas. O efeito da reversão é como se essa

afirmação nunca tivesse sido executado. Esta operação é um nível de rollback.

Um exemplo de erro descoberto durante a instrução é tentar inserir um valor duplicado

em uma chave primária. SQL único envolvido em um impasse (concorrência para os

mesmos dados) também pode causar um nível de rollback.

11. Vantagens e desvantagens Oracle [11]

Vantagens: Grande otimização de performance para dados em grande quantidade;

Robustez, segurança dos dados, confiabilidade, organização racionalizada e grande

capacidade de expansão (escalabilidade) do sistema; Permite carregamento de diversos

tipos de dados binários como, por exemplo, imagens em geral, filmes, sons, etc.; Trata-

se de um sistema naturalmente multi-usuário, permitindo a edição, atualização, consulta

simultânea de dados/mapas/metadados por diversas pessoas, inclusive via

internet/intranet (com o uso de sistemas de disponibilização, como o ArcIMS); Permite

a criação de programas que fazem carregamento automático de informações, verificação

de consistência, limpeza entre outras funções, através de funções internas do banco;

Permite intercâmbio com diversas tecnologias (programação de interfaces em

linguagens de programação com VB, C, Java, ESRI/aml).

Desvantagens: Exige especialização técnica, seja para administração do banco (tarefas

como backup/recovery, performance tunning, gerenciamento de usuários/segurança,

etc.), bem como para atividades como programação para geração de saídas adequadas e

derivação de dados; Alto custo da licença e do hardware necessário para rodar os

softwares (uma licença Oracle Standard Server mais um módulo Spatial (opcional),

uma licença de ESRI ArsSDE e uma licença de Windows 2000 ou Unix – só para a

parte do servidor).

Page 12: Oracle - bd4_12pgs

12

12. Referências

[1]http://www.oracle.com/global/br/corporate/pressroom/FACTSHEET_Brasil_Abril.p

df (acesso em 15/09/2010)

[2]http://pt.efreedom.com/Question/1-1377797/Lista-de-tipos-de-dados-Oracle (acesso

em 14/09/2010)

[3] http://www.oracle.com/index.html (acesso em 14/10/2010)

[4]http://www.oracle.com/global/br/corporate/pressroom/FACTSHEET_Brasil_Abril.p

df (acesso em 15/10/2010)

[5]http://pgdocptbr.sourceforge.net/pg80/sql-createfunction.html (acesso em

23/10/2010)

[6]http://www.linhadecodigo.com.br/artigo/335/PL_SQLProcedures-e-

Fun%C3%A7%C3%B5es.aspx (acesso em 16/11/2010)

[7]http://www.linhadecodigo.com.br/artigo/335/PL_SQLProcedures-e-

Fun%C3%A7%C3%B5es.aspx (acesso em 16/11/2010)

[8]http://www.devmedia.com.br/post-15590-Trabalhado-com-Index-SQL-

SERVER.html (acesso em 22/10/2010)

[9]http://www.linhadecodigo.com.br/artigo/322/oracletrigger.aspx (acesso em

16/11/2010)

[10]http://download.oracle.com/docs/cd/B10501_01/server.920/a96524/c17trans.htm

(acesso em 16/11/2010)

[11]http://www.youblisher.com/p/55209-Trabalho-Banco-de-Dados-Oracle/ (acesso em

16/11/2010)