Difference Between CoreData and Database in iPhone

Database

  • Its primary function is to store and fetch data.
  • It operates on data stored on disk.
  • It can store "dumb" data.
  • It can be transactional, thread-safe, multi-user.
  • Can drop tables and edit data without loading into memory.
  • Perpetually saved to disk.
  • Can be slowto create millions of new rows.
  • Offers data constraints like "unique" keys.

CoreData

  • Its primary function is graph management.
  • It can operate on objects stored in memory.
  • Works with fully-fledged objects that self-manage many of their behavior and can be subclassed and customized for further behaviors.
  • Non-transactional, single threaded, single user.
  • It only operates in memory.
  • Requires a save process.
  • Can create millions of new objects in-memory very quickly.
  • Leaves data constraints to the business logic side of the program.

Sqlite

  • To implement its graph management, Core Data happens to use sqlite as a disk store.
  • It could have been implemented using a different relational database or even a non-relational database such as CouchDB.
  • In this we can work with SQL query.
  • SQLite does not require a separate server process or system to operate.
  • The SQLite library accesses its storage files directly.
  • SQLite supports most of the query language features found in the SQL92 (SQL2) standard.