Qual é a melhor base de dados para um projeto pequeno

Olá amigos do GUJ
Iniciei um projeto em casa, mas e como sempre preciso de ajuda.
Inicei meu projeto utilizando uma base de dados baseada em ASCII (acesso a arquivos randomico e sequencial), mas tive uma complicação que me tomou muito tempo e até agora não consegui resolver. não consegui fazer a alteração. apenas isso impossibilitou que eu desse continuidade ao meu projeto.

Bom, eu gostaria de saber qual é o modo mais viável ou mais fácil de inserir uma base de dados em meu projeto. Eu precisarei não apenas armazenar, mas também manipular os dados. o mais fácil e simples pelo que vi são os acesso a arquivos randomico e sequencial.

Se possível, gostaria também de alguns códigos informativos, apenas para me guiar ou sugestões de tutoriais e coisas do tipo.

valeu mesmo

Leandro M.

Não creio que manipular arquivos texto seja algo confiável… Deixa o trabalho duro para o SGBD.

Existem alguns sgbds escritos em Java e que podem ser distribuidos junto com a aplicação.

Um exemplo é o Apache Derby.

Até mais!

não se compreendi a sua resposta davidbuzatto, e também esqueci de mencionar, meu projeto não é web, ou seja, se não me engano se diz desktop.

um abraço

Mas eu não estou falando de aplicação Web…
Você falou quer quer persistir dados em arquivos texto não foi? Isso já não é uma prática viável, ainda mais se vc quer que sua aplicação funcione em rede, tem todo o lance de concorrência, etc. Mesmo que não seja o caso (executar em rede) você pode embutir um SGBD escrito em Java (como já falei o Derby é um exemplo) para gerenciar seus dados e o mesmo cuida do trabalho sujo para você.

Se ainda não for isso ou mesmo se vc não entendeu o que eu falei, explica melhor seu problema.

Até mais!

bom, deixa eu ver se entendi.
o 'Derby" que vc diz é um gerenciador de banco de dados? assim com mysql? confesso que nunca ouvi falar do “Derby”.
me corrija se estiver errado mas o “SGBD” seria um driver?
a verdade é que sou leigo no assunto, sou novato em programação java(comecei há apenas 4 meses).
davidbuzatto, fico muito agradecido por sua paciência comigo, suas informações estão de uma valia enorme, porém preciso ainda compeendê-las, pois como disse ainda sou meio leigo.
se não for pedir demais e se você tiver paciência gostaria que vc me desse um ponto de partida.

muito obrigado mais uma vez.

Bem, vamos lá :smiley:

Um SGBD (Sistema Gerenciador de Banco de Dados) é uma aplicação ou um conjunto de aplicações que tem como objetivo gerenciar dados. Cada SGBD tem sua forma de gerenciar tais dados, ou seja, cada um grava os dados de uma forma e tem políticas diferentes para manipulálos.

Hoje em dia, o modelo de gerenciamento de dados mais utilizado é o modelo relacional, onde são criadas tabelas que armazenam os dados e essas tais tabelas se relacionam entre sí. Nas tabelas os dados são armazenados nas linhas que por sua vez são divididas em colunas que correspondem aos atributos daquela tabela.

Por exemplo:
Tabela Pessoa

[code]
Atributos ou campos -> Nome Sobrenome Telefone

Dados (em linhas - registros) David Buzatto 19 36363636
Leandro M… 11 12545454[/code]

Para que uma aplicação se comunique com o SGBD é utilizada uma linguagem chama SQL (Structured Query Language). Essa linguagem é constitúida principalmente de dois tipos principais de comandos, onde a primeira classe são os comandos de seleção (para obter os dados) e a segunda os comandos de persistência (inserção, exclusão e alteração).
Hoje em dia, em Java principalmente, existem bibliotecas que fazem essa persistência de forma mais simples, sem o programador ter que escrever código SQL. Uma dessas bibliotecas é o Hibernate, mas isso ainda é meio avançado para vc aprender.

Bem, para que sua aplicação Java ou qualquer outra aplicação converse com o SGBD é preciso que você se conecte ao sistema. Em Java especificamente nós utilizamos o JDBC (Java Database Conectivity), que é uma especificação que dita como deve ser feita essa comunicação. Para que possamos usar o JDBC, precisamos de um driver de conexão, que é diferente para cada tipo de SGBD. Esse driver é fornecido pelo fabricante do SGBD.

