Buscar

Arquitetura de Sistemas de Banco de Dados 04

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

tt
Arquitetura de Sistemas de Banco de Dados
Aula 4: Estrutura de um SGBD
Apresentação
Na aula passada você viu a Linguagem SQL e sua relação com a Álgebra Relacional.
Nesta aula veremos a Estrutura de um SGBD, sua aderência ao modelo Cliente Servidor, organização interna e ainda
exploraremos a arquitetura interna do SGBD ORACLE.
Objetivos
Descrever o modelo Cliente Servidor;
Identi�car a estrutura interna de um SGBD;
Reconhecer a estrutura do SGBD ORACLE.
Arquitetura de Aplicações utilizando Banco de Dados
Ao longo do tempo, a arquitetura das aplicações que utilizam banco de dados evoluiu da Monolítica para a Cliente Servidor.
 Figura 1 – Arquitetura de Aplicações
Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online
Arquitetura Monolítica
Tipicamente utilizada, no passado, em sistemas de Grande Porte (Mainframe), era caracterizada por
todo processamento ser realizado no computador central. Os dados eram mantidos centralizados. 
 
 
 
 
Redes
Esta arquitetura pode ser considerada um ponto intermediário na evolução para o modelo Cliente
Servidor. Os dados eram mantidos centralizados em um servidor de arquivos, quando fosse
necessária a execução de uma consulta os arquivos eram transferidos para máquina do usuário via a
rede de computadores, onde o processamento da consulta era então realizado. Este modelo tem
como efeito colateral gerar um grande volume de tráfego na rede, já que todo o banco de dados deve
ir para a máquina do usuário toda vez que uma consulta tiver que ser realizada.
Cliente Servidor
Utiliza o conceito de distribuição do processamento via redes de computadores. O usuário através de
sua máquina (cliente) envia ao SGBD (servidor) a solicitação dos dados que deseja. O SGBD então
executa localmente a consulta e retorna ao cliente apenas o conjunto resposta, ou seja, os dados
solicitados, o que diminui muito o tráfego de dados na rede. 
 
 
Modelo cliente servidor
Agora que você viu os tipos de arquitetura, vamos estudar melhor o Modelo Cliente Servidor. Neste modelo, o sistema é dividido
em 3 camadas lógicas:
Apresentação
Representa a lógica de apresentação dos dados e a aplicação do usuário. Esta camada é normalmente implementada
no computador cliente.
Negócios
Inclui a lógica da aplicação e as regras de negócios. Pode estar no cliente ou no servidor. 
 
Dados
Inclui a de�nição de dados, integridade lógica, procedimentos armazenados e outras atividades relativas a gerencia e
manipulação dos dados. É implementada no SGBD.
Cliente Magro - Servidor
Gordo
Quando a maior parte das regras de
negócio residem no servidor. 
Cliente Gordo - Servidor
Magro
Quando a maior parte das regras de
negócio residem no cliente.
 Figura 2 – Tipos de Arquitetura Cliente/Servidor
Atenção
Os SGBDs possuem mecanismos que permitem posicionar a lógica da aplicação no servidor (stored procedures, triggers, check
constraints).
Funcionamento do Modelo Cliente Servidor
Na tecnologia Cliente/ Servidor, o processamento da informação é dividido em módulos ou processos distintos. Um processo
responsável pela manutenção da informação (servidor) e os outros responsáveis pela obtenção dos dados (os clientes).
 Figura 3 –Arquitetura Cliente/Servidor
https://stecine.azureedge.net/webaula/estacio/go0095/aula4.html
Esses módulos constituem:
Clique nos botões para ver as informações.
Provê uma interface entre o usuário e a aplicação;
Pode ser responsável pela validação dos dados digitados pelo usuário;
Envia solicitações ao servidor para realização de uma tarefa;
Manipula o processamento de entrada / saída dos dados.
Cliente ou Front-end 
Controla os recursos compartilhados como base de dados, impressoras, modens e processadores.
Servidor ou Back-end 
É um software de conectividade que permite que aplicações se comuniquem de forma transparente com outros
programas ou processos independentes de sua localização. O Middleware se posiciona entre a aplicação cliente e o
protocolo de comunicação da rede, e entre o protocolo de comunicação e a aplicação no servidor.
Middleware 
Veja um exemplo de Funcionamento:
Um usuário no front-end gera uma consulta ao servidor de banco de dados, e o aplicativo front-end envia o pedido para o
servidor através da rede. O servidor executa a pesquisa e retorna somente os dados que respondem a pergunta dos usuários.
 Figura 4 –Exemplo de Funcionamento Cliente/Servidor
