吉林大学2014级《数据库原理》考试试题A卷自做答案

简答题

1.数据库管理系统中DDL所能完成的操作包括哪些?

create drop alter

2.关系数据库设计中,至少应满足的规范化条件是什么?

1NF

3.判断分解后的关系模式是否合理的两个重要标志

无损分解和保持依赖

4.基于多表的视图,可以完成哪些操作,不能完成哪些操作?

可以查询,不能更新。

可以根据视图新建视图,但是不能update insert delete

换成基于聚集的视图答案也是相似的,单表视图包含所有非空属性(主属性)理论上可以插入修改删除。如视图不包含所有非空属性,则不能插入。复习视图

5.实体之间的联系有哪几种?

一对一 多对多 一对多 多对一

6.简述等值连接和自然连接的异同。

等值连接是通过on把两个选中该属性值相等的元组合并。

自然连接也是合并,但是是只能遇到同名属性列进行连接,它们两个都是在笛卡尔乘积的情况下进行筛选。

7.简述where子句和having子句的区别。

都是用于进行筛选,where对一般属性,having 对聚集属性列进行判断。

8.简述两阶段锁的具体含义。

增长阶段:事务可以获得锁,但是不能释放锁。

缩减阶段:事务可以释放锁,但是不能获得新锁。

9.简述数据库中为何要进行并发控制?

防止数据库中发生与时间有关的错误。
当多个事务在数据库中并发地执行时,数据的一致性可能不再维持,系统有必要控制各事务之间的相互作用。
并发控制机制存在的目的是为了获得高度的并发性,同时保证所产生的调度是冲突可串行化的或视图可串行化可恢复的,并且无级联的。
10.举例说明数据库中死锁含义及其解决方法。

事务之间相互等待对方所占用的资源。

解决方法是两个死锁事务回滚其中的一个。

分析题

1.吉林大学的BBS系统,用户可以以游客的身份游览其他人的留言贴,但是如果想要发言或者回复留言,则必须先登陆方可留言,为什么?在数据库端如何实现?

答:进行了身份的验证,只有成为正式用户,才会被赋予留言的权限。在数据库端对用户赋予权限grant insert update delete on jluBBS to user

2.在从银行卡向学校一卡通转账的过程中,如果转账金额已经从银行卡中扣除,但是一卡通还未到账时,机器死机无法正常工作了,请问数据库处于什么状态,这样的问题如何解决?

答:数据库处于不一致的状态,(如果是问事务则处于失败状态),

解决方案重要内容可看课本360页面,此时银行卡中钱已经扣除,此时应该在机器恢复后给一个补偿事务,给一卡通补上金额。

例子,事务故障有两种方案,一种是重启事务,一种是杀死事务,在处理可见的外部写的时候,写操作应该只有在事务进入提交状态才会发生,可以通过把与外部写有关的数据存入非易失性存储器来实现。

对于自动收款机问题,如果在支付现金前机器出故障,重启后系统应该执行一个补偿事务,将现金存回用户的账户。

如果是Web预定问题,预定的服务器发生崩溃或者网络连接丢失,事务已经提交,但是外部写没有生效,这样应用程序必须设计成当用户再次连接到Web程序时,她可以看到她的事务是否成功。

3.支付宝账号通常与某一银行卡绑定,该卡不可透支,若目前卡内余额100元,假设一人在网上使用该支付宝账号付款100元的同时,另外一人使用绑定银行卡刷卡消费100元,能否支付成功?若不可以,在数据库端如何控制?

答:不可以。使用串行化控制。

4.学校所有学生的数据都存在于同一个表中,但各个学院的教务管理人员登陆后只能看到自己学院的学生,请问,在数据库端是如何实现的。

答:基于这张表创建各个学院的视图,然后对不同学院的用户分配相应权限。

设计题

1.吉林大学为了提高实验教学质量,为每门实验课配备了若干指导老师,指导学生实验。学院开设多门实验课程供学生选择,每个学生可以选择一到多门实验课,每门课程有若干指导教师,每个教师可以参与多门实验课;在实验课中,一位教师负责指导多个学生,而一个学生必须要有一名指导老师。

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

