浏览 2597 次
锁定老帖子 主题:关于关系模型的思考
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-05-26
我们平时所说的关系事实上应该是关系变量,关系变量的某个值称为关系的值,简称关系。可以从逻辑学的角度分析数据库。 1.关系变量的表头表示了某个特定的谓词,谓词可以看做是真值函数。调用该函数即是谓词实例化。 2.与关系变量有关的命题都是真命题,即关系是真命题的集合。若关系变量R的谓词是P,那么在给定时间里每一个出现在R中的元组t都能被看做是一个特定的真命题m。设t中的属性为A1,A2...An,m=P(A1,A2,....An); 3.数据库可以被认为是真命题的集合,而不只是数据的集合,当系统求一些关系表达式的值(比如查询)其实是对给定的真命题进行推导。 于是有了点想法,关系模型可以建立在关系代数或逻辑学的基础之上,有着数学的理论基础,然而面向对象只是一种思想,并没有强大的理论基础,既然面向对象和关系模型不匹配,而且对象数据库目前难成大器,为何没有诞生面向关系的编程语言呢?关系理论模拟现实世界的能力真的不够么? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-06-17
有,sql就是典型的面向关系
|
|
返回顶楼 | |
发表时间:2008-06-19
python 写道 有,sql就是典型的面向关系
我不是这个意思,我是指在面向对象语言中加入面向关系的特性,使得它能和sql的操作匹配 |
|
返回顶楼 | |
发表时间:2008-06-22
LZ似乎应该去关心下当前数据库的发展,估计会有你所要的内容。查查面向对象数据库。
关系有大学数学里一堆理论撑着(学了都忘了啊,估计是那些集合、离散之流,呵呵),OO却只是种思考方式,或者说是哲学,而且像Java 这类的语言处理集合数据是多么的麻烦,如果能混在一块,可能还真是个不错的东西。 其实你可以看到,面向关系和面向对象是可以相互转换的。 |
|
返回顶楼 | |
发表时间:2008-06-23
SQL的数学理论好像是域关系演算OOXX 应该也是图灵完备的吧(我不确定) 就是不太容易建立高效的内存模型
OO跟那个是两回事 好像SQL也可以想办法OO起来 你说的"我不是这个意思,我是指在面向对象语言中加入面向关系的特性,使得它能和sql的操作匹配"这个 明明就是C#3.0里面的Linq嘛 |
|
返回顶楼 | |
发表时间:2008-06-23
csf178 写道 SQL的数学理论好像不是谓词逻辑而是域关系演算OOXX 应该也是图灵完备的吧(我不确定) 就是不太容易建立高效的内存模型
OO跟那个是两回事 好像SQL也可以想办法OO起来 你说的"我不是这个意思,我是指在面向对象语言中加入面向关系的特性,使得它能和sql的操作匹配"这个 明明就是C#3.0里面的Linq嘛 |
|
返回顶楼 | |
发表时间:2008-06-27
csf178 写道 csf178 写道 SQL的数学理论好像不是谓词逻辑而是域关系演算OOXX 应该也是图灵完备的吧(我不确定) 就是不太容易建立高效的内存模型
OO跟那个是两回事 好像SQL也可以想办法OO起来 你说的"我不是这个意思,我是指在面向对象语言中加入面向关系的特性,使得它能和sql的操作匹配"这个 明明就是C#3.0里面的Linq嘛 关系代数已经证明了可以用数理逻辑等价表示,sql不是图灵完备的吧,至于c#我还没有去关注过呢,呵呵,等暑假放假的时候看看。。。 |
|
返回顶楼 | |
发表时间:2008-06-27
python 写道 LZ似乎应该去关心下当前数据库的发展,估计会有你所要的内容。查查面向对象数据库。
关系有大学数学里一堆理论撑着(学了都忘了啊,估计是那些集合、离散之流,呵呵),OO却只是种思考方式,或者说是哲学,而且像Java 这类的语言处理集合数据是多么的麻烦,如果能混在一块,可能还真是个不错的东西。 其实你可以看到,面向关系和面向对象是可以相互转换的。 呵呵,面向对象数据库我早就想研究了,可以从其中借鉴思想,不过课程很多精力有限啊,我现在正打算暑假看形式化软件工程,即传说中的B方法,希望从中能借鉴点东西,拓宽一下思路,我一直在想OO是否可以有数学基础,我也认同它是一种哲学的思维,所以目前看来只有数理逻辑最有希望成为其数学基础了。。。 |
|
返回顶楼 | |