函数与关系实例,函数运算与SQL,试验与关系元组

时间:2024-01-06 12:41:56

  函数是一个集合,它的每个元素都是二元组或多元组。例如 f = { (x, y) | x∈R & y∈R & y = 2x } ,g = { (x, y, z) | (x, y, z)∈R3 & z = 2x + 3y },符号 f 和 g 就引用到了两个函数。

  关系实例是一个集合,它的每个元素都是元组。可以看出关系实例和函数几乎是相同的概念,区别在于函数的每个元素不能是一个一元组,关系实例则无此约束。

  一个试验是一个元组,它的每个元素引用了一个事件。

实例:求函数最值

已知函数f = { (x,y,z) | (x,y,z)∈R3 且 z = x2 - y2 },函数 f 其实可以被看做是有无限个元素的关系实例

那么 minxmaxyf =

select T.x
from (select f.x, f.y
from f
where f.x, f.z in (select f.x, max(f.z)
from f
group by f.x)) as T
where T.y = (select min(T.y)
from T);

注意到,并没有使用 distinct 关键字去除重复。

实例:联合分布/条件概率

已知未知变量组 (X1, X2, X3, X4) ,那么每次试验可以用一个四维向量来表示,分别表示四个未知变量的一个取值,所有的试验组成了一张试验表,试验表可以被看作是有无限个元素并且元素可以重复的关系实例。

可以根据试验表 f 求出任意两个或多个未知变量的联合分布。

求 P(X1=k1 | X2=k2):

select count(T.*)/count(f.*)
from (select f.X1, f.X2
from f
where f.X1 = k1) as T
where T.X2 = k2;

注意到,标识符 f 和 T 都是表变量,也就是说这两个标识符引用了两张可以改变的表,where 字句的作用就是改变 f 和 T 引用的表。