C#开源轻量级对象数据库NDatabase介绍[1]

C#开源轻量级对象数据库NDatabase介绍[1],第1张

前言

NDatabase是一个易于使用的 NET对象数据 为了避免关系数据库带来的开销 可以尝试用NDatabase NDatabase是新一代的面向对象数据库 个原生的 NET数据库持久层 它的主要特征有

·简单 NDatabase非常简单 很容易学习上手使用 它API是简单 不需要学习任何数据库映射技术 不需要对象和存储持久层之间的映射 NDatabase以最简单的方式存储对象 不需要安装和管理

·小 NDatabase 运行时小于 Kb 部署程序的时候 很容易集成到 NET应用程序中去

·安全健壮 NDatabase支持ACID事务处理 保证数据的完整性 即使在硬件故障的情况下 所有的提交工作都会应用到数据库 在下一次启动的时候自动执行

·单一数据库文件 NDatabase使用单一的文件存储所有的数据 包括元数据 对象 索引等

·生产率 NDatabase使用很少的代码来进行数据持久化 不需要映射 因此 开发人员可以专注于业务逻辑的实现 而不是在数据持久层浪费时间

NDatabase入门

基础设置

NDatabase中所有的数据库引擎设置都在OdbConfiguration类中 如BTree Validation 和BTree index degree的设置都在这个类里面 打开日志的设置也在这个类里面 NDatabase提供了默认的日志类实现 ConsoleLogger 可以使用OdbConfiguration类中的EnableConsoleLogger方法进行设置 实现好自定义的日志类后 还需要进行注册RegisterLogger方法 才能够使用

OdbConfiguration RegisterLogger(new Log NetLogger())

使用索引

使用IOdb接口的IndexManagerFor方法可以为指定类型添加索引 如

using (var odb = OdbFactory Open( index ndb ))

{

var fields = new[] { Name };

odb IndexManagerFor<Player>() AddUniqueIndexOn( nameIndex fields)

odb IndexManagerFor<Game>() AddIndexOn( nameIndex new[] { Result })

}

使用事务

NDatabase可以使用事务来保证数据的完整性(ACID:原子性 一致性 隔离性 持久性) 当一个NDatabase被打开后 将会自动创建一个会话 包含一个特殊的当前事务对象 这个事务对象实例管理当前所有的数据和数据 *** 作行为

内存数据库模式

NDatabase可以将数据库所有数据直接加载到内存中 直接使用OdbFactory方法的 OpenInMemory即可

关于触发器

要增加一个触发器 首先要建立一个实现了Trigger 接口()的类 该接口有 种可用的类型(InsertTrigger UpdateTrigger SelectTrigger DeleteTrigger) 如

public class MyTrigger : InsertTrigger

{

public override bool BeforeInsert(object obj)

{ return true; }

public override void AfterInsert(object obj OID oid)

{ }

}

在使用过程中 打开数据库后 要注册触发器 才能使用

var mage = new Mage( Merlin )

var myTrigger = new MyTrigger()

using (var odb = OdbFactory Open( inserting_trigger db ))

{

odb TriggerManagerFor<Mage>() AddInsertTrigger(myTrigger)

odb Store(mage)

}

lishixinzhi/Article/program/net/201311/16138

MYSQL支持的数据引擎

MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。

InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。

BDB:可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性。

Memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。

Merge:允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。对于诸如数据仓储等VLDB环境十分适合。

Archive:为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案。

Federated:能够将多个分离的MySQL服务器链接起来,从多个物理服务器创建一个逻辑数据库。十分适合于分布式环境或数据集市环境。

Cluster/NDB:MySQL的簇式数据库引擎,尤其适合于具有高性能查找要求的应用程序,这类查找需求还要求具有最高的正常工作时间和可用性。

Other:其他存储引擎包括CSV(引用由逗号隔开的用作数据库表的文件),Blackhole(用于临时禁止对数据库的应用程序输入),以及Example引擎(可为快速创建定制的插件式存储引擎提供帮助)。

3、启动InnoDB引擎的方法

 

 Mysql中默认的是MyISAM数据引擎,可惜此引擎不支持事务处理,我们需要将默认的数据引擎改为InnoDB。其中InnoDB和

BerkeleyDB支持事务处理,只是默认的情况下都是被disable的。所有的引擎里面,InnoDB性能最强大,算是商业级的。启动InnoDB引擎的方法如下:

1)关闭mysql的服务

2)修改myini

