数据库系统概论课后习题选做2

第六章

1.理解并给出下列术语的定义:

函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、超码、主码、外码、全码、1NF、2NF、3NF、BCNF、多值依赖、4NF。

函数依赖:设R(U)是属性集U上的关系模式,X、Y是U的子集。若对R(U)的任何一个可能的关系r, r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数决定Y或Y函数依赖于X,记作X→Y。

部分函数依赖:若某关系模式的主键是(A,B),其中的一个属性C存在A→C,则称C对主键部分函数依赖

完全函数依赖:若某关系模式的主键是(A,B),当且仅当(A,B)→C,则称C对主键完全函数依赖

传递依赖:A→B,B→C,则称C对A传递函数依赖,记作A→→C

候选码:属性或属性组合,其值能够唯一地标识一个元组。

超码:可以唯一标识一组实体的码,候选码是他的子集。

主码:从候选码中选取的一个码作为主码

外码:其他表的主码称为外码

全码:全部属性构成一个候选码,就叫做全码

1NF:不存在不可分割的数据项

2NF:在1NF的基础上消除了非主属性对主属性的部分函数依赖

3NF:在2NF的基础上消除了非主属性对主属性的传递函数依赖

BCNF:在3NF的基础上消除了主属性对码的部分和传递函数依赖

4NF:在BCNF的基础上消除非平凡且非函数依赖的多值依赖

2.建立一个关于系、学生、班级、学会等诸信息的关系数据库……

如下图:(暂时认为不存在重名,若存在重名,姓名就不能作为学生表的主键)

681ac79f9ec945aab1a81ebb9d61898f.jpeg

第7章

7.用E-R图画出此学校的概念模型

(如下图)

bb0aecede48b43bfad665d0413dca1c6.jpeg

9.什么是数据库的逻辑结构设计?试述其设计步骤

数据库的逻辑结构设计就是把概念设计阶段设计好的基本E-R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。设计步骤为:1、将概念结构转换为关系模型;2、对数据模型进行优化

10.试把习题七的E-R图转换为关系模型

bfc8e36e5ebe4315bad32baab38600f5.jpeg

第八章 

2.对学生-课程关系数据库编写存储过程

如下图,感觉有些难(游标老师好像就提了一下)

2ffe18ac07e44d80b908b5449e158f5c.jpeg

第九章

1.试述查询优化在关系数据库系统中的重要性和可能性

重要性:查询优化在关系数据库系统中有着非常重要的地位。关系数据库系统和非过程化的SQL之所以能够取得巨大的 成功,关键得益于查询优化技术的发展。它是影响关系数据库管理系统性能的关键因素。
可能性:由于关系表达式的语义级别较高,使关系系统可以从关系表达式中分析查询语义,提供了执行查询优化的可能性。
 

第十章

1.试述事务的概念及事务的四个特性。恢复技术能保证事务的哪些特性?

事务:指要做或者所做的事情

四个特性:原子性,持续性,隔离性,一致性。

恢复技术能保证原子性、一致性、持续性。

(hh有话说:这个原子性和一致性是密不可分的,意思就是一个事情一旦开始做了,要么不做,要么就做完。持续性是往往与硬件的存储有关系,恢复技术最后的落脚点还是数据存储)

2.为什么事务非正常结束时会影响数据库数据的正确性?请举例说明之?

比如说银行转账,A向B转入100w,我们先执行A账户减少100w,这时事务非正常结束了。但是我们的B账户却还没来得及增加100w,所以最后AB的余额是不正确的。

3.登记日志文件时为什么必须先写日志文件,后写数据库?

因为若先写数据库,此时发生故障,就无法写日志文件。而如果先写日志文件,此时发生故障,我们可以利用数据库恢复技术,利用存储在日志文件中的冗余数据来重建数据库

4.哪些需要重做,哪些需要回滚

答主做错了,答主也没书

5.写出ABC的值

(1)A: 8    ;B:  7   ;C:   13  

(2)A:  10   ;B: 0    ;C:  11

(3)A:  10   ;B:0     ;C:11     

(4)A:  10   ;B:0     ;C:11     

(5)A: 10    ;B:0     ;C:11     

(6)A:  0   ;B: 0    ;C:  0 

即只要是重做或者回滚的,所有指令都失效

第11章

1.数据库中为什么要并发控制?并发控制技术能保证事务的哪些特性

数据库是共享资源,通常有许多个事务同时在运行。当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。

并发控制可以保证事务的【一致性】和【隔离性】

2.并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?

三类:丢失修改、不可重复读、读“脏”数据。
避免不一致性的方法和技术就是并发控制,最常见的技术就是封锁技术。

3.什么是封锁?基本的封锁类型有几种?试述他们的含义?

封锁就是事务S在对某个数据对象(例如表、记录等)进行操作之前,先向系统发出请求,对其加锁。加锁后事务S就对该数据对象有了一定的控制,在事务S释放它的锁之前,其他的事务不能更新此数据对象。
基本的封锁类型:排他锁和共享锁。

8.什么样的并发调度是正确的调度?

事务的非并发调度的某一种结果与并发调度相同,则该并发调度就是正确的调度

9.如下图

(我觉得让咱写两段锁的概率不大)

ca94f88cb8ef49589f49d767a6074a99.jpeg

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值