论坛首页 综合技术论坛

关于关系模型的思考

浏览 2588 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-05-26  
 数据库的课程终于结束了,今天把E.F.Codd的大作A Relation Model of Data for Large Shared Data Banks打印出来,晚上去图书馆看了一晚上的Database in depth,深受震撼。

  我们平时所说的关系事实上应该是关系变量,关系变量的某个值称为关系的值,简称关系。可以从逻辑学的角度分析数据库。

1.关系变量的表头表示了某个特定的谓词,谓词可以看做是真值函数。调用该函数即是谓词实例化。

2.与关系变量有关的命题都是真命题,即关系是真命题的集合。若关系变量R的谓词是P,那么在给定时间里每一个出现在R中的元组t都能被看做是一个特定的真命题m。设t中的属性为A1,A2...An,m=P(A1,A2,....An);

3.数据库可以被认为是真命题的集合,而不只是数据的集合,当系统求一些关系表达式的值(比如查询)其实是对给定的真命题进行推导。



于是有了点想法,关系模型可以建立在关系代数或逻辑学的基础之上,有着数学的理论基础,然而面向对象只是一种思想,并没有强大的理论基础,既然面向对象和关系模型不匹配,而且对象数据库目前难成大器,为何没有诞生面向关系的编程语言呢?关系理论模拟现实世界的能力真的不够么?
   发表时间:2008-06-17  
有,sql就是典型的面向关系
0 请登录后投票
   发表时间:2008-06-19  
python 写道
有,sql就是典型的面向关系

我不是这个意思,我是指在面向对象语言中加入面向关系的特性,使得它能和sql的操作匹配
0 请登录后投票
   发表时间:2008-06-22  
LZ似乎应该去关心下当前数据库的发展,估计会有你所要的内容。查查面向对象数据库。

关系有大学数学里一堆理论撑着(学了都忘了啊,估计是那些集合、离散之流,呵呵),OO却只是种思考方式,或者说是哲学,而且像Java 这类的语言处理集合数据是多么的麻烦,如果能混在一块,可能还真是个不错的东西。

其实你可以看到,面向关系和面向对象是可以相互转换的。
0 请登录后投票
   发表时间:2008-06-23  
SQL的数学理论好像是域关系演算OOXX 应该也是图灵完备的吧(我不确定) 就是不太容易建立高效的内存模型

OO跟那个是两回事 好像SQL也可以想办法OO起来

你说的"我不是这个意思,我是指在面向对象语言中加入面向关系的特性,使得它能和sql的操作匹配"这个 明明就是C#3.0里面的Linq嘛
0 请登录后投票
   发表时间:2008-06-23  
csf178 写道
SQL的数学理论好像不是谓词逻辑而是域关系演算OOXX 应该也是图灵完备的吧(我不确定) 就是不太容易建立高效的内存模型

OO跟那个是两回事 好像SQL也可以想办法OO起来

你说的"我不是这个意思,我是指在面向对象语言中加入面向关系的特性,使得它能和sql的操作匹配"这个 明明就是C#3.0里面的Linq嘛

0 请登录后投票
   发表时间:2008-06-27  
csf178 写道
csf178 写道
SQL的数学理论好像不是谓词逻辑而是域关系演算OOXX 应该也是图灵完备的吧(我不确定) 就是不太容易建立高效的内存模型

OO跟那个是两回事 好像SQL也可以想办法OO起来

你说的"我不是这个意思,我是指在面向对象语言中加入面向关系的特性,使得它能和sql的操作匹配"这个 明明就是C#3.0里面的Linq嘛


关系代数已经证明了可以用数理逻辑等价表示,sql不是图灵完备的吧,至于c#我还没有去关注过呢,呵呵,等暑假放假的时候看看。。。
0 请登录后投票
   发表时间:2008-06-27  
python 写道
LZ似乎应该去关心下当前数据库的发展,估计会有你所要的内容。查查面向对象数据库。

关系有大学数学里一堆理论撑着(学了都忘了啊,估计是那些集合、离散之流,呵呵),OO却只是种思考方式,或者说是哲学,而且像Java 这类的语言处理集合数据是多么的麻烦,如果能混在一块,可能还真是个不错的东西。

其实你可以看到,面向关系和面向对象是可以相互转换的。

呵呵,面向对象数据库我早就想研究了,可以从其中借鉴思想,不过课程很多精力有限啊,我现在正打算暑假看形式化软件工程,即传说中的B方法,希望从中能借鉴点东西,拓宽一下思路,我一直在想OO是否可以有数学基础,我也认同它是一种哲学的思维,所以目前看来只有数理逻辑最有希望成为其数学基础了。。。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics