新手问高手,开发移动那样的客户管理系统,用sql sever,还是oracle,为什么? 20分,无满意结帖,结帖人Terrel_123]

发布时间:2016-12-10 22:44:47 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"新手问高手,开发移动那样的客户管理系统,用sql sever,还是oracle,为什么? 20分,无满意结帖,结帖人Terrel_123]",主要涉及到新手问高手,开发移动那样的客户管理系统,用sql sever,还是oracle,为什么? 20分,无满意结帖,结帖人Terrel_123]方面的内容,对于新手问高手,开发移动那样的客户管理系统,用sql sever,还是oracle,为什么? 20分,无满意结帖,结帖人Terrel_123]感兴趣的同学可以参考一下。

开发移动那样的客户管理系统,用sql sever,还是oracle,为什么? 由于没有经验,见笑了:)

Oracle 与SQL SERVER概念  -----------------------------------------------------  ·Oracle的服务和数据库 相当于 MS SQL的数据库服务;  ·Oracle的服务= 后台进程+相关内存  ·数据库= 数据文件的集合  Oracle的服务完全可以与数据库文件脱离开来;Oracle中的Schema与MS SQL中的数据库。  Schema“方案”是一个用户所拥有所有对象的集合。  “对象”包括表、视图、实例化视图、序列、过程、函数、程序包、同义词。  Oracle类似于MSSQL的数据库大致过程如下:  ·建立数据库表空间(相当于MSSQL的数据库的数据文件)  ·建立临时表空间(相单于MSSQL的数据库的事务日志文件)  ·建立用户,它的缺省空间和临时表空间是刚建立的两个表空间  ·给用户授权,最起码得角色权限是Connect的角色  ·以该用户登陆,创建自己的表、视图、实例化视图、序列、过程、函数、程序包、同义词等。  关于Oracle Manager Server与MS SQL的Enterprise manager  -----------------------------------------------------  DBA Studio工具提供了与MS SQL的Enterprise manager同样的功用,但应该说两者有很大的区别。  对于一般是用来说,DBA Studio工具已经足够了。但这里有必要对Oracle Manager Server解释一下:  〉它是Oracle管理分布式数据库的服务,注意她是服务。  〉它缺省并不安装  〉它需要有自己管理所需要的资料库。在某个数据库中需要建立相应的用户  〉它的登陆需要身份验证,注意这里的身份验证,与管理所需要的资料库的用户不是一个概念,也不是数据库中的SYS,system;  它的默认用户是oem_temp sysman  > 使用她,在管理端要启动Manager Server服务和智能代理服务(OracleAgent),被管理的数据库服务器要启动智能代理服务(oracleagent).  关于Oracle的SYS,system的用户与MSSQL的Master比较  ------------------------------------------------  MSSQL的Master数据库储存了当前数据库服务的一些配置信息,如数据库设备、字符集、数据文件、登陆帐号、拥有的数据库、整个服务参数配置等信息。  Oracle的sys存储了Oracle服务或者实例的信息及所有用户的数据字典信息。  Oracle的system用户拥有数据字典是视图信息,有了这些视图,我们查询数据库的信息就特别方便。缺省情况下,system用户拥有DBA系统角色权限,  而sys不仅拥有DBA的权限还拥有sysdba的权限。  DBA\SYSDBA系统角色的区别:  首先说明一下oracle服务的创建过程:创建实例、启动实例、创建数据库(SYSTEM表空间是必需的)  其次启动过程:实例启动、装载数据库、打开数据库  Oracle中新的数据库对象:实例化视图、快照、序列、程序包、同义词、抽象的数据类型  --------------------------------------------------------------------------------  ·实例化视图又称显形图:实例化说明它有自己的存储空间;视图:说明它的数据源于其他表数据。  ·实例化视图中的数据,设置为隔一段时间更新数据,更新的模式可以定义为完全更新和增量更新。  ·快照基本上同实例化视图,只不过数据来源不同,快照数据来源于远程数据库,而实例化视图来源于本地数据表  ·序列,相当于MSSQL中的identify列,它是一个数字顺序列表  ·程序包:它是过程、函数、全局变量的集合;它封装了私有变量、私有过程和私有函数。如:DBMS_OUT包  ·同义词:是对数据库中的对象的别名,同义词可以是全局的也可以是私有的(属于某个用户的)如:tab,col等  ·抽象的数据类型:类似于C中的结构体或Pascal记录类型。  Oracle数据库连接和 Mssql远程连接  ---------------------------------------------  两者都是为了实现分布式数据库的操作,两者都能实现分布式事务  Oracle回滚断和MSSQL的数据库事物日志文件  -----------------------------------------------  回滚段提供了事务回滚需要使用的数据变化以前的映象,这些映象是按条目储存的,如果这些条目过少,一个事务等待另一个事务的几率  增大,就会影响数据库的性能。缺省安装时,提供一个系统回滚段它在system表空间。  为了提高性能,system表空间不应储存有任何数据字典信息以外的信息。  MSSQL数据库事务日志文件功能类同于回滚段,只不过它是同特定的数据库密切相关的。  关于数据表的管理  -----------------  超大型数据表的管理:  oracle和MsSQL都提供了一种“把数据文件及其索引存放在一个特定的数据文件或表空间里”方法  Oracle将表及索引分区储存,即按字段值的范围进行分区存储。  ·Oracle索引组织表和Sqlserver簇索引表 :两者的数据存放顺序都是按照索引值的顺序存放的  ·无事务回滚概念的表,对这种表的操作不存在事务的概念;ORacle提供了建表参数nologging,使对该表的操作不参与事务的回滚。  ·索引:oracle提供了多种MSSQL没有的索引类型,如:位图索引等  外连接  =------------------------------------  ·MSSQL支持两种形式表之间连接  (1)从SYSBASE继承来的形式:  1)字段1*=字段2(左连接)  2)字段1=*字段2(右连接)  3)没有这种形式的全外连接语法  (2)标准的外连接语法:  1)left[outer] join on 逻辑表达式  2)right[outer] join on 逻辑表达式  3)full[outer] jion (全外连接) on 逻辑表达式  ·Oracle不支持标准的外连接语法,也没有全外连接(这是他的缺陷)。  1)字段1=字段2(+)(左连接)  2)字段1(+)=字段2(右连接)  ·使用外连接语句的用处  (1)不想因为表连接而使主表数据行丢失  (2)查找某条记录在表A存在,而在B表不存在,按常规做法用not in(select...查询语句)语法。  使用not in 最大的缺点就是速度慢,原因是每行都去做select查询语句;而使用如下语句则会更好:  select tu_company.* from TU_company left  join TU_Comp_agent on  TU_company.id=tu_comp_agent.compCode where TU_comp_agent.id is null;  触发器  =====================  ·MSSQL仅有表的触发器,而且触发时机不够丰富,如插入触发器不区分单条插入还是多条插入;也不区分插入前触发还是插入后触发。碰到  多条数据的插入,需要使用游标处理每条插入的数据。  ·Oracle提供的触发器不仅有基于表的触发器,而且还有其它类型的,例如数据库计的触发器:数据库的启动、数据库关闭。对于表级的触发器  区分单条插入还是多条插入,也区分插入前触发还是插入后触发  表数据复制  -------------  ·库内数据复制  ·MSSQL  Insert into 复制表名称 select 语句(复制表已经存在)  select 字段列表 into 复制表名 from 表(复制表不存在)  ·Oracle  Insert into 复制表名称 select 语句(复制表已经存在)  create table 复制表名称 as select 语句(复制表不存在)  ·文本文件转入,转出的批量处理  ·MSSQL  BCP命令行程序  ·Oracle  SQLLDR命令行程序  多表更新、删除  -------------------  一条更新语句是不能更新多张表的,除非使用触发器隐含更新,这里的意思是说:根据其他表数据更新你要更新的表。  ·MSSQL  update a set 字段1=B表子段表达式,字段2=B表子段表达式,。。。。from B where 逻辑表达式  ·ORACLE  update a set 字段1=(Select子段表达式 from B where ...),字段2=(Select子段表达式 from B where ...),...from B where 逻辑表达式  就以上问题来看假如A需要多个子段更新,MSSQL更简练!  关于存储过程或函数中使用的临时表  ---------------------------------  两者都有这个功能。临时表最主要的好处是,操作不留任何痕迹、不产生日志,所以速度快。  ·MSSQL  Create table #表名(...),或者select 字段表达式列表 INTo #表名称 FRom 表名称前加#,这些临时表都是旨在一个数据库连接会话期间有效。  ·ORACLE  create [global] temporary table,加上[global]就是全局的临时表(所有数据库连接会话都是可见的),否则为私有(在一个数据库连接会话期间有效)。  动态执行SQL语句  ------------------  ·在存储过程中的参数中传递一个表名或者在过程体力动态生成一个SQL语句。  MSSQL:  declare @count int  declare @Sql nvarchar(200)  set @sql=N'select count(*) from sysobjects'  exec sp_executesql @sql,[email protected] int output',@count output  ORACLE:  (1)程序包DBMS_SQL,执行一个语句的过程:  打开游标(OPen_cursor,对于非查询语句,无此过程)  分析语句(parse)  绑定变量(bind_variable)  执行语句(execute)  关闭游标(close_cursor,对于排序查询语句,无此过程)  (2)Execute immediate ls_SQL  数据库备份和恢复  -----------------------------------------------  MSSQL:  (1)数据库导入导出DTS工具,如果数据源和目的都是MSSQL则可以完全复制数据库的结构(表、视图、索引、触发器、规则、默认、存储过程、自定义函数、表数据等)  (2)数据库备份和还原命令:  BackUp database  Restore database  导出的数据文件还可以压缩,数据库备份和还原方式可以是增量和完全的。  (3)数据库的附加attach  只要数据库的原始数据和日志文件没有破坏,就可以使用命令:SP_ADDACH_DB.这种情况有时候回出现问题:比方说你见了登陆帐号,  不是使用缺省的登陆帐号SA,由于登陆帐号的信息存放在master数据库中,所以使用原来建立的账号就等不上,需要以下后部工作。  ORACLE:  (1)导入导出工具:Exp工具、Imp工具  导入导出的参数很多  (2)冷备份或者脱机备份,备份的时候数据库是停止的  备份所有的数据文件、日志文件、控制文件  (3)热备份或者联机备份  数据库处在archivelog模式,注意缺省情况下都是archivelog恢复时可以选择完全恢复、时间点恢复、SCN点恢复、用户自由干预的  CANCEL恢复可以说是它的热备份功能是非常强大。  (3)RMAN恢复管理期 

