1.如何理解数据库规范化过程/概述范式
常见的范式有1NF、2NF、3NF、BCNF,他们的规范化程度是逐步增高的
1NF是指数据库表的每一列都是不可分割的数据项,只要是关系型数据库都要满足1NF;
2NF是在1NF的基础上消除了非主属性对码的部分依赖;
3NF是在2NF的基础上消除了非主属性对码的传递依赖;
BCNF是在3NF的基础上消除了主属性对码的部分依赖和传递依赖。
2.简述完整性约束条件
完整性约束条件是指数据的正确性和相容性,具体分为实体完整性、参照完整性、用户自定义完整性。
实体完整性是对主键的约束,主属性独一无二且不为空
参照完整性是对外键的约束,外键必须是另一个关系的主键值或者为空
用户自定义完整性是根据用户需求来的,例如sex字段只能取男或女
3.简述事务和事务特性
事务是一系列数据操作的集合,要么通过commit一起成功,要么通过rollback一起回滚,具有ACID性质
A 原子性,事务是最小的操作集合,不可再分割
C 一致性,数据库在事务执行前后都保持一致,在一致性前提下,所有事务对同一个数据的读取结果都是相同的
I 隔离性,一个事务所做的修改在其提交之前,对其他事务是不可见的
D 持久性,事务提交之后,所有对数据的修改都永远保存在数据库中。
4.并发性一致的问题
【丢失修改】T1、T2事务同时对一个数据进行修改,T1先修改,T2后修改,T2修改的覆盖了T1的修改,造成了T1事务修改的丢失。
【脏读】T1事务修改一个数据,但还未提交,之后T2访问了该数据,这时T1进行了回滚操作,T2再次读取数据会和第一次不同。
【不可重复读】T2读取了一个数据,T1对该数据进行了修改,T2再次读取,重复读取的结果不同
【幻读】T1读取某一个范围的数据,T2向这个范围内插入数据,T1重复读时发现结果不同了。
解决方案:通过并发控制来保证隔离,并发控制通过封锁来实现。
5.简述封锁
【封锁粒度】行级锁和表级锁。封锁粒度越小,发生争用可能性就越小,系统并发度越高,但消耗资源越多(包括获取锁、检查锁、释放锁),需要在锁开销和并发程度之间进行权衡
【封锁类型】
读写锁
共享锁,称读锁、S锁,加了S锁,其他程序只能读,不能写,只能加S锁,不能加X锁
排它锁,称写锁、X锁,加了X锁,其他程序不能读也不能写
意向锁:支持多粒度封锁,解决表锁可能和之前的行锁冲突的问题,原来加表锁之前会每行检查,看是否有行锁存在,非常耗时。现在要锁一行时先加意向锁,这样加表锁时直接进入阻塞状态,不需要一行一行的检查是否有行锁的存在
【封锁协议】
三级封锁协议
一级封锁协议:当T1修改数据时,加X锁,直到事务结束后释放X锁。
二级封锁协议:在一级封锁协议基础上,当T1读取数据时,加S锁,读完马上释放S锁。
三级封锁协议:在二级封锁协议基础上,当T1读取数据时,加S锁,等T1事务完全结束时释放S锁。
两段锁协议:将事务分成加锁阶段和解锁阶段,事务开始时就处于加锁阶段,直到遇到commit或rollback才使事务进入解锁阶段。
6.简述ER图
ER图又称实体关系图,由三部分组成:实体、属性、联系。用来进行关系型数据库系统的概念设计。
实体:用矩形表示,矩形框内写实体名
属性:用椭圆形表示,并用无向边将其与相应实体连接起来
联系:用菱形表示,菱形框内写联系名称,并在无向边的两侧指明是哪种关系
ER图转换为关系模式的原则:
一对一:在两个实体中任选一个,添加另一个实体的主键即可
一对多:在多的一端添加另一端的主键
多对多:需要将联系转换为实体,并在该实体上加上另外两个实体的主键,作为联系实体的主键,再加上联系本身的属性即可
7.简述数据库的三级模式结构
数据库三级模式分为外模式、模式、内模式。
外模式,又称子模式,是数据库用户可以看到和使用的局部数据的逻辑结构和特征描述,是数据库用户的数据视图,外模式是模式的子集,一个数据库可以有多个外模式
模式,又称概念模式,是数据库中全体数据的逻辑结构和特征描述,是所有用户的公共视图,一个数据库只有一个模式
内模式,又称存储模式,是数据库物理结构和存储方式的描述,是数据在数据库内部的组织方式。
8.简述数据库的二级映像功能和数据独立性
数据库的二级映像分为外模式/模式、模式/内模式。
数据独立性分为逻辑独立性和物理独立性。
逻辑独立性:是由外模式/模式映像保证的,当模式发生改变时,DBA对外模式/模式的映射作出相应改变,使外模式保持不变,保证了数据的逻辑独立性。
物理独立性:是由模式/内模式映像保证的,当数据库存储结构发生变化时,DBA对模式/内模式映射作出改变,使得模式不变,保证了数据的物理独立性。
9.关系、关系模式、关系数据库的区别
关系:是关系模式在某一时刻的状态,关系是动态的、不稳定的,随时间变化而变化。
关系模式:是静态的、稳定的
关系数据库:是建立在关系模式的基础上,利用关系来描述现实世界。
10.简述查询优化的策略
如果子表达式多次出现,先将其计算结果保存起来,避免重复计算
选择运算尽量先做
尽可能指明展示列,少用*代替
避免在列索引上使用IS NULL和IS NOT NULL
11.简述数据字典
数据字典是对数据表中数据元素的定义和描述,目的是对数据流程图中的各个元素进行详细的说明。数据字典和数据流程图共同构成了系统的逻辑模型。
12.数据库故障恢复策略
事务故障恢复:由系统自动完成,反向扫描日志,对事务更新操作执行逆操作
系统故障恢复:由系统重启时自动完成,正向扫描日志,记录REDO队列和UNDO队列,对UNDO队列进行撤销处理,对REDO队列进行重做处理
介质故障恢复:重装后援副本+REDO+UNDO
登记日志文件遵循的两条原则:
登记次序严格按照并发事务执行的时间次序
必须先写日志文件,后写数据库
————————————————
版权声明:本文为CSDN博主「李润泽」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Arnold_lee_yc/article/details/106098813
常见的范式有1NF、2NF、3NF、BCNF,他们的规范化程度是逐步增高的
1NF是指数据库表的每一列都是不可分割的数据项,只要是关系型数据库都要满足1NF;
2NF是在1NF的基础上消除了非主属性对码的部分依赖;
3NF是在2NF的基础上消除了非主属性对码的传递依赖;
BCNF是在3NF的基础上消除了主属性对码的部分依赖和传递依赖。
2.简述完整性约束条件
完整性约束条件是指数据的正确性和相容性,具体分为实体完整性、参照完整性、用户自定义完整性。
实体完整性是对主键的约束,主属性独一无二且不为空
参照完整性是对外键的约束,外键必须是另一个关系的主键值或者为空
用户自定义完整性是根据用户需求来的,例如sex字段只能取男或女
3.简述事务和事务特性
事务是一系列数据操作的集合,要么通过commit一起成功,要么通过rollback一起回滚,具有ACID性质
A 原子性,事务是最小的操作集合,不可再分割
C 一致性,数据库在事务执行前后都保持一致,在一致性前提下,所有事务对同一个数据的读取结果都是相同的
I 隔离性,一个事务所做的修改在其提交之前,对其他事务是不可见的
D 持久性,事务提交之后,所有对数据的修改都永远保存在数据库中。
4.并发性一致的问题
【丢失修改】T1、T2事务同时对一个数据进行修改,T1先修改,T2后修改,T2修改的覆盖了T1的修改,造成了T1事务修改的丢失。
【脏读】T1事务修改一个数据,但还未提交,之后T2访问了该数据,这时T1进行了回滚操作,T2再次读取数据会和第一次不同。
【不可重复读】T2读取了一个数据,T1对该数据进行了修改,T2再次读取,重复读取的结果不同
【幻读】T1读取某一个范围的数据,T2向这个范围内插入数据,T1重复读时发现结果不同了。
解决方案:通过并发控制来保证隔离,并发控制通过封锁来实现。
5.简述封锁
【封锁粒度】行级锁和表级锁。封锁粒度越小,发生争用可能性就越小,系统并发度越高,但消耗资源越多(包括获取锁、检查锁、释放锁),需要在锁开销和并发程度之间进行权衡
【封锁类型】
读写锁
共享锁,称读锁、S锁,加了S锁,其他程序只能读,不能写,只能加S锁,不能加X锁
排它锁,称写锁、X锁,加了X锁,其他程序不能读也不能写
意向锁:支持多粒度封锁,解决表锁可能和之前的行锁冲突的问题,原来加表锁之前会每行检查,看是否有行锁存在,非常耗时。现在要锁一行时先加意向锁,这样加表锁时直接进入阻塞状态,不需要一行一行的检查是否有行锁的存在
【封锁协议】
三级封锁协议
一级封锁协议:当T1修改数据时,加X锁,直到事务结束后释放X锁。
二级封锁协议:在一级封锁协议基础上,当T1读取数据时,加S锁,读完马上释放S锁。
三级封锁协议:在二级封锁协议基础上,当T1读取数据时,加S锁,等T1事务完全结束时释放S锁。
两段锁协议:将事务分成加锁阶段和解锁阶段,事务开始时就处于加锁阶段,直到遇到commit或rollback才使事务进入解锁阶段。
6.简述ER图
ER图又称实体关系图,由三部分组成:实体、属性、联系。用来进行关系型数据库系统的概念设计。
实体:用矩形表示,矩形框内写实体名
属性:用椭圆形表示,并用无向边将其与相应实体连接起来
联系:用菱形表示,菱形框内写联系名称,并在无向边的两侧指明是哪种关系
ER图转换为关系模式的原则:
一对一:在两个实体中任选一个,添加另一个实体的主键即可
一对多:在多的一端添加另一端的主键
多对多:需要将联系转换为实体,并在该实体上加上另外两个实体的主键,作为联系实体的主键,再加上联系本身的属性即可
7.简述数据库的三级模式结构
数据库三级模式分为外模式、模式、内模式。
外模式,又称子模式,是数据库用户可以看到和使用的局部数据的逻辑结构和特征描述,是数据库用户的数据视图,外模式是模式的子集,一个数据库可以有多个外模式
模式,又称概念模式,是数据库中全体数据的逻辑结构和特征描述,是所有用户的公共视图,一个数据库只有一个模式
内模式,又称存储模式,是数据库物理结构和存储方式的描述,是数据在数据库内部的组织方式。
8.简述数据库的二级映像功能和数据独立性
数据库的二级映像分为外模式/模式、模式/内模式。
数据独立性分为逻辑独立性和物理独立性。
逻辑独立性:是由外模式/模式映像保证的,当模式发生改变时,DBA对外模式/模式的映射作出相应改变,使外模式保持不变,保证了数据的逻辑独立性。
物理独立性:是由模式/内模式映像保证的,当数据库存储结构发生变化时,DBA对模式/内模式映射作出改变,使得模式不变,保证了数据的物理独立性。
9.关系、关系模式、关系数据库的区别
关系:是关系模式在某一时刻的状态,关系是动态的、不稳定的,随时间变化而变化。
关系模式:是静态的、稳定的
关系数据库:是建立在关系模式的基础上,利用关系来描述现实世界。
10.简述查询优化的策略
如果子表达式多次出现,先将其计算结果保存起来,避免重复计算
选择运算尽量先做
尽可能指明展示列,少用*代替
避免在列索引上使用IS NULL和IS NOT NULL
11.简述数据字典
数据字典是对数据表中数据元素的定义和描述,目的是对数据流程图中的各个元素进行详细的说明。数据字典和数据流程图共同构成了系统的逻辑模型。
12.数据库故障恢复策略
事务故障恢复:由系统自动完成,反向扫描日志,对事务更新操作执行逆操作
系统故障恢复:由系统重启时自动完成,正向扫描日志,记录REDO队列和UNDO队列,对UNDO队列进行撤销处理,对REDO队列进行重做处理
介质故障恢复:重装后援副本+REDO+UNDO
登记日志文件遵循的两条原则:
登记次序严格按照并发事务执行的时间次序
必须先写日志文件,后写数据库
————————————————
版权声明:本文为CSDN博主「李润泽」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Arnold_lee_yc/article/details/106098813