What is an embedded database?
An embedded database (Wikipedia Entry) engine is a database management system (DBMS) which is usually
hidden from the applications end users, and requires no local database
administrator to manage (zero config). The application usually communicates to the
database through an application programming interface (API) that may be SQL or
proprietary database vendor native calls.
The application software that requires access to the stored data often includes
the database maintenance functions as a part of their system, including backups,
packing, table maintenance, etc. The user of the application usually has
no idea that the system is even using a database.
Embedded databases can use different architectures
In process (sometimes called Serverless database)
resides with the application and terminates when the application exits.
VistaDB is an in process engine.
Client / Server is usually not considered an embedded database because the
database engine resides outside the application, and usually requires the end
user to manage the server.
Examples of Embedded Databases
Not sure what a real world embedded database app looks like? Take a look
at some of these examples.
- Desktop email software
- Microsoft Outlook PST files
- Thunderbird stores mail in multiple files that make up the data and indexes
- Apple Mail uses an embedded database
- Desktop Search (Google Desktop / Beagle / Live Search)
- The desktop search market heavily uses local databases to store file data,
search indexes and more
- Blackberry Smartphones
- The Blackberry is actually a giant Oracle database. The entire filesystem
is stored in an embedded database.
- Desktop applications that embed Microsoft Access MDB files
- Many use the Access Runtime for their datastore, but display icons and logos
from their own application
- Access may contain VBA Forms for controlling access to the data, and complex
logic as well
- Many small business packages are written as Access modules
- Games
- Games are storing more and more data into embedded databases to allow quicker
stats generation, or even as save game formats
- Accounting Packages
- Most accounting systems like Quickbooks store their records in relational data
for ease of reporting and quick retrieval of records based upon criteria
- Microsoft Money files are also an embedded database
- Tax Systems
- Applications like TurboTax store often store user entries in an embedded
database for quick cross reference and tabular access to the results
- Switches / Routers
- DNS enties, DHCP data, and even just the user configuration settings are often
stored in databases
- Blogs
- Almost every popular blogging system uses some form of database to put the blog
and comment data. Graffiti is an example that uses VistaDB to store the
data with the blog for quick ftp deployment of the blog presentation and data.
VistaDB is an Embedded .Net Database Engine
VistaDB resides with your application and executes in process with your
application. The database files are a single file VDB3 file that may be
renamed in order to be used as a file format for your application. The
VistaDB runtime assembly is a single .Net Assembly that may be merged into your
application to further disguise the use of our database within your application.
Most desktop users of VistaDB don't ever know they are using us!
We
allow you to seemlessly embed our database engine into your application for the
best possible end user experience.
All Embedded Databases have Pros and Cons
Read this
blog interview with CyberSavvy discussing the pros and cons of deploying
various embedded database options and why VistaDB is the option they chose.