吉林大学数据库系统概念2015年期末试题自做答案

article/2025/9/24 2:07:42

简答题

1数据库中常用的完整性约束包括哪些?

答:not null

unique

check

primary key

foreign key

2简述数据库系统与文件系统的主要区别。

答:参考课本19页1.8

  • 这两个系统都包含了数据集合和一组程序。数据库协调数据的物理和逻辑访问,当文件系统只能协调物理访问。
  • 数据库系统通过确保所有程序都可以使用一块物理数据来减少数据重复的数量。而在文件系统中的一个程序的数据在写的时候可能无法被另一个程序所读取。
  • 数据库系统被设计允许对数据进行灵活的访问(即查询),当文件系统的设计目的是为了允许预先确定的访问(即编译程序)。
  • 数据库管理系统被设计用来协调多用户管理相同的数据,文件处理系统通常被设计成允许一个或多个程序同时访问相同的数据。文件处理系统通常被设计成一个或多个程序同时访问不同的数据文件。在文件系统中,只有当两个程序对文件操作权限都是只读的时候才可以同时访问。

3一般情况下,关系R与关系S要进行自然连接,需要满足什么条件?

答:至少有一个同名属性列。

4为什么要在数据库中引入事务的概念?

答:因为有些操作的集合要么全都发生,要么由于出错全都不发生,比如从支票账户到储蓄账户的资金转账,为了让这些操作能一起执行,把单一操作逻辑的集认为一个独立单元,即事务。

5已知视图 faculty的定义:create view faculty as select id, name,dept name from
instructor;当发布 insert into faculty values(130765’,‘Green,(Music’))命
令时,数据库系统如何执行?

答:参考书69页

这个插入必须被表示为对instructor的插入,这样必须给出salary的值,为此数据库有两种执行方案

1.拒绝插入,并向用户返回一个错误信息。

2.向instructor关系插入元组(‘130765’,‘Green,(Music’),null)

6用基本关系代数表达式来表示R ∩ \cap S.

答: R ∩ S = R − ( R − S ) R\cap S=R-(R-S) RS=R(RS)

7某银行为不同储蓄金额执行不同利率:低于10万元一年支付4.2%的利息,10万元以上(包括10万)一年支付4.5%的利息。假设储蓄账户表 account(aid(account_id),balance, branch_name),写出与上述业务相对应的SQL语句,如何保证其执行结果的正确性?

答:

UPDATE account
SET balance= CASE
WHEN balance<100000 THEN balance*1.042
ELSE balance*1.045
END;

CASE结构的存在可以被利用来在一条UPDATE语句中执行前面的两种更新,避免前面发生的问题!这样就能保证其执行结果的正确性,如果不使用case语句,考虑到加上利息后余额可能超过10万,应该先更新大于10万的,再更新小于十万的。

UPDATE account
SET balance=balance*1.045
WHERE balance>=100000;
UPDATE account
SET balance=balance*1.042
WHERE balance<100000;

复习,case结构一般如下

casewhen pred1 then result1when pred2 then result2...when predn then resultnelse result0
end;

不确定

8什么样的关系模式满足BCNF?

答:对于 F + F^+ F+的所有形如 α → β \alpha\to\beta αβ的函数依赖(其中 α ⊆ R , β ⊆ R \alpha\subseteq R,\beta\subseteq R αR,βR),下面至少有一项成立。

1. α → β \alpha\to\beta αβ是平凡的函数依赖

2. α \alpha α是模式 R R R的一个超码

9关系数据库中,超码、候选码、主码有什么区别?

答:超码就一个或多个属性的集合,这些属性的组合可以在一个关系中唯一地标识一个元组。

如果一个超码的任意真子集都不能称为一个超码,那它就是一个候选码,候选码是最小的超码。

数据库设计者从候选码中任意选取一个码,叫做主码。

10关系代数中,选择操作的功能是什么?

答:选择运算选出满足给定谓词的元组。

投影运算返回作为参数的关系,但把某些关系排除在外。

