经典面试题

目录

常见面试题

1.事务的概念、四大特性

2.数据库的隔离级别

3.死锁

4.关系数据库理论中的几大范式的关系

5.数据库系统的特点

6.完整性约束:实体、参照、用户定义

7.三级模式结构

8.数据库安全控制有哪些

9.数据库层面的约束

10.断言概念

11.触发器概念

12.数据字典的组成

13 .E-R图如何表示的

14.并发控制造成数据不一致,有哪些方面的,如何解决,三级封锁协议是如何解决前面问题的

15.并发控制的冲突操作是指

16.数据库的两极映像

17.视图和索引的概念

18.数据库系统组成、特点


常见面试题

1.事务的概念、四大特性

事务是一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致状态变到另一种一致性状态。
事务是逻辑上的一组操作,要么都执行,要么都不执行。

事务的特性:
1.原子性
事务是数据库逻辑的工作单元,事务包括的所有操作,要么都做,要么都不做。
2.一致性
事务执行的结果是使数据库从一个一致性状态变成另一个一致性状态。一致性与原子性是密切相关的。
3.隔离性
一个事务的执行不能被其他事务干扰。
4.持久性
一个事务一旦提交,它对数据库中数据的改变应该是永久性的。

2.数据库的隔离级别

1.读未提交(Read uncommitted):

这种事务隔离级别下,select语句不加锁。

此时,可能读取到不一致的数据,即“读脏 ”。这是并发最高,一致性最差的隔离级别。

2.读已提交(Read committed):

可避免 脏读 的发生。

在互联网大数据量,高并发量的场景下,几乎 不会使用 上述两种隔离级别。

3.可重复读(Repeatable read):

MySql默认隔离级别。

可避免 脏读 、不可重复读 的发生。

4.串行化(Serializable ):

可避免 脏读、不可重复读、幻读 的发生。

3.死锁

所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。 因此我们举个例子来描述,如果此时有一个线程A,按照先锁a再获得锁b的的顺序获得锁,而在此同时又有另外一个线程B,按照先锁b再锁a的顺序获得锁。

4.关系数据库理论中的几大范式的关系

第一范式
如果关系模式R,其所有的属性均为简单的、不可再分的,则称R属于第一范式。

第二范式
在关系模式满足1NF的基础上,且每个非主属性都完全函数依赖于R的码,则称R属于第二范式

第三范式
在满足第二范式的基础上,如果关系模式R的每个非主属性都不传递依赖于R的码,则称R属于第三范式。

5.数据库系统的特点

1.数据结构化
2.数据的共享性高,冗余度低,易扩充
3.数据独立性高
4.数据由DBMS统一管理和控制

6.完整性约束:实体、参照、用户定义

要想了解这三类完整性约束首先要了解什么是数据完整性。数据完整性是指数据库中存储的数据是有意义的或正确的,和现实世界相符。关系模型中三类完整性约束:
– 实体完整性(Entity Integrity)
– 参照完整性(Referential Integrity)
– 用户定义的完整性(User-defined Integrity) •
实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持

实体完整性
保证关系中的每个元组都是可识别的和惟一的 • 指关系数据库中所有的表都必须有主键,而且表中不允
许存在如下记录:
– 无主键值的记录
– 主键值相同的记录
• 原因:实体必须可区分

参照完整性
也称为引用完整性
• 现实世界中的实体之间往往存在着某种联系,在关系模型中,实体以及实体之间的联系都是用关系来表示的,这样就自然存在着关系与关系之间的引用
• 参照完整性就是描述实体之间的联系的
• 参照完整性一般是指多个实体或关系之间的关联关系
此完整性涉及到了外键:
• 参照完整性规则就是定义外键与被参照的主键之间的引用规则
• 外键一般应符合如下要求:
– 或者值为空
– 或者等于其所参照的关系中的某个元组的主键值

用户定义完整性
• 也称为域完整性或语义完整性
• 是针对某一具体应用领域定义的数据约束条件
• 反映某一具体应用所涉及的数据必须满足应用语义的要求
• 实际上就是指明关系中属性的取值范围,防止属性的值与应用语义矛盾
• 关系模型应提供定义和检验这类完整性的机制,以便用统一的系统方法处理它们,而不要由应用程序承担这一功能

7.三级模式结构