Vejamos mais um exemplo, agora utilizando a arquitetura do SQL/Server, que é um Sistema Gerenciador de Banco de Dados da
Microsoft:
 Figura 5 –Funcionamento de uma Consulta no SQL/Server
A sistemática de uma consulta nesta arquitetura é a seguinte:
01 O aplicativo gera uma consulta utilizando uma linguagem de acesso, como o SQL;
02 O modulo de cliente de rede encapsula esta consulta em um pacote e a envia via rede para o servidor de BD;
03 O mecanismo de banco de dados recebe a consulta e a transforma em uma série de operações relacionais;
04 O Mecanismo de armazenamento prove o acesso físico recupera os dados e os passa ao mecanismo de banco;
05 O mecanismo de banco gera o resultado e o envia pela rede para o cliente;
06 O recebe o resultado e o exibe para o usuário;
Arquitetura Física de Sistemas Gerenciadores de Banco de Dados
Um SGBD nada mais é que um sistema composto por um grande conjunto de programas de computador. Este sistema é
extremamente complexo, mas de uma forma simpli�cada, pode ser decomposto nos seguintes componentes:
Clique nos botões para ver as informações.
O SGBD utiliza o Sistema Operacional para acessar os dados armazenados em disco, controlando o acesso concorrente
às tabelas do Banco de Dados. O Gerenciador controla todas as pesquisas (queries) solicitadas pelos usuários no modo
interativo, os acessos do compilador DML, os acessos feitos pelo Processador do Banco de Dados ao Catalogo e também
aos próprios dados.
Gerenciador de Arquivos 
Processa as de�nições do esquema do Banco de Dados, acessando quando necessário o Dicionário de Dados do Banco
de Dados.
Compilador DDL (Data De�nition Language) 
Contém o esquema do Banco de Dados, suas tabelas, índices, forma de acesso e relacionamentos existentes. É também
conhecido como Catálogo.
Dicionário de Dados 
Manipula requisições à própria Base de Dados em tempo de execução. É o responsável pelas atualizações e integridade
da Base de Dados.
Gerenciador de Banco de Dados 
Analisa as solicitações dos usuários e, se estas forem consistentes, aciona o Gerenciador de Banco de Dados para acesso
efetivo aos dados.
Processador de Consultas 
vinculado à linguagem hospedeira, as aplicações encaminham a ele seus pedidos de acesso, o qual os envia ao
Processador de consultas onde o Compilador DML gerará os códigos de acesso ao Banco de Dados.
Pré-Compilador DML (Data Manipulation Language) 
Armazenam o próprio banco de dados.
Arquivos de dados 
Funções e procedimentos previamente compilados disponíveis para uso pelas aplicações de usuário.
Aplicações em código objeto 
 Figura 6 –Arquitetura Simplificada de um SGBD
O Sistema Gerenciador de Banco de Dados como um serviço do Sistema Operacional
Conforme dito anteriormente, o SGBD é um conjunto de programas em execução, ou seja, um conjunto de processos.
Mas o SGBD tem algumas diferenças fundamentais em relação a aplicativos de usuário como, por exemplo, o Word. Ele tem
que �car disponível para acesso o tempo todo, à espera de uma requisição do usuário. Existem aqui, então, dois conceitos
diferentes:
Aplicação
É um programa executado por comando,
ele cria um processo e �ca ativo até ser
encerrado. 
Serviço
É um programa que �ca executando em
segundo plano, normalmente para oferecer
alguma funcionalidade de servidor.
https://stecine.azureedge.net/webaula/estacio/go0095/aula4.html
A �gura a seguir mostra o gerenciador de tarefas do Windows 10, onde podemos ver, na aba processos, os aplicativos e os
processos em segundo plano, em sua maioria serviços:
 Figura 7 – Gerenciadorde Tarefas do Windows 10
