有关关系数据库理论的简答题

有关关系数据库理论的简答题,第1张

(1)求属性集的闭包,其实就是求各属性的闭包,然后整合去重复。

闭包就是由一个属性直接或间接推导出的所有属性的集合

A可以直接导出C A+={A,C}

D可以直接导出A C D+={A,C,D}

所以(AD)+={A,C,D}

B可以直接导出A,C B+={A,B,C}

(2)关键码的求解理论和算法对于给定的关系R(A1A2…An)和函数依赖集F ,可将其属性分为4类:L类:仅出现在F函数依赖左部的属性

R类:仅出现在F函数依赖右部的属性

N类:在F函数依赖的左右两部均未出现的属性

LR类:函数依赖的左右两部均出现的属性定理:

对于给定的关系模式R及其函数依赖集F,若X是R的L类属性,则X必为R的 任一关键码的成员。

所以可以看出BD是R的唯一关键码

(3)求最小函数依赖集

1根据分解性先分解所有依赖的右边为单属性

F={A->C,C->A,B->A,B->C,D->A,D->C}

2.对所有依赖的左边为多属性的情况,消除左侧冗余属性

3去除多余的函数依赖{A->C,C->A,B->A,D->A}

不知道对不对,对的话就继续。。

Hyperf 提供了创建模型的命令,您可以很方便的根据数据表创建对应模型。命令通过 AST 生成模型,所以当您增加了某些方法后,也可以使用脚本方便的重置模型。

hyperf模型中,默认的主键ID是小写的。这里和laravel不同,laravel是大写。一般查询不会有问题。但是如果使用到关联模型,如果你自己的表ID是大写ID,那么这里需要在你的模型中设置一个属性 protected $primaryKey = 'ID'; 否则会查不到关联数据

when 方法只有在第一个参数为 true 的时候才执行给的的闭包。如果第一个参数为 false ,那么这个闭包将不会被执行

你可以传递另一个闭包作为 when 方法的第三个参数。 该闭包会在第一个参数为 false 的情况下执行。为了说明如何使用这个特性,我们来配置一个查询的默认排序:

这里使用到三张表,一张是用户(users),一张是角色(roles),一张是用户角色关联表(users_roles)

首先创建用户模型、角色模型

1、其中 users_roles 是我关联表的表名

2、belongsToMany方法中,第一个参数,参数的与之关联的表模型;第二个参数是两个表的关联表(中间表);第三个参数是定义此关联的模型在连接表里的外键名;第四个参数是另一个模型在连接表里的外键名;

题目要补充完整,必须给出集合U

已知R(U,F),其中   U={A,B,C,D,E}, F={A→D,E→D,D→B,BC→D,DC→A},求候选关键字。

①取L类属性(仅出现在F的函数依赖左侧的)——E,C

②求EC关于F的闭包(即由EC可以推出哪些属性)——(EC)+ = ABCDE,包含了U的全部属性,故EC为候选关键字

注: 若U={A,B,C,D,E,P},P不在F中左侧或右侧,则P为N类属性,(ECP)+ =ABCDEP,同样包含了U的全部属性,那么候选关键字就为ECP

附:

定理一:对于给定的关系模式R(U,F),若X(X属于U)是L类属性,则X必为R的任一候选码的成员(组成部分)。

推论一:已知R(U,F),若X(X属于U)是L属性,且X+F包含了R的全部属性U,则X必为R的唯一候选码。

定理二:给定R(U,F),若X(X属于U)是R类属性,则X不在任何候选码中。

定理三:给定R(U,F),若X是R的N类属性,则X必包含在R的任一候选码中。

推论二:已知R(U,F),若X是R的N类和L类属性组成的属性集,且X+包含了R的全部属性U,则X是R的唯一候选码。

以上就是关于有关关系数据库理论的简答题全部的内容,包括:有关关系数据库理论的简答题、Hyperf之数据库模型、数据库技术:求候选关键字 A→D,E→D,D→B,BC→D,DC→A等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9486756.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存