数据库系统原理知识点小结

数据库系统原理

一、引言
1.数据模型:数据模型是数据库的基础。规定的模式统一描述方式的模型
2.数据:事实或客观的结果,对客观事务的逻辑归纳,以元组的形式存储于数据库中的信息
3.数据库:一系列互相关联的数据的集合
4.数据库系统:由一个互相关联的数据的集合和一组用以访问这些数据的程序组成
5.视图:某一表现形式下表现出来的数据库中的数据,不一定真实存储于计算机中,但是通过查询可见的视图,提供了部分安全机制
6.信息:通讯系统传输和处理的对象,用以消除不确定性的东西
7.数据库管理系统(DBMS):操纵和管理数据库的大型软件,用于建立使用和维护数据库
8.数据和信息的关系:数据和信息是相互联系的。数据是信息的具体表现形式,信息是数据的具体意义
9.数据库应用系统:数据库系统,应用系统,用户
10.视图的特性:视图的数据并不属于视图本身;视图不能被修改,表修改或删除后应该重建视图;视图可以被嵌套
11.为什么使用视图:简化数据操作;着重于特定数据;视图提供了简单有效的安全机制,指定不同用户的访问权限;允许不同用户以不同的方式查询
12.物化视图:若定义视图的实际关系表发生改变,则视图也跟着改变。保持物化视图的过程叫做物化视图的维护
13.DBA的作用:模式定义,通过DDL建立最初的数据库模式;存储结构和存储方式的定义;模式及物理组织的修改;数据访问授权;日常维护,备份、磁盘空间管理、运行监视
14.具有相同权限的用户叫做角色
15.至今,由于研究数据库而获得图灵奖的科学家有四位,关系模型的提出者E.F.Codd是其中一位

二、关系模型介绍
1.主键的类型:自动增长型,手动增长型,unique identifier型,组合类型
2.选择主键的标准:能够唯一表示一个记录的那些值极少或者从不改变的属性
3.属性的可能取值成为域,要求域中的元素不可再分
4.空值是一种特殊的值,表示值未知或者不存在,给数据库访问和更新带来很多困难
5.关系中行列无关性:不考未知区分数据
6.候选码:关系中的一组属性,能够唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不能唯一标识一个元组,这样的属性组称为候选码
7.主码:从候选码中选择出来,DBMS以主码为线索管理关系中的各个元组
8.一致性约束:域约束;参照完整性;断言;授权
9.DDL以一些语句输入,其输出存入数据字典中
10.数据字典包含元数据(数据的数据)只由数据库系统本身方位和修改

三、SQL语言
1.授权grant:授权读取数据,插入数据,更新数据,删除数据:grant <权限列表> on <关系名或视图名> to <用户/角色>(此语句后加上with grant option表示被授权用户可以将权限授予其他用户)
2.创建者自动授权关系的所有权限
3.revoke是收回权限:revoke <权限列表> on <关系或视图名> from <用户/角色>
4.存储过程的优点:增加SQL语句的功能和灵活性,可以使没有权限的用户在控制下间接的存取数据库以保证安全,可以使相关动作一起发生保证数据库的完整性
5.游标:能从包括多条数据记录的结果集中每次提取一条记录的机制,充当指针的作用
6.游标的作用:保存查询结果,以便以后使用
7.游标的缺点:游标使用时会对行加锁,可能影响其他业务的正常运行,另外数据量大时其效率较低
8.过程与函数的区别:函数必须有返回值,而过程没有;函数可以单独执行,而过程必须通过execute关键字执行;函数可以改嵌入到sql语句中执行,而过程不行

四、形式化关系查询语言
1.自然连接一定是等值连接,等值连接不一定是自然连接,等值连接要求相等的分量不一定是公共属性,而自然连接要求相等的分量必须是公共属性,等值连接不把重复属性删除,而自然连接则把公共属性去重复
2.使用基本关系代数运算表示RnS—>R-(R-S)
3.书写关系代数的思路:首先检索是否涉及多个表,如不涉及,可直接采用交、并、差、选择与投影。如果涉及多个表,则检查是否能使用自然连接将多个表连接起来,连接起来以后,可继续使用选择投影运算,这就是所谓的“选投联”操作

五、数据库设计与E-R模型
1.实体的完整性:要求实体对应的关系必须有主键,而作为主键的属性必须唯一且非空
2.弱实体集:没有足够属性形成主码的实体集
3.弱实体集的主码:由标识实体集的主码加上该弱实体集的分辨符构成
4.关联弱实体集与标识性强实体集的联系以双菱形表示
5.实体:现实世界中可区别于其他所有对象的一个事物或对象
6.关系:表示数据与数据之间的联系,在关系模型的术语中,关系用来指代表
7.E-R模型描述数据库的概念模式,反映现实世界
8.E-R模型增强开发人员与客户之间的沟通能力,在需求开发阶段非常重要,是企业的业务运营方式到概念模式的映射

六、关系数据库设计
1.数据库设计过程:需求说明(规格文档),概念设计(描述数据),逻辑设计(将概念模式要用的数据库系统实现在数据模型上)物理设计(文件组织形式和存储)
2.如果函数依赖的强制实施在计算上很困难,则这种设计不是保持依赖
3.由于希望保持依赖,考虑比BCNF弱的一种范式——第三范式(允许保持依赖)
4.具有函数依赖集下的关系模式R属于BCNF范式的条件是F+中的所有形如a–>b的函数依赖要么a–>b是平凡依赖,要么a是b的一个超码
5.BCNF满足条件:(1.左侧包含右侧)(2.左侧是超码)[满足一个条件即可]
6.3NF满足条件:(1.左侧包含右侧)(2.左侧是超码)(3.右侧是候选码的子集)[满足一个条件即可]
7.求候选码的过程:首先将左部属性(左),右部属性(右),双部属性(双),没出现属性(无)一一写出来,左部属性和没出现属性一定在候选码中(先看左+无是否为候选码),若不是则从双部属性中选取可以组成候选码的属性
8.3NF分解:(1.求候选码)(2.进行Fc正则覆盖)(3.将正则覆盖的结果加上任意一个候选码组成3NF分解的结果)
9.无损连接:将R分解为R1与R2,如果R1 n R2是R1或R2的超码,则将R分解为R1与R2就是无损分解
10.保持依赖的验证:写出分解得到的所有依赖,如果这些依赖能够退出所有依赖,则是保持依赖,否则不是

七、事务管理
1.严格的两阶段锁:事务提交之前不可释放排他锁
2.强两阶段锁:事务提交之前不可释放任何锁
3.引入事务是构成单一逻辑工作单元的操作的集合,保证数据库一致性和正确性
4.事务的宏观性:一条或多条SQL语句的一次执行被看作一次事务
5.事务的微观性:对数据库的一系列操作的一个整体性执行
6.事务从宏观上看是并发执行的,但从微观上看基本读写操作则是可以交叉执行的
7.封锁粒度:封锁数据对象的大小,当前DBMS在元组上进行封锁
8.多粒度的锁:方便事务灵活的队不同数据库内容加锁控制,提高数据库能力
9.排他锁:只有一个事务可以读其他事务不可以读
10.共享锁:所有事务都可以读,但是任何事务都不能写
11.更新锁:初始为读,之后可以升级为写
12.事务ACID属性:原子性,要么全部成功提交要么全部失败回滚;一致性,数据库执行一个事务之后,从一个一致性状态到另一个一致性状态,不会产生不一致;隔离性:多个并发事务之间相互隔离;持久性:一个提交事务,则对数据库的改变是永久的
13.事务开始和结束标志:任何一条DML语句都可以开启一个事务;事务提交COMMIT或ROLLBACK回滚来标识事务结束
14.B/S(浏览器服务器模式):浏览器极少处理事务逻辑,事务主要在服务器端实现
15.C/S(客户机服务器模式):客户机可以处理一些运算和业务逻辑
16.两阶段封锁协议:增长阶段,事务可以获得锁,不能释放锁;缩减阶段,事务可以释放锁,不能获得锁
17.当死锁发生时,系统必须回滚死锁事务中的某一个,一旦事务回滚,该事务锁住的数据项就被解锁,其他事务可以访问继续执行,从而解决死锁
18.优先图用于冲突可串行化的判断,优先图无环则是冲突可串行化。(只有读读操作不产生冲突,其余都产生冲突)
19.事务一定处于一下状态之一:(1.活动的:初始状态)(2.部分提交的:最后一条语句被执行后)(3.失败的:发现正常的执行不能继续)(4.终止的:事务回滚并且回复到事务开始执行之前的状态)(5.提交的:成功完成)
20.不可重复读:两次查询结果不一致(由update造成)
21.脏读:在一个事务中读取到另一个事务没有提交的数据
22.幻读:两次查询不一致(由insert造成)
23.死锁检测协议:等待图中有环则会发生死锁

PS:平时很熟悉的概念没有在这里列出来,这里列出的是一些比较重要有点难度的概念和解题方法

你可能感兴趣的:(数据结构)