开源空间数据引擎MsSQLSpatial简介数据库

时间:2022-11-28 09:58:35 作者:zhuiqiu0902 综合材料 收藏本文 下载本文

“zhuiqiu0902”通过精心收集,向本站投稿了9篇开源空间数据引擎MsSQLSpatial简介数据库,下面是小编收集整理后的开源空间数据引擎MsSQLSpatial简介数据库,供大家参考借鉴,欢迎大家分享。

篇1:开源空间数据引擎MsSQLSpatial简介数据库

MsSQLSpatial是一个 开源 空间数据引擎项目,本文通过介绍这一项目的同时,也对基于MS SQLServer 2005 CLR Integration(公共语言运行时集成,下文简称“CLR集成”)技术实现一个空间数据引擎及优缺点做一些简单分析, MsSQLSpatial项目 这个项目遵从于OGC S

MsSQLSpatial是一个开源空间数据引擎项目,本文通过介绍这一项目的同时,也对基于MS SQLServer 2005 CLR Integration(公共语言运行时集成,下文简称“CLR集成”)技术实现一个空间数据引擎及优缺点做一些简单分析。

MsSQLSpatial项目

这个项目遵从于OGC Simple Features Specification for SQL Revision 1.1,基于两个著名的.NET平台下的开源GIS项目NetTopologySuite(NetTopologySuite是JTS Topology Suite的C#/.net版本,简称NTS)和SharpMap(一个基于.net 2.0的Map渲染类库)来构建,所以划分为NTS、SharpMap和SqlClr三大模块,SqlClr这部分为CLR集成实现代码。主要实现了基于SQLServer 2005 CLR集成的空间数据库相关封装。当前提供了一个命令行工具来支持shape文件和PostGIS的数据导入。

开发语言:C Sharp 2.0。

目前版本:Release 0.1.RC2。

许可协议:GNU LESSER GENERAL PUBLIC LICENSE Version 2.1。

官方网址:www.codeplex.com/Wiki/View.aspx?ProjectName=MsSQLSpatial。

MsSQLSpatial官方给的说法是一个MS SQLServer2005空间扩展(Spatial Extensions),确切地说它应该是一个专属于SQLServer2005的空间数据引擎。所谓的空间数据引擎,其实就是基于关系型数据库的空间数据库技术的软件实现,实质上是个封装了空间领域知识的中间件,GIS等应用层通过这个中间层与关系型数据库交互。

典型的莫过于GIS开发者都比较熟悉的ESRI ArcSDE,Supermap SDX+等等。那么,这个MsSQLSpatial与以前的空间数据引擎差别在哪里?下文我们将讨论这个问题。(实际上Oracle10g也支持CLR集成,但在此不进行相关比较。)

基于CLR集成的空间数据引擎

显而易见,每一次数据库技术与数据访问技术的进步发展都会带动空间数据存储管理解决方案的进步与发展,就好像关系型数据库上BLOB数据类型的支持才使得空间数据库实现了空间特征数据与属性数据一体化存储管理。

关于MS SQLServer 2005有哪些新特性,在这里笔者就不再赘述,相信微软已做了大量宣传。

且不管广告如何,作为一个与整个.NET平台紧密集成的全新一代的数据库产品,我们更关心它的新特性会给GIS最重要的组成部分之一“空间数据库技术”带来什么样的解决方案,

这个关键,就是它的“CLR集成”。通过宿主Microsoft.net Framework 2.0公共语言运行时 (CLR),可以在SQLServer 2005上利用.net Framework类库和任何如C#、VB、.net、C++/CLI等CLR语言来开发数据库应用,扩展用户自己的类型系统和聚合函数。许多之前在SQLServer 2000上用T-SQL或扩展存储过程等编程模型难以实现的或无法实现的任务现在可以用托管代码来完成,譬如几何计算这样具有复杂逻辑的计算密集型任务。

在空间数据库的设计问题上,没有CLR集成技术的RDBMS例如SQLServer2000,在涉及查询脚本的空间表达时就出现了问题,T-SQL语句难以做到空间关系和属性特征联合查询。

因此,空间索引和以二进制方式存储的空间特征数据都必须通过数据访问接口获取出来映射到空间数据引擎这个中间层还原成空间对象才能完成空间关系的判断。还有点不妙的就是每次涉及空间分析的操作都会从空间数据库服务器中取出一部分冗余的结果集,如果在I/O密集的情况下则更糟。

SQLServer 2005上,非常显著的一个特点是,这类基于CLR集成的开发的.NET应用程序集是直接部署在数据库服务器上,SQLServer2005在进程内宿主.net CLR,外部GIS应用层可直接与空间数据库交互时使用T-SQL语句操作。

我们来看MsSQLSpatial的解决方案, MsSQLSpatial用CLR表值函数封装了一组简单而有效的空间索引实现,在这些CLR表值函数中实习了OGC简单特征规范定义的用于描述各种对象的空间关系的空间关系谓词,由NTS类库提供底层的空间对象和空间关系算子,在数据库进程内部直接完成空间查询操作。

SQL Server 2005数据库CLR集成技术代码和数据的紧密结合使我们能够充分利用服务器的处理能力。而且因为它减少了数据层和中间层之间的流量,CLR 函数也可以利用到SQLServer 2005查询处理器的并行和优化功能。但如果在空间数据引擎中完全封装,这无异于把密集计算的任务完全放在空间数据库服务器上,在空间数据库的I/O量与计算资源之间如何取舍,这是值得斟酌之处。

开源空间数据引擎MsSQLSpatial体系架构

MsSQLSpatial展望

MsSQLSpatial是开源GIS网站Freegis.org于8月份加入的一个新开源项目,更新比较频繁。正由于其刚刚开始,可能作者忙于调整架构和实现相关应用,所以相关文档和介绍相当的少,对其长远的发展规划和定位还不得而知。

这个新生的开源项目目前还比较简单,没有提供构建高级空间索引的能力,进行空间查询时其仅是对最小外包矩形(MBR)比较后获得粗略子集后就通过一个委托调用NTS中空间对象的操作算子进行精确的匹配计算以获得目标结果集。

MsSQLSpatial目前也没有栅格数据相关部分,要达到海量矢量/栅格管理,拓扑关系支持、长事务、日志、多用户并发、权限控制等商业层次要求的空间数据引擎还有很长的距离。不过在这个技术体系框架之下,这个的紧密捆绑目前最好的商业关系型数据库之一与采用先进的数据库编程模型的开源空间数据库项目,还是很具发展潜力的,我们期待其后继版本能够带来更多的东西。

【责任编辑:火凤凰 TEL:(010)68476606-8007】

原文转自:www.ltesting.net

篇2:Sybase数据库引擎运行方法简介

1.以 Administrator 身份登录到 Windows NT.

您需要 Administrator 权限来创建、启动和停止服务,

2.打开命令提示符。

3.使用 dbsvc 实用程序创建服务,限制如下:

必须使用 -a 开关来指定 sybase 帐户,使用 -p 开关来指定它的口令。

不能使用 -as 或 -i 开关。

对于个人数据库服务器,可执行文件的名称应当是:

C:Program FilesSybaseSQL Anywhere 9win32dbeng9.exe

对于数据库服务器则是:

C:Program FilesSybaseSQL Anywhere 9win32dbsrv9.exe

您必须使用下列引擎参数:

◆ -n engine name

◆ -sc

◆ -gd DBA

◆ -gk DBA

◆ -gl DBA

◆ -gu DBA

◆ -x namedpipes(TDS=NO)

4.输入要运行的任何数据库文件的完整路径。

该路径应当采取 数据库文件夹 文件名 .db 格式,其中数据库文件夹是 C2 数据库文件夹,其中包括所有其它相关参数。

例如,下列命令行可创建名为 asa_svc 的手工启动的服务,并且引用网络服务器,

它在 sybase 帐户下运行,其口令为sybase_password.它执行下列命令:

C:Program FilesSybaseSQL Anywhere 9win32dbsrv9.exe -n asa_c2 -sc -gd DBA -gk DBA

-gl DBA -gu DBA -x namedpipes(TDS=NO)

database-folderc2test.db

dbsvc -a sybase -p sybase_password -s manual

-t network -w asa_svc C:Program FilesSybase

SQL Anywhere 9win32dbsrv9.exe -n asa_c2 -sc

-gd DBA -gk DBA -gl DBA -gu DBA

-x namedpipes(TDS=NO) database-folderc2test.db

5.要启动和停止该服务,请从控制面板中运行 “Windows NT 服务管理器 ”.从 “ 开始 ” 菜单,选择 “ 设置 ”→“ 控制面板 ”,然后双击 “ 服务 ”。

刚创建的服务出现在 Adaptive Server Anywhere - svc 下,其中 svc是您在 dbsvc 命令行上指定的服务名。

6.使用 “ 启动 ” 和 “ 停止 ” 按钮来启动和停止服务。

篇3:用于大数据的开源预测引擎:H2O

H2O的核心是一个统计分析引擎,它使用Hadoop的分布式文件系统(HDFS)作为其存储平台,但是它们的最终目标是像谷歌的BigQuery一样简单,H2O的用户交互是通过一个简单的网络搜索和标准R统计分析语法,

另外,用户还可以在Microsoft Excel或RStudio的集成开发环境中使用REST API调用H2O。

项目主页:www.open-open.com/lib/view/home/1384846754352

篇4:Sybase数据库简介数据库

一、Sybase数据库简介 1.版本 1984年,MarkB.Hiffman和RobertEpstern创建了Sybase公司,并在1987年推出了Sybase数据库产品,SYBASE主要有三种版本,一是 UNIX 操作系统下运行的版本,二是NovellNetware环境下运行的版本,三是 Windows NT环境下运行的版本。

一、Sybase数据库简介

1.版本

1984年,Mark B. Hiffman和Robert Epstern创建了Sybase公司,并在1987年推出了Sybase数据库产品。SYBASE主要有三种版本,一是UNIX操作系统下运行的版本,二是Novell Netware环境下运行的版本,三是WindowsNT环境下运行的版本。现在最新版本已经是 12.5,在各主流Unix操作系统中均有广泛应用。IBM AIX,HPunix,Digital Unix,Sun solaris等等。

2.Sybase数据库的特点

(1)它是基于客户/服务器体系结构的数据库

一般的关系数据库都是基于主/从式的模型的。在主/从式的结构中,所有的应用都运行在一台机器上。用户只是通过终端发命令或简单地查看应用运行的结果。 而在客户/服务器结构中,应用被分在了多台机器上运行。一台机器是另一个系统的客户,或是另外一些机器的服务器。这些机器通过局域网或广域网联接起来。客户/服务器模型的好处是:

● 它支持共享资源且在多台设备间平衡负载

● 允许容纳多个主机的环境,充分利用了企业已有的各种系统

(2) 它是真正开放的数据库

由于采用了客户/服务器结构,应用被分在了多台机器上运行。更进一步,运行在客户端的应用不必是Sybase公司的产品。对于一般的关系数据库,为了让其它语言编写的应用能够访问数据库,提供了预编译。Sybase数据库,不只是简单地提供了预编译,而且公开了应用程序接口DB-LIB,鼓励第三方编写DB-LIB接口。由于开放的客户DB-LIB允许在不同的平台使用完全相同的调用,因而使得访问DB-LIB的应用程序很容易从一个平台向另一个平台移植。

(3) 它是一种高性能的数据库

Sybase真正吸引人的地方还是它的高性能。体现在以下几方面:

● 可编程数据库

通过提供存储过程,创建了一个可编程数据库。存储过程允许用户编写自己的数据库子例程。这些子例程是经过预编译的,因此不必为每次调用都进行编译、优化、生成查询规划,因而查询速度要快得多。

● 事件驱动的触发器

触发器是一种特殊的存储过程。通过触发器可以启动另一个存储过程,从而确保数据库的完整性。

● 多线索化

Sybase数据库的体系结构的另一个创新之处就是多线索化。一般的数据库都依靠操作系统来管理与数据库的连接。当有多个用户连接时,系统的性能会大幅度下降。Sybase数据库不让操作系统来管理进程,把与数据库的连接当作自己的一部分来管理。此外,Sybase的数据库引擎还代替操作系统来管理一部分硬件资源,如端口、内存、硬盘,绕过了操作系统这一环节,提高了性能。

3.Sybase数据库的组成

Sybase数据库主要由三部分组成:

(1) 进行数据库管理和维护的一个联机的关系数据库管理系统Sybase SQL Server;

Sybase SQL Server是个可编程的数据库管理系统,它是整个Sybase产品的核心软件,起着数据管理、高速缓冲管理、事务管理的作用。

(2) 支持数据库应用系统的建立与开发的一组前端工具Sybase SQL Toolset;

ISQL是与SQL Server进行交互的一种SQL句法分析器。ISQL接收用户发出的SQL语言,将其发送给SQL Server,并将结果以形式化的方式显示在用户的标准输出上。

DWB是数据工作台,是Sybase SQL Toolset的一个主要组成部分,它的作用在于使用户能够设置和管理SQL Server上的数据库,并且为用户提供一种对数据库的信息执行添加、更新和检索等操作的简便方法。在DWB中能完成ISQL的所有功能,且由于DWB是基于窗口和菜单的,因此操作比ISQL简单,是一种方便实用的数据库管理工具。

APT是Sybase客户软件部分的主要产品之一,也是从事实际应用开发的主要环境。APT工作台是用于建立应用程序的工具集,可以创建从非常简单到非常复杂的应用程序,它主要用于开发基于表格(Form)的应用。其用户界面采用窗口和菜单驱动方式,通过一系列的选择完成表格(Form)、菜单和处理的开发。

(3) 可把异构环境下其它厂商的应用软件和任何类型的数据连接在一起的接口Sybase Open Client/Open Server,

通过Open Client的DB-LIB库,应用程序可以访问SQL Server。而通过Open Server的SERVER-LIB,应用程序可以访问其它的数据库管理系统。

二、SYBASE有关概念

Sybase SQL Server是一个多库数据库系统。这些数据库包括系统数据库和用户数据库。 而不论是系统数据库还是用户数据库,都建立在数据库设备上。

1. 数据库设备

所有的数据库都创建在数据库设备上。所谓数据库设备,不是指一个可识别的物理设备,而是指用于存储数据库和数据库对象的磁盘原始分区或操作系统文件。增加一个新的数据库设备时,必须对这些设备“初始化”。初始化的过程就是将物理磁盘、磁盘分区或操作系统文件变为SYBASE数据库可以识别的设备。初始化数据库设备使用DISK INIT命令:

DISK INIT

NAME=设备名,

PHYSNAME=物理设备名,

VDEVNO=虚拟设备号,

SIZE=块数

其中,NAME指数据库设备名,此名将用于CREATE DATABASE和ALTER DATABASE命令。PHYSNAME是原始磁盘分区或操作系统文件名。VDEVNO是数据库设备的标识号,在SQL Server中,它必须是唯一的。SIZE的单位是2K的块,对于新创建的数据库,最小的SIZE是model数据库的尺寸,即1024个2K的块(2M)。

例如:/*将/dev目录下400M的物理设备初始化为SYBASE的数据库设备tele114_log01*/

1>disk init

2>name=“tele114_log01”,

3>physname=“/dev/rtelelog”

4>vdevno=4

5>size=204800 /*2Kbyte*204800=400Mbyte*/

6>go

2、段

数据库设备从逻辑上被划分为数据库段以允许将某一特定的对象放置在指定的段上(创建对象时指定),一数据库设备可拥有多达192个段,一段可使用255个逻辑设备上的存储空间。当用户创建一个数据库时,SQL SERVER 会自动在该数据库中创建三个段: SYSTEM、LOGSEGMENT 、DEFAULT,这三个段分别用来存储数据库的系统表、事务日志和其他数据库对象 。

在数据库中创建段的步骤是:

x 先用Disk init 初始化物理设备

x 通过使用Create database 和alter database 的on 子句,使数据库设备对数据库可用,于是新设备自动增加到数据库的default 和system段。

一旦数据库设备存在并对数据库可用,使用存储过程Sp_addsegment 定义数据库的段。语法如下:

Sp_addsegment 段名,数据库名,设备名

3、 系统数据库

安装Sybase数据库时自动生成的下列系统数据库:

● 主数据库master;

● 模型数据库model;

● 系统过程数据库sybsystemprocs;

● 临时数据库tempdb。

也可选择下列数据库:

●安全审核数据库sybsecurity;

● 示例数据库pubs2;

● 命令语法数据库sybsyntax。

(1) master数据库

包含许多系统表和系统过程,从总体上控制用户数据库和SQL Server的操作,构成了SYBASE系统的数据字典。MASTER数据库主要记录信息为:

● 登录帐号(SQL服务器用户名);syslogins,sysremolelogins

● 正在执行的过程;sysprocesses

● 可修改的环境变量;sysconfigures

● 系统错误信息;sysmessages

● SQL服务器上每个数据库的信息;sysdatabases

● 每个数据库占用的存储空间;sysusages

● 系统上安装的磁带及磁带信息;sysdevices

● 活动锁信息;syslocks

共3页: 1 [2] [3] 下一页

原文转自:www.ltesting.net

篇5:Neo4j数据库简介

作为世界先进的图数据库,Neo4j成为了时下许多互联网公司的首选,Neo4j是基于java开发的开源图数据库,也是一种NoSQL数据库。Neo4j在保证对数据关系的良好刻画的同时,还支持传统关系型数据的ACID特性,并且在存储效率,集群支持以及失效备援等等方面都有着不错的表现。近来因为实验室的项目的关系,对Neo4j有了一定的了解。同时,我也对其设计思想和架构都产生了很大的兴趣,所以写下这篇博客,帮助大家更好地了解这一数据库,也分享一下以及的认识。

设计理念

Neo4j的设计动机是为了更好地同时也更高效地描述实体之间的关系。在现实生活中,每一个实体都于周围的其他实体有着千丝万缕的关系,这些关系里面所存储的信息甚至要大于身体本身的属性。然后传统的关系型数据库更注重刻画实体内部的属性,实体与实体之间的关系通常都是利用外键来实现。所以在求解关系的时候通常需要join操作,而join操作通常又是耗时的。互联网尤其是移动互联网的爆发式增长本来就使得传统关系型数据库不堪重负,再加上诸如社交网络等应用对于关系的高需求,可以说关系型数据库已经是毫无优势。而图数据库作为重点描述数据之间关系的数据库应运而生,成为了NoSQL中非常重要的一部分。而Neo4j正是图数据库中最为优秀的之一

Neo4j数据库只有两种类型的数据:

节点Node:节点类似于E-R图种的实体(entity),每个实体可以有0到多个属性,这些属性以key-value对的形式存在,并且对属性没有类别要求,也无需提前定义。另外,还允许给每个节点打上标签,以区别不同类型的节点。

关系Relationship: 关系类似于E-R图种的关系(relationship),一个关系有一个起始节点和一个终止节点构成。另外和node一样,关系也可以有多个属性已经标签

其具体的结构如下图:而一个实际的图数据库例子就如下图所示的这样:

正是基于这样的设计理念,Neo4j有了以下这些特性:<?www.2cto.com/kf/ware/vc/“ target=”_blank“ class=”keylink“>vcD4KPHVsPgo8bGk+udjPtdTatLS9qLXEyrG68r7N0tG+rcq1z9bBy6Os0vK2+NTasunRr7nYz7W1xMqxuvLKx9K7uPZPKDEptcSy2df3PGxpPsv509C1xLnYz7XU2k5lbzRq1tC2vMrHzay1yNbY0qq1xDxsaT7M4bmpwcvNvLXEye62yNPFz8jL0cv3oaK547bI08XPyMvRy/ehotfutszCt762oaK88rWlwre+ttLRvq1EaWprc3RyYbXItcjL47eoCjxoMT4KTmVvNGq1xLTmtKK94bm5PC9oMT4KPHA+z9bU2sjDztLDx8C0v7S/tMr9vt3U2k5lbzRq1tDKx8jnus605rSitcSjrMrXz8jKx73ateNOb2RltcQmIzI2Njg0O8q9o7ogTm9kZTppbl91c2UoYnl0ZSkmIzQzO25leHRfcmVsX2lkKGludCkmIzQzO25leHRfcHJvcF9pZChpbnQpLMO/0rvOu7XEvt/M5dLi0uXI58/Co7o8L3A+Cjx1bD4KPGxpPmluX3VzZToxse3KvrjDvdq147G7yrnTw6OsMLHtyr6xu8m+s/08bGk+bmV4dF9yZWxfaWQoaW50KTq4w73atePPwtK7uPa52M+1aWQ8bGk+bmV4dF9wcm9wX2lkKGludCk6uMO92rXjz8LSu7j2yvTQ1LXEaWQKPHA+UmVsYXRpb24mIzI2Njg0O8q9o7ogaW5fdXNlJiM0MztmaXJzdF9ub2RlJiM0MztzZWNvbmRfbm9kZSYjNDM7cmVsX3R5cGUmIzQzO2ZpcnN0X3ByZXZfcmVsX2lkJiM0MztmaXJzdF9uZXh0X3JlbF9pZCYjNDM7c2Vjb25kX3ByZXZfcmVsX2lkJiM0MztzZWNvbmRfbmV4dF9yZWxfaWQmIzQzO25leHRfcHJvcF9pZDwvcD4KPHVsPgo8bGk+aW5fdXNlLG5leHRfcHJvcF9pZDrNrMnPPGxpPmZpcnN0X25vZGU6tbHHsLnYz7W1xMbwyry92rXjPGxpPnNlY29uZF9ub2RlOrWxx7C52M+1tcTW1da5vdq14zxsaT5yZWxfdHlwZTq52M+1wODQzTxsaT5maXJzdF9wcmV2X3JlbF9pZCAmYW1wOyBmaXJzdF9uZXh0X3JlbF9pZDrG8Mq8vdq147XEx7DSu7j2us2689K7uPa52M+1aWQ8bGk+c2Vjb25kX3ByZXZfcmVsX2lkICZhbXA7IHNlY29uZF9uZXh0X3JlbF9pZDrW1da5vdq147XEx7DSu7j2us2689K7uPa52M+1aWQKPHA+z+DQxb+0wcu05sr9veG5udauuvOjrLTzvNLWqrXAzqrKssO0TmVvNGrU2rLp0a+92rXjudjPtbXEyrG68rvhyOe0y9auv+zBy6Os0vLOqsO/0ru49r3atePT0MTE0Km52M+1trzKx9axvdO05tTauMO92rXjtcS2qNLl0/LE2rXEo6zWsb3Tt8POyr7N0NDBy6OsuPmxvrK70OjSqtTZyKWy6dXSwe3N4tK71cWx7aGjPC9wPgo8cD7PwsPmvtnSu7j2zby1xLHpwPq1xMD919OjujwvcD4KPHVsPgo8bGk+tNO92rXjMb+qyryjrL/ttsjTxc/IsenA+qOsxuS05rSiveG5uc6qo7owMSAwMDAwMDAwMiBmZmZmZmZmZjxsaT7G5M/C0ru49rnYz7VpZMrHMqOst8POyrnYz7Uyo7owMSAwMDAwMDAwMSAwMDAwMDAwNCAgMDAwMDAwMDAgICBmZmZmZmZmZiAwMDAwMDAwMSAgIGZmZmZmZmZmIGZmZmZmZmZmICAgIGZmZmZmZmZmILXDs/Zub2RlIDEgLSZndDsgbm9kZSA0LM2syrHPwrj2udjPtcrHMTxsaT652M+1MaO6IDAxIDAwMDAwMDAxIDAwMDAwMDAzICAwMDAwMDAwMCAgIDAwMDAwMDAyIDAwMDAwMDAwICAgMDAwMDAwMDMgZmZmZmZmZmYgICAgZmZmZmZmZmYgbm9kZTEgLSZndDsgbm9kZSAzLG5vZGUzINPQxuTL+7nYz7WjrMv50tS9q25vZGUztObI67bTwdCjrM2syrG3w87KudjPtTA8bGk+udjPtTCjujAxIDAwMDAwMDAxIDAwMDAwMDAyICAwMDAwMDAwMCAgIDAwMDAwMDAxIGZmZmZmZmZmICAgZmZmZmZmZmYgZmZmZmZmZmYgICAgZmZmZmZmZmYgbm9kZTEgLSZndDsgbm9kZTKjrLfDzsrN6rPJbm9kZTG1xMv509C52M+1o6y007bTwdDW0M3Ls/Zub2RlMzxsaT7Tw9Payc/OxM/gzay1xLe9t6i3w87Kbm9kZTM8bGk+1+66873hufvI58/Co7oKPGJsb2NrcXVvdGU+Cgo8cHJlIGNsYXNzPQ==”brush:sql;“>(1)C[KNOWS,2]C>(4)(1)C[KNOWS,1]C>(3)(1)C[KNOWS,0]C>(2)(1)C[KNOWS,1]C>(3)C[KNOWS,5]C>(7)(1)C[KNOWS,1]C>(3)C[KNOWS,4]C>(6)(1)C[KNOWS,1]C>(3)C[KNOWS,3]C>(5)

Neo4j与关系型数据库的区别

其实通过上述的讲解,相信大家都对neo4j与RDBMS(Relational Database Management System)的区别有了一定的认识,现在再用下面的表格来重新整理一下:

Neo4jRDBMS允许对数据的简单且多样的管理高度结构化的数据数据添加和定义灵活,不受数据类型和数量的限制,无需提前定义表格schema需预定义,修改和添加数据结构和类型复杂,对数据有严格的限制常数时间的关系查询操作关系查询操作耗时提出全新的查询语言cypher,查询语句更加简单查询语句更为复杂,尤其涉及到join或union操作时

最后再以下面两张图来展示一下两者在查询关系时的区别:RDBMSNeo4j

关于Neo4j具体的安装和使用,不是文章的重点,如果想要真正上手用Neo4j,可以到Neo4j官网上面有很多资料

篇6:Windows 服务器系统通用引擎路线图数据库

SQL Server是Windows Server System的组成部分,Windows Server System是一种有助于简化灵活商务 解决方案 开发 、部署与运转工作的综合型、集成化 服务器 基础架构。 作为Windows Server System 家族的一个关键组成部分, SQL Server 2005 包含一个标准功能

SQL Server是Windows Server System的组成部分。Windows Server System是一种有助于简化灵活商务解决方案开发、部署与运转工作的综合型、集成化服务器基础架构。

作为Windows Server System 家族的一个关键组成部分, SQL Server 2005 包含一个标准功能集,如通用补丁管理、Watson 支持、微软基线安全分析工具等,为Windows Server System客户提供了一个一致的、可预见的体验。

Windows Server System 通用引擎路线图的目标是创建一个可被用于所有Windows Server System服务器产品的通用服务集,这个通用服务集移除了服务器基础架构之间的栅栏,有助于确保整个Windows Server System 产品的引擎更安全、可靠、易管理和灵活。Windows Server System 通用引擎路线图确保客户能够满足今天乃至明天的商业挑战。

为了陈述灵活IT技术的观点,微软当前把目光关注在以下三个关键点上:

.NET, 微软的Web services 战略,它把信息、人、系统和设备联系在一起,

采用面向服务的架构遍布于微软的平台上,它提供了快速建立、部署、管理和使用连接的、安全增强的基于Web services 的系统。这些系统支持更快,更敏捷的商业智能,并且允诺可在任何时候、任何地点、任何设备获得信息。

动态系统计划(DSI) 致力于发布一个能够智能操作、内置对操作的监视、根据业务的改变能动态调整的系统。该计划联合了硬件、软件和服务供应商,围绕一个基本模型,使用户能够享用工业标准硬件的威力和IT操作的简单、自动和灵活。该计划的目标在于降低管理和使用成本,提高系统可靠性,并且提高在整个IT 生命周期中的响应能力。

可信度计算是一个长期的、全公司范围内的协同工作的努力,是为了创建和发布更安全、私有和可靠的计算体验。同时减少用户和IT管理员的工作。可信度计算的目标在于发布一个计算工业界人们期望的安全、私有、可靠和业务集成的系统。

在2005通用引擎标准中,定义了16个不同的规范,它们都被用在Windows Server System中。自2005版本起,所有Windows Server System产品都将满足这个标准,除了某些特别的原因需要在将来版本实现的。

微软将定期地增加规范来反映客户的要求和发布到Windows Server System 中。这些规范和他们的实施细节包括任何例外信息,将会在Windows Server System Web site, www.microsoft.com/windowsserversystem上定期发布。

原文转自:www.ltesting.net

篇7:查看MySQL数据库支持的存储引擎

1、show engines;

2、show enginesg;<?/kf/ware/vc/” target=“_blank” class=“keylink”>vcD4KPHA+PGltZyBzcmM9“/uploadfile/Collfiles/20131209/20131206214449500.png” alt=“”>

3、show variables like “have%';

4、show variables like ”storage_engine';

篇8:基于关系数据库的地籍空间数据存储结构

基于关系数据库的地籍空间数据存储结构

提出了用关系数据库管理地籍空间信息的基本设想,并给出了实现这一设想的具体方法及步骤.包括3个方面的内容:传统地籍空间信息管理存在的问题讨论,用关系数据库管理地籍空间信息的`可行性分析,数据存储方式以及实现这种存储方式的具体方法.

作 者:罗德安 廖丽琼 LUO De'an LIAO Liqiong  作者单位:罗德安,LUO De'an(西南交通大学测量工程系,成都市二环路北一段111号,610031)

廖丽琼,LIAO Liqiong(西南工学院城建系,四川省绵阳市建院路1号,621002)

刊 名:武汉测绘科技大学学报  ISTIC EI PKU英文刊名:JOURNAL OF WUHAN TECHNICAL UNIVERSITY OF SURVEYING AND MAPPING 年,卷(期):2000 25(6) 分类号:P208 P273 TP311.12 关键词:地理信息系统   空间数据库   地籍图形  

篇9:嵌入式Java运行平台数据库引擎的应用研究

嵌入式Java运行平台数据库引擎的应用研究

摘要:介绍某嵌入式Java运行平台的总体框架;在此基础上,详细讨论为该平台开发的数据库(DB)引擎组件的框架和结构组成,描述该组件实现的SQL子集和数据表达方式以及逻辑算法的设计思路;提出该组件今后的改进设想。

关键词:数据库引擎 Java 嵌入式系统

引言

随着嵌入式系统CPU硬件从8位到32位的发展,嵌入式系统软件的开发环境也得到迅猛的发展,编程语言从10多年以前的汇编为主流发展到现在C、C++、Java为主流。另外,面向对象设计技术、组件技术等在嵌入式系统软件设计中的应用也日益引起人们的重视。

在嵌入式系统软件开发领域,Java是一门较新的异军突起的编程语言。其优点是语言本身简洁优美,完全按照面向对象思想设计,并且语言引入许多较为先进的特性,如多线程、自动内存管理和垃圾回收,非常适合于大规模复杂软件系统的开发。其不足点是与硬件结合不够紧密,同时代码运行速度较慢。此外,对于内存的使用,程序难于管理和控制。

由于采用Java编程具有如上所述的众多优点,越来越多的嵌入式系统采用Java技术来构造软件系统。本文在介绍基于日本某自动售货机产品的控制板的Java运行平台基础上,详细讨论笔者为其平台开发的DB引擎的组成和设计思路。

(本网网收集整理)

1 Java运行环境平台

图1所示为Java运行环境的总体框架示意图。本系统为克服Java的解释执行机制所引起的执行速度慢的问题,在硬件上采用了Sun公司开发的Pico Java芯片。它能够直接执行Java的二进制代码,使Java的执行速度提高一个数量级以上。在硬件层的上面是OS层,本系统采用的是ITRON(日本东京大学坂村键教授设计的一种嵌入式操作系统,虽然在日本以外的市场影响不大,但在日本本地市场,占有率达90%以上)。由于ITRON规格制定得比较早,并且为兼顾低端嵌入式应用的场合,ITRON总体上功能比较简单,并未把诸如TCP/IP、文件系统等内容包含在其里面,因此与嵌入式Linux等不一样的是,TCP/IP、文件系统是以独立的组件形式存在的。在OS层的上面是JVM层。与其它一般Java虚拟机不同的是,本系统的Java执行代码不需要由JVM解释执行,而是由CPU硬件直接执行。在JVM的上层是自动售货机的基础平台类库和公共组件层。本文介绍的DB引擎组件正是处于这一层。该层的上面是应用程序层,用于实现自动售货机的各种控制、管理机能。

2 嵌入式系统DB引擎

2.1 DB引擎组件的引入

众所周知,在台式机领域,DB是一个十分关键的基础软件。以往嵌入式系统的软件可能更侧重于与硬件的交互与控制,但随着对嵌入式系统功能需求的日益复杂化,嵌入式系统软件中,信息、数据的保存与管理的比重也日益增加。在这样的背景下,嵌入式系统软件开发中,通过引入DB组件,对实现软件整体框架结构的组件化与简单化,有着十分明显而重要的意义。

2.2 DB引擎组件的总体框架

如图2所示,将整个DB组件设计为3层结构,分别为JDBC接口层、SQL解释层和动作执行层。这3层之间呈单向依赖关系。也就是说,SQL解释层依赖于动作执行层,但动作执行层不依赖于其上面的两层,可以单独存在而直接被使用。如果用户以使用方便为主要目的,可采用完全配置方式,应用程序通过JDBC接口层存取数据。反之,如果用户对空间和效率要求较高,可仅配置动作执行层组件,应用程序直接调用动作执行层的API进行数据的检过和更新等操作。

(1)JDBC接口层

如前文所述是可选组件,旨在为应用程序提供一个标准的DB调用接口。

(2)SQL解释层

本DB组件实现的SQL解释层,只实现了标准SQL的一个小子集,主要完成select、delete、insert、update、create table、drop table等功能。其中数据操作语句(select、delete、insert、update)的解释要点之一是where条件子句的解释执行,类似于数学表达式求值算法。本文采用简单直观的“算符优先法”。该算法使用两个工作栈,一个称作OPTR栈,用以寄存运算符;另一个称作OPND栈,用以寄存操作数或运算结果。算法的基本思想是:

①首先置操作数栈为空,表达式起始符“#”为运算栈的栈底元素;

②依此读入表达式中每个Token。若是操作数,则进OPND栈adk是运算符,则和OPTR栈的栈顶运算符比较优先权后作相应操作,直至整个表达式求值完毕(即OPTR栈的栈顶元素和当前读入的Token均为“#”。

文实现的SQL子集描述如下:

预定义

:=<日期>

:=

:=[,[,[…]]]

:=[,[…] ]]

:= =│==│!=││>│>=│<│<=

:=[,[,[…]]]

<统计函数名>:=MIN│MAX│COUNT│SUM

<统计函数>:=<统计函数>(

<统计list>:=<统计函数>,[,<统计函数>[,<统计函数>[…]]]

<数据类型>:=INT│UNMBER│CHAR│DATE

:=文递归定义式

:=(

:=NOT

:=OR

:=AND

SQL文定义式

①SELECT*|FROM

[WHERE][ORDER BY[ASC|DESC]]

②SELECT<统计list>FROM

[WHERE]

③UPDATE

SET[WHERE]

④INSERT INTO

[()]VALUES()

⑤DELETE FROM

[WHERE]

⑥CREATE TABLE

(<数据类型>[,<数据类型>[,<数据类型>[…]]])

⑦DROP TABLE

注:|表示多选个,表示某定义项目,[]表示可选项目,…代表循环省略表示。

(3)动作执行层

动作执行层是整个DB组件的核心和关键,因为所有的DB操作最终都由该层完成,同时用户也可以跳过上面的两层,直接调用该层的API,以实现相同的数据操作功能。下面介绍其主要设计要点和思路。

2.3 数据的表达与存储

由于嵌入式系统的资源十分有限,不能引入复杂的算法和数据存储格式,同时由于Java对二进制数据的处理十分不便,本文最终采用CSV格式来保存表数据。其要点是:

①各字段数据之间采用「,」分开;

②如果字段数据本身包含有「,」,则将整个字段数据用引号括起来;

③如果字段数据本身包含有引号「”」,则将引号「”」改写为两个重叠的引号「””」,依次类推。其次,每个记录占文本文件的个行,每一个数据表与一个物理数据文件一一对应。

采用这种方式处理的优点是:

①全部数据都是采用字符串保存,Java处理起来十分方便;

②对不定长字段的保存处理与定长字段处理统一,不需要额外的附加处理,而且存储效率高;

③对多字节文字的处理程序不需要额外的编码转换处理,由

JVM平台本身的功能可以自动完成。

当然,采用这种处理方式也存在其不足之处:

①由于在数据文件中,每条记录的长度不定,数据即使局部更新,也必须重写整个文件;

②由于同样原因,单条记录的.检索难于直接定位,而必须读入整个数据文件。

为弥补由此产生的性能下降,本文采用数据Cache加以克服。也就是说,尽可能将数据缓存在内存中,通过减少对物理文件的读写操作来提高数据的性能。

2.4 多线程数据存取的同步与互斥

在Java虚拟机环境下,没有多进程的概念,但对于多任务的处理提供了多线程的手段。本DB引擎组件是公共组件,供上层多个应用程序组件共同使用。由于上层的每个应用程序组件本身由一个或数个线程来执行,因此,DB引擎组件必须考虑多个线程同时存取某个数据时可能引起的冲突问题。对于该问题的解决办法,一般是采用DB锁定的方法。关于DB锁定,进一步细分的话,可区分为读锁和写锁;根据锁定粒度的粗细可分为按表锁、按Page锁、按记录锁等,不一而足。

为设计和实现的简单起见,本DB引擎组件提供按表锁定的方式,同时不区分读写锁之间的区别。这样,大大简化了SQL语句的分析和处理过程,并且可以直接把锁定操作与表的open操作相关联,锁解除与表的close操作相关联。实现时,对应表对象Table的每一个实例,设置一个field变量,用于保存锁定状态,再利用Java语言提供的synchronized手段同,可以较为方便地实现数据表的锁定功能。代表示例如下:

//表锁定。为了避免死锁,有超时判断逻辑

synchronized void lock()throws DBError{

long t2,t1;

t1=System.currentTimeMillis();

//由于可能出现在wait语句被唤醒而却得不到表锁的情况,为提高超时逻辑判断精度,采用循环

while(isLocked){

try{

wait(DBError.TIMEOUT/10);

}catch(Exception e){e.printStackTrace();}

//超时判断

t2=System.currentTimeMillis();

if(t2-t1>DBError.TIMEOUT)break;

}

//发生超时退出循环情况,抛出例外

if(isLocked){

throw new DBError(DBError.TIMEOUT_ERR,name);

}

//设定锁定标志

isLocked=true;

}

//表打开操作

//参数ro只读打开标志

void open(Boolean ro)throws DBError{

lock();

readOnly=ro;

//表数据读入

load();

}

//表关闭操作(同时释放锁)

public synchronized void close() throws DBError{

if(isLocked==false)return;

//关闭前,保存数据

if(isDirty)save();

if(isUnload)unload();

//释放锁,通知其它等待线程

isLocked=false;

notify();

}

图3 DB引擎组件主要类的关系

2.5 DB组件实现的结构设计

图3所示为DB引擎组件的主要类之间的关系。其中,Database为数据库类,用于描述和管理整个数据库对象Table为数据表类,用于描述和管理表对象;TableData用于描述和管理保存表数据的物理介质(文件);Field为字段类,用于描述和管理字段类型信息;Record为记录类,描述一条数据记录。为简化处理,本组件将Database类设计为singleton模式,即本组件只能创建一个Database实例。这对于嵌入式系统来说,大部分场合已经足够。与数据库的一般物理概念相对应,1个Database实例包含n个Table实例,1个Table实例包含n个Field实例。同时,1个Table实例包含1个TableData实例,1个TableData实例包含n个Record实例。

Connection类用于管理用户访问数据库的会话(Session)过程。对应一个用户的一次会话过程,生成一个Connection实例。Connection类对象保存着当前Session打开的Table列表,当用户提交执行某SQL语句而需要锁定某个Table时,系统首先检查该表是否已经在当前Session已打开的Table列表中。如果已经被打开,则不需要进行重复的锁定操作,直接反回对应的Table对象实例。反之,如果尚未包含在打开的Table列表中,表明当前Session尚未打开和锁定该表,必须执行该表的打开和锁定操作(如果该表已被其它Session打开,则必须等待到其它Session翻放该表为止)。

本DB组件还支持commit与rollback事务处理。能够在如此微小的DB组件实现事务处理,主要得益于上述的Session管理框架。在Table类commit与rollback处理基础上,当一个Session执行commit或rollback操作时,对包含在打开列表中的每个Table实例,调用执行相应的commit或rollback处理即可。

3 结语与展望

本DB组件已实际运行了大约两年时间。这期间除了对该组件进行一些功能追加以外,主体框架上基本保持不变,从而在一定程序上表明了该设计框架的可行性和合理性。该组件编译以后,class文件形成的jar包大小约为68KB,短小精度悍,便于使用。当然,该DB组件目前仍然存在一些不足:首先,较为关键的一点是速度问题。一直以来,Java的执行速度问题就是受批语的缺点所在,因此采用它实现自然也避免不了这人瓶颈。今后改进的思路之一是,将其中Java处理效率不高的部分移出Java,采用C实现;二者通过JNI手段加以连接,以提高总体的运行速度。第二点需要改进的地方是表锁定的粒度问题。由于目前只能整个表进行锁定,并且不区分读锁定与写锁定,因此粒度较粗。虽然这样实现起来较为简单,但在多任务处理环境中可能增加不必要的时间等待。最后,JDBC接口的实现目前还不完全,需要加以完善。

数据库设计文档范文

数据库参考文献格式

面向城市规划的空间数据方法

数据库管理英文简历

教师红色引擎工程学习心得体会

CAD与GIS空间数据转换方法研究

再看数据库――(7)游标

国际贸易与数据库营销

数据库开发管理求职信

分布式事务处理数据库教程

开源空间数据引擎MsSQLSpatial简介数据库(共9篇)

欢迎下载DOC格式的开源空间数据引擎MsSQLSpatial简介数据库,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式