存储在数据库中的数据是结构化数据,因为它是以严格的格式表示的。例如,在关系数据库表中的每条记录,例如《数据库系统基础:初级篇》中图5.6的EMPLOYEE表,该表中的所有记录都遵循同一格式。对于结构化数据,为了创建数据库模式,一般都应用如《数据库系统基础:初级篇》中第3、第4、第7、第10和第11章中所描述的那些技术来详细设计数据库。然后DBMS将进行检查以确保所有数据遵循模式中所指定的结构和约束。
但是,并不是所有的数据都能被汇集并都能插入到设计好的结构化数据库中。在某些应用中,在知道数据将被如何存储和管理之前,就已经以特定的模式汇集。这些数据可能有特定的结构,但不是所有汇集来的信息都有同样的结构。可能某些属性会被多个实体所共享,但另一些属性可能仅存在于少量实体中。此外,在一些较新的数据项中随时可能会被引入附加属性,而且没有预先设计好的模式。这种类型的数据称为半结构化数据。为了表示半结构化数据,已经引入了大量的数据模型,这些模型一般都是基于树或图数据结构,而不是基于平面关系模型结构。
[color=red]结构化数据和半结构化数据的关键区别在于模式结构(例如属性、联系和实体类型的名称)是如何被处理的。[/color]在半结构化数据中,模式信息与数据值混合在一起,因为每个数据对象可能有不同的、预先无法知道的多个属性。于是,这种类型的数据有时被称为自描述数据。考虑下面这个示例。我们想要汇集一份关于某研究项目的参考文献的清单。这些文献有些可能是书或技术报告,有些可能是期刊或会议论文集中的研究文章,有些甚至可能是整份期刊或会议论文集。显而易见,它们中的每一种都可能有不同的属性和不同的信息类型。就算是对于同类型的参考文献,例如会议论文,我们也有可能得到不同的信息。例如,一篇文章的引证或许非常完整,有着关于作者姓名、题目、论文集、页码等的完整信息,而其他文章的引证或许没有这样完整的信息。未来或许会出现新类型的参考文献来源,比如说网页或会议手册,而这些新类型的参考文献来源可能会有新的属性来描述它们。
半结构化数据可以用有向图来表示,如图10-1所示。图10-1中显示的信息与《数据库系统基础:初级篇》的图5-6中显示的结构化数据是对应的。我们可以看到,这种模型在表示复杂对象和嵌套结构的能力方面与对象模型(见图4-1)是类似的。图10-1中,用带箭头直线上的标号或标签表示模式名:属性名、对象类型(或实体类型或类)以及联系。内部结点表示单个对象或组合属性。叶结点表示简单(原子)属性的实际数值。
但是,并不是所有的数据都能被汇集并都能插入到设计好的结构化数据库中。在某些应用中,在知道数据将被如何存储和管理之前,就已经以特定的模式汇集。这些数据可能有特定的结构,但不是所有汇集来的信息都有同样的结构。可能某些属性会被多个实体所共享,但另一些属性可能仅存在于少量实体中。此外,在一些较新的数据项中随时可能会被引入附加属性,而且没有预先设计好的模式。这种类型的数据称为半结构化数据。为了表示半结构化数据,已经引入了大量的数据模型,这些模型一般都是基于树或图数据结构,而不是基于平面关系模型结构。
[color=red]结构化数据和半结构化数据的关键区别在于模式结构(例如属性、联系和实体类型的名称)是如何被处理的。[/color]在半结构化数据中,模式信息与数据值混合在一起,因为每个数据对象可能有不同的、预先无法知道的多个属性。于是,这种类型的数据有时被称为自描述数据。考虑下面这个示例。我们想要汇集一份关于某研究项目的参考文献的清单。这些文献有些可能是书或技术报告,有些可能是期刊或会议论文集中的研究文章,有些甚至可能是整份期刊或会议论文集。显而易见,它们中的每一种都可能有不同的属性和不同的信息类型。就算是对于同类型的参考文献,例如会议论文,我们也有可能得到不同的信息。例如,一篇文章的引证或许非常完整,有着关于作者姓名、题目、论文集、页码等的完整信息,而其他文章的引证或许没有这样完整的信息。未来或许会出现新类型的参考文献来源,比如说网页或会议手册,而这些新类型的参考文献来源可能会有新的属性来描述它们。
半结构化数据可以用有向图来表示,如图10-1所示。图10-1中显示的信息与《数据库系统基础:初级篇》的图5-6中显示的结构化数据是对应的。我们可以看到,这种模型在表示复杂对象和嵌套结构的能力方面与对象模型(见图4-1)是类似的。图10-1中,用带箭头直线上的标号或标签表示模式名:属性名、对象类型(或实体类型或类)以及联系。内部结点表示单个对象或组合属性。叶结点表示简单(原子)属性的实际数值。