将default-storage-engine=INNODB前的注释(#)去掉

将skip-innodb这行注释(加上#)

3)保存后重启mysql服务

4、MyISAM引擎和InnoDB引擎的基本差别

MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。

MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。

MyIASM是IASM表的新版本,有如下扩展:二进制层次的可移植性、NULL列索引、对变长行比ISAM表有更少的碎片、支持大文件、更好的索引压缩等

InnoDB不支持FULLTEXT类型的索引

InnoDB 中不保存表的具体行数

对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引

DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除

…………

这些区别能够影响应用程序的性能和功能,因此你必须针对业务类型来选择合适的引擎,才能最大的发挥MySQL的性能优势。

Sybase数据库简介

1.版本

1984年,Mark B Hiffman和Robert Epstern创建了Sybase公司,并在1987年推出了Sybase数据库产品。SYBASE主要有三种版本,一是UNIX *** 作系统下运行的版本,二是Novell Netware环境下运行的版本,三是Windows NT环境下运行的版本。对UNIX *** 作系统目前广泛应用的为SYBASE 10 及SYABSE 11 for SCO UNIX。

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,应用程序可以访问其它的数据库管理系统。

1、引擎(engine)能够决定程序管理和数据 *** 作的程序或程序段。数据库引擎就是 *** 作数据库的一段程序或程序段。比如:在VB中,用microsoft jet数据库引擎和数据访问对象DAO(data access object)可以创建功能强大的客户/服务器应用程序。2、面试题吧,ADO、ODBC、MICROSOFT JET都是,ASP不是。

你只要懂电子表格,懂你的业务逻辑,快速实现无代码数据库编程。你一定听说过勤哲服务器、活字格、还有云表等等,我要向你推荐的是我现在正在学习和使用的workfine,基于bs架构,不需要你懂前端设计。只要你懂业务,懂业务,懂电子表格,很快写出高大尚的信息化系统,有兴趣私信,我给你我做的视频教程。

数据库软件?你指的是涉及到数据库访问的信息系统吗?一直用VisualStudio,觉得开发效率挺高的。

用哪个编程软件开发数据库软件比较好?我可以理解成开发数据库客户端应用系统吗?如果是这样,我愿分享一下我的感受。

数据库,就是存储数据的仓库,一般来说他位于数据库服务器上。这里我不打算讨论单机数据库。早年流行的C/S模式就是服务器客户端模式,现在很多公司局域网依然采用这种模式。后来B/S模式占了些上风,即浏览器客户端模式,通过浏览器访问位于远程服务器的数据库。目前较为流行分布式系统,即多终端访问数据库,手机APP、浏览器、PC桌面、穿戴设备、家电、汽车等!

开发分布式的数据库客户端,JAVA不失为一种好的选择,但我今天要说的是老树新芽的Delphi

最新版DX103提供了访问几乎所有大型流行传统数据库的驱动,也封装了NoSql应用,率先支持并封装访问Mongo组件。DX最新跨平台数据库引擎FireDAC小巧玲珑,功能和访问速度都比VCL的ADO强大得多。

DX数种访问数据库的方式中当然少不了Json,DX封装了Json组件,这是JavaScript的一个分支。DX的DataSnap中间服务器支持所有Json格式编写的客户端访问,当然也包括java等。

经过DX10封装后的组件用很少的代码即可实现强大的功能。

我几乎忘了最重要的一点,只需一套代码即开发多终端的应用。建议骨灰级的DX发烧友不妨试试!

首先需要弄清楚对数据库软件的定义,数据库软件是一个比较模糊的概念,对于长期从事软件开发工作的我,都不是很能明确的给他下一个定义,我只能说基于数据库的软件,这样的话很多编程软件都支持

1我们的数据库都是存储数据的载体,比如常用的sqlserver,mysql,oracle等,如果仅仅是针对数据库的数据进行清洗、处理、或者分类聚集等,其实每个数据库都有自己的可视化工具,比如SQLSERVER的SQLServerManagementStudio,mysql的MySQLWorkbench,oracle的plsqldev,当然也还有三方的支持多种数据库的工具,比如NavicatPremium。

2如果是基于数据库进行软件开发,进行数据库内容的展示或者基于数据库进行业务 *** 作,那选择性就多了。各种开发语言都可以进行数据库开发,当初最擅长做数据库开发的PB,Delphi,c++builder,VisualStudio,EclipseJava等等,都可以连接数据库进行不同的数据展示,同时通过交互界面对数据库进行 *** 作。

3开发语言在不断的更新变化,虽然很多开发语言也还在使用,但是我们在使用软件工具的时候尽量选择当今比较潮流的和有未来发展趋势的开发语言来进行数据库开发,比如java,python等等。

oracle的有PL/SQL、PL/DEVELOP、NAVICAT;其中NAVICAT还可以支持mysal、sqlserver。

以上就是关于C#开源轻量级对象数据库NDatabase介绍[1]全部的内容,包括:C#开源轻量级对象数据库NDatabase介绍[1]、mysql怎么启用innodb数据库引擎、出现Sybase SQL数据库引擎的地方5.5.04建造# 1867年版,要怎么解决等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10150958.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存