데이터 베이스 MySQL 튜토리얼 文件数据库和关系数据库的比较

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

Jun 07, 2016 pm 03:06 PM
관계 요약 데이터 베이스 문서 비교하다

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

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

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

 

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

 

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

60年代末开始, 数据库技术经历了层次数据库、网状数据库和关系数据库而进入数据库管理系统( DBMS)阶段至今, 数据库技术的研究也不断取得进展。80年代, 关系数据库成为发展的主流, 几乎所有新推出的DBMS产品都是关系型的。关系型数据库在计算机数据管理的发展史上是个重要的里程碑,这种数据库具有数据结构化、最低冗余度、较高的程式和数据独立性、易于扩充、易于编制应用程式等好处,目前较大的信息系统都是建立在结构化数据库设计之上的。

然而,随着网络技术和软件技术的飞速发展,特别是InternetIntranet技术的发展,使得非结构化数据的应用日趋扩大。关系数据库从1970年发展至今,虽功能日趋完善,但对数据类型的处理只局限于数字、字符等,对多媒体信息的处理只是停留在简单的二进制代码文件的存储。然而,随着用户应用需求的提高、硬件技术的发展和Intranet/Internet提供的多彩的多媒体交流方式,用户对多媒体处理的需求从简单的存储上升为识别、检索和深入加工,正是用户呼唤出"通用"数据库服务器来处理占信息总量70%的声音、图像、时间序列信号和视频等复杂数据类型。据有关数据,1996,全球数据库市场的销售额已接近40亿美元,预计到2000,数据库市场销售额将达到80亿美元。巨大的增长潜力来自复杂数据类型的处理需求,使处理复杂数据类型的"超媒体"数据库将成为各公司投资研发的重点。

二、全新的文件数据概念

1989年起,Lotus通过其群件产品Notes提出了数据库技术的全新概念-"文件数据库",文件数据库差别于传统的其他数据库,他是用来管理文件。在传统的数据库中,信息被分割成离散的数据段,而在文件数据库中,文件是处理信息的基本单位。一文件能非常长、非常复杂、能无结构,和字处理文件类似。

文件数据库和五、六十年代管理数据的文件系统不同,文件数据库仍属于数据库范畴。首先,文件系统中的文件基本上对应于某个应用程式。当不同的应用程式所需要的数据有部分相同时,也必须建立各自的文件,而不能共享数据,而文件数据库能共享相同的数据。因此,文件系统比文件数据库数据冗余度更大,更浪费存储空间,且更难于管理维护。其次,文件系统中的文件是为某一特定应用服务的,所以,要想对现有的数据再增加一些新的应用是非常困难的,系统不容易扩充。数据和程式缺乏独立性。而文件数据库具有数据的物理独立性和逻辑独立性,数据和程式分离。

文件数据库也不同于关系数据库,关系数据库是高度结构化的,Notes的文件数据库允许创建许多不同类型的非结构化的或任意格式的字段,和关系数据库的主要不同在于,他不提供对参数完整性和分布事务的支持,但和关系数据库也不是相互排斥的,他们之间能相互交换数据,从而相互补充、扩展。

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

下面从三个方面比较两种数据库的异同:

1、格式文本/多媒体

在信息时代,所有信息大体上能分为两类:一类信息能够用数据或统一的结构加以表示。例如,成本、费用、人员、工资及员工业绩等,都能用数字或文字来描述或表达。这类信息具有相同的层次或网络结构,我们称之为结构化数据;而另一类信息根本无法用数字或统一的结构表示,例如,图象、声音等,我们称之为非结构化数据。这些非结构化数据既能是一段包含大量附加信息(如排版信息)的文字信息,也可能是一段声音、图象,甚至是影像。对于结构化数据和非结构化数据的关系如图所示,非结构化数据包括结构化数据,但又不止是结构化数据;结构化数据属于非结构化数据,是非结构化数据的特例。一般来说,在人们的认识之中,关系数据库最主要的特征就是数据的结构化。然而,随着网络技术和软件技术的飞速发展,特别是InternetIntranet技术的发展,使得非结构化数据的应用日趋扩大。关系数据库是高度结构化的,这种数据结构化使关系数据库具有冗余度最低、程式和数据独立性较高、易于扩充、易于编制应用程式的特点。不过,随着应用领域的不断拓展, 为满足应用对数据处理不断"苛刻"的需求, 人们开始发现关系数据库的许多限制和不足。因为文件数据库的基本元素就是文件本身,而数据库中的文件能同时包含结构化的和非结构化的信息,所以,文件数据库能够存储和管理类似文件这样的非结构化数据。特别是,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文件。文件数据库中文件能在视图中显示起全部或部分内容,通过视图,用户能看一组文件的关键域,并可按某一准则对显示的信息进行分类和排序。实质上,二者逻辑上非常相似,即视图所对应的数据均不实际存储在数据库中,数据库中只存储视图的定义。

