Вы находитесь на странице: 1из 20

Arquitetura do SQL Server

Prof. Emiliano Monteiro

Camada de protocolos SQL OS Motor do Banco Motor de Armazenamento Motor Relacional Motor do
Camada de protocolos
SQL OS
Motor do Banco
Motor de
Armazenamento
Motor Relacional
Motor do Banco

Camada de protocolos

Esta camada implementa a interface externa para o SQL Server. Todas as operações que podem ser invocadas no SQL Server são transmitidos através de um formato definido pela Microsoft, chamado Tabular Data Stream (TDS). TDS é um protocolo da camada de aplicação, utilizada para transferir dados entre um servidor de banco e um cliente. Inicialmente projetado e desenvolvido pela Sybase para o seu motor do SQL Server relacional Sybase em 1984, e mais tarde pela Microsoft no Microsoft SQL Server, os pacotes TDS pode ser envolvido em outros protocolos de transporte físicos, incluindo TCP/IP, Named Pipes, e memória compartilhada. Além disso, a API do SQL Server também está disponível para serviços web.

Motor Relacional

Também chamado de “processador de consultas”, o mecanismo relacional inclui os componentes do SQL Server que determinam o que sua consulta precisa fazer exatamente e a melhor maneira de fazê-lo. Ele gerencia a execução de consultas.

Tarefas diferentes de mecanismo relacional:

Processamento de consultas Gerenciamento de Memória Threads e Gestão de Tarefas Gerenciamento de buffer Processamento de consultas distribuídas

Motor de armazenamento

Motor de armazenamento é responsável pelo armazenamento e recuperação de dados sobre o sistema de armazenamento (disco, SAN, etc.).

No servidor SQL, existem dois tipos de arquivos que são criados no nível do disco:

Arquivo de dados e arquivo de log.

Arquivo de dados armazena fisicamente os dados em páginas de dados.

Log que também são conhecidos por escrever o registro das operações (logs), são utilizados para armazenar transações executadas na base de dados.

SQL OS

Esta situa-se entre a máquina host (Windows OS) e o SQL Server.

Todas as atividades realizadas no motor de banco de dados são atendidos pelo SQL OS.

É um sistema operacional altamente configurável com uma poderosa API (interface de programação de aplicativo), permitindo uma série de operações e principalmente o paralelismo avançado (suporte multi threads).

OS SQL fornece serviços operacionais diferentes do sistema, tais como ofertas de gerenciamento de pool de memória, bloqueios de registro e de detecção de deadlock. Outros serviços incluem manipulação de exceção, hospedagem para componentes externos como Common Language Runtime - CLR (para .net nativo), etc.

Arquitetura do Oracle

System Global Area

System Global Area (SGA) - é uma terminologia usada no SGBD Oracle que representa uma área de memória compartilhada responsável por armazenar todas as informações referentes aos processos do Oracle.

Essa área é dividida em várias outras áreas de memória que cada instância do banco de dados ocupa no SGA.

Shared Pool

Cache Buffer: Este blocos de dados são armazenados temporariamente quando são lidos do disco. Isto permite um acesso

repetitivo para os blocos de dados a partir da cache, em vez leituras

a partir do disco.

Cache de dicionário: Ele contém informações sobre as tabelas de dicionário de dados, incluindo informações sobre contas de

usuários, arquivos de banco de dados, segmentos, extensões, mesas

e direitos (privilégios). (são metadados)!!

Redo Log Buffer: Ele contém informações sobre operações realizadas que ainda não foram escritas para os arquivos de “log redo online”.

Shared pool: Aqui estão interligadas as consultas recentes utilizado instruções SQL e seus planos de execução e; armazenamento do cache de dicionário.

Pool JAVA: Analisar os comandos Java.

Arquitetura do MySQL

Camada de aplicação

Usuários e clientes interage com o RDBMS MySQL. Há três componentes nesta camada:

1) Administradores 2) Clientes 3) Usuários comuns

Os administradores usam a interface administrativa e vários utilitários como: mysqladmin, isamchk, etc.

Os clientes se comunicam com o MySQL através de várias interfaces e utilitários com acesso ao MySQL APIs.

Usuários comuns: interagem com o MySQL RDBMS utilizando "mysql“ ou libmysql.dll.

"Mysql" é na verdade uma interface de consulta. É um monitor que permite aos usuários para emitir instruções SQL e ver os resultados.

Camada lógica

A camada lógica do MySQL é dividida em vários subsistemas:

1. Processador de consultas.

2. Gerenciamento de transações.

3. Gerenciamento de recuperação.

4. Gerenciamento de armazenamento.

Os subsistemas acima trabalham em conjunto para processar as solicitações para o servidor de banco de dados MySQL.

1. Processador de Consultas (Querys)

O Processador de consulta consiste dos seguintes sistemas:

Incorporado DML precompiler

DDL compilador

Analisador de consultas

Pre-processor consulta

Segurança

Otimizador de consultas

Motor de Execução

2. Gestor de transação

Ela facilita o acesso a dados simultâneos.

Fornece a facilidade de bloqueio.

Garante vários que vários usuários/sessões possam acessar simultaneamente dados de uma forma consistente.

Impede a corrupção de dados ou danos a dados.

Gestão de bloqueio.

3. Gestão de recuperação

1. Log Manager

Registra cada operação executada no banco de dados.

Armazena os registros de operações com os comandos do MySQL.

Proteger contra falhas do sistema ao executar comandos que irão trazer de volta o banco de dados para seu último estado estável.

2. Recovery Manager

Responsável pela recuperação de banco de dados para seu último estado estável.

Usa os registros criados pelo gerente de log.

4. Gestão de armazenamento

Gestor de armazenamento:

Ele age como uma interface com o sistema operacional. Sua principal tarefa é escrever dados para o disco, assim como os dados internos do sistema.

Buffer Manager:

Gere recursos alocados em memória, decide a quantidade de memória para alocar por buffer.

Gestor de recursos:

Aceita pedidos do mecanismo de execução. Aceita pedidos sobre detalhes do gerenciador de buffer. Devolve os dados para a camada superior.