郑州大学网络空间安全学院复试经验分享

博主分享郑州大学网络空间安全学院复试经验。笔试考高级程序设计(数据结构)和数据库,面试涉及多方面知识,今年大概率有机试。介绍了复习效率和时间安排,还总结了数据结构常见算法原理、数据库事务、关系数据库操作等重点内容及相关概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人本硕均为郑州大学网络空间安全学院,所以对网安院的出题风格比较了解,因此复试在短时间内高分通过以下使我的经验总结。

学信网截图镇楼

笔面机试概括

复试总共两天:第一天笔试+机试一共三小时

笔试满分200分考两个小时。机试满分100分考一个小时

笔试:高级程序设计(408数据结构,王道)+数据库

机试:五个大题,一题20分(资料里面有去年机试原题)

面试:中英文自我介绍+408全部+数据库+c语言,java,(例如,const,static,是什么,这个是原题)+前沿科技+开放性问答(项目经历,本科毕设)

机试只考了一年,可以参考本科生期末考试机试资料,详细见截图,有上机题库,模拟试题还有实验报告册参考答案

复习效率以及时间安排

六天半一轮,差不多就是一周

两天:408全部串一遍,

数据结构是重点(填空——概念;应用题——二叉树,图,算法题(10分),——至少查找算法熟练记忆三个排序算法记忆三个(记忆时间复杂度最优的三个,去年考的快排,如何定义一个二叉树)二叉树的增删改查和图的定义);

计网(tcp/ip osi 原题),操作系统,组原(针对面试,这三门,重点复习你觉得可以考简答的题,计算题可以略)

两天:数据库,填空题就是以概念为主,前两章和后几章(x锁,s锁原题),简答题(视图的作用,原题),代码题(更新,删除,增删改查,触发器定义等,去年考的数据库的更新以及触发器),应用题,范式化简,求闭包(10-15分)

前沿科技:多且难以理解,重点记忆几个当下最火的。复习累的时候,在b站上搜相关前沿科技的科普视频看,一边记忆,一边放松。人工智能。阿尔法狗,chatgpt,

半天:自我介绍:中文+英文(每天演练一遍,注意你的语速问题)

一天:英文问答:抽的2个,老师口头提问一个,家人,家庭,你的研究生规划,你最爱的一本书等,郑大的历史,网安学院的历史(北校区的历史),+为什么要报考郑大,(标红的是原题)

一天:你的毕设,你的项目经历(70%概率会问)

剩下的时间就是哪里薄弱补哪里

复习资料总结·

在复习的期间你可以做什么?给导师发邮件!!!很重要

按照往年的题型笔试满分200分考两个小时,一科一小时,考完一科收一科。高级程序设计就是考数据结构,你可以把数据结构简单再串一遍,他考的不难,基本就是概念和浅显的知识,然后需要注意的就是必须把查找和排序的算法过一遍,他最后会考一个20分还是10分的算法题,不管会不会,最起码你可以写上去点。此外今年大概率有机试。
资料包括,笔试(如何高效复习,真题总结,复习重点,考试题型,复试必考内容总结,期末考试原题)
面试(前沿知识串讲,自我介绍准备,复试注意细节,复试真题,复试模拟,复试必考问答等),赠送,导师推荐,如何写邮件等。

高级程序设计

就是考数据结构,408已经考过了,你可以抽一天的把数据结构简单再串一遍,他考的没有408难,基本上就是期末考试的难度。王道408有的知识点我就不给你列了,我给你列了考过,但是书上没有的知识。此外,你有需要的话我可以去打印店打印郑州大学的期末考试题然后转寄给你。就是概念和浅显的知识,题型就是填空、选择、应用(去年的应用原题使考察的二叉树画法)以及算法然后需要注意的就是必须把查找和排序的算法过一遍,他最后会考一个20分还是10分的算法题,不管会不会,最起码你可以写上去点。

1.1数据结构常见的6种算法原理:b站找讲解算法的视频,算法的思想,

