当前位置:编程学习 > C#/ASP.NET >>

关于本地数据库与服务器数据库的区别

请问在.net中本地数据库和服务器数据库有什么区别? --------------------编程问答-------------------- 一个在本地 一个在服务器端
连接字符串写的不同 --------------------编程问答-------------------- 没有任何实质上的区别。 --------------------编程问答-------------------- 本地数据库: .NET程序和调用的数据库在同一台计算机上。
服务器数据库: .NET程序和调用的数据库不在同一台计算机上。
其实本地数据库和服务器数据可以使用相同格式的连接字符串,比如:
"server=.;uid=username;pwd=yourpassword;database=databasename" //"."表示本地数据库,但本地数据库同样可以用server name来表示。
"server=servername;uid=username;pwd=yourpassword;database=databasename"

--------------------编程问答--------------------
引用楼主 wwslf11 的回复:
请问在.net中本地数据库和服务器数据库有什么区别?


如果你说的是sql server的话,那么其实没有什么大的区别。sql server本来就是一个c/s数据库,也就是说客户端驱动通过网络方式(命名管道、tcp等通讯方式)访问服务器进程。你把数据系统安装在本地,并且不向本机以外开放数据库系统监听的端口,并没有改变数据库系统的“客户端-服务器”通讯架构和通讯内容,严格来说也没有提高性能。 --------------------编程问答-------------------- 如果你说的是嵌入式数据库,例如Jet(许多人喜欢叫做access数据库,其实它只是office中access系统的一个底层驱动而已),或者SQlite,或者db4o(这本身也有c/s模式,也有潜入式模式)的数据库,那么才有一些区别。

比如Jet,假设你把mdb文件放到局域网的一个共享目录中供多台机器共享,文件会被多台客户端程序共享打开,并且大量地磁盘块会被在网络上丢来丢去地,而且往往一个客户端宕机则文件立马就坏了(使用修复工具修复文件之后往往会丢失一些数据)。所以现在已经几乎看不到有应用文件数据库方式的了,只是把它们作为嵌入式数据库而与应用程序部署在本地,而且只有一个应用程序访问(而不允许多进程共享)。

相对来说,c/s数据库则只是在网络上交换很少的命令,比如sql关系数据库只是交换sql语句和查询结果,而不大量地交换磁盘块数据。所以如果要多进程访问数据库,应该使用c/s数据库。 --------------------编程问答-------------------- 我把你说“本地数据库”看作是嵌入式数据库的话,其实它又有它的优点。比如说它通常很小,驱动程序很小并且占用的内存也很小。并且由于是单个进程内来操作数据库文件,理论上来说它应该比c/s数据库都快,不仅仅是节省了网络通讯时间,而且它往往不需要考虑操作大型的文件所以其内部的各种数据定义的字节长度都是“短的、高速的”。另外它也不需要额外安装部署,一般就是在应用程序中加入一个或者几个dll文件就行了。

假设你只有一个进程使用数据库,并且比如说你的数据库规模在一、两年以内达不到2G(对于db4o这类则是可以通过参数从2G调整到250G以上),那么就可以优先使用嵌入式数据库。而且这些往往是免费的,即使你把它商用时它收费往往是极其低廉。

不要盲目迷信c/s数据库。 --------------------编程问答--------------------
引用 3 楼 jzf2050 的回复:
本地数据库: .NET程序和调用的数据库在同一台计算机上。
服务器数据库: .NET程序和调用的数据库不在同一台计算机上。
其实本地数据库和服务器数据可以使用相同格式的连接字符串,比如:
"server=.;uid=username;pwd=yourpassword;database=databasename" //"."表示本地数据库,但本地数据库同样可以用server name来表示。
……

在.net中那个界面所选的组件恐怕不一样,另外基于服务的数据库等于服务器数据库吗?应该不是这样的吧 --------------------编程问答-------------------- 连接字符串不同,基本上默认端口号是相同的。其他没什么不一样 --------------------编程问答--------------------
引用 6 楼 sp1234 的回复:
我把你说“本地数据库”看作是嵌入式数据库的话,其实它又有它的优点。比如说它通常很小,驱动程序很小并且占用的内存也很小。并且由于是单个进程内来操作数据库文件,理论上来说它应该比c/s数据库都快,不仅仅是节省了网络通讯时间,而且它往往不需要考虑操作大型的文件所以其内部的各种数据定义的字节长度都是“短的、高速的”。另外它也不需要额外安装部署,一般就是在应用程序中加入一个或者几个dll文件就行了。

……

基于服务的数据库就等于服务器数据库吗? --------------------编程问答-------------------- 没什么区别,一样用,都是数据库。
本地数据库可能是指的文件型数据库(如:access、sqlite等)
服务器数据库可能是指oracle、sqlserver等。

只不过程序分发的时候,本地数据库是程序连同数据库一起走的,而服务器数据库只需要拷贝程序。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,