数据库复试面试问题
Posted 清风霁玥缘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库复试面试问题相关的知识,希望对你有一定的参考价值。
绪论
1.基本术语 数据、数据库、数据库管理系统、数据库系统
数据:数据库中存储的基本对象。
数据库:长期存储计算机内的、有组织的、可共享的数据集合。
数据库管理系统:专门用于建立和管理数据库的一套软件。对外部程序提供访问数据库的方法,对内进行数据管理。
数据库系统:与和数据库相关的整个系统,一般由数据库、数据库管理系统、应用程序、数据库管理员和用户组成。
2.数据库管理技术的发展
经历了人工管理阶段、文件系统阶段、数据库管理阶段。
人工管理阶段:数据不保存;只有程序概念,没有文件概念;数据面向应用。
文件系统阶段:数据可以长期保存,数据由文件系统管理,数据冗余、不一致、联系性差
数据库管理阶段:数据结构化,共享性高,数据独立性高,由DBMS统一管理和控制,提供接口。
3.数据模型的组成三要素
数据结构、数据操作、完整性约束
4.解释三级模式结构
模式、外模式、内模式
模式:也叫作逻辑模式或概念模式,是对数据库中全体数据逻辑结构和特征的描述。定义模式时要定义数据的逻辑结构、数据之间的联系、定义与数据相关的安全性、完整性的要求。模式只有一个。
外模式:也叫子模式或用户模式,它描述用户看到或使用的局部逻辑结构和特性。用户根据外模式用数据操作语言或接口去操作数据库的数据。外模式可以有多个。
内模式:也叫作存储模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。
5.解释二级独立性
物理独立性和逻辑独立性
物理独立性是指用户的应用程序与存储在磁盘上的数据库的数据是互相独立的。当内模式改变之后,只需要对模式/内模式映像修改,而不用改变应用程序。
逻辑独立性是用户的应用程序与数据库的逻辑结构是相互独立的,当模式改变时,只需要改变模式/外模式映像即可,不用改变应用程序。
6.解释二级映像
为了能实现数据库三个模式之间的联系和转化,才有了这两级映像。
外模式/模式映像
模式/内模式映像
7.DBMS的主要功能有什么?
数据库定义、数据库的操纵、数据库的控制、数据库的存储、数据库的维护、数据字典。
数据库的控制包括:数据完整性控制、数据安全性控制、并发控制、数据库恢复。
数据库存储子系统是把各种DML语句转化成底层的文件系统命令,起到存储、检索、更新的作用。
数据字典:数据库中存放三级结构定义的数据库称为数据字典。对数据库的操作都要通过访问数据字典进行。
关系数据库
8.常用的关系操作和数据操作
常用的关系操作:选择、投影、连接、除、并、交、差等运算。
常用数据操作:查询、增加、删除、修改
操作对象和结果都是集合。
9.关系完整性约束
包括实体完整性、参照完整性、用户定义的完整性。前两个系统必须满足,自动支持。
10.一些基本术语关系、属性、值域、元组、分量、关系模式
关系,通俗地讲就是一张二维表,表名就是关系名
属性:二维表中的列称为属性
元组:二维表中一行称为一个元组,元组中的每一个属性值称为元组分量
关系模式:二维表的结构。可以表示未REL(A,B,C,D)
11.一些基本术候选码、主键、主属性、非主属性、外键
候选码:如果一个属性集的值能够唯一标识一个关系的元素,又不含有多余的属性,就称他为候选码。一个关系上可以有多个候选码。
主键:当一个关系有多个候选码时,可以选出一个作为主键。
主属性:包含在任意候选码中的属性
非主属性:不包含在候选码中的属性
外键:如果关系模式R中的属性K是其他关系模式的主键,则说K是关系模式R的外键。
12.描述三类完整性规则
实体完整性规则:要求关系中元组在组成主键的属性上不能有空值。
参照完整性规则:如果属性集K是关系模式R1的主键,同时K也是关系模式R2的属性,但不是R2的主键,那么称K为R2的外键。在R2中,K的取值要么是空值要么是R1的某个主键的值。关系模式R1称为被参照关系,R2称为参照关系。
用户定义完整性:用户自己定义的。
13.完整性约束的作用
作用是保证数据库中数据的正确性。
1、执行插入操作时,检查三种完整性。
2、执行删除操作时一般检查参照完整性。如果删除的是参照关系中的元组,不用检查
如果删除的是被参照关系的元组,需要检查,如果未被引用可以执行删除。如果被引用分三种情况:
①不可以执行删除,直接拒绝;
②可以删除,但需要同时删除参照关系中引用了该元组的对应元组,称为级联删除。
③可以删除,但参照关系中引用了该元组的对应元组的外键设置为空值。
1.sql语言的特点和功能
sql全程是结构化查询语言。它的功能是数据查询DQL、数据操纵DML、数据定义DDL、数据控制DCL。
特点是:①语言集的风格综合统一;②高度非过程化,只需要指出“做什么”,不用说“怎么做”;③面向集合操作方式;④同一种语言提供两种使用方式(自含式语言、嵌入式语言),灵活方便;⑤简单易学。
sql语言的动词:
DQL:SELECT
DDL:CREATE DROP ALTER
DML:INSERT UNDATE DELETE
DCL:GRANT REVOKE
2.三种模式与SQL的关系?
sql支持关系数据库三级模式结构。
外模式对应视图和部分基本表;模式对应基本表;内模式对应于存储文件。
3.SQL各部分的的执行顺序?
先根据where子句给出的条件从from子句指定的基本表或视图中找出满足条件的元组;然后,再按照select子句中的目标列选出元组中的属性值形成结果。如果有group by的话,则按照条件进行分组,如果有having的话,则只是给定的组才能输出。如果有order by则按照条件进行升序或降序。
4.什么是存储过程?
一组为了完成特定功能的sql语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果需要参数)来执行它。
5.什么是触发器?
是一个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件触发,比如对一个表进行增删改(insert、delete、update)操作会激活执行它。
6.存储过程和函数区别?
①返回值区别:函数有1个返回值,而存储过程是本质上没有返回值,但可以通过设置输出参数方式输出(输入:in ,输出:out ,输入输出:in out );
②调用区别:函数可以嵌入在sql中使用的,可以在select中调用,而存储过程必须单独调用;
7.什么情况下用存储过程什么情况下不用?
1、当一个业务同时对多个表进行处理的时候采用存储过程比较合适。
2、复杂的数据处理用存储过程,如有些报表处理
3、多条件多表联合查询,并做分页处理
8.存储过程的优缺点
优点:
1. 运行速度:存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用,所以执行速度会比普通sql快。
2. 减少网络传输:存储过程直接就在数据库服务器上跑。
3. 可维护性:因为可以实时更新DB端的存储过程, 有些bug,直接改存储过程里的业务逻辑就搞定了。
4. 增强安全性:提高代码安全,防止 SQL注入。这一点sql语句也可以做到。
5. 可扩展性:应用程序和数据库操作分开,独立进行,而不是相互在一起。方便以后的扩展和DBA维护优化。
缺点:
1. SQL本身是一种结构化查询语言,但不是面向对象的的,本质上还是过程化的语言,面对复杂的业务逻辑,过程化的处理会很吃力。同时SQL擅长的是数据查询而非业务逻辑的处理,如果如果把业务逻辑全放在存储过程里面,违背了这一原则。
2. 如果需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则仍需要更新程序集中的代码以添加参数、更新调用,等等,这时候估计会比较繁琐了。
3. 开发调试复杂,由于编程工具的问题,存储过程的开发调试要比一般程序困难。
4. 没办法应用缓存。虽然有全局临时表之类的方法可以做缓存,但同样加重了数据库的负担。如果缓存并发严重,经常要加锁,那效率实在堪忧。
5. 不支持群集,数据库服务器无法水平扩展,或者数据库的切割(水平或垂直切割)。数据库切割之后,存储过程并不清楚数据存储在哪个数据库中。
9.为什么索引底层用B+树而不用B树、红黑树、hash
红黑树在增加删除时会进行频繁的调整,来保证红黑树的性质,会影响性能。
hash的速度虽然在随机访问时非常快,但是在顺序查找时非常鸡肋。
B+树的优势:
1、 B+树的磁盘读写代价更低:B+树的内部节点并没有指向关键字具体信息的指针,因此其内部节点相对B树更小,如果把所有同一内部节点的关键字存放在同一盘块中,那么盘块所能容纳的关键字数量也越多,一次性读入内存的需要查找的关键字也就越多,相对IO读写次数就降低了。
2、B+树的查询效率更加稳定:由于非终结点并不是最终指向文件内容的结点,而只是叶子结点中关键字的索引。所以任何关键字的查找必须走一条从根结点到叶子结点的路。所有关键字查询的路径长度相同,导致每一个数据的查询效率相当。
3、由于B+树的数据都存储在叶子结点中,分支结点均为索引,方便扫库,只需要扫一遍叶子结点即可,但是B树因为其分支结点同样存储着数据,我们要找到具体的数据,需要进行一次中序遍历按序来扫,所以B+树更加适合在区间查询的情况,所以通常B+树用于数据库索引。
4、B+树适合范围查找,顺序遍历叶节点即可。而B树在范围查找时比较鸡肋。
10.索引的优点和缺点
索引的缺点:首先,索引需要占用一定的空间,创建和维护索引需要消耗时间;其次对表进行增加删除时索引也要动态维护,降低了维护速度;
索引的优点:
1.大大加快数据的检索速度;
2.创建唯一性索引,保证数据库表中每一行数据的唯一性;
3.加速表和表之间的连接;
4.在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。
11.什么时候应该创建索引,什么时候不应该创建索引
不使用索引的时候
第一,对于那些在查询中很少使用或者参考的列不应该创建索引。
第二,对于那些只有很少数据值种类的列也不应该增加索引。
第三,对于那些数据量要么相当大,要么取值很少的,不应该创建索引。
第四,当修改性能远远大于检索性能时,不应该创建索引。
使用索引的时候
1.主键自动建立唯一索引;
2.频繁作为查询条件的字段应该创建索引;
3.查询中与其他表有关联的字段,例如外键关系;
4.查询中排序的字段创建索引将大大提高排序的速度(索引就是排序加快速查找);
5.查询中统计或者分组的字段;
1.事务的定义和事务的四大特性?
1、原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么全部不执行。 原子性保证了事务的一致性。
2、一致性(Consistency):要求事务执行完成后,将数据库中一个一致性状态变为另一个一致性状态。所谓的一致性状态时指数据库中的数据满足完整性约束,它是一种以一致性规则为基础的逻辑属性。
3、隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。 即使有多个事务并行执行,结果就像每个成功的事务按串行调度执行一样,又叫可串行性,
4、持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障。
2.事务的五种状态?
活动状态、局部提交状态、失败状态、异常终止状态、提交状态
局部提交状态:事务虽然执行完了,但对数据库的修改可能还在缓冲区当中。
失败状态:活动状态的事务还没有执行到最后一个语句,或者局部提交状态的事务遇到了故障。
3.数据不一致的情况?
更新丢失、不可重读、污读
更新丢失:两个事务同时读取了一个数据对象并修改,前一个事务的结果被后一个事务的结果覆盖。
不可重读:事务T1读取数据后,事务T2执行更新操作,T1无法重现前一次的读取结果。包括三种情况:(1)T1读取某数据,T2进行了修改,T1再次读取得到了不同的值。(2)T1读取了某些记录,T2删除了其中的一部分,当T1再以相同的条件读取时,与前一次结果不一致。(3)T1读取某些记录,T2添加了几条记录,当T1再以相同的条件读取时,与前一次结果不一致。
污读:T1修改了数据后,并将它写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,数据回滚。这时T2读取到的数据与数据库中的不一致,T2读的就是脏数据。
4.什么是共享锁和排它锁
排他锁(X):又叫写锁,如果某对象加上排他锁,他就可以对这个数据对象进行读写,而其他的事务不能对这个数据对象加锁。
共享锁(R):读锁。加上这个锁,事务只能对这个对象读取,而不能修改。其他的事务也可对这个对象加上共享锁。
5.描述三级封锁协议
一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。
二级封锁协议:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。2级封锁协议除防止了丢失修改,还可进一步防止读"脏"数据。
三级封锁协议:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。3级封锁协议除防止了丢失修改和不读'脏'数据外,还进一步防止了不可重复读。
6.解释什么是死锁和活锁
活锁:事务在执行过程中有机会获得锁,但却用于无法获得锁。解决方法是先来先服务。
死锁:两个或两个事务等在互相等待状态,他们都等待其中一个事务节解除封锁,否则都无法执行。
7.死锁如何检测和预防
检测:超时法,设置时间,超过则死锁;等待图法,如果图中有回路,这就是死锁。
预防:一次封锁法,事务一次性对要使用的属于对象加锁,不加锁就不能运行;顺序封锁法,预先对数据对象规定一个封锁顺序,所有的事务都按照这个封锁顺序来。
8.什么是事务的可串行化
多个事务并发执行时,当且尽当结果与某一次顺序串行执行的结果相同,称这种调度为可串行化调度。可串行化调度是并行调度正确的唯一准则。
9.描述两段锁协议
协议规定
- 对任何数据读写之前,必须要获得该数据的封锁;
(2)释放了一个锁之后,事务不能再获取其它的封锁。第一阶段只获得锁,第二阶段只释放锁。
两段锁协议可以保证事务的可串行化,是充分条件。
10.什么是隐式封锁和显示封锁
多粒度树中的每个结点都可以被独立的加锁,对这种结点的封锁被称为显式封锁,对一个结点加锁意味着这个结点的所有后裔结点也被加了同样类型的锁,这些后裔结点的封锁方式就是隐式封锁。
11.为什么要引入意向锁
意向锁的含义是 如果对一个结点加意向锁,则说明该结点的下层结点正在被加锁;对任意结点加锁时,必须对它上层结点加意向锁。这样的好处是,要确定某事务是否可以对某结点加锁,不需要搜索整个粒度树,只需要搜索从根到这个结点的路径,看一下要加的锁和路径上的锁是否相容。这样做提高了系统的并发度,减少了加锁和解锁的开销。适用于两种类型事务的混合运行:
- 只存取很少小粒度数据项的短事务;
(2)存取一个或一组完整数据库文件的长事务。
事务T遵循的对多粒度树结点Q的加锁规则:
必须遵循锁相容矩阵;
粒度树的根必须首先被加锁,锁的类型不限;
当Q的父节点被T加上IX或IS时,Q才可以被T加上S或IS型锁。
当Q的父节点被T加上IX或者SIX,Q才可以被T加X、SIX或IS锁。
当T还没有释放任何锁,T才可以对结点加锁
当Q的所有后裔结点都不被T加锁,T才可以解锁Q。
12.插入、删除对并发控制的影响应该如何解决?
在删除一个数据项之前,该数据项必须被加上排它锁。
重点分析insert的影响。两个事务T1 T2,他们要操作同一个对象元组Q
T1执行insert(Q)Q是一个元组。
1、T2执行insert(Q),如果主键冲入则会出错,如果主键设置自增就不会出错
2、T2执行delete(Q),如果T1先于T2执行,就可以成功,否则因为没有输出删除就失败
3、T2执行write(Q),如果T1比T2执行早,可以成功,如果T2先执行则可以修改成功
4、T2执行read(Q),如果T1比T2执行早,可以成功,否则失败
13.什么是插入元组现象?如何解决呢
批注一下:这种现象的出现有个前提,就是只有S锁和R锁,没有使用意向排他锁。
如果有意向排他锁就没有这种现象了。
插入元组现象有点类似于不可重复读的三种现象之一
描述:T1查询整个R的数据,同时T2往R中插入一个元组。会出现两种冲突情况
1、T1使用了T2插入的值,等于先执行T2后执行T1的串行操作
2、T1没有使用T2插入的值
为什么会导致这种现象,因为并发控制协议在元组粒度级别。
解决办法:
1、提高并发控制粒度,将元组级别提高到关系级别。
2、索引锁技术,及每个关系必须加一个索引,任何事务要插入元组到一个关系,它必须要插入信息到关系的索引里。其本质是将插入元组引起的冲突转化为索引数据块引起的冲突。
索引协议规则:
1、一个关系至少一个索引
2、索引数据块加锁后关系才能加锁。
3、没有更新关系R的所有索引,事务T不能向关系R插入数据
4、必须遵循两段锁协议
14.故障的种类和恢复方法
1,事务故障及其恢复:事务故障表示由非预期的、不正常的程序结束所造成的故障。造成程序非正常结束的原因包括输人数据错误、运算溢出、违反存储保护、并行事务发生死锁等。发生事务故障时,被迫中断的事务可能已对数据库进行丁修改,为了消除该事务对数据库的影响,要利用日志文件中所记载的信息,强行回滚该事务,进行undo操作,将数据库恢复到修改前的初始状态。
2、系统故障:系统故障是指系统在运行过程中,由于某种原因,造成系统停止运转,致使所有正在运行的事务都以非正常方式终止,要求系统重新启动。引起系统故障的原因可能有硬件错误(如CPu故障、操作系统)或DBMS代码错误、突然断电等。
系统故障发生后,对数据库的影响有以下两种情况。(1)一些未完成事务对数据库的更新已写入数据库,这样在系统重新启动后,要undo所有未完成的事务末完成事务。(2)有些事务处于部分提交状态,进行redo操作。
3、介质故障:介质故障是指系统在运行过程中,由于辅助存储器介质受到破坏,使存储在外存中的数据部分或全部丢失。恢复时需要装入数据库副本。
15.描述数据转储技术
根据转储时系统状态
1、静态转储;停止数据库中所有事务进行转储操作。
2、动态转储:可以运行事务并转储,但要在转储期间要记录数据活动的日志。恢复时通过日志和副本共同恢复。
根据转储量
1、海量转储,一次性转储全部数据。
2、增量转储,只转储更新过的数据,适用于更新频繁的系统。
16.使用日志的数据库恢复技术
推迟更新技术和即时更新技术
推迟更新技术协议:每个数据到达提交点之前不能更新数据库;一个事务的所有更新操作对应的日志记录写入永恒存储器之前,该事务不能到达提交点。
即时更新技术协议:所有“更新类型”的日志记录安全地存储到永恒存储器之前,事务T不能更新数据库,且不允许事务T提交。
1.为什么范式会出现?
在数据库设计中,不合理的设计会导致数据冗余、更新异常、插入异常、删除异常。这些都是由于不合理的数据依赖导致的,范式理论的出现为了解决不合理的数据依赖,是数据库设计规范化。
2.解释1到4范式和BC范式?
1NF:数据库中的每一列都是不可分割的简单属性。不满足这一条的数据库就不能称为关系型数据库。
2NF:在1NF的基础上,非码属性必须完全依赖于候选码
3NF:在2NF基础上,任何非主属性不依赖于其它非主属性。
BCNF:在1NF的基础上,所有的函数依赖,例如X->Y,决定因素X中都包含了R的一个候选码
4NF:关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。
规范化的过程中:
1NF到2NF消除了非主属性对码的部分函数依赖;
2NF到3NF消除了非主属性对码的传递函数依赖;
3NF到BCNF消除了主属性对码的部分函数依赖和传递函数依赖;
BCNF到4NF消除了非平凡且非函数依赖的多值依赖。
3.如何判断复杂关系模式中的候选码
(1)如果有属性不在函数依赖集中出现,那么它必须包含在候选码中;
(2)如果有属性不在函数依赖集中任何函数依赖的右边出现,那么它必须包含在候选码中;
(3)如果有属性只在函数依赖集的左边出现,则该属性一定包含在候选码中。
(4)如果有属性或属性组能唯一标识元组,则它就是候选码;
4.什么是数据库设计?
是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。
5.数据库设计的几个阶段和目标
1. 需求分析: 分析用户的需求,包括数据、功能和性能需求;生成系统分析报告。
2. 概念结构设计:主要采用E-R模型进行设计,包括画E-R图;生成全局E-R图
(上面两步独立于数据库管理系统)
3. 逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换,进行关系规范化;
4. 数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存储路径;
(上面两步与数据库管理系统相关)
5. 数据库的实施:包括编程、测试和试运行;
6. 数据库运行和维护:系统的运行和数据库的日常维护
6.数据库设计几个主流方法
直观设计法:完全凭直觉。
规范设计法:比较普遍的有新奥尔良法、基于E-R图法、基于3NF范式法,基于抽象语法规范的设计方法。新奥尔良法:比较权威的设计法,它的设计分四个阶段,就是大家耳熟能详的需求分析、概念设计、逻辑设计、物理设计阶段。
计算机辅助设计法:通过人机交互的方式来完成设计的某些过程。
7.什么是弱实体?
弱实体(weak entity)是一种数据库系统术语。其定义为一个实体对于另一个实体(一般为强实体,也可以是依赖于其他强实体的弱实体)具有很强的依赖联系,而且该实体主键的一部分或全部从其强实体(或者对应的弱实体依赖的强实体)中获得,则称该实体为弱实体。
8.概念设计的三种方法?
自顶向下法:首先认定用户关心的实体和实体之间的联系,建立一个初步的概念模型框架,让后对这个全局的E-R图进行细化。
自底向上法;又叫属性综合法,将需求分析说明书中的数据元素作为基本输入,通过对这些元素分析,把他们综合成相应的实体和联系,得到局部E-R图,然后再组合成全局E-R图。
逐步扩张法:先定义最重要的核心概念E-R模型,然后向外扩充。
混合策略:顾名思义。
9.E-R模式合并时发生的三种冲突
1、属性冲突:
属性域冲突:属性值的类型、取值范围不一致。例如学生的学号是用整数还是用字符型表示?
属性取值单位冲突。
2、命名冲突:
同名异义:不同意义的对象在不同的局部采用了相同的名字。
异义同名:通一意义的对象在不同的局部应用中具有不同的名字。
1和2中的冲突靠协商解决。
3、结构冲突:
统一对象在不同的局部有不同的身份。
①一个对象在某个局部作为实体,而在另一个局部成了属性。解决办法,将实体转化为属性或者将属性转化为实体,使同一对象有相同的身份。
②容易对象在不同的局部应用中对应的实体属性组成不完全相同。解决办法,对实体的属性取在不同局部中的并集。
③实体之间的联系在不同的局部应用中具有不同的类型。如在一个局部中是一对一联系,在另一个中是多对多联系。解决办法,根据应用的语义对实体联系的类型进行综合或调整。
10.逻辑设计阶段主要的内容和步骤
将E-R图转化为关系数据模型;
关系模式规范化;
关系模式优化。
11.物理设计的内容和步骤
1、确定数据库的物理结构
2、对所设计的物理结构进行评价
1.描述实时数据库
实时数据库是采用实时数据模型建立起来的数据库,用于处理不断更新的快速变化的数据及具有时间限制的事务处理。实时数据库技术是实时系统和数据库技术相结合的产物,利用数据库技术来解决实时系统中的数据管理问题,同时利用实时技术为实时数据库提供时间驱动调和资源分配算法。主要应用于工业监控,如:电力、石化、化工、钢铁、冶金、造纸、交通控制和证券金融等工业领域的监控。。
2.实时数据库的特点和用途
时间约束:实时数据库是其数据和事务都有明确的时间限制的数据库。在实时系统中,具有时间约束的数据主要是来自于外部的动态数据,以及由这些数据求导出的新的数据。数据库中的数据必须如实反映现场设备的运行情况。
事务调度:实时数据库系统的正确性不仅依赖于事务的逻辑结果,而且依赖于该逻辑结果所产生的时间。事务调度既要考虑事务的执行时间,也要考虑事务的截止期、紧迫程度等因素。
数据存储:实时数据库主要承担系统所有实时数据的存储和管理,为相关的功能提供快速、正确的实时信息。为了达到实时性,实时数据库在系统运行过程中,应常驻内存,以保证读取速度。对于实时性要求不高的数据可存放在外存储空间。因此,在实时数据库设计时,要妥善处理时间与存储空间的矛盾,以保证系统的实时性。
数据在线压缩:在实际的数据存储中,实时数据库还要解决如何高效处理海量数据的问题。如果数据被原封不动地存储势必需要大量内存和磁盘空间以及耗费大量的时间,因此必须对实时数据进行在线压缩存储。
3.解释什么是数据仓库?
从大量的事务型数据库中提取数据,并清洗、转换为新的存储格式,即根据决策目标把数据聚集在一种特殊的格式中,这种支持决策的、特殊的数据存储称为数据仓库。数据仓库的建立决策支持系统的基础。可以采用两层结构,也可以采用三层结构,就是在客户机/服务器模式的基础上,在中间加一个OLAP服务器,这个服务器作为应用服务器,执行数据过滤、聚集。
4.解释名词粒度、聚类、分类、关联规则
粒度: 粒度是指数据仓库的数据单位中保存数据的细化或综合程度的级别。细化程度越高,粒度级就越小;相反,细化程度越低,粒度级就越大。粒度的主要问题是使其处于一个合适的级别,粒度的级别既不能太高也不能太低。低的粒度级别能提供详尽的数据,但要占用较多的存储空间和需要较长的查询时间。高的粒度级别能快速方便的进行查询,但不能提供过细的数据。在选择合适粒度级别的过程中,要结合业务的特点,分析的类型、依据的总的存储空间的等因素综合考虑。
聚类:把数据按照相似性归纳成若干类别,同一类数据彼此相似。与分类方法不同的是聚类没有预先的分类特征,而是根据一定的规则将对象分类,对分类后的对象显式或隐式地描述特征。
分类:找出一个类别的概念描述,让它代表这类数据的整体信息,并用这种描述构造模型,一般用规则和决策树模式表示。
关联规则:它是数据库中存在的一类重要的可被发现的知识。若两个或多个变量的取值之间存在某种规律,就称为关联。
5.数据仓库的特点
1. 主题性
数据仓库是一般从用户实际需求出发,将不同平台的数据源按设定主题进行划分整合,与传统的面向事务的操作型数据库不同,具有较高的抽象性。面向主题的数据组织方式,就是在较高层次对分析对象数据的一个完整、统一并一致的描述,能完整及统一地刻画各个分析对象所涉及的有关企业的各项数据,以及数据之间的联系。
2.集成性
数据仓库中存储的数据大部分来源于传统的数据库,但并不是将原有数据简单的直接导入,而是需
计算机考研复试面试系列 计算机专业英语篇
计算机考研复试面试系列 计算机专业英语篇
在复习过程中,我用心查阅并整理了在考研复试面试中可能问到的大部分问题,并分点整理了答案,可以直接理解背诵并加上自己的语言润色!极力推荐打印下来看,效率更高!
此系列一共有8篇:编程语言篇|数据结构篇|操作系统篇|组成原理篇|计算机网络篇|数据库篇|软件工程篇|计算机专业英语篇(还未全部完成,敬请期待,你们的支持和关注是我最大的动力!)
个人整理,不可用于商业用途,转载请注明出处。
作者各个平台请搜索:程序员宝藏。快来探索属于你的宝藏吧!
需要pdf直接打印版,可在公众号"程序员宝藏"回复复试上岸获取(会持续更新)
需要408电子书2021版,可在公众号"程序员宝藏"回复408电子书获取
需要408初试视频2021版,可在公众号"程序员宝藏"回复408视频获取
需要复试机试视频,可在公众号"程序员宝藏"回复机试必过获取
加油,大家都可以上岸!!!让我们一起努力!!!
- 复试准备这么久了,是不是还对计算机专业英语一筹莫展?
- 想学习但又无从下手?
- 这么多方向(人工智能、大数据、区块链。。。。),还没开始就想放弃?
- 担心口语不好,一面试就紧张?
这些通通不用怕,这篇保姆级的教程就来交你如何破解难题,成功上岸! 请务必认真看下面的图片教程(论文网站在文末,炒鸡良心网站):
- 第一步,检索关键词
- 第二步,按图示操作
- 第三步,选择你想读的点进去
- 第四步,读每篇论文摘要即可,对复试专业英语来说足够了,可以读给别人听,让别人给意见。或者自己录下来自己听!
- 其他的研究方向一样的操作即可,重要的是开始读,请今天看到,今晚就开始读,不要拖延!加油!
- 有什么问题请在公众号“程序员宝藏”留言告诉我。
论文网站链接:http://crad.ict.ac.cn/CN/1000-1239/home.shtml
以上是关于数据库复试面试问题的主要内容,如果未能解决你的问题,请参考以下文章