Artigo 1 da série “Arquitetura em posts”
Enquanto o nosso laboratório está sendo montado, aproveito para falar de teoria.
Neste artigo vou tratar as relações e os conceitos da estrutura lógica e física do 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.
Por ser fundamental no funcionamento do banco de dados (BD), a arquitetura e a descrição dos caches e processos da instância serão tratados em posts posteriores, por enquanto fiquemos com a visão geral que a instância é usada para gerência e acesso ao banco de dados.
Database
Segundo Loney e Bryla, “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.
Nota do autor: 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
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.
Enquanto o nosso laboratório está sendo montado, aproveito para falar de teoria.
Neste artigo vou tratar as relações e os conceitos da estrutura lógica e física do 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.
Por ser fundamental no funcionamento do banco de dados (BD), a arquitetura e a descrição dos caches e processos da instância serão tratados em posts posteriores, por enquanto fiquemos com a visão geral que a instância é usada para gerência e acesso ao banco de dados.
Database
Segundo Loney e Bryla, “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.
Nota do autor: 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
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