刷题(知识点收集)

数据库查询的步骤:

  1. 客户端发送一条查询给服务器;

  2. 服务器先会检查查询缓存query cache,如果命中了缓存,则立即返回存储在缓存中的结果。否则进入下一阶段;

  3. 服务器端进行SQL解析parsing、预处理transition,再由优化器optimization生成对应的执行计划;

  4. 根据优化器生成的执行计划,调用存储引擎的API来执行分布distribution查询;

  5. 将结果返回给客户端。

产生死锁的原因主要是:
(1) 因为系统资源不足。
(2) 进程运行推进的顺序不合适。
(3) 资源分配不当等。

产生死锁的四个必要条件:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

死锁是封锁技术带来的问题,而封锁技术是为了解决并发操作的不一致性问题(即丢失修改、不可重复读、读脏数据)
i. 脏读(Dirty read): 当一个事务正在访问数据并且对数据进行了修改,而这种修改还没有提交到数据库中,这时另外一个事务也访问了这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是“脏数据”,依据“脏数据”所做的操作可能是不正确的。
ii. 丢失修改(Lost to modify): 指在一个事务读取一个数据时,另外一个事务也访问了该数据,那么在第一个事务中修改了这个数据后,第二个事务也修改了这个数据。这样第一个事务内的修改结果就被丢失,因此称为丢失修改。 例如:事务1读取某表中的数据A=20,事务2也读取A=20,事务1修改A=A-1,事务2也修改A=A-1,最终结果A=19,事务1的修改被丢失。
iii. 不可重复读(Unrepeatableread): 指在一个事务内多次读同一数据。在这个事务还没有结束时,另一个事务也访问该数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改导致第一个事务两次读取的数据可能不太一样。这就发生了在一个事务内两次读到的数据是不一样的情况,因此称为不可重复读。
iv. 幻读(Phantom read): 幻读与不可重复读类似。它发生在一个事务(T1)读取了几行数据,接着另一个并发事务(T2)插入了一些数据时。在随后的查询中,第一个事务(T1)就会发现多了一些原本不存在的记录,就好像发生了幻觉一样,所以称为幻读。
v. 不可重复读和幻读区别:不可重复读的重点是修改比如多次读取一条记录发现其中某些列的值被修改,幻读的重点在于新增或者删除比如多次读取一条记录发现记录增多或减少了。

数据库设计通常分为6个阶段
1需求分析:分析用户的需求,包括数据、功能和性能需求;
2概念结构设计:主要采用E-R模型进行设计,包括画E-R图;
3逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;
4数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存取路径;
5数据库的实施:包括编程、测试和试运行;
6数据库运行与维护:系统的运行与数据库的日常维护

日志文件是用来记录事务对数据库更新操作的文件,查询操作不是更新操作。日志文件如果满了,不能执行更新操作,可以执行查询操作。

数据模型的组成要素有:
1.数据结构,描述数据库的组成对象以及对象之间的联系,数据结构是所描述的对象类型的集合,是对系统静态特征的描述
2.数据操作,是指对数据库中各种对象的实例允许执行的操作的集合,主要有查询和更新。
3.数据的完整性约束条件,是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的之约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。

limit用来选择返回的行数,有两个参数,偏移量及行数,若只有一个参数默认为行数,若行数设为-1则是从偏移量到最后,若行数不够则返回能够有的行数
SELECT * FROM table LIMIT 4(从第一行开始向下依次选四行数据)
SELECT * FROM table LIMIT 4 OFFSET 2 (跳过前两行,从第三行开始向下依次选四行数据)
SELECT * FROM table LIMIT -1 OFFSET 3 (跳过前三行,列出表中其余行的数据)

层次模型用树形结构表示各类实体以及实体间的关系。
网状模型用有向图表示,
关系模型用二维表表示,
面向对象模型用类表示。

数据库与文件系统区别?
文件系统用操作系统中的存取方法对数据进行管理,数据库系统用DBMS统一管理和控制数据;
文件系统实现以文件为单位的数据共享,数据库系统实现以记录和字段为单位的数据共享。
数据库是一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点、是与应用程序彼此独立的数据集合。对数据的增、删、改、查由统一软件进行管理和控制。
文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。

Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。

同一个关系模型的任两个元组值(整行数据)不能全同。

视图定义能力强于表,因为可以在多张表上定义视图,操作能力弱于表,控制能力相当。

