sexta-feira, 8 de abril de 2011

Banco de Dados


Os bancos de dados se engenharam graças à necessidade das grandes empresas de armazenar grandes quantidades de informação de uma forma rápida, simples e confiável, e que pudessem ser acessadas em qualquer momento sem a necessidade de se deslocar às salas dedicadas a arquivar documentação, como até há pouco tempo se fazia.




Como definição do banco de dados, entendemos que se trata de um sistema de armazenamento de dados inter-relacionados, que representam informações de um assunto específico, em uma ordem específica. O banco de dados, normalmente, é uma tabela composta de diversas linhas separadas por coluna, que são identificadas por campo. Cada uma dessas linhas é composta por um registro diferente. O sistema pode também ser representado por uma coleção de dados, que pode ser acessado e utilizado por várias aplicações diferentes. Exemplos: Lista telefônica, controle do acervo de uma biblioteca, sistema de controle dos recursos humanos de uma empresa.


Alguns bancos de dados bem recomendados são:


Comerciais
· Oracle: http://www.oracle.com
· DB2: http://www-306.ibm.com/software/data/db2/
· Sybase: http://www.sybase.com.br/
· MS SQL Server: http://www.microsoft.com/sql/default.mspx




Open Source
· MySQL: http://www.mysql.com/
· Postgre SQL: http://www.postgresql.org/
· Firebird: http://www.firebirdsql.org/




Organização de um banco de dados


Arquivo: Um conjunto de registros e informações armazenadas
            Exemplo: Arquivo chamado controle de estoque, controle de conta corrente, controle bancário, ou simplesmente um controle de clientes ou de fornecedores.
Registro: é um conjunto campos relacionados e armazenados em um registro.
           Exemplo: A ficha de um determinado cliente contendo a informações necessárias para um ambiente específico.
Campo: É o conjunto de itens que um registro pode conter.
           Exemplo: Cada item de uma ficha ou registro corresponde a um item, campo ou atributo.
Em um cadastro de clientes de uma empresa, podemos encontrar os seguintes campos: CPF, nome, endereço, cidade, bairro, estado, CEP.







Para considerar um banco de dados organizado, deve-se cumprir os seguintes objetivos:


· Tem que ser versátil, Isto quer dizer que, dependendo dos usuários ou das aplicações, possam fazer diferentes coisas ou tratem aos dados de formas diferentes.
· Tem que atender com a rapidez adequada a cada aplicação ou empresa
· Tem que ter um índice de redundância o mais baixo possível.
· Ter uma alta capacidade de acesso para ganhar o maior tempo possível na realização de consultas.
· Ter um alto índice de integridade, isto significa que ao ter muitos usuários atacando a um mesmo banco de dados não pode ter falhas na inserção de dados, erros ou lenta atualização.
· Obviamente, tem que ter um nível altíssimo de segurança e privacidade já que os dados que se armazenam em um banco de dados podem ser altamente confidenciais ou importantes. Neste ponto, também entram os meios físicos de proteção contra fogo, roubo, etc.
· Por último, tem que ser possível sua constante atualização para não deixar o banco de dados antigo e inservível. Quando fazemos uma mudança na organização física dos dados não deve afetar aos programas, portanto também tem que ter uma independência física dos dados. Assim como tem que ter total independência lógica com os dados, isto quer dizer que se fazemos mudanças na estrutura lógica dos dados (agregar novos campos a uma tabela) não devem afetar às aplicações que utilizem esses dados.




Algumas Dificuldades no Gerenciamento de Banco de Dados:


Redundância e Inconsistência de Dados.
Uma vez que os arquivos e programas aplicativos são criados por programadores diferentes durante um longo período de tempo, os arquivos provavelmente terão formatos diferentes e os programas serão escritos em diversas linguagens de programação. Além disso, o mesmo elemento de informação pode estar duplicado em diversos lugares (arquivos). Por exemplo, o endereço e o número do telefone de um cliente pode aparecer em um arquivo que contém registros da conta de poupança e um arquivo que contém registros da conta corrente. Esta redundância leva a altos custos de armazenamento e acesso. Pode ainda levar a inconsistência de dados – o que significa que a várias cópias do mesmo dado podem ser diferentes. Por exemplo, a mudança de endereço de um cliente pode ser efetuada num registro de conta corrente, mas não em qualquer outro lugar no sistema. Isto resulta em uma inconsistência de dados.



Dificuldade no Acesso aos Dados. 
Suponha que um dos diretores do banco necessite encontrar os nomes de todos os clientes que vivem numa rua da cidade com CEP 78733-000. O diretor pede ao departamento de processamento de dados que gere tal lista. Caso este tipo de solicitação não tenha sido antecipado quando o sistema original foi projetado, não há nenhum programa aplicativo disponível para fazê-lo. Existe, entretanto, um programa aplicativo para gerar uma lista de todos os clientes do banco. O diretor tem agora duas saídas: ou ele pega a lista de clientes e extrai a informação necessária manualmente, ou pede ao departamento de processamento de dados que um programador escreva o programa aplicativo necessário. Ambas as alternativas são obviamente insatisfatórias. Suponha que tal programa tenha sido de fato escrito e que, alguns dias mais tarde, o mesmo diretor necessite destacar da mesma lista apenas os clientes com um saldo de $10.000 ou mais. Como é de se esperar, um programa para gerar tal lista não existe. Novamente, o diretor tem duas opções, e nenhuma delas é satisfatória.


Isolamento de Dados.
Uma vez que os dados estão espalhados em diversos arquivos e podem Ter formatos diferentes, é difícil escrever novos programas aplicativos para recuperar os dados adequados.


Anomalias de Acesso Concorrente. 
Com a intenção de aperfeiçoar o desempenho geral do sistema e obter tempos de resposta mais rápidos, muitos sistemas permitem que múltiplos usuários atualizem os dados simultaneamente. Em tal ambiente, a interação de atualizações concorrentes pode resultar em dados inconsistentes. Considere uma conta bancária A, com $500. Se dois clientes sacarem dinheiro (digamos $50 e $100) da conta A ao mesmo tempo, o resultado das execuções concorrentes pode deixar a conta num estado incorreto (ou inconsistente). Em particular, a conta pode conter $450, em vez de $350. Com a intenção de prevenir esta possibilidade, algum tipo de supervisão deve ser mantido no sistema. Já que dados podem ser manipulados por diferentes programas aplicativos, que podem não Ter sido previamente sincronizados, sua supervisão pode ser muito difícil.


Essas dificuldades, entre outras, promoveram o desenvolvimento de sistemas de gerenciamento de banco de dados. Nesse sentido, devemos ver os conceitos e algoritmos que foram desenvolvidos para sistema de banco de dados com vistas a resolver os problemas mencionados anteriormente.


Aplicado de maneira correta o sistema de banco de dados se torna uma ferramenta extremamente valiosa, registrando e mantendo informações consideradas significativas à Organização.

2 comentários:

  1. Parabéns Muito bom o teu blog..

    Beijaoo

    Thiago.. Floripa ;)

    ResponderExcluir
  2. EU É QUE DIGO BEIJÃO PELO BLOG BEM EXPLICATIVO QUALQUER COISA ME ADD NO MSN ronaldocete@hotmail.com

    ResponderExcluir