数据库系统概论 关系模型

引言

现在比较流行的数据库都支持关系数据库,因为其完整的数学模型。本节从数据模型三要素的角度来讨论关系模型,为建立关系数据库打基础。

关系及引申概念

  • 关系:R(D1,D2,…,Dn): D1×D2×…×Dn(笛卡尔积)的子集称为在域D1,D2,…,Dn上的关系(同离散数学)
  • 域:取值范围
  • 属性:不同的列称为属性
  • 候选码:能唯一标识一个元组的一个属性组
  • 全码:候选码的属性组是全部属性

这个列出一个表格就很明显了,这里暂时不列,因为以后有很多。有一条据说很重要的性质:分量必须取原子值,意思大概就是一个属性值下面不能再分出两个属性了,不能说这些元组有3个属性,同样的关系里那些却有四个。很好理解。
以上,其实我们把关系数据结构里的重要的概念已经全部涵盖了。

关系模式与关系数据库

之前我们已经提到模式的问题。关系模式就是型,用R(A1,A2,…,An)表示一个模板,其中A1,A2…表示属性。关系是具体的内容。关系数据库是所有关系的集合,从型上来说是关系模式的集合,从值上来说是关系的集合。

关系的三类完整性约束

我们说数据模型要有三要素,数据结构、数据操作、完整性约束。关系模型的数据结构显然就是关系的数据结构,主要数据操作也和其他模型差不多,接下来讨论完整性约束。

  • 实体完整性:关系主属性不能取空值,很好理解,否则无法标识元组。
  • 参照完整性:遵守参照完整性规则。这个规则初看起来很绕,但是只要理清是哪些关系、哪些属性组再比较就可以了。具体来说:

需要两个关系R,S(这两个关系可以是同一个),一个属性(组)F。F是关系R的外码,但这个F同时和S的主码相对应。于是F所在的关系R在属性(组)F上的取值必须取S某个元素的主码值或空值。
补充定义外码:仍然是两个关系(可以说同一个)和一个属性(组)。F是R的一个属性(组)但不是R的码,但和S的主码相对应。
在这里插入图片描述

  • 用户自定义的完整性

小结

至此,我们定义了关系模型的结构,在存储数据方面已经没有问题了。接下来要考虑如何对其进行操作,这就要涉及关系代数的运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值