arquitetura de sistemas de banco de dados - 2 - alunos

47
Arquitetura de Sistemas de Bancos de Dados Claudio J. Biazus E-mail: [email protected]

Upload: sorrisosv

Post on 07-Jun-2015

7.437 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

Arquitetura de Sistemas de Bancos de Dados

Claudio J. BiazusE-mail: [email protected]

Page 2: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.1 Introdução

• Agora temos condições de apresentar uma arquitetura para um sistema de banco de dados.

• Nosso objetivo é fornecer um “arcabouço” para descrever conceitos gerais de banco de dados.

• Explicar a estrutura de sistemas de banco de dados específicos.

Page 3: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.2 Os Três Níveis da Arquitetura

• A arquitetura ANSI/SPARC se divide em três níveis: inteiro, conceitual e externo.

• O nível interno: (físico) é o mais próximo do meio de armazenamento físico – ou seja, ele se ocupa do modo como os dados são fisicamente armazenado.

• O nível externo: (lógico do usuário) é o mais próximo dos usuários – ou seja, ele se ocupa do modo como os dados são vistos por usuários individuais.

• O nível conceitual: (lógico comunitário, ou apenas indireto) é o nível de “simulação” entre o nível interno e o nível externo.

Page 4: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

4

NívelFísico

Visão 1 Visão 2 Visão N

NívelConceitual

BD

Nível externoVisões de usuários

Visão da comunidade de usuários

Visão da meio dearmazenamento

Page 5: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.3 O Nível Externo

• O nível externo é o nível do usuário individual.• Um usuário pode ser Programador de Aplicações ou um

Usuário Final (solicitação).– Para o programador de aplicações: a linguagem

utilizada é uma linguagem de “quarta geração”. Exemplo: PL/I, C++, Java, etc...

– Para o usuário final: a linguagem é uma linguagem de consulta ou de uso especial, através de formulários ou menus, adaptada aos requisitos do usuário com suporte a programas aplicativos on-line.

Page 6: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.4 O Nível Conceitual

• A visão conceitual é uma representação de todo o conteúdo de informações do banco de dados.

• É uma forma um tanto abstrata em comparação com o modo como os dados são armazenados fisicamente.

• A visão conceitual consiste em muitas ocorrências de cada um dos vários tipos de registros conceituais. Por exemplo:– Coleção de registros de departamentos;– Coleção de registros de empregados;– Coleção de registros de fornecedores;– Coleção de registros de peças;

Page 7: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.4 O Nível Conceitual

• Um registro conceitual não é necessariamente o mesmo que um registro externo, nem o mesmo que um registro armazenado.

• A visão conceitual é definida por meio do esquema conceitual, que inclui definições de cada um dos vários tipos de registros conceituais.

• A visão conceitual é uma visão do conteúdo total do banco de dados, e o esquema conceitual é uma definição dessa visão.

• As definições no esquema conceitual pretendem incluir muitos recursos adicionais, como as restrições de segurança e integridade.

Page 8: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.5 O Nível Interno

• A visão interna é uma representação de baixo nível do banco de dados por inteiro.

• Consiste em muitas ocorrências de cada um dos vários tipos de registros internos.

• Corresponde a construção que chamamos de registro armazenado.

• A visão interna ainda está muito afastada do nível físico “não manipula registros físicos” – conhecidos por blocos ou páginas.

• Também não leva em consideração especificações específicas de dispositivos, tais como tamanho do cilindro ou trilha.

Page 9: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.5 O Nível Interno

• A visão interna é descrita por meio do esquema interno.• Não só define os diversos tipos de registros armazenados

mas também especifica:– Quais índices existem;– Como os campos armazenados estão representados;– Em que seqüência física estão os registros

armazenados;

Page 10: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.6 Mapeamentos

• Além dos três níveis básicos, uma arquitetura envolve, em geral certos mapeamentos:O mapeamento conceitual/interno – Define a correspondência entre a visão conceitual e o

banco de dados armazenado;– O modo como os registros e campos conceituais são

representados no nível interno.• Se a estrutura do banco de dados armazenado for alterada

– o mapeamento conceitual/interno terá de ser alterado para que possa permanecer invariável.

Page 11: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.6 Mapeamentos

Mapeamento externo/conceitual– Define a correspondência entre uma visão externa

específica e a visão conceitual;– Em geral, as diferenças que podem existir entre esses dois

níveis são semelhantes às que podem existir entre a visão conceitual e o banco de dados armazenado. Por exemplo:

• Os campos podem ter diferentes tipos de dados;• Os nomes de campos e registros podem ser alterados;• Vários campos conceituais podem ser combinados em um

único campo externo.

Page 12: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.7 O Administrador do Banco de Dados

• O administrador de dados – DA – é a pessoa que toma as decisões estratégicas com relação aos dados da empresa.

