Gerenciador de Banco de Dados
Os bancos de dados requerem tipicamente um grande espaço de armazenamento. Os bancos de dados corporativos são medidos geralmente em gigabytes, ou, para os maiores, terabytes de dados. Um gigabyte equivale a 1000 megabytes (um bilhão de bytes) e um terabyte representa um milhão de gigabytes. Visto que a memória principal de um computador não pode armazenar essas informações, ela é armazenada em discos. Os dados são movidos entre discos de armazenamento e a memória principal conforme a necessidade. Uma vez que esse movimento de dados é bastante lento em comparação com a velocidade da unidade central de processamento (UCP ou CPU, Central ProcessingUnit), é imperativo que o sistema de banco de dados estruture
os dados de forma a minimizar o movimento de dados entre os discos e a memória principal.
A finalidade de um sistema de bancos de dados é simplificar e facilitar o acesso aos dados. Visões do usuário de alto nível ajudam-nos a atingir isto. Os usuários do sistema não devem preocupar-se desnecessariamente com os detalhes físicos da implementação do sistema. Contudo, o principal fator na satisfação de um usuário com o sistema de bancos de dados é seu desempenho. Se o tempo de resposta a uma solicitação é muito longo, o valor do sistema é diminuído. O desempenho de um sistema depende da eficiência das estruturas de dados usadas para representar os dados no banco de dados. E, se for o caso, a vantagem não deve ser dada apenas entre espaço e t e m p o , m a s t a m b é m e f i c i ê n c i a d e u m t i p o d e operação versus outra.
Interação com o gerenciamento de arquivos. Os dados não
trabalhados são armazenados no disco usando o sistema gerenciador de arquivos, que geralmente é fornecido por algum sistema operacional. O gerenciador de banco de dados traduz os diversos comandos da DML em comandos de baixo nível do gerenciador de arquivos. Portanto, o gerenciador de banco de dados é responsável pelo armazenamento, pela busca e pela atualização de dados no banco de dados.
Cumprimento de integridade. Os valores de dados
armazenados num banco de dados precisam satisfazer certos tipos de restrições de consistência. Por exemplo, o número de horas que um empregado pode trabalhar em uma semana não pode ultrapassar um limite estabelecido (digamos, 80 horas). Tal restrição precisa ser especificada explicitamente pelo administrador do banco de dados. O sistema gerenciador de banco de dados pode então determinar se as atualizações no banco de dados resultam numa violação da restrição; em caso positivo, ações apropriadas precisam ser tomadas.
Cumprimento de segurança. Como discutido anteriormente,
nem todo usuário do banco de dados necessita ter acesso a todo o banco de dados, para impor requisitos de segurança de acesso aos dados.
Cópias de reserva (backup) e recuperação (restore). Um
computador, como qualquer outro dispositivo mecânico ou elétrico, está sujeito a falhas. As causas das falhas incluem quebras de disco, falhas na energia e erros de software. Em cada um dos casos, as informações que se referem ao banco de dados podem ser perdidas. É responsabilidade do sistema gerenciador do banco de dados detectar tais falhas e restabelecer o estado do banco de dados como estava antes da ocorrência da falha. Isto é feito normalmente através da ativação de diversos procedimentos de recuperação e de cópias de reserva.
Controle de concorrência. Se diversos usuários atualizam
dados pode não ser mais preservada. Controlar a interação entre usuários simultâneos é outra atribuição do gerenciador de banco de dados.
Sistema de banco de dados projetados para uso em pequenos computadores pessoais podem não ter todos os recursos descritos acima. Por exemplo, muitos sistemas pequenos restringem o acesso a apenas um usuário de cada vez. Outros atribuem ao usuário tarefas como cópias de segurança, recuperação e imposição de segurança. Isto permite um gerenciador de BD menor, com menor requerimento de recursos, especialmente no que diz respeito à memória principal. Por outro lado, assim como os baixos custos e baixos recursos são suficientes para pequenos bancos de dados pessoais, porém eles são inadequados para satisfazer as necessidades de empreendiementos de média ou larga escala.
Autor: André Sanches
Sistema de Gerenciamento de
Banco de Dados
Cliente-Servidor
E m s u a f o r m a m a i s s i m p l e s , u m b a n c o d e d a d o s c l i e n t e s e r v i d o r ( C / S ) d i v i d e o processamento do banco de dados entre dois sistema: o cliente (geralmente um PC) executando a aplicação do banco de dados, e o servidor do banco de dados que executa todo o DBMS ou parte dele.
compartilhado, com impressora e espaço em disco para aplicações. O servidor de banco de dados pode executar no mesmo PC do servidos de arquivo, ou, como acontece mais habitualmente, em seu próprio computador, que virar em termo de tamanho, desde um PC até um mainframe. A aplicação de banco de dados no cliente, citado como sistema auxiliar, manipula todo o processamento de entrada e saída de tela e usuário.
O sistema especializado no servidor manipula o processamento dedados e os acessos de discos. Por exemplo, um usuário no sistema auxiliar cria uma solicitação, conhecida como consulta, de dados do banco de dados, e a aplicação auxiliar envia a solicitação através da rede para o servidor. O servidor debanco de dados faz a verdadeira operação de busca e retorna somente os dados que preencham corretamente a consulta do usuário.
A vantagem imediata do sistema cliente servidor é óbvio: dividindo o processamento entre dois sistemas, a intensidade do trafego de dados na rede diminui consideravelmente. O latência também aumenta, executando-se o BDMS num sistema de alta potência, sem incorrer na despesa de atualização de todo sistema cliente, que seria necessário se todo o processamento fosse feito num PC local.
Cliente / Servidor
Na arquitetura centralizada, existe um computador com grande capacidade de processamento, o qual é o hospedeiro do SGBD e emuladores para os vários aplicativos. Esta arquitetura tem como principal vantagem a de permitir que muitos usuários manipulem grande volume de dados. Sua principal desvantagem está no seu alto custo, pois exige ambiente especial para mainframes e soluções centralizadas.
Na Cliente-Servidor, o cliente (front_end) executa as tarefas do aplicativo, ou seja, fornece a interface do usuário (tela, e processamento de entrada e saída). O servidor (back_end) executa as consultas no DBMS e retorna os resultados ao cliente. Apesar de ser uma arquitetura bastante popular, são necessárias soluções sofisticadas de software que possibilitem: o tratamento de transações, as confirmações de transações (commits), desfazer transações (rollbacks), linguagens de consultas (stored procedures) e gatilhos
Vantagens
Suas soluções são menos dispendiosas do que as de minicomputadores ou mainframes alternativos de necessidades de infraestrutura de inicialização; Suas soluções permitem que o usuário final utilize a GUI do microcomputador, aprimorando, assim, a funcionalidade e a simplicidade. Em particular, a utilização do navegador da web, universalmente disponível, em conjunto com modelos de Java e .NET, fornece uma interface familiar ao usuário final;
Mais pessoas no mercado de trabalho possuem habilidades com PC do que com mainframe. A maior parte dos alunos da nova geração está aprendendo habilidades de programação Java e .NET;
O PC é bem mais estabelecido no local de trabalho. Além disso, o crescimento do uso da internet como um canal de negócios, aliado aos avanços de segurança (SSL, Redes Privadas Virtuais, autenticação de multifatores, etc.), fornece plataforma mais confiável e segura para as transações comerciais;
Existem várias ferramentas de análise e consulta de dados para facilitar a interação com muitos SGBDs disponíveis no mercado de PCs;
Há uma considerável vantagem de custos para o desenvolvimento de aplicações offloading do mainframe para PCs poderosos.
Desvantagens
O a m b i e n t e c l i e n t e / s e r v i d o r t o r n a p o s s í v e l a disseminação do acesso aos dados a um círculo de usuários muito mais amplos. Esse ambiente amplia a demanda por pessoal com profundo conhecimento de computadores e aplicativos. Os encargos de treinamento elevam o custo de manutenção do ambiente.
Mapa Mental de Banco de Dados
- Regras
Mapa Mental de Banco de Dados – Regras
Mapa Mental de BD - Banco de
Dados Relacional
Mapa Mental de BD – Banco de Dados Relacional
Mapa Mental de BD - Banco de Dados Relacional
Banco de Dados Temporais
de acordo com uma sucessão específica e predefinida de tempo. Um período de tempo é representado por um ponto inicial e um ponto final. Essa representação, assim como nos conjuntos matemáticos, podem ser representados por intervalos abertos ou fechados.
Para representação de dados temporais utiliza-se os seguintes
t i p o s d e
dados: DATE, TIME,DATETIME, TIMESTAMP, INTERVAL e PERIOD.
Informação de evento contra
informação de duração(ou estado)
Um banco de dados temporal armazena as informações sempre que ocorre um dado evento ou quando um evento é considerado verdadeiro. Um evento pontual, ou fato pontual, normalmente são associados aos bancos de dados por um único ponto de tempo representado por alguma granularidade. Esta informação é frequentemente representado por uma série de dados temporal. Série de dados temporal envolvem valores que são registrados de acordo com uma sucessão específica e predefinida de tempo(ELMASRI, NAVATHE, 2005).Os eventos de duração, por um outro lado, podem ser referenciados por um período de tempo específico em um banco de dados(ELMASRI, NAVATHE, 2005), e.g., um funcionário ocupou a diretoria de uma empresa entre o período de 20 de março de 2008 à 31 de outubro de 2008.
Tempo válido e dimensões de tempo
de transação
Dado um evento associado a um ponto ou a um período de tempo específico, pode-se apresentar significados diferentes. Devido a este fato é preciso interpretar os significados destas associações, a forma mais natural, é que o tempo associado é aquele em que o evento aconteceu ou o período em que o evento foi considerado verdadeiro(ELMASRI, NAVATHE, 2005). Caso se empregue este tipo de interpretação diz-se que o tempo associado é um tempo válido. Bancos de dados temporais que utilizam-se dessa interpretação são denominados banco de dados de tempo válido.
Uma outra interpretação utilizada é aquela onde o evento associado refere-se ao tempo de fato em que a informação foi armazenada no banco de dados. Tal interpretação de evento associado é denominadatempo de transação, e os banco de dados temporais que trabalham sobre esse paradigma são conhecidos como banco de dados de tempo de transação.
Ordenação
O tempo é um aspecto essencial na ocorrência dos fatos e pode ser classificado em diversos ordens, como:
Ordem Linear: presume-se que o tempo flui de forma linear, entre dois pontos, do passado ao futuro;
Ordem Ramificada: um dado pode ter diversos sucessores ou predecessores. Ex: Uma certa decisão pode gerar um entre diversas opções de resultados;
Aplicações
Algumas aplicações onde o controle e acesso a informações temporais são fundamentais:
Área Médica Área Empresarial Aplicações Financeiras Controle de Produção Gerenciamento de Vendas Gestão de Pessoas
Controle AcadêmicoSistemas de Informações Geográficas Sistema de Reservas
Outros
Outras dimensões
Existem outros tipos de interpretação porém as acima citadas são as mais comumente encontradas, e são chamadas de dimensões de tempo. Uma dada aplicação pode necessitar de apenas uma dimensão, já em outra, faz-se necessário a presença de ambas dimensões, neste caso o banco de dados é dito banco de dados bi-temporal.
Pode-se ainda haver a necessidade de outras interpretações do tempo, e estas interpretações serão definidas especificamente para a aplicação, tais bancos serão chamados de banco de dados de tempo definido pelo usuário.
Exemplo
M o d e l o r e f e r e n t e a s t a b e l a s d o b a n c o exemplificado
A tabela Empregado conta com dois campos: PK_IDEMP e NOME, e receberá o nome dos funcionários de uma empresa fictícia. A tabela Funcao, assim como a tabela Empregado, possue dois campos: PK_IDFUNCAO e DESCRICAO, e armazenará a descrição da função exercida por um dado empregado. A relação existente entre as duas gera uma terceira tabela denominada Emp_Funcao, que armazenará todas as funções que um empregado exercer na empresa.
Note que existem dois campos na tabela Emp_Funcao que são tipos que representam datas em banco de dados. Os campos são INICIO e FIM, e receberão o START TIME e o END-TIME, respectivamente. Para este exemplo será levado em conta a granularidade de dia.
Registros de Empregados e Funções
A figura mais abaixo mostra algumas versões de tuplas de tempo válido: duas versões para JOÃO, três para MARIA, uma para JOSÉ e uma para JOANA. Sempre que haver alguma alteração de um funcionário, e.g., promoção, demissão, etc., o seu campo FIM é mudado para o valor do término e, dependendo da situação, uma nova tupla é inserida com as novas informações.
As tuplas 1 e 2 da figura abaixo tem-se a movimentação das funções para o empregado JOÃO, a segunda tupla da relação indica que foi realizada uma promoção e à medida que a mesma se concretizou(1º de Julho de 2008) a primeira tupla teve seu encerramento um dia antes(30 de Junho de 2008 –GRANULARIDADE DE DIA). A segunda tupla passou a ser a corrente e a anterior passou a ser umaversão fechada ou histórica.
O registros 3, 4 e 5 comporta-se da mesma forma que as tuplas 1 e 2. O registro 6 informa a saída de um funcionário da empresa o seu valor de saída é atualizado e não é inserido um novo registro na relação. O contrário ocorre na sétima e última tupla onde é a admissão de um empregado e seu tempo final está definido com o valor especial ATUAL.
Detalhes
Note que em um relação temporal o tempo de início, juntamente com um outro atributo trabalha como chave primária de uma relação, não repetindo em momento algum. Isto ocorre porque em ponto do tempo deveria haver no máximo uma versão de tempo válido.
A s a t u a l i z a ç õ e s p o d e m a s s u m i r t r ê s tipos: proativa, retroativa e simultânea. As atualizações proativas ocorrem no banco antes que o evento ocorra no mundo real, ao contrário das atualizações retroativas que são persistidas em banco depois da ocorrência do evento. As atualizações simultâneas são as acontecem sobre um mesmo instante de tempo.
Algumas funções
INCLUDES – contém;
OVERLAPS – sobrepõe (intersecção); PROCEDS / BEFORE – precede no tempo; FOLLOWS / AFTER – sucede no tempo; MEETS – “casa” (encontro no tempo); VACUUM – Exclusão física;
INTERSECT – Entre dois pontos;
BD Convencional VS BD Temporal
BD Convencional
Representação do estado presente de um dado; BDs instantâneos;
gerenciamento temporal a cargo da aplicação definição explícita de atributos, consultas temporais, …
BD Temporal
representação de estados passados, presente e futuros de um dado;
BDs históricos, BDs de transação, BDs bi-temporais; Gerenciamento temporal é controlado pelo BD;
d e f i n i ç ã o i m p l í c i t a d e p r o p r i e d a d e s temporais, linguagens de consulta estendidas, …