3WEB数据库

近年来网络体系结构经历了一次次重大变迁,客户机/服务器结构越来越流行了,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 ScriptIDC研发Web数据库虽简单但同时也存在功能有限、不能完全控制其过程等缺点。所以他们也无法胜任较复杂的Web数据库的研发。难道就没有一个研发相对容易、功能强大且高效的Web数据库的研发方法吗?有,答案是-Lotus NotesLotus Notes通过文件数据库实现了多媒体文件管理,支持客户机/服务器工作方式。每个数据能包含若干不同形式的Notes文件。存放在一个或多个Notes服务器上,能让许多用户存取的数据库称为共享数据库。通过利用服务器存取和数据库存取控制等安全措施,数据库管理员能规定谁能存取数据库和在什么范围内使用数据库,各数据库在网上通过复制功能实现同步。这样,通过文件数据库用户能在网络上存取、追踪储存和组织信息。

. 结束语

最近几年,我国的数据库市场飞速发展,并将具有更为巨大的增长潜力,表现为如下特点:首先,在近五年里,用户的选型观念发生了明显的改动,有更多的用户把数据库的重要性放在十分重要的地位,其主要原因是用户将把应用软件和应用需求放在首位,应用软件是否满足用户需求是整个项目是否成功的标志,而应用软件研发直接依赖于数据库研发工具。实际上,大量潜在的投资都在应用软件的研发上;另一个原因是硬件随着芯片技术的发展越来越缺乏特性,硬件指标将变成次要的考虑因素。对行业性应用来讲,以前是制定几家硬件产品作为优选,而今可能是最佳选择数据库厂家再考虑硬件厂家了。正是用户需求的这种变化给数据库厂商提供了新的发展机会。Lotus Notes为各数据库系统集成商提供了强大的文件数据库研发平台,Notes结合了企业级电子邮件、分布式文件数据库和快速应用研发等三位一体的强大技术、完全集成Internet技术,提供用户完整的,以网络为中心的应用技术平台。能预言,在不久的将来,Lotus Notes的文件数据库将成为继层次数据库、网状数据库和关系数据库之后的又一热点技术。

 

以上内容由 华夏名网 搜集整理

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

iOS 18에는 손실되거나 손상된 사진을 검색할 수 있는 새로운 '복구된' 앨범 기능이 추가되었습니다. iOS 18에는 손실되거나 손상된 사진을 검색할 수 있는 새로운 '복구된' 앨범 기능이 추가되었습니다. Jul 18, 2024 am 05:48 AM

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

Hibernate는 어떻게 다형성 매핑을 구현합니까? Hibernate는 어떻게 다형성 매핑을 구현합니까? Apr 17, 2024 pm 12:09 PM

Hibernate 다형성 매핑은 상속된 클래스를 데이터베이스에 매핑할 수 있으며 다음 매핑 유형을 제공합니다. Join-subclass: 상위 클래스의 모든 열을 포함하여 하위 클래스에 대한 별도의 테이블을 생성합니다. 클래스별 테이블: 하위 클래스별 열만 포함하는 하위 클래스에 대한 별도의 테이블을 만듭니다. Union-subclass: Joined-subclass와 유사하지만 상위 클래스 테이블이 모든 하위 클래스 열을 통합합니다.

PHP에서 MySQLi를 사용하여 데이터베이스 연결을 설정하는 방법에 대한 자세한 튜토리얼 PHP에서 MySQLi를 사용하여 데이터베이스 연결을 설정하는 방법에 대한 자세한 튜토리얼 Jun 04, 2024 pm 01:42 PM

MySQLi를 사용하여 PHP에서 데이터베이스 연결을 설정하는 방법: MySQLi 확장 포함(require_once) 연결 함수 생성(functionconnect_to_db) 연결 함수 호출($conn=connect_to_db()) 쿼리 실행($result=$conn->query()) 닫기 연결( $conn->close())