• O administrador do banco de dados – DBA – é a pessoa que fornece o suporte técnico necessário para implantar as decisões.

• Assim, podemos descrever algumas das atribuições do DBA:

Page 13: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.7 O Administrador do Banco de Dados

• Definir o esquema conceitual– Cabe ao administrador de dados decidir quais

informações devem ser mantidas no banco de dados.– Identificar as entidades de interesse para a empresa e

identificar as informações a serem registradas.– Esse processo é referenciado como projeto lógico - de

banco de dados.– Uma vez que o DA tenha definido o conteúdo, o DBA

então criará o esquema conceitual correspondente usando a linguagem de definição de dados.

Page 14: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.7 O Administrador do Banco de Dados

• Definir o esquema interno– O DBA também decidir como serão representados os

dados no banco de dados armazenado.– Em geral, esse processo é chamado projeto de banco

de dados físico.– O DBA também deve definir o mapeamento

conceitual/interno associado.

Page 15: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.7 O Administrador do Banco de Dados

• Ligação com usuários– A tarefa do DBA é fazer a ligação com os usuários, a

fim de garantir que os dados de que eles necessitam estão disponíveis.

– Deve escrever os esquemas externos necessários, usando a linguagem de definição de dados externa aplicável.

– Os mapeamentos externos/conceituais correspondentes também devem ser definidos.

Page 16: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.7 O Administrador do Banco de Dados

• Definir restrições de segurança e integridade– As restrições de segurança e integridade podem ser

consideradas uma parte do esquema conceitual.– A linguagem de definição de dados conceitual deve

incluir recursos para a especificação de tais restrições.

Page 17: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.7 O Administrador do Banco de Dados

• Definir normas de descarga e recarga– Uma vez que a empresa esteja comprometida com um

sistema de banco de dados, ela se tornara dependente do sucesso desse sistema.

– Em caso de danos a qualquer parte do banco de dados – provocado por erro humano, falho do hardware, sistema operacional.

– É necessário reparar os dados em questão com um mínimo de demora e com o menor efeito possível sobre o restante do sistema.

– Por exemplo: as dados que não tenham sido danificados não devem ser afetados.

Page 18: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.7 O Administrador do Banco de Dados

• Monitorar o desempenho e responder a requisitos de mudanças– O DBA é responsável pela organização do sistema de

modo a se obter o melhor desempenho possível.– É responsável por fazer os ajustes apropriados.– Por exemplo: poderia ser necessário reorganizar o

banco de dados armazenando de tempos em tempos para assegurar que os níveis de desempenho permanecerão aceitáveis.

Page 19: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.8 O Sistema de Gerenciamento de Bancos de Dados

• O sistema de gerenciamento de bancos de dados (SGBD) é o software que trata de todo o acesso ao banco de dados:1. Um usuário faz um pedido de acesso usando uma

determinada sublinguagem de dados (em geral em SQL).2. O SGBD intercepta o pedido e o analisa.3. O SGBD inspeciona, o esquema externo para esse usuário,

o mapeamento externo/conceitual correspondente, o esquema conceitual, o mapeamento conceitual/interno e a definição da estrutura de armazenamento.

4. O SGBD executa as definições necessárias sobre o banco de dados armazenado.

Page 20: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.8 O Sistema de Gerenciamento de Bancos de Dados

• Vamos examinar agora as funções de SGBD com um pouco mais de detalhes.

• Essas funções incluirão o suporte a pelo menos todos os itens a seguir:– Definição de dados;– Manipulação de dados;– Otimização e execução;– Segurança e integridade de dados;– Recuperação e concorrência de dados;– Dicionário de dados;– Desempenho.

Page 21: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.8 O Sistema de Gerenciamento de Bancos de Dados

Definição de dados• O SGBD deve ser capaz de aceitar definições de dados

(esquemas externos, esquema conceitual, esquema interno e todos os mapeamentos associados) em formato fonte e convertê-los para o formato objeto apropriado.

• Por exemplo: ele deve entender que os registros externos EMPREGADO incluem um campo SÁLARIO;

• E deve então ser capaz de usar esse conhecimento para analisar e responder ao pedido: “obtenha todos os empregados com salário < R$ 50.000,00”

Page 22: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.8 O Sistema de Gerenciamento de Banco de Dados

Manipulação de dados• O SGBD deve ser capaz de lidar com solicitações do

usuário para buscar, atualizar e excluir dados existentes no B.D.

• Ou acrescentar novos dados ao banco de dados.• As solicitações de (DML – Linguagem de Manipulação

de Dados) podem ser “planejadas” ou “não-planejadas”

Page 23: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.8 O Sistema de Gerenciamento de Banco de Dados

• Uma solicitação planejada é aquela para a qual a necessidade foi prevista com antecedência em relação ao momento em que a solicitação é executada.

