关系数据库是基于关系模型,是一个会多个关系组成的集合,通俗来说,就是一个个由行、列组成的表,记住关系(relation)就是表,是一种数学概念,理解为(表,元组,行)=(机器的世界)。
注意区分的是在概念层中设计的E-R图,R指的是联系(relationship)它体现的是一些实体间的关联,(实体,联系)=(真实的世界)
规范的定义
关系的基本结构是:
一般地,给出集合D1,D2,……,Dn(D可以理解为一个关系中某一个的属性的值的集合),那么关系r是:D1×D2×……×Dn的子集,即一系列Di域的笛卡尔积,因为关系是一组n元组的集合。

例如:姓名D={张一,王二,李三,刘四,……}
专业D={计算机,信息}
老师D={李勇,梨花,赵兵,黄轩}
那么关系r就是三个D的笛卡尔积,随便举一个,比如{张一,信息,梨花} 关系 :学生——专业——导师。

关系型数据库到知识图谱图数据库_mysql


属性类型

1关系的每个属性都有一个名称

2域:属性的取值集合称为属性的域

3属性的值必须是原子的,不可分割

多值属性值不是原子的

复合属性值不是原子的(外国人名字,带有多段,重复)

举一个例子,假设一个员工关系={姓名,工号,电话},那么这个电话属性就不是原子的,因为电话属性是多值的,可以有家庭电话,个人电话,公司电话,

再举一个,一个学生关系={姓名,学号,班级},如果这个学生的班级的值是高三一班,那么显然该数据项(表中一个具体的属性值)可以继续分割成年级和班级,

关系型数据库到知识图谱图数据库_属性值_02


4特殊值null是每一个域的成员

5空值给数据库访问和更新带来了很多困难,因此应尽量便面使用空值关系的概念

关系:关系模式和关系实例,

好比在面向对象的编程过程中,关系模式就是类(这个类是说学生的话,那么类中会有姓名,性别,学号等等属性相当于类中的变量)。

关系实例就是对象,就好比真的有一个实列,它的值都确定了

关系型数据库到知识图谱图数据库_元组_03


码,键(key)

1 使K包含于R,意味着K是R的一个子集,一个属性的集合

2 如果这个K可以在一个关系中单独的标示出一个元组,则K是R的超码(比如员工关系R={工号,姓名,电话})这个工号可以作为一个超码)

3 若K是最小超码,(意味超码中有最少的属性哪一个),被称为候选码,就比如属性集{工号,姓名}和属性集{工号}都是超码,但是属性集{工号}是候选码

4 若有一个候选码,被用户选定,那么该候选码就是主键,通常用下划线来标志(当候选码多个时,有用户决定谁为主键)

5 记住码和键是一个东西外键

假设存在两个关系,r(A,B,C),S( B,D),则在关系r上的属性B称作参照s的外码,r也成为外码的参照关系,s称为外码被参照关系

关系型数据库到知识图谱图数据库_属性值_04