集合差运算使得我们可以找出一个在一个关系中而不在另一个关系中的元组。

笛卡尔积运算可以把任意两个关系组合起来。

11简述数据库中引入封锁机制的优缺点。

答:优点:有效防止“丢失更新”,保证可重复读和不读“脏”数据

​ 缺点:产生了活锁,饿死和死锁的问题。

12数据库中,调度指的是什么?

答:调度指的是指令在系统中执行的时间顺序,一组事务的一个调度一定包含了这组事务的所有指令,而且必须保持指令在各个事务中出现的时间顺序。

13事务由哪几个状态组成?判断当手机支付已提交,但由于网络信号消失而导致支付失败,此时,事务处于何种状态?

答:

由活动的、部分提交的、失败的、中止的、提交的

事务处于失败状态。

14在MySQL中定义foreign key时,与标准SQL有何区别?

答:主外键约束在标准SQL下体现的是一种一对多的关系,但是经过MySQL的拓展之后可以表现出“多对多”的关系。搞不懂,应该不会考

15MySQL 中不支持 INTERSECT语句,可以用哪些语句来代替?

答:有关系R S,求R INTERSECT S语句,可以这样

SELECT *

FROM R EXCEPT

(

SELECT *

FROM R EXCEPT S

)

R ∩ S = R − ( R − S ) R\cap S=R-(R-S) RS=R(RS)

16数据库中如何判断死锁是否发生?

答:死锁的检测需要维护一个资源等待图,周期性的激活一个在等待图中搜索环的算法,如果检测到了环的存在,那么判断死锁已经发生。

拓展知识点

从死锁中恢复

1.选择牺牲者

2.回滚

3.饿死

17什么样的调度一定能够保证数据的一致性?

答:可串行化调度。

18为了保证数据库的并发性,引入了哪些锁?

答:共享锁:事务T可读但不可写数据项Q

排他锁:事务T可读又可写数据项Q

19为什么事务非正常结束时会影响数据库数据的正确性,请举例说明。

答:如果在A转账给B的过程中,A扣款成功了,但是此时事务非正常结束,此时B没有收到欠款,数据库处于不一致状态,这影响了数据库数据的正确性。

20.利用 Armstrong公理证明伪传递律:若有A→B,CB→D,则有AC→D.

答:Armstrong公理有自反律、传递律,增补律

推广有合并律、分解律、伪传递律

使用增补律

A C → C B AC\to CB ACCB

使用传递律

A C → D AC\to D ACD

得证。

扩展Armstrong公理证明合并律的正确有效性(提示,使用增补率可证,若 α → β \alpha\to\beta αβ α → α β \alpha\to\alpha\beta ααβ。再次使用增补律,利用 α → γ \alpha\to\gamma αγ。然后使用伪传递率)

答: α → β \alpha\to\beta αβ 自带的

α α → α β \alpha\alpha\to\alpha\beta αααβ 增补律

α → α β \alpha\to\alpha\beta ααβ 合并

α → γ \alpha\to\gamma αγ 给定

α β → γ β \alpha\beta\to\gamma\beta αβγβ 增补律

α → β γ \alpha\to\beta\gamma αβγ 传递律

二.分析题(每题5分,共20分)

1两个人分别在去哪儿网和携程网上购买2017年7月2日,CZ6147次航班,从长春飞往北京,但该航班的经济舱只剩一张票,两个人同时下单,数据库中要如何控制?

答:使用事务并发控制,对这两个事务进行可串行化调度。

2很多在线手机游戏都支持离线操作,即当网络不通时,可以离线玩,等联网之后再进行数据同步,在这个过程中,可能涉及数据库的哪些概念?

答:涉及事务管理,补偿事务,一致性,持久性。这个问题我不会

3用户到银行开了一个储蓄账户(account表),可以随时对该账户进行存钱、取钱等管理,分别对应数据库中的什么操作?在ATM机上取钱,当卡内余额不足时,ATM机不做任何支付,如何将此规则定义在该表上?

