数据库系统概论


1.关系模型+SQL

1.1.完整性约束

Entity integrity(实体完整性约束):主键不能为NULL值

Reference integrity(参照完整性约束)

题目:
1.Which of the following is WRONG in the relation rules?(C)
A.There is no order on the columns.
B.Two tuples can be identical in all column values.
C.There is no order on the rows.
D.Multi-valued attributes are not permitted.

2.K is a superkey of R if values for K are sufficient to identify a unique tuple of each possible relation r( R ).

3.In history of data model development, there are four major different data models named as hierarchical data model, network data model, Entity-Relationship data model,and object-oriented data model.

1.2.关系语言和关系代数

Relational languages(关系语言)的特性:
all set-at-a-time(一次一集合):所有的操作和结果都基于表之上
Closure propety(封闭性):这一次查询的输出作为下一次查询的输入

Relational Algebra(关系代数):
基本操作
-select:σ(选择)
-project:π(投影)
-union:∪ 并操作列数必须相同,域(每列的属性)必须相容
-set difference(集合差):- 差操作的限制与并操作相同
-Certesian product(笛卡尔积):× 将两个表非公共属性合并,公共属性需重命名
-rename:ρ
附加操作
-Intersection Operation(交运算):R∩S
-Natural join Operation(自然连接):R⋈S 将两表中属性名相同而值不相同的列删除,值相同的列合并
-Division Operation(除运算):R÷S 结果为首先筛选R表中包含了S表中属性的行(其他属性需要相同),并去除掉S表中的属性再进行投影
-Outer join Operation(外连接):R⋉S(右外连接)R⋊S(左外连接) 外连接与自然连接相似,但是外连接保留属性名相同而值不同的列,对应的值记为NULL

题目:

答案:
a)

A1A2
ba
ca

b)

A1A2A3A4
abcd

1.3.SQL

建表
create table + 表名

SQL基本查询
select + * + from +表名(做全连接输出全部属性)
select + distinct(DISTINCT 表示对后面的所有参数的拼接取不重复的记录,相当于把 SELECT 表达式的项拼接起来选唯一值) + 属性名 + from +表名 + where + 条件 + order by + 属性名 + DESC降序或者ASC升序(与select加的属性名相同,进行升序或者降序的排序)
如果属性名属于多个表为了区分需要重命名
select + 属性名 + from +表名 + where + 属性名 + like(LIKE 表示不清楚具体搜索的是什么,只知道包含哪些字段,比如%main%,%表示字符串,_表示字符,如果知道包含的字符前后具体有几位则用下划线)

SQL复杂查询
avg
avg(balance)
count

distinct
DISTINCT 表示对后面的所有参数的拼接取不重复的记录,相当于把 SELECT 表达式的项拼接起来选唯一值
group by
select + from + where + group by(按照某属性进行分组)
having
select + from + where + group by + having avg(balance)>1200
in
where customer_name in(select customer_name from depositor)
比较
select + from + where + > + some(select + from + where)
as
as进行重命名,简化表的查询语句

视图
create view + 视图名

数据操作
insert
update
delete

2.事物调度(串行调度,并行调度,2PL,等价性)

concept:事物是数据库执行的基本单元

ACID Properties
Atomicity(原子性):要么全都做了,要么全都没做
Consistency(一致性):串行调度中事物要保持一致性
Isolation(隔离性):多个事物并行调度时事物具有隔离性互相不影响
Durability(持久性):一个事物执行完毕,其结果不能丢失,对数据库影响是永久的

read(X)
write(X)

Transaction State
Active(活动):最开始的状态,指令执行时事物始终处于活动状态
Partially committed(部分提交):所有指令执行完时处于部分提交状态
Failed(错误):事物不能正常执行时处于错误状态
Aborted(终止):事物进入错误状态后被回复到的状态,进入这个状态后可以选择重新执行指令或者结束执行
Committed(提交):指令全部执行完之后的状态
Terminated(终结):提交状态和终止状态都为终止状态

并发控制的根本目标是解决并发冲突,或者将执行等效于串行执行,即串行化

引入锁?的机制以解决并发冲突
1.排他锁(exclusive(X)mode)事物拿到数据项的排他锁时,可以对其同时进行读和写
2.共享锁(shared(S)mode)事物拿到数据项的共享锁时,只能对其进行读的操作
锁由并发控制管理器进行管理,事物需要向管理器进行申请才可以对数据项操作,在任意一个时刻只有一个排他锁而不能有其他锁,而共享锁可以多个存在,当事物不得不申请排他锁而却已经被使用时,则需要等待。

为了避免饿死锁和死锁,引入锁协议,两边封锁协议(The Two-Phase Locking Protocol(2PL))
2PL将事物分为两个阶段
1.扩展阶段(growing phase)事物只允许申请锁,不允许释放锁
2.收缩阶段(shrinking phase)事物允许释放锁,不允许申请锁
两阶的协议保证事物的执行是串行化的

题目:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.关系数据库理论:函数依赖,计算依赖闭包和正则覆盖,无损分解等

函数依赖:
A1(包含规则):若A⊆B,则A→B
A2(传递规则):若A→B,B→C,则A→C
A3 Augmentation Rule(增广规则):若A→B,则AC→BC
A4(合并规则):若A→C,A→B,则A→BC
A5(分解规则):若A→BC,A→C,A→B

计算正则覆盖:
先计算最小覆盖,
1.分解右部,转化为单属性
2.去掉左部冗余属性
3.去掉多余的函数依赖(利用属性闭包)
4.将左部相同的属性进行合并

计算候选码:
1.对于LHSA和NONA,记为集合X,如果X求闭包为全集,则构成候选码
2.取LRHSA中的一个元素与X中的元素构成组求闭包,若为全集,则构成候选码
3.取两个元素。。。
4.直到取完,且不包括已有的候选码

满足1NF:没有嵌套和复合属性,但存在插入异常,修改异常,删除异常和数据冗余
满足2NF:没有非主属性部分依赖候选码,非主属性必须完全依赖于候选码,仍存在1NF问题
满足3NF:没有非主属性对候选码有传递依赖
满足BCNF:正则覆盖下,左部属性都是超码或者候选码

无损分解:
分解后的关系至少成立以下一个条件
1.R1∩R2=R1
2.R1∩R2=R2

4.数据库设计,ER图,主键,外键,映射基数,转换为关系模式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值