When is a database called as an Embedded database?

11,885

Solution 1

There are two definitions of embedded databases I've seen:

  1. Embedded database as in a database system particularly designed for the "embedded" space (mobile devices and so on.) This means they perform reasonably in tight environments (memory/CPU wise.)
  2. Embedded database as in databases that do not need a server, and are embedded in an application (like SQLite.) This means everything is managed by the application.

I've personally never seen the term used exactly as Wikipedia defines it, but that's probably my fault, although it resembles quite a bit my number 2 above.

Solution 2

The word 'embedded' does add meaning, basically that the database is dedicated to a specific application rather than shared among multiple applications, to a degree hidden from the user of the application, and completely controlled by the application.

An embedded database is conceptually just a part of the application rather than a separate thing.

Solution 3

Just see the usage of ... for example a H2-embedded database. You don't need a server running on your machine, your whole database ist stored in one (these are originally two) local file. It is opened and locked when you connect to your DB, and it is unlocked when you disconnect.

Solution 4

When a developer embeds a database library inside an application and there is no need for administrator, it is called embedded database. Database is hidden, but data management via SQL (e.g. ITTIA DB SQL) or no SQL (e.g. Berkeley DB) is accessible through APIs. Embedded databases are common for web development or device applications.

Share:
11,885
ihavprobs
Author by

ihavprobs

Updated on June 13, 2022

Comments

  • ihavprobs
    ihavprobs almost 2 years

    Does the term 'embedded database' carry different meaning from 'database'?

  • ihavprobs
    ihavprobs almost 13 years
    Thanks for the reply. I have a question. WRT to #2, do you say that the server actually resides within the application server so start/stopping the app server takes care of the database process start/stop?
  • Vinko Vrsalovic
    Vinko Vrsalovic almost 13 years
    Depends on the exact technology used on both the database and application, but yes, the application manages the data store. In SQLite's case, it's just a library that you link against so there's no actual server.
  • ihavprobs
    ihavprobs almost 13 years
    Thanks again. To be specific, am trying to use apache derby database for a apache wicket web app inside apache geronimo server. So, its the start/stop of geronimo server that takes care of the entire database server management so the admin user need not worry about a separate database server. Am i correct?
  • symcbean
    symcbean almost 13 years
    Good answer - but beware that "embedded SQL" means something altogether different.
  • ihavprobs
    ihavprobs almost 13 years
    Thank you. I'll make a note of it.
  • Vinko Vrsalovic
    Vinko Vrsalovic almost 13 years
    If you use the "embedded JDBC driver" then everything runs in the same VM as your app, so killing the app container would indeed kill the DB (as it kills your app) and starting it up would start it up (although more precisely it's your app that would bring up the DB via the JDBC calls.) db.apache.org/derby/papers/DerbyTut/embedded_intro.html