Sybase
Sybase 公司在1984年由Mark B. Hiffman和Robert Epstern创建,并在1987年推出了Sybase数据库产品。SYBASE主要有三种版本,一是UNIX操作系统下运行的版本,二是Novell Netware环境下运行的版本,三是Windows NT环境下运行的版本。对UNIX操作系统目前广泛应用的为SYBASE 10 及SYABSE 11 for SCO UNIX。Sybase提供了一套应用程序编程接口和库,可以与非Sybase数据源及服务器集成,允许在多个数据库之间复制数据,适于创建多层应用。系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的数据安全性。Sybase通常与SybaseSQLAnywhere用于客户机/服务器环境,前者作为服务器数据库,后者为客户机数据库,采用该公司研制的PowerBuilder为开发工具,在我国大中型系统中具有广泛的应用。
Sybase数据库的特点[ ]
- 它是基于客户/服务器体系结构的数据库
- 一般的关系数据库都是基于主/从式的模型的。在主/从式的结构中,所有的应用都运行在一台机器上。用户只是通过终端发命令或简单地查看应用运行的结果。而在客户/服务器结构中,应用被分在了多台机器上运行。一台机器是另一个系统的客户,或是另外一些机器的服务器。这些机器通过局域网或广域网联接起来。
- 客户/服务器模型的好处是:
- 它支持共享资源且在多台设备间平衡负载
- 允许容纳多个主机的环境,充分利用了企业已有的各种系统
- 注释:什么是客户/服务器体系结构?
- 从硬件角度看,客户/服务器体系结构是指将某项任务在两台或多台机器之间进行分配,其中客户机(Client)用来运行提供用户接口和前端处理的应用程序,服务器机(Server)提供客户机使用的各种资源和服务。
- 从软件角度看,客户/服务器体系结构是把某项应用或软件系统按逻辑功能划分为客户软件部分和服务器软件部分。
- 客户软件部分一般负责数据的表示和应用,处理用户界面,用以接收用户的数据处理请求并将之转换为对服务器的请求,要求服务器为其提供数据的存储和检索服务;服务器端软件负责接收客户端软件发来的请求并提供相应服务客户/服务器融合了大型机的强大功能和中央控制以及PC机的低成本和较好的处理平衡。
- 客户/服务器为任务的集中/局部分布提供了一种新的方法,这种体系能够使用户对数据完整性、管理和安全性进行集中控制。在缓解网络交通和主机负荷以及满足用户需要方面,客户/服务器体系提供了良好的解决方案。
- 它是真正开放的数据库
由于采用了客户/服务器结构,应用被分在了多台机器上运行。更进一步,运行在客户端的应用不必是Sybase公司的产品。对于一般的关系数据库,为了让其它语言编写的应用能够访问数据库,提供了预编译。Sybase数据库,不只是简单地提供了预编译,而且公开了应用程序接口DB-LIB,鼓励第三方编写DB-LIB接口。由于开放的客户DB-LIB允许在不同的平台使用完全相同的调用,因而使得访问DB-LIB的应用程序很容易从一个平台向另一个平台移植。
- 它是一种高性能的数据库
Sybase真正吸引人的地方还是它的高性能。体现在以下几方面:
1)可编程数据库
通过提供存储过程,创建了一个可编程数据库。存储过程允许用户编写自己的数据库子例程。这些子例程是经过预编译的,因此不必为每次调用都进行编译、优化、生成查询规划,因而查询速度要快得多。
2)事件驱动的触发器
触发器是一种特殊的存储过程。通过触发器可以启动另一个存储过程,从而确保数据库的完整性。
3)多线索化
Sybase数据库的体系结构的另一个创新之处就是多线索化。一般的数据库都依靠操作系统来管理与数据库的连接。当有多个用户连接时,系统的性能会大幅度下降。
Sybase数据库不让操作系统来管理进程,把与数据库的连接当作自己的一部分来管理。此外,Sybase的数据库引擎还代替操作系统来管理一部分硬件资源,如端口、内存、硬盘,绕过了操作系统这一环节,提高了性能。
访问Sybase服务器的基本过程[ ]
1、建立客户与服务器之间的连接,包括网络连接、客户进程与服务器进程之间的连接;
2、客户端通过网络发送SQL语句给服务器,用来查询或操作服务器中的数据或数据库对象;
3、服务器接收到SQL语句后,对其进行语法分析、优化和编译后执行;
4、如果执行的语句产生一个结果集,服务器通过网络把结果集返回给客户;
5、客户端对收到的结果作相应的处理。
- 在客户/服务器体系,有两种数据库引擎结构,即多进程数据库引擎和单进程、多线程引擎结构。多进程结构即多个可执行程序同时运行。
- 每当用户登录到数据库系统时实际上都启动了数据库引擎的一个独立实例。
- 存在起协调作用的进程协调进行之间的通讯以保证当多用户访问相同数据时数据的完整性。
- 多进程数据库引擎一般用在大型机数据库上。单进程多线程数据库引擎在原理上和多进程数据库引擎类似,不同的是多线程数据库引擎自己负责调度各应用程序占用CPU的时间,而不依赖于操作系统。这样,多线程数据库引擎自我保护的能力更强。
- Sybase数据库管理系统采用的是单进程多线程的引擎结构。
Sybase软件的组成[ ]
Sybase软件可划分为三个部分:
- 1)进行数据管理与维护的联机关系数据库管理系统Sybase SQL Server;
- 2)支持数据库应用系统的建立和开发的一组前端工具软件Sybase SQL Tools;
- 3) 把异构环境下其他厂商的应用软件和任何类型的数据连接在一起的接口软件Open Client/Open Server。
- SQL Server是个可编程的数据库管理系统(DBMS),它是整个Sybase产品的核心软件,起着数据管理、高速缓冲区管理、事务管理的作用。
- ISQL是与SQL Server进行交互的一种SQL句法分析器。ISQL接收用户发出的SQL语言,将其发送给SQL Server,并将结果以形式化的方式显示在用户的标准输出上。
- lset的一个主要组成部分,它的作用在于使用户能够设置和管理SQL Server上的数据库,并且为用户提供一种对数据库的信息执行添加、更新和检索等操作的简便方法。
- 在DWB中能完成ISQL的所有功能,且由于DWB是基于窗口和菜单的,因此操作比ISQL简单,是一种方便实用的数据库管理工具。
- APT是Sybase客户软件部分的主要产品之一,也是从事实际应用开发的主要环境。APT工作台是用于建立应用程序的工具集,可以创建从非常简单到非常复杂的应用程序,它主要用于开发基于表格(form)的应用。
- 其用户界面采用窗口和菜单驱动方式,通过一系列的选择完成表格(form)、菜单和处理的开发。
- 通过Open Client的DB-LIB库,应用程序可以访问SQL Server。而通过Open Server的SERVER-LIB,应用程序可以访问其它的数据库管理系统。
Sybase基础知识[ ]
Sybase安装[ ]
安装建立SQL Server以后,要建立放置数据库、日志和索引的逻辑磁盘设备。数据库、日志和索引的配置应注意以下原则:
- 1)不要把任何用户对象安装在master数据库中。
- 2)日志应该保存在与数据库分离的磁盘上。
- 3)可以通过跨越多个设备分配工作优化I/O性能。
Sybase 的初始配置[ ]
需要做的内容:
1)更改sa的登录口令;
2)命名服务器;
3)修改文件名(保证Sybase Central正常启动);
4)更改缺省设备;
5)增加tempdb的空间。
6)创建用户数据库(创建数据库设备,设备大小以页(2K)为单位)
系统管理的主要内容[ ]
1)物理资源的管理
2)用户及其权限管理
3)数据库的备份与恢复
4)SQL Server的配置参数
- 服务器配置是系统管理员的职责,正确的配置对系统性能有重大的影响。
- 有两个系统表存储配置信息:sysconfigures和syscurconfigs;sysconfigures是永久性的,一旦系统运行,sysconfigures的信息就拷贝到syscurconfigs中。显示配置和改变配置使用系统过程sp_configure。
- 有两种配置值:动态的和静态的,动态值一旦改变立即生效,静态值要在系统重启动后才起作用。
SYBASE SQL SERVER的角色[ ]
一般在管理分工较细的数据库系统中,sa用户往往被分为三种角色:系统管理员角色(SA role)、系统安全员角色(SSO role)和操作员角色(OPER role)。
sa用户往往被锁住,其权力被以上三种角色所瓜分。这三种角色将分别用不同的数据库注册用户承担。
角色是权限的集合。系统预定义角色: 一个真正的数据库管理员应该是整个服务器及其数据库的拥有者,具有管理服务器及其数据库的所有权限。在一个大的系统中,数据库管理员往往不只由一人承担,而是将管理任务进行功能划分,每人提当不同的责任。系统预定义角色就是为适应这种要求而设计的。
1)系统管理员(sa_role)
sa_role角色拥有执行与数据库具体应用无关的管理权限:
a.安装与更新SQL Server b.管理服务器的物理存储 c.配置系统设置参数; d.创建用户数据库; e.授予SQL Server用户权限 ┅┅
2)系统安全管理员(sso_role)
a.sso_role用来实施安全上敏感的操作,执行有关安全性的任务: b.建立服务器登录帐户; c.管理口令; d.授予除sa_role之外的任何角色; e.管理审计系统; ┅┅
3)操作员(oper_role)
a.oper_role执行全服务器范围的数据库操作,如备份与恢复任意数据库等: b.转储数据库与日志 c.转载数据库与日志 ┅┅
数据库的备份与恢复[ ]
- 若硬件介质出现故障(如磁盘损坏),当且仅当事先已对数据库及其事务日志作了备份,才能恢复数据库。
- 注意:绝对不要使用操作系统的拷贝数据库设备,把这样一个拷贝装入SQL Server将导致大量数据库受损。
- 备份的类型:
1)完全备份
2)增量备份——备份事务处理日志
说明: a.只有把事务日志放在单独的设备上,才能进行增量备份; b.备份事务日志会截断日志,因此备份的内容是自上次备份以来的事务处理。 c.备份之前要启动备份服务器,并最好创建转储设备。
- 备注:truncate_only与no_log选项用于删除事务处理而不作拷贝。Truncate_only截断日志;在事务处理日志完全满时用no_log,它不为数据库建立检查点。两个选项都会丢掉日志。当使用了这两个参数后,应及时备份整个数据库。no_truncate拷贝日志但不截断日志,在出现介质错误时使用该选项。
- 使用load database加载备份到现有数据库,数据库可以是用于创建转储的数据库,也可以不是。
- 由于事务日志在恢复数据库中的特殊作用,应定期备份数据库及其事务日志,而且事务日志的备份要更频繁一些。如:数据库每周备份一次,事务日志每天备份一次。
- SQL Server提供了两种不同类型的恢复:一类是系统自动完成的恢复;另一类是人工完成的恢复。
1)系统自动恢复
系统自动恢复是在系统软件出现故障的情况下通过重新启动SQL Server进行恢复。
自动恢复从master数据库开始,然后是model数据库,再是temporary数据库,最后是用户数据库。在每个数据库上,恢复机制观察事务日志。如果日志写入比数据库更近的数据,则向前恢复数据库。如果事务尚未完成,则要回退它们。
2)介质故障的恢复
一旦介质发生故障,只有通过以前备份的数据库和事务日志才能恢复数据库,为此我们需要经常备份数据库和事务日志。备份数据库和事务日志我们使用dump命令,而恢复数据库和事务日志我们使用load命令。
与创建数据库需要一个数据库设备类似,我们备份数据库和事务日志也需要一个卸出设备。增加卸出设备可以通过系统过程sp_addumpdevice来实现。卸出设备可以是磁盘、磁带或操作系统文件。
在备份数据库前的所有事务日志备份都是没有意义的。我们一般不经常备份数据库,但我们要经常备份事务日志。这是因为备份事务日志比备份数据库需要更少的时间和存储空间。
3)恢复用户数据库
要恢复已被破坏的数据库,可以按如下步骤进行:
a.用带no_truncate选项的dump命令卸出用户数据库事务日志。 b.用和被破坏的数据库的同样的结构建立一个新的数据库。 c.用load命令重新装入数据库和事务日志。
sybase数据库与T-SQL语言[ ]
- 关系数据库以关系模型为基础,它由以下三部分组成:
- 数据结构——模型所操作的对象、类型的集合
- 完整性规则——保证数据有效、正确的约束条件
- 数据操作——对模型对象所允许执行的操作方式
- 关系(Relation)是一个由行和列组成的二维表格,表中的每一行是一条记录(Record),每一列是记录的一个字段(Field)。表中的每一条记录必须是互斥的,字段的值必须具有原子性。
- SQL语言概述:SQL(结构化查询语言)是关系数据库语言的一种国际标准,它是一种非过程化的语言。通过编写SQL,我们可以实现对关系数据库的全部操作。
- 数据定义语言(DDL)——建立和管理数据库对象
- 数据操纵语言(DML)——用来查询与更新数据
- 数据控制语言(DCL)——控制数据的安全性
- T-SQL语言是Sybase对SQL92标准的一种扩展,主要在它的基础上增加了三个方面的功能:自己的数据类型/特有的SQL函数/流程控制功能。
- T-SQL中的标识符使用说明:标识符由1-30个字符或数字构成,但首字符必须为字母。临时表的表名以#开头,长度不能超过13个字符。