数据库系统原理简答题汇总,适用于考研复试

1、数据库(DB)、数据库管理系统(DBMS)、数据库系统(DBS)

数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。DBMS是位于用户和操作系统之间的一层数据管理软件,用来管理数据库。数据库系统包括数据库、DBMS/应用程序和数据库管理员。数据库系统与以往的文件系统的不同是实现了数据整体的结构化,数据可共享,数据独立性好。

2、数据模型、两类数据模型

数据模型是对现实世界数据特征的抽象,数据模型是用来描述数据、组织数据和对数据进行操作的。

第一类:概念模型:从用户的角度出发,对数据进行建模。常用E-R模型来描述。

第二类:逻辑模型和物理模型

逻辑模型:从计算机系统的角度出发,对数据进行建模,包括层次模型、网状模型、关系模型、面向对象模型等。

物理模型:面向计算机硬件,描述数据在计算机系统内部的存取方式。

3、逻辑模型(层次模型、网状模型、关系模型)

层次模型是用树形结构来表示实体以及实体之间的关系,如家谱。优点:结构简单清晰,查询效率比较高。缺点:查询子女结点必须通过双亲结点;结点之间有多对多关系时不适用。

网状模型用图结构来表示实体以及实体之间的关系。优点:真实描述现实世界;存取效率较高。缺点:结构复杂。

关系模型就是二维表,实体还是实体间的联系都用关系来表示。数据库就采用这种数据模型来组织数据。优点:数据结构简单、清晰、易用;存取路径对用户透明,从而有更高的数据独立性和安全性。缺点:由于存取路径对用户隐蔽,查询效率相对不高。

4、什么是 E-R 图 

E-R 图:实体-联系图,在概念结构设计中,对需求分析收集到的数据进行分类组织形 成实体、实体的属性,确定实体之间联系,设计 E-R 图。

5、简述关系与关系模式的区别。

关系实质是一张二维表,关系模式是对关系的描述,关系是关系模式在某一时刻的状态 或内容。

关系模式是静态的、稳定的,而关系是动态的,随时间不断变化的,因为关系操作不断 更新数据库中的数据。 通俗的说:关系是一张二维表,关系模式是表格的描述(表头),关系名是表名,元祖 是一行,属性是列,分量一条记录中的一个列值。

6、什么是关系数据库?关系和二维表有什么区别? 

关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法 来处理数据库中的数据。

在关系模型中,数据结构表示为一个二维表,一个关系就是一个二维表(但不是任意一 个二维表都能表示一个关系。表中的第一行通常称为属性名,表中的每一个元组和属性都是 不可再分的,且元组的次序是无关紧要的。

7、数据库系统的三级模式、二级映像

模式:也叫逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是数据库系统模式结构的中间层,即不涉及数据的物理存储细节,也与具体应用程序开发工具语言无关。

外模式:也叫用户模式,是用户能看见和使用的局部数据的逻辑结构和特征描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示,是模式的子集,一个数据库可以有多个外模式,一个应用程序只能使用一个外模式,同一个外模式可以被多个应用程序所使用。每个用户只能看见和访问所对应的外模式中的数据。

内模式:也叫存储模式。一个数据库只有一个内模式。数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。

外模式模式映像:因为同一个模式可以有任意多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系。当模式改变时,由数据库管理员对各个外模式/模式映像作相应的改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序可以不必修改,保证了数据与程序的逻辑独立性。

模式内模式映像:数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的, 它定义了数据库的全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变时,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必修改。保证了数据与程序的物理独立性。

三级模式使用户能逻辑地抽象地处理数据而不关心数据在计算 机内具体表示方式与存储方式,两级映像保证了数据库系统中的 数据有较高的逻辑独立性和物理独立性。

8、关系、笛卡尔积、主码

关系在关系数据库中一般来说就是一张二维表,一个关系对应一张表。

候选码:某一个属性组能唯一标识一个元组,并且子集不能

9、关系的完整性(关系模型的完整性约束)

实体完整性:主码中的属性即主属性不能取空值

参照完整性:一个关系中的外码,或者取空值(若属性组全为空),或者等于它参照的那个关系的主码值。外码:属性(或属性组)F不是关系R1的主属性,且与关系R2的主属性对应,则称F为R1的外码。

用户定义的完整性:用户根据实际需求来对数据进行约束

10、什么叫视图?视图的作用(为什么要用视图)

视图是从一个或几个基本表导出的表,它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,防止数据冗余。所以一旦基本表中的数据发生变化,从视图中查询出的数据也随之改变。视图可以和基本表一样进行增,改,查等操作。

作用:

1.视图能够简化用户的操作,使数据库看起来更简单,清晰,简化查询操作。使用户将注意力集中在所关心的数据上。比如我们要找软件学院的学生名单,就不需要查看整个学校的学生表。

2.视图使用户能以多种角度看待同一数据。比如学生学号这个数据可能在不同的场景都需要查看。

3.视图对重构数据库提供了一定程度的逻辑独立性。因为视图的数据来源与基本表,基本表的数据发生更改,视图的数据也会相应的更改。重构数据库时候,改变视图不用修改程序,使数据具有逻辑独立性。

4.视图能够对机密数据提供安全保护,机密数据不出现在不应该看到这些数据的用户视图上。比如在学生表中可能会有身份证号的信息,使用视图就可以避免用户直接看到学生的身份证号。

11、视图的优缺点

优点: 1)对数据库的访问,因为视图可以有选择性的选取数 据库里的一部分。 2 )用户通过简单的查询可以从复杂查询中得 到结果。 3 )维护数据的独立性,试图可从多个表检索数据。 4 )对于相同的数据可产生不同的视图。 缺点: 性能:查询视 图时,必须把视图的查询转化成对基本表的查询,如果这个视图 是由一个复杂的多表查询所定义,那么就无法更改数据

