数据库复习第二章

本文深入解析了关系数据库的核心概念,包括关系数据结构、关系模式、关系数据库的定义及其操作,详细介绍了实体完整性和参照完整性原则,以及关系代数中的集合和关系运算。

2.1 关系数据结构及形式化定义

1.关系

关系模型的数据结构只有一个数据结构:关系

关系数据结构的形式化定义:

1.域(domain)

​ 一组具有相同数据类型的值的集合(如 \(1...100\) 的所有正整数集合)

2.笛卡尔积(cartesian product)

在域上的一种运算

定义:

给定一组域, \(D_1,D_2,....D_n\)其笛卡尔积为

\(D_1 \times D_2 \times ... \times D_n = \{ (d_1,d_2,...,d_n)| d_i \in D_i , i = 1,2...,n\}\)

其中,每一个元素 \((d_1,d_2,...,d_n)\) 叫做一个 \(n\) 元组 ,每一个值 \(d_i\) 叫做一个分量

一个域允许的不同取值个数称为基数

\(D_i\) 为有限集,其基数为 \(m_i\) ,则 笛卡尔积的基数 \(M\) 为:

$M = \prod_{i=0}^{n} m_i $

例:

\(D_1 = \{ a,b,c \} , D_2 = \{ 1,2 \}\)

$ D_1 \times D_2 = { (a,1),(a,2),(b,1),(b,2),(c,1),(c,2)}$

3.关系(relation)

定义:

$D_1 \times D_2 \times ... \times D_n $ 的子集叫做在域 \(D_1 , D_2 ,..., D_n\) 上的关系 表示为:

\(R(D_1,D_2,...D_n)\) $ R $是关系的名字, \(n\) 是关系的度 (degree)

若关系中的某一属性的值能唯一地标识一个元祖(可以理解为某一个实例),而其子集不能,则称该属性组为候选码。

若一个关系有多个候选码,则选定其中一个作为主码。

候选码中的属性为主属性,否则为非主属性,或者非码属性

例:

​ 一个学生有身份证号,学号,姓名这三个属性,身份证号和学号都能唯一标识一个元祖,所以是候选码,主码在这两个中间选取。而姓名为非主属性。

2.关系模式

可以形式化的表示为:

$ R(U,D,DOM,F)$

\(R\) 为关系名, \(U\) 为组成该关系的属性名集合, \(D\)\(U\) 中属性所来自的域 , \(DOM\) 为属性向域的映像集合 , \(F\) 为属性间数据的依赖关系集合。

关系是关系模式在某一时刻的状态或内容 。 关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的。

3.关系数据库

关系数据库的型也成为关系数据库模式,是对关系数据库的描述。

关系数据库的值是这些关系模式在某一时刻对应的关系的集合(和上面的关系模式的描述对应),通常就称为关系数据库。

2.2关系操作

3.关系的完整性

1.实体完整性

若属性A(一个或者一组)是基本关系R的主属性,则A不能为空(不知道或者无意义)

2.参照完整性

不同表之间的属性值存在互相引用,则需要保证这些值不存在非法的情况。

定义:\(F\) 为基本关系 \(R\) 的一个或一组属性,但不是 \(R\) 的码。\(K_s\) 是基本关系 \(S\) 的主码。如果 \(F\)\(K_s\) 相对应,则称 \(F\)\(R\) 的外码,并称基本关系 \(R\) 为参照关系。

另外,外码不一定要和相应的主码同名

接上面的定义:

对于每个 \(R\) 中每个元组在 \(F\) 上的值必须为空值或者 \(S\) 中某个元组的主码的值

(可以理解为值必须是有意义的)

4.关系代数

1.集合运算

(1)并

\(R \cup S = \{ t | t \in R \or t \in S\}\) 结果仍然为 \(n\) 目关系

(2)差

\(R - S = \{ t | t \in R \and t \notin S\}\)

(3)交

\(R \cap S = \{ t | t \in R \and t \in S\}\)

\(R \cap S = R - (R-S)\)

(4)笛卡尔积

(之前叙述过,就不说了

2.关系运算

(1)选择

\(\sigma (R) = \{ t|t \in F(t)='true'\}\)

\(F\) 表示选择条件,是一个逻辑表达式

(2)投影

\(R\) 上的投影是从\(R\) 中选择出若干属性组成新的关系

$\Pi _A(R) = { r[A]|t \in R } $

\(A\)\(R\) 中的属性列,投影操作是从列的角度进行的运算

(3)连接

从两个关系的笛卡尔积中选取属性间满足一定条件的元组

\(\{ t_rt_s | t_r \in R \and t_s \in S \and t_r[A] \theta t_s[B] \}\)

\(\theta\) 是比较运算符,A和B分别是R和S上列数相等且可比的属性组。

连接运算从R和S的笛卡尔积中选取R关系在A属性组上的值与S关系在B属性组上的值满足比较关系 $\theta $的元组

运算为 = 的连接成为等值连接。自然连接是一种等值连接

(4)除

若T为关系R除以关系S的结果,那么T包含所有在R中但不在S中的属性和值

且T的元组和S的元组的所有组合都在R中

\(R \div S = \{ t_r [X] |t_r \in R \and \Pi _Y (S) \sube Y_x \}\)

转载于:https://www.cnblogs.com/SCaryon/p/9206492.html

### 数据库概论第二章学习资料复习要点 #### 三、数据库系统的三级模式结构 数据库系统的三级模式结构由外模式模式和内模式组成。外模式数据库用户的数据视图,即某一应用有关的数据的逻辑表示;模式描述的是数据的全局逻辑结构;而内模式则对数据的物理结构和存储方式进行描述[^4]。 #### 四、数据库管理系统的功能 数据库管理系统(DBMS)不仅负责管理和控制数据库中的数据资源,还提供了多种服务来支持应用程序访问这些数据。具体来说,DBMS的主要职责包括但不限于: - 定义并维护数据库的整体架构; - 提供有效的存取方法以便高效检索所需信息; - 实现事务处理机制以保障数据的一致性和可靠性; - 支持多用户的并发操作环境下的安全性保护措施。 #### 五、并发控制技术及其重要性 当多个事务同时执行时可能会引发一系列问题,比如丢失更新、脏读、不可重复读以及幻影现象等。为了防止这些问题的发生,必须采取适当的并发控制策略,如锁协议或时间戳排序法等,从而确保不同事务之间不会相互干扰,并维持整个系统的稳定运行状态[^2]。 #### 六、恢复子系统的作用 由于硬件故障或其他原因可能导致正在进行的操作突然中断,进而破坏了部分甚至全部已提交的结果。因此,在设计健壮可靠的DBMS时还需要考虑如何快速有效地从失败状态下恢复正常工作流程——这就是所谓的“恢复”。通常情况下会采用日志记录的方式追踪所有更改动作,并据此制定相应的回滚计划用于应对突发状况。 ```sql -- 日志文件示例 BEGIN TRANSACTION; INSERT INTO orders VALUES (...); UPDATE customers SET balance=balance-order_total WHERE customer_id=... ; COMMIT; ``` 对于上述SQL语句序列而言,如果在`INSERT`之后但在`COMMIT`之前发生了崩溃,则可以通过分析日志得知哪些变更尚未完成,并决定是否要撤销未决项或将它们重做一遍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值