加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

关系数据库

发布时间:2022-10-12 19:00:32 所属栏目:MsSql教程 来源:互联网
导读: 关系模型
关系数据库系统是支持关系模型的数据库系统。关系模型由关系数据结构,关系操作集合和完整性约束三部分组成。
(1)关系数据结构
单一的数据结构——关系,实际上就是一张二维表。

关系模型

关系数据库系统是支持关系模型的数据库系统。关系模型由关系数据结构,关系操作集合和完整性约束三部分组成。

(1)关系数据结构

单一的数据结构——关系,实际上就是一张二维表。元组不能重复,每列属性必须一致,列名必须唯一,元组和列的顺序无关紧要。

数据库软件按照表的名称和列名引用表和表中的数据。所以通常表名和列名最好能反映表和列的内容。如下图所示(本专栏使用的数据库软件为SQL SERVER 2012,以后不再说明):

数据可设置约束图_sql server 数据约束_Mssq数据完整性约束

(2)关系操作:常用的关系操作有:选择,投影,连接,除,并,交,差等查询操作和增删改两部分。

(3)关系的完整性约束

关系模型允许定义三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中的实体完整性和参照完整性是关系模型必须满足的完整性约束,是由关系系统自动支持的;用户定义的完整性约束是应用领域需要遵守的约束。

实体完整性:即主码不能取空值(空值不是0,也不是空字符串,而是没有值,或不确定的值)

参照完整性:为了实现表和表之间的联系,将一个表的主码放到另一个表中作为外码。外码必须是另一个表中主码的有效值,或者是空值

下面介绍几个概念:

笛卡尔积:举例说明,有一组域D1={a,b}表示姓名,D2={男,女}表示性别,D3={1,2,3}表示年级;那么它们对应的基数m1=2,m2=2,m3=3.则笛卡尔积为:

Mssq数据完整性约束_sql server 数据约束_数据可设置约束图

该笛卡尔积的基数为2x2x3=12

关系:就是笛卡尔积的子集。列的个数,或者是说域的个数被称为目或度

关系代数

关系代数包括三个集合运算(交,并Mssq数据完整性约束,差),五个专门的关系运算(乘,除,选择,投影,连接)

(1)并

sql server 数据约束_Mssq数据完整性约束_数据可设置约束图

表一:A

表二:B

那么 A\cup B 即A并B为

sql server 数据约束_Mssq数据完整性约束_数据可设置约束图

表3:A并B

(2)差

数据可设置约束图_sql server 数据约束_Mssq数据完整性约束

表4:C

那么差C-B的结果为

表5:C-B

(3)交:表A交C的结果为

表6:A交C

(4)乘:乘运算也称作笛卡尔积

数据可设置约束图_sql server 数据约束_Mssq数据完整性约束

表7:D

那么C乘D即C X D的结果为

Mssq数据完整性约束_sql server 数据约束_数据可设置约束图

表8:C乘D

(5)选择:选择就是从指定关系中选择某些满足条件的元组构成一个新的关系

其中 \sigma 为选择运算符,F为选择条件。例:\sigma A=a1(表8)

数据可设置约束图_Mssq数据完整性约束_sql server 数据约束

表9

(6)投影:投影是从指定的关系中选择某些属性的所有值(即选择某些列)组成的新关系。

例如: \pi c(表8)

Mssq数据完整性约束_数据可设置约束图_sql server 数据约束

表10

(7)连接:连接又称 \theta 连接。它是从两个关系的乘运算中选取属性间满足一定条件的元组,构成新关系。

Mssq数据完整性约束_数据可设置约束图_sql server 数据约束

其中 A 和 B 分别为 R 和 S 上属性个数相等且可比的属性组。 \theta 是比较运算符。连接运算是从 R 和 S 的乘运算 R×S 中选取(R 关系)在 A 属性组上的值与(S 关系)在 B 属性组上的值满足比较关系 \theta 的元组。

常用的两种连接是等值连接和自然连接。 \theta 为“=”的连接运算称为等值连接;自然连接是特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的 属性组,在结果中把重复的属性列去掉。

在这里用SQL语句演示:

sql server 数据约束_数据可设置约束图_Mssq数据完整性约束

学生表(student)

数据可设置约束图_Mssq数据完整性约束_sql server 数据约束

班级表(class)

/*等值连接*/
select *
from student
inner join class
on student.classno=class.classno

结果为:

数据可设置约束图_sql server 数据约束_Mssq数据完整性约束

/*自然连接*/
select *
from student
natural join class

其结果是没有重复的ClassNo列的。

(8)除

表11

例如:使用表8除表11,得

Mssq数据完整性约束_数据可设置约束图_sql server 数据约束

表12

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!