sqlserver 文件数据库和关系数据库的比较

摘要:随着应用领域的不断拓展和多媒体技术, 人们发现关系数据库的许多限制和不足,因而数据库技术进入了“后关系数据库时代”。文件数据库由此应运而生。本文概要地从数据格式、数据库结构和WEB发布数据三个方面比较了文件数据库和关系数据库的异同,同时差别了文件数据库和过去存储数据的文件系统的不同。

关键词:数据库 Internet 文件数据库 WEB数据库服务器

一、关系数据库的优势和目前面临的问题

从60年代末开始, 数据库技术经历了层次数据库、网状数据库和关系数据库而进入数据库管理系统( DBMS)阶段至今, 数据库技术的研究也不断取得进展。80年代, 关系数据库成为发展的主流, 几乎所有新推出的DBMS产品都是关系型的。关系型数据库在计算机数据管理的发展史上是个重要的里程碑,这种数据库具有数据结构化、最低冗余度、较高的程式和数据独立性、易于扩充、易于编制应用程式等好处,目前较大的信息系统都是建立在结构化数据库设计之上的。
然而,随着网络技术和软件技术的飞速发展,特别是Internet和Intranet技术的发展,使得非结构化数据的应用日趋扩大。关系数据库从1970年发展至今,虽功能日趋完善,但对数据类型的处理只局限于数字、字符等,对多媒体信息的处理只是停留在简单的二进制代码文件的存储。然而,随着用户应用需求的提高、硬件技术的发展和Intranet/Internet提供的多彩的多媒体交流方式,用户对多媒体处理的需求从简单的存储上升为识别、检索和深入加工,正是用户呼唤出"通用"数据库服务器来处理占信息总量70%的声音、图像、时间序列信号和视频等复杂数据类型。据有关数据,1996年,全球数据库市场的销售额已接近40亿美元,预计到2000年,数据库市场销售额将达到80亿美元。巨大的增长潜力来自复杂数据类型的处理需求,使处理复杂数据类型的"超媒体"数据库将成为各公司投资研发的重点。

二、全新的文件数据概念

从1989年起,Lotus通过其群件产品Notes提出了数据库技术的全新概念-"文件数据库",文件数据库差别于传统的其他数据库,他是用来管理文件。在传统的数据库中,信息被分割成离散的数据段,而在文件数据库中,文件是处理信息的基本单位。一文件能非常长、非常复杂、能无结构,和字处理文件类似。
文件数据库和五、六十年代管理数据的文件系统不同,文件数据库仍属于数据库范畴。首先,文件系统中的文件基本上对应于某个应用程式。当不同的应用程式所需要的数据有部分相同时,也必须建立各自的文件,而不能共享数据,而文件数据库能共享相同的数据。因此,文件系统比文件数据库数据冗余度更大,更浪费存储空间,且更难于管理维护。其次,文件系统中的文件是为某一特定应用服务的,所以,要想对现有的数据再增加一些新的应用是非常困难的,系统不容易扩充。数据和程式缺乏独立性。而文件数据库具有数据的物理独立性和逻辑独立性,数据和程式分离。
文件数据库也不同于关系数据库,关系数据库是高度结构化的,而Notes的文件数据库允许创建许多不同类型的非结构化的或任意格式的字段,和关系数据库的主要不同在于,他不提供对参数完整性和分布事务的支持,但和关系数据库也不是相互排斥的,他们之间能相互交换数据,从而相互补充、扩展。

三、关系数据库和文件数据库的异同

下面从三个方面比较两种数据库的异同:
1、格式文本/多媒体
在信息时代,所有信息大体上能分为两类:一类信息能够用数据或统一的结构加以表示。例如,成本、费用、人员、工资及员工业绩等,都能用数字或文字来描述或表达。这类信息具有相同的层次或网络结构,我们称之为结构化数据;而另一类信息根本无法用数字或统一的结构表示,例如,图象、声音等,我们称之为非结构化数据。这些非结构化数据既能是一段包含大量附加信息(如排版信息)的文字信息,也可能是一段声音、图象,甚至是影像。对于结构化数据和非结构化数据的关系如图所示,非结构化数据包括结构化数据,但又不止是结构化数据;结构化数据属于非结构化数据,是非结构化数据的特例。一般来说,在人们的认识之中,关系数据库最主要的特征就是数据的结构化。然而,随着网络技术和软件技术的飞速发展,特别是Internet和Intranet技术的发展,使得非结构化数据的应用日趋扩大。关系数据库是高度结构化的,这种数据结构化使关系数据库具有冗余度最低、程式和数据独立性较高、易于扩充、易于编制应用程式的特点。不过,随着应用领域的不断拓展, 为满足应用对数据处理不断"苛刻"的需求, 人们开始发现关系数据库的许多限制和不足。因为文件数据库的基本元素就是文件本身,而数据库中的文件能同时包含结构化的和非结构化的信息,所以,文件数据库能够存储和管理类似文件这样的非结构化数据。特别是,Notes的对象库是个非常最佳的商业信息存储器,可用于高效地存储、传播、分配和管理这类信息。这类信息通常具有丰富的数据类型,如表格(能是从某个关系数据库或电子表软件中得到的)、格式化文本、WWW的页面、图像、OLE对象、或扫描的图象及传真件、声频或视频信号这样的多媒体信息。
2、在结构上
关系数据库是应用数学方法来处理数据库数据的,其数据模型也是建立在数学概念基础上的,在关系模型中,数据在用户观点下的逻辑结构就是一张二维表。而Lotus Notes是个文件数据库管理系统,文件数据库的基本元素就是文件。这里的文件和关系数据库中的记录相似。Notes文件的结构是由表单(form)定义的,而表单由一组各式各样的字段域组成。
(1)域(Domain)和字段(Field)
在关系数据库中,域(Domain)是属性值的集合,如:大于0小于150的正整数,长度小于25的字符串集合等等。而在文件数据库中,域(Field)的概念出目前表单对象中,域是表单上存储数据的单个元素,域决定了一个独立的文件能包含什么数据。虽二者的中文译文相同,但其实际意义和作用相差千里。反而在文件数据库中域的概念和关系数据库中的字段(Field)相类似。
(2)条目(Item)和属性(Attribute)
在关系数据库中,有属性(Attribute)的概念,即二维表中的每一列称为一个属性,给每一列起一个名称即属性名。而在文件数据库中,就没有"属性",文件拥有的是条目(Item),条目是指存储于文件中的任意数据部分。每一个条目代表文件中一段数据,在用户界面中,是通过表单中的域来显示文件中的条目的。二者虽命名不同,但笔者认为从"属性"的角度更容易理解文件数据库中条目的意义。
(3)视图(View)
在关系数据库和文件数据库中,均有视图的概念。在关系数据库中,视图是指从一个或几个基本表(或视图)导出的表。视图和基本表不同,视图是个虚表,即视图所对应的数据不实际存储在数据库中,数据库中只存储视图的定义(存在数据字典中)。在文件数据库中,用户通过Notes视图浏览文件。视图是非常方便的目录,用户能从中看到关于文件的概要信息和文件的状态,然后存取特定的Notes文件。文件数据库中文件能在视图中显示起全部或部分内容,通过视图,用户能看一组文件的关键域,并可按某一准则对显示的信息进行分类和排序。实质上,二者逻辑上非常相似,即视图所对应的数据均不实际存储在数据库中,数据库中只存储视图的定义。
3、WEB数据库
近年来网络体系结构经历了一次次重大变迁,客户机/服务器结构越来越流行了,Intranet以惊人的速度在短短一年内迅速蔓延,面临新的格局,怎么简易地实现"客户机/服务器"连接和"Web/Intranet"连接成为数据库管理人员关注的焦点。计算机技术和网络技术的发展使以网络为中心的计算日益得到重视,WWW系统和数据库成为网络化信息服务的基础。如果能把文件数据库同WWW服务器连接起来,就能从浏览器中检索文件。这种一体化的信息网络系统:数据库+WWW服务器,便成为下一代Internet研发的新领域。目前,在Web上一个典型的数据库应用程式应包括三个部分:Web浏览器、HTTP 服务器和Web数据库服务器。对于一般的关系型数据库,实现Web数据库的应用通常有两种方法:一种是Web服务器提供中间件连接Web服务器和数据库服务器;另一种是把应用程式下载到客户端直接访问数据库。最常用的中间件技术有通用网关接口(CGI)和应用程式编程接口(API)两种。CGI程式缺陷在于CGI接口不支持用户和数据库间的持续互操作,再就是CGI的效率低,且需要同时运行多个CGI程式。用户每次连至服务器时,服务器都要创建一个事务或运行CGI程式的一个拷贝。这样对于一个复杂的应用或有多个用户访问时,就会加重服务器的负担。API在非常大程度上克服了CGI的缺点,但其兼容性差和研发难度大也让广大研发人员望而却步。客户端访问数据库主要包括Java Script和数据库连接器(IDC)等。用Java Script和IDC研发Web数据库虽简单但同时也存在功能有限、不能完全控制其过程等缺点。所以他们也无法胜任较复杂的Web数据库的研发。难道就没有一个研发相对容易、功能强大且高效的Web数据库的研发方法吗?有,答案是-Lotus Notes。Lotus Notes通过文件数据库实现了多媒体文件管理,支持客户机/服务器工作方式。每个数据能包含若干不同形式的Notes文件。存放在一个或多个Notes服务器上,能让许多用户存取的数据库称为共享数据库。通过利用服务器存取和数据库存取控制等安全措施,数据库管理员能规定谁能存取数据库和在什么范围内使用数据库,各数据库在网上通过复制功能实现同步。这样,通过文件数据库用户能在网络上存取、追踪储存和组织信息。
四. 结束语
最近几年,我国的数据库市场飞速发展,并将具有更为巨大的增长潜力,表现为如下特点:首先,在近五年里,用户的选型观念发生了明显的改动,有更多的用户把数据库的重要性放在十分重要的地位,其主要原因是用户将把应用软件和应用需求放在首位,应用软件是否满足用户需求是整个项目是否成功的标志,而应用软件研发直接依赖于数据库研发工具。实际上,大量潜在的投资都在应用软件的研发上;另一个原因是硬件随着芯片技术的发展越来越缺乏特性,硬件指标将变成次要的考虑因素。对行业性应用来讲,以前是制定几家硬件产品作为优选,而今可能是最佳选择数据库厂家再考虑硬件厂家了。正是用户需求的这种变化给数据库厂商提供了新的发展机会。Lotus Notes为各数据库系统集成商提供了强大的文件数据库研发平台,Notes结合了企业级电子邮件、分布式文件数据库和快速应用研发等三位一体的强大技术、完全集成Internet技术,提供用户完整的,以网络为中心的应用技术平台。能预言,在不久的将来,Lotus Notes的文件数据库将成为继层次数据库、网状数据库和关系数据库之后的又一热点技术。

