数据模型
任何一个数据系统都必须支持某种数据模型,数据模型是我们在数据库系统中用来描述现实世界的一种方法以及方法的数据结构。
层次数据模型
用树的结构来表达,其中最主要用PCR(parent-chid relationship)关系来表达一对多的关系。
数据模式:用很多的PCR关系组成一个大型的PCR关系。每个PCR关系代表着一个一对多的关系,且每个记录都只能有一个父节点。
但现实世界除了一对多的关系还有很多多对多的关系。
且每个记录很可能有两个双亲节点,如一个学生可能既是某个班级的学生,又是某个学生会的成员,
用“虚记录”关系,通过添加逻辑关系(并不是真正的在数据库中直接存在的关系,而是用例如指针的方式添加的隐式的关系)来解决上述问题,但很明显从编程的角度来看其已经不是一个标准的树型结构了,由此我们引出网状数据模型。
网状数据模型
网状数据模型中基础的数据结构叫做“系(set)”,表达了现实世界中一对多的关系,其中1这方我们称之为“主记录”,多这方我们称之为“属记录”,而在网状结构中,一个数据可以是多个系的主记录,也可是多个系的属记录。由此形成了一个网状结构。
网状数据模型中,数据可以是一个复合的模型(如一个数组,一个向量,一个链表)
“LINK记录”用来描述两个实体之间的自联系/多对多的联系/n元联系:可以看作是自己的一个替身,为什么需要这个替身/副本?
因为在网状结构中,一个记录不可能自己是自己的主记录且自己是自己的属记录。即不能把自己的主记录和属记录同化。
如想表达公司里上下级关系,某个人可能既是一些人的上级又是另一些人(包括自己)的下级。

本文深入探讨了数据模型的三种基本类型:层次模型、网状模型和关系模型。层次模型以树形结构表示数据,而网状模型通过“系”和“LINK记录”处理复杂的一对多和多对多关系。关系模型是最主流的数据模型,基于集合论,以表格形式表示数据,并引入了主键和外键的概念以维护数据完整性和一致性。此外,还介绍了关系代数的基本操作,如选择、投影、拼接、差和并。
最低0.47元/天 解锁文章
738





