数据库理论基本概念

数据库理论基本概念

三级模式和两级映像

外模式            > 用户和数据库系统的接口
--------   外模式-概念模式映射    
概念模式          > 数据的逻辑结构和特征的描述
--------   概念模式-内模式映射
内模式            > 数据物理结构和存储方式的描述

三级模式分别对应:视图、基本表、存储文件
两级映像保证了数据的独立性

术语

关系: 一个关系就是一张表,每个关系有个关系名。

元组: 存储文件中的一行记录

属性: 表中的列头(列名、字段)称为属性,属性值相当于记录中的数据项或字段值。

域: 属性的取值范围

关系模式格式: 关系名(属性名1, 属性名2,…)

例:S(id, name, age, sex) 学生S关系模式,属性为学号、姓名、年龄、性别

候选码:能够唯一标识表中记录的最小属性集,一个表可以有多个候选码。

主码: 将最稳定的候选码作为主码

例如,考虑一个名为Employees的表,其中包含EmployeeIDSSN(社会保险号)和Name等属性。如果每个员工都有一个唯一的EmployeeID和一个唯一的SSN,那么EmployeeIDSSN都可以作为候选码。但出于实际考虑(如隐私和稳定性),通常会选择EmployeeID作为主码。

主/非主属性: 包含在候选码中的属性成为主属性,反之称为非主属性。

外码(外键): 外键是一个字段(或字段组合),其值必须在另一个表的主键(或具有唯一约束的字段)中存在。

当两个表之间存在多对多关系时,通常会引入一个关系表(或称为桥接表、关联表、映射表等)来存储这两个表之间的关系。这个关系表通常会包含两个外键列,分别引用两个原始表的主键列,并且可能还会有一个自己的主键列(尽管在某些数据库系统中,这两个外键的组合也可以作为复合主键)。

全码(了解): 若关系R(H,L,M,P)的主键为全码,则关系R的主键为HLMP。

完整性约束

实体完整性约束:

  • 主键约束:候选码的值不能为空(包括主码/主键)

参照/引用完整性约束:

  • 外键约束:确保一个表中的数据匹配另一个表中的数据。外键是一个字段或字段组合,其值引用了另一个表的主键。外键字段可以有空值,除非设置了级联更新或删除规则。

域完整性约束:

  • 数据类型约束:确保字段中的数据是预期的数据类型。
  • 检查约束(Check Constraint):限制字段中的值范围或格式。例如,可以确保年龄字段中的值在0到150之间。
  • 默认约束(Default Constraint):当没有为字段指定值时,提供默认值。
  • 非空约束(Not Null Constraint):确保字段必须有一个值。

用户自定义完整性约束:

  • 触发器(Triggers):基于某个事件(如INSERT、UPDATE或DELETE操作)自动执行或激活的SQL语句或存储过程。触发器可以用于实现复杂的业务规则和数据完整性检查。

  • 存储过程和函数(Stored Procedures and Functions):封装的SQL代码块,可以在数据库中执行复杂的逻辑和计算。它们可以用于确保数据满足特定的业务规则或条件。

  • 规则和断言(Rules and Assertions):在某些数据库系统中(如SQL Server中的规则或PostgreSQL中的断言),它们可以定义数据的验证逻辑。然而,并非所有数据库系统都支持这些特性。

  • 唯一性约束(Unique Constraint):确保字段或字段组合在表中的值是唯一的,但允许有空值。

  • 索引约束:虽然索引主要用于提高查询性能,但它们也可以用于确保数据的唯一性(通过创建唯一索引)。

  • 序列(Sequences):在某些数据库系统中,序列用于生成唯一的数字,通常用于自动填充主键字段。

关系代数

在这里插入图片描述

关系的并: 关系R与关系S的所有元组的合并,再删去重复元组,记为 R ∪ S

关系的交: 同时属于关系R与关系S的元组集合,记为R ∩ S

关系的差: 关系R与关系S的差为从关系R中删去与关系S中相同的元组,记为 R - S

笛卡尔积: 两个集合R和T,它们的笛卡尔积表示为R × T,是一个新的集合,其中的每个元素都是R中的一个元素和T中的一个元素组成的有序对。

在这里插入图片描述

投影: 从垂直方向进行运算,在关系R中选出若干属性列组成新的关系。记作:π

选择: 从水平方向进行运算,选择满足指定条件的元组,记作:δ

在这里插入图片描述

上例中 π A , C ( R ) π_{A,C}(R) πA,C(R) 同理 π 1 , 3 ( R ) π_{1,3}(R) π1,3(R) δ B = ′ 5 ′ ( S ) δ_{B='5'}(S) δB=5(S) 同理 δ 1 = ′ 5 ′ ( S ) δ_{1='5'}(S) δ1=5(S) 可以用列序号

θ连接: 按条件进行连接

在这里插入图片描述

自然连接: 基于两个关系中共同存在的属性(通常称为主键和外键)来组合这两个关系

在这里插入图片描述

外连接:

在这里插入图片描述

关系模式

关系模式定义为:R<U,F>

  • U为R的属性
  • F为属性组U上的依赖

例1:最终目的就是通过候选关键字组合可以表示关系中的所有属性

  • 因为A不依赖任何属性,所以候选关键字肯定包括A
  • 选择A、B可以把C表示出来(AB→C),故AB是一组候选关键字
  • 选择A、C可以把B表示出来(C→B),故AC是一组候选关键字
  • 在候选关键字中的属性都为主属性

在这里插入图片描述

例2:

  • A可推出B、C, C可推出D
  • A、E可推出H

在这里插入图片描述

例3:

  • 52空四个选项的闭包都可以推出A1 A2 A3 A4,但是主键应满足其属性的任意真子集不能表示全集(U)
  • A1→A4是冗余的因为,A1→A2、A2→A4,从而A1和A4存在传递依赖,即A1和A4的关系可以通过其它关系推导出来。
  • 注意:如果删除A2→A4,虽说A1的闭包依旧可以推出所有属性,但依旧无法推出A2→A4的依赖关系。

在这里插入图片描述

例4:

在这里插入图片描述

  • 26
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值