山科大数据库试题3详解

选择题

1、一个实体转换为一个关系模式。关系的码为?

entity的key

试题1详解中详细总结了entity变relation以及relationship变relation时key的问题

2、元组关系演算表达式,{t|R(t)^S(t)}表达的是

S-R

转换为S非R,即S-R

3、为保护数据库中的信息,防止未经授权或非法的使用所造成的数据泄露、更改和破坏,称为数据库的

安全性

4、一台机器可以加工多个零件,一个零件可以在多台机器上加工,则机器和零件的为xx的联系

多对多

5、关系数据模型的三个组成部分不包括

恢复

详细的三个组成部分在试题2中

6、xx是数据库物理结构和存储方式的描述

内模式

试题1中给出了详细解释

7、若关系模式R(U,F)属于3NF,则

试题1原题,不再解释,总结一下几个NF的特点

  • 1NF:简单说就是列不可再分,比如name这个列,可以分成first name和last name

  • 2NF:非primary key与primary key必须为完全函数依赖,可以通过projection将部分函数依赖的attr和其依赖的attr做一个新表,举个栗子

(cno、sno)为primary key,(cno,sno)—>Ggrade,Sno—>Sdept,(Sno,Cno)—>Sloc,Sdept—>Sloc

上面的栗子中很显然Sdept只由Sno决定,只是(cno,Sno)这个primary key的一部分,另外Sloc也同样存在问题,Sdept—>Sloc,而Sno—>Sdept,所以Sno就可以决定Sdept了,很显然不符合2NF。

而且该relation还存在很多问题,比如当我们插入tuple时,可能学生还没有选课,所以cno为null,但实际上学生的其他信息都有了,却不能插入该表。

我们可以通过projection的方式将该relation拆分,将非primary key部分拆出来,Ggrade完全依赖于primary key所以不用处理,而Sloc和Sdept部分函数依赖primary key,我们就把他们和依赖的那个attr拆出来做成一张新表SDL(sno,sdept,sloc)

  • 3NF:简单一句话,在2NF的基础上,非primary key必须直接依赖于primary key,不能通过传递的方式实现。而2NF又要求非primary key必须依赖primary key,所以可以简单的理解为,在满足2NF的情况下,3NF就是非primary key之间不能存在依赖。

还是以上面的栗子,我们拆分出来的SDL中,sdept—>sloc,而primary key为sno,显然不满足3NF,所以我们需要再拆成两个表,DL(sdept,Sloc)和SD(sno,sdept)

  • BCNF:不存在key之间相互依赖

比如一家仓库,仓库有技术负责,技术负责可以确定是哪个仓库号,而仓库号也可以确定是哪个技术负责,仓库号可以决定商品号,仓库号是primary key,而技术负责其实也是candidate key。

可以看到relation是满足3NF的,但是由于技术负责和仓库号的关系,不是BCNF

从这些栗子中也可以看到NF等级越高,往往就需要把relation拆的越惨,而当我们进行查询时,还需要将表进行连接消耗资源,而实际上现在磁盘空间成本降低,所以有一定的数据冗余比起连接的资源消耗更让人可以接受,所以NF等级并不是越高越好

8、概念结构设计阶段得到的结果是

ER图

试题2中详细给出了6个阶段

9、并发操作会带来哪些数据不一致性

丢失修改、不可重复读、读脏数据

10、DBMS中实现事务持久性的子系统是?

恢复管理子系统

在试题1中对几种子系统进行了说明

名词解释

数据库

长期存储在计算机内的、有组织的、可共享的数据结构

参照完整性

之前详细说过了,就是foreign key不是null就是它所reference的primary key所在relation中的值

事务

用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位

封锁

事务T在对某个数据对象操作之前,先像系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他的事务不能更新此数据对象。

MAC

强制存储控制。

每个数据对象被标以一定的密级,每一个用户也被授予某一个级别的许可证,对于任意一个对象,只有具有合法许可证的用户才可以存取。

简答题

1、什么是数据库系统的三级模式结构?这种结构的优点是什么?