视图除了进行查询记录外,也可以利用视图进行插入、更新、删除记录的操作,减少对基表中信息的直接操作,提高了数据的安全性。
在视图上使用INSERT语句添加数据时,要符合以下规则。
(1)使用INSERT语句向数据表中插入数据时,用户必须有插入数据的权利。
(2)由于视图只引用表中的部分字段,所以通过视图插入数据时只能明确指定视图中引用的字段的取值。而那些表中并未引用的字段,必须知道在没有指定取值的情况下如何填充数据,因此视图中未引用的字段必须具备下列条件之一。
该字段允许空值。
该字段设有默认值。
该字段是标识字段,可根据标识种子和标识增量自动填充数据。
该字段的数据类型为timestamp或uniqueidentifier。
(3)视图中不能包含多个字段值的组合,或者包含使用统计函数的结果。
(4)视图中不能包含DISTINCT或GROUP BY子句。
(5)如果视图中使用了WITH CHECK OPTION,那么该子句将检查插入的数据是否符合视图定义中SELECT语句所设置的条件。如果插入的数据不符合该条件,SQL Server会拒绝插入数据。
(6)不能在一个语句中对多个基础表使用数据修改语句。因此,如果要向一个引用了多个数据表的视图添加数据时,必须使用多个INSERT语句进行添加。

如果视图定义中有如下子句则不能更新
1.分组 使用group by 和 Having
2.联结
3.子查询
4.并集
5.聚集函数 MAX MIN COUNT AVG
6.DISTINCT
7.导出列

数据库系统的三级模式结构是指数据库系统由外模式、模式和内模式3级构成。
外模式也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
模式也称逻辑模式、概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序、开发工具和语言无关。
内模式也称存储模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方法。
数据库管理系统在三级模式之间提供了以下两层映像来保证数据库系统中的数据具有较高的逻辑独立性和物理独立性。
外模式/模式映像:当模式改变时,由数据库管理员对各个外模式/模式的映像做相应的改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据逻辑独立性。
模式/内模式映像:当数据库的存储结构改变时,由数据库管理员对模式/内模式映像做相应的改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据物理独立性。

DFD图即为数据流图(Data Flow Diagram),它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
E-R是实体联系图 里面有方形圆形和菱形
I/O图是输入输出图
IPO图是输入加工输出图

drop,trustcate,delete区别
1、处理效率:drop>trustcate>delete
2、drop删除整个表;trustcate删除全部记录,但不删除表;delete删除部分记录
3、delete不影响所用extent,高水线保持原位置不动;trustcate会将高水线复位。
在这里插入图片描述

DQL(Data Query Language):数据查询语言
关键字:select
查询数据

DML(Data Manipulation Language):数据操作语言
关键字:insert、delete、update
插入、删除、更改数据

DDL(Data Denifition Language):数据定义语言
关键字:create、drop、alter
创建、删除、更改表结构

TCL(Trasactional Conrtol Language):事务控制语言
关键字:commit、rollback
用来提交和回滚事务

DCL(Data Conrtol Language):数据控制语言
关键字:grant、revoke
用来设置或更改数据库用户或角色权限

主键,外键,建立索引其实也是为了更好的查询,归根结底还是为了在查询和排序,分组时去使用,也就是where,order by ,group by三个地方。
主键和外键建立索引是因为相对的这两个值比较能确定一些数据,所以比较适合建立索引;
where条件中的字段适合建立索引是因为要在查询过程中减少数据检索,需要使用索引;

在这里插入图片描述
删除列可以省略column,添加列必须说明数据类型

概念模型的特点包括:有丰富的语义表达能力、易于交流和理解、易于变动和易于向各种数据库转换

系统软件是和硬件直接相关联的,没有系统软件,计算机就没有办法正常运行。包括:操作系统、语言处理程序、标准库程序、服务型程序、数据库管理系统、计算机网络软件

在这里插入图片描述

概念数据模型是现实世界到信息世界的第一层抽象。
数据结构模型是对现实世界进行的第二层抽象。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

六种覆盖方法中,覆盖准则由弱到强依次是语句覆盖、判定覆盖(分支覆盖)、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。
其中,
语句覆盖是使得程序中每个语句至少被执行一次;
判定覆盖是使得程序中的每个分支至少都通过一次;
条件覆盖是使得判定中的每个条件获得各种可能的结果;
判定/条件覆盖是使得判定中的每个条件取到各种可能的值,并使每个判定取到各种可能的结果;
条件组合覆盖是使得每个判定中条件的各种可能组合都至少出现一次;
在这里插入图片描述
在这里插入图片描述
等值分析测试=等价类划分+边界值分析测试

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值