Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Augusto Men

Que banco de dados escolher?

Recommended Posts

Amigos,

Estou para começar um programa (que pode ser em Delphi ou C++ - não Java), e preciso escolher um banco para ele. Só que ele precisa ter as seguintes características:

- Open-source ou Free (mesmo para uso comercial)

- Não seja cliente/servidor, ou seja, possa-se usar localmente

- Não requeira instalação - de cliente, servidor ou componente de acesso (a menos que haja uma instalação silenciosa)

- Suporte acesso simultâneo (pouco, de 2 a 20 usuários)

 

E que preferencialmente (posso abrir mão):

- Suporte SQL

 

Fiz uma grande pesquisa, e levantei diversos bancos possíveis, e porque não posso usá-los:

- Access: precisa instalar o componente Jet

- SQLite: má administração de acesso simultâneo

- MSDE: somente até 2 GB

- Paradox: famoso por perder seus índices

- BerkeleyDB: não suporta SQL, não usa conceito de colunas (?!)

 

Gostaria da opinião de vocês sobre bancos Embedded, como o Firebird e o MySQL. Eles funcionam bem com diversos usuários? Alguma outra sugestão? Ou eu estou viajando? http://forum.imasters.com.br/public/style_emoticons/default/yay.gif

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos,

Estou para começar um programa (que pode ser em Delphi ou C++ - não Java), e preciso escolher um banco para ele. Só que ele precisa ter as seguintes características:

- Open-source ou Free (mesmo para uso comercial)

- Não seja cliente/servidor, ou seja, possa-se usar localmente

- Não requeira instalação - de cliente, servidor ou componente de acesso (a menos que haja uma instalação silenciosa)

- Suporte acesso simultâneo (pouco, de 2 a 20 usuários)

 

E que preferencialmente (posso abrir mão):

- Suporte SQL

 

Fiz uma grande pesquisa, e levantei diversos bancos possíveis, e porque não posso usá-los:

- Access: precisa instalar o componente Jet

- SQLite: má administração de acesso simultâneo

- MSDE: somente até 2 GB

- Paradox: famoso por perder seus índices

- BerkeleyDB: não suporta SQL, não usa conceito de colunas (?!)

 

Gostaria da opinião de vocês sobre bancos Embedded, como o Firebird e o MySQL. Eles funcionam bem com diversos usuários? Alguma outra sugestão? Ou eu estou viajando? http://forum.imasters.com.br/public/style_emoticons/default/yay.gif

 

Obrigado!

Camarada!

 

Têm o PostGreeSQL acho mto bom mas não sei se te atende.

 

Existe um ambiente de desenvolvimento chamado Zope que me parace que vem integrado com o banco de dados de mesmo nome. Dê uma pesquisada por Zope talvez possa ajudá-lo.

 

Não entendi o que você quer dizer com:

- Não seja cliente/servidor, ou seja, possa-se usar localmente

 

E com:

- Não requeira instalação - de cliente, servidor ou componente de acesso (a menos que haja uma instalação silenciosa)

Compartilhar este post


Link para o post
Compartilhar em outros sites

- Não seja cliente/servidor, ou seja, possa-se usar localmente

Quer dizer que não devo ter um servidor rodando, para uso em rede. No meu esquema, não há servidor, então bancos com várias camadas (como Firebird, MySQL e Postgre) só podem ser usados caso possuam uma versão Embedded, isto é, local.

 

- Não requeira instalação - de cliente, servidor ou componente de acesso (a menos que haja uma instalação silenciosa)

Não quero que o cliente tenha que instalar nada antes de rodar o sistema. É como se ele dezipasse os arquivos do sistema, rodasse o EXE e começasse a usá-lo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

- Não seja cliente/servidor, ou seja, possa-se usar localmente

Quer dizer que não devo ter um servidor rodando, para uso em rede. No meu esquema, não há servidor, então bancos com várias camadas (como Firebird, MySQL e Postgre) só podem ser usados caso possuam uma versão Embedded, isto é, local.

 

- Não requeira instalação - de cliente, servidor ou componente de acesso (a menos que haja uma instalação silenciosa)

Não quero que o cliente tenha que instalar nada antes de rodar o sistema. É como se ele dezipasse os arquivos do sistema, rodasse o EXE e começasse a usá-lo.

 

Dificil!!

 

Bom só me vema a cabeça utilizar dbf. Mas ai falta o SQL.

 

