Хоча Core Data є нащадком Apple Enterprise Enterprise Object Framework , об'єктно-реляційним картографом (ORM), який був / щільно прив'язаний до реляційного резервного середовища, Core Data не є ОРМ. Фактично це структура управління об'єктними графами. Він управляє потенційно дуже великим графіком екземплярів об'єктів, дозволяючи додатку працювати з графіком, який не повністю впишеться в пам'ять, пошкоджуючи об'єкти в і в пам'яті за необхідності. Основні дані також керують обмеженнями щодо властивостей та відносин та підтримують цілісність посилань (наприклад, підтримуючи послідовність прямих та зворотних посилань, коли об’єкти додаються / видаляються в / з відносини). Отже, Core Data є ідеальною основою для побудови "модельного" компонента архітектури MVC.
Для реалізації свого управління графа, Core Data відбувається використовувати SQLite в якості дискового сховища. Він міг бути реалізований за допомогою іншої реляційної бази даних або навіть нереляційної бази даних, наприклад CouchDB . Як зазначають інші, Core Data також може використовувати XML або двійковий формат або атомний формат, написаний користувачем, як резервний (хоча ці параметри вимагають, щоб весь графік об'єкта помістився в пам'ять). Якщо ви зацікавлені в тому, як основні дані реалізуються на бекенде SQLite, ви можете перевірити рамку OmniDataObjects OmniGroup , реалізацію з відкритим кодом підмножини API основних даних. BaseTen структура також є реалізація API ядра даних з використанням PostgreSQL в якості движка.
Оскільки Core Data не призначений бути ORM для SQLite, він не може читати довільну схему SQLite. І навпаки, не слід покладатися на можливість читати сховища даних SQLite Core Data за допомогою інших інструментів SQLite; схема - це деталь реалізації, яка може змінюватися.
Таким чином, між використанням Core Data або SQLite безпосередньо не існує конфлікту. Якщо ви хочете отримати реляційну базу даних, використовуйте SQLite (безпосередньо або через одну з обгортки Objective-C, наприклад FMDB ), або реляційний сервер баз даних. Однак ви, можливо, все ж захочете вивчити Основні дані для використання в якості структури управління об’єктним графіком. У поєднанні з контролерами класів Apple та віджетами сумісного перегляду, що поєднують між собою ключ та значення, ви можете реалізувати повну архітектуру MVC з дуже невеликим кодом.