数据库面试基础知识总结Word格式文档下载.docx

上传人:b****1 文档编号:4555016 上传时间:2023-05-03 格式:DOCX 页数:27 大小:110.48KB
下载 相关 举报
数据库面试基础知识总结Word格式文档下载.docx_第1页
第1页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第2页
第2页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第3页
第3页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第4页
第4页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第5页
第5页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第6页
第6页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第7页
第7页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第8页
第8页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第9页
第9页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第10页
第10页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第11页
第11页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第12页
第12页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第13页
第13页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第14页
第14页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第15页
第15页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第16页
第16页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第17页
第17页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第18页
第18页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第19页
第19页 / 共27页
数据库面试基础知识总结Word格式文档下载.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据库面试基础知识总结Word格式文档下载.docx

《数据库面试基础知识总结Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据库面试基础知识总结Word格式文档下载.docx(27页珍藏版)》请在冰点文库上搜索。

数据库面试基础知识总结Word格式文档下载.docx

//建表

CREATEVIEWview_nameAS

Select*FROMTable_name;

//建视图

CreateUNIQUEINDEXindex_nameONTableName(col_name);

//建索引

INSERTINTOtablename{column1,column2,…}values(exp1,exp2,…);

//插入

INSERTINTOViewname{column1,column2,…}values(exp1,exp2,…);

//插入视图实际影响表

UPDATEtablenameSETname=’zang3’condition;

//更新数据

DELETEFROMTablenameWHEREcondition;

//删除

GRANT(Select,delete,…)ON(对象)TOUSER_NAME[WITHGRANTOPTION];

//授权

REVOKE(权限表)ON(对象)FROMUSER_NAME[WITHREVOKEOPTION]//撤权

列出工作人员及其领导的名字:

SelectE.NAME,S.NAMEFROMEMPLOYEEES

WHEREE.SUPERName=S.Name

4.视图

计算机数据库中的视图是一个虚拟表,其内容由查询定义。

同真实的表一样,视图包含一系列带有名称的列和行数据。

但是,视图并不在数据库中以存储的数据值集形式存在。

行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。

从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表。

从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。

5.完整性约束:

实体完整性、参照完整性、用户定义完整性

定义:

关系完整性是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。

完整性通常包括域完整性,实体完整性、参照完整性和用户定义完整性,其中域完整性,实体完整性和参照完整性,是关系模型必须满足的完整性约束条件。

(1).域完整性约束:

域完整性是保证数据库字段取值的合理性。

 

  属性值应是域中的值,这是关系模式规定了的。

除此之外,一个属性能否为NULL,这是由语义决定的,也是域完整性约束的主要内容。

域完整性约束是最简单、最基本的约束。

在当今的关系DBMS中,一般都有域完整性约束检查功能。

  包括检查(CHECK)、默认值(DEFAULT)、不为空(NOTNULL)等。

(2).实体完整性

  实体完整性是指关系的主关键字不能重复也不能取“空值\"

  一个关系对应现实世界中一个实体集。

现实世界中的实体是可以相互区分、识别的,也即它们应具有某种惟一性标识。

在关系模式中,以主关键字作为惟一性标识,而主关键字中的属性(称为主属性)不能取空值,否则,表明关系模式中存在着不可标识的实体(因空值是“不确定\"

的),这与现实世界的实际情况相矛盾,这样的实体就不是一个完整实体。

按实体完整性规则要求,主属性不得取空值,如主关键字是多个属性的组合,则所有主属性均不得取空值。

  如表1.1将编号作为主关键字,那么,该列不得有空值,否则无法对应某个具体的职工,这样的表格不完整,对应关系不符合实体完整性规则的约束条件。

(3).参照完整性

  参照完整性是定义建立关系之间联系的主关键字与外部关键字引用的约束条件。

  关系数据库中通常都包含多个存在相互联系的关系,关系与关系之间的联系是通过公共属性来实现的。

所谓公共属性,它是一个关系R(称为被参照关系或目标关系)的主关键字,同时又是另一关系K(称为参照关系)的外部关键字。

如果参照关系K中外部关键字的取值,要么与被参照关系R中某元组主关键字的值相同,要么取空值,那么,在这两个关系间建立关联的主关键字和外部关键字引用,符合参照完整性规则要求。

如果参照关系K的外部关键字也是其主关键字,根据实体完整性要求,主关键字不得取空值,因此,参照关系K外部关键字的取值实际上只能取相应被参照关系R中已经存在的主关键字值。

  在学生管理数据库中,如果将选课表作为参照关系,学生表作为被参照关系,以“学号\"

作为两个关系进行关联的属性,则“学号\”是学生关系的主关键字,是选课关系的外部关键字。

选课关系通过外部关键字“学号’’参照学生关系。

