I'm inside a design phase for creating a media player to have an embedded system. The majority of such systems use SQLite/embedded MySQL for data management. How does one compare an XML database employed for media player within an embedded system? Pros/Cons?


Pros / cons (because of the equivalent data):

  • XML:
    • [+] Should use less system assets for straightforward data locating
    • [-] Changes on data could be difficult (have to rewrite entire XML files)
    • [-] Limited data management abilities (perils of reinventing the wheel for very common SQL features for example LIKE, GROUP BY, LIMIT etc). However check for those who have an XQuery / XPath lib, however i reckon that anyway you'd be limited for data writing, tables management, joins etc.
  • SQLite/MySQL:
    • [+] Possible ways to manage data using SQL, work easily with several tables...
    • [+] (SQLite only): no server needed (unlike MySQL), should then bring less setting up issues, consume less system assets etc.

I'd go for SQLite.

Information is simpler to update in XML document format compared to a database. In case your data set is not too big, provide the native XML database eXist an attempt: http://exist.sourceforge.net/

"Embedded System" often means numerous things, however in general SQLite is substantially more lightweight than any XML database. If we are speaking embedded instead of portable (as with, maybe 64MB or a smaller amount of available RAM), I'd also avoid something that requires a Java atmosphere, because JIT and garbage collection are pricey memory-smart and processing-smart.

Sedna is comparatively complicated to set up and could not live easily within an embedded atmosphere.

Besides SQLite, the industry excellent fit for that embedded space, BerkeleyDB XML might be an alternate if you want something XML-based.