简答题

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)R∩S=R−(R−S)

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α是模式RRR的一个超码

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)R∩S=R−(R−S)

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

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

拓展知识点

从死锁中恢复

1.选择牺牲者

2.回滚

3.饿死

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

答:可串行化调度。

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

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

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

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

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

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

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

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

使用增补律

AC→CBAC\to CBAC→CB

使用传递律

AC→DAC\to DAC→D

得证。

扩展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模型转化为对应的关系模型,并说明每个关系模式种需要设置的完整性约束。

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

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

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

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

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

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

发展客户(客户id‾,下线id‾)发展客户(\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→IF,F→GH,A→BC,AF→DEH \to IF,F \to GH,A\to BC,AF \to DEH→IF,F→GH,A→BC,AF→DE

(2)求候选码

左边属性有HFA

右边属性有IFGHBCDE

所以左部属性是A

右部属性是BCDEIG

双部属性是FH

AF+=ABCDEFGHI{AF}^+=ABCDEFGHIAF+=ABCDEFGHI

AH+=ABCDEFGHIAH^+=ABCDEFGHIAH+=ABCDEFGHI

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

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

应用题

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

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

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

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

1用关系代数表达式查询:店员人数不少于50人的门店名称和地址。
ΠMname,Maddress(σMRun>=50(MD))\Pi_{Mname,Maddress}(\sigma_{MRun>=50}(MD)) ΠMname,Maddress​(σMRun>=50​(MD))

2用关系代数表达式查询:找出至少供应了代号为“256”的商店所供应的全部商品的其它商店名和地址。
ΠMname,Maddress(MD⋈(σPid<>256(MP÷ΠPid(σMid=256(MP)))))\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='泉阳泉'
) ;

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

  1. c语言程序设计B试题,c语言程序设计期末试题B(含答案)Word版

    <c语言程序设计期末试题B(含答案)Word版>由会员分享,可在线阅读,更多相关<c语言程序设计期末试题B(含答案)Word版(6页珍藏版)>请在人人文库网上搜索. 1.传播优 ...

  2. C语言表达式5 0的结果是,c语言程序设计期末试题B(含答案)(5页).doc

    c语言程序设计期末试题B(含答案)(5页).doc c语言程序设计期末试题B(含答案)? 1.以下4组用户定义标识符中,全部合法的一组是( ) A)_total clu_1 sum B)if -max ...

  3. 计算机组成期末试题及答案,本科计算机组成080901期末试题(A卷)答案及评分标准...

    <本科计算机组成080901期末试题(A卷)答案及评分标准>由会员分享,可在线阅读,更多相关<本科计算机组成080901期末试题(A卷)答案及评分标准(5页珍藏版)>请在人人文 ...

  4. 吉林大学2021中国大学MOOC期末试题主观题

    1 数字三角阵(15分) 问题描述:按规律根据输入的整数 N,打印 N 行 N 列的数字三角阵. 输入:输入一个正整数 N (≤100) 输出:输出由数字 0~9构成的 N 行 N 列的数字三角矩阵: ...

  5. 计算机考试题目czt,8级计算机组成原理本科期末试题a带答案(史岚).docx

    东北 学 201院- 2 大学考试试卷 018学年第 学期 课程名称: (A卷) 计算机组成原理(共 5页,八个大题) 总分 二 三 四 五 六 七 Al 1 ?在浮点加减运算中,当运算结果的尾数绝对 ...

  6. 操作系统期末试题(1)及答案

    一.判断题 1.实时系统在响应时间.可靠性及相互作用能力等方面一般都比分时系统要高.() 2.Windows XP是一个多用户.多任务的操作系统.() 3.一个进程正在临界区中间执行时,不能被中断.( ...

  7. 《数据库系统概念》第六版官方英文答案

    https://www.db-book.com/db6/practice-exer-dir/

  8. 哈工大2021秋数据结构期末试题

    2021.11.27上午10:00~12:00,笔者经历了数据结构考试(本部),现将回忆版的试题放在下面,供学弟学妹们参考. PDF版已经上传HITSZ-OpenCS(没有找到本部的相关项目,故上传至 ...

  9. 大学mysql期末试题_四川大学数据库系统期末试题2014-2015.doc

    四川大学数据库系统期末试题2014-2015.doc 课程名称:数据库系统 任课教师 张天庆.龚勋.李川.屈立笳 学号: 姓名: 本题 NUMPAGES 3页,本页为第 PAGE 2页 教务处试题编号 ...

最新文章

  1. 数据结构源码笔记(C语言):堆排序
  2. 算法提高课-搜索-最短路模型-AcWing 188. 武士风度的牛 :bfs、dist数组记录最小步数
  3. WIN32 使用事件实现高效生产者消费者模型
  4. matlab plot errorbar,如何为MATLAB errorbar plot的点和垂直线设置不同的图例?
  5. 云存储精华问答 | 如何选择云迁移策略?
  6. UnhookWindowsHookEx
  7. JavaScript实现限制文件上传类型和大小
  8. python os模块详细_python中os模块函数方法详解最全最新
  9. php字符串里含有全角符号,php半角转全角字符函数
  10. 融合应急指挥调度系统
  11. Latex:表格插入图片
  12. 公众号粉丝迁移需要多长时间?
  13. Ubuntu 安装 tbb 步骤详解
  14. 波士顿房价预测python决策树_波士顿房价预测 - 最简单入门机器学习 - Jupyter
  15. 惊!又一家知名企业被查!
  16. vi vim 快速跳到文件末尾 GA 在最后一行下方新增一行 (光标换行,文字不换行) GO
  17. 算法设计与分析: 2-7 士兵站队问题
  18. css overflow属性及使用方法
  19. 流氓迅雷,永别了万恶的迅雷,永别了万恶的迅雷播放组件
  20. css 修改文字基准线_HTML4/HTML5 用CSS或style属性修改 hr 实线 虚线 点线 双实线样式 ... ......

热门文章

  1. 《认知红利》读书总结+思考
  2. DNA存储技术—让信息保存万年
  3. CodeForces 597 A. Divisibility(坑,满满的都是坑)
  4. S5PV210-裸机中断
  5. Uni-App从入门到实战
  6. [USACO13NOV]Crowded Cows
  7. Word2Vec笔记
  8. 在Ubuntu系统下运行c语言程序
  9. (zhuan) 自然语言处理中的Attention Model:是什么及为什么
  10. Web前端开发技术课程大作业: 关于美食的HTML网页设计——HTML+CSS+JavaScript在线美食订餐网站html模板源码30个页面: