sybasesqlserver
‘壹’ 数据库有哪几种
一、关系数据库
关系型数据库,存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,关系型数据库中表与表之间是有很多复杂的关联关系的。
常见的关系型数据库有Mysql,SqlServer等。在轻量或者小型的应用中,使用不同的关系型数据库对系统的性能影响不大,但是在构建大型应用时,则需要根据应用的业务需求和性能需求,选择合适的关系型数据库。
虽然关系型数据库有很多,但是大多数都遵循SQL(结构化查询语言,Structured Query Language)标准。 常见的操作有查询,新增,更新,删除,求和,排序等。
查询语句:SELECT param FROM table WHERE condition 该语句可以理解为从 table 中查询出满足 condition 条件的字段 param。
新增语句:INSERT INTO table (param1,param2,param3) VALUES (value1,value2,value3) 该语句可以理解为向table中的param1,param2,param3字段中分别插入value1,value2,value3。
更新语句:UPDATE table SET param=new_value WHERE condition 该语句可以理解为将满足condition条件的字段param更新为 new_value 值。
删除语句:DELETE FROM table WHERE condition 该语句可以理解为将满足condition条件的数据全部删除。
去重查询:SELECT DISTINCT param FROM table WHERE condition 该语句可以理解为从表table中查询出满足条件condition的字段param,但是param中重复的值只能出现一次。
排序查询:SELECT param FROM table WHERE condition ORDER BY param1该语句可以理解为从表table 中查询出满足condition条件的param,并且要按照param1升序的顺序进行排序。
总体来说, 数据库的SELECT,INSERT,UPDATE,DELETE对应了我们常用的增删改查四种操作。
关系型数据库对于结构化数据的处理更合适,如学生成绩、地址等,这样的数据一般情况下需要使用结构化的查询,例如join,这样的情况下,关系型数据库就会比NoSQL数据库性能更优,而且精确度更高。
由于结构化数据的规模不算太大,数据规模的增长通常也是可预期的,所以针对结构化数据使用关系型数据库更好。关系型数据库十分注意数据操作的事务性、一致性,如果对这方面的要求关系型数据库无疑可以很好的满足。
二、非关系型数据库(NoSQL)
随着近些年技术方向的不断拓展,大量的NoSql数据库如MongoDB、Redis、Memcache出于简化数据库结构、避免冗余、影响性能的表连接、摒弃复杂分布式的目的被设计。
指的是分布式的、非关系型的、不保证遵循ACID原则的数据存储系统。NoSQL数据库技术与CAP理论、一致性哈希算法有密切关系。所谓CAP理论,简单来说就是一个分布式系统不可能满足可用性、一致性与分区容错性这三个要求,一次性满足两种要求是该系统的上限。
而一致性哈希算法则指的是NoSQL数据库在应用过程中,为满足工作需求而在通常情况下产生的一种数据算法,该算法能有效解决工作方面的诸多问题但也存在弊端,即工作完成质量会随着节点的变化而产生波动,当节点过多时,相关工作结果就无法那么准确。
这一问题使整个系统的工作效率受到影响,导致整个数据库系统的数据乱码与出错率大大提高,甚至会出现数据节点的内容迁移,产生错误的代码信息。
但尽管如此,NoSQL数据库技术还是具有非常明显的应用优势,如数据库结构相对简单,在大数据量下的读写性能好;能满足随时存储自定义数据格式需求,非常适用于大数据处理工作。
NoSQL数据库适合追求速度和可扩展性、业务多变的应用场景。
对于非结构化数据的处理更合适,如文章、评论,这些数据如全文搜索、机器学习通常只用于模糊处理,并不需要像结构化数据一样,进行精确查询,而且这类数据的数据规模往往是海量的,数据规模的增长往往也是不可能预期的;
而NoSQL数据库的扩展能力几乎也是无限的,所以NoSQL数据库可以很好的满足这一类数据的存储。
NoSQL数据库利用key-value可以大量的获取大量的非结构化数据,并且数据的获取效率很高,但用它查询结构化数据效果就比较差。
目前NoSQL数据库仍然没有一个统一的标准,它现在有四种大的分类:
1、键值对存储(key-value):代表软件Redis,它的优点能够进行数据的快速查询,而缺点是需要存储数据之间的关系。
2、列存储:代表软件Hbase,它的优点是对数据能快速查询,数据存储的扩展性强。而缺点是数据库的功能有局限性。
3、文档数据库存储:代表软件MongoDB,它的优点是对数据结构要求不特别的严格。而缺点是查询性的性能不好,同时缺少一种统一查询语言。
4、图形数据库存储:代表软件InfoGrid,它的优点可以方便的利用图结构相关算法进行计算。而缺点是要想得到结果必须进行整个图的计算,而且遇到不适合的数据模型时,图形数据库很难使用。
安全
数据库安全涉及保护数据库内容、其所有者和用户的所有各个方面。它的范围从防止有意的未经授权的数据库使用到未经授权的实体(例如,个人或计算机程序)无意的数据库访问。
数据库访问控制涉及控制谁(一个人或某个计算机程序)可以访问数据库中的哪些信息。该信息可以包括特定的数据库对象(例如,记录类型、特定记录、数据结构);
对特定对象的特定计算(例如,查询类型或特定查询),或者使用到前者的特定访问路径(例如,使用特定索引)或其他数据结构来访问信息)。
数据库访问控制由使用专用受保护安全 DBMS 接口的特别授权(由数据库所有者)人员设置。
这可以在个人基础上直接管理,或者通过将个人和特权分配给组,或者(在最复杂的模型中)通过将个人和组分配给角色,然后授予权利。数据安全可防止未经授权的用户查看或更新数据库。使用密码,用户可以访问整个数据库或它的子集,称为“子模式”。
例如,员工数据库可以包含有关单个员工的所有数据,但一组用户可能仅被授权查看工资数据,而其他用户仅被允许访问工作历史和医疗数据。如果 DBMS 提供了一种交互式输入和更新数据库以及查询数据库的方法,则此功能允许管理个人数据库。
数据安全通常涉及保护特定的数据块,包括物理保护(即免受损坏、破坏或移除;例如,参见物理安全),或将它们或它们的一部分解释为有意义的信息(例如,通过查看它们组成的位串,得出特定的有效信用卡号;例如,参见数据加密)。
更改和访问日志记录谁访问了哪些属性、更改了什么以及何时更改。日志服务通过保留访问发生和更改的记录,允许以后进行取证数据库审计。有时应用程序级代码用于记录更改而不是将其留给数据库。可以设置监控以尝试检测安全漏洞。
以上内容参考网络-数据库
‘贰’ Sybase数据库与sql server有什么区别吗 详细�0�3
Sybase 数据库与sql server 有什么区别吗? 目前目前大型的数据库都采用oracle,中小型的用sqlServer,建议用sqlserver 或者mysql。 sybase 与sqlsrver 的内在区别就是: 1.Sybase 没有用户自定义函数。 2.判断fetch 成功的全局变量是@@SQLstatus,而不是@@fetch_status。 3.没有set,赋值与查询通用select。 4.没有top,返回N 行要使用set rowcount N / set rowcount 0 5.raiserror 22009 " "--> raiserror( ' ',16,1) 6.游标一定要在过程中使用,不能单独在查询中使用。 7.销毁游标要加cursor 关键字.如:deallocate cursor cur_tmp 8.没有bigint 类型。 9.create table #t(id numeric(12,0) identity not null),不支持int 型,且不能设置起始值和步进值。 10.不能alter 一个存储过程,要先drop 掉再create。 11.没有len 函数,使用char_length 或datalength 等效。 12.通过sysindexes 中的doampg 列可返回某表的行数,rowcnt(doampg) 。 13.convert 函数没有120 格式(yyyy-mm-dd hh:mm:ss),需要使用select convert(char(4),datepart(year,getdate()))+ '- '+right( '0 '+convert(varchar(2),datepart(month,getdate())),2)+ '- '+right( '0 '+convert(varchar(2),datepart(day,getdate())),2)+ ' '+convert(char(10),getdate(),8) 14.charindex 不能从被查找字符串中按指定位置查找某字符串。 15.不能使用rtrim函数将数值型转为字符型。 16.没有cast 函数,数值型到字符型转移使用select convert(varchar(10),123) 17.没有replace 函数。 18.没有left 函数,只有right 函数。 19.不支持在字段上加[]。 20.select 语句中不支持变量累加,例如:select @SQL=@SQL+colname from tablename 21.在过程及视图中系统会自动将select * 变为select 列1,列2... 22.varchar 最大支持16384 个字节(SQLServer 中是8000) 。 23.Sybase 不支持表变量。 24.Sybase 不支持instead of 触发器。 25.Sybase 没有调度(注:定时执行某个操作) 。
‘叁’ 数据库(SQLSERVER、Oracle、Sybase)的区别
开放性:
SQL Server
只能在windows上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用NT server只适合中小型企业。而且windows平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据。
Oracle
能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。
Sybase ASE
能在所有主流平台上运行(包括 windows)。 但由于早期Sybase与OS集成度不高,因此VERSION 11.9.2以下版本需要较多OS和 DB级补丁。在多平台的混合环境中,会有一定问题。
DB2
能在所有主流平台上运行(包括windows)。最适于海量数据。DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器,而国内到97年约占5%。
可伸缩性,并行性
SQL Server
并行实施和共存模型并不成熟。很难处理日益增多的用户数和数据卷。伸缩性有限。
Oracle
并行服务器通过使一组结点共享同一簇中的工作来扩展windownt的能力,提供高可用性和高伸缩性的簇的解决方案。如果windowsNT不能满足需要,用户可以把数据库移到UNIX中。Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。
Sybase ASE
虽然有DB SWITCH来支持其并行服务器,但由于DB SWITCH在技术层面还未成熟,且只支持版本12.5以上的ASE SERVER,因为DB SWITCH技术需要一台服务器充当SWITCH.
DB2
具有很好的并行性。DB2把数据库管理扩充到了并行的、多节点的环境。数据库分区是数据库的一部分,包含自己的数据、索引、配置文件、和事务日志。数据库分区有时被称为节点.
安全性
SQL Server
没有获得任何安全证书。
Oracle Server
获得最高认证级别的ISO标准认证。
Sybase ASE
获得最高认证级别的ISO标准认证。
DB2
获得最高认证级别的ISO标准认证。
性能
SQL Server
多用户时性能不佳
Oracle
性能最高, 保持开放平台下的TPC-D和TPC-C的世界记录。
Sybase ASE
性能接近于 SQL Server。但在UNIX平台下的并发性要优与 SQL Server。
DB2
性能较高适用于数据仓库和在线事物处理。
客户端支持及应用模式
SQL Server
C/S结构,只支持windows客户,可以用ADO,DAO,OLEDB,ODBC连接.
Oracle
多层次网络计算,支持多种工业标准,可以用ODBC,JDBC,OCI等网络客户连接。
Sybase ASE
C/S结构,可以用ODBC,Jconnect,Ct-library等网络客户连接。
DB2
跨平台,多层结构,支持ODBC,JDBC等客户
操作简便
SQL Server
操作简单,但只有图形界面。
Oracle
较复杂,同时提供GUI和命令行,在windowsNT和unix下操作相同
Sybase ASE
较复杂,同时提供GUI和命令行。但GUI较差,常常无法及时状态,建议使用命令行。
DB2
操作简单,同时提供GUI和命令行,在windowsNT和unix下操作相同
使用风险
SQL Server
完全重写的代码,经历了长期的测试,不断延迟,许多功能需要时间来证明。并不十分兼
Oracle
长时间的开发经验,完全向下兼容。得到广泛的应用。完全没有风险。
Sybase ASE
向下兼容, 但是ct-library 程序不益移植。
DB2
在巨型企业得到广泛的应用,向下兼容性好。风险小。
经过上述比较,我们不难发现,DB2是最好的数据库。
‘肆’ Sybase SQLServer是哪个公司的产品
sqlserver 是Microsoft、Sybase 和Ashton-Tate三家公司共同开发的。
Microsoft 将其移植到Windows NT ,同期Microsoft、Sybase 和Ashton-Tate就分家了。
之后的SQL server 指的就是 Microsoft SQL Server。
而 sybase 的旗舰式 RDBMS 产品 则是Adaptive Server Enterprise (ASE) 。在跨平台的数据库管理系统中,广受好评。
‘伍’ Sybase数据库与sql server有什么区别吗
你好,目前目前大型的数据库都采用oracle,中小型的用sqlServer,建议用sqlserver或者mysql。
sybase与sqlsrver的内在区别就是:
1.Sybase没有用户自定义函数。
2.判断fetch成功的全局变量是@@SQLstatus,而不是@@fetch_status。
3.没有set,赋值与查询通用select。
4.没有top,返回N行要使用set rowcount N / set rowcount 0
5.raiserror 22009 " "--> raiserror( ' ',16,1)
6.游标一定要在过程中使用,不能单独在查询中使用。
7.销毁游标要加cursor关键字.如:deallocate cursor cur_tmp
8.没有bigint类型。
9.create table #t(id numeric(12,0) identity not null),不支持int型,且不能设置起始值和步进值。
10.不能alter一个存储过程,要先drop掉再create。
11.没有len函数,使用char_length或datalength等效。
12.通过sysindexes中的doampg列可返回某表的行数,rowcnt(doampg) 。
13.convert函数没有120格式(yyyy-mm-dd hh:mm:ss),需要使用select convert(char(4),datepart(year,getdate()))+ '- '+right( '0 '+convert(varchar(2),datepart(month,getdate())),2)+ '- '+right( '0 '+convert(varchar(2),datepart(day,getdate())),2)+ ' '+convert(char(10),getdate(),8)
14.charindex不能从被查找字符串中按指定位置查找某字符串。
15.不能使用rtrim函数将数值型转为字符型。
16.没有cast函数,数值型到字符型转移使用select convert(varchar(10),123)
17.没有replace函数。
18.没有left函数,只有right函数。
19.不支持在字段上加[]。
20.select语句中不支持变量累加,例如:select @SQL=@SQL+colname from tablename
21.在过程及视图中系统会自动将select * 变为select 列1,列2...
22.varchar最大支持16384个字节(SQLServer中是8000) 。
23.Sybase不支持表变量。
24.Sybase不支持instead of触发器。
25.Sybase没有调度(注:定时执行某个操作) 。
‘陆’ 本地计算机无法启动Sybase Sqlserver 服务。错误1077
1 先将数据库文件复制备份,包括系统数据库;
2 按原来的安装选项重新安装数据库系统,确保数据库及日志文件名称、空间、位置、大小等一致;
3 重新安装sybase;
4 把数据库复制回去;
5 OK
‘柒’ sql server怎么将远程服务器上的sybase数据库导入到本地数据库
3个办法:
用
ssis
(sql2000是dts)从sybase导出,在sqlserver上进行导入
在sqlserver上建立链接服务器连接到sybase服务器上,然后直接用
insert
into
...
select
...
之类的语法。
或者直接用opendataSource之类的函数链接到sybase服务器上,使用 insert
into
...
select
...
之类的语法进行导入。