O Derby é um SGBD embutido e se não me engano ele não é relacional e sim orientado a objetos.

Um SGBD normalmente é instalado em um servidor que será dedicado apenas a ele, ou seja, uma máquina só para o banco de dados. No caso do Derby, o mesmo é executado junto com sua aplicação e não em um computador à parte.

A sua idéia de manter dados em arquivos de texto é inviável, pois além de ter que esrever toda a lógica para a manipulação dos arquivos, você ainda teria que implementar meios de que seus dados se mantenham integros e que os mesmos pudessem ficar a salvo quanto a concorrência (muitos programas os acessando).

Sendo assim, os SGBDs (MySQL, Oracle, SQL Server, Postgree, DB2, Sybase, etc) entram na jogada para ajudar na persistência dos dados e ós mesmos utilizam uma linguagem padrão (SQL) como interface entre a aplicação e o SGBD.

O SQL é uma linguagem padronizada, sendo que os SGBDs atuais seguem essa padronização quase a risca… Os fabricantes dizem a quais aspectos seu SGBD é compatível ou está de acordo.

Sei que é muita coisa p/ vc entender, mas o básico seria isso. Espero que eu não o tenha confundido mais.

Dá ma pesquisada nessas palavras chave:
SQL, SGBD (DBMS ou RDBMS), JDBC

E por algum SGBD usado atualmente:
MySQL, Oracle, SQL Server, Postgree

Até mais!

A, mais uma coisa, tem um tutorial bom sobre JDBC aqui no guj na sessão de artigos/tutoriais.

Se precisar, entra no meu msn :smiley:

Até mais!

davidbuzatto,

vou seguir suas recomendações.
agora mesmo vou olhar o tutorial, verificar as palavras as quais me indicou.
nem sei o que dizer. valeu mesmo.
o caminho vc já me mostrou, agora vou segui-lo.
já anotei seu email, assim que possivel te mandarei um email e te adicionarei no msn. pode ser?
um abraço

MySQL, usa bases assim, depois vc só troca pro SGBD oficial

Pode me adicionar sim.

Heero, não entendi seu “troca para o SGBD oficial”…

Pelo que tenho visto o MySQL tem atendido muito bem minhas necessidades. Não que seja o SGBD mais robusto que existe, msa ele atende as necessidades de quase tudo.

Da uma olhada no projeto NeoDatis, bem fácil de distribuir e trabalhar com ele!

NeoDatis. Extremamente simples de usar. Já fiz vários sisteminhas pessoais com o NeoDatis.

http://odb.neodatis.org/

[quote=marcelocarnauba]NeoDatis. Extremamente simples de usar. Já fiz vários sisteminhas pessoais com o NeoDatis.

http://odb.neodatis.org/[/quote]

Mesmo eskema do Derby? Pode ser embutido na aplicação?
To com o manual do derby impresso, mas só de olhar akilo, dá uma preguiça de ler… heuheue

link para o manual do derby em PT
http://db.apache.org/derby/docs/dev/pt_BR/

Kknd e marcelocarnauba,

vou verificar o site, começar a baixar os materias do NeoDatis e ler. Assim também como o SGDB.

um abraço à todos.

Cara, só tome cuidado pois o NeoDatis é um SGBD “orientado a objetos” e o Derby ( aka Cloudscape, aka JavaDB ) é relacional. Tem conceitos, estruturas, fluxos e demandas diferentes. Se queres algo mais real ao mercado, prefira ainda os SGDBs relacionais, os OODBs que existem não estão tão difundidos ( eu diria até amadurecidos ) para que se possam substituir plenamente os relacionais.

Até!

hhhe sir maquiavelbona,

vejo que esta mais difícil do que eu imaginava, mas é assim que gosto. “A dificuldade nos engrandece”.
estou disposto a aprender as duas técnicas, tando a OO quanto a relacional. estou reunindo o material, exemplos, códigos fontes…
terei muito trabalho, pois sou leigo no assunto, pois programo em java há apenas 4 a 5 meses.
seguindo sua opnião e a do outro colega David é melhor eu me dedicar mais ao Derby pois seria ele mais rentável em termo de mercado de trabalho.

valeu. um abraço