建议选择Oracle 开放性 SQL Server 只能在Windows 上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且Windows平台的可靠性,安全性和伸缩性是非常有限的。它不象Unix那样久经考验,尤其是在处理大数据量的关键业务时。 Oracle 能在所有主流平台上运行(包括 Windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。 DB2 能在所有主流平台上运行(包括Windows)。最适于海量数据。DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器,而国内到97年约占5%。  可伸缩性,并行性 SQL Server 并行实施和共存模型并不成熟。很难处理日益增多的用户数和数据卷。伸缩性有限。 Oracle 平行服务器通过使一组结点共享同一簇中的工作来扩展Window NT的能力,提供高可用性和高伸缩性的簇的解决方案。如果WindowsNT不能满足需要, 用户可以把数据库移到UNIX中。 DB2  DB2具有很好的并行性。DB2把数据库管理扩充到了并行的、多节点的环境。数据库分区是数据库的一部分,包含自己的数据、索引、配置文件、和事务日志。数据库分区有时被称为节点或数据库节点。  安全性 SQL server   没有获得任何安全证书。  Oracle   获得最高认证级别的ISO标准认证。 DB2  获得最高认证级别的ISO标准认证。  性能 SQL Server   多用户时性能不佳  Oracle   性能最高, 保持WindowsNT下的TPC-D和TPC-C的世界记录。 DB2   适用于数据仓库和在线事物处理,性能较高。  客户端支持及应用模式 SQL Server  C/S结构,只支持Windows客户,可以用ADO,DAO,OLEDB,ODBC连接。 Oracle 多层次网络计算,支持多种工业标准,可以用ODBC,JDBC,OCI等网络客户连接。 DB2 跨平台,多层结构,支持ODBC,JDBC等客户。 操作简便  SQL Server  操作简单,但只有图形界面。 Oracle 较复杂, 同时提供GUI和命令行,在Windows NT和Unix下操作相同。 DB2 操作简单,同时提供GUI和命令行,在Windows NT和Unix下操作相同。  使用风险  SQL Server  完全重写的代码,经历了长期的测试,不断延迟,许多功能需要时间来证明。并不十分兼容早期产品。使用需要冒一定风险。 Oracle 长时间的开发经验,完全向下兼容。得到广泛的应用。完全没有风险。 DB2 在巨型企业得到广泛的应用,向下兼容性好。风险小。 

以上我以前都看过了啊,可不可以提一些经验性的建议啊

移动那样的管理是用的db2或者oracle因为数据量超大,超大数据mssql处理很慢。然后根据你服务器的操作系统mssql貌似只在windows系统下运行。oracle可以在任何系统运行。性能上当然oracle更强大,只是维护比较麻烦点

上一篇:SQL Server2005恢复时报错,错误号是3219,求助! 100fredrickhu]
下一篇:送高分,数据库从SQL2000移到SQL2005出现了问题~ 20feixianxxx]

相关文章

相关评论