(0)

相关推荐

  • sqlserver 文件数据库和关系数据库的比较

    摘要:随着应用领域的不断拓展和多媒体技术, 人们发现关系数据库的许多限制和不足,因而数据库技术进入了"后关系数据库时代".文件数据库由此应运而生.本文概要地从数据格式.数据库结构和WEB发布数据三个方面比较了文件数据库和关系数据库的异同,同时差别了文件数据库和过去存储数据的文件系统的不同. 关键词:数据库 Internet 文件数据库 WEB数据库服务器 一.关系数据库的优势和目前面临的问题 从60年代末开始, 数据库技术经历了层次数据库.网状数据库和关系数据库而进入数据库管理系统(

  • spring mvc 读取xml文件数据库配置参数的方法

    本文主要介绍怎么通过属性注入与构造器注入实现把我们项目中要用到的数据库参数放到xml文件里面去,方便部署. spring mvc 4.2.6项目 SQL Server 2008数据库 本文介绍的主要使用ApplicationContext以及其实现类实现.主要用到的是ClassPathXmlApplicationContext. ClassPathXmlApplicationContext:从类路径ClassPath中寻找指定的XML配置文件,找到并装载 完成ApplicationContext

  • SQLServer导出数据库字典的详细图文教程

    SQL 直接修改带注释那行的表名称即可. SELECT 表名=case when a.colorder=1 then d.name else '' end, 表说明=case when a.colorder=1 then isnull(f.value,'') else '' end, 字段序号=a.colorder, 字段名=a.name, 标识=case when COLUMNPROPERTY(a.id,a.name,'IsIdentity')=1 then '√'else '' end, 主

  • 远程连接阿里云SqlServer 2012 数据库服务器的图文教程

    前言: 在使用 阿里云 上的一些产品时,遇到不少坑. 安装IIS 时,遇到因买的配置过低,虚拟内存不足,而导致 IIS 总是安装失败: 现在 在上面安装了个 Sql Sever 2012,远程老是 不能连接,百度找半天,终于能够连接上了. 实现步骤如下: 1. 找到 安全组配置,打开 安全组配置,点击配置规则,增加 地址段访问的 授权规则,Sql Server的默认端口时 1433 . 2. 服务器上 win + R  键入  compmgmt.msc ,打开 计算机管理,按照如图所示 设置.注

  • SqlServer编写数据库表的操作方式(建库、建表、修改语句)

    学习要点: SQL之-建库.建表.建约束.关系SQL基本语句大全.txt举得起放得下叫举重,举得起放不下叫负重.头要有勇气,抬头要有底气.学习要加,骄傲要减,机会要乘,懒惰要除.人生三难题:思,相思,单相思. SQL之-建库.建表.建约束.关系.部分T-sql语句 ---创建库 创建库之前 先进行 查看数据库中是否 已存在 次数据库 有便删除 --- if exists(select * from sys.sysdatabases where name='ConstructionDB')begi

  • SpringBoot项目application.yml文件数据库配置密码加密的方法

    在Spring boot开发中,需要在application.yml文件里配置数据库的连接信息,或者在启动时传入数据库密码,如果不加密,传明文,数据库就直接暴露了,相当于"裸奔"了,因此需要进行加密处理才行. 使用@SpringBootApplication注解启动的项目,只需增加maven依赖 我们对信息加解密是使用这个jar包的: 编写加解密测试类: package cn.linjk.ehome; import org.jasypt.encryption.pbe.StandardP

  • SqlServer将数据库中的表复制到另一个数据库

    目录 SqlServer将数据库中的表复制到另一个数据库 一.如果两个数据库在同一台服务器上 二.如果两个数据库在不同的服务器上 复制表结构与数据的图文方法 复制表结构 表的数据内容复制图文方法 SqlServer将数据库中的表复制到另一个数据库 一.如果两个数据库在同一台服务器上 1.复制表结构和数据(A->B):SELECT * INTO DatabaseB.dbo.TableB FROM DatabaseA.dbo.TableA 2.仅仅复制表结构(A->B):SELECT * INTO

  • sqlserver复制数据库的方法步骤(图文)

    复制数据库前要先确认目标数据库的服务是否启动 主要是SQL Server (MSSQLSERVER)这个服务要启动起来其他的看自己的需求 复制数据库 下一步 输入源数据库的地址使用sql server身份验证 输入目标的数据库地址 同样使用sql server认证登录 使用sql管理对象方法 选择要复制的数据库 这两个看自己的需求选择,然后点击下一步 直接下一步 直接下一步 这个看自己的需求定时间 点击完成即可 到此这篇关于sqlserver复制数据库的方法步骤(图文)的文章就介绍到这了,更多相

  • C语言实现图书管理系统(文件数据库)

    本文实例为大家分享了C语言实现图书管理系统的具体代码,供大家参考,具体内容如下 简介 c语言的一个大作业,发上来纪念下嘿嘿.写的不是很好,很多东西都揉在一起来,不过注释写的也挺多,希望能帮到有需要的朋友. 题目要求 简单文件数据库-模拟图书馆管理系统 涉及知识点:文件读写.内存管理.结构体定义.基本数据结构.高级格式化输入输出 要求: 编写一个程序模拟图书管理系统.用户分为管理员和读者两类,分别显示不同文本格式菜单,通过菜单项对应数字进行选择.读者菜单包括借书.还书.查询等功能.管理员菜单包括图

  • SqlServer修改数据库文件及日志文件存放位置

    --查看当前的存放位置 select database_id,name,physical_name AS CurrentLocation,state_desc,size from sys.master_files where database_id=db_id(N'数据库名'); --修改文件的存放位置下次启动生效 --testDb为数据库名, alter database 数据库名 modify file ( name = 文件名(不包含后缀), filename = '文件存储路径'); a

随机推荐