答:存取都钱对应UPDATE操作,对account的余额balance添加域约束

check(balance>=0);在执行扣款事务的时候,余额不足余额会小于0,这时事务会失败并回滚。

4.吉林大学一卡通实现了与银行的绑定,当一卡通内余额小于某一设定的金额的时候,可以通过银行卡直接转账,请问如何实现自动转账?转账的金额在数据库端如何设定?

答:创建一个触发器,当一卡通内余额被修改时启动触发器,如果修改过后余额小于设定金额,就执行转账事务。这个问题我也不会

设计题

1某金融公司为客户提供理财服务。公司提供股票、基金、外币等多种投资理财项目,并且为每位用户配备一个理财经理,为客户提供投资咨询服务,客户可以购买一种或多种理财产品,根据买卖的时间和购买的金额来计算收益。每个客户还可以推荐下线客户,每个客户只能有一个上线。

1.根据上述需求,画出E-R模型

在这里插入图片描述

2.将E-R模型转化为对应的关系模型,并说明每个关系模式种需要设置的完整性约束。

注:实体的属性根据实际情况自行设定,每个实体不少于三个属性,不多于五个属性。

理 财 项 目 ( 项 目 i d ‾ , 项 目 名 , 项 目 计 划 ) 理财项目(\underline{项目id},项目名,项目计划) (id) 主键项目id

买 卖 信 息 ( 买 卖 i d ‾ , 买 时 间 , 卖 时 间 , 买 卖 金 额 ) 买卖信息(\underline{买卖id},买时间,卖时间,买卖金额) (id)主键买卖id

客 户 ( 客 户 i d ‾ , 经 理 i d , 客 户 名 , 客 户 电 话 ) 客户(\underline{客户id},经理id,客户名,客户电话) (idid)主键客户id和经理id,外键经理id参考理财经理

理 财 经 理 ( 经 理 i d ‾ , 经 理 名 , 经 理 电 话 ) 理财经理(\underline{经理id},经理名,经理电话) (id)主键经理id

购 买 ( 项 目 i d ‾ , 客 户 i d ‾ , 买 卖 i d ‾ ) 购买(\underline{项目id},\underline{客户id},\underline{买卖id}) (ididid)主键项目id客户id买卖id外键也是它们,参考理财项目、买卖信息和客户

发 展 客 户 ( 客 户 i d ‾ , 下 线 i d ‾ ) 发展客户(\underline{客户id},\underline{下线id}) (id线id)对下线id有unique约束,主键是客户id下线id

计算题

1设有如图所示调度S,判别S是否为冲突可串行化调度?如果是,则给出与S等价的一个串行调度。

在这里插入图片描述

答:先画出优先图
在这里插入图片描述

可以看出有环的存在,所以肯定不能进行可串行化调度。

2设有关系模式R(A,B,C,D,E,F,G,H,I),其中各属性分别代表A交通肇事编号;B交通肇事发生时间,C交通肇事具体原因,D违章扣分,E违章罚款金额,F交通肇事发生车辆车牌号码,G交通肇事车型号及颜色,H违章驾驶员驾照号,I驾照已扣分数。其中:

  • 司机与车辆之间的联系为1:1,车辆与违章之间的联系为m:n
  • 一辆车只能由一个车牌号码,且车牌号码唯一
  • 一个人只能由一个驾照,且驾照号码唯一

完成以下任务:

(1)根据语义给出R的函数依赖

(2)将该关系模式分解为3NF

答:(1) H → I F , F → G H , A → B C , A F → D E H \to IF,F \to GH,A\to BC,AF \to DE HIFFGH,ABC,AFDE

(2)求候选码

左边属性有HFA

右边属性有IFGHBCDE

所以左部属性是A

右部属性是BCDEIG

双部属性是FH

A F + = A B C D E F G H I {AF}^+=ABCDEFGHI AF+=ABCDEFGHI

A H + = A B C D E F G H I AH^+=ABCDEFGHI AH+=ABCDEFGHI

