第1章 Sybase客户/服务器引论 1
1.1 企业客户/服务器方案 2
1.1.1 起步阶段 2
1.关系系统的新方法 2
2.八十年代的市场 3
1.1.2 SQLServer的优越性 3
1.可编程数据库 4
2.事件驱动的触发器 4
3.多线索化 4
1.1.3 完善产品系列 4
1.开放式服务器 5
2.DEFTCASE工具 5
3.开发新的服务器产品 6
2.新的以及改进后的工具 6
1.改进支持 6
1.1.4 现状 6
1.1.5 将来的开发 7
1.1.6 正在崛起的客户/服务器市场 8
1.1.7 第三方产品 9
1.1.8 小结 9
1.2 Sybase客户/服务器计算技术的好处 10
1.2.1 如何认识Sybase方案的好处 11
1.开放的体系结构 12
2.可伸缩性 12
3.互操作性 13
4.分布式数据库支持 13
5.系统管理工具 14
1.2.2 若干实例 14
实例1:SQLServer支持的全球咨询 14
实例2:Sybase在股票市场的应用 16
实例3:SQLServer用于风险管理 17
实例4:SQLServer用于保健 18
实例5:SQLServer用于货币交易 18
1.2.3 收获:对实例的分析 20
规则1和规则2:通常情形 20
规则3和规则4:不要过于强调技术问题 20
规则5和规则6:如何处理与用户的矛盾 21
规则7和规则8:第一位的工作 22
1.2.4 客户/服务器技术的好处 23
1.与企业业务的相关性 23
2.短期投资与长期收益 23
3.让用户参与 24
4.利用现有系统 24
5.在实践中学习 24
6.投资的回报 25
1.2.5 开发、购买或两者兼而有之? 26
1.2.6 易犯的错误 26
1.使用过时的开发模型 27
2.“闭门造车” 27
3.需求说明不够详细 28
4.技术传授不够充分 29
5.对复杂性估计不足 29
1.2.7 小结 29
1.3 SQLServer环境概述 30
1.3.1 SQLServer与操作系统的关系 31
1.3.2 SQLServer的安装 32
1.SQLServer软件 32
2.Sybase设备 33
4.数据库对象 34
3.数据库与日志 34
5.数据字典 35
1.3.3 SQLServerNet-Libraries 38
1.3.4 一个查询样例 39
1.3.5 一个修改样例 40
1.3.6 小结 40
1.4 Sybase与现有资源的集成 41
1.4.1 系统与SQLServer的集成 42
1.4.2 传统的系统开发模型 44
1.自顶向下方法 44
2.由底向上方法 45
3.结果 46
4.过去的教训:应该保留什么? 46
5.不应该保留什么? 47
2.联合应用开发 48
1.快速应用开发 48
1.4.3 客户/服务器开发模型 48
3.面向对象编程与设计 49
4.并肩式开发模型 50
1.4.4 开发过程 50
1.通向成功开发的8个步骤 50
2.AmalgamatedMonoliths:典型实例分析 52
1.4.5 小结 53
1.5 本章小结 55
第2章 定义开发环境 55
2.1 客户/服务器项目中的角色与它们的职责 56
2.1.1 为什么定义角色和职责 56
1.项目投资人 57
2.项目经理 57
5.最终用户 58
3.项目领导 58
4.技术人员 58
6.最终用户开发者 59
7.系统设计师 59
8.应用分析员 60
9.数据库管理员 60
10.数据管理员 61
11.界面设计者 61
12.网络设计师 61
13.文档人员 62
2.1.2 小结 63
2.2 开发应用说明 64
2.2.1 应用说明:形式服从功能 65
2.2.2 一个应用说明的模型 66
2.2.3 信息搜集技术 67
1.通过现有系统定义业务活动 68
2.采访过程 69
3.数据流图 71
4.实体关系图 72
5.面向对象的图示技术 74
2.2.4 一个应用样例 75
2.2.5 小结 79
2.3 开发数据模型 80
2.3.1 数据模型如何支持应用 80
2.3.2 通过数据模型集成多个应用 82
2.3.3 定义逻辑数据模型 82
2.3.4 对数据模型的用户预排 83
2.3.5 修改数据模型的风险和代价 84
2.3.6 物理数据模型的描述 85
2.3.7 确定创建数据库对象的权限 87
2.3.8 把数据库对象定义成物理数据模型的一部分 88
2.3.9 物理数据模型到服务器环境的映射 89
2.3.10 小结 89
2.4 查询的模型化 91
2.4.1 查询在应用中的作用 91
2.4.2 把用户的数据请求翻译成SQL查询 92
2.4.3 确定SQL查询的类型 92
1.SELECT命令 93
2.多表SELECT命令 94
3.JOIN命令 94
4.联接的策略及选项 95
5.使用视图替代联接 96
6.INSERT命令 96
2.4.4 查询样例 97
2.4.5 小结 98
2.5 定义报告需求 98
2.5.1 成批报告与用户生成的报告 99
1.调查表 99
2.表格 99
3.数据库出版 100
2.5.2 为报告检索数据 100
2.5.3 小结 100
2.6 数据完整性及恢复 101
2.6.1 威胁与危险 101
1.非法存取 101
2.系统故障 102
2.6.2 对数据完整性的威胁 102
2.表级数据完整性 103
1.列级数据完整性 103
3.库级数据完整性 104
2.6.3 事务日志 104
2.6.4 未完成的事务 106
2.6.5 应用的逻辑错误 106
2.6.6 Sybase的系统安全问题 106
1.存储过程作为安全性机制 107
2.通过备份获得安全性 107
3.磁盘镜象 108
2.6.7 小结 108
2.7 本章小结 108
第3章 SQLServer的安装和配置 109
3.1.3 Sybase用户 110
3.1.2 发布说明 110
3.1.1 开始 110
3.1 安装SQLServer 110
3.1.4 SQLServer地址 111
3.1.5 字符集和排序顺序 112
3.1.6 缺省语言 112
3.1.7 物理资源的所有权 113
3.1.8 从各种分配介质安装Sybase 113
3.1.9 错误日志和信息 115
3.1.10 文件方式与原始分区方式的对比 117
3.1.11 物理数据库的实现计划 117
3.1.12 对资源需求的估计 118
3.1.13 小结 118
3.2 与特定平台相关的问题 118
3.2.3 SunSolaris2.x 119
1.IBMRiscSystem/6000AIX 119
3.2.2 SunOS4.1.3 119
3.2.1 UNIX 119
2.HP-UX9.0版上的SQLServer 120
3.2.4 NovellNLM 127
3.2.5 OS/2SQLServer 128
3.2.6 SQLServer4.2版的手工安装 129
3.2.7 小结 132
3.3 配置SQLServer 133
3.3.1 配置规则 133
3.3.2 段 137
3.3.3 小结 139
3.4 内存与配置选项 139
3.4.1 sp-configure 139
3.5.1 表 143
3.5 创建表、视图和索引 143
3.4.2 小结 143
1.表的修改 145
2.数据类型 146
3.内建函数 149
4.串函数 149
5.子串 150
6.数据类型转换 150
3.5.2 创建视图 151
1.使用视图 151
2.通过视图修改数据 153
3.5.3 索引 153
1.簇聚索引 153
2.非簇聚的索引 155
3.5.4 小结 156
3.6.1 在SQLServer中增加登录名 157
3.6 添加用户组与权限设置 157
1.设置别名 161
2.setuser命令 161
3.6.2 小结 162
3.7 定义和使用转储设备 162
3.7.1 定义转储设备 163
3.7.2 备份数据 164
3.7.3 从转储设备上重装数据库 165
3.7.4 恢复主设备 167
3.7.5 小结 168
第4章 如何利用SQLServer的特点 169
4.1 Sybase提供的存储过程 170
4.1.1 熟悉SQLServer 170
4.1.2 操作数据库对象 178
4.1.3 小结 188
1.定义缺省 189
4.2 数据库完整性 189
4.2.1 通过规则和缺省保证数据完整性 189
2.规则 191
4.2.2 把规则和缺省纳入用户定义的数据类型 193
4.2.3 小结 194
4.3 TransActSQL 194
4.3.1 什么是TransActSQL? 195
4.3.2 T-SQL的扩充和增强 196
1.通配符 197
2.串的操作与处理 199
3.日期时间函数 200
4.聚集函数 202
5.数学函数 204
6.系统函数 205
7.改变输出的顺序 206
8.在SELECT语句中使用COMPUTEBY 208
4.3.3 小结 209
4.4 编写存储过程 209
4.4.1 已定义的存储过程 209
4.4.2 存储过程的好处 209
4.4.3 编写存储过程 210
4.4.4 存储过程的返回值与状态信息 211
1.存储过程的限制 212
2.远程过程 212
4.4.5 小结 212
4.5 触发器和参照完整性 213
4.5.1 参照完整性 213
2.触发器语法 214
3.级联式删除 214
4.触发器的表现 216
4.5.2 小结 217
4.6 为SQLServer编写事务 217
4.6.1 语句块、语句批和所定义的事务 218
1.特殊的批处理 218
2.在事务中包含批处理 219
4.6.2 事务 219
1.在事务中包含存储过程和远程过程调用 221
2.回滚和触发器 221
3.嵌套事务 221
4.事务中的错误处理 221
5.事务限制 224
4.6.3 两阶段提交 224
4.6.4 小结 226
4.7.1 SQLServer并发控制的需求 227
4.7.2 SQLServer的锁 227
4.7 SQLServer中的表锁 227
1.共享锁 228
2.更新锁 228
3.排它锁 228
4.7.3 锁的相互作用 228
1.死锁 229
2.表锁与页锁的比较 229
3.持锁命令Holdlocks 230
4.7.4 浏览方式 230
4.7.5 小结 231
4.8 SQLServer系统表 231
4.8.1 SQLServer系统表 232
1.通过存储过程访问系统表 233
2.Master数据库系统表 236
4.9.1 游标的定义 237
4.9 SQLServer中游标的使用 237
4.8.2 小结 237
1.游标的定位 238
2.游标和并发性 238
4.9.2 游标的工作方式 239
1.游标的限制 240
2.在OpenClient应用程序中纳入游标 240
4.9.3 小结 240
4.10 可能进行的优化 240
4.10.1 好的设计的重要性 241
4.10.2 索引选项 242
4.10.3 查询结构 242
4.10.4 定义和监控性能 244
4.10.5 影响性能的各个方面 244
规则5:再次推敲自己的假设 245
规则4:充分利用环境 245
规则2:让用户有些事情做 245
规则1:给予用户想要的 245
规则3:解释每件事情的好处(但不要撒谎) 245
4.10.6 技术性能 246
4.10.7 主机性能 246
4.10.8 SQLServer性能 247
4.10.9 使用SHOWPLAN 247
4.10.10 使用FORCEPLAN 250
4.10.11 经验 250
4.10.12 存储冗余数据 252
4.10.13 规范化的代价和意义 252
4.10.14 通过冗余进行逆向规范化 253
4.10.15 通过表分段进行逆向规范化 253
4.10.16 想象出来的列 253
4.10.18 计算表的大小和数据页 254
4.10.17 数据库对象与性能 254
4.10.19 硬件对性能的影响 263
4.10.20 网络性能 264
4.10.21 广域网 265
4.10.22 平衡负载 265
4.10.23 小结 265
第5章 开放式客户体系结构 267
5.1 开放式客户DB函数库(DB-Library) 268
5.1.1 什么是OpenClientDB-Library 268
5.1.2 建立联接 269
1.装配批处理命令 270
2.把命令发送到SQLServer 271
3.处理返回结果 272
5.错误处理 274
4.关闭联接 274
5.1.3 OpenClientDB-Library的程序设计功能 275
5.1.4 DB-Library程序样例 279
5.1.5 小结 281
5.2 在C/C++编程环境下使用DB-Library调用 281
5.2.1 安装OpenClientDB-Library 282
5.2.2 P C/DOS版的OpenClientDB-Library 282
5.2.3 编译测试程序 287
5.2.4 在Windows程序中使用OpenClientDB-Library 292
5.2.5 安装PC/Windows版的OpenClientDB-Library 292
5.2.6 SQLTEST3.C应用程序 294
5.2.7 样例程序的解释 311
5.2.8 Windows模板 311
5.2.9 OpenClientDB-Library的其它用途 325
5.2.1 0OpenClientDB-LibraryAPI的游标 329
5.2.11 DB-Library中的成批拷贝函数 351
5.2.12 小结 355
5.3 联接个人计算机与SQLServer 355
5.3.1 用户观点下的Sybase网络 356
5.3.2 PC客户如何与SQLServer会话 357
5.3.3 通信硬件 357
1.网卡说明 358
2.通信驱动程序 358
5.3.4 应用提供的插件板专用驱动程序 358
5.3.5 Sybase网络库函数Net-Lib 359
5.3.6 PC通信软件选项 360
1.包驱动程序 360
2.Sybase客户说明#2:Novell与Windows客户机相联 361
1.Sybase客户说明#1:Novell与DOS客户机相联 361
5.3.7 安装过程详注 361
4.命令管道 361
3.NDIS(网络数据交换说明) 361
2.ODI(开放式数据互连) 361
3.Sybase客户说明#3:与UNIX主机相联 362
4.Sybase客户说明#4:从基于Windws的PC机并发访问UNIX主机、NetWare及SQLServer 363
5.3.8 小结 363
5.4 Net-Lib联接过程中的排错 364
5.4.1 诊断网络问题 364
5.4.2 举例 366
1.问题 366
2.方法 366
5.4.3 解决问题的其它方法 367
1.症状 367
2.对策 367
5.6 本章小结 368
5.5 小结 368
第6章 前端工具与实用程序 370
6.1 Sybase提供的实用程序 371
6.1.1 ISQL(交互式结构化查询语言) 371
6.1.2 BCP成批拷贝 372
1.快速成批拷贝 373
2.慢速成批拷贝 373
3.交互式成批拷贝 373
6.1.3 defncopy 373
6.1.4 小结 374
6.2 BuildMomentum 374
6.2.1 BuildMomentum和面向对象 375
6.2.2 动态编译 376
6.2.3 系统技巧的层分 376
1.数据库浏览器(DatabaseBrowser) 377
6.2.4 小组开发设施 377
6.2.5 应用开发环境 377
2.开发特色 378
6.2.6 应用配置 378
6.2.7 小结 379
6.3 支持MicrosoftWindows开发的PowerTools 379
6.3.1 Windows客户开发 380
6.3.2 PowerBuilder和数据库的联接 380
6.3.3 图形用户界面开发环境 382
6.3.4 PowerBuilder的数据窗口(DataWindows) 382
6.3.5 PowerBuilder的结构、游标和函数 384
6.3.6 拖放和其它Windows特色 384
6.3.7 实例 385
6.3.8 PowerSoft产品系列与目标市场 386
6.3.10 小结 387
6.3.9 PowerBuilder与第三方产品 387
6.4 数据库出版 388
6.4.1 需求 389
6.4.2 无缝透明 389
6.4.3 第三方软件 389
6.4.4 MicrosoftOffice 390
6.4.5 批打印 391
6.4.6 小结 391
6.5 使用CASE工具 391
6.5.1 为什么使用CASE? 392
6.5.2 在开发周期中CASE工具适合哪些方面? 393
6.5.3 谁使用CASE工具? 393
6.5.4 什么是CASE工具? 393
1.使用CASE对一个书店应用建模 394
6.5.6 一个实例 394
6.5.5 使用CASE工具 394
2.定义列值的域 395
3.用CASE工具生成数据定义语言 395
4.设计参照完整性并为之建立文档 397
5.管理多个数据库 398
6.5.7 小结 398
第7章 新产品与新动向 400
7.1 SQLServer10.0的新内容 401
7.1.1 新特色 401
7.1.2 SQLServer体系结构的变化 402
1.新的安装实用程序 402
2.备份服务器(BackupServer) 402
6.说明型参照完整性 403
5.游标 403
4.审计服务器(AuditServer) 403
3.安全性特色 403
7.新的数据类型 404
8.事务、触发器和存储过程中允许的关键词的变化 404
9.触发器表现 405
10.视图的变化 405
11.创建模式 405
12.数据类型转换的变化 405
13.查询与数据修改的变化 405
14.设置FIPS标记 406
15.串接的事务 406
16.事务隔离级别 406
17.其它ANSI标准特色 406
18.系统管理 406
23.创建索引的性能的提高 407
22.空间监视 407
24.查询优化器的改进 407
20.DBCC选项 407
21.Kill命令 407
19.收费统计 407
25.成批拷贝的性能改进 408
26.设置选项 408
7.1.3 升级到SQLServer10.0 411
1.升级的前提条件 411
2.现有数据库对象的改变 411
7.1.4 小结 411
7.2 远程客户/服务器方案 412
7.2.2 带宽和速度的重要性 413
7.2.3 速度与容量的关系 414
7.2.4 定义远程客户/服务器 414
2.包交换网络 416
1.异步拨号线路 416
7.2.5 广域通信选项 416
3.专用包交换网络 417
7.2.6新产品和服务 417
1.帧中继 418
2.综合业务数字网络(ISDN) 418
3.交换多兆位数据业务(SMDS) 418
4.异步传输方式(ATM) 418
7.2.7 远程客户设计 418
7.2.8 小结 419
7.3 本章小结 419
第8章 词汇表 421
8.1 词汇表 421
索引 429