Самый важный совет, который я могу дать, - не путать базовые данные с SQLite или SQL в целом.Поскольку Core Data может использовать SQLite как один, но только один из нескольких постоянных методов, многие новички развивают идею, что Core Data - это просто объектно-ориентированная оболочка для SQL, и поэтому Core Data можно понимать с точки зрения SQL, например таблиц.столбцы, строки, ключи, объединения и т. д. Однако Core Data на самом деле не имеет ничего общего с SQL, и в действительности вы ничего не знаете о применении SQL к Core Data.
SQL и Core Data обращаются к данным в совершенно противоположных направлениях, и это вводит людей в заблуждение.
SQL в основном связан с получением данных из постоянного хранилища (обычно с диска) и из него. Что такое программане относится к данным после прочтения, это не касается SQL.
И наоборот, Core Data в основном занимается управлением живыми объектами в памяти во время выполнения.В первую очередь это касается моделирования / моделирования объектов реального мира, событий или условий, с которыми имеет дело программа.90% работы с Core Data связано с этим моделированием, и сохранение данных (основная задача SQL) на самом деле просто запоздалая мысль.Фактически, вы можете использовать Core Data без сохранения чего-либо (используя хранилище в памяти), если хотите.
Начинающие программисты Core Data с фонами SQL тратят много времени, пытаясь выяснить, как Core Data реализует все компоненты SQL, когда в действительности Core Data делает все это в фоновом режиме и только если вы используете хранилище SQLite впервое место.
Наилучшая перспектива для изучения базовых данных - полностью игнорировать возможность сохранения данных вообще.Вместо этого примите во внимание, что Core Data управляет управляемыми объектами во время выполнения в памяти и их связями, не заботясь о том, как они будут сохранены.С этой точки зрения Core Data раскрывается не как база данных, а как инструмент моделирования данных.Это поможет вам сосредоточиться на данных и взаимосвязях между данными, а это, в свою очередь, значительно облегчит понимание деталей реализации Core Data.