Ou utilizar planilhas .xls pq você pode acessá-las utilizando SQL. Agora não sei se precisa de algum jet para isso.

 

Vamos ver se aparece outra sugestões.

 

Deu uma olhada no Zope.

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei sim, mas parece meio fora do escopo. Pelo que entendi, Zope é feito pra Python (não sei se dá pra portar), e é só um framework pra acesso. O banco dele (ZODB) é orientado a objeto.De fato, eu acho que vou ter que abrir mão de uma das características.A que DBF você se refere? Codebase é pago; só se for Xbase, mas eu preciso investigar melhor então.Obrigado jothaz

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei sim, mas parece meio fora do escopo. Pelo que entendi, Zope é feito pra Python (não sei se dá pra portar), e é só um framework pra acesso. O banco dele (ZODB) é orientado a objeto.De fato, eu acho que vou ter que abrir mão de uma das características.A que DBF você se refere? Codebase é pago; só se for Xbase, mas eu preciso investigar melhor então.Obrigado jothaz

Cara é Xbase mesmo clipper, Fox ou FoxPro! O problema que para utilizar SQL em um .dbf (Xbase) ele deveria esta vinculado a um banco de dados SQL (Access, MS SQL).Dê uma re-avaliada nos pré-requisitos.Bom talvez outra pessoa lendo o post pode dar uma outra sugestão.A sugestão do Zope foi só para constar mesmo.t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

- Não seja cliente/servidor, ou seja, possa-se usar localmente

- Suporte acesso simultâneo (pouco, de 2 a 20 usuários)

 

Caro, acho que oque você anda procurando, ainda não foi criado. pois desconheço um banco local que suporte acesso simultâneo ?? Somente o paradox, mas ele nem pode ser considerado banco de dados de tão ruim que é.

 

- Não requeira instalação - de cliente, servidor ou componente de acesso (a menos que haja uma instalação silenciosa)

 

acho que neste caso você não vai ter pra onde correr, e o jeito é usar o interbase ou firebird, pois quanto a "instalação silenciosa" do banco, você pode gerar um instalador com duas opções.

Uma que crie o banco de maneira imperceptível para o usuário, e crie também um atalho na área de trabalho,que irá rodar o exe.

Outra que deverá pedir o IP da máquina onde a "cópia principal" foi instalada, o caminho e nome do banco não precisa ,pois foi você quem definiu na outro opção do instalador.

 

ps. existem vários programas hoje em dia que geram executável de instalação.

 

Espero ter ajudado

 

Abrçs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola amigos!!!Estive lendo a resposta do companheiro raul, achei OTIMA, e tenhos consideracoes a fazer. De fato a resposta cai como uma luva quando se existe a necessidade de analise e logica de programacao. A pessoa deve ter em mente o que o programa em si deve fazer, e pensar no seu futuro...quanto a base em paradox, acredito que muito a utilizam sendo o servidor uma das maquinas clientes (P2P) - apesar de estar mudando minha base para firebird, por questoes de avancos tecnologicos - devo dizer que tenho um sistema completo rodando em server 2003 e 10 clientes XP pro TODOS ORIGINAIS ha mais de 2 anos, e a unica vez que foi perdido o indice, foi quando da implantacao. Penso que o primo que comprou um computador e depois virou analista, que é mais barato pq é parente vai resolver. COMPUTACAO É COISA SERIA, nao devemos adivinhar qual é a melhos maneira sem mesmo ter um projeto nas maos. mais uma vez, o amigo raul reiniciou a questao que impede em varios momentos NOSSO reconhecimento profissional, parabens.. ..abracos,ari

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz essa pergunta a mim mesmo quando comecei a estudar JAVA e não queria um SGBD para guardar os dados do programa. Acho que com essas características, um dos melhores bancos para usar é o SQLite, pois ele não precisa de instalação, vai embutido na aplicação como um arquivo, é opensource e usa a linguagem SQL. E em relação ao gerenciamento de múltiplas conexões, o SQLite pede que se inicie a conexão, execute a query e encerre a conexão após cada query. Assim em menos de um segundo você libera o arquivo para a escrita do próximo usuário. E se mesmo assim não for o suficiente, você pode criar uma função recursiva para acessar o banco para não encerrar a query na primeira tentativa.

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Diego Petuco,

 

Obrigado por compartilhar seu conhecimento conosco.

 

Continue contribuindo respondendo os tópicos mais recentes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.