(4).用户定义完整性

实体完整性和参照完整性适用于任何关系型数据库系统,它主要是针对关系的主关键字和外部关键字取值必须有效而做出的约束。

用户定义完整性则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。

这一约束机制一般不应由应用程序提供,而应有由关系模型提供定义并检验,用户定义完整性主要包括字段有效性约束和记录有效性。

6.第三范式:

(1).第一范式(1NF):

在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系。

例:

如职工号,姓名,电话号码组成一个表(一个人可能有一个办公室电话和一个家里电话号码)规范成为1NF有三种方法:

一是重复存储职工号和姓名。

这样,关键字只能是电话号码。

二是职工号为关键字,电话号码分为单位电话和住宅电话两个属性

三是职工号为关键字,但强制每条记录只能有一个电话号码。

以上三个方法,第一种方法最不可取,按实际情况选取后两种情况。

(2).第二范式(2NF):

如果关系模式R(U,F)中的所有非主属性都完全依赖于任意一个候选关键字,则称关系R是属于第二范式的。

选课关系SCI(SNO,CNO,GRADE,CREDIT)其中SNO为学号,CNO为课程号,GRADEGE为成绩,CREDIT为学分。

由以上条件,关键字为组合关键字(SNO,CNO)

在应用中使用以上关系模式有以下问题:

a.数据冗余,假设同一门课由40个学生选修,学分就重复40次。

b.更新异常,若调整了某课程的学分,相应的元组CREDIT值都要更新,有可能会出现同一门课学分不同。

c.插入异常,如计划开新课,由于没人选修,没有学号关键字,只能等有人选修才能把课程和学分存入。

d.删除异常,若学生已经结业,从当前数据库删除选修记录。

某些门课程新生尚未选修,则此门课程及学分记录无法保存。

原因:

非关键字属性CREDIT仅函数依赖于CNO,也就是CREDIT部分依赖组合关键字(SNO,CNO)而不是完全依赖。

解决方法:

分成两个关系模式SC1(SNO,CNO,GRADE),C2(CNO,CREDIT)。

新关系包括两个关系模式,它们之间通过SC1中的外关键字CNO相联系,需要时再进行自然联接,恢复了原来的关系

(3).第三范式(3NF):

如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系R是属于第三范式的。

如S1(SNO,SNAME,DNO,DNAME,LOCATION)各属性分别代表学号,

姓名,所在系,系名称,系地址。

关键字SNO决定各个属性。

由于是单个关键字,没有部分依赖的问题,肯定是2NF。

但这关系肯定有大量的冗余,有关学生所在的几个属性DNO,DNAME,LOCATION将重复存储,插入,删除和修改时也将产生类似以上例的情况。

关系中存在传递依赖造成的。

即SNO->

DNO。

而DNO->

SNO却不存在,DNO->

LOCATION,因此关键辽SNO对LOCATION函数决定是通过传递依赖SNO->

LOCATION实现的。

也就是说,SNO不直接决定非主属性LOCATION。

解决目地:

每个关系模式中不能留有传递依赖。

分为两个关系S(SNO,SNAME,DNO),D(DNO,DNAME,LOCATION)

注意:

关系S中不能没有外关键字DNO。

否则两个关系之间失去联系。

7.ER(实体/联系)模型

实体-关系模型是面向现实世界,而不是面向实现方法的,它主要是用于描述现实信息世界中数据的静态特性,而不涉及数据的处理过程。

基本概念:

实体:

现实世界中任何可以相互区分的事物。

解释:

实体可以是人,也可以是物;

可以指实际的对象,也可以指某些概念。

例如,一个职工、一个学生、一门课,学生的一些选课。

属性:

