Sou novo no java e estou iniciando um projeto para uma micro empresa.
Um tipo de ERP, para controle de todas as áreas. Nada muito grandioso, mas é grande para mim, que estou iniciando na linguagem.
Para que eu não inicie errado, gostaria de saber, na opinião de vocês, que banco de dados seria mais indicado.
O projeto vai englobar DESKTOP, WEB e MOBILE.
(gostaria de um BD que não fosse dar problema, mesmo que a quantidade de dados, no futuro, fique MUITO GRANDE. Ou seja, apesar de estar programando para uma micro empresa, quero que esse sistema esteja preparado para comportar um GRANDE volume de dados, caso eu o implante em uma grande empresa, no futuro).
A resposta seria Oracle. Mas dificilmente uma grande empresa faz contrato pra usar ERP de um desenvolvedor individual ou pequeno empresário. Maioria das grandes empresas usam SAP e similares. Considerando sua realidade, pode usar PostgreSql.
Quase sempre quando fala em banco de dados recomenda o uso do relacional, talvez por já ser mais que testado a sua eficácia no uso diario, no entanto me encanta o NoSQL em especial
o de Grafo.
Esse de fato acho muito interessante e está muito alem do modelo relacional.
Não conhecia o conceito de NoSQL e de banco de dados gráfico (como o Neo4j) e achei interessantíssimo. Creio que JÁ SEJA a tecnologia a ser usada, já que, de acordo com eles, as pesquisas são muito mais rápidas que o SQL (que já é rápido).
Sabe dizer se o Neo4j é gratuito? Não consegui entender isso, no site.
Se emprega sim.
Neo4J NoSQL tambem e’ transacional e não tem nada que impeça de criar modelos pre’ definidos para os Nós tão pouco de pre’ definir as relações.
Pelo que li a respeito do NoSQL, percebi que ele se aplica a qualquer tipo de projeto: do minúsculo ao exorbitantemente grande.
Percebi que ele se aplica ao meu NANOprojeto, também.
Porém acho que O QUE VOCÊS QUEREM DIZER com a discussão, acima, é: alguns de vocês PREFERIRIAM não usar o NoSQL em um projeto pequeno, já que o SQL resolve, perfeitamente, há décadas.
Realmente, vou preferir o SQL, pois já mexi (pouco, mas suficiente) com ele, no meu passado de programador amador. Se eu fosse mexer com NoSQL, teria que estudar mais do que meu tempo permite, para colocá-lo em prática.
Porém, apesar de não ser tão experiente quanto vocês, percebi que o NoSQL é aplicável a qualquer projeto, sim. Não há lógica em dizer que um banco de dados é aplicável-em-um-projeto-grande e não-aplicável-em-um-projeto-pequeno. Se ele serve para grandes projetos, imagine, então, em projetos minúsculos.
Em projetos pequenos, usar o NoSQL seria como matar mosca com tiro de canhão. Mas que mata, mata.
Eu ia colaborar antes nesse post sobre esse exato sentimento que você expressou também na pergunta inicial.
Isso é um erro comum na nossa área: achar que se uma tecnologia é adequada para projetos grandes então também servirá pra projetos pequenos.
Toda tecnologia que você escolhe tem prós e contras. E um projeto grande tem necessidades diferentes de um projeto pequeno. Então você tem que sempre analisar se para um projeto específico a tecnologia faz sentido ou não.