views:

115

answers:

5

I'm currently in the process of evaluating the design, and possible reimplementation of an in-house app our engineers use.

Although the application handles large amounts of data. Only two sets of values (floats) are saved along with a simple name and description of the data. In my opinion the current application is in overkill territory using a normalized access database to store what evaluates to 7 fields of strings and floats.

At what point do you start looking at transitioning from a flat file or serialized XML to a relational database or vice versa?

+6  A: 

I would recommend using a lightweight database like SQLite which reduces a lot of the overhead of using a database.

http://sqlite.org

Sam
With a nice ORM abstracting the DB so he can transition to something bigger in the future if need be. Pays to design defensively.
JosefAssad
"abstracting the db", why are kids these days so scared of SQL?
Gaius
scared? The "standard" is inconsistent, every DB software has its own flavour of SQL, its escaping is a royal pain (especially when creating stored procedures and functions), you need to encapsulate and escape data very carefully to avoid SQL injection... but hey, that's nothing to be scared of! - It is just a reason to avoid SQL altogether if possible.
foo
Using SQLite doesn't necessarily mean you have to use SQLite-specific SQL. We don't have any SQLite specific SQL in our application. The advantage though is SQLite requires no installation, no maintenance, and is really lightweight.
Sam
+4  A: 

Databases can have huge advantages over flat files, even if you only have a single table with a few values.

They can dramatically improve query speed if you have a large amount of data - if you only need to find one value via a key, pulling this from a DB with an index prevents you from having to parse the entire file and search.

Reed Copsey
Don't forget data integrity issues too. DBs take care of dealing with making sure the data actually gets written to disk.
AngerClown
+2  A: 

I start when I have to maintain a large set of related data entities.

When you a start having many-to-many or many-to-one type relationships within your data, it is time to think about using a relational database to maintain relational integrity.

Oded
+3  A: 

You should use the db right away because of a key word: engineer s (the plural is key)

Trying to recreate the ACID principles of any worthwhile RDBMS, even for a small amount of data even for a few users, will clobber your chances for success. You also won't have backups, custom querying and a dozen of other abilities that an RDBMS provides "out of the box."

Paul Sasik
+3  A: 

Databases are going to be better equipped to query the data. If you mean 7 values - use a flat file. If you mean 7 fields, where there could be hundreds or thousands of records (each containing 7 fields), then use a database - particularly if you need to sort or otherwise query those records.

cinqoTimo