9

I want to know if my understanding is correct :

embedded : databases which are up if my application is up and are down if my application is down. I am not referring the databases used in embedded space.

in-memory : databases could be on any server; irrespective of where my application is running. Just that, these uses main memory.

6
  • The tags you included in the question explain the concepts quite properly IMO. Commented Feb 14, 2018 at 8:36
  • what's meaning of "tightly integrated" here? Commented Feb 14, 2018 at 8:59
  • It means it's fully integrated in your application. It's ready to work with it and it might be difficult to port it to other application. Commented Feb 14, 2018 at 11:09
  • does it mean that database and application would run on same server ? Commented Feb 14, 2018 at 11:20
  • I basically want to know if embedded DB is created when my application process starts and ends when my application process ends. Commented Feb 14, 2018 at 11:30

2 Answers 2

11

Full disclosure: I represent the vendor of eXtremeDB.

Embedded databases have been around since at least the early 80's. db_VISTA, c-tree, btrieve, Empress are some of the most common from back in the day.

'Embedded database' has nothing to do with embedded systems. It simply means a database management system that is delivered to the programmer as a set of object code libraries that are to be linked with the application object code into an executable program image. In other words, the database functionality becomes part of the application itself, in the same address space. Embedded databases were used primarily for line-of-business applications in the 80s and 90s. It wasn't until the late 90s and early 2000s that embedded systems began to migrate to 32-bit architectures in sufficient numbers that database systems could be considered to be commercially viable. eXtremeDB was launched in 2001 as the first in-memory, embedded database system written explicitly for embedded systems. (8-bit and 16-bit systems do not have enough addressable memory to support a DBMS.)

An embedded database system can be either an in-memory database or persistent database (i.e. disk-based database).

An in-memory database system can be an embedded database system, or it can be a client/server database system.

A client/server database system can be an in-memory database system, or it can be a persistent database system.

As you can see, all the lines cross. You can have

  • client/server in-memory
  • client/server persistent
  • embedded in-memory
  • embedded persistent

And, you have have hybrids of all the above.

Sign up to request clarification or add additional context in comments.

Comments

2

DBMS Architecture:

  • Client-Server model: distributed structure where the DBMS resides on a server and client applications access the database; the database is said in server mode.
  • In-Process model: a monolithic structure where the DBMS and the application run in the same process; the database is said in embedded mode.

DBMS Storage:

  • in-memory: a database management system that employs memory as data storage (and disk as backup), the database is said in-memory mode.
  • on-disk or persistent: a database management system that employs disk as data storage (and memory as cache).

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.