Bancos de Dados
Bancos de Dados na Vida
Cotidiana
• BD e sistemas de informação baseados em BD são cada
vez mais essenciais para a vida moderna
• Quase todas as nossas atividades que envolvem
relacionamento com grandes empresas prestadoras de
serviços ou com o governo usam alguma interação com um
banco de dados
• O baixo custo do armazenamento de dados em meio
digital, somado à grande estabilidade dos sistemas de
gerenciamento de bancos de dados atuais recomenda o uso
de BD em grande parte dos SI informatizados
BD tradicionais x BD especiais
• BD tradicionais: gerenciam informação textual ou
alfanumérica
• BD especiais: gerenciam também outros tipos de dados
– BD multimídia: imagens, sons, vídeos
– BD geográficos (Sistemas de Informação Geográficos): objetos georreferenciados, imagens georreferenciadas, análise espacial – Data Warehouses e OLAP: bancos de dados formados
especificamente para análise de dados agregados a partir de BD bastante detalhados, voltados para a tomada de decisões
– Sistemas de tempo real e BD ativos: controle de processos industriais e de automação
Definição de BD
• Banco de dados:
– Uma coleção de dados relacionados entre si
• Dados
– Fatos conhecidos que podem ser registrados (codificados) e que têm significado implícito
Definição de BD
• Mais especificamente, não se trabalha com qualquer
coleção de dados relacionados
– Um BD representa algum aspecto do mundo real (Universe of Discourse/UoD, Miniworld)
– BD são organizados com lógica e coerência; um conjunto aleatório de dados, mesmo relacionados, não constitui um BD
– BD são projetados, construídos e populados com dados que possuem algum objetivo específico, e voltados para um grupo provável de usuários, que o utilizarão por intermédio de algumas aplicações previamente concebidas e voltadas para suas
necessidades
SGBD x SBD
• SGBD: Sistema de Gerência (ou Gerenciamento) de Banco
de Dados
– Coleção de programas (pacote) que permitem que usuários criem e mantenham um banco de dados
– Pacote de software com finalidade genérica
• Finalidades de uso de um SGBD
– Definição de BD: especificação e criação de tipos, estruturas de dados e restrições
– Construção de BD: armazenamento de dados de acordo com a estrutura definida em algum meio de armazenamento controlado pelo SGBD
– Manipulação de BD: realização de operações como consultas, alteração de dados, emissão de relatórios, etc.
SGBD x SBD
• SBD: Sistema de Banco de Dados
– Nome dado ao conjunto de recursos que é utilizado para suportar alguma aplicação usando apenas o BD
– Corresponde ao conjunto formado pelo SGBD, programas desenvolvidos para facilitar o acesso ao SGBD (programas de aplicação, consultas, etc.) e os próprios dados
BD x sistemas baseados em
arquivos
• Processamento de arquivos:
– Cada usuário define e implementa os arquivos necessários para uma aplicação específica, como parte do desenvolvimento da aplicação
– Quaisquer mudanças na estruturação dos dados vão exigir
modificações em todos os programas que acessam aqueles dados – Tende a ser utilizado por apenas um usuário, o que induz à
redundância de informações e desperdício de espaço de
armazenamento
– A estrutura dos arquivos pode ser mantida oculta de outros usuários, possibilitando a criação de arquivos e sistemas
BD x sistemas baseados em
arquivos
• BD têm diversas características específicas voltadas para
situações que exigem um acesso mais controlado aos dados
– Independência de programas específicos; isolamento entre dados e programas
– Recursos para limitar a redundância
– Possibilidade de acesso simultâneo por múltiplos usuários: múltiplas visões, controle de concorrência, controle de acesso – Processamento transacional (atômico)
Características do Enfoque de
Bancos de Dados
• Natureza autodescritiva
– O banco de dados não contém apenas os dados em si, mas também uma definição completa da estrutura dos dados e de suas restrições – O Catálogo do sistema contém informações como:
• a estrutura de cada arquivo
• o tipo e formato de armazenamento de cada dado • restrições porventura existentes sobre cada dado
– Os dados armazenados no catálogo são chamados de metadados – O catálogo é usado pelo SGBD, mas também pode ser acessado
por programas do usuário que necessitem obter informações sobre a estrutura dos dados
Características do Enfoque de
Bancos de Dados
• Natureza autodescritiva (cont.)
– Um SGBD tem finalidade genérica, ou seja, não é desenvolvido para funcionar com apenas um conjunto de dados ou uma
aplicação específica
– O SGBD precisa trabalhar com eficiência equivalente em situações variadas em termos do porte das aplicações e em termos da
natureza das aplicações
– Sistemas baseados em arquivos podem implementar estruturas de dados otimizadas para o problema que pretendem resolver, o que pode ser vantajoso apesar de significar perda de generalidade
Características do Enfoque de
Bancos de Dados
• Isolamento entre programas e dados e abstração de dados
– Como a estrutura dos dados está descrita no catálogo, o SGBD é desenvolvido para funcionar independentemente do conteúdo do banco
– Alterações na estrutura dos dados não exigem a reescrita de código do SGBD, embora possam exigir mudanças no código do
aplicativo e na interface com o usuário
– Essa característica é usualmente chamada de independência de
dados
– Em BD orientados a objeto ou objeto-relacionais é possível associar operações às classes de objetos armazenadas no BD, porém a interface é separada da implementação
Características do Enfoque de
Bancos de Dados
• Suporte a múltiplas visões dos dados
– Nem todo usuário precisa ter acesso ou conhecer toda a estrutura do banco
– Ocasionalmente, pode ser necessário fornecer a um usuário uma visão particular dos dados, derivada dos dados armazenados: dados
virtuais
– Os usuários não precisam saber se os dados que acessam são armazenados ou virtuais
Características do Enfoque de
Bancos de Dados
• Compartilhamento de dados e processamento de transações
multiusuário
– SGBD precisam permitir o compartilhamento de dados entre seus diversos usuários, e isso requer:
• Controle de concorrência • Controle de acesso
• Processamento de transações de múltiplos usuários simultaneamente
– Transações simultâneas precisam operar corretamente
• Dois ou mais usuários não podem alterar simultaneamente o mesmo dado
• Transações precisam ter garantia de término com execução integral das instruções nelas contidas
Pessoas Envolvidas
• Administradores de Bancos de Dados
– DBA, Database administrators – Autoriza acesso ao banco
– Controla modificações na estrutura dos dados
– Monitora o uso do SGBD (segurança, desempenho)
– Garantia de recursos computacionais (infra-estrutura: espaço em disco, equipamentos, etc.)
Pessoas Envolvidas
• Projetistas de Bancos de Dados
– Identifica os dados que devem ser mantidos no banco, através do projeto (análise) e seu detalhamento
– Determina as estruturas mais apropriadas para armazenar cada tipo de dado
– Faz o relacionamento com os usuários para garantir que suas necessidades de informação estejam atendidas no projeto do BD – Especifica restrições de integridade para os dados
Pessoas Envolvidas
• Usuários finais
– É deles o principal conhecimento acumulado sobre o problema a ser resolvido
– O grau de envolvimento com o projeto e com a implementação do SBD variam bastante
• Usuários casuais -> linguagem interativa de consulta • Usuários leigos -> consultas e transações predefinidas • Usuários sofisticados -> exigências complexas
• Usuários individuais -> uso de pacotes, pouco compartilhamento de informação
Pessoas Envolvidas
• Analistas de Sistemas e Programadores
– Responsáveis pela implementação do sistema de banco de dados – Definem e implementam a interface do sistema com o usuário – Definem e implementam produtos extraídos a partir do sistema
(relatórios, gráficos, etc.)
– Definem e implementam consultas predefinidas, para uso por parte de usuários leigos
• Outros
– Implementadores do SGBD
– Produtores de ferramentas especializadas – Operadores
Vantagens de se Utilizar um
SGBD
• Controle de redundância
– O armazenamento redundante de dados é considerado danoso à estabilidade de um SI
• Problemas na atualização: duplicidade de trabalho • Desperdício de espaço de armazenamento
• Geração de inconsistências
– Redundância introduzida de forma controlada pode ajudar a melhorar o desempenho do BD
• Evita a navegação entre várias tabelas para se obter um dado
Vantagens de se Utilizar um
SGBD
• Controle de acesso
– Como parte da especificação do BD, é possível determinar que usuários têm ou não acesso a cada dado
– Alguns usuários também podem não ter permissão de modificar os dados, embora possam acessá-los
– A configuração das permissões para acesso é realizada pelo DBA, usando seus privilégios de administrador do BD
Vantagens de se Utilizar um
SGBD
• Armazenamento persistente de objetos de programa e
estruturas de dados
– Característica da orientação a objetos, inerente aos SGBD OO – Não é sempre o caso em bancos de dados relacionais, em que
ocorre o problema de incompatibilidade por impedância, ou seja, diferenças e incompatibilidades entre as estruturas de dados do SGBD com as estruturas das linguagens de programação
Vantagens de se Utilizar um
SGBD
• Prover estruturas de armazenamento para processamento
eficiente de consultas
– O SGBD deve prover estruturas de dados especializadas para acelerar a execução de consultas, otimizando o acesso ao disco – Recursos usuais: índices e buffers
– O SGBD contém um módulo de otimização de consultas, que
determina um “plano de execução” baseado em critérios objetivos e em parâmetros do banco de dados
• Alguns SGBD permitem que o plano de execução seja inspecionado pelo usuário/analista e alterado
Vantagens de se Utilizar um
SGBD
• Facilidades para execução de backups e recuperação de
dados
– Backups são essenciais ao longo da operação de sistemas de
informação, já que os equipamentos de informática não possuem confiabilidade absoluta
• Garantia da existência de cópias no caso de perda de dados
– O subsistema de recuperação não apenas restaura os dados que foram “backupeados”, mas também é o responsável pela
restauração do estado do sistema após a execução parcial de uma transação
• Garantia da possibilidade de restauração da situação do banco de dados a um estado consistente e íntegro
Vantagens de se Utilizar um
SGBD
• Representação de relacionamentos complexos entre dados
– Recuperação de informação com base em relacionamentos
• Imposição de restrições de integridade
– Especificação de tipo para cada dado
– Especificação de domínio para cada dado
– Restrições quanto ao relacionamento com outros dados – Restrições quanto à semântica dos dados (questões
Vantagens de se Utilizar um
SGBD
• Permitir inferências e ações baseadas em regras
– Definição de regras de dedução para inferir nova informação baseada nos fatos armazenados no SGBD
– SGBD ativos oferecem regras que podem automaticamente iniciar uma operação quando certos eventos ou condições ocorrerem
Outras Implicações do Uso de
BD
• Potencial para padronização
• Redução do tempo de desenvolvimento de aplicações, em
relação ao enfoque por arquivos
• Flexibilidade para alterações e evolução
• Disponibilidade de informações atualizadas o tempo todo
• Economia de escala no gerenciamento de informação
Histórico das Aplicações de
Bancos de Dados
• Vide E&N 4th ed., seção 1.7
• Modelos primitivos: hierárquicos e em rede
– 1965-1980; alguns em operação até hoje
• Bancos de dados relacionais
– experimentais no final da década de 70, comerciais desde o início dos anos 80
• Orientados a objetos
– uso limitado e especializado; desenvolvimento restringido pela falta de padrões
• Voltados a documentos e outros tipos de dados semi-estruturados
Quando não Utilizar um SGBD
• Investimentos iniciais em hardware, software e
treinamento são incompatíveis com o projeto
– Obs: SGBD livres/gratuitos
• Generalidade “excessiva” gera dificuldades na
programação de aplicações muito particulares
• Custos de administração do ambiente de BD
• Os dados são simples, e não se espera que sejam alterados
• Exigências rigorosas de tempo de processamento
• Não é necessário ter acesso simultâneo por múltiplos
usuários
Referências
• Capítulo 1 de Elmasri & Navathe, 4th. ed.
• Vide também:
– Edição de outubro de 1991 da Communications of the ACM: diversos artigos de interesse histórico para a evolução dos SGBD