以下内容是本人利用网络资料以及课堂学习总结的学习笔记,如有错误欢迎评论区更正。

       前言

这是一组关系实例

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkDliqrlipvlpYvmlpfnmoTlvKDlkIzlraY,size_20,color_FFFFFF,t_70,g_se,x_16

域(Domain):一组具有相同数据类型的值的集合(如:整数、实数、具有某一范围的一个整数......)

如以上实例中,所有学生的姓名的值的集合就是一个域


一、关系

关系:现实中实体与实体间的各种联系均用关系来表示。watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkDliqrlipvlpYvmlpfnmoTlvKDlkIzlraY,size_20,color_FFFFFF,t_70,g_se,x_16

所含概念:

  1. 元组:关系中每个元素叫作一个n元组,简称元组
  2. 属性:表中的一列即为一个属性,给每个属性起一个名称即为属性名,表中任意的属性名不能相同
  3. 码:【候选码:唯一标识符】【全码:关系模式中的所有属性组是这个关系模式的候选码】

二、关系模式

关系模式:(关系模式是型)(关系是值)

(关系模式是对关系的描述),例如,设有一个关系U有属性值A,B,C,则关系模式可简单描述为为U(A,B,C)

定义关系模式的方法:

1.

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkDliqrlipvlpYvmlpfnmoTlvKDlkIzlraY,size_20,color_FFFFFF,t_70,g_se,x_16

简化写法:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkDliqrlipvlpYvmlpfnmoTlvKDlkIzlraY,size_20,color_FFFFFF,t_70,g_se,x_16 


关系和关系模式的联系与区别:

联系:关系模式是对关系的描述,关系是关系模式在某一时刻的状态或内容。关系模式和关系往往笼统称为关系

区别:关系模式是静态的、稳定的,而关系时动态的、随时间不断变化的。

三、关系数据库

关系数据库:在一个给定的应用领域中,所有关系的集合构成一个关系数据库

关系数据库的型和值:

型:关系数据模式,是对关系数据库的描述

值:关系模式在某一时刻对应的关系的集合

通常称为关系数据库


四、关系的完整性约束条件

关系的完整性约束条件有

1.实体完整性:

它要求关系的主属性不能取空值

例如:

学生(学号,姓名,性别)

这里的学号作为唯一标识符,也就是主属性(主码)不能取空值

2.参照完整性:

在关系中实体以及实体之间的联系使用关系来描述的,自然存在着关系的引用关系。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkDliqrlipvlpYvmlpfnmoTlvKDlkIzlraY,size_20,color_FFFFFF,t_70,g_se,x_16

 

例如(1):

学生关系内部的一个一对多关系

学生(学号,姓名,专业号,班长)

在一个二维表中,我们可知,班长这一栏是另一个学生的学号

也就是说,学生关系内部中

学生是主码

班长是外码

 

所以班长这一栏有参照完整性可知可取;

1.空值

2.等于另一个学生的学号

例如(2):

一对多(学生-专业号)

学生(学号,姓名,性别,专业号)

专业号(专业号,专业名)

学生关系引用了专业关系的主码,这里的学号和专业号都是主码

但是对于学生关系中专业号不是主码,我们称这个专业号是这个学生关系的一个外码

专业关系是被参照关系

学生关系为参照关系

 

我们参照完整性约束条件可知:

这里在学生关系中的专业号这个外码可以有两种取值情况:

1.空值

2.等于专业关系中的专业号

 

 

例(3):

多对多关系:

学生(学号,姓名,课程号,...)

课程(课程号,课程名称,学分)

选课(学号课程号,成绩)

 

这里学号和课程号是选修关系的外码

学生关系和课程关系均为被参照关系

选修关系为参照关系

 

 

参照完整性:

1.选修关系的主属性不能取空值(按照实体完整性原则)

2.选修关系的学号和课程号与学生关系的学号和课程关系的课程号相等。

 

 

三、用户定义的完整性

例如:

学生(学号,姓名,课程号,性别,....)

课程(课程号,课程名,学分);

选修(学号,课程名,成绩)

这里学生的性别只能取“男”,“女”

学分只能取1-...分

成绩只能取1-100分

等等

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