When is a database called as an Embedded database?
Solution 1
There are two definitions of embedded databases I've seen:
- 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.)
- 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.
ihavprobs
Updated on June 13, 2022Comments
-
ihavprobs almost 2 years
Does the term 'embedded database' carry different meaning from 'database'?
-
ihavprobs almost 13 yearsThanks 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 almost 13 yearsDepends 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 almost 13 yearsThanks 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 almost 13 yearsGood answer - but beware that "embedded SQL" means something altogether different.
-
ihavprobs almost 13 yearsThank you. I'll make a note of it.
-
Vinko Vrsalovic almost 13 yearsIf 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