Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I want to extend a WPF application with database functionality. Which database engine would you suggest and why? SQLite, SQL CE, other?
Depending on the applications use, I would recommend using SQL Lite because it doesn't require you to install any other software (SQL CE or Express, etc. usually would require a separate install).
A list of the most important benefits for SQL Lite from the provider link at the bottom of this post:
SQLite is a small C library that
implements a self-contained,
embeddable, zero-configuration SQL
database engine. Features include:
Zero-configuration - no setup or
administration needed.
Implements most of SQL92. (Features
not supported)
A complete database is stored in a
single disk file.
Database files can be freely shared
between machines with different byte
orders.
Supports databases up to 2 terabytes
(2^41 bytes) in size.
Small code footprint: less than 30K
lines of C code, less than 250KB
code space (gcc on i486)
Faster than popular client/server
database engines for most common
operations.
Simple, easy to use API.
Self-contained: no external
dependencies.
Sources are in the public domain.
Use for any purpose.
Since you're using WPF I can assume you're using at least .NET 3.0. I would then recommend going to .NET 3.5 SP1 (sames size as .NET 3.5 but includes a bunch of performance improvements) which includes LINQ.
When using SQLite, however, you would want to use the following SQLite Provider which should provide LINQ support: An open source ADO.NET provider for the SQLite database engine
I used SQL Compact Edition with my WPF app and I'm happy with my decision. Everything just works (since WPF and SQLCE are both MS they play nicely together), and the installation of the runtime is small enough and smooth enough for my needs. I created and modified the database through visual studio.
Just to throw out a differing opinion, we've been using SQL Compact Edition for the last year and have been generally satisfied with. The configuration is cake and it behaves very similar to a regular MS SQL database. There are things missing, like triggers and stored procedures, but SQL 3.5 CE has virtually everything else we'd need. It's about 2Mb of .dlls to install. It offers database encryption, transactions, and supports VS's typed dataset designer (3.1 had some problems, but CE 3.5 is great!).
SQL CE DLLs can be packaged into your own application and need not require a separate install. But MS provides a default install package, if you dont want to learn about setup ...etc.
More ot it, SQL CE supports private deployment.
SQLite is a really nice product although I miss features from PostgreSQL. There are other, especially non-SQL, databases you may to consider like Berkeley DB.
/Allan
I would agree that SQLite is the way to go.
Subsonic 2.1 now includes SQLite support as well.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I have created a simple (commercial) WPF application and want to distribute it with a database that can be installed on the local machine of a customer.
What database is the best to use ?
I was considering SQL Server Epress Edition 2008. I know the limitations of 10 GB, but that's more than enough and is no issue.
The only thing I'm not choosing 100% for Express is that I don't know how to let my customer backup the database.
My collegues keep telling me to use MS Access, but I don't know if that's a good option because I want to use stored procedures and views.
Please let me know what you are using or you can advise me...
SQLite is a great alternative. There is an ADO.NET provider developed by System.Data.SQLite
And there is a decent, free, editor for SQLite as well: SQLite Administrator
Backing up is as easy as copying the SQLite db file. Really.
What is the estimated amount of data?
For small databases SQLite may be an good choice - it is light, fast, opensource and needs no additionally software. It even supports encryption, if you need that.
Backup is as easy as it could be, as the SQLite-database consists of a single file.
Ruutert: database-size up to 500 mb:
That size should be no problem for SQLite. We use databases up to several GB. Only problem on big databases is, that vacuum (like reorg / compress unused space) takes as longer as bigger the database is (but that is the same for other database-types)
Ruutert: disadvantages of SQLite?
You could get problems with High Concurrency (lots of parallel database-access). Also I would consider an client-server oriented database-manager if your workload is so heava that you think about moving your database-manager to another server - splitted from application-server.
But as you considered using SQL Server Express or MS-Access, which have limited functionality too, that should not be the problem. On the other side you have the advantage that you need just an small dll (or compile it static into one of you own) instead of installing an complete database-manager.
An embedded database (like SQLite, which others answerers already mentioned) sounds like the right choice for you.
Since you're using .net anyway, how about Microsoft's SQL Server Compact?
(also an embedded database)
SQL-CE does not include stored procedures.
SQLite is usually the chosen one. However, there is also VistaDB.
You could always look into NoSQL or OO databases:
db4o
RavenDb
EloqueraDB
Note that some of these may need separate DLLs in order to expose the providers in .NET code.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I'm looking for a SQL Server client that will run on Mac OS X. Ideally, I'd like something lightweight that allows me to easily browse the schema, run adhoc queries, highlight SQL syntax, etc.
I really like SQL Yog, so something like that would be perfect, any recommendations?
You may like SQLPro for MSSQL (App Store).
The app has a few neat features such as:
Syntax highlighting.
Intellisense.
Tabbed based interface.
Support for executing multiple queries at once.
Quick access to tables, columns and more.
Query primary key detection and the ability to edit/delete/insert rows directory from query results.
Support for MSSQL 2005+ database, including those hosted on Azure.
NTLMv2 supported (but not required).
Netbios hostnames supported.
There is a seven day trial available via the website. If you purchase via our website, use the promo code STACK25 to save 25%.
Disclaimer: I'm the developer.
I would suggest you NAVICAT. It's not free but it's not that expensive either. Other than that, any JDBC based solution would work, although they might not be as lightweight as you may want. SQuirreL SQL is pretty good.
Have you tried Aqua Data Studio? It's not very lightweight but if the database is small it should handle it easily.
DBVisualizer. Been around for a while. Not the cheapest but has a lot of bell/whistles and works very consistently bet/ MAC and Windows.
Supports all commercial/popular DBs.
http://www.dbvis.com/
You may like Valentina Studio, which is FREE for its 80% of features. Some advanced features go as Pro Edition.
The app has a few neat features such as:
Syntax highlighting.
Intellisense.
Tabbed based interface.
Support for executing multiple queries at once.
Quick access to tables, columns and more.
Support for MSSQL 2005+ database, including those hosted on Azure.
Have powerful Report Tools
Query Builder
Schema Editor
Diagram Editor, forward and reverse engineering
Data Editor with unique Related Tables feature
SQL Diff
Works in mac, win and Linux also. Natively. C++ app.
etc and etc
Disclaimer: I'm from Paradigma Software.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I've been using SQLite databases for development for a while now and I thought it would be useful to just view the contents of the generated db file. Are there any good tools out there for viewing SQLite db files and/or tools for running queries against them?
Here are a few free tools:
SQLite Manager (Firefox plugin)
SQLite Administrator
SQLiteSpy
SQLite Database Browser
I prefer SQLite Administrator, and occasionally use the Firefox version. There are other commercial options too.
SQLite Database Browser.
SQLite2009 Pro Enterprise Manager
It's free and it has a visual query builder just like professional database management tools.
Its list of features is:
Encryption Method compatible with wxSQLite3 (AES-128 bits) and
SQLite3 ADO.NET Provider (RSA-MS Crypt)
Syntax Highlight
Hex Viewer
Dump database to SQL file format
Unicode Support
Blob/Image viewer
Built-in FTS3 Extension
Built-in LUA Programming Language
Encrypted database support
Export recordset into excel, csv, xml and html format
Import data from MS Access, MS SQL server, MySQL and dBase III
Includes SQLite2010 Pro ODBC Driver
Includes Additional sqlite3 function (compress, decompress, crc32,
md5, lua_exec, etc)
Transactions supported
Visual Query Builder
Includes the user-contributed extension-functions from
http://www.sqlite.org/contrib.
Download it from its homepage (just scroll down to Freeware section)
Sqliteman - I was looking for something light and available on Fedora repo.
I was recently introduced to LINQpad . I might not have as many features as some of those above (though I haven't fully explored it yet). But it's pretty sweet, for a simple query interface that works.
Plus you can practice your LINQ with it too!
Here is another database viewer nobody has mentioned: SQLiteStudio
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
Has anyone used all three of these databases? What are your experiences with them? PostgreSQL looks pretty tempting for a project but I'm curious to learn more about it (We're a .NET Shop). I've also heard of quite a lot of people being satisfied with DB2.
I work in a very large organization that uses DB2 primarily on Linux (Red Hat). We have a number of large databases and have investigated moving to other RDBMS solutions, such as Oracle and SQL Server. I did a lot of work on the SQL server end of that.
We found that SQL server performs much better and requires less tuning than DB2, especially when tables frow larger than 1M records. HADR is also difficult and bulky, to say the least.
We found many differences between DB2 and SQL Server, and too many to list here. I was responsible for doing a lot of the engineering behind code conversion from one platform to another, and can't say I found anything in DB2 to be superior to SQL server, but did find many things I liked better about SQL server. Here are some off the top of my head:
Better selection data types in SQL Server, such as MONEY and SMALL MONEY.
Mixed character encoding in SQL Server. Some columns can be ANSI and others UNICODE (char and nchar, respectively). Setting this up in DB2 is neither straightforward nor easy.
Better tools in SQL server, mainly SSIS for ETL (As opposed to the insanely priced IBM Data Stage).
SQL server has more forgiving syntax. For example, you don't need semi-colons everywhere. Maybe just a personal preference but I found it much easier to code in T-SQL.
Many advanced features seem to work better in SQL server. For example, SQL server lets you do page-level compression, where DB2 is limited to row-level compression.
It was easier to tune SQL Server queries with the SQL Server IDE
There are more, but honestly I suggest that anyone who is considering one over the other should set both up and spend some time working with both systems. Right now it seems like SQL server is a better overall solution, but DB2 may one day take the crown.
Lastly, when dealing with data warehousing, SQL, SSIS, and SSAS made a much better solution than InfoSphere, DataStage, and DB2. I could write a whitepaper on it, but my suggestion here is to set it up on your own and spend a week or to playing with each solution. Microsoft's solution here was faster and cheaper than IBM's. I don't know of any other basis upon which to make a decision.
Platform shouldn't be an issue since databases generally run on their own machines, but there are always those "no microsoft!" and "no linux!" shops around. It's a shame, really. I'd recommend SQL server.
As a DB2 person, I can offer a few details about what you could expect from running DB2 for Windows and developing .NET applications for it. The following details were current as of version 9.7, which was released in June 2009.
Drivers and API support for just about any Windows programming language and IDE, including .NET and Visual Studio extensions
A no-cost, production-ready database engine (Express-C) that has no database size limit and is the least restricted when compared to Oracle Express and SQL Server Express
A self-tuning database engine for Windows that automatically handles the sizing of several memory buffers that are critical to good performance
Rock-solid support for XML as a native datatype, handled by its own dedicated query engine that is optimized for XML's hierarchical nature. Queries can access any combination of XML and tabular data with any combination of SQL and XQuery expressions
Avoid microsoft like the plague. Always push to use PostgreSql even on windows, way better support for developing applications for e.g. Java/Python and still has good support in .NET. Also of course is completely free which given the current license fees for SQL Server is nothing to be sniffed at even if you're a multi-million dollar company.
For the cost of 1 SQL Server license you are going to save £30,000 (say $40,000) or more - buy better hardware to run Postgres on and still have a net benefit.
As far as performance, really if this is such a massive issue we should not be using either DB2, SQL Server or Postgres anyway. The difference between the three is negligible for their design purposes.
Edit: On the .NET integration, actually this is really poor in SQL Server anyway, it does have more features than Postgres/DB2 admittedly but it's not really hugely advantageous over SSIS or stored procedures. I could see the main use case in my work as accessing classes and functions from a CLR .dll but then you're implementing logic in the database which may or may not be a good idea for you.
If you're a .NET shop, and are either using a small database (i.e. Sql Server Express), or have the money for the full SQL Server, use it. SQL Server will perform better than PostgreSQL for most actions, and about the same as DB2.
PostgreSQL is fantastic if you need multi-platform support, are Linux-based, or need a free product that's not Microsoft.
I haven't used DB2 in over 10 years, other than running an in-house performance test vs. other databases (where it was about the same for a transactional database as Oracle/SQL Server, where were better than MySQL, PostgreSQL, etc).
If you are a .net shop stay with SQL Server.
Using any other database platform would require non-Windows to get the best out of it. On Windows, SQL Server is king simply because MS own both OS and SQL Server (Like Oracle/Red Hat).
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
Wondering what is the best or most popular database client tool. Similar to Microsoft's SQL management studio, but one that can work with various databases. Other tools I have found are:
Toad for SQL Server
Database fishing tool
Apex SQL Studio
Some of these tools can even compare and sync database schema's and some cases the data itself as well. Very useful when deploying applications for example from a pre-production environment to production environment.
So what's your favourite database manager ? Maybe there is a nice open source tool out there that is well rounded with the most useful features.
SQuirreL SQL
Open source
Works with many databases
SqlDbx - www.sqldbx.com - has a free edition, is portable and works with quite a few dbs.
Also AnySQL Maestro - http://www.sqlmaestro.com/products/anysql/maestro/
I use PL/SQL Developer, as soon as I have to work on an Oracle Database. I like the UI, simple and fast.
I'm using Aqua Data Studio for many years now and it is the most valuable of all my tools - see Aquafold
I use Navicat myself. It supports MySQL, PostgreSQL and Oracle.
SQL Developer is nice for Oracle and has plugins for several other databases.
http://www.oracle.com/technology/products/database/sql_developer/index.html
Eclipse Data Tools Platform within Eclipse (my primary IDE):
Open source, works with many databases
Do all the basics and some advanced stuff. In recent versions you can find some kind of visual query builder as well.
Oracle has a plugin where implemented some Oracle-specific functions.
If you are using PostgreSQL (and, really, you should be!), PgAdmin rocks. It lets you query, explore tables, do administrative tasks, manage users, visually explain complex queries, graphically build queries and much more. It runs on Windows, Linux and OS X and can connect to local or remote PostgreSQL servers.
DbVisualizer - there's a free version with a bit limited functionality and a fully fledged one for $149.
If your're using MS Sql Server, try using LinqPad; it's much more lightweight than the Management Studio, and you'll be practicing writing queries in linq in the meantime as well.
(source: linqpad.net)
I prefer...
PL/SQL Developer for Oracle
The inbuilt tool for MSSQL
The inbuilt tool for DB2
RazorSQL - it works with pretty much any database you can think of.
Any comments on LyteRAD? Not a pure database management tool, but good for creating and prototyping db apps quickly.
I've used Query Express and it's great because it's actually a standalone 100 KB file, no installation needed. It only does querying but it's fast and free.
SQLyog for MySQL.
TOAD for when I worked with Oracle.
If you need data comparison, schema comparison or visual query builder, than you should take a look at our database tools for SQL Server:
dbForge Schema Compare for SQL Server
dbForge Data Compare for SQL Server
dbForge Query Builder for SQL Server
All these tools are quite affordable and have 30-days trial period.