Core Data provides a general-purpose data management solution developed to handle the data model needs of every kind of application, large or small. You can build anything from a contact-management application to a vector-art illustration program on top of it. The sky is the limit. Almost any application that manages data objects can benefit by using Core Data.
Interface Builder, Apple’s graphical user interface editor, provides pre-built Core Data controller objects that eliminate the need for much of the glue code between your application’s user interface and its data model. You don’t have to worry about SQL syntax. You don’t have to maintain logic trees to track user behavior. You don’t have to create a new persistence mechanism. It’s all done for you, when you wire your application’s user interface to its Core Data model.
Core Data organizes your application’s model layer into a set of defined in-memory data objects. Core Data tracks changes to these objects and can reverse those changes on demand, such as when a user performs an undo command. Then, when it is time to save changes to your application’s data, Core Data takes care of archiving the objects to a persistent store. And, it saves data into regular files that users can manage with the Finder, search with Spotlight, backup to CD, and email to friends and family.
Using the Core Data framework, you create a managed object model that provides an abstract definition of the model objects, known as entities, used by your application. This entity-relationship model is defined using Xcode’s Data Model Design tool, which provides a rich environment to model entities as well as their relationships. It serves as a blueprint for your application’s data types and the relationships between them.