穷举法(遍历)

程序运行状态是可以遍历的,遍历算法执行每一个状态,最终会找到一个最优的可行解;适用于解决极小规模或者复杂度线性增长,而线性规模不会很大的状态。

回溯法

回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。 

树的深度遍历。需要用到栈的数据结构

贪心算法(局部最优解)重点,这个原题

在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。

思想策略:

贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前状态有关。所以对所采用的贪心策略一定要仔细分析其是否满足无后效性。

基本步骤:

1.建立数学模型来描述问题。 2.把求解的问题分成若干个子问题。 3.对每一子问题求解,得到子问题的局部最优解。 4.把子问题的解,局部最优解合成原来解问题的一个解。

Huffman编码,

Dijkstra算法(求解最短路径),

最小生成树算法

分治法

 将一个难以直接解决的大问题,分割成一些规模较小的相同小问题,以便各个击破,分而治之。这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。

折半查找

快速排序

汉诺塔

动态规划法,原题

每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。

思想策略:

将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。

矩阵连乘

分支限界法

类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。

1.2解释一下堆栈和队列以及他们的应用 原题

首先,他们都是受限的线性表。

堆栈,只允许在栈顶进行插入与删除,先进后出。队列,允许在队尾插入以及队首删除。后进后出,先进先出。

栈的分类:单栈,共享栈

队列分类:顺序队列,链式对联,循环队列。

栈的应用:一般运用到含有递归的函数里面。例如中缀转后缀表达式,算式括号匹配,迷宫问题

队列的应用:树的层次遍历,解决主机与外部设备速度不匹配的问题(挂起队列)页面置换算法。

1.3给定二进制数,求里面1的个数 原题

一个数字与上这个数字减一的数,该数二进制最右边的1必然会消除掉,以此类推,从右往左,每一次进行按位与操作,都会取消掉一个1,直到该数字变为0,跳出循环,就得到了该数字二进制中1的个数。

1.4描述一下递归的过程。

递归简单来说就是自己调用自己。将重复问题分解为同类子问题进行求解。

数据库

题型就是填空,应用题、填空重点就是前几章概念,考的简单,应用就是数据库语句(去年考的是数据库更新操作,还有定义一个触发器,视图的作用)还有概念题。应用题去年考的范式化简,求闭包,看这个链接:基本上这个看完应用题拿12 分左右不成问题。

【【数据库期末考试】1个做题技巧秒杀求闭包,再也不怕范式的题目啦!!!】https://www.bilibili.com/video/BV1Cg4y1P7se?vd_source=642fe2f1dc92454ca8b406cd3756d443

此外E-R图还有基本的查询语句也要会写

下面我给你整理了数据库考过简答的题

2.1事务

事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使Rollback 进行回滚。

2.1.1数据库操作四大原则

1)原子性:整个程序中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。

2)一致性:倘若事务操作失败,则滚回事务时,与原状态一致。

3)隔离性:当在进行事务操作时,其他事务的操作不能影响到当前事务操作,事务和事务之间是隔离的,互不干扰,干完再整合。

4)持久性:事务操作的结果具有持久性,事务结果一旦写入数据库,在不改动的情况下,数据库一直都是这个数据。

2.1.2并发一致性问题(多个事务可能造成的问题)

丢失数据: 和 两个事务都对一个数据进行修改, 先修改, 随后修改, 的修改覆盖了 的修改。简记为 同时修改。

读脏数据: 对一个数据做了修改, 读取这一个数据。若 执行 ROLLBACK 操作,则 读取的结果和第一次的结果不一样。简记为 读取失败的修改。最简单的场景是修改完成后,紧接着查询检验结果。

不可重复读: 读取一个数据, 对该数据做了修改。如果 再次读取这个数据,此时读取的结果和第一次读取的结果不同。简记为 读时修改,重复读取的结果不一样。

