Flat file databases and Arduino

Could someone steer me in the right direction? I need a bit of some guidance in taking a flat file database and using the information stored on that file output it to a LCD display.

The database is not delimited and contains one column of information not including a primary key (the key wont be used at the moment) the idea is I would store the database on an SD card and for right now I want it to select a random word and display it on a screen. My issue is not coding it per se but what libraries should I use and how do I handle database information in Arduino. I am not the greatest C programmer but I did write do a lot of php-mysql stuff so I can catch on quick. Maybe some of this is a hardware related question as well but am I on the right track by using an SD card shield for storage or.......? Essentially the database will be some 100-500 words.

Oh yeah and then would be phase two of the project....handling double wide characters (unicode) as I wish to localize the project as well.

Arduino is a small MCU with few memory (2K ram, 32K for program; 8K ram on Mega).
Is not present a O.S. that manage the file system.
You need the base library SD (using class File) to write in a file (a very big library that use ram).
The class File can write on file using print() and write().
http://arduino.cc/en/Reference/FileWrite
But with this function is easy write text on file. Not simple make something like a database.
I don't think is easy to find a library that manage a file text like a database, based on SD library also, for Arduino :fearful:

am I on the right track by using an SD card shield for storage

Yes. The rest of the project is just reading from an SD card, if the file is already stored there.

Different ways of organizing the file will make searching it easier or harder.

If the records are all fixed length, finding the start of the nth word will be easy. If not, then, you'll need to read the file one character at a time, counting end of record markers, until you find the nth row.

Which Arduino are you using? The mega 1280 and 2560 have 4K eeproms. 500 words allows you to store 8 bytes / word. You could program it with implicit keys allowing you 8 bytes == 8 characters / word fixed length.

2 bytes for an int key would mean 6 chars / word if fixed length, or an average of 5 chars / word if using a word delimiter.

If the word list is fixed, you could also store them in program memory (PROGMEM), where the Mega2560 has oodles.

Just a couple of other options to consider before embarking on the SD card journey.