其中AF已经在里面了,所以不需要再加

得分解结果为{HIF},{FGH},{ABC},{AFDE}

应用题

1某连锁超市商品管理系统中,包含如下关系模式

门店MD(门店编号Mid,门店名称Mname,店员人数MRnum,地址Maddress)

商品SP(商品编号Pid,商品名称Pname,价格Price)

所属关系MP(门店编号Mid,商品编号Pid,商品数量Pnum)

1用关系代数表达式查询:店员人数不少于50人的门店名称和地址。
Π M n a m e , M a d d r e s s ( σ M R u n > = 50 ( M D ) ) \Pi_{Mname,Maddress}(\sigma_{MRun>=50}(MD)) ΠMname,Maddress(σMRun>=50(MD))

2用关系代数表达式查询:找出至少供应了代号为“256”的商店所供应的全部商品的其它商店名和地址。
Π M n a m e , M a d d r e s s ( M D ⋈ ( σ P i d < > 256 ( M P ÷ Π P i d ( σ M i d = 256 ( M P ) ) ) ) ) \Pi_{Mname,Maddress}(MD⋈ (\sigma_{Pid<>256}(MP\div\Pi_{Pid}(\sigma_{Mid=256}(MP))))) ΠMname,Maddress(MD(σPid<>256(MP÷ΠPid(σMid=256(MP)))))

3用SQL语句查询:库存数量小于10件的商品名称及所在的门店名称

select distinct Pname,Mname
from sp natural join mp natural join md
where Pnum<10 ;

4用SQL语句查询:各门店名称和所拥有的商品的总价格

select distinct Mname,sum(Price*Pnum) as APrice
from sp natural join mp natural join md
group by Mname,Mid;

5用SQL语句,将“256”号门店的“泉阳泉”的数量增加2000

update mp
set Pnum=Pnum+2000
where Mid=256 and Pid=(
select Pid
from sp
where Pname='泉阳泉'
) ;

mySQL测试本题使用代码

CREATE TABLE MD ( Mid INT, Mname VARCHAR ( 20 ),MRnum INT, Maddress VARCHAR ( 50 ), PRIMARY KEY ( Mid ) );
CREATE TABLE SP ( Pid INT, Pname VARCHAR ( 20 ), Price INT, PRIMARY KEY ( Pid ) );
CREATE TABLE MP (mid int,pid int,pnum int,primary key ( mid,pid),
foreign key ( mid) references md ( mid ),
foreign key (pid) references sp(pid)
);INSERT INTO md VALUES(256,'家乐福',60,'霹雳大街');
INSERT into md values(254,'家家乐',7,'桂林路');
INSERT into md values(255,'沃尔玛',7,'保利罗兰香谷');
INSERT into md values(252,'家家乐',17,'万达广场');insert into sp values(12,'棉花糖',25);
insert into sp values(15,'泉阳泉',10);
insert into sp values(11,'农夫山泉',2);
insert into sp values(10,'桃子汽水',6);insert into mp values(256,12,30);#家乐福棉花糖
insert into mp values(256,15,3);#家乐福泉阳泉
insert into mp values(254,12,5);#家家乐棉花糖
insert into mp values(254,15,8);#家家乐泉阳泉
insert into mp values(254,11,10);#家家乐农夫山泉
insert into mp values(255,11,12);#沃尔玛农夫山泉
insert into mp values(255,15,6);#沃尔玛泉阳泉
insert into mp values(252,10,60);#家家乐桃子汽水select distinct Pname,Mname
from sp natural join mp natural join md
where Pnum<10 ;select distinct Mname,sum(Price*Pnum) as APrice
from sp natural join mp natural join md
group by Mname,Mid;update mp
set Pnum=Pnum+2000
where Mid=256 and Pid=(
select Pid
from sp
where Pname='泉阳泉'
) ;

http://chatgpt.dhexx.cn/article/ZHbtsoiu.shtml

相关文章

2015年CSDN博客排名第一名,何方神圣?

