开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第33天,点击查看活动详情
1.常用的数据模型:层次模型、关系模型
层次模型:
1)层次模型的数据结构
在数据库中定义满足一下两个条件的基本层次联系的集合称为层次模型:
1>有且只有一个结点,没有双亲结点,这个节点称为根结点
2>根节点以外的其他结点有且只有一个根节点
在层次模型中,同一双亲的子女结点称为兄弟结点,没有子女结点的结点称为叶结点。
层次模型像一颗倒立的树,结点的双亲结点是唯一的。
2)层次模型的数据操纵与完整性约束
层次模型的数据操纵主要有查询、插入、删除和更新。进行查询、插入、删除和更新操作时要满足层次模型的完整性约束条件。
进行插入操作时,没有相应地双亲结点值就不能插入它的子女结点值。
进行删除操作时,如果删除双亲结点值,相应的子女结点值也将同时被删除。
进行更新操作时,应更新所有相应记录。
3)缺点
1>如果一个节点具有双亲结点,只能通过引入冗余数据(易产生不一致性)或创建非自然的数据结构(引入虚拟结点)来解决。
2>由于结构严密,层次命令趋于程序化(复杂)
关系模型:
1) 关系模型的数据结构
关系
一个关系对应通常说的一张表(如一张学生登记表)
元组
表中的一行即为一个元组
属性
表中的一列即为一个属性,给每个属性起一个名字即为属性名(表中的6列对应6个属性:学号、姓名、年龄、性别、系名、年级)
码(码键)
表中的某个属性组,可以唯一确定一个元组(如学号可以唯一确定一个学生)
域
一组具有相同数据类型的值的集合。属性的取值范围来自某个域(如人性别的域是男、女。系名的域是一个学校所有系名的集合)
分量
元组中的一个属性值
关系模式
对关系的描述,一般表示为:关系名(属性1,属性2,……)
如下图表的关系模式:学生(学号,姓名,年龄,性别,系名,年级)
关系模型要求关系必须是规范化的,关系的每一个分量必须是一个不可分的数据项,也就是说不允许表中还有表。
2)关系模型的数据操纵与完整性约束
关系模型的数据操纵主要包括:查询、插入、删除和更新数据。关系的完整性约束包括三大类:实体完整性、参照完整性和用户定义的完整性。其中实体完整性、参照完整性被称为两个不变性
3)缺点
由于存取路径对用户是隐蔽的,所以查询效率不如格式化数据模型。