Conceitos
Componentes
- Componentes de um sistema de Banco de Dados
- Dados
- Hardware
- Software
- Usuários
- Sistema de Banco de Dados:
- Definição: Sistema de manutenção de registros por computador - ou seja, um sistema cujo objetivo global é manter as informações e torná-las disponíveis quando solicitadas.
- Num sistema grande, dados dos bancos de dados são integrados e compartilhados.
- Integração:
- Por integrado, pode-se dizer que os Bancos de Dados podem ser imaginados como a unificação de diversos arquivos de dados que, de outra forma, seriam distintos, eliminando-se total ou parcialmente qualquer redundância entre os mesmos.
- Exemplo: Quando um funcionário é contratado pela Universidade, é criado um cadastro com todos os seus dados. Se ele for aluno também, e tiver um cadastro a parte, teremos uma redundância de informações.
- Compartilhamento:
- Por compartilhado, pode-se dizer que parcelas de dados podem ser compartilhadas por diversos usuários num BD, no sentido de que todos os usuários podem ter acesso a mesma parcela de dados (e podem usá-los com finalidades diferentes) e isto pode ser feito concorrentemente
- Exemplo: No exemplo acima, os mesmos dados de um funcionário poderia ser ao mesmo tempo, requisitado por vários setores ao mesmo tempo: Pessoal, Financeiro e Acadêmico. Imagine o impacto que pode ter se um deles estiver alterando os dados.
Dados
- O que é um dado?
- Representação da informação que pode estar registrada em papel, quadro de aviso ou num HD
- Fatos fornecidos que descrevem uma característica de um objeto ou evento do mundo real
- Elemento que mantém a sua forma bruta (texto, imagens, sons, vídeos, etc.), ou seja, sozinho não leva a compreender determinada situação
- Exemplos:
- nome de um empregado
- número de horas trabalhadas
- número peças em estoque
- pedidos de venda
- cor e peso da fruta
- automonia e carga da bateria
- nro de comôdos e área do apartamento
- etc.
- Informação:
- Informação é este mesmo dado, porém, trabalhado, lapidado, contextualizado, ou seja, informação é o dado, cuja forma e conteúdo são apropriados para um uso específico.
- Exemplos:
- total de vendas mensais
- lista de clientes ordenada por total comprado
- média de alunos por turma
- turmas com menos 10 alunos
- peso total da grade de frutas
- tempo de vida da bateria
- preço final do apartamento
- etc.
- Processo:
- Série de tarefas logicamente relacionadas, executadas para atingir um resultado definido.
- Exemplos:
- ordenação dos alunos pelo número de matricula
- restauração das tabelas
- verificação de integridade dos dados
- disparo de uma ação de alarme
- etc.
- Conhecimento:
- Regras, diretrizes e procedimentos usados para selecionar, organizar e manipular dados, para torná-los mais úteis para determinado fim.
- Exemplos:
- Backup diário numa janela de 0 a 3 horas da manhã
- Seleção dos registros de duas tabelas filtrando dados específicos
- Disparo de uma ação quando o saldo ficar negativo
- etc.
Hardware
- Composto de toda infra-estrutura necessária para manter as unidades de armazenamento.
- Envolve principalmente unidades de disco de cabeça móvel com algumas características específicas:
- Tempo de posicionamento - seek time
- Retardo rotacional
- Cilindro, trilha
- Cabeça de leitura/gravação
- Complementado com dispositivos de backup como robôs
- Expandido no conceito de cluster e nuvem
- Cluster: Sistema que compreende dois ou mais computadores ou sistemas que trabalham em conjunto para executar aplicações ou realizar outras tarefas. Tem como características básicas confiança, distribuição de carga e desempenho
- Nuvem: A ideía central dessa arquitetura é prover uma ampla replicação de dados, distribuindo-os entre milhares e milhares de servidores, minimizando assim os aspectos de performance, e principalmente, de disponibilidade. Essa proposta quebra parte paradigma tradicional de centralização de dados, transações e de storage. Assim, foi desenhada um novo modelo de sistemas de armazenamento que atende ao objetivo de estender a disponibilidade. O conceito fundamental de ACID (atomicidade,consistência,isolamento e durabilidade) teve que ser revisto de forma a ajustar a esse novo cenário.
- Um dos grandes desafios do hardware do sistema de banco de dados é minimizar o número de acessos a disco (entradas/saídas de disco)
- Outro ponto que onera o hardware de um sistema de banco de dados é a necessidade de:
- Segurança: Preservação do acesso físico e virtual
- Backup: Freqüentes rotinas de cópias de dados
- Redundância: Duplicação das estruturas de armazenamento.
Software
- Entre o banco de dados físico (dados armazenados) e os usuários do sistema encontra-se o software Gerenciador de Banco de Dados, SGBD ou DBMS
- Todas as solicitações dos usuários de acesso ao banco de dados são manipulados pelo SGBD
- Recursos providos pelo SGBD:
- Criação de tabelas
- Inserção de dados
- Recuperação de dados
- etc
- Função relevante: isolar os usuários do Bancos de Dados dos detalhes a nível de hardware fazendo com que os usuaŕios do SGBD tenham um visão acima do nível mais elevado que não exija conhecimentos técnicos aprofundados.
Profissionais
- Projetistas de BD Lógico: Profissionais com habilidade suficiente para interpretar as necessidades de armazenamento de dados e criar os modelos de bancos de dados utilizados pelo projetista para sua criação
- Projetistas de BD Físico: Especialistas na técnica de criar estruturas físicas envolvendo hardware, software e processos que permitar armazenar grandes bases de dados e operá-las por meio de mecanismos eficientes como discos, robôs, rotinas, fitas e demais aparelhos componenentes do sistema como um todo
- Implementadores de BD: Responsáveis por receber o modelo (projeto) do Banco de Dados e torná-lo real com a utilização de uma ferramenta (software)
- Programadores de aplicações: responsável pela definição dos programas de aplicação que usam o banco de dados usando linguagens como Java, DotNet, PHP, etc. Estes programas podem ser executados de forma online ou ainda processamento em batch
- Usuários finais: Interage com o sistema a partir de um equipamento acessando instantaneamente o BD por meio de uma das aplicações desenvolvidas para esse fim ou alguma interface integrante do sistema, por exemplo, o padrão SQL.
- Administradores de BD ou DBAs: Profissional com alto nível de capacitação técnica que tem a responsabilidade central sobre os dados operacionais.
Banco de Dados
- Modelo Arcaico:
- Kardex, Arquivo: Um conjunto de fichas que registravam os dados de objetos ou eventos
- Normalmente em papel e dispostos segundo uma tabelas com linhas e colunas numeradas com uma etiqueta na parte superior visível
- Ordenação: Alfabética ou numérica, na parte externa do armário e internamente por pastas com etiquetas
- Infraestrutura: Armário de ferro ou de madeira, com gavetas que mantinham as pastas suspensas por meio de guias
- Modelo antigo:
- Rotinas de tratamento de arquivos no próprio código
- Cada desenvolvedor tinha que aprender aspectos físicos de tratamento de arquivo, criava o programa segundo sua própria visão e capacidade e disponibilizava para a execução
- Fatores inconvenientes [Alves, William Pereira]:
- Ausência de controle de acesso concorrente de vários usuários
- Problemas de tempo, integridade e eficiência na criação consulta e cálculo dos dados
- Impossibilidade de se executar mais de um processo ao mesmo tempo num arquivo de dados
- Os SGBDs não estavam preparados para suportar multiprocessamento
- A definição da estrutura do arquivo armazenada no próprio código do aplicativo
- A dificuldade no suporte e manutenção dos códigos citados anteriormente
- Inconsistência, redundância, dificuldade de acesso e isolamento dos dados
- Redundância inadequada dos dados em função de mal projeto
- Segurança dos dados
- Facilidade no acesso indevido por parte de pessoas não autorizadas
- Duplicidade de informações entre os vários arquivos
- Projetos mal estruturados podem gerar informações repetidas
- Aplicação dependente dos dados
- A estrutura de arquivos armazenada no código cria uma dependência em relação ao desenvolvedor
- Incompatibilidade dos formatos de arquivos
- Cada fornecedor gerando sua própria solução criou uma Torre de Babel de soluções de BD.
- Ausência de controle de acesso concorrente de vários usuários
- Rotinas de tratamento de arquivos no próprio código
- Modelo Atual:
- SGBDs mantidos em discos com enorme capacidade
- O custo dos HDs reduziu drasticamente
- Formato eletrônico organizados em tabelas com associações entre elas de alta performance
- A divisão de tabelões em bases menores e relacionadas é eficientemente implementada pelo sistema
- Ordenação: Baseada em chaves para fácil localização e recuperação no padrão SQL
- A possibilidade de ordenalção baseada no campo chave e em campos secundários trouxe uma versatilidade imensa aos BDs
- Infraestrutura: Centralizada e mantida normalmente em estruturas cliente-servidor ou na nuvem
- Hoje em dia, é simples armazenar uma base de dados, tanto numa estrutura local quanto em outro local que nem se sabe onde está
- Características:
- Aplicativos não tem nenhum conhecimento dos detalhes relativos aos métodos de gravação e leitura física dos dados nas tabelas
- Diversos programas podem acessar um mesmo BD
- SGBD oferece alta produtividade no desenvolvimento e manutenção dos softwares aplicativos
- Qualidade dos SWs se tornou maior
- Informações extraídas se tornaram mais confiáveis e com maior credibilidade
- SGBDs mantidos em discos com enorme capacidade
- Modelos em expansão:
- Distribuído
- NoSQL
- Semânticos
- ...
- Banco de Dados: Conjunto de dados relacionados entre si armazenados segundo uma determinada lógica de forma que possar ser recuperados quando necessário. Possui 3 características básicas [Alves, William]:
- Um BD representa uma porção do mundo real (minimundo) => interação com o mundo real
- Um BD é um conjunto lógico e ordenado de dados que possuem algum significado => fonte de informação
- UM BD é construído e povoado com dados que têm um determinado objetivo, com usuários e aplicações desenvolvidas para manipulá-los=> público que demonstra interesse nos dados.
- Porte de um BD:
- Pode ser pequeno, médio ou grande
- Independente do tamanho, deve ser confiável, eficiente e acessível
- Exemplos de porte de banco de dados:
- Banco: com abrangência nacional => grande porte
- Biblioteca de uma escola => médio porte
- Base de conhecimento local => pequeno porte
- Videos no youtube => grande porte
- etc
SGBD
- Um Sistema Gerenciador de Banco de Dados é uma coleção de programas que permite aos usuários criar e manter um banco de dados
- É um sistema de software de uso geral que facilita o processo de definição, construção, manipulação e compartilhamento de bancos de dados entre diversos usuários e aplicações
- Definir um banco de dados envolve especificar os tipos, estruturas e restrições dos dados a serem armazenados cuja informação descritiva pode ser mantida em dicionários ou catálogos chamados de metadados
- A construção do banco de dados é o processo de armazenar os dados em algum meio controlado pelo SGBD
- A manipulação de um banco de dados inclui funções como consulta ao banco de dados para recuperar dados específicos, atualização de dados e geração de relatórios ou consultas
- O compartilhamento de um banco de dados permite que diversos usuários e programas acessem-no simultaneamente
- Além dessa funções, um SGBD permite:
- Criação de consultas com base em padrões pré-definidos
- Controle e geração de transações fazendo com que dados sejam lidos ou gravados no banco de dados
- Proteção do sistema contra defeitos (ou falhas) de hardware ou software
- Controle e proteção de segurança contra acesso não autorizado ou malicioso
- Escalabillidade, ou seja, capacidade de evoluir e crescer de acordo com as demandas
- Controle de redundância evitando replicações de dados e estruturas
- Garantia de restrições de integridade
- Backup e recuperação de dados.
- Passos para a criação de um BD
- Especificação
- Análise de requisitos
- Projeto Conceitual
- Projeto Lógico
- Projeto Físico
- Arquiteturas:
- Cliente-Servidor
- Distribuída
- Móvel
- ...
- Soluções disponíveis:
- Interbase
- MySQL
- Access
- Oracle
- PostgreSQL
- Firebird
- Informix
- HSQLDB
- IBM DB2
- mSQL
- SQL Server
- TinySQL
- JADE
- ZODB
- Sybase
- Access
- Visual Foxpro
- etc
Arquivo:BDA - Exemplo de BD - Academico.pdf
- O que se espera de um BD?
- Permitir aos usuários a criação de novas bases de dados e especificação de seus esquemas (estrutura lógica de dados) usando uma DDL (data-definition language)
- Dar aos usuários a habilidade para consulta aos dados e modificá-los usando uma linguagem apropriada normalmente chamada de DML (data-manipulation language)
- Suportar o armazenamento de grandes quantidades de dados (terabytes ou mais) por um longo período de tempo com acesso eficiente
- Habilitar a durabilidade, a recuperação do banco de dados face a falhas, erros de vários tipos ou mal uso intencional
- Controlar o acesso de muitos usuários simultâneos sem permitir interações inesperadas (isolamento) e sem acões sobre os dados que sejam executadas parcialmente mas não completamente (atomicidade)