三级模式结构:外模式、模式和内模式
一、模式(Schema)
定义:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
理解:
① 一个数据库只有一个模式;
② 是数据库数据在逻辑级上的视图;
③ 数据库模式以某一种数据模型为基础;
④ 定义模式时不仅要定义数据的逻辑结构(如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。
二、外模式(External Schema)
定义:也称子模式(Subschema)或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
理解:
① 一个数据库可以有多个外模式;
② 外模式就是用户视图;
③ 外模式是保证数据安全性的一个有力措施。
三、内模式(Internal Schema)
定义:也称存储模式(Storage Schema),它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式(例如,记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定)。
理解:
① 一个数据库只有一个内模式;
② 一个表可能由多个文件组成,如:数据文件、索引文件。
它是数据库管理系统(DBMS)对数据库中数据进行有效组织和管理的方法
其目的有:
① 为了减少数据冗余,实现数据共享;
② 为了提高存取效率,改善性能。

8.数据库安全控制有哪些

(1)用户标识和鉴别:

该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才能提供系统的使用权

(2)存取控制

通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未授权的人员无法存取数据

(3)视图机制

为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。

(4)审计

建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人,时间和内容等。

(5)数据加密

对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。

9.数据库层面的约束

1、添加主键约束(将UserId作为主键)
alter table UserId
add constraint PK_UserId primary key (UserId)

2、添加唯一约束(身份证号唯一,因为每个人的都不一样)
alter table UserInfo
add constraint UQ_IDNumber unique(IdentityCardNumber)

3、添加默认约束(如果地址不填 默认为“地址不详”)
alter table UserInfo
add constraint DF_UserAddress default (‘地址不详’) for UserAddress

4、添加检查约束 (对年龄加以限定 20-40岁之间)
alter table UserInfo
add constraint CK_UserAge check (UserAge between 20 and 40)
alter table UserInfo
add constraint CK_UserSex check (UserSex=’男’ or UserSex=’女′)

5、添加外键约束 (主表UserInfo和从表UserOrder建立关系,关联字段UserId)
alter table UserOrder
add constraint FK_UserId_UserId foreign key(UserId)references UserInfo(UserId)

10.断言概念

断言(assertion)是一种在程序中的一阶逻辑(如:一个结果为真或假的逻辑判断式),目的为了表示与验证软件开发者预期的结果——当程序执行到断言的位置时,对应的断言应该为真。若断言不为真时,程序会中止执行,并给出错误信息。

11.触发器概念

触发器的概念及作用
触发器是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如UPDATE、 INSERT、 DELETE 这些操作时,SQL Server 就会自动执行触发器所定义的SQL 语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。
触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。除此之外,触发器还有其它许多不同的功能:
(1) 强化约束(Enforce restriction)
触发器能够实现比CHECK 语句更为复杂的约束。

(2) 跟踪变化Auditing changes
触发器可以侦测数据库内的操作,从而不允许数据库中未经许可的指定更新和变化。

(3) 级联运行(Cascaded operation)。
触发器可以侦测数据库内的操作,并自动地级联影响整个数据库的各项内容。例如,某个表上的触发器中包含有对另外一个表的数据操作(如删除,更新,插入)而该操作又导致该表上触发器被触发。
(4) 存储过程的调用(Stored procedure invocation)。
为了响应数据库更新触,发器可以调用一个或多个存储过程,甚至可以通过外部过程的调用而在DBMS( 数据库管理系统)本身之外进行操作。

12.数据字典的组成

数据字典存储有关数据的来源、说明、与其他数据的关系、用途和格式等信息,它本身就是一个数据库,存储“关于数据项的数据”。
1)数据项
2)数据结构
3)数据流
4)数据存储
5)处理过程

13 .E-R图如何表示的

矩形框:表示实体,在框中记入实体名。

菱形框:表示联系,在框中记入联系名。

椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一下划线。

连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。(对于一对一联系,要在两个实体连线方向各写1; 对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。)

14.并发控制造成数据不一致,有哪些方面的,如何解决,三级封锁协议是如何解决前面问题的

(1) 一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。一级封锁协议能够解决“丢失修改”问题。 

 (2) 二级封锁协议是:一级封锁协议加上事务在读取数据R之前必须先对其加S锁 ,读完后即可释放S锁。二级封锁不仅可以解决“丢失修改”问题,而且可以解决读“脏“数据问题。 

 (3) 三级封锁协议是:一级封锁协议加上事务在读取数据R之前必须先对其加S锁,直到事务结束才释放。三级封锁协议不仅解决了“丢失修改”、读“脏”数据问题,而且进一步解决了“不可重复读”问题。

15.并发控制的冲突操作是指

是指不同的事务对同一数据的读写操作和写写操作:

16.数据库的两极映像

数据库三级模式分别是外模式,概念模式,内模式。

数据库的两层映射
1.外模式/模式映射
对于同一个模式可以有任意多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映射。当模式被改变时,数据库管理员对各个外模式/模式映射做相应的改变,可以使外模式保持不变。这样,依据数据外模式编写的应用程序就不用修改,保证了数据与程序的逻辑独立性。

总结:外模式/模式映射保证了当模式改变时,外模式不用变,即逻辑独立性。

2.模式/内模式映射
数据库中只有一个模式和一个内模式,所以模式/内模式的映射是唯一的,它定义了数据库的全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构被改变时,数据库管理员对模式/内模式映射做相应的改变,可以使模式保持不变,应用程序相应地也不做变动。这样,保证了数据与程序的物理独立性。

总结:模式/内模式映射保证了当内模式改变时,模式不用变,即物理独立性。

17.视图和索引的概念

什么是视图:
视图是从一个或多个表中导出来的表,是一种不是一种真正存在的概念。
视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据。这样,用户可以不用看到整个数据库中的数据,而之关心对自己有用的数据。
数据库中只存放了视图的定义,而没有存放视图中的数据,这些数据存放在原来的表中。
使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。
视图中的数据依赖于原来表中的数据,一旦表中数据发生改变,显示在视图中的数据也会发生改变。


索引可以理解为是一本书的目录,它记录了数据在数据库中存放的位置,就像一本书的目录,记录了,某一页在这本书的那个位置。相同地, 索引是一个单独的、存储在磁盘上的数据库结构,它们包含着对数据库表里所有记录的引用指针。

18.数据库系统组成、特点

数据库系统的特点
1.数据结构化
2.数据的共享性高,冗余度低,易扩充
3.数据独立性高
4.数据由DBMS统一管理和控制


数据库系统由4个部分组成:

1、数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。

2、硬件:构成计算机系统的各种物理设备,包括存储所需的外部设备。硬件的配置应满足整个数据库系统的需要。

3、软件:包括操作系统、数据库管理系统及应用程序。其主要功能包括:数据定义功能、数据操纵功能、数据库的运行管理和数据库的建立与维护。

4、人员:主要有4类。第一类为系统分析员和数据库设计人员;第二类为应用程序员,负责编写使用数据库的应用程序。;第三类为最终用户,他们利用系统的接口或查询语言访问数据库。第四类用户是数据库管理员(data base administrator,DBA),负责数据库的总体信息控制。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迟意..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值