精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● 群件>>奇谈怪论>>关于NSF数据库与关系数据库的比较

主题:关于NSF数据库与关系数据库的比较
发信人: hntangwei()
整理人: kamkam(2002-05-01 23:01:29), 站内信件
前言

   对于每一个转向Notes的开发者来说,一个主要的问题是关于Notes的数据模板。在所有我们的院校课程里,关于数据库系统的教学主要集中的关系数据库上,尤其是在SQL DB2 ORACLE大行其道的年代,我们那里有听说过还有文档数据库这种东西。
   听过很多这样的问题,Notes为什么不支持关系啊,NSF中的文档为什么不支持加锁啊?继而我们会怀疑,Notes这个东西怎么这么不好用,开发起来怎这么费劲?当然,这涉及到很多其他的问题,如:应用是否适合用Notes来开发,或者说,你最好不要去做拿Notes来做进销存这样的事。我们这里要来看看,NSF数据库和关系数据库的比较。

NSF里有什么

   在Notes Designer的帮助里,有一副图,不知道大家有没有仔细的看过。里面描述了Notes的NSF数据库里都存贮了什么。我们讲,里面包括几个部分:设计元素、数据文档。
   设计元素就是Form,View,Folder等等,它们构成了应用的基础。
   数据文档是用户提交的数据信息。形象来说,它就是用户保存在Form中的文档,例如:一份公告。

比较一下
   
   对照一下关系数据库以及一些基础的数据库理论,我们来看一下它们之间的相同和不同之处。
   首先我们知道,在数据库理论中,有物理模式,外模式和内模式之分。我们通常知道,物理模式一般指数据库的物理存贮方式;外模式一般是数据库对于用户而言,用户能看到的数据库是怎样的,例如:用户会认为数据库是一张报表;而内模式主要指数据库的内部逻辑,例如:不同表,以及表和表之间的各种逻辑关系。
   我们这里不再讨论物理模式,我们无法讨论,我们不是在设计一个数据库,而是在设计一个应用。
   在关系数据库当中,内模式通常就是一个个表Table的定义,以及表之间的关系定义(外键)。它体现在对一个现实世界的数据描述,以及对于他们相互之间关系的描述(可以说是面向对象的数据库设计)。而外模式通常是一个用户能看到的数据库中的数据,可能是数据库系统提供一个视图V在iew,或者是一个开发者定制的报表。   
   在Notes的NSF数据库当中,内模式也是表格的定义(Form+Field),它用来向用户显示和保存数据。而外模式通常是一个用户的能看到View或是Folder。从某种意义上来说,我们讲Form也是一种数据库的外模式的体现,因为,在Notes当中,Form只在显示文档时才起作用,它本身并不保存在文档里。不像关系数据库,一个Table中的一行数据就必须是符合Table定义的。NSF中的一份文档可以不符合任何的格式定义,也没有相应的数据约束一说。数据约束只在用户透过Form输入数据时是有效的。
   
如何利用
   
   简单的来看一下如何利用这种特性。
   我们讲,Notes 中view/folder是一个外模式,它提供用户浏览和查找文档数据的方法。因此,我们可以为不同的用户定制不同的视图。以达到,例如:在典型的公文处理应用中,文件审批者和文件的承办人,他们能看到的View或是View中的内容是不一样的。
   我们还提到Form是一种内模式的机制,它提供用户浏览保存在NSF中的文档信息的方法。因此,我们可以为不同的用户定制不同的Form。以达到,例如:在典型的公文处理应用中,文件审批者和文件的承办人,他们能看到的文档信息(Form)是不同的。

    
   


----
 I believe I can fly
 I blieve I can touch the sky
 I think it day and night
 All my dream have carried out
 I believe I can sure  

[关闭][返回]