data storage in applications
I have a program which needs to access a database of information but that the database must be 'enclosed' in the application (no retreiving the data from an external database), how would i go about that ? For instance i have a c++ program which reads from a text file all the data it needs and then stores the data in a hash table until the program exits. Obvioulsy this takes a toll on system memory and is dependant on a easily modifiable text file.
I once made a front end for a database in visual basic. The app used a access database file for the data storage and accessed the data through vb's sql implementation. I didn't like how the data was obviously a data file and could easily be tampered or cracked.
So how do modern apps go about solving this problem, accessing and storing data (taking in to account that data may need to be modified, added etc), and how to enclose the data neatly in the application, by this i mean that in the install directory the user won't see a collection of databases they can extract to tamper.
A good example of this type of program would be a dictionary. How can you implement the database to hold the words in c++, or in java ? If you know how to do it in a different language and the technique is very different to java or c++ please post too.