实体(或联系)所具有的某方面特征(相当于数据库表的字段(列)。

例如:

学生实体,可由学号、姓名、性别、年龄、系、年级。

(9673101,王平,男,22,计算机系,三年级)这些属性组合起来就表现了一个学生的情况。

(相当于记录,特性为字段)。

联系:

发生在实体之间具有特定含义的对应关系

PS:

实体、属性一般是名词,联系一般是动词

ER图中的四个基本成分:

1.矩形框,表示实体

2.菱形框,表示实体之间的联系

3.椭圆形框,表示实体或联系的属性

4.直线,连接实体、属性、和联系。

直线端部标注联系的种类(1:

1、1:

N或M:

N)

连个实体(或表)之间的联系分为三类:

(1).一对一联系(1:

1)如果实体集合A中的每一个实体,实体集合B中至少都一个实体与之联系,反之亦然,则称为实体集合A与实体集合B具有一对一联系,记为1:

1。

例如,一个班级有一个班长。

(2).一对多联系(1:

n)如果实体集合A中的每一个实体,实体集合B中至少都n(n>

=0)个实体与之联系,反之,对于实体集合B中每一个实体,实体集合A中的至多有一个实体与之联系,则称为实体集合A与实体集合B具有一对多联系,记为1:

n。

例如,一个班级有多个班干部。

(3).多对多联系(m:

n)如果实体集合A中的每一个实体,实体集合B中至少有n(n>

=0)个实体与之联系,反之,对于实体集合B中每一个实体,实体集合A中的至少有m(m>

=0)个实体与之联系,则称为实体集合A与实体集合B具有多对多联系,记为m:

例如,一个学生可以选修多门课,一门课可以有多个学生选修。

8.索引的作用

可以利用索引快速访问数据库表中的特定信息。

索引是对数据库表中一个或多个列(例如,employee表的姓氏(lname)列)的值进行排序的结构。

如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。

索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。

数据库使用索引的方式与使用书的目录很相似:

通过搜索索引找到特定的值,然后跟随指针到达包含该值的行。

在数据库关系图中,可以为选定的表创建、编辑或删除索引/键属性页中的每个索引类型。

当保存附加在此索引上的表或包含此表的数据库关系图时,索引同时被保存。

有关详细信息,请参见创建索引。

通常情况下,只有当经常查询索引列中的数据时,才需要在表上创建索引。

索引将占用磁盘空间,并且降低添加、删除和更新行的速度。

不过在多数情况下,索引所带来的数据检索速度的优势大大超过它的不足之处。

然而,如果应用程序非常频繁地更新数据,或磁盘空间有限,那么最好限制索引的数量。

 

在创建索引前,必须确定要使用的列和要创建的索引类型。

9.事务

数据库事务(DatabaseTransaction),是指作为单个逻辑工作单元执行的一系列操作。

事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。

通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。

一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。

数据库事务的ACID特性

(1).原子性(atomic)(atomicity)

  事务必须是原子工作单元;

对于其数据修改,要么全都执行,要么全都不执行。

通常,与某个事务关联的操作具有共同的目标,并且是相互依赖的。

如果系统只执行这些操作的一个子集,则可能会破坏事务的总体目标。

原子性消除了系统处理操作子集的可能性。

(2).一致性(consistent)(consistency)

  事务在完成时,必须使所有的数据都保持一致状态。

在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。

事务结束时,所有的内部数据结构(如B树索引或双向链表)都必须是正确的。

某些维护一致性的责任由应用程序开发人员承担,他们必须确保应用程序已强制所有已知的完整性约束。

例如,当开发用于转帐的应用程序时,应避免在转帐过程中任意移动小数点。

(3).隔离性(insulation)(isolation)

  由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。

事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。

这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。

当事务可序列化时将获得最高的隔离级别。

在此级别上,从一组可并行执行的事务获得的结果与通过连续运行每个事务所获得的结果相同。

由于高度隔离会限制可并行执行的事务数,所以一些应用程序降低隔离级别以换取更大的吞吐量。

防止数据丢失

(4).持久性(Duration)(durability)

  事务完成之后,它对于系统的影响是永久性的。

该修改即使出现致命的系统故障也将一直保持。

10.数据库中的锁

在数据库中引入锁的原因:

多个用户同时对数据库的并发操作时会带来以下数据不一致的问题:

(1).丢失更新:

A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统。

(2).脏读:

A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致。

(3).不可重复读:

A用户读取数据,随后B用户读出该数据并修改,此时A用户再读取数据时发现前后两次的值不一致。

并发控制的主要方法是封锁,锁就是在一段时间内禁止用户做某些操作以避免产生数据不一致。

在数据库中主要使用两种锁:

(1).共享锁

共享(S)锁允许并发事务读取(SELECT)一个资源。

资源上存在共享(S)锁时,任何其它事务都不能修改数据。

一旦已经读取数据,便立即释放资源上的共享(S)锁,除非将事务隔离级别设置为可重复读或更高级别,或者在事务生存周期内用锁定提示保留共享(S)锁。

(2).排它锁

排它(X)锁可以防止并发事务对资源进行访问。

其它事务不能读取或修改排它(X)锁锁定的数据。

锁的粒度

锁粒度是被封锁目标的大小,封锁粒度小则并发性高,但开销大,封锁粒度大则并发性低但开销小。

两段锁协议

所谓两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁:

  1.在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁,而且

  2.在释放一个封锁之后,事务不再申请和获得任何其他封锁。

  所谓“两段”锁的含义是,事务分为两个阶段,第一阶段是获得封锁,也称为扩展阶段。

在这阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁。

第二阶段是释放封锁,也称为收缩阶段。

在这阶段,事务可以释放任何数据项上的任何类型的锁,但是不能再申请任何锁。

  例如事务T1遵守两段锁协议,其封锁序列是:

(如右)

  又如事务T2不遵守两段锁协议,其封锁序列是:

  SlockA…UnlockA…SlockB…XlockC…UnlockC…UnlockB;

  可以证明,若并发执行的所有事务均遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的。

  另外要注意两段锁协议和防止死锁的一次封锁法的异同之处。

一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行,因此一次封锁法遵守两段锁协议;

但是两段锁协议并不要求事务必须一次将所有要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁。

11.死锁及处理

所谓死锁:

是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。

此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。

由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。

产生死锁的原因

1.竞争资源引起进程死锁

  当系统中供多个进程共享的资源如打印机、公用队列的等,其数目不足以满足诸进程的需要时,会引起诸进程对资源的竞争而产生死锁。

  

(1).可剥夺资源和不可剥夺资源

  系统中的资源可以分为两类,一类是可剥夺资源,是指某进程在获得这类资源后,该资源可以再被其他进程或系统剥夺。

例如,优先权高的进程可以剥夺优先权低的进程的处理机。

又如,内存区可由存储器管理程序,把一个进程从一个存储区移到另一个存储区,此即剥夺了该进程原来占有的存储区,甚至可将一进程从内存调到外存上,可见,CPU和主存均属于可剥夺性资源。

另一类资源是不可剥夺资源,当系统把这类资源分配给某进程后,再不能强行收回,只能在进程用完后自行释放,如磁带机、打印机等。

  

(2).竞争不可剥夺资源

  在系统中所配置的不可剥夺资源,由于它们的数量不能满足诸进程运行的需要,会使进程在运行过程中,因争夺这些资源而陷于僵局。

例如,系统中只有一台打印机R1和一台磁带机R2,可供进程P1和P2共享。

假定PI已占用了打印机R1,P2已占用了磁带机R2,若P2继续要求打印机R1,P2将阻塞;

P1若又要求磁带机,P1也将阻塞。

于是,在P1和P2之间就形成了僵局,两个进程都在等待对方释放自己所需要的资源,但是它们又都因不能继续获得自己所需要的资源而不能继续推进,从而也不能释放自己所占有的资源,以致进入死锁状态。

  (3).竞争临时资源

  上面所说的打印机资源属于可顺序重复使用型资源,称为永久资源。

还有一种所谓的临时资源,这是指由一个进程产生,被另一个进程使用,短时间后便无用的资源,故也称为消耗性资源,如硬件中断、信号、消息、缓冲区内的消息等,它也可能引起死锁。

例如,SI,S2,S3是临时性资源,进程P1产生消息S1,又要求从P3接收消息S3;

进程P3产生消息S3,又要求从进程P2处接收消息S2;

进程P2产生消息S2,又要求从P1处接收产生的消息S1。

如果消息通信按如下顺序进行:

  P1:

·

·

Relese(S1);

Request(S3);

  P2:

Relese(S2);

Request(S1);

  P3:

Relese(S3);

Request(S2);

  并不可能发生死锁。

但若改成下述的运行顺序:

  则可能发生死锁。

2.进程推进顺序不当引起死锁

  由于进程在运行中具有异步性特征,这可能使P1和P2两个进程按下述两种顺序向前推进。

  

(1)进程推进顺序合法

  当进程P1和P2并发执行时,如果按照下述顺序推进:

P1:

Request(R1);

P1:

Request(R2);

P1:

Relese(R1);

P1:

Relese(R2);

P2:

P2:

P2:

这两个进程便可顺利完成,这种不会引起进程死锁的推进顺序是合法的。

  

(2)进程推进顺序非法

  若P1保持了资源R1,P2保持了资源R2,系统处于不安全状态,因为这两个进程再向前推进,便可能发生死锁。

例如,当P1运行到P1:

Request(R2)时,将因R2已被P2占用而阻塞;

当P2运行到P2:

Request(R1)时,也将因R1已被P1占用而阻塞,于是发生进程死锁。

编辑本段产生死锁的必要条件

  虽然进程在运行过程中,可能发生死锁,但死锁的发生也必须具备一定的条件,死锁的发生必须具备以下四个必要条件:

  

(1)互斥条件:

指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。

如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。

  

(2)请求和保持条件:

指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。

  (3)不剥夺条件:

指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。

  (4)环路等待条件:

指在发生死锁时,必然存在一个进程——资源的环形链,即进程集合{P0,P1,P2,·

,Pn}中的P0正在等待一个P1占用的资源;

P1正在等待P2占用的资源,……,Pn正在等待已被P0占用的资源。

处理死锁的基本方法

  在系统中已经出现死锁后,应该及时检测到死锁的发生,并采取适当的措施来解除死锁。

目前处理死锁的方法可归结为以下四种:

  (

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2