• Exemplo: O DBA ajusta o projeto físico para atender a solicitação planejada.

• Uma solicitação não-planejada é uma consulta ad hoc, isto é, uma solicitação cuja necessidade não foi prevista com antecedência e surgiu no último instante.

• Exemplo: O projeto físico pode estar ou não adaptado de forma ideal para a solicitação.

Page 24: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.8 O Sistema de Gerenciamento de Banco de Dados

Otimização e execução• As requisições de DML, planejadas ou não-planejadas,

devem ser processadas pelo componente otimizador, cujo propósito é determinar um modo eficiente de implementar a requisição.

• As requisições otimizadas são então executadas sob o controle do gerenciador em tempo de execução.

Page 25: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.8 O Sistema de Gerenciamento de Banco de Dados

Segurança e integridade de dados• O SGBD deve monitorar requisições de usuários e rejeitar

toda tentativa de violar as restrições de segurança e integridade definidas pelo BDA.

• Essas tarefas podem ser executadas em tempo de compilação ou em tempo de execução, ou combinado compilação e execução.

Page 26: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.8 O Sistema de Gerenciamento de Banco de Dados

Recuperação e concorrência de dados• O SGBD – ou algum componente de software

relacionado, chamado gerenciador de transações ou monitor de processamento de dados, deve impor certos controles de recuperação e concorrência.

• Obs.: Em geral não faz parte do SGBD.

Page 27: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.8 O Sistema de Gerenciamento de Banco de Dados

Dicionário de dados• O SGBD deve fornecer uma função de dicionário de

dados.• O dicionário de dados é um banco de dados do sistema e

não um banco de dados do usuário.• O dicionário contém “dados sobre os dados” (chamados

de metadados).• Ou seja, definições de outros objetos do sistema, em vez

de “dados brutos”.• Em particular, todas as restrições de segurança e

integridade estarão armazenadas, tanto na forma de fonte quanto de objeto, no dicionário.

Page 28: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.8 O Sistema de Gerenciamento de Banco de Dados

Desempenho• É desnecessário dizer que o SGBD deve realizar todas as

funções identificadas anteriormente de forma tão eficiente quanto possível.

Page 29: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

dados

Metadados (dicionário de dados)

banco de dados

Otimizador

Gerenciador tempo de execução

Processadores de DDL

Processadores de DML

Processadores de linguagem de consulta

requisiçõesotimizadas

requisiçõescompiladas

metadadosesquema e fonte

e objeto e mapeamento

esquema e fontee mapeamento

Requisições deDML planejadas

Requisições deDML não-planejadas

Impõem restrições

de segurançae integridade

Page 30: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

30

Interfaces doAplicativo

ProgramasAplicativos Consulta Esquema de

Banco de Dados

Pré-compiladorda linguagem de

manipulação de dados

Processadorde consultas

Compilador delinguagem de

definição de dados

UsuáriosComuns

Programadoresde Aplicação

Usuários deAlto Nível

Administradorde banco de dados

Gerenciador de banco de dados

Código-objetode programas

aplicativos

Disco deArmazenamentoArquivos

de dadosDicionário de

dados

Gerenciadorde Arquivos

Sistema gerenciadorde banco de dados

Estrutura do SGBD

Page 31: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.9 O Gerenciamento de Comunicação de

de Dados• As requisições feitas pelo usuário final, são transmitidas da

estação de trabalho do usuário – para alguma aplicação on- line (embutida ou não), e daí até o SGBD, sob a forma de mensagens de comunicação.

• Da mesma forma, as respostas do SGBD com a aplicação on-line.

• O gerenciador de Comunicação de dados não faz parte SGBD, ele é um sistema autônomo.

• Mas o gerenciador de Comunicação de dados e o SGBD devem trabalhar em harmonia.

Page 32: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.10 Arquitetura Cliente/Servidor

• Um sistema de banco de dados pode ser considerado como tendo uma estrutura muito simples em duas partes: Servidor / Clientes.– O servidor é o próprio SGBD. – Ele têm todas as funções básicas do SGBD – definição de

dados, manipulação de dados, segurança e integridade de dados.

– Os clientes são as diversas aplicações executadas sobre o SGBD – tanto aplicações escritas por usuários quanto aplicações internas.

– Ou seja, aplicações fornecidas pelo fabricante do SGBD ou por produtores idependentes.

Page 33: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.12 Processamento Distribuído

Aplicações

SGBD Servidor

Usuários finais

Clientes

Fig. ArquiteturaCliente/servidor

Banco de dados

Page 34: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.10 Arquitetura Cliente/Servidor

• Aplicações escritas por usuários são basicamente programas aplicativos comuns, escritos em uma linguagem de programação convencional de 4G.

• Aplicações fornecidas por fabricante são aplicações cuja finalidade básica é auxiliar na criação e execução de outras aplicações. Exemplo: Gerador de relatórios.

