0%

数据模型

一、层次模型

(一)PCR关系(Parent-Child relationship):

现实世界中的一对多的关系,是层次模型最基本的数据关系,例如:

graph TB;
  院系-->班级;
  院系-->教研组;
  班级-->学生1;
  班级-->学生n;
  教研组-->老师1;
  教研组-->老师n;
(二)虚记录

为了避免数据的冗余,又维持数据PCR结构,引入虚记录概念。

例:student-v通过指针指向真正的student:

graph LR   
    course-v-.->course
    student-v-.->student
    course-->student-v
    student-->course-v

二、网状数据模型

(一)基本结构:

系(set)表示现实世界中一对多的关系。

主记录(1)——> 属记录(n)

每个系可以是多个系的主记录,也可以是多个系的属记录,交织成复杂的网状结构。

graph TB   
    Parts-1-->|m|LINK-M
    Supplier-1-->|n|LINK-M
    Project-1-->|p|LINK-M
    S-1-->|SL|LINK-N
    C-1-->|CL|LINK-N

(查询时遍历链表)

三、关系模型

(一)基本结构:

表(table),将现实世界实体中的所有关系由表来表示:

(1)基于数学集合论,具有更高层次;

(2)底层实现及编程细节都被屏蔽掉,概念简单清除,容易理解;

(3)建立新的代数体系——关系代数;

(4)可以定义非过程化的查询语言——SQL;

(5)软连接

(二)属性和域

1.表的为一个属性都为原子不能再分的,每一个属性的合法取值范围成为域;

2.表中允许NULL(表示未知);

(三)关系和元组

1.假设有关系R,属性为A1,A2,…An,其对应的值域为D1,D2,…Dn,n称为目,那么关系R可以表示为

r 称为关系 R 的实例,r 由 m 个元组(tuple)组成。

2.表里的每一行称为记录,即元组t

(四)组键
名称 概念
候选键 总有某一个或者某一组属性的值可以唯一的决定这条元组的其他属性的值,且这组属性的子集没有此特性,把这样的属性或属性组称为候选键
超键 在关系中能唯一标识元组的属性或属性集称为关键模式为超键,与候选键相比可能有多余属性
主键 用户选作元组标识的候选键称为主键。一般不加说明,键就是指主键(主键不能为空)
全键 关系模型的所有属性组是这个关系模式的候选键
外键 关系模式R1中的某属性集不是自己的主键,而是关系模式R2的主键,则该属性集称为是关系模式R1的外键
(五)关系代数

五种基本的关系代数运算

名称 符号 作用 运算
关系 R 与 S 具有相同的关系模式,即 R 与 S 的元数相同(结构相同),R 与 S 的并是属于 R 或者属于 S 的元组构成的集合,记作 R ∪ S R∪S = {t\ t∈R∨t∈S}
关系 R 与 S 具有相同的关系模式,关系 R 与 S 的差是属于 R 但不属于 S 的元组构成的集合,记作 R − S R−S = {t\ t∈R∨t∉S}
广义笛卡尔积 × 两个无数分别为 n 目和 m 目的关系 R 和 S 的 笛卡尔积是一个 (n+m) 列的元组的集合。组的前 n 列是关系 R 的一个元组,后 m 列是关系 S 的一个元组,记作 R × S R×S = {t\ t =< (tn,tm)∧tn∈R∧tm∈S}
投影 π 投影运算是从关系的垂直方向进行运算,在关系 R 中选出若干属性列 A 组成新的关系,记作πA(R) πA(R) = {t[A]\ t∈R}
选择 σ 选择运算是从关系的水平方向进行运算,是从关系 R 中选择满足给定条件的元组,记作 σF(R) σF(R) = {t\ t∈R∧F(t)=True}
(六)关系连接
1.内连接

也称为等值连接,是最早的一种连接。还可以被称为普通连接或者自然连接,内连接是从结果表中删除与其他被连接表中没有匹配行的所有行,所以内连接可能会丢失信息。WHERE子句中设置的消除笛卡尔积的条件就是使用了等值判断的方式进行的。

2.外连接

内连接中只能够显示等值满足条件的,如果不满住条件的无法显示,如果希望可以显示特定表的全部数据,就用外链接:外连接分为三种:左外连接,右外连接,全外连接。

(1)左外链接:左关系属性=右关系属性(+),放在等号的右边表示左连接;意思就是显示左边表中没有显示的信息;

(2)右外链接:左关系属性(+)= 右关系属性,放在等号的左边表示右连接;意思就是显示右边表中没有显示的信息。

四、ER图

(一)ER图的实体:数据模型中的数据对象
1.弱实体:

一个实体必须依赖于另一个实体存在,那么前者是弱实体,后者是强实体,弱实体必须依赖强实体存在,例如上图的学生实体和成绩单实体,成绩单依赖于学生实体而存在,因此学生是强实体,而成绩单是弱实体。

2.复合实体:

复合实体也称联合实体或桥接实体,常常用于实现两个或多个实体间的M:N联系,它由每个关联实体的主玛组成,用长方体内加一个菱形来表示。

(二)ER图的属性:数据对象所具有的属性

例如学生具有姓名、学号、年级等属性,用椭圆形表示,属性分为唯一属性( unique attribute)和非唯一属性,唯一属性指的是唯一可用来标识该实体实例或者成员的属性,用下划线表示,一般来讲实体都至少有一个唯一属性。

(三)ER图的关系:数据对象与数据对象之间的联系

1对1(1:1) :1对1关系是指对于实体集A与实体集B,A中的每一个实体至多与B中一个实体有关系;反之,在实体集B中的每个实体至多与实体集A中一个实体有关系。

1对多(1:N) :1对多关系是指实体集A与实体集B中至少有N(N>0)个实体有关系;并且实体集B中每一个实体至多与实体集A中一个实体有关系。

多对多(M:N) :多对多关系是指实体集A中的每一个实体与实体集B中至少有M(M>0)个实体有关系,并且实体集B中的每一个实体与实体集A中的至少N(N>0)个实体有关系。

(四)工具:Processon