BANCO DE DADOS EMBBEDED - DUVIDAS

PERCIFILHO 23/04/2013 08:53:51
#422330
Bom dia amigos.
Preciso fazer um sistema pequeno para um setor aqui da empresa, porém não irei utilizar o SqlServer. Gostaria de usar algo como o Access, porém não gosto muito de Access, acho que a aplicação fica lenta, penso que ele é meio limitado. Vi algo sobre Sqlite, algué o utiliza? Recomenda? A máquina que irá manipular esse aplicativo está com Windows XP, mas provavelmente chegará uma máquina nova, creio que Windows 7 ou 8. Será que terei problemas de não funcionar futuramente nessa máquina nova? Se alguém puder me esclarecer essas e outras dúvidas sobre o Sqlite ou outro banco de dados embbeded, eu agradeço muito.

Até mais.
OCELOT 23/04/2013 09:34:45
#422336
Eu consideraria o uso do SQL Server Express instalado localmente na máquina, mas se for algo simples e for ser usado apenas por 1 computador o SQLite deve dar conta, ele é bem mais simples que outros bancos de dados e dependendo do qual você pegar ele pode nem mesmo ter suporte a chaves estrangeiras e a manter a integridade referencial, mas de resto ele deve funcionar sem problemas do XP ao Windows 8
PROFESSOR 23/04/2013 10:05:03
#422340
Bases de dados são sempre motivo para debates, pois cada um tem suas preferências. Embedded ainda por cima, onde a disputa é mais acirrada e os [Ô]competidores[Ô] são nomes de peso, a coisa complica. São vários os mecanismos que podem ser usados, todos com bons pontos positivos, nenhum perfeito.

Entre eles, como você cita, o Sqlite, mas também outros, como o Object Database (Db4O), o InnoDB, o velho conhecido Firebird, o Sybase Advantage e o Oracle Berkeley Db.

O Db4O não é exatamente uma base de dados, no sentido tradicional, mas um sistema de armazenamento e gerenciamento de objetos serializados, o que funciona bem, mas é um pouco lento, na minha opinião.

Opinião pessoal, para mim, se você não precisa utilizar Stored Procedures, o indicado seria o SQL Server CE.

O Microsoft SQL Server Compact Edition 4.0 pode lidar sem problema algum com sistemas x32 ou x64, suporta até 4Gb em dados (pouco menos do que o dobro de um Oracle Express), é free, possui um bom suporte, utiliza uma sintaxe amplamente conhecida (os arquivos de Help podem ser baixados), suporta Entity Framework 5 e Code First 5/6, não requer servidor ou serviço, não adiciona usuários ao Windows, é rápido e pequeno (aliás, como o nome sugere).

Por meio do Code First da EntityFramework, você define manual e livremente as classes dos dados, dos relacionamentos e inclusive das validações. No App.Config, se quiser, pois não é necessário, define o comando de conexão aos dados, da mesma forma como faria no Web.config de uma aplicação ASP.Net. Com todas as classes definidas, você [Ô]instrui[Ô] o aplicativo em, ao inicializar, ao criar uma instância do DbContext (instância que pode ser global), e com isso a base de dados será gerada. Há como definir modelos para essa inicialização, determinando, por exemplo, se ao detectar alguma variação entre código e base de dados, o banco deva ser recriado.

Deste modo, depois de pronto, caso você precise mais algum campo ou ainda se houver a necessidade de mudar tipos de dados por exemplo, o banco de dados será atualizado automaticamente. é claro que, ocorrendo, os dados anteriormente gravados serão perdidos, pois a base de dados inteira é recriada com as novas estruturas, mas não deixa de ser uma mão-na-roda.

Em tempo, o Microsoft SQL Server Compact Edition 4.0 não oferece suporte á Views ou á Stored Procedures, é verdade, mas no caso das Views, nada impede de você criar uma tabela extra, nomeadas Views, e salvar nessas tabelas as instruções SQL desejadas, para fins de manutenção.

Assim, novamente afirmando que é apenas uma opinião pessoal, acredito que o Microsoft SQL Server Compact Edition 4.0 é uma excelente opção para aplicativos pequenos, WinForms, WPF ou mesmo WebForms, e que não requeiram uma base de dados centralizada, no modelo Client/Server.
Tópico encerrado , respostas não são mais permitidas