数据库原理习题答案云帆永恒

数据字典(DD):存储三级结构的描述;

索引文件:为提高查询速度而设置的逻辑排序手段;

统计数据组织:存储DBS运行时统计分析数据。

该查询初始的关系代数表达式的语法树

优化后的语法树

NOTICE:有多种写法,比如联接查询写法:SELECTSNAMEFROMS,SC,CWHERESEX=‘F’ANDSC.S#=S.S#ANDSC.C#=C.C#ANDTEACHER='LIU'但上一种写法更好一些。

要从语义上分解:(1)选择课程的课程号与课程名,不存在不选这门课的同学。其中,“不选这门课的同学”可以表示为:

SELECT*

FROMS

WHERES#NOTIN

(SELECT*

FROMSC

WHERESC.C#=C.C#)

或者

WHERENOTEXISTS

WHERES.S#=C.S#AND

SC.C#=C.C#)

4.1名词解释

所有属性相互依赖时,函数依赖最多。

4.3建立关于系、学生、班级、社团等信息的一个关系数据库,一个系有若干个专业,每个专业每年只招一个班,每个班有若干个学生,一个系的学生住在同一宿舍区,每个学生可以参加若干个社团,每个社团有若干学生。描述学生的属性有:学号、姓名、出生年月、系名、班级号、宿舍区。描述班级的属性有:班级号、专业名、系名、人数、入校年份。描述系的属性有:系名、系号、系办公地点、人数。描述社团的属性有:社团名、成立年份、地点、人数、学生参加某社团的年份。请给出关系模式,写出每个关系模式的最小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况,讨论函数依赖是完全函数依赖还是部分函数依赖。指出各关系的候选键、外部键,有没有全键存在各关系模式如下:学生(学号,姓名,出生年月,系名,班级号,宿舍区)班级(班级号,专业名,系名,人数,入校年份)系(系名,系号,系办公地点,人数)社团(社团名,成立年份,地点,人数)

加入社团(社团名,学号,学生参加社团的年份)学生(学号,姓名,出生年月,系名,班级号,宿舍区)

●“学生”关系的最小函数依赖集为:Fmin={学号→姓名,学号→班级号,学号→出生年月,学号→系名,系名→宿舍区}●以上关系模式中存在传递函数依赖,如:学号→系名,系名→宿舍区●候选键是学号,外部键是班级号,系名。notice:在关系模式中,如果Y→X,X→A,且XY(X不决定Y),A不属于X,那么称Y→A是传递依赖。

班级(班级号,专业名,系名,人数,入校年份)

●“班级”关系的最小函数依赖集为:Fmin={(系名,专业名)→班级号,班级号→人数,班级号→入校年份,班级号→系名,班级号→专业名}(假设没有相同的系,不同系中专业名可以相同)●以上关系模式中不存在传递函数依赖。●“(系名,专业名)→班级号”是完全函数依赖。●候选键是(系名,专业名),班级号,外部键是系名。系(系名,系号,系办公地点,人数)

●“系”关系的最小函数依赖集为:Fmin={系号→系名,系名→系办公地点,系名→人数,系名→系号}●以上关系模式中不存在传递函数依赖●候选键是系名,系号社团(社团名,成立年份,地点,人数)

●“社团”关系的最小函数依赖集为:Fmin={社团名→成立年份,社团名→地点,社团名→人数)●以上关系模式中不存在传递函数依赖。●候选键是社团名

加入社团(社团名,学号,学生参加社团的年份)

●“加入社团”关系的最小函数依赖集为:Fmin={(社团名,学号)→学生参加社团的年份)●“(社团名,学号)→学生参加社团的年份”是完全函数依赖。

●以上关系模式中不存在传递函数依赖。●候选键是(社团名,学号)。

4.4对函数依赖X→Y的定义加以扩充,X和Y可以为空属性集,用φ表示,那么X→φ,φ→Y,φ→φ的含义是什么根据函数依赖的定义,以上三个表达式的含义为:(1)一个关系模式R(U)中,X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1[X]=t2[X]必有t1[φ]=t2[φ]。即X→φ表示空属性函数依赖于X。这是任何关系中都存在的。(2)φ→Y表示Y函数依赖于空属性。由此可知该关系中所有元组中Y属性的值均相同。(3)φ→φ表示空属性函数依赖于空属性。这也是任何关系中都存在的。4.5已知关系模式R(ABC),F={A→C,B→C},求F+。

可以直接通过自反律、增广律、传递律加以推广:F+={φ→φ,A→φ,B→φ,C→φ,A→C,B→C,AB→φ,AB→A,AB→B,AB→C,AB→BC,AB→AB,AB→ABC,BC→φ,BC→C,BC→B,BC→BC,AC→φ,AC→C,AC→A,AC→AC,ABC→φ,ABC→A,ABC→B,ABC→C,ABC→BC,ABC→AB,ABC→ABC}

4.6试分析下列分解是否具有无损联接和保持函数依赖的特点:(1)设R(ABC),F1={A→B}在R上成立,ρ1={AB,AC}。首先,检查是否具有无损联接特点:第1种解法--算法4.2:

A

B

C

AB

a1

a2

b13

AC

b22

a3

(1)构造表

(2)根据A→B进行处理

结果第二行全是a行,因此分解是无损联接分解。第2种解法:(定理4.8)设R1=AB,R2=ACR1∩R2=AR2-R1=B∵A→B,∴该分解是无损联接分解。然后,检查分解是否保持函数依赖πR1(F1)={A→B,以及按自反率推出的一些函数依赖}πR2(F1)={按自反率推出的一些函数依赖}F1被πR1(F1)所蕴涵,∴所以该分解保持函数依赖。(2)设R(ABC),F2={A→C,B→C}在R上成立,ρ2={AB,AC}首先,检查是否具有无损联接特点:第1种解法(略)第2种解法:(定理4.8)设R1=AB,R2=ACR1∩R2=AR2-R1=C∵A→C,∴该分解是无损联接分解。然后,检查分解是否保持函数依赖πR1(F2)={按自反率推出的一些函数依赖}πR2(F2)={A→C,以及按自反率推出的一些函数依赖}∵F1中的B→C没有被蕴涵,所以该分解没有保持函数依赖。(3)设R(ABC),F3={A→B},在R上成立,ρ3={AB,BC}.首先,检查是否具有无损联接特点:第1种解法:

BC

b21

D

b14

b24

AD

b32

b33

a4

(2)根据A→B,B→C,A→D,D→C进行处理

每一行都是a,ρ相对于F是无损联接分解。(3)πAB(F)∪πAC(F)∪πAD(F)={A→B,A→C,A→D},没有满足B→C,D→C函数依赖,因此ρ相对于F的这个分解不保持函数依赖。4.8设R=ABCD,R上的F={A→C,D→C,BD→A},试证明ρ={AB,ACD,BCD}相对于F不是无损联接分解。根据算法4.2

ACD

BCD

b31

(2)根据A→C,D→C,BD→A进行处理

没有一行都是a,所以,ρ相对于F不是无损联接分解。4.9设R=ABCD,R上的F={A→B,B→C,D→B},把R分解成BCNF模式集。(1)若首先把R分解成{ACD,BD},试求F在这两个模式上的投影。(2)ACD和BD是BCNF吗如果不是,请进一步分解。(1)πACD(F)={A→C}πBD(F)={D→B}(2)因为根据BCNF的定义,要求关系模式是第一范式,且每个属性都不传递依赖于R的侯选键。BCD中(A,D)为候选键,可是(A,D)→A,A→C,所以它不是BCNF模式。它可进一步分解为:{AC,DC},此时AC,DC均为BCNF模式。BD是BCNF,因为R2(BD)是第一范式,且每个属性都不传递依赖于D(候选键),所以它是BCNF模式。4.10设R=ABCD,ρ={AB,BC,CD}。F1={A→B,B→C};F2={B→C,C→D};(1)如果F1是R上的函数依赖集,此时ρ是无损联接分解吗若不是,试举出反例。(2)如果F2是R上的函数依赖集呢(1)不是无损联接。可由算法4.2判断或由定理4.8判断。根据算法4.2

CD

(2)根据A→B,B→C进行处理

只要保证每个属性值不可分割,以上范式即为1NF。候选键为(E#,Business,Phone#)

转换成2NF关系(消除局部依赖):Em_Dep(E#,D#,Manager_E#,Office#,Area,J#,Budget)对应F={D#→Manager_E#,E#→Office#,J#→Budget,E#→J#,Office#→Area,Office→D#}History(E#,Business,History)对应F={(E#,Business)→Sa_History}Phone(Phone#,Office#)对应F={Phone#→Office#}转换成3NF关系(消除非主属性对侯选键的传递依赖):Department(D#,Manager_E#)Office(Office#,Area,D#)Emproee(E#,J#,Office#)History(E#,Business,History)Phone(Phone#,Office#)Project(J#,Budget)

注意:由于对题意理解的不同,可能答案不唯一。4.13设关系模式R(ABC)上有一个多值依赖A→→B。如果已知R的当前关系中存在三组(ab1c1)、(ab2c2)和(ab3c3),那么这个关系中至少还应存在哪些元组从多值依赖的定义可以得出,至少应存在下列元组:(ab1c2)、(ab1c3)、(ab2c1)、(ab2c3)、(ab3c1)、(ab3c2)

(1)DBMS可处理的模式;

(2)子模式;

(3)应用程序设计指南;

约束形式

说明对象

激活条件

是否保证一致性

基于属性的检查

只对一个属性值加以约束

插入或修改属性值时

不一定

基于元组的检查

对单个关系的元组值加以约束

在插入或修改元组时

断言

多个关系或聚合操作

任何变动

保证

7.12试述基于半联接查询的优化策略。假设场地1的关系R和场地2的关系S在属性R.A和S.B上做联接操作,为了减少数据传输量,采用半联接方法,表示方法如下:

8.3什么是对象联系图?图中,椭园、小圆圈、单箭头(→),双箭头(→→),双线箭头(=>),双向箭头(←→)所表示的含义。答:椭圆表示对象,小圆圈表示属性是基本数据类型,单箭头(→)表示函数值是单值,双箭头(→→)表示函数值是多值,双线箭头(=>)是泛化边,表示泛化/细化联系,双向箭头(←→)表示两个函数互逆。

8.5子表和超表应满足哪两个一致性要求?

子表和超表应满足下列两个一致性要求:(1)超表中每个元组最多可以与每个子表中的一个元组对应。(2)子表中每个元组在超表中恰有一个元组对应,并在继承的属性上有相同的值。

8.6继承性体现了数据间什么联系?试举例说明。

继承是"isa"(细化/泛化)联系。比如卡车是车的子类,“卡车”“isa”“车”“卡车”和“车”之间存在继承性。

另一条途径是在OOPLC++基础上进行扩充,能操作持久数据,处理数据库,形成持久化C++系统,即OODBS。但较难提供对说明性查询的支持,因此推广使用难度较大。

THE END
1.开店取名字,怎么知道能不能用开店取名字,怎么知道能不能用 回复: 一,要看你所起店名,是否能表述你的愿望和信念! 二,店名,是否具有令顾客留连往返 的吸引力! 三,店名,能否表述你所经营内容! 四,是否俗读或误读!? 五,店名应简明扼要! 醒目!起“画龙点睛”之力!? ―――防止侵权!(打油翁)书!http://www.bochuan166.com/zhzs/172349710417557.html
2.怎么查店名是否被注册商标了,注解研讨状况:位版90.70本文围绕如何查询店名是否被注册商标展开讨论,介绍了国家商标局官网查询、第三方商标查询平台和请教专业人士等多种查询方法,结合注解研讨状况,分析了商标查询系统的更新与优化、商标侵权现象的打击与防范以及商标注册流程的简化与普及等方面的内容,还基于版本90.70的位版技术,分析了其在商标查询领域的应用,随着技术的不断发https://www.uucxtrip.com/post/11944.html
3.怎么查注册商标能不能用免费法律咨询系统将反馈该商标的注册状态等信息,若显示已注册,则该商标已被他人注册,不能使用;https://www.66law.cn/question/49548194.aspx
4.如何查询企业是否经营?如何查询企业是否经营? 可通过北京市企业信用信息网查询企业年度报告获得企业开业、歇业、清算等存续状态信息。https://www.bjfsh.gov.cn/ztzx/2021/yhyszb/aqzsk/yfhh/202411/t20241127_40083396.shtml
5.店名怎么查能不能注册(通过向当地的工商部门进行查询)爱问知识人以及相关的一些企业资质问题。本文店名怎么查能不能注册,通过向当地的工商部门进行查询到此分享完毕,希望https://iask.sina.com.cn/b/new9HmggDrlP7v.html
6.探究小红书昵称重名现象,揭秘能否使用相同昵称的真相与规则限制店名怎么查是否重名 1、查询店铺名称是否可用,可以通过以下几种方式:进行商标查询,访问国家商标局网站或商标代理机构,了解店铺名称是否已被注册为商标,店铺名称不能与知名商标重名,以免被驳回。 2、解决这个问题相对简单,您可以前往工商部门注册店名,在申领营业执照时,工商部门会将您的店名输入电脑,立即检测是否有重名,http://wap.zhouchengjiareqi.com/5F120dF900F9.html
7.快手店铺名怎么查询?一、快手店铺名怎么查询? 在快手页面的右上角有个搜索框,可以输入店铺的名字,然后就能找到相关店铺的信息,如果不知道具体的店名,也可以搜索店铺主要经营的东西,就能找到店铺。不过如果真的喜欢固定在一个店铺里面买东西,最好就把这个店收藏,关注,方便下次寻 https://www.lnky.net/hsjj/27121.html
8.怎么查店名是否被注册商标怎么查店名是否被注册商标 一、怎么查店名是否被注册商标 针对查询店铺名字是否已被申请注册的步骤,我们可以按照以下方式进行操作: 首先,请您登陆个人手机上的微信应用,进入微信所提供的小程序界面,并在此界面中找到【国务院客户端】的图标进行点击。接下来,当您成功登录到国务院客户端的小程序界面之后,可以在其底部https://www.64365.com/zs/3027959.aspx
9.怎么查自己的店名是否被注册商标怎么查商标名称有没有被注册不管是个体户还是工商企业,在经营发展的过程为了形成自己的品牌效应是会申请注册一个属于自己的商标的,从而扩大自己的影响力,但是想要注册一个商标是需要先预查询的。下面就让公司宝小编对怎么查自己的店名是否被注册商标,怎么查商标名称有没有被注册进行一定的介绍,希望能为你解疑答惑。 https://www.gongsibao.com/article-4792.html
10.街头错别字调查报告街头错别字调查报告(通用27篇)写成的繁体字的坏处是:有些人看不懂繁体字,经常会认错字,就会造成字认失误,严重的可能会造成巨大的损失。这多么不值得啊!走在大街小巷中,一定能看到许多酒店和商店为了显示气派,时常会用繁体字写店名。但是一些字没有繁体,只好用简化的,并且繁体字笔画较多,一不小心就会写错。比如像是“贰”字,有多少人会给它https://www.shubaoc.com/zhichang/diaoyan/45ow.html
11.怎么查店名有没有被注册政策解读怎么查店名有没有被注册2022-02-21 2,802 视频内容可以通过向当地的工商部门进行查询。店名注册的具体流程包括: 1、到工商网站去查询名称是否已经被注册; 2、办理名称预先核准登记; 3、咨询后领取并填写《名称(变更)预先核准申请书》,同时准备 相关材料; 4、递交《名称(变更)预先核准申请书》及相关材料,等待名称https://www.110ask.com/zhengce/1496256721348523205.html
12.怎么查自己的店名是否被注册过(如何查询自己的店名是否已被注册你有一个创意十足的店名,但是你不确定这个店名是否已经被注册过了。这时候,你需要进行一些简单的步骤来确认一下。下面,我们将为你介绍如何查自己的店名是否被注册过。 1. 搜索商标数据库 商标数据库是一个非常有用的工具,可以帮助你查看是否有人已经注册了你的店名。你可以在美国专利商标局的网站上进行搜索,也可以https://www.yinghuodd.com/knowledge/detail_344947.html
13.抖音怎么查店名有没有被注册过抖音作为国内最火的短视频平台,吸引了众多商家入驻,开设自己的网店。然而,开店之前,有一个问题不能忽视,那就是店名是否已经被别人注册过了。如果重名了,不仅会影响店铺的形象和识别度,还可能涉及到商标侵权的风险。那么,抖音怎么查店名有没有被注册过呢?本文将为您介绍两种简单有效的方法。 https://tsgg.siglff.com/xinwenzixun/yxch/37900.html
14.怎么看店名有没有注册过(店名是否注册过哪里查询)怎么查店名是否被注册商标:怎样查询店名是否被注册!可以中国商标网(:/tmois/wscxsy_getIndex.xhtml)输入您要检索的商标名,非商标注册的店名无法查询。 5745 店名有没有被注册看哪里 要查看店名是否被注册商标,有几个可行的方法:在国家企业信用信息公示系统网站查询商标登记情况。这个网站是由国家工商行政管理http://www.wxweida.com/bg/ded2eeb/