BDA - Aula 03 - 2014/2

Revisão de 14h58min de 6 de setembro de 2014 por Lclaudio (discussão | contribs) (Criou página com '= Conceitos = <br> == Software == <br> * Entre o banco de dados físico (dados armazenados) e os usuários do sistema encontra-se o software Gerenciador de Banco de Dados, ...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

Conceitos


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.


  • 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



  • 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]:
  1. Um BD representa uma porção do mundo real (minimundo) => interação com o mundo real
  2. Um BD é um conjunto lógico e ordenado de dados que possuem algum significado => fonte de informação
  3. 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




  • O que se espera de um BD?
  1. 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)
  2. Dar aos usuários a habilidade para consulta aos dados e modificá-los usando uma linguagem apropriada normalmente chamada de DML (data-manipulation language)
  3. Suportar o armazenamento de grandes quantidades de dados (terabytes ou mais) por um longo período de tempo com acesso eficiente
  4. Habilitar a durabilidade, a recuperação do banco de dados face a falhas, erros de vários tipos ou mal uso intencional
  5. 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)