数据的约束条件是一组完整性规则的集合。完整性规则是指既定的数据模型中数据及其关系所具有的制约性规则和依存性规则。这些规则是通过限定符合数据模型的数据库状态及其变化的方法来保证数据的正确性、有效性和相容性。
4.三个要素的作用
数据结构是基础,它确定着数据模型的性质。
数据操作是关键,它确定着数据模型的动态特性。
约束条件主要起辅助作用。
1.4.2 四种主要的逻辑模型
1.层次模型
它的数据结构是根树
特点:
Ø有且仅有一个节点没有父节点,这个节点就是根树的根节点。
Ø除了根节点外,其他节点有且仅有一个父节点,但可能由0个或者多个子节点。
在层次模型中,具有相同父节点的子节点称为兄弟节点,没有子节点的节点称为叶节点。
在根树的层次结构中,每个节点代表一个实体型。但由于层次模型中的实体型是用记录型来表示,所以根树中的每个节点实际上是代表着一个记录型。由于每个记录型节点有且仅有一个父节点(根节点除外),所以只要每个节点指出它的父节点,就可以表示出层次模型的数据结构。如果要访问某一个记录型节点,则可以运用相关的根树遍历方法从根节点开始查找该节点,然后对其访问。
【例子】 一个学校包含多个学院,一个学院又包含多个系和研究所等。这样,学校、学院、系和研究所等实体非常自然地构成了现实世界中的层次关系。层次模型正是为了满足描述这种层次关系的需要而产生的。所以,它的表达方式自然、直观,但是其缺点也是明显。
层次模型缺点:
• 处理效率低
Ø 这是因为层次模型的数据结构是一种根树结构,对任何节点的访问都必须从根节点开始。这使得对底层节点的访问效率变低,并且难以进行反向查询。
• 不易进行更新操作
Ø 更新操作包括插入、修改和删除等操作。对某一个树节点进行这种更新操作时,都有可能导致整棵根树大面积的变动。对大数据集来说,这可是一个沉重。
• 安全性不好
Ø 这主要体现在,当删除一个节点时,则它的子节点和孙子节点都将被删除。所以,必须慎用删除操作。
• 数据独立性较差
Ø 当用层次命令操作数据的时候,它要求用户了解数据的物理结构,并需要显式地说明存取途径。
2.网状模型
网状模型的数据结构是网状结构。网状模型反映着现实世界中实体间更为复杂的联系。由以下特点可以看出,节点间没有明确的从属关系,一个节点可以与其它多个节点有联系。
特点
Ø 允许存在一个以上的节点没有父节点。
Ø 节点可以有多余一个的父节点。
缺点:
Ø 由于在使用网状模型时,用户必须熟悉数据的逻辑结构,所以结构的复杂性增加了用户查询和定位的难度。
Ø 不支持对于层次结构的表达等。
Ø 与层次模型类似,网状结构中的每个节点代表一个实体型,而这种实体型是用记录型来表示。与层次结构不同的是:在层次结构中有且仅有一个根节点,而在网状结构中则允许同时存在多个“根节点”;在层次结构中每个节点有且仅有一个父节点(根节点除外),而在网状结构中则允许一个节点同时有多个“父节点”。
Ø 这种结构上的差异,也导致了节点对应的记录型结构的变化。网状模型中节点间联系的实现必须由节点同时指出其父节点和子节点的方法来完成。而在层次模型中,每个节点只需指定其父节点即可(根节点除外)。也正是由于这种差异的存在,使得网状模型在性质和功能上发生了重要的改变。这主要体现在:网状模型比层次模型具有更大的灵活性和更强的数据建模能力。
【例子】 图1.8表示了学生A、B和课程C、D、E之间的一种选修联系的网状结构图。
对于小数据量而言,层次模型和网状模型的缺点可能不太明显,但是当作用于大数据量时,其缺点就显得非常突出。所以,这两种模型不适合用于当今以处理海量数据为特征的数据处理任务中。目前,它们基本上退出了市场,取而代之的是关系模型。
3.关系模型