数据库选择,图片第70题

数据库选择,图片第70题,第1张

首先对于给定的R(U)和函数依赖集F,可以将它的属性划分为4类:

L类,仅出现在F的函数依赖左部的属性。

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

N类,在F的函数依赖左部和右部均未出现的属性。

LR类,在F的函数依赖左部和右部两部均出现的属性。

根据以下定理和推论来求解候选码。

定理1:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,则X必为R的任一候选码的成员。

推论1:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,且X+包含了R的全部属性,则X必为R的唯一候选码。

定理2:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是R类属性,则X不在任何候选码中。

定理3:设有关系模式R及其函数依赖集F,如果X是R的N类属性,则X必包含在R的任一候选码中。

步骤:

(1)将R的所有属性分为L、R、N、LR四类,令X代表L、N两类,Y代表LR类。

(2)求 X+(X的闭包)若X+包含了R的全部属性,则X即为R的惟一候选码,转(5);否则转(3)在Y中逐一取每个属性A,求(XA)+。若它包含了R的全部属性,则转(5);否则调换一属性反复进行这一过程,直到试完所有Y中的属性。

(4)在Y中依次取两个、三个属性…求它们的属性闭包直到其闭包包含R的全部属性。

(5)输出结果。

1、给出解题的过程:

aL:B ; R:D,E ; LR:A,C ;没有N类属性

bD和E不包含在任何候选码中,只剩下A,B和C,而B属于L类,故必定包含在任意候选码中。将A,B和C组合:AB,BC和ABC

c求闭包

AB的闭包:ABCDE

BC的闭包:ABCDE

不用再计算{ABC}的闭包了,因为存在两个元素的候选键的闭包包含全部属性

d输出候选码为AB,BC

2、求F的最小覆盖为:F1={AB->C,C->A,C->D,B->E}则无损且保持函数依赖的分解为:

R1(A,B,C) R2(C,A,D) R3(B,E)

或者分解R1(A,B,C) R2(C,D) R3(B,E)也是正确的。

闭包是一个可调用的对象 它记录了一些信息 这些信息来自于创建他的作用域 用过这个定义 可以看出内部类是面向对象的闭包 因为他不仅包含外围类对象的信息 还自动拥有一个指向此外围类对象的引用 在此作用域内 内部类有权 *** 作所有的成员 包括private成员

Java代码

interface Incrementable

{

void increment();

}

class Callee implements Incrementable

{

private int i= ;

public void increment()

{

i++;

System out println(i);

}

}

class MyIncrement

{

void increment()

{

System out println( other increment );

}

static void f(MyIncrement mi)

{

mi increment();

}

}

class Callee extends MyIncrement

{

private int i= ;

private void incr()

{

i++;

System out println(i);

}

private class Closure implements Incrementable  //内部类

{

public void increment()

{

incr();

}

}

Incrementable getCallbackReference()

{

return new Closure();   //新建内部类

}

}

class Caller

{

private Incrementable callbackRefference;

Caller(Incrementable cbh)

{

callbackRefference = cbh;

}

void go()

{

callbackRefference increment();//调用increment()方法

}

}

public class Callbacks

{

public  static void main(String [] args)

{

Callee c =new Callee ();

Callee c =new Callee ();

MyIncrement f(c );

Caller caller =new  Caller(c );

Caller caller =new Caller(c getCallbackReference());//将内部类中的Closure赋给Caller

caller go();

caller go();

caller go();

caller go();

}

}

输出

other increment

Callee 继承字MyIncrement 后者已经有一个不同的increment()方法并且与Incrementable接口期望的increment()方法完全不相关 所以如果Callee 继承了MyIncrement 就不能为了Incrementable的用途而覆盖increment()方法 于是这能使用内部类独立的实现Incrementable

lishixinzhi/Article/program/Java/hx/201311/25624

利用分解规则,将所有的函数依赖变成右边都是单个属性的函数依赖。从题目来看,F中的任何一个函数依赖的右部仅含有一个属性:{A→B,B→A,B→C,A→C,C→A}

第二步去冗余的的顺序不同,产生结果也会不同,故最小函数依赖集合不止一个,还可发现另一个最小(极小)函数依赖集合为:{A→B,B→A,A→C,C→A}

给定一个数集A,假设其中的元素为x。现对A中的元素x施加对应法则f,记作f(x),得到另一数集B。假设B中的元素为y。则y与x之间的等量关系可以用y=f(x)表示。函数概念含有三个要素:定义域A、值域C和对应法则f。其中核心是对应法则f,它是函数关系的本质特征。

扩展资料:

函数的对应法则通常用解析式表示,但大量的函数关系是无法用解析式表示的,可以用图像、表格及其他形式表示。

函数与不等式和方程存在联系(初等函数)。令函数值等于零,从几何角度看,对应的自变量的值就是图像与X轴的交点的横坐标;从代数角度看,对应的自变量是方程的解。

另外,把函数的表达式(无表达式的函数除外)中的“=”换成“<”或“>”,再把“Y”换成其它代数式,函数就变成了不等式,可以求自变量的范围。

参考资料来源:百度百科——函数

以上就是关于数据库选择,图片第70题全部的内容,包括:数据库选择,图片第70题、Java中的闭包与回调、数据库:求F={A→B,B→A,B→C,A→C,C→A},最小(极小)函数依赖集合等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存