arquitetura de sistemas de banco de dados - 2 - alunos

Post on 07-Jun-2015

7.437 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Arquitetura de Sistemas de Bancos de Dados

Claudio J. BiazusE-mail: cbiazus@inf.ufsc.br

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.

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.

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

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.

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;

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.

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.

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;

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.

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.

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:

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.

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.

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.

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.

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.

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.

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.

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.

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”

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”

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.

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.

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.

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.

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.

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.

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

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

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.

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.

2.12 Processamento Distribuído

Aplicações

SGBD Servidor

Usuários finais

Clientes

Fig. ArquiteturaCliente/servidor

Banco de dados

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.

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.

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.

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.

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

2.12 Processamento Distribuído

SGBD Máquina servidora

Máquina cliente

Rede de comunicação

Fig. Um equipamento servidorvários equipamentos clientes

. . .

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.

2.12 Processamento Distribuído

Rede de comunicação

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

ClienteServidor

ClienteServidor

ClienteServidor

ClienteServidor

ClienteServidor

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

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.

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.

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.

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.

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;

top related