Bien que l'essentiel des Données est un descendant d'Apple Objet d'Entreprise Cadre, un mappeur objet / relationnel (ORM) qui a été/est étroitement lié à un relationnel backend, Base de Données n'est pas un ORM. Il est, en fait, un objet graphique cadre de gestion. Il gère un très grand graphe d'instances de l'objet, permettant une application pour travailler avec un graphique qui ne serait pas tout à fait aptes dans la mémoire par les failles des objets dans et hors de la mémoire que nécessaire. Base de Données gère également des contraintes sur les propriétés et les relations, et maintins de référence de l'intégrité (par exemple, en gardant en avant et en arrière des liens cohérents lorsque des objets sont ajoutés/retirés à partir d'une relation). L'essentiel des Données est donc un cadre idéal pour la construction du "modèle" des composants d'une architecture MVC.
Pour mettre en œuvre son graphe de la gestion, de Base de Données qui se passe pour l'utilisation de sqlite comme un disque store. Il pourrait avoir été mis en œuvre en utilisant une autre base de données relationnelle ou même une base de données non relationnelle comme CouchDB. Comme d'autres l'ont souligné, la Base de Données peut également utiliser XML ou au format binaire ou un utilisateur écrit atomique format comme un backend (si ces options exigent que la totalité de l'objet graphique tenir en mémoire). Si vous êtes intéressé par la façon dont l'essentiel des Données est mis en œuvre sur une sqlite backend, vous pourriez vouloir vérifier OmniGroup de OmniDataObjects cadre, une implémentation open source d'un sous-ensemble de la Base de Données de l'API. Le BaseTen cadre est aussi une implémentation de la Base de Données de l'API à l'aide de PostgreSQL comme un backend.
Parce que la Base de Données n'est pas destiné à être un ORM pour sqlite, il ne peut pas lire arbitraire sqlite schéma. À l'inverse, vous ne devriez pas compter sur d'être en mesure de lire de Base de Données sqlite magasins de données avec d'autres sqlite outils; le schéma est un détail d'implémentation qui peut changer.
Ainsi, il n'est pas vraiment un conflit entre l'utilisation d'une Base de Données sqlite ou directement. Si vous voulez une base de données relationnelle, l'utilisation de sqlite (directement ou via l'un de l'Objective-C wrappers comme FMDB), ou un serveur de base de données relationnelle. Cependant, vous pouvez toujours apprendre de Base de Données pour l'utiliser comme un objet graphique cadre de gestion. En combinaison avec de la Pomme de classes de contrôleur et de valeur-clé de liaison affichage compatible avec les widgets, vous pouvez mettre en œuvre un complète l'architecture MVC avec très peu de code.