12、如何保障数据库的安全

首先,数据库管理系统对提出访问数据库的用户进行身份鉴别(比如密码、指纹解锁等)。

然后,在数据库的处理层,进行存取控制,即不同的用户对不同的数据会被设置不同的存取权限,存取数据时会对用户权限进行检查。

可以通过建立视图来隐藏用户不需要看见的数据。

可以添加审计功能。审计功能把用户对数据库的所有操作自动记录下来放入审计日志中,审计员可以利用审计日志来保障数据库的安全。比如,第一天用户输入一次密码就登录了,而第二天却多次输入密码错误,则审计员会认为账号存在安全问题。

数据加密:根据一定的算法将原始数据变换为不可识别的格式,从而使得用户不能直接识别数据的内容。包括数据存储到存储器中加密以及在数据传输过程中加密。

13、数据库完整性

数据库的完整性是指数据的正确、有效、相容。数据的完整性是为了防止数据库中存在不正确的、不符合语义的数据。

14、触发器及其作用

触发器是一种通过事件来触发而被执行的特殊过程。任何用户对表的增、删、改操作均由服务器自动激活相应的触发器。

触发器可以分为语句触发器和行级触发器,触发器动作体是一个匿名 PL/SQL 过程块, 语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。行触发器用户可以用 new 和 old 引用数据,语句级不能。

它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而 该操作又会导致该表触发器被触发。

15、范式

范式:关系数据库中的关系是要满足一定要求的,满足不同程度的要求的为不同范式。

规范化:一个低一级范式关系模式通过模式分解可以转化为若干个高一级范式的关系模式的集合。第一范式到第四范式要求逐渐递增。

第一范式:每一个分量(每一列)必须是一个不可分的数据项。也就是说不允许出现合并单元格。只满足第一范式,会出现数据的插入和删除异常,以及由于数据冗余带来的修改复杂。

第二范式:消除非主属性对候选码的部分函数依赖,使得每一个非主属性完全函数依赖于任何一个候选码。

第三范式:消除非主属性对候选码的传递函数依赖

BC范式:对于一个关系模式,它的每一个函数依赖的决定因素都包含候选码

一般认为,如果一个关系模式属于BC范式,那么他就可以消除插入和删除异常,是一个比较好的关系模式。

16、数据库设计(六个阶段)

需求分析阶段:了解用户的需求

概念结构设计阶段:对收集到的数据进行分类组织形成实体、实体的属性,确定实体之间联系,设计分 E-R 图。逐一 设计分 E-R 图,最后将所有分 E-R 图综合成一个系统的 E-R 图。(ER图:实体用矩形,属性用椭圆,联系用菱形)

逻辑结构设计阶段:一把 E-R 图转换为数据模型,建立基本表、视图等

物理结构设计阶段:为数据模型选择合适的存储结构和存储路径

数据库实施阶段:根据逻辑设计和物理设计的结果建立数据库,编写和调试应用程序,组织数据入库,并进行试运行。

数据库运行和维护阶段:试运行之后投入正式运行,在运行过程中并进行不断的评估、调整和修改

17、什么是存储过程?用什么来调用? 

