第1部分 入门 1
第1章 客户机/服务器 1
1.1客户机/服务器 1
目录 1
1.1.1客户机/服务器的发展过程 2
1.1.2胖客户机 3
1.1.3胖服务器 3
1.1.4“两层半”(Two-and-a-Half-tier)和存储过程 3
1.15在应用程序服务器使用三层客户机/服务器 4
1.1.6对等层到对等层处理(n层) 4
1.2小结 4
第2章 SybaseSystemXI概述 5
2.1SystemXI的由来 5
2.1.1家族经营 5
2.1.3上市和发展 6
2.1.2OpenServer和OpenClient 6
2.1.4System10的出台 7
2.1.5巨大的购进——Powersoft公司 7
2.1.6SystemXI最终出台 8
2.2SystemXI的新特性 8
2.2.1高速缓冲管理的改进 8
2.2.2数据存储管理的改进 9
2.2.3改进事务日志管理 10
2.2.4查询性能的增强 11
2.2.5锁的体系结构上的改进 11
2.2.6了解MNE(多网引擎)的SMP支持 12
2.2.7备份服务器的改进 12
2.2.8VLDB和VLM支持 13
2.3SystemXI的部件 13
2.3.3使用审计服务器 14
2.3.2使用备份服务器 14
2.3.1使用数据服务器 14
2.3.4使用安全SQL服务器 15
2.3.5使用复制服务器 15
2.3.6使用SybaseMPP 15
2.3.7使用SybaseIQ 16
2.4小结 16
第3章 安装Sybase 17
3.1安装服务器 17
3.1.1关于安装的准备 17
3.1.2在WindowsNTServer4.0上安装Sybase 18
3.1.3Sybase目录 24
3.1.4在UNIX上安装Sybase的附加信息 25
3.2安装客户连接 26
3.2.1在Windows3.x上安装客户库 26
3.2.2在Windows95上安装客户库 26
3.2.3使用SQLEDIT 27
3.3启动Sybase 29
3.3.1用ServicesManager启动Sybase 29
3.3.2用安装脚本启动Sybase 29
3.3.3用ControlPanel中的Servics启动Sybase 30
3.3.4Sybasa运行检查 31
3.4安装可选的Sybase数据库 32
3.5小结 32
第2部分 使用SystemXI 34
第4章 Transact-SQL综述 34
4.1什么是SQL 34
4.1.1集合 35
4.1.2存储数据抽象化 35
4.1.3编写SQL语句 35
4.1.4执行SQL语句 36
4.1.5SQL标识符 37
4.2关系理论 38
4.2.1定义数据库的表和列 39
4.2.2找出实体(表) 39
4.2.3确定关系 39
4.2.4显示基数 40
4.2.5在表中增加列 41
4.2.6规范化数据库 42
4.3数据定义语言(DDL) 43
4.3.1在数据库中创建对象 43
4.3.2删除对象 45
4.4数据操纵语言(DML) 45
4.4.1用Select从表中检索数据 46
4.4.2用Insert向表中增加新数据 57
4.4.3用Update修改表中数据 60
4.4.4用Delete从表中删除数据 61
4.4.5Sybase系统函数 62
4.5小结 79
第5章 数据库、设备和事务日志 81
5.1使用设备 81
5.1.1创建设备 82
5.1.2使用设备选项 87
5.1.3查找设备的有关信息 89
5.1.4创建转储设备 90
5.1.5丢弃设备 92
5.2数据库和事务日志 93
5.2.1专用的系统数据库 93
5.2.2创建数据库和事务日志 94
5.2.3查看与数据库和日志有关的信息 96
5.2.4扩充数据库和事务日志的容量 97
5.2.5丢弃数据库 98
5.3.1使用默认段 99
5.3数据库空间管理和段 99
5.3.2创建段 100
5.3.3使用段 101
5.3.4查看段的有关信息 102
5.3.5丢弃段 103
5.4Tempdb 103
5.4.1调整Tempdb的大小 104
5.4.2提高Tempdb的性能 104
5.5小结 105
第6章 表和数据类型 106
6.1创建和管理表 106
6.1.1使用SybaseSQLServerManager创建表 106
6.1.2使用Transact-SQL创建表 108
6.1.3创建临时表 110
6.2选定数据类型 110
6.2.1不同的字符串数据类型 111
6.2.2不同的数字数据类型 113
6.2.3使用整数数据类型 113
6.2.4使用浮点数据类型 114
6.2.5货币数据类型 117
6.2.6日期/时间数据类型 118
6.2.7使用SystemXI中的特定数据类型 121
6.2.8不同的Text,Image/BLOB数据类型 124
6.3自定义数据类型 125
6.3.1标识列 127
6.4表的分区 128
6.4.1表分区 128
6.4.2创建表分区 129
6.4.3获取已分割对象的有关信息 132
6.4.4表分割的限制 133
6.5小结 134
7.1.1创建规则 135
第7章 使用规则、默认值和触发器 135
7.1规则 135
7.1.2将规则应用于列 136
7.1.3获得规则的有关信息 136
7.1.4删除规则 138
7.2默认值 138
7.2.1创建默认值 139
7.2.2对列应用默认值 139
7.2.3获得有关默认值的信息 139
7.2.4删除默认值 140
7.3触发器 140
7.3.1创建触发器 141
7.3.2检查触发器的限制 142
7.3.3使用触发器 142
7.3.4使用嵌套触发器 144
7.3.6显示触发器信息 146
7.3.5处理触发器中的回滚 146
7.3.7删除触发器 149
7.4小结 150
第8章 索引和码 151
8.1定义索引 151
8.1.1索引的类型 152
8.1.2为何索引数据 154
8.1.3创建索引 155
8.1.4统计值 161
8.1.5索引的优点 162
8.1.6强制使用特定索引 163
8.1.7获得索引的信息 165
8.1.8删除索引 166
8.2定义码 167
8.2.1增加主码和外码 167
8.2.2获得码的信息 170
8.3小结 173
第9章 视图 174
9.1为何使用视图 174
9.2创建和管理视图 175
9.2.1使用SybaseSQLServerManager创建视图 175
9.2.2使用Transact-SQL创建视图 178
9.3获得视图的有关信息 179
9.3.1使用SybaseSQLServerManager检查视图 179
9.3.2使用系统存储过程检查视图 180
9.4在视图上执行DML 183
9.4.1从视图中选择数据 183
9.4.2通过视图插入数据 184
9.4.3更新视图中的数据 186
9.5.1许可权 187
9.5利用视图加强安全性 187
9.4.4从视图中删除数据 187
9.5.2用视图隐匿列 189
9.5.3用视图隐匿行 189
9.6删除视图 189
9.7重新命名视图 190
9.8小结 190
第10章 存储过程 191
10.1创建存储过程 192
10.1.1使用SybaseSQLServerManager创建一个过程 192
10.1.2使用Transact-SQL建立一个过程 193
10.1.3用相同的名字建立多个过程 195
10.2使用和理解存储过程 196
10.2.1使用参数 196
10.2.2执行过程 200
10.2.5重新编译存储过程 201
10.2.4了解一个过程的“生命力(life) 201
10.2.3重新命名过程 201
10.2.6使用嵌套的存储过程 202
10.2.7使用批命令 203
10.2.8取消过程 203
10.2.9远程过程(RPCs) 203
10.2.10链接的事务 204
10.3使用流控制语句 204
10.3.1使用If Else 204
10.3.2使用Begin End 206
10.3.3使用While 206
10.3.4使用Break 207
10.3.5使用Continue 208
10.3.6使用While,Break和Continue的例子 209
10.4定义和使用变量 210
10.4.1使用全局变量 211
10.5使用附加过程和批命令关键字 213
10.5.1使用Goto 213
10.5.2使用Return 213
10.5.3使用RaiseError 216
10.5.4使用Waitfor 217
10.6小结 218
第11章 事务和锁 219
11.1定义事务 219
11.2锁的类型:乐观锁与悲观锁 222
11.2.1Sybase如何管理锁 222
11.3隔离层 223
11.3.1事务隔离层0 224
11.3.2事务隔离层1 224
11.4使用事务 225
11.4.1用BeginTran开始事务 225
11.3.3事务隔离层3 225
11.4.2用CommitTran结束事务 226
11.4.3用RollbackTran取消事务 226
11.4.4事务的局限性 226
11.4.5使用命名的事务和校验点(SavePoint) 228
11.5无标识符的连续列 229
11.6锁 232
11.6.1检查服务器中的锁情况 232
11.6.2删除锁定的进程 234
11.6.3直接在数据上加锁 235
11.7在Sybase中创建行级锁定 236
11.8表锁提升 237
11.9死锁 238
11.10小结 238
12.1区别前端游标和后端游标 240
第12章 游标及其使用 240
12.1.1客户游标 241
12.1.2服务器游标 242
12.2使用Sybase游标 242
12.2.1游标的作用域 243
12.2.2声明游标 244
12.2.3打开游标 245
12.2.4取游标 246
12.2.7游标使用的例子 247
12.2.5关闭游标 247
12.2.6释放游标 247
12.3获得关于游标的信息 250
12.4使用嵌套的游标 250
12.5从前端应用程序处理游标 253
12.6小结 254
第13章 使用高级存储过程和触发器 255
13.1使用嵌套的过程调用 255
13.2使用临时表 257
13.4使用游标 259
13.3为在过程之间传送数据创建实表 259
13.5使用角色确保合法者执行过程 264
13.6分解有效的对象名 267
13.7小结 268
第3部分 应用编程 270
第14章 Sybase客户模式(客户库) 270
14.1程序设计接口与Sybase的比较 271
14.2DBLibrary的用法 272
14.2.1基本的DBLibrary函数 272
14.2.2声明DBLibrary函数使用的变量 274
14.2.3使用DBLibrary创建简单程序 276
14.2.4编译和执行DBLibrary程序 277
14.2.5错误处理及消息 278
14.2.7使用DBLibrary游标 280
14.2.6用DBLibrary执行Transact-SQL命令 280
14.2.8用DBLibrary执行远程存储过程 281
14.2.9附加的DBLibrary函数 282
14.2.10DBLibrary程序排错 283
14.3使用ClientLibrary 283
14.3.1基本的ClientLibrary函数 284
14.3.2声明ClientLibrary函数使用的变量 287
14.3.3使用ClientLibrary创建简单程序 287
14.3.4编译和执行ClientLibrary程序 289
14.3.5错误处理和消息 290
14.3.6用ClientLibrary执行Transact-SQL命令 290
14.3.7在ClientLibrary应用程序中使用游标 290
14.3.8执行远程存储过程 291
14.4使用SQR 291
14.4.1SQR的基础 291
14.4.2SQR报表的组成 292
14.4.3在SQR中使用变量 294
14.4.4从报表文件创建输出 295
14.4.5在SQR中发送DML和DDL命令 296
14.4.6使用SQR创建一个简单程序 297
14.4.7执行SQR文件 298
14.5小结 300
第15章 Client/Server应用编程工具的使用 302
15.1用ODBC工作 303
15.1.1ODBC的安装及配置 303
15.1.2SybaseODBC驱动程序性能选项的应用 306
15.1.3对ODBC到Sybase的连接进行检测 308
15.2Delphi2.0Client/Server的使用 309
15.2.1建立连接 310
15.2.2Delphi2数据库模型 313
15.2.3应用程序范例DPHIDEMO 313
15.2.4准备并执行SQL语句 314
15.2.5StoredProcedures和CommandBatches的使用 315
15.2.6更多的信息和实例 315
15.3CenturaTeamDeveloper的使用 315
15.3.1建立连接 316
15.3.2准备并执行SQL语句 320
15.3.3使用存储过程和批处理命令 321
15.3.4更多的信息和实例 322
15.4使用PowerBuilder5 322
15.4.1创建PowerBuilder数据库配置文件(Profile) 323
15.4.2检验与SybaseSystemXI的连接配置文件 324
15.4.3操作DataWindows 325
15.4.4使用DataWindow 327
15.4.5生成真正的可执行程序 330
15.5使用MicrosoftVisualBasic4 330
15.5.3准备并执行SQL语句 331
15.5.1VisualBasic4数据库模型 331
15.5.2与Sybase连接 331
15.5.4关于实例应用程序VB4DEMO 332
15.6小结 332
第16章 划分应用程序 334
16.1实现应用程序的划分 334
16.2两级应用程序 337
16.2.1FatClient应用程序 337
16.2.2FatServer应用程序 338
16.3“两级半”(Two-and-a-HalfTier)应用程序 339
16.4三级和n级应用程序 340
16.5Sybase开放式服务 341
16.5.1编写简单的OpenServer 341
16.5.2OpenServer事件 342
16.6Novell的TUXEDO 343
16.7使用Tempest 344
16.7.1启动TempestServer 345
16.7.2配置与Tempest服务器通信的客户机 345
16.7.3与TempestServer连接 346
16.7.4用TEMPEST_Send发送信息 346
16.7.5创建并打开邮箱 347
16.7.6从TempestServer接收信息 347
16.7.7Tempest实例应用程序 348
16.8小结 351
第17章 使用第三方产品 352
17.1使用查询工具 352
17.1.1使用SQL-Programmer 353
17.1.2使用RapidSQL 356
17.1.3使用AuroraUtilities的ScriptManager 360
17.2使用模型制作工具 360
17.2.1使用S-Designor 361
17.2.2使用ErWin/ERX 365
17.3使用数据库管理工具 367
17.3.1使用DesktopDBA 368
17.3.2使用DBArtisan 371
17.3.3使用SQL-Port 374
17.3.4使用ImageAnalyzer 377
17.4赶上最新技术 378
17.5订购MicrosoftDeveloperNetwork(MSDN) 378
17.6小结 379
第18章 Internet简介 380
18.1互联网的起源 380
18.2了解基本的互联网技术 381
18.2.1了解URL 381
18.2.2使用Telnet 382
18.2.3使用FTP 382
18.2.5使用电子邮件 383
18.2.4使用互联网轮流交谈(IRC) 383
18.2.6使用Web(HTML和HTTP) 384
18.3了解Java语言 385
18.4小结 385
第4部分 高级性能 387
第19章 数据可用性管理 387
19.1执行备份 387
19.1.1制定备份策略 388
19.1.2怎样进行备份 390
19.1.3执行本地备份 391
19.1.4执行远程备份 395
19.2转储事务日志 396
19.2.1执行正常转储 396
19.2.2使用阈值自动转储日志 397
19.3.2用Transact-SQL命令Load来恢复数据库 401
19.3.1用SybaseSQLServerManager来恢复数据库 401
19.3实现恢复 401
19.3.3产生在线数据库 403
19.4处理跨越多盘磁带的备份和恢复 403
19.5了解检验点 404
19.5.1恢复间隔 405
19.5.2截断检验点上的日志 406
19.6用BCP高速输出数据 407
19.6.1BCP的语法 407
19.6.2用BCP来执行导出 410
19.6.3用BCP来执行导入 410
19.7保持服务器运行的某些技巧 411
19.8小结 412
第20章 DBCC的用途、秘密及奥妙 413
20.1通过SybaseSQLServerManager使用DBCC 414
20.1.1对数据库执行DBCC 414
20.1.2对表执行DBCC 418
20.1.3对索引执行DBCC 420
20.2通过Transact-SQL使用DBCC 422
20.2.1执行数据库检查 422
20.2.2解决数据库问题 422
20.3Sybase的技术支持角色 423
20.4用DBCC实现跟踪 424
20.5DBCC的非正式选项 426
20.5.1使用DBCCHelp 427
20.5.2使用DBCCMemusage 427
20.5.3使用DBCCNetMemusage 429
20.5.4使用DBCCNetMemShow 430
20.5.5使用DBCCPktMemShow 430
20.5.6使用DBCCLock 431
20.5.7使用DBCCDBInfo 432
20.5.8使用DBCCResource 433
20.5.9使用DBCCDBTable 434
20.5.10使用DBCCBuffer 435
20.5.11使用DBCCInd 438
20.5.12使用DBCCLog,DBCCPage和DBCCTab 440
20.5.13使用DBCCDes 440
20.5.14使用DBCCPss 441
20.5.15附加的非正式DBCC命令 442
20.6小结 443
第21章 管理和监视安全性 445
21.1安全规则 445
21.1.1选择性访问控制 446
21.1.2验证 446
21.1.3角色分离 447
21.1.4审计 447
21.2管理Logins和Users 447
21.2.1在WindowsNT上配置Sybase以支持IntegratedSecurity 448
21.2.2Logins和Users 451
21.2.3用户组(UserGroups) 455
21.3使用用户权力 457
21.3.1使用对象权限 457
21.4视图和存储过程用作安全措施 459
21.5使用AuditServer 461
21.5.1配置Sybase以使用AuditServer 462
21.5.2启动审计跟踪 463
21.5.3使用审计存储过程 463
21.5.4从sysaudits中移走数据 466
21.5.5Sysaudits填满后的处理方法 466
21.5.6AuditServer的输出 466
21.5.7取消AuditServer 468
21.6强化SystemXI之外的安全性 468
21.6.1使用物理安全级 468
21.6.3远程网或广域网的安全访问 469
21.6.2局域网(LAN)的安全访问 469
21.6.4使用应用程序的安全性 470
21.7Sybase的SecureServer产品 470
21.8小结 471
第22章 管理和监视性能 472
22.1测定数据库的规模 472
22.1.1数据类型的规模 472
22.1.2表所需空间的计算 473
22.1.3FillFactor的作用 476
22.1.4max_rows_per_page的作用 476
22.2确定过程高速缓存的容量 476
22.3使用SybaseSQLMonitor 478
22.3.1SQLMonitor的安装与配置 478
22.3.2使用SQLMonitor 480
22.3.3分析SQLMonitor的信息 483
22.4.1使用sp_monitor 489
22.4显示性能信息的系统存储过程 489
22.4.2使用sp_sysmon 491
22.5小结 499
第23章 使用Sybasa的配置选项 500
23.1使用ConfigureSybaseServer(配置Sybase服务器)工具 500
23.1.1配置SybaseSystemXI服务器 501
23.1.2配置备份服务器(BackupServer) 505
23.1.3配置监视服务器(MonitorServer) 506
23.2配置和管理服务器 506
23.2.1显示和设置服务器选项 507
23.2.2服务器选项说明 510
23.2.3sysconfigures和syscurconfigs:系统目录表 526
23.3配置和管理数据库 528
23.3.1显示和设置数据库选项 528
23.3.2数据库选项说明 530
23.4.2查询选项说明 531
23.4配置和管理查询 531
23.4.1显示和设置查询选项 531
23.5小结 534
第24章 管理数据的复制 535
24.1安装复制服务器(ReplicationServer) 536
24.1.1复制计划 536
24.1.2安装复制服务器软件 536
24.2建立和配置主要的公布服务器 538
24.3确认复制服务器已启动 548
24.4向复制系统增加一个数据库 549
24.5使用复制服务器的命令 552
24.5.1在复制服务器中建立路由 553
24.5.2建立一个复制登录主SQLServer 554
24.5.3建立复制服务器用户 554
24.5.4建立复制定义 555
24.5.6对维护登录的授权 556
24.5.5启动一个特定表的复制 556
24.5.7订阅复制数据 557
24.5.8使用复制服务器管理命令 557
24.6复制服务器的代替方法 558
24.6.1支持系统容错的基于操作系统的服务器群 558
24.6.2使用备份移动数据 559
24.6.3编写基于自己应用程序的复制 560
24.7小结 561
第5部分 附录 562
附录A 命名约定的建议 562
附录B Sybase的小兄弟:SQLAnywhere 567
附录C 推荐的读物 573
附录D 寻求更多的帮助 575
附录E 廉价磁盘的冗余阵列(RAID) 584