Core Data框架提供的是对象-关系映射(object-relational mapping)功能。也就是说,Core Data可以将Objective-C对象转化成数据,并能将这些数据保存在SQLite数据库文件中。此外,Core Data也可以将保存后的数据还原成Objective-C对象。SQLite是一种关系数据库,可以通过单个文件保存所有的数据(从技术上讲,SQLite是一套管理数据库文件的代码库。本书中的SQLite一词,不仅指该代码库,还指相应的数据库文件)。需要注意的是,与Oracle、MySQL或SQL Server不同,SQLite不是一套全功能的数据库服务器,没有自己的服务进程,所以也没有客户端(client)可以通过网络连接SQLite。
借助Core Data,读者无须了解SQL就能读取和保存关系数据库中的数据。即便是这样,还是应该对关系数据库的工作原理有一定的了解。本章将介绍若干关系数据库的基本知识,并用Core Data重写BNRItemStore的数据保存功能。