Todo servidor, portanto, e o SGBD não é exceção, instala-se
como um Serviço no Sistema Operacional e �ca em
segundo plano, esperando que o cliente faça uma requisição
de serviço.
A memória de trabalho do Sistemas Gerenciador de Banco de Dados
Todo programa, para poder executar, necessita de uma área de trabalho na memória. Em um SGBD essa área é utilizada para
manipular os dados do banco, bem como outras informações de controle do sistema.
Os dados de um banco de dados, conforme você já viu em aulas anteriores, �cam armazenados nos arquivos de dados.
Acontece que nenhum programa consegue manipular diretamente os dados no disco, isso acarreta que quando o SGBD
precisa acessar algum dado, ele deve levá-lo do disco para a memória, onde poderá consultá-lo e eventualmente alterá-lo. Se o
dado for alterado na memória, ele deverá ser salvo novamente no disco.
Os Arquivos do SGBD
Os SGBD possuem 3 tipos básicos de arquivos:
1
Dados
Onde são armazenados os dados do banco de dados.
2
Metadados ou catálogo
Onde são armazenadas as informações de controle do banco
de dados e a descrição dos dados armazenados.
3
Arquivos de log
Onde são armazenadas as operações realizadas nos dados.
Todos os arquivos de um SGBD residem no Sistema de Arquivos, o SGBD não tem controle direto sobre eles e toda operação de
leitura (transferência da disco para a memória) ou de gravação (transferência da memória para o disco) é realizada via
solicitação do Sistema Operacional.
Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online
Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online
 Estudo de Caso - ORACLE
 Clique no botão acima.
https://stecine.azureedge.net/webaula/estacio/go0095/aula4.html
O Oracle é o SGBD líder de mercado, sendo disponibilizado pela Empresa de mesmo nome.
Um servidor Oracle é composto de uma instância e seus arquivos. A �gura seguinte mostra a arquitetura básica do
SGBD:
Instância
Uma instância Oracle pode ser entendida como uma área reservada em memória, juntamente com um conjunto de
processos que rodam em background com o objetivo de controlar a integridade de todos os arquivos físicos do Oracle,
assim como toda a parte de integridade das informações e solicitações de usuários.
Em um único servidor pode-se instalar várias instâncias Oracle, porém cada instância, terá sua própria área reservada
em memória, assim como seu conjunto de processos rodando em background.
System Global Area (SGA)
System Global Area (SGA) é a área em memória que o Oracle reserva para seu funcionamento. Essa área é subdividida
em 3 subáreas:
Data Buffer Cache - é a área em memória que o Oracle utiliza como um Buffer para leitura em disco. O Oracle
nunca lê diretamente do disco, ele primeiro procura a informação no Data Buffer Cache, caso ele não ache, ele
então lê o próximo bloco (bloco Oracle) no disco, carrega no Data Buffer Cache. Caso ele não encontre, ele irá
repetir o processo até ele encontrar a informação desejada;
Redo Log Buffer - é utilizado para armazenar as informações a serem gravadas nos arquivos de log;
 Figura 8 – Arquitetura Básica do Oracle – Fonte Curso Administração Oracle