2015年CSDN博客排名第一名&#xff0c;何方神圣&#xff1f; 一、引子&#xff1a; 话说博主phphot&#xff0c;雄霸天下好多年。 俱往矣&#xff0c; 落花流水春去也。 斗转星移&#xff0c;江山易主。 详细可以参见下文&#xff1a; CSDN博客排名第一名&#xff0c;何许人也 …

【转】85张PPT湖南2015年IPTV业务运营数据报告

导语 2015年&#xff0c;湖南IPTV以强势的芒果内容战略,精致的平台运营策略&#xff0c;流畅的技术产品体验&#xff0c;亲切的品牌市场形象&#xff0c;走进了248万个湖南家庭&#xff0c;全年收视次数高达42亿! 直播、回看、点播、综艺、影视、少儿&#xff0c;全屏加速&am…

传智播客 刘意_2015年Java基础视频-深入浅出精华版 笔记(2015年10月25日23:28:50)

day01 win 7系统打开DOS有趣方法&#xff1a;按住shift右键&#xff0c;单击“在此处打开命令窗口”(注意&#xff1a;在此处可以是任何的文件夹&#xff0c;不一定是桌面) 用DOS删除的文件不可以在回收站恢复&#xff1f;&#xff01;&#xff01; 常用DOS命令 d: 回车 盘符切…

2015 2020 r4烧录卡 区别_【2015年和2020年上半年市场资金结构有何差异?】东北证券金融工程择时周报20200802...

0摘要 观点综述&#xff1a;2017年以来公募基金摒弃了以往广撒网的方式&#xff0c;反而开始抱团&#xff0c;虽然基金发行、股票发行的数量增加&#xff0c;但是公募基金十大重仓股的个数却是不断降低的。这也就和我们当前的存量市场格局所呼应。在没有新增资金的存量格局之下…

VS2015+Qt5.8 联合配置

&#xff08;第一种&#xff09;VS2015Qt5.8 x86环境搭建 2018年10月16日 18:59:32 废柴Panda_M 阅读数&#xff1a;166 最近用一套别人的代码&#xff0c;发现库都是各种32位的&#xff0c;于是卸载了我辛辛苦苦下载的VS 2017和Qt5.9&#xff0c;重新弄。对应2017版本的Qt似…

2015年动画电影观影指南

整个2014年的全球动画电影市场比较平稳&#xff0c;在美国动画相对疲软的同时&#xff0c;亚洲的老牌动画强国日本与新兴崛起的中国&#xff0c;反而更为活跃&#xff0c;近30部国产动画在院线上映&#xff0c;《熊出没之夺宝熊兵》更是达到了2.47亿的票房。展望2015是超级大片…

2015年第六届C/C++ B组蓝桥杯省赛真题

这里是蓝桥杯历年的题目专栏&#xff0c;将会陆续更新将往年真题以及解答发布出来&#xff0c;欢迎各位小伙伴关注我吖&#xff0c;你们的点赞关注就是给我最好的动力&#xff01;&#xff01;&#xff01; 每天更新一届真题&#xff0c;敬请期待 蓝桥杯历年真题及详细解答 目…

纪念2015年大股灾:股票和分级基金呈现的一些哲理启示

一、之前遇到的励志表达式&#xff1a; 二、2015年千股涨停跌停那是司空见惯&#xff0c;下面是个连续跌停需要的连续涨停数量对比&#xff1a; 表明&#xff1a;持续的堕落&#xff0c;需要持续双倍的努力代价来挽回损失&#xff01;所以要注意风控&#xff0c;设置不管是股市…

NCU SEM 发文检索2015年

[1]何恩良,周莉.会计师事务所行业专长对审计质量的影响[J].中国商论,2015,27:49-51. 摘要&#xff1a;会计师事务所行业专长有利于提高审计质量。本文选择2013年沪深股市部分上市公司作为研究样本,通过回归分析验证了会计师事务所行业专长与审计质量正相关,并提出会计师事务所需…

