Aby opracować, co napisał Jergason. Core Data to mapowanie obiektowo-relacyjne (ORM) podobne do Hibernate w świecie Java. Oddziela on rzeczywistą mechanikę przechowywania danych (takich jak pliki SQL lub .plist) od kodu. Twój kod musi po prostu radzić sobie ze spójną strukturą zorientowaną obiektowo, aby pobierać obiekty, aktualizować je i utrzymywać. Dane podstawowe obsługują pewien poziom transakcji ACID, ale nie są zatwierdzane dwufazowo. Na iPhonie ustawienia domyślne dla danych podstawowych owijają bazy danych sqlite warstwą ORM.
Jedną z interesujących korzyści wynikających z używania Core Data jest narzędzie do wizualnego projektowania modelu danych i generowania klas modeli. Jeśli masz duży model, może to zaoszczędzić sporo czasu w klasach modelowania rąk.
Inną interesującą zaletą Core Data jest możliwość migracji bazy danych z jednej wersji modelu do drugiej. Jest to bardzo ważne w świecie iPhone'a, ponieważ możesz chcieć zmodyfikować swój model danych z jednej wersji aplikacji na drugą. Core Data zapewnia dość prosty sposób na przeniesienie utrwalonych danych ze starego modelu do nowego bez konieczności pisania mnóstwa kodu migracji. Po prostu definiujesz mapę migracji i dodajesz "kilka" linii kodu do delegata aplikacji, a rzeczy się konwertują.
Dane podstawowe na iPhone'a są zaprojektowane dla środowiska mobilnego. Jeśli pobierzesz wszystkie wiersze w tabeli do tablicy, to w rzeczywistości nie wciągniesz wszystkiego do pamięci. Tworzy to, co Apple nazywa błędną tablicą, która jest po prostu obiektem, który wygląda jak NSArray. Po uzyskaniu dostępu do różnych elementów macierzy dane podstawowe pobierają te elementy (wiersze) podczas użytkowania, a nie zapytania. Oszczędza pamięć i pomaga szybciej działać aplikacji.
W sumie jest to w pełni funkcjonalna warstwa ORM, nie tak bogata jak Hibernate, ale wystarczająca dla tego środowiska.