存储过程是一个预编译的 SQL 语句,存储过程经编译和优化后存储在数据库服务器中。只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次 SQL,使用存储过程比单纯 SQL 语句执行要快。

调用: 1)可以用一个命令对象来调用存储过程。 2) 可以供外部程序调用,比如:java 程序。

18、存储过程的优缺点? 

优点: 1)存储过程是预编译过的,执行效率高。 2)存储过程的代码直接存放于数据库服务器中,通过存储过程名直接调用,减少网络通讯。 3)安全性高,执行存储过程需要有一定权限的用户。 4)易于维护,把相关程序放入存储过程中时,当用户需求发生改变时,只需修改存储过程,无需修改其他应用程序。

缺点:移植性差

19、什么是事,并发控制是保证事的? 

事务:是一个数据库的操作序列,这些操作要么全不做,要么全做,不可分割。事务是数据库恢复和并发控制的基本单位。一个事务可以是一条SQL语句,也可以是多条SQL语句,一个程序通常包含多个事务。运行过程中,若事务发生某种故障不能继续执行,事务中所有已完成的操作全部撤销,全部回滚到开始状态。

并发控制中多个用户存取数据库时候可能会产生多个事物同时存取同一个数据的情况, 不加控制就会破坏事物的一致性,为了保证事物的一致性所以进行并发控制。

20、事务的特性(ACID)

原子性:事务中的操作要么全做,要么全不做

一致性:事务必须始终保持数据库处于一致的状态,也就是说如果事务运行中发生故障,要将所有已完成的操作全部撤销,必须回滚到开始状态,不能让数据不一致

隔离性:一个事务的执行不能被其他事务干扰。

持续性:事务一旦提交,他对数据库的改变就应该是永久的。接下来的操作和故障不应该对刚才结果有任何影响。

21、数据库恢复技术

通过建立冗余数据来恢复数据库数据。

(1)数据转储:数据库管理员定期地将整个数据库复制到磁带或另一个磁盘上保存起来。在数据库遭到破坏后重新装入。

静态转储:在系统中无运行事务时进行转储

动态转储:转储期间允许对数据库进行存取或修改

海量转储:每次转储全部数据库

增量转储:每次转储只转储上次转储后更新的数据

(2)建立日志文件:记录事务对数据库的更新

系统中,这两种方法是一起使用的。

22、数据库镜像

数据库镜像是为了防止介质故障(如磁盘损坏)而设计的。数据库镜像:数据库管理系统自动把整个数据库或其中的关键数据复制到另一个磁盘上,每当主数据库更新时,数据库管理系统自动把更新后的数据复制过去,保证镜像数据与主数据的一致性。

数据库镜像不仅可以备份数据,还可以用于并发操作,为其他应用程序提供服务,达到负载均衡。

23、数据库中锁有什么作用?什么是只读锁、什么是只写锁?

一个事务对数据加锁可以保证事务的四个特性。加锁后其他事务不能更新此数据对象,不会产生数据不一致性。

排他锁(写锁):加写锁其他事务不能在对这个数据加任何类型锁,释放之前不能 读取和修改。

共享锁(读锁):事务对数据加读锁,其他事物可以读但不可以修改,可以加读锁不能加写锁。

24、索引的作用?和它的优点缺点是什么?

索引:创建唯一索引保证数据记录唯一性,可加快数据检索速度, 加速多表之间的连接

索引就一种特殊的查询表,数据库的搜索可以利用它加速对数据 的检索。它很类似与现实生活中书的目录,不需要查询整本书内 容就可以找到想要的数据。索引可以是唯一的,创建索引允许指 定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时 也增加了数据库的尺寸大小。

25、什么样的字段适合建索引

唯一、不为空、经常被查询的字段

26、游标

游标:是对查询出来的结果集作为一个 单元来有效的处理。游标可以定在该单元中的特定行,从结果集 的当前行检索一行或多行。可以对结果集当前行做修改。一般不 使用游标,但是需要逐条处理数据的时候,游标显得十分重要。

27、列举几种表连接方式,有什么区别?

内连接、自连接、外连接(左、右、全)、交叉连接

内连接:只 有两个元素表相匹配的才能在结果集中显示。

外连接:

左外连 接:左边为驱动表,驱动表的数据全部显示,匹配表的不匹配的 不会显示。

右外连接:右边为驱动表,驱动表的数据全部显示, 匹配表的不匹配的不会显示。

全外连接:连接的表中不匹配的 数据全部会显示出来。

交叉连接: 笛卡尔效应,显示的结果是 链接表数的乘积。

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值