2015数学建模国赛b题代码分析

所用代码出自2015年b285优秀论文,建模时可做参考 出租车数量 、 请求单数 、用户等待时间空间分布图 3D distributexlsread(20150906distribute.csv); Dis[]; m117; for i1:length(distribute) % 矩阵行和列的最大值 if (distribute(i,1)m1) [Dis][Dis; distribu…

2015年数模A题太阳影子定位学习笔记

To be continue … … 主要参考文献&#xff1a;[2015年国赛高教杯奖A题]电子科技大学-太阳影子定位的多目标优化模型 最近用java写了个求影长的程序&#xff0c;原地爆炸 文章目录 一、摘要二、问题重述1. 问题背景2. 需要解决的问题 三、问题分析3.1 问题一的分析3.2 问题二的…

互联网30年,泡沫如梦

人人都说互联网改变世界&#xff0c;这话没错。 但我认为互联网改变的方式&#xff0c;是泡沫。 资金&#xff0c;资源&#xff0c;人才因为一堆概念聚在一起&#xff0c;形成一个又一个的泡沫&#xff0c;然后泡沫破裂&#xff0c;大部分人失败&#xff0c;少数能够留下来的&a…

[机器学习] 半监督学习---伪标签Pseudo-Label

大数据时代中&#xff0c;在推荐、广告领域样本的获取从来都不是问题&#xff0c;似乎适用于小样本学习的伪标签技术渐渐淡出了人们的视野&#xff0c;但实际上在样本及其珍贵的金融、医疗图像、安全等领域&#xff0c;伪标签学习是一把锋利的匕首&#xff0c;简单而有效。 什么…

深度学习十大算法

首先先让我们来定义一下什么是“深度学习”。对很多人来说&#xff0c;给“深度学习”下一个定义确实很有挑战&#xff0c;因为在过去的十年中&#xff0c;它的形式已经慢慢地发生了很大的变化。 先来在视觉上感受一下“深度学习”的地位。下图是AI、机器学习和深度学习三个概念…

KBS 2021 | 联邦学习综述

目录 前言摘要1. 引言1.1 联邦学习的背景1.2 联邦学习面临的挑战 2. 相关工作2.1 联邦学习的定义 3. 联邦学习的分类3.1 数据划分3.1.1 横向联邦学习3.1.2 纵向联邦学习3.1.3 联邦迁移学习 3.2 隐私保护机制3.2.1 模型聚合3.2.2 同态加密3.2.3 差分隐私 3.3 可应用的机器学习模…

如何高效学习和阅读源码?

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;蚂蚁集团高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《EffectiveJava》独家解析》专栏作者。热门文章推荐&…

架构学习——ER图

一、什么是ER图&#xff1f; E-R图也称实体-联系图(Entity Relationship Diagram)&#xff0c;提供了表示实体类型、属性和联系的方法&#xff0c;用来描述现实世界的概念模型。 二、为什么要画ER图&#xff1f; 它是描述现实世界关系概念模型的有效方法。是表示概念关系模型…

Thingworx入门学习

Thingworx入门学习 前言thingworx入门总结 前言 Thingworx是啥&#xff1f;&#xff1f;&#xff1f; 基于物联网强大必入软件学习 thingworx的优点太多说些主要的 1.强大数据接入 2.数据分析 3.组态化模块化&#xff0c;二次开发节省成本快速开发 thingworx入门 提几点主线…

读后感:【许岑—如何成为有效学习的高手】

本博客的原创文章都是本人平时学习所做的笔记 。不要借鉴&#xff0c;不要参考 , 谢谢合作 本书关键词&#xff1a;适合自己、学习方法、短时间、注意力、解决难题、设定目标、名师

联邦学习(Federated Learning)

联邦学习简介 联邦学习&#xff08;Federated Learning&#xff09;是一种新兴的人工智能基础技术&#xff0c;其设计目标是在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下&#xff0c;在多参与方或多计算结点之间开展高效率的机器学习。其…