Page 35: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.10 Arquitetura Cliente/Servidor

• As ferramentas fornecidas pelo fabricante podem ser dividas em classes:– Processadores de linguagem de consulta (XML, SQL,

XQUERY).– Geradores de relatórios (SARG ).– Subsistemas gráficos de negócios. – Planilhas eletrônicas.– Processadores de linguagem natural (ELIZA ).– Pacotes estatísticos.– Ferramentas para gerenciamento de cópias “extração de dados”.– Geradores de aplicações (Incluindo processadores L4G).– Outras ferramentas para desenvolvimento de aplicações,

software de engenharia de software.

Page 36: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.11 Utilitários

• Utilitários são programas projetados para auxiliar o DBA com diversas tarefas administrativas.

• Alguns exemplos de utilitários:– Rotinas de carga, a fim de criar a versão inicial do

banco de dados a partir de um ou mais arquivos de sistema operacional.

– Rotinas de descarregamento ou recarregamento, a fim de descarregar o banco de dados, ou partes dele, para o meio de armazenamento de backup e recarregar dados desse backup.

Page 37: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.11 Utilitários

– Rotinas de reorganização, para rearranjar os dados no banco de dados. Por exemplo: agrupar dados no disco, ou para reaver o espaço ocupado por dados obsoletos.

– Rotinas estatísticas, a fim de calcular diversas estatísticas de desempenho, tais como tamanhos de arquivos e distribuição de valores de dados ou contagens de E/S.

– Rotinas de análise, a fim de analisar as estatísticas mencionadas.

Page 38: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.12 Processamento Distribuído

Aplicações

SGBD Máquina servidora

Máquina cliente

Acesso remoto transparente

Fig. Cliente(s) e servidoresrodando em máquinas

diferentes

Page 39: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.12 Processamento Distribuído

SGBD Máquina servidora

Máquina cliente

Rede de comunicação

Fig. Um equipamento servidorvários equipamentos clientes

. . .

Page 40: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

40

2.12 Banco de Dados Distribuídos

• O banco de dados é armazenado em diversos computadores que se comunicam através de uma tecnologia de rede;

• Um banco de dados distribuído consiste em uma coleção de nós, cada qual podendo participar na execução de transações que fazem acesso a dados em um ou diversos nós;

• A execução das transações entre os nós devem ser transparente para o usuário.

Page 41: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

2.12 Processamento Distribuído

Rede de comunicação

Fig. Cada máquina pode rodar tantoCliente(s) servidor

ClienteServidor

ClienteServidor

ClienteServidor

ClienteServidor

ClienteServidor

Page 42: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

42

Site 4

Site 2

Site 3

Site 5

Site 1

Rede

Banco de Dados Centralizado

Site 4

Site 2

Site 3

Site 5

Site 1

Rede

Banco de Dados Distribuído

Page 43: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

43

Prós

• Controle distribuído;• Diminuição nos custos de comunicação e

equipamentos;• Confiabilidade;• Disponibilidade;• Facilidade no crescimento modular (escalabiliade);• Aceleração das consultas.

Page 44: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

44

Contras

• Maiores custo e complexidade de desenvolvimento, tanto do SGBD quanto do esquema de dados;

• Dificuldades da coordenação e controle dos dados arnazenados;

• Aumento na troca de mensagens para sincronização e controle.

Page 45: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

45

Autonomia

• Autonomia se refere a distribuição do controle;• Indica o grau de independência de um SGBD;• Funções consideradas:

– Se os componentes do sistema trocam informação;– Se eles podem independentemente executar

transações;– Se é permitido que um componente influencie os

outros.

Page 46: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

46

Dimensões de Autonomia

• Autonomia de Projeto: SGBDs individuais são livres para usar o modelo de dados e as técnicas de gerenciamento de trasações que eles preferirem;

• Autonomia de Participação: Cada SGBD local tem o direito de decidir como irá participar no sistema distribuído;

• Autonomia de Comunicação: Cada SGBD é livre para decidir que tipo de informação ele deseja trocar e o software que fará o controle das trasações;

• Autonomia de Execução: Cada SGBD pode executar as transações que são submetidas a ele de várias formas basta ele escolher qual é a melhor.

Page 47: Arquitetura de Sistemas de Banco de Dados - 2 - Alunos

47

Questões relacionadas ao armazenamento distribuído

• Duplicação: O sistema mantém diversas cópias idênticas armazenadas em nós diferentes;– Vantagens: Maior disponibilidade e aumento do

paralelismo;– Desvantagem: aumento da sobrecarga na

atualização;• Fragmentação: A relação é dividida em vários

fragmentos. Cada fragmento é armazenado em um nó diferente. Existem dois tipos de fragmentação: Horizontal e vertical;