Shared Pool - serve tanto para armazenar os comandos SQL que são solicitados ao Oracle, quanto para os
objetos do dicionário para tratamento de privilégios. A Shared Pool é dividida em duas partes:
1. Library Cache - armazena todos os comandos SQL que são solicitados ao Oracle. Antes do Oracle compilar
o comando e de�nir seu plano de acesso (Parse), ele irá procurar na Library Cache se o comando já existe lá,
se já existir, ele aproveita a compilação e o plano de acesso do comando anterior;
2. Data Dictonary Cache - armazena informações de privilégios de usuários em cada objeto. Assim que um
comando é executado, o Oracle veri�ca se o usuário que está executando o comando, tem privilégios nos
devidos objetos que ele está querendo acessar.
Processos
Como já havia sido dito anteriormente, uma instância Oracle é formada por uma área reservada em memória (SGA) e
um conjunto de processos. Estes processos são programas que rodam em background, ou seja não tem interação
com o usuário e não consomem CPU quando estão idle (sem fazer nada).
System Monitor (SMON) - um processo obrigatório, que realiza qualquer recuperação no momento do Startup do
Oracle;
Database Writer (DBWR) - é um processo obrigatório, que grava os blocos de dados alterados nos arquivos do
Banco de Dados;
Process Monitor (PMON) é um processo obrigatório que realiza a recuperação de uma falha de usuário do Bando
de Dados. Ele assume a identidade do usuário defeituoso, liberando todos os recursos do Banco de Dados que o
usuário estava mantendo;
Checkpoint (CKPT) - serve para gravar de tempos em tempos todos os blocos alterados (sujos) que estão em
memória. Ele é responsável também por atualizar o Control-File da troca de arquivos de log;
Log Writer (LGWR) - é um processo obrigatório e é responsável por gravar e ler os Redos Logs;
Archiver (ARCH) - é um processo opcional, só irá trabalhar se o Oracle estiver trabalhando no modo ARCHIVELOG.
Ele será responsável por arquivar as informações do Log para um outro arquivo, para que o Oracle possa
sobrescrever o arquivo de log;
Processos do Usuário (Cliente) – quando um usuário se conecta ao servidor é criado um processo em seu nome
solicitando informações dos processos servidor;
Processos do Servidor (Servidor) - pegam as solicitações dos processos dos usuários e se comunicam com o
Banco de Dados.
Arquivos
Parameter File - é o arquivo de inicialização do Oracle. O Oracle irá atribuir os valores para seus parâmetros de
inicialização, no momento do startup e qualquer alteração nos valores destes parâmetros, só serão reconhecidos
quando for feito o próximo startup;
Password File - é o arquivo que contém a senha da instância;
Data Files - são os arquivos físicos onde o Oracle vai guardar seus dados, Sejam dados temporários ou
permanentes;
Log Files - são os arquivos de Redo Log, neles são registrados todas as transações feitas no Banco de Dados. Os
Log Files juntamente com os Archives servem para recuperar a integridade do Banco de Dados no caso de uma
falha;
Control File - é responsável por manter a integridade física e lógica, assim como o sincronismo entre todos os
Data Files e Log Files. Este arquivo é tão importante que é recomendado trabalhar com no mínimo 2 control �les,
sendo que um é a cópia do outro e, logicamente, devem �car em discos diferentes.
Notas
Cliente Gordo - Servidor Magro
O uso do cliente Gordo ou do Servidor Gordo é uma decisão de projeto. Cada uma das soluções possui características
diferentes:
Cliente Gordo
Facilidade no desenvolvimento de aplicações decorrente da variedade de ferramentas de desenvolvimento, com
capacidades ODBC (Open Database Conectivity);
Possível sobrecarga na rede, pois o processamento da lógica da aplicação ocorre no cliente;
Cliente mais sensível à mudança, pois a lógica da aplicação é replicada nos clientes;
Menos processamento no servidor.
Servidor Gordo
Aplicativos clientes que acessam os dados terão as mesmas regras de negócio impostas na base de dados;
Possível gargalo no banco de dados decorrente do maior processamento no servidor;
Eliminação da portabilidade entre bancos de dados relacionais, visto que as stored procedures apresentam uma
linguagem proprietária;
Menos processamento no servidor.
Manutenção mais simples;
Menor tráfego de rede.
processos
De forma simpli�cada podemos de�nir processo como um programa em execução. Cada atividade a ser realizada em um
computador consiste na execução de um ou mais programas que são chamados toda vez que a respectiva função é requerida.
Usa-se a palavra processo para descrever uma atividade desse tipo. Assim, um processo pode ser considerado como sendo a
sequência de ações realizadas pela execução de instruções (um programa) cujo resultado fornece uma das funções do
sistema.
Esse conceito pode ser estendidode forma que inclua as funções do usuário. Então, a execução de um programa de um
usuário é também um processo. Um processo pode envolver a execução de mais de um programa e por outro lado, um mesmo
programa pode ser requerido por mais de um processo.
Sistema de Arquivos
Um arquivo pode ser entendido como um conjunto de dados armazenados em um dispositivo físico não-volátil, com um nome
ou outra referência que permita sua localização posterior. Do ponto de vista do usuário e das aplicações, o arquivo é a unidade
básica de armazenamento de informação em um dispositivo não-volátil, pois para eles não há forma mais simples de
armazenamento persistente de dados. O Sistema de Arquivos pode ser entendido então como a organização física e lógica dos
dados armazenados de forma persistente em um dispositivo físico não volátil. Existem vários sistemas de arquivos nos SO
dentre os quais podemos citar FAT e NTFS do Windows.
Referências
DATE, C. J. Introdução a sistemas de banco de dados. 7. ed. Rio de Janeiro: Campus, 2000.
ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. 6. ed. São Paulo: Pearson Addison Wesley, 2011.
SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistemas de banco de dados. 5. ed. Rio de Janeiro: Campus, 2006.
Próxima aula
Estruturas de armazenamento;
Organização de arquivos.
Explore mais
Documentação do SQL Server;
PostgreSQL: o banco de dados relacional de código aberto mais avançado do mundo;
Documentação Oracle..
javascript:void(0);
javascript:void(0);
javascript:void(0);

Continue navegando