在各位小伙伴的召唤下,数据库篇终于出炉!

新鲜【计算机l考研/保研复试重点整理】这个系列目前已经集齐了操作系统、数据结构、计算机网络、数据库,大家可以召唤神龙背起来了,文末会奉上其他科目的传送门。

我们先了解一下数据库的江湖地位,数据库在复试中出现的频率较高,但是!问的问题较少,会有这部分提问,但问一两个问题就过去了,这里就不奉上思维导图了,意义不大,常考的有事务、索引、锁、三个范式、并发一致性问题

好了,拿好小本本,开始划重点

一、事务及其特性

事务是并发控制的基本单位,它是一个操作序列,这些操作要么都执行,要么都不执行,是一个不可分割的工作单位。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。

A,atomacity:原子性,事务必须是原子工作单元,对于数据的执行要不是全部执行,要不都不执行。如果只执行一个子集,可能会破坏事务的总体目标。

C,consistency:一致性。事务将数据库从一种一致状态变为下一种一致状态

I,isolation:隔离性。由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。换句话说,一个事务的影响在该事务提交前对其他事务都不可见。

D,durability,持久性:事务完成之后,它对于系统的影响是永久性的。该修改即使出现致命的系统故障也将一直保持。

二、索引

索引是对数据库表中一或多个列的值进行排序的结构,是帮助高效获取数据的数据结构。

1、数据库创建索引的好处:

第一,通过创建唯一性的索引,可以保证数据库表中每一行数据的唯一性。

第二,可以大大加快数据的检索速度,这也使创建索引的最主要的原因。

第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面。

第四,在使用分组和排序子句进行数据检索时,同样可以显著的减少查询中查询中分组和排序的时间。

第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

2、增加索引的不利的方面:

第一,创建索引和维护索引需要消耗时间,这种时间随着数量的增加而增加

第二,索引需要占物理空间,除了数据表占据数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要额空间就会更大。

第三,当对表中的数据进行增加,删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

所以,添加索引不一定可以增快查询速度。

3、应该哪些列建立索引:

在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构。

在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度。

在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的。

在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间。

在经常使用在where子句中的列上面创建索引,加快条件的判断速度。

4、哪些列不应该创建索引:

在查询中很少使用或者作为参考的列不应该创建索引。

对于那些只有很少数据值的列也不应该增加索引(比如性别,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度)。

对于那些定义为text,image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。

当修改性能远远大于检索性能时,不应该创建索引,因为修改性能和检索性能是矛盾的。

创建索引的方法:直接创建和间接创建(在表中定义主键约束或者唯一性约束时,同时也创建了索引)。

5、基本的索引类型:

唯一性索引和复合索引。

唯一性索引保证在索引列中的全部数据是唯一的,不会包含冗余数据。

复合索引就是一个索引创建在两个列或者多个列上,可以减少一在一个表中所创建的索引数量。

三、异常情况(并发一致性问题)

丢失数据:

1、 两个事务都对一个数据进行修改,一个先修改,另一个随后修改,第二个修改覆盖了第一个的修改。

2、 两个事务更新相同的数据源,如果第一个事务被提交,第二个却被撤销,那么连同第一个事务做的更新也被撤销。

读脏数据:T1对一个数据做了修改,T2读取这一个数据。若T1执行 ROLLBACK 操作,则 T2读取的结果和第一次的结果不一样。当一个事务读取另一个事务尚未提交的修改时,产生脏读。

不可重复读(非重复读):T1读取一个数据,T2对该数据做了修改。如果 T1再次读取这个数据,此时读取的结果和第一次读取的结果不同。一个事务对同一行数据重复读取两次,但是却得到了不同的结果。同一查询在同一事务中多次进行,由于其他提交事务所做的修改或删除,每次返回不同的结果集。

幻影读:T1读取某个范围的数据,T2在这个范围内插入新的数据,T1再次读取这个范围的数据,此时读取的结果和和第一次读取的结果不同。事务在操作过程中进行两次查询,第二次查询的结果包含了第一次查询中未出现的数据(这里并不要求两次查询的SQL语句相同)。这是因为在两次查询过程中有另外一个事务插入数据造成的。

解决方案:

在并发环境下,事务的隔离性很难保证,因此会出现很多并发一致性问题。产生并发不一致性问题的主要原因是破坏了事务的隔离性。解决方法是通过并发控制来保证隔离性,并发控制可以通过封锁来实现。

