这些示例足以从不同的角度说明信息和数据连接的模糊性。但是现在,让我们回到高德纳的观点。我认为,他对数据的定义在很大程度上反映了那些计算机科学家的观点,他们专门研究计算机科学的另一方面,即计算机编程—人类将计算任务传达给计算机的技术(我将在本书后面讨论这个话题)。即使在口头上支持计算作为信息处理的想法,程序员和编程理论家通常也不会考虑“信息”。相反,他们更关心像高德纳一样的科学家们的数据理念。更准确地说,他们将数据视为执行计算的基本对象(“数据对象”);因此,他们专注于数据对象的分类(“数据类型”),表示复杂数据对象(“数据结构”)的规则,以及操作、处理和转换此类数据对象以产生新的数据对象的规则。对于这样的计算机科学家来说,重要的是数据,而不是信息,也不是知识。更准确地说,程序员理所当然地认为“现实世界”中存在信息。但对他们来说,更有趣的问题是,如何以一种不仅适用于自动计算而且适用于人类理解的形式来表示现实世界的信息。(毋庸赘言,像历史学家、统计学家和实验科学家这样的其他从业者,通常不会以这种方式看待数据。)
我将在本书后面详细说明这一点。但是,先举一个程序员的数据观点的非常简单的例子。在大学环境中,注册办公室存有注册学生的相关信息:他们的姓名、出生日期、家庭住址、电子邮件地址、父母或监护人姓名,他们主修的科目、修读的课程、获得的成绩、持有的奖学金、支付的费用等等。大学管理部门需要一个系统,将这些信息以系统的方式组织起来(即一个“数据库”),以便可以准确、快速地检索任何特定学生的相关信息,可以插入关于现有学生或新学生的新信息,可以有效地跟踪个别学生的进度,并且可以收集关于整个学生群体或某个子集的统计数据。被赋予创建这样一个系统任务的程序员并不关心信息本身,而是考虑到信息的性质,如何识别表示学生信息的基本数据对象,构造表示数据对象的数据结构,并构建一个数据库,以便满足大学管理部门所要求的计算任务。