1. Conceitos de Bancos de Dados
Prof. Anderson Theobaldo
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
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 bastante detalhados, voltados para a tomada de decisões
Sistemas de tempo real e BD ativos: controle de
processosindustriais e de automação
Definição de Banco De Dados
Banco de dados:
– Uma coleção de dados relacionados entre si
Dados
Definição de Banco De Dados
Mais especificamente, não se trabalha com
qualquer coleção de dados relacionados
Um BD representa algum aspecto do mundo real
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
BD nem precisam ser informatizados! (ex.
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
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
Exemplo de Banco de
Dados
Mini-mundo: parte de uma universidade
Coleção de dados relacionados
Alunos
Disciplinas
Cursos
Alguns relacionamentos
Cursos oferecem Disciplinas
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
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
Características do Enfoque de
Bancos de Dados
Sistema de banco de dados possui além
do banco de dados, a definição ou
descrição da estrutura deste banco de
dados e suas restrições
Essa definição está armazenada no
catálogo
do SGBD
Estrutura de cada arquivo
Características do Enfoque de
Bancos de Dados
Natureza autodescritiva
Os dados armazenados no catálogo são
chamados de metadados
O catálogo é usado pelo SGBD, mas
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
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
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
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 Desenvolve visões do BD para usuários ou grupos
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
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
Vantagens da Utilização de
SGBD’s
Controla a redundância dos dados (consistência de atualização num único local)
Restringe e controla o acesso aos dados (segurança)
Garante o armazenamento persistente dos dados (mesmo após o término do programa que manipula os dados)
Garante o armazenamento de estruturas para o processamento eficiente de consultas (índices e cache) Garante backup e restore para recuperação de falhas Fornece múltiplas interfaces para os usuários (gráficas,
linha de comando, assistentes etc.)
Implicações na Utilização de
SGBD’s
Potencial para adoção e garantia de uso
de padrões
Redução no tempo de desenvolvimento
de aplicações
Flexibilidade para alterações
Disponibilidade
de
informações
atualizadas
Economia de escala com servidores
Interfaces
Baseadas em menus para
browsing
Baseadas em formulários
Gráficas (GUI)
Linguagem natural
Voltadas para usuários leigos
Utilitários do SGBD
Carga de dados (loading)
Ferramentas de conversão de formato Cópia de segurança (backup)
Reorganização de arquivos
Monitoramento do desempenho Ordenar arquivos
Compactar dados
Monitorar acesso dos usuários
Quando NÃO usar um SGBD
Motivos
Quando há requisitos de tempo real (realtime) para alguns programas
Há um overhead (sobrecarga) no uso do SGBD
Acesso multiusuário não é requerido
Outras considerações
Investimentos iniciais altos de software, hardware e treinamento
Classificação dos SBD
Quanto ao modelo de dados
Relacionais
Orientados a objetos
Hierárquicos
Em rede
Objeto-relacionais
XML:
usa
estruturas
hierárquicas,
Classificação dos SBD
Quanto ao número de usuários
Monousuário
Multiusuário
Quanto ao número de locais de acesso a
dados
Centralizado
Distribuído
SGBDD homogêneos
Classificação dos SBD
Quanto ao custo
Custos baixos, operação em micros (ex. Access)
Custos elevados, operação em servidores (ex. Oracle) Software livre (ex. MySQL)
Quanto à finalidade
Finalidade genérica: uso de SGBD genérico
Finalidade especial: uso de SGBD desenvolvido para a
aplicação
Ex.: reservas em companhias aéreas; catálogos
telefônicos
OLTP: On-line Transaction Processing – grande número de
Classificação dos SBD
Quanto ao modelo de dados
Relacionais
Orientados a objetos
Hierárquicos
Em rede
Objeto-relacionais
XML:
usa
estruturas
hierárquicas,
Referências
Capítulo 1 de Elmasri & Navathe, 4th.
ed.
Vide também:
Edição de outubro de 1991 da