四、锁

共享锁(S锁):用于只读操作(SELECT),锁定共享的资源。共享锁不会阻止其他用户读,但是阻止其他的用户写和修改。

更新锁(U锁):用于可更新的资源中。防止当多个会话在读取、锁定以及随后可能进行的资源更新时发生常见形式的死锁。

独占锁(X锁,也叫排他锁):一次只能有一个独占锁用在一个资源上,并且阻止其他所有的锁包括共享缩。写是独占锁,可以有效的防止“脏读”。

五、三个范式

1、第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、字符型、逻辑型、日期型等。

2、第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),即所有非关键字段都完全依赖于任意一组候选关键字。

3、第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。传递函数依赖,指的是如 果存在"A → B → C"的决定关系,则C传递函数依赖于A。

六、两类数据模型

概念模型:用于信息世界的建模,如E-R图

逻辑模型和物理模型:

逻辑模型主要包括层次模型、网状模型和关系模型等,主要用于数据库管理系统的实现;

物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,或在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的

七、三级模式

外模式:也称子模式或用户模式,是数据库用户的数据视图。外模式通常是(逻辑 )模式的子集,因此有多个外模式,用外模式DDL来定义外模式。

(逻辑)模式:数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共视图。一个数据库只有一个模式,用模式DDL来定义模式。

内模式:也称存储模式,一个数据库只有一个内模式,是数据结构和存储方式的描述,是数据在数据库内部的组织方式。

八、两级映像

外模式/模式映像:一个模式可以有多个外模式。当(逻辑)模式改变时,由DBA对该映像做相应改变,而无需改变外模式。应用程序是根据外模式写的,因此也不用变,这称为数据的逻辑独立性。

模式/内模式映像:一个数据库只有一个内模式。当数据库的存储结构改变时,由DBA对该映像做相应改变,而无需改变模式,进而也无需改变应用程序,这称为数据与程序的物理独立性。

.九、ER 图

实体关系图 (Entity-Relationship,E-R),有三个组成部分:实体、属性、联系。用来进行关系型数据库系统的概念设计。

ER 模型转换为关系模式的原则

一对一:在两个实体任选一个添加另一个实体的主键即可。

一对多:在多端添加另一端的主键。

多对多:需要将联系转换为实体,然后在该实体上加上另外两个实体的主键,作为联系实体的主键,然后再加上该联系自身带的属性即可。

十、数据基本操作的SQL语句:增、删、改、查、更新

划重点到此结束,下课!最后附上往期传送门,更多保研/考研复试经验,记得关注知乎专栏:小昕学姐说保研,微博:小何同学爱酸奶,想了解轻松有趣的学习小技巧关注小红书:小昕学姐。

【计算机考研/保研面试--操作系统重点!】大圣你的金箍呢:计算机考研/保研面试--操作系统重点!

【计算机考研/保研复试重点整理-计算机网络篇】大圣你的金箍呢:计算机考研/保研复试重点整理-计算机网络篇

【计算机考研/保研复试重点整理-数据结构篇】大圣你的金箍呢:计算机考研/保研复试重点整理-数据结构篇

【如何联系导师?看这一篇就够啦!】大圣你的金箍呢:如何联系导师?看这一篇就够啦!

【考研/保研复试面试攻略--准备篇】大圣你的金箍呢:考研/保研复试面试攻略--准备篇

【考研/保研复试面试攻略--技巧篇】大圣你的金箍呢:考研/保研复试面试攻略--技巧篇

