Alternativas à base de dados?

Estava a pensar nas compensações pela utilização de bases de dados e quais eram as outras opções? Além disso, que problemas não são adequados para bases de dados?

Estou preocupado com bases de Dados Relacionais.

Author: PeeHaa, 2009-11-19

5 answers

O conceito de base de dados é muito amplo. Farei algumas simplificações no que aqui apresento.

Para algumas tarefas, a base de dados mais comum é a base de dados relacional. É uma base de dados baseada no modelo relacional. O modelo relacional assume que você descreve seus dados em linhas, pertencentes a tabelas onde cada tabela tem um dado e fixo número de colunas. Você envia dados em uma base "por linha", o que significa que você tem que fornecer uma linha em uma única tentativa contendo os dados em relação a todas as colunas da sua mesa. Cada linha submetida normalmente recebe um identificador que é único ao nível da tabela, às vezes ao nível do banco de dados. Você pode criar relações entre entidades no banco de dados relacional, por exemplo, dizendo que uma determinada célula em sua tabela deve se referir à linha de outra tabela, para preservar a chamada "integridade referencial".

Este modelo funciona bem, mas não é o único lá fora. Em alguns casos, os dados são mais bem organizados como uma árvore. O sistema de ficheiros é uma base de dados hierárquica. começa numa raiz, e tudo vai por baixo desta raiz, numa árvore como uma estrutura. Outro modelo é o par chave / valor. Sleepycat BDB é basicamente uma loja de entidades chave/valor.

LDAP é outro banco de dados que tem duas vantagens: armazena dados bastante genéricos, é distribuído pelo design, e é otimizado para leitura.

Bases de dados de Grafos e triplestores permitem-lhe armazenar um grafo e realizar uma pesquisa de isomorfismo. Isto é tipicamente necessário se você tem um conjunto de dados muito genérico que pode abranger um amplo nível de descrição de suas entidades, tão amplo que é basicamente desconhecido. Isto está claramente em oposição ao modelo relacional, onde você cria suas tabelas com um conjunto muito preciso de colunas, e você sabe o que cada coluna vai conter.

Também existem bases de dados relacionais baseadas em colunas. Em vez de enviar dados por linha, você os envia por coluna inteira. Então, para responder à sua pergunta: uma base de dados é um método para armazenar dados. Tecnicamente, mesmo um arquivo de texto é uma base de dados, embora não seja particularmente agradável. A escolha do modelo por trás do seu banco de dados é principalmente relativa às necessidades típicas da sua aplicação.

Definir a resposta como CW como eu provavelmente estou dizendo algo estritamente não correto. Sinta-se à vontade para editar.

 5
Author: Stefano Borini, 2009-11-19 08:01:33

Esta é uma questão bastante ampla, mas as bases de dados são adequadas para gerir os dados relacionais. Alternativas quase sempre implicam em projetar seu próprio motor de armazenamento e recuperação de dados, o que para a maioria das aplicações padrão/pequenas não vale a pena o esforço.

Um cenário típico que não é adequado para uma base de dados é o armazenamento de grandes quantidades de dados que são organizados como uma quantidade relativamente pequena de ficheiros lógicos, neste caso um sistema simples de Sistema de ficheiros pode ser o suficiente.

 1
Author: Konamiman, 2009-11-19 07:43:41
Não se esqueça de ver as bases de dados NOSQL. É uma tecnologia muito nova e adequada para coisas que não se encaixam numa base de dados relacional. Espero que isto ajude.

Atenciosamente,

Sebastiaan
 1
Author: Sebastiaan M, 2009-11-19 07:47:13

Utilize uma base de dados se tiver dados para armazenar e consultar.

Tecnicamente, a maioria das coisas são adequadas para bases de dados. Os computadores são feitos para processar dados e os bancos de dados são feitos para armazená-los. A única coisa a considerar é o custo. Custo de implantação, custo de manutenção, investimento de tempo, mas geralmente valerá a pena.

Se você só precisa armazenar dados muito simples, arquivos planos seria uma alternativa (arquivos de texto).

Nota: usou o termo genérico "base de dados", mas há muitos tipos diferentes e implementações destes.

 0
Author: Verhogen, 2009-11-19 07:46:30
  • Para aplicativos de pesquisa, texto completo motores de busca (alguns dos que estão integrados ao tradicional Sgbds, mas alguns dos quais não são), pode ser uma boa alternativa, permitindo que mais recursos (vários linguística consciência, capacidade de dados semi-estruturados, classificação...), bem como melhor desempenho.

  • Além disso, eu vi aplicações onde os dados de configuração são armazenados na base de dados, e enquanto isso faz sentido em alguns processos, usar ficheiros de texto simples (OR YAML, XML and such) and loading the underlying objects during initialization, may be preferible, due to the self-contained nature of such alternative, and to the ease of modificing and replicating such files.

  • A ficheiro de Registo plano, pode ser uma boa alternativa ao login para DBMS, dependendo do uso, é claro.

[[3]isto dito, nos últimos 10 anos ou mais, os sistemas DBMS, em geral, têm adicionou muitas características, para ajudá-los a lidar com diferentes formas de dados e diferentes capacidades de pesquisa (ex: pesquisa FullText um fore mencionado, XML, armazenamento inteligente/manipulação de BLOBs, funções poderosas definidas pelo Usuário, etc.) Que os tornam mais versáteis e, portanto, um serviço bastante ubíquo. no entanto, a sua força mantém-se principalmente com dados relacionais.
 0
Author: mjv, 2009-11-19 07:55:24