PHP에서 데이터베이스 연결 오류를 처리하는 방법 PHP에서 데이터베이스 연결 오류를 처리하는 방법 Jun 05, 2024 pm 02:16 PM

PHP에서 데이터베이스 연결 오류를 처리하려면 다음 단계를 사용할 수 있습니다. mysqli_connect_errno()를 사용하여 오류 코드를 얻습니다. 오류 메시지를 얻으려면 mysqli_connect_error()를 사용하십시오. 이러한 오류 메시지를 캡처하고 기록하면 데이터베이스 연결 문제를 쉽게 식별하고 해결할 수 있어 애플리케이션이 원활하게 실행될 수 있습니다.

HTML이 데이터베이스를 읽는 방법에 대한 심층 분석 HTML이 데이터베이스를 읽는 방법에 대한 심층 분석 Apr 09, 2024 pm 12:36 PM

HTML은 데이터베이스를 직접 읽을 수 없지만 JavaScript 및 AJAX를 통해 읽을 수 있습니다. 단계에는 데이터베이스 연결 설정, 쿼리 보내기, 응답 처리 및 페이지 업데이트가 포함됩니다. 이 기사에서는 JavaScript, AJAX 및 PHP를 사용하여 MySQL 데이터베이스에서 데이터를 읽는 실제 예제를 제공하고 쿼리 결과를 HTML 페이지에 동적으로 표시하는 방법을 보여줍니다. 이 예제에서는 XMLHttpRequest를 사용하여 데이터베이스 연결을 설정하고 쿼리를 보내고 응답을 처리함으로써 페이지 요소에 데이터를 채우고 데이터베이스를 읽는 HTML 기능을 실현합니다.

Go 언어 파일 이름 바꾸기 작업에 대한 전체 분석 Go 언어 파일 이름 바꾸기 작업에 대한 전체 분석 Apr 08, 2024 pm 03:30 PM

os.Rename 함수는 Go 언어에서 파일 이름을 바꾸는 데 사용됩니다. 구문은 funcRename(oldpath,newpathstring)error입니다. 이 함수는 oldpath로 지정된 파일의 이름을 newpath로 지정된 파일로 바꿉니다. 예를 들어 간단한 이름 바꾸기, 파일을 다른 디렉터리로 이동, 오류 처리 무시 등이 있습니다. 이름 바꾸기 기능은 원자성 작업을 수행하며 두 파일이 동일한 디렉터리에 있는 경우에만 디렉터리 항목을 업데이트할 수 있습니다. 볼륨 전체에서 또는 파일이 사용 중인 동안에는 이름 바꾸기가 실패할 수 있습니다.

Golang을 사용하여 원격 데이터베이스에 연결하는 방법은 무엇입니까? Golang을 사용하여 원격 데이터베이스에 연결하는 방법은 무엇입니까? Jun 01, 2024 pm 08:31 PM

Go 표준 라이브러리 데이터베이스/sql 패키지를 통해 MySQL, PostgreSQL 또는 SQLite와 같은 원격 데이터베이스에 연결할 수 있습니다. 데이터베이스 연결 정보가 포함된 연결 문자열을 생성합니다. sql.Open() 함수를 사용하여 데이터베이스 연결을 엽니다. SQL 쿼리 및 삽입 작업과 같은 데이터베이스 작업을 수행합니다. 리소스를 해제하기 위해 defer를 사용하여 데이터베이스 연결을 닫습니다.

Golang에서 데이터베이스 콜백 함수를 사용하는 방법은 무엇입니까? Golang에서 데이터베이스 콜백 함수를 사용하는 방법은 무엇입니까? Jun 03, 2024 pm 02:20 PM

Golang의 데이터베이스 콜백 기능을 사용하면 다음을 달성할 수 있습니다. 지정된 데이터베이스 작업이 완료된 후 사용자 정의 코드를 실행합니다. 추가 코드를 작성하지 않고도 별도의 함수를 통해 사용자 정의 동작을 추가할 수 있습니다. 삽입, 업데이트, 삭제, 쿼리 작업에 콜백 함수를 사용할 수 있습니다. 콜백 함수를 사용하려면 sql.Exec, sql.QueryRow, sql.Query 함수를 사용해야 합니다.

See all articles