通过adsi查询所有计算机_计算机考研/保研复试重点整理-数据库篇相关推荐

  1. 保研面试 算法题_计算机考研/保研复试重点整理-数据结构篇

    先来一个知识框架图,前方高能预警 好了,看完这个框架,你慌了吗? 大家心里有个数之后,我们开始划重点,都去给我背! 一.什么是数据结构? 数据结构是计算机存储.组织数据的方式.数据结构是指相互之间存在 ...

  2. 计算机学院保研复试题目,电子科大计算机学院2012届保研复试

    电子科技大学 计算机学院 2012年 保研复试题目,绝对真实 一.程序改错:说明程序的错误原因并改正.(共20分) 1.下面程序段的功能是交换两个字符数组的内容(每个字符串字符数均不超过100).(8 ...

  3. 光学考研保研复试面试专业问题最全整理

    作为参加过保研夏令营面试.九推复试面试以及秋招工作面试并收获许多offer的过来人,总结整理了光学,光学工程专业的考研保研复试面试的常见问题如下,答案已另行整理,本文全面覆盖各个学科常见常问的重点难点 ...

  4. echarts的tree怎么控制位置_自动化考研保研面试—线性系统控制器设计

    这个问题是我导师(面试组长)多次在保研考研面试的时候问过的,而且每年都会问!问题其实不难,涉及的知识点也就是自控原理经典控制理论的部分,但是基本上很少有人能够完整地回答出来,不服的话请看题: ---- ...

  5. 计算机考研保研复试上机算法技巧

    2020.8.21-2020.9.6 the first version ​ 1 闰年 (year % 4 == 0 && year % 100 != 0) || (year % 40 ...

  6. 计算机保研备战,【计算机系】“研途有你 更为明朗”计算机系2017级考研/保研交流会...

    为了进一步明确考研目标,掌握考研技巧,熟悉推免流程与注意事项,计算机系2017级开展生涯·职涯·学涯朋辈课堂系列交流会"研途有你 更为明朗"考研/保研专场分享会. 5月27日(周三 ...

  7. 北京科技大学计算机保研,北京科技大学考研/保研怎么样?这些数据必须知道!...

    原标题:北京科技大学考研/保研怎么样?这些数据必须知道! 考研是读研的唯一途径吗? 小编告诉你,不是的.正所谓条条大道通罗马,学术保研.科技保研.艺术保研.工作保研.支教保研等优秀的风貌,向来都是千姿 ...

  8. 计算机毕业设计Java考研部落系统(源码+mysql数据库+系统+lw文档)

    计算机毕业设计Java考研部落系统(源码+mysql数据库+系统+lw文档) 计算机毕业设计Java考研部落系统(源码+mysql数据库+系统+lw文档) 本源码技术栈: 项目架构:B/S架构 开发语 ...

  9. 双非保研北邮人工智能学院的逆袭之路 | 计算机就业形式、保研全流程、如何选导师...你想要的这里通通有

    作者: ShawnPi 编辑: CVHub 来源: https://zhuanlan.zhihu.com/p/601052513 引言 刚经历过激烈的保研和一段时间的迷茫,希望此帖可以帮助到计算机专业 ...

最新文章

  1. 关于WordPress中字体加载慢的问题解决方案(转)
  2. 计算机专业开学周记,【热门】开学周记集锦5篇
  3. 8086汇编-实验8-jmp指令的理解
  4. 小波基函数构造matlab,五种常见小波基函数及其matlab实现全解.docx
  5. django模型的元数据Meta
  6. 目录启动CXF启动报告LinkageError异常以及Java的endorsed机制
  7. Java JDK动态代理Proxy类的原理是什么? - 知乎(重排版)
  8. java线程的状态改变(练习)
  9. MATLAB实现滚动密钥密码
  10. 三调数据库标准和输出表格
  11. 开源ext2read代码走读之-如何读取MBR分区的内容
  12. 延长计算机屏幕显示时间,如何设置电脑显示屏保时间
  13. unity 实现PPT动画效果切换图片
  14. 阿里云物联网平台如何通过云产品流转使两个设备互相通信
  15. Pikachu漏洞靶场 敏感信息泄露
  16. 安装双系统/误删导致原来的引导分区中的boot丢失的解决方案
  17. 利用Python写个新年贺卡生成器,提前祝大家小伙伴们新年快乐呀~
  18. Android 图片处理工具类汇总
  19. 高德地图自定义点标记大小_高德地图 自定义点标记 图标大小
  20. mysql教学磁力链_使用MySQL存储以太坊事件

热门文章

  1. 南京、西安集成电路企业和高校分布一览(附产业链主要厂商及高校名录)
  2. SmS-Activate一款好用的短信验证码接收工具
  3. html中粒子风暴代码,怎么用代码打造粒子风暴
  4. 2017开始起航,HPB加油
  5. linux系统core dump设置,Linux 下生成 core dump 配置和用法
  6. 为什么计算机会出现乱码—(计算机基础课十二)​​​​​​​
  7. 入了个树莓派2,发个捣腾htpc的记录
  8. 漫漫人生路 何时是尽头
  9. 血色先锋队(dfs)
  10. 上海市电子警察分布表