quinta-feira, 22 de março de 2012

Estrutura Física e Lógica - Banco de dados Oracle


Caros Amigos, boa noite,

Hoje, vamos falar um pouco sobre conceitos, uma breve explicação para enter um pouco sobre o funcionamento do Oracle:
Neste artigo vou tratar as relações
e os conceitos da estrutura lógica e física do Banco de dados Oracle que é representada na figura abaixo.






Instance

Na instância são executados processos e espaços em memória, estes permitem ao Oracle cumprir com seu papel de manter a integridade, confidencialidade e disponibilidade dos dados armazenados.

A instância fica alocada na memória compartilhada (shared memory) e é a combinação do System Global Area (SGA) com os processos background Oracle.
A visão geral que a instância é usada para gerência e acesso ao banco de dados.
Database

Database é uma coleção de dados em disco em um ou mais arquivos em servidor de banco de dados que coleta e mantém informações relacionadas.
Para um banco de dados (database) ser usado ele precisa ser montado, ou seja, associado a uma instância. Antes disso, os dados estão inacessíveis a qualquer usuário ou aplicação.

Separar a instância do banco é apenas uma forma didática de explicar, pois, na prática, esta separação não ocorre. No entanto, pode acontecer de haver múltiplas instâncias rodando na mesma máquina, cada uma associada ao seu banco de dados físico.
Costuma existir uma confusão entre banco de dados (database) e o servidor de BD. Pode-se dizer que o servidor de BD é a associação do banco de dados com a instância.
Schema/Owner

Representa a coleção de vários objetos de um usuário de banco de dados como, por exemplo, tabelas, índices, seqüências, sinônimos etc. São associados a um banco de dados na razão de vários esquemas para um BD.
Tablespace e Datafile

Um banco de dados é armazenado logicamente em uma ou mais tablespaces que, por sua vez, é armazenada fisicamente no disco em um ou mais arquivos para cada tablespace.
Segment

Os objetos do Banco (tabelas, índices, etc) são armazenados como segmentos. Existem diferentes tipos de segmentos, como:
- Data segments (segmento de dados): armazena os dados das tabelas não clusterizadas. Para tabelas particionadas, cada partição tem seu segmento de dados.

- Index segments: segmentos de índices. Vale a regra da partição.

- Undo segments (de undo): a informação deste segmento é usado para gerar a leitura consistente e, durante o recovery, o rollback de informações não “comitadas”.

- Temporary segments (temporários): usadas quando um comando SQL precisa de uma área temporária para completar a execução.

A relação é de um ou mais segmentos para um tablespace.

Extent

Cada segmento contém um ou mais extents, que são grupos de blocos de dados contíguos (ou adjacentes).

Por exemplo, quando se cria uma tabela, o BD aloca um número inicial de extents para o segmento, quando estes extents enchem, o BD automaticamente aloca um número incremental de extents. (Estes valores são configuráveis pela clausula STORAGE do comando CREATE TABLE ou ALTER TABLE ou podem ser otimamente dimensionados pelo Oracle).

É importante notar que cada extent só pode estar em um data file.


DB Block e OS Block

Blocos de banco de dados é o menor nível de granularidade e é onde as informações são armazenadas.

O DB Bloco é um múltiplo do OS Block (bloco do sistema operacional) e o tamanho é definido por uma variável (DB_BLOCK_SIZE) no momento da criação do tablespace.

Nenhum comentário:

Postar um comentário