SYBASE数据库系统.docx
《SYBASE数据库系统.docx》由会员分享,可在线阅读,更多相关《SYBASE数据库系统.docx(81页珍藏版)》请在冰点文库上搜索。
SYBASE数据库系统
SYBASE数据库系统
培训材料
日达计算机系统(北京)有限公司
一九九八年九月
目录
第一部分SYBASE数据库系统基础知识3
第一章Sybase客户/服务器体系结构3
1.1Sybase客户/服务器数据库环境3
1.2Sybase的OpenClient和OpenServer4
1.3Sybase客户/服务器产品系列6
1.4关于SybaseAdaptiveServer11
第二章SQLServer数据库服务器及isql客户软件的基本功能简介16
2.1SQLServer的功能和特点16
2.2SQLServer支持多数据库结构19
2.3限定数据库对象和指定当前数据库23
2.4用isql客户软件访问SQLServer26
第二部分SYBASEDB-Library30
第一章DB-Library编译及运行环境30
1.1环境变量30
1.2所需头文件30
1.3编译文件脚本31
第二章一个完整的DB_Library程序33
2.1连接到SQLServer33
2.2数据操作35
2.3检索数据39
第三部分SYBASE数据库系统管理指南42
第一章SQLServer系统安装简介42
1.1SQLServer安装步骤简介42
1.2Sybase软件结构(UNIX)46
1.3SQLServer出错日志(errorlog)47
1.4SQLServer的启动和关闭48
第二章资源管理50
2.1资源50
2.2数据库设备53
2.3缺省设备60
2.4删除设备61
2.5磁盘镜像62
第三章创建数据库70
3.1创建数据库70
3.2扩展数据库和日志的空间76
3.3删去数据库81
第四章如何调整SQLServer基本配置参数83
4.1调整SQLServer配置参数的目的83
4.2SQLServer配置参数84
4.3sp_configure命令86
4.4使用sp_displaylevel设置显示级别87
4.5与System10.x的主要区别88
4.6小结89
4.7SQLServer内存配置91
4.8如何设置及户连接数98
4.9其他与内存相关参数的配置102
第五章数据库的备份与恢复103
5.1数据库备份与恢复103
5.2备份服务器104
5.3转储数据库106
5.4装载数据库108
5.5事务的转储与装载112
5.6建立可行的备份与恢复方案120
5.7master数据库的重建124
5.8小结126
第一部分SYBASE数据库系统基础知识
第一章Sybase客户/服务器体系结构
本章要点
*Sybase客户/服务器数据库环境
*Sybase的OpenClient和OpenServer
*Sybase客户/服务器产品系列
1.1Sybase客户/服务器数据库环境
isql
数据库客户数据库服务器
客户
SQLServer
请求
dwb
服务器
客户
响应
网络
其他应用
客户
用户界面数据存取
图1-1Sybase客户/服务器体系结构
1.1.1基本特点
*SQLServer数据库服务器执行数据库管理系统的全部功能。
对用户而言,数据的物理位置及网络结构都是透明的。
*“数据库客户”是指任何可与SQLServer进行交互的客户软件。
1.1.2主要优点
*客户/服务器体系结构简化了应用维护
*保证了数据的完整性和集中性
1.2Sybase的OpenClient和OpenServer
任何应用或数据源
OpenServer
OpenClient
任何客户工具或应用
服务器API
客户API
图1-2Sybase的OptenClient和OpenServer
1.2.1OpenClient
*OpenClient是一组库函数,它的作用是为实现客户与SQLServer通信提供应用编程接口(API)。
所有的客户应用都必须使用OpenClient才能与SQLServer通信。
*除了API外,OpenClient还包括针对运行网络所需的网络驱动程序。
1.2.2OpenServer
*Sybase的OpenServer是市场上唯一的在服务器一侧提供了API的软件产品。
*OpenServer使得你能够为任何应用或数据源开发一个定制的服务器。
数据源可以是主机文件、实时反馈信号、多媒体信息、E-mail等。
*在一个异构的计算环境中,任何客户都可方便地通过OpenServer访问其他DBMS或数据源。
1.3Sybase客户/服务器产品系列
1.3.1两层配置模式的客户/服务器体系结构
图1-3Sybase客户/服务器-两层体系结构
在两层配置模式中,客户应用直接对服务器进行连接。
进而还可通过RPC(远过程调用)或OpenServer由被直接连接的SQLServer再去访问其他服务器的数据。
*第一层为客户应用程序,主要是指实现应用逻辑和数据表现的开发工具软件。
*第二层为服务器应用程序,它提供直接服务管理和处理众多的连接操作。
这些应用包括数据库服务器SQLServer、利用OpenServer构建的打印和电子邮件等服务。
1.3.2能满足企业级分布计算要求的三层配置模式
图1-4Sybase客户/服务器-基于组件方式的三层体系结构
*三层配置模式的主要特点是增加了基于组件(component)方式的中间件层软件,由于每个组件都可在不影响其他部分的条件下,方便地用另一个具有同样功能的组件取而代之,因此这种结构具有极大的灵活性和自由度。
Sybase最著名的OpenServer、复制服务器、OmniCONNECT等产品都处于这一层。
*中间件层产品能跨第三层(服务器层)所有的组件来制约业务规则和参照完整性,以及支持全局性分布式事务管理。
1.3.3Sybase产品系列
Sybase针对企业范围异构分布式应用中的三个主要范畴:
OLTP、数据仓库和海量分布(massdeployment)分别在数据库、中间件及工具这三个层次上提供了最佳产品,如图1-4所示。
这是个十分完整且具有高可适应性的解决方案。
数据仓库
DSS
海量分布
OLTP
混合负载
PowerBuilderPowerBuilderPowerBuilder
S-DesignorInfoMakerDesktop
Power++Power++Power++
SybaseIQ
ReplicationServer
OpenClientOmniCONNECTdbQ
OpenServerInfoPump
SybaseIQ
企业级互连产品
SybaseSystem11
工具
中间件
数据库
SQLServer
SybaseSQLServerSybaseMPPSQLAnywhere
SybaseIQ
Powersoft产品系列
图1-4Sybase产品系列
这种体系结构的高适应性体现在企业可依据其待定的和变化中的分布式应用的需要来定制各个层次中的组件。
Sybase的这些产品能优化地集成在一起协同运行,但它们彼此又是相互独立的,都能容易地与第三方产品实现集成。
因而用户可灵活地构建一个完整的异构分布式系统。
下面简介各层的主要产品。
数据库层
SybaseSQLServer11高性能关系数据库管理系统
SybaseMPP(选件)是使SQLServer充分发挥大规模并行处理硬件优势的并行处理软件产品
SybaseIQ(选件)该服务器采用独有的BitWise索引技术为数据仓库应用中即席查询提供极快的查询速度
SQLAnywhere基于PC的全功能SQLDBMS。
它还包含一个名为SQLRemote的异步复制组件
SQLServerManager直观可视化的数据库系统管理软件
SQLServerMonitor以图形方式实时监视系统性能
中间件层
ReplicationServer11采用基于事务的复制技术,可在地理分布的环境下实现多厂商数据库间的数据复制
OpenClient它为要访问SQLServer的客户应用和工具提供一个通用的接口
OpenServer是个高可配置的服务器工具箱。
开发人员用它把任何数据源或服务器应用构造成一个多线索的服务
OmniCONNECT它能使用户对整个企业范围内的任何异构数据源程序(比如DB2或Oracle)进行完全透明的存取
InforPump用来在异构数据库间实现数据搬移的允许Sybase再销售的第三方产品
DbQ数据库消息排队服务系统。
帮助因地理位置、业务功能或技术原因而被分开的独立的商业应用软件之间实现可靠的消息服务
工具层
PowerBuilder它是个面向对象的开发工具,几乎已成为客户/服务器前端工具事实上的标准。
新版本增加了对Internet的支持
PowerDesignor是个对数据库和应用进行设计、创建、分析和维护的万能工具集
(原名S-Designor)
Power++是个能支持客户/服务器和Internet的快速应用开发的C++软件
(原名Optima++)
InfoMaker用于C/S和数据仓库应用的综合报表和数据分析工具
PowerSite能创建动态数据库内容的Web应用的全特性开发工具
1.4关于SybaseAdaptiveServer
作为Sybase最新推出的适应性组件体系结构ACA(AdaptiveComponentArchitecture)的重要组成部分,Sybase数据库服务器将全部改名为AdaptiveServer。
其中:
SQLServer自SQLServer11.5起,改名为AdaptiveServerEnterprise;SQLAnywhere改名为AdaptiveServerAnywhere;SybaseIQ改名为AdaptiveServerIQ。
为便于理解Sybase为何采用AdaptiveServer的策略,首先让我们回顾一下数据库服务器所担负的工作。
数据服务器是一个执行广泛任务的复杂的软件,这些任务包括以下类型:
*会话管理:
处理用户、连接和事务。
*语言服务:
解释来自客户端的请求,并将它们转换成一种适合于传递到数据存储的形式。
*数据访问和存储(数据存储):
执行请求,包括访问数据和根据需要修改数据。
Sybase现有的服务器系列包括:
SQLServer,公司的旗舰产品,高性能企业级服务器;SQLAnywhere,用于移动应用和工作组的海量分布数据库;SybaseIQ,高性能决策支持和交互式数据集市产品。
AdaptiveServer将现有的Sybase数据库产品集成在一起。
传统的关系数据库系统只有单一的数据存储。
因而,无需将语言服务和会话管理以及数据存储各部分分离开。
数据服务器通常被看成处理大量任务的一个整体软件。
1.4.1AdaptiveServer组件
AdaptiveServer为每一种服务器任务提供各自的组件。
按这种方式,用于数据访问的优化的组件可以和公共语言组件及用于访问特殊数据类型的其他组件共存。
AdaptiveServer提供:
*公共语言组件:
一个单一编程模型,使用T-SQL作为查询语言,使用Java语言为其所有数据存储提供应用逻辑。
*组件集成层(ComponentIntegrationLayer):
提供对特殊数据类型及存储在其他厂商的数据库中的关系数据的访问和分布式的数据访问。
组件集成层和Sybase优化的关系存储在一起,使AdaptiveServer能够支持分布式的查询和事务。
组件集成层也提供分布式的查询,以确保跨越服务器上的所有存储的事务的完整性。
*优化关系数据的存储:
关系数据单一的存储模型已不足于满足当今IT组织的多种多样的需要。
Sybase将支持和开发三种不同的数据存储:
-SQLServer尽可能地完善,用于OLTP,混合工作负载和大型企业数据库。
-SybaseIQ尽可能地完善,用于决策支持和数据仓库应用。
-SQLAnywhere尽可能地完善,用于简化使用和管理以及移动计算。
*特殊数据类型存储:
特殊数据类型包括地理空间数据、时间序列数据、多媒体、图像内容和文本,均在各自的数据存储中。
*单一操作模型(管理服务):
所有的存储将共享管理和监控服务,因此,能够进行系统范围的管理。
单一操作模型是围绕SybaseCentral的用户接口而建立的。
1.4.2SQLServer兼容性
AdaptiveServer组件可以和一个现有的SQLServer一起存在。
任何SQLServer所接收到的请求,经过其语法分析和语言服务识别,由SQLServer自己去执行,不会受到来自AdaptiveServer组件的干扰。
这样,原有的SQLServer用户可以确信他们当前的应用将不会受AdaptiveServer的影响。
任何SQLServer不能处理的请求都被递交给AdaptiveServer组件,它能够访问任何的数据存储,包括SQLServer。
这样,现有的客户就能够使用可能由AdaptiveServer实现的新特性。
第二章SQLServer数据库服务器及isql客户软件的基本功能简介
本章要点
*SQLServer的功能和技术特点
*SQLServer是个多数据库结构的RDBMS
*如何限定数据库对象和指定当前数据库
*利用isql客户软件访问SQLServer
2.1SQLServer的功能和特点
Sybase的SQLServer是第一个真正的基于客户/服务器体系结构的RDBMS产品。
它对客户/服务器计算技术的发展起到了积极的推动作用。
SQLServer服务器软件主要由两大部分组成,即SQLServer内核(kernel)及数据库管理系统(DBMS)。
DBMS部分完成数据存取、资源管理、安全控制等各项操作。
SQLServer内核部分处理客户与SQLServer的连接及磁盘和网络I/O等,它负责为DBMS提供必要的运行环境。
为提高系统性能和可靠性,SQLServer主要采用了如下的先进技术:
*多线程体系结构。
每个用户连接只增加一个线程,仅需要量50KB左右内存,与单线程结构相比,在同等硬件资源下能支持更多的并发用户。
*支持存储过程。
它能提高应用开发效率和减少软件维护的工作量。
*支持触发器。
实现由服务器统一制约数据完整性和业务规则。
*支持逻辑内存管理。
命名cache能最优化地使用内存资源,因而增大吞吐量。
*表分割技术能实现大块数据的并行装载和插入。
*内置的BackupServer服务器支持高速的联机系统备份,提高了系统的可用性。
图2-1SybaseSQLServer11
2.2SQLServer支持多数据库结构
图2-2SQLServer是个多数据库结构的RDBMS
SQLServerRDBMS是个多数据库结构的数据库管理系统。
这些数据库被分为两种类型:
系统数据库和用户数据库。
系统数据库是在系统安装时自动创建的;用户数据库是由系统管理员或被授权用户用建库命令(CREATEDATABASE)来创建的。
该用户被称之为此数据库的属主(dbo);各系统库的dbo则是系统安装时自动建立的名为sa的超级用户。
2.2.1系统数据库简介
*master数据库
master数据库全面控制和管理用户数据库及SQLServer上的一切操作。
由于其中的信息是至关重要的,因而禁止一般用户直接访问它。
*model数据库
它为新建的用户数据库提供一个原型。
Model数据库中含有为每个用户数据库所必须的系统表。
每当利用建库命令建新库时,SQLServer都自动拷贝一份model数据库,并能依据给定的参数来扩展该用户库的尺寸。
为了对一组新建数据库赋予公共的新特征,可由系统管理员先对model库进行修改。
*sybsystemprocs数据库
Sybase的系统存储过程被储存在sybsystemprocs数据库中。
*tempdb数据库
它为临时表和其它临时工作空间提供一个存贮区域。
Tempdb的空间为该服务器上的全体数据库用户所共享。
以下几个系统库是作为选项来安装的:
*审计数据库sybsecurity
它包含SQLServer的审计系统。
当激活SQLServer审计功能后,各个事件首先记录在一个审计队列中,然后保存在sybsecurity数据库中。
*样本数据库pubs2
pubs2库是作为学习工具来提供的。
SQLServer文档中的大多数实例都是以pubs2库为背景的。
推荐每个用户在作练习时应另建一份pubs2库的拷贝。
*句法数据库sybsyntax
它为用户提供联机句法帮助。
比如打入:
sp_syntax“update”
则可显示T-SQL命令update的句法。
2.2.2系统表–数据字典
系统表是指在master数据库中由SQLServer直接提供的表的全体。
它们的名称都有前缀sys_。
这些表中记载着控制整个SQLServer及各个数据库的运行信息。
在各个用户数据库中只包含着这些系统表的一个子集。
下表列出一些在master库及各用户库中都存在的系统表。
系统表名表中的内容
sysalternatesSQLServer用户在当前数据库中的标识(别名)
syscolumns表或视图的每一列;一个存储过程的每一参数
syscomments视图、规则、缺省值、触发器和存储过程的定义
sysdepends过程、视图或触发器所依赖的每一过程、视图或表
sysindexes聚集或非聚集索引
syskeys主码、外码或共用码
syslogs事务日志
sysobjects表、视图、存储过程、日志、规则、缺省值、触发器和临时表
sysprocedures视图、规则、缺省值、触发器和过程
sysprotects记录用户的权限信息
syssegments每一片段(命名的磁盘分片汇集)
systypes系统提供的和用户提供的数据类型
sysusers数据库的合法用户或用户组
2.2.3系统过程
在SQLServer安装时自动建立了一些以sp_为前缀的存贮过程,目的在于方便系统管理和为各用户共享。
这些系统过程都被储存在sybsystemprocs数据库中。
系统过程通常是用来显示或修改系统表。
现列出几个常用的系统过程:
系统过程功能
sp_who报告SQLServer当前用户
sp_help报告有关(系统表sysobjects中的)各数据库对象的信息
sp_helptext报告视图、规则、存储过程、触发器的正文
sp_helpdb报告有关数据库的信息
sp_helpconstaint报告有关表的完整性限制
2.3限定数据库对象和指定当前数据库
2.3.1数据库属主(dbo)和数据库对象的限定
多库结构的DBMS允许建立多个数据库,一个数据库用户执行createdatabase命令建立数据库后,就成为该数据库的属主(dbo)。
SQLServer数据库支持的主要的数据库对象为表、索引、视图、规则、缺省、存储过程、触发器、数据类型等。
一个数据库用户执行相应的create俱建立某个数据库对象后,就成为该数据库对象的属主。
在同一库中同一个属主的同类数据库对象的名字必须唯一。
但在不同库中或不同的属主的数据库对象可以取相同的名字。
为了在SQLServer中唯一标识一个对象名,应在它的前面冠以其所在数据库名及其属主名。
这种规定就叫做数据库对象的限定(Oualification),其格式为:
[[<数据库名>.]<属主名>.]<对象名>
缺省数据库名为当前数据库,缺省属主名为当前用户。
比如:
限定格式数据库名属主名对象名
pubs2.stud1.meppubs2stud1emp
pubs2.techer.meppubs2techeremp
sales.empsales当前用户emp
emp当前数据库当前用户emp
2.3.2当前数据库
每个数据库用户在被建立时都指定了缺省数据库的名字(通常是master)。
当该用户与SQLServer实现了用户连结(UserConnection),即客户应用与该服务器建立了连接通道之后,该用户马上可访问其缺省数据库。
此时,该库成为“当前数据库”。
用户可用T-SQL命令USE来改变当前数据库。
语法:
USE<数据库名>
比如:
usepubs2
go--pubs2成为当前数据库
select*fromstores
go
1、用selectdb_name()确认当前数据库名称1>selectdb_name()返回结果:
2>gouserdb
2、使用USE命令改变当前数据库名称1>usemastermaster
2>go成为当前数据库
3、确认当前数据库名称已经改变1>selectdb_name()返回结果:
2>gomaster
图2-3如何指定当前数据库
2.4用isql客户软件访问SQLServer
2.4.1isql的使用方法
isql客户应用是个基于字符的最基本的访问SQLServer数据库服务器的实用程序。
它能够实现与服务器的连接,向服务器发送T-SQL命令,并在屏幕上显示返回的结果和信息。
还可利用操作系统的正文编辑器(如vi)来编辑命令行。
另外,isql还允许接受输入文件,然后以批方式执行其中的T-SQL命令。
语法:
isql[-e][-W列宽][-U用户名][-P