Pergunta

Eu queria saber as compensações para o uso de bancos de dados e quais eram as outras opções? Além disso, quais problemas não são adequados para bancos de dados?

Estou preocupado com bancos de dados relacionais.

Foi útil?

Solução

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

Para algumas tarefas, o banco de dados mais comum é o banco de dados relacional. É um banco de dados baseado no modelo relacional. O modelo relacional pressupõe que você descreva seus dados em linhas, pertencentes a tabelas onde cada tabela possui um número determinado e fixo de colunas. Você envia dados "por linha", o que significa que você deve fornecer uma linha em uma única foto que contém os dados em relação a todas as colunas da sua tabela. Cada linha enviada normalmente recebe um identificador exclusivo no nível da tabela, às vezes no nível do banco de dados. Você pode criar relacionamentos 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".

Esse modelo funciona bem, mas não é o único por aí. Em alguns casos, os dados são melhor organizados como uma árvore. O sistema de arquivos é um banco de dados hierárquico. Começa em uma raiz e tudo fica sob essa raiz, em uma estrutura como uma estrutura. Outro modelo é o par de chaves/valor. Sleepycat BDB é basicamente uma loja de entidades -chave/valor.

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

Os bancos de dados de gráficos e os triplestores permitem armazenar um gráfico e executar pesquisas de isomorfismo. Isso geralmente é necessário se você tiver um conjunto de dados muito genérico que possa abranger um amplo nível de descrição de suas entidades, tão amplo que é basicamente desconhecido. Isso está em oposição clara ao modelo relacional, onde você cria suas tabelas com um conjunto de colunas muito preciso e sabe o que cada coluna vai conter.

Alguns bancos de dados baseados em colunas relacionais também existem. Em vez de enviar dados por linha, você os envia por coluna inteira.

Portanto, para responder à sua pergunta: um banco de dados é um método para armazenar dados. Tecnicamente, mesmo um arquivo de texto é um banco de dados, embora não seja particularmente agradável. A escolha do modelo por trás do seu banco de dados é principalmente em relação às necessidades típicas do seu aplicativo.

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

Outras dicas

Esta é uma pergunta bastante ampla, mas os bancos de dados são adequados para gerenciar dados relacionais. As alternativas quase sempre implicariam projetar seu próprio mecanismo de armazenamento e recuperação de dados, que para a maioria dos aplicativos padrão/pequenos não vale o esforço.

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

Não se esqueça de dar uma olhada nos bancos de dados NoSQL. É uma tecnologia bastante nova e adequada para coisas que não se encaixam/escalam em um banco de dados relacional.

Use um banco de dados se você tiver dados para armazenar e consultar.

Tecnicamente, a maioria das coisas é adequada para bancos de dados. Os computadores são feitos para processar dados e bancos de dados para armazená -los.

A única coisa a considerar é o custo. Custo de implantação, custo de manutenção, investimento em tempo, mas geralmente valerá a pena.

Se você precisar armazenar dados muito simples, os arquivos planos seriam uma alternativa (arquivos de texto).

Nota: Você usou o termo genérico 'banco de dados', mas existem muitos tipos e implementações diferentes deles.

  • Por Aplicativos de pesquisa, mecanismos de pesquisa de texto completo (Alguns dos quais são integrados aos DBMSes tradicionais, mas alguns dos quais não são), podem ser uma boa alternativa, permitindo mais recursos (várias consciência linguística, capacidade de ter dados semiestruturados, classificação ...), bem como melhor atuação.

  • Além disso, eu vi aplicativos onde dados de configuração é armazenado no banco de dados e, embora isso faça sentido em alguns casos, Usando arquivos de texto simples (ou YAML, XML e outros) e carregando os objetos subjacentes durante a inicialização, podem ser preferíveis, devido à natureza independente dessa alternativa e à facilidade de modificar e replicar esses arquivos.

  • UMA Arquivo de log plano, pode ser uma boa alternativa ao registro do DBMS, dependendo do uso, é claro.

Dito isto, nos últimos 10 anos, os sistemas DBMS, em geral, adicionaram muitos recursos, para ajudá -los a lidar com diferentes formas de dados e diferentes recursos de pesquisa (Ex: FullText Pesquise em um mencionado, XML, Smart Storage/manuseio de blobs, poderosas funções definidas pelo usuário, etc.) o que os torna mais versáteis, e, portanto, um serviço bastante onipresente. Sua força permanece principalmente com dados relacionais, no entanto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top