幻影读: 读取某个范围的数据, 在这个范围内插入新的数据, 再次读取这个范围的数据,此时读取的结果和和第一次读取的结果不同。简记为 读时插入,重复读取的结果不一样。

解决方案

在并发环境下,事务的隔离性很难保证,因此会出现很多并发一致性问题。产生并发不一致性问题的主要原因是破坏了事务的隔离性。解决方法是通过 并发控制 来保证隔离性。并发控制可以通过 封锁 来实现,但是封锁操作需要用户自己控制,相当复杂。数据库管理系统提供了事务的 隔离级别,让用户以一种更轻松的方式处理并发一致性问题。

2.1.2数据库的概念

①数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合

数据库系统是在计算机系统中使用数据库的系统

②数据库管理系统(DBMS )DBA DB等是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能 。

①关系数据库是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。

②非关系型数据库是对不同于传统的关系数据库的数据库管理系统的统称。与关系数据库最大的不同点是不使用 SQL 作为查询语言。

数据库的基本特征:数据按一定的数据模型组织、描述和储存;可为各种用户共享;冗余度较小;数据独立性较高;易扩展。

2.1.3数据独立性

数据独立性表示应用程序与数据库中存储的数据不存在依赖关系,包括逻辑数据独立性和物理数据独立性。

①逻辑数据独立性是指局部逻辑数据结构 外视图即用户的逻辑文件 与全局逻辑数据结构 概念视图 之间的独立性。当数据库的全局逻辑数据结构 概念视图 发生变化 数据定义的修改、数据之间联系的变更或增加新的数据类型等 时,它不影响某些局部的逻辑结构的性质,应用程序不必修改

② 物理数据独立性是指数据的存储结构与存取方法 内视图 改变时,对数据库的全局逻辑结构概念视图 和应用程序不必作修改的一种特性,也就是说,数据库数据的存储结构与存取方法独立

2.1.4 数据冗余

①数据冗余是指数据之间的重复,也可以说是同一数据存储在不同数据文件中的现象。可以说增

加数据的独立性和减少数据冗余是企业范围信息资源管理和大规模信息系统获得成功的前提条件

② 为了达到最低冗余,在设计中进行模式的规范化,一般达到 BC 范式的情况下,就可以大幅

度第降低数据冗余。

2.2 关系数据库

2.2.1操作(10分)

关系模型中常用的关系操作包括:选择(Select )、投影 (Project )、连接( Join )、 除(Divide )、并 (Union )、交 (Intersection )、差 Difference )、笛卡尔积等查询 Query

操作和增加( Insert )、删除 (Delete )、修改 (Update )操作两大部分。

查询的表达能力是其中最主要的部分。关系操作的特点是集合操作方式,即操作的对象和结果都是集合。 这种操作方式也称为一次一集合( set at a time )的方式。相应地,非关系数据模 型的数据操作方式则为一次一记录( record at a time )的方式。

2.2.2表与视图

①表是实实在在得保存数据的实体,写入的数据都保存在表中,而视图是不保存数据的,也没有。

数据。

②计算机数据库中的视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列

带有名称的列和行数据。但是,视图并不在数据库中以 存储的数据值集形式存在。行和列数据来

自由定义 视图的查询所引用的表,并且在引 用视图时动态生成。

③表和视图可以更新,但是视图的更新受到约束。比如, groupby 和表连接生成的视图 不能更新表是实实在在得保存数据的实体,写入的数据都保存在表中,而视图是不保 存数据的,也没有数据

④联系:可以理解为视图的数据都是从表中取出来,视图就是你定下的一个框框而已, 内容都

是在表中。

2.2.3 索引

①索引最大的好处是提高查询速度,可以理解为一张将所有数据包含的哈希表
②缺点是更新数据时效率低,因为要同时更新索引 对数据进行频繁查询进建立索引,如果
要频繁更改数据不建议使用索引。


2.2.4触发器


触发器是一种特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。 可以联级运算。如某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。


2.2.5存储过程


存储过程是一个预编译的SQL 语句,优点是允许模块化的设计,就是说只需创建一次, 以后在该程序中就可以调用多次。如果某次操作需要执行多次 SQL ,使用存储过程比 单纯 SQL 语句执行要快。调用:
1)可以用一个命令对象来调用存储过程。
2)可以供外部程序调用,比如: java 程序。
优点:
1)存储过程是预编译过的,执行效率高。
2)存储过程的代码直接存放于数据库中,通过存储过程名直接调用,减少网络通 讯。
3)安全性高,执行存储过程需要有一定权限的用户。
4)存储过程可以重复使用,可减少数据库开发人员的工作量。
缺点:移植性差


2.2.6视图


①视图:是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查, 操作,试图通常是有一个表或者多个表的行或列的子集。对视图的修改会影响基本 表。它使得我们获取数据更容易,相比多表查询。
② 游标:是对查询出来的结果集作为一个单元来有效的处理。游标可以定在该单元 中的特定行,从结果集的当前行检索一行或多行。可以对结果集当前行做修改。一般不使用游标,但是需要逐条处理数据的时候,游标显得十分重要。
视图的优缺点
优点:
1)对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。
2)用户通过简单的查询可以从复杂查询中得到结果。
3)维护数据的独立性,试图可从多个表检索数据。
4)对于相同的数据可产生不同的视图。
缺点:
性能:查询视图时,必须把视图的查询转化成对基本表的查询,如果这个视图是
由一个复杂的多表查询所定义,那么就无法更改数据。


2.2.7什么是封锁?一级二级三级封锁协议


1、封锁就是事务T在对某个数据对象(例如表(修改表中数据),记录等)操作之前,先向系统发出请求,对其加锁,
2、加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他的事务不能更新此数据对象
X锁,S锁
封锁协议:
一级封锁协议:
事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。
可避免更新丢失的问题
二级封锁协议:
一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后方可释放S锁。
能够避免不读“脏”数据
三级封锁协议:
一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。
能够避免不可重复读取问题。


2.2.8保证数据库安全的方法和技术


用户标识与身份鉴别
存取控制
视图机制
为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
审计
建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人,时间和内容等
数据加密


2.3 数据库设计规范


2.3.1范式


①第一范式 确保每列保持原子性 所有字段值都是不可分解的原子值。 第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就 说明该数据库表满足了第一范式。
②第二范式 确保表中的每列都和主键相关 在一个数据库表中,一个表中只能保存一种数据,不 可以把多种数据保存在同一张数据库表中。
在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数 据库表中。
③第三范式 确保每列都和主键列直接相关 而不是间接相关
④BCNF: 符合 3NF ,并且,主属性不依赖于主属性。
⑤第四范式 要求把同一表内的多对多关系删除。少
第五范式 从最终结构重新建立原始结构。少


2.3.2数据库的三级模式


外模式 概念模式 内模式
1)外模式
对应数据库的升级、外模式包括(子模式用户模式) 用来描述用户看到或者使用那部分的数据的逻辑结构,用户根据外模式用户数据操作语句或者程序去操作数据库中的数据,外模式的主要特点用来描述组成用户视图各个记录的组成、相互联系、数据的完整性和安全性、数据项的特征等。
2)概念模式
对应数据库的概念模式,概念模式(概念、逻辑模式)用以描述整个数据库中的逻辑结构、用来描叙现实生活中的实体,以及它们之间的关系、从而定义记录数据项的完整性约束条件以及记录之间的联系是数据项的框架。
概念模式是数据库中全体数据的逻辑结构和特征的描叙是所有用户数据的公共数据视图。
3)内模式
内模式对应物理级数据库,内模式是所有模式中的最低层的表示,不同于物理层,假设外存是一个无限性的地址空间,内模式是存储记录的类型,存储域以及表示以及存储记录的物理顺序,指示元索引,和存储路径的等数据的存储组织从而形成一个完整的系统。

评论 44
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值