2.将E-R模型转化为对应的关系模式,并说明每个关系模式中需要设置的完整性约束。(实体集属性根据实际情况自行设定,每个实体不少于三个属性,不多于五个属性集)

在这里插入图片描述

实验课程( 课 程 i d ‾ \underline{课程id} id,上课名,上课时间)

选择( 课 程 i d ‾ \underline{课程id} id 学 生 i d ‾ \underline{学生id} id

学生( 学 生 i d ‾ \underline{学生id} id,学生名,学生电话,教师id)

指导教师( 教 师 i d ‾ \underline{教师id} id,教师名,教师电话)

参与( 课 程 i d ‾ \underline{课程id} id 教 师 i d ‾ \underline{教师id} id

为了保证全参与,可以使用断言实现,因为无法在设计中表示,选择和学生之间的全参与可以不写。

应用题

1.有仓库-物料存储系统,其关系模式如下:

W(Wid,WN,Addr);分别表示仓库(仓库号,仓库名称,地址)

M(Mid,MN,Price,p_Time,q_Time);分别表示(物料号,物料名称,价格,生产日期,保质期)

ST(Wid,Mid,SNum);分别表示(仓库号,物料号,存储数量)

1.用关系代数表达式,查询存储了全部物料的仓库名称

G是聚集函数符号

思路:根据仓库号对ST进行分组,计算物料号的个数,如果物料号个数等于M中物料号的总数,则输出W中的仓库号(太复杂了不好使)

W i d _{Wid} WidG c o u n t _ d i s t i n c t ( M i d ) ( S T ) _{count\_distinct(Mid)}(ST) count_distinct(Mid)(ST)

在这里插入图片描述

上面的做错了

实际上的思路只要选择除法运算就可以

Π W N ( W ⋈ Π W i d ( S T ÷ Π M i d ( M ) ) ) \Pi_{WN}(W⋈ \Pi_{Wid}(ST\div\Pi_{Mid}(M))) ΠWN(WΠWid(ST÷ΠMid(M)))

2.用关系代数表达式,查询所有存储数量高于100的物料号

在这里插入图片描述

3.用SQL语句,查询所有没有生产日期的物料号和物料名称

SELECT Mid,MN

FROM M

WHERE p_Time IS NULL;

4.用SQL语句,建立视图V,统计截至到今天,还有三个月就要到保质期的物料号和物料名称。此题未经代码测试,还在修改中

CREATE VIEW V AS
SELECT Mid,MN

FROM M

WHERE q_Time-今日日期=3

5.用SQL语句,修改物料名为”海绵“的库存,增加100件

UPDATE st
SET SNum=CASE 
	WHEN st.Mid=(SELECT Mid FROM m WHERE MN='海绵') THEN
		SNum+100
	ELSE
		SNum
END ;

2.设有关系模式R(A,B,C,D,E,F,G)其函数依赖集F={AB->C,B->DE,C->G.G->A}求模式R的所有候选码。

解:所有在左边的属性有ABCG

所有在右边的属性有CDEGA

左部属性B

右部属性DE

双部属性ACG

外部属性F

首先计算

{ B F } + = { B F D E } {\{BF\}}^+=\{BFDE\} {BF}+={BFDE}

然后计算 A B F + 、 C B F + 、 G B F + ABF^+、CBF^+、GBF^+ ABF+CBF+GBF+

第一个可以推{ABCDEFG}

第二个可以推{ABCDEFG}

第三个可以推{ABCDEFG}

因此ABF CBF GBF都是候选码

3.设有关系R和函数依赖F:R(A,B,C,D,E) F={ABC->DE,BC->D,D->E}请将关系R逐步分解为3NF。

解:首先使用合并律,发现不需要合并

然后尝试去除无关属性

ABC->DE中A可以去除,因为BC->D D->E,可知BC->DE

然后BC->D可以去除,因为已经有BC->DE

BC->DE中E可以去除,因为D->E

最终得 F c F_c Fc={BC->D,D->E}

求得R的主码

F左边有属性ABCD

右边有属性DE

左部属性 ABC

右部属性E

双部属性D

{ABC} + ^+ +={ABCDE}

ABC就是候选码,不在BCD和DE中,加上

有因此可以分解为{ABC}{BCD}{DE}

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

在这里插入图片描述

解:求一下优先图

在这里插入图片描述

可以看到图中没有环,说明是可串行化调度,一个串行化调度是 T 3 − > T 4 − > T 1 − > T 2 T_3->T_4->T_1->T_2 T3>T4>T1>T2

一、简答题 1、什么是数据与程序的物理独立性?什么是数据与程序的逻辑独立性? ①物理独立性是指用户的应用程序与数据库中数据的物理存储是相互独立的。也就是说,数据在数据库中怎样存储是由数据库管理系统管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变时应用程序不用改变。 ②逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。也就是说,数据的逻辑结构改变时用户程序也可以不变。 2、试述等值连接与自然连接的区别和联系。 连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。 3、试述实现数据库安全性控制的常用方法和技术。 ( l )用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。 **( 2 )存取控制:**通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。例如CZ 中的自主存取控制( DAC ) , Bl 中的强制存取控制(MAC )。 **( 3 )视图机制:**为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。 ( 4 )审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA 可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。 **( 5 )数据加密:**对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。 4、试述关系模型的三类完整性规则,并举例说明。 实体完整性:所谓的实体完整性就是指关系(所谓的关系就是表)的主码不能取空值; 例子: (1) 实体完整性规则:若属性 A 是基本关系 R 的主属性,则属性 A 不能取空值。 **参照完整性:**是指参照关系中每个元素的外码要么为空(NULL),要么等于被参照关系中某个元素的主码; 例子: (2) 参照完整性规则:若属性(或属性组) F 是基本关系 R 的外码,它与基本关系 S 的主码 K s 相对应(基本关系 R 和 S 不一定是不同的关系),则对于 R 中每个元组在 F 上的值必须为: 或者取空值( F 的每个属性值均为空值); 或者等于 S 中某个元组的主码值。 用户定义的完整性:指对关系中每个属性的取值作一个限制(或称为约束)的具体定义。 5、一个不好的模式会有些什么问题? ①数据冗余 ②更新异常 ③插入异常 ④删除异常 6、数据库设计中,需求分析的任务是什么?调查的内容是什么? 需求分析阶段的设计目标是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统手工系统或计算机系统)工作概况明确用户的各种需求,然后在此基础上确定新系统的功能。 **调查的内容是“数据”和“处理”**即获得用户对数据库的如下要求: (1)信息要求指用户需要从数据库中获得信息的内容与性质由信息要求可以导出数据要求即在数据库中需要存储哪些数据。 (2)处理要求指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理。 (3)安全性与完整性要求 7、什么是索引?索引的作用。 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。 建立索引是加快查询速度的有效手段,数据库索引类似于图书后面的索引,能快速定位到需要查询的内容,用户可以根据应用环境的需要在基本表上建立一个或者多个
SQL是高的非过程化编程语言,是沟通数据库服务器和客户端的重要工具,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以,具有完全不同底层结构的不同数据库系统,可以使用相同的SQL语言作为数据输入与管理的SQL接口。 它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使它具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。    结构化查询语言(Structured Query Language)最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。如今无论是像Oracle、Sybase、DB2、Informix、SQL Server这些大型的数据库管理系统,还是像Visual Foxpro、PowerBuilder这些PC上常用的数据库开发系统,都支持SQL语言作为查询语言。    美国国家标准局(ANSI)与国际标准化组织(ISO)已经制定了SQL标准。ANSI是一个美国工业和商业集团组织,负责开发美国的商务和通讯标准。ANSI同时也是ISO和International Electrotechnical Commission(IEC)的成员之一。ANSI 发布与国际标准组织相应的美国标准。1992年,ISO和IEC发布了SQL国际标准,称为SQL-92。ANSI随之发布的相应标准是ANSI SQL-92。ANSI SQL-92有时被称为ANSI SQL。尽管不同的关系数据库使用的SQL版本有一些差异,但大多数都遵循 ANSI SQL 标准。SQL Server使用ANSI SQL-92的扩展集,称为T-SQL,其遵循ANSI制定的 SQL-92标准。    SQL语言包含4个部分:    数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。    数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。    数据查询语言(DQL),例如:SELECT语句。    数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。    SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值