《SQL Server 2000设计与T-SQL编程》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)Michael Reilly(美)Michelle Poolet著;卢庆龄等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2002
  • ISBN:7302050090
  • 页数:385 页
图书介绍:这是一本关于规划、设计和实现SQL Server 2000数据库的专业指导书。全书以一个小型商业公司的数据库为样例,详细讲述了数据库的设计、实现、信息检索、程序设计以及数据模型等方面的技术。不管是创建新的数据库还是扩展你已有的桌面数据库,本书都将教会你如何建立一个稳固的、可信赖的数据库系统,以满足当前和将来随需求而增长的需要。本书为使用Microsoft SQL Server 2000进行数据库项目开发人员提供实际指导和技术支持。数据库设计人员、数据库管理员以及欲通过Microsoft认证考试的读者都能从本书中获取切实有用的内容。

内容简介 1

第1部分 入门 1

第1章 数据库设计 1

1.1 关系数据库发展历程简介 1

1.1.1 SQL Server:背景和起源 2

1.1.2 SQL Server适合哪些领域 3

1.1.3 SQL Server的不同版本 4

1.1.4 支持的平台 5

1.2 数据建模 5

1.2.1 数据建模的步骤 6

1.2.2 需求收集 9

1.2.3 用户的观点 9

1.2.4 标识实体 10

1.3 Strawberry Smoooches公司 10

第2章 实体关系建模 12

2.1 实体建模介绍 12

2.2.1 二元关系 19

2.2 ERD示例 19

2.2.2 三元关系 21

2.2.3 递归关系 22

2.2.4 弱实体 23

2.2.5 类-子类关系 24

2.3 Strawberry Smoooches:实体模型 24

第3章 设计原则 26

3.1 逻辑建模 26

3.1.1 数据的规范化 28

3.1.2 规范和业务标准 29

3.1.3 规范化的准则 30

3.1.4 规范化、性能和安全 37

3.2 四个完整性 38

3.2.1 实体完整性 39

3.2.2 引用完整性 39

3.2.3 域完整性 41

3.2.4 业务完整性 43

3.3 数据库设计的道德规范 43

3.3.2 错误信息 44

3.3.3 安全和秘密 44

3.3.1 信息收集和隐私问题 44

3.3.4 为何社会安全号码不是作为主键的一个好选择 45

3.3.5 在道德问题上程序员的责任 46

第4章 规划物理实现 48

4.1 物理设计 48

4.1.1 逆规范化设计 48

4.1.2 增添附加属性 55

4.1.3 赋予厂商特定的数据类型 55

4.1.4 建立代理主键 56

4.1.6 评价增强的引用完整性 57

4.1.5 确立候选关键字 57

4.1.7 确定候选索引 58

4.2 映射ERD到表结构 59

第2部分 实现 63

第5章 实现设计 63

5.1 创建数据库 63

5.1.1 SQL Server用于创建数据库的工具 64

5.1.2 规划数据库的规模 65

5.1.3 调整模型数据库 65

5.1.4 数据库文件组 66

5.1.5 创建数据库 69

5.2 管理数据库增长 70

5.3 缩减数据库 71

5.3.1 删除数据库 72

5.3.2 连接和断开数据库 72

5.4 数据库配置选项 73

第6章 建立表 78

6.1 SQL Server 2000中的数据类型 78

6.1.1 系统提供的数据类型 78

6.1.2 用户自定义数据类型 84

6.1.3 关于DATETIME类型的问题 86

6.2 创建表 86

6.2.1 理解数据存储及分配 87

6.2.2 使用T-SQL创建表 90

6.2.3 标识属性 90

6.2.4 全局惟一标识符 91

6.3 表的维护 91

6.3.1 增加或删除列 92

6.3.3 从数据库中删除表 93

6.3.4 临时表 93

6.3.2 删除表中的数据 93

6.4 对象的隶属关系 95

第3部分 信息检索 96

第7章 数据检索 96

7.1 Query Analyzer窗口简介 97

7.1.1 Object Browser窗口 101

7.1.2 Object Search窗口 101

7.2 简单SELECT语句 103

7.2.1 注释代码 104

7.2.2 格式化输出 105

7.3 数据处理 113

7.3.1 算术计算 114

7.3.2 数学函数 115

7.3.3 日期时间计算 116

7.4 查询中的搜索准则 118

7.4.1 限定操作 118

7.4.2 布尔运算AND、OR、NOT 118

7.4.4 值的范围 120

7.4.3 约束运算符IN 120

7.4.5 搜索字符数据 122

第8章 连接:合并多个表中的数据 124

8.1 内部连接 124

8.1.1 使用表别名 125

8.1.2 生成执行规划 126

8.2 多表连接 128

8.3 同等连接和自然连接 130

8.4.1 左外部连接 131

8.4 外部连接 131

8.4.2 右外部连接 132

8.4.3 完全外部连接 133

8.4.4 连接中的NULL 134

8.5 交叉连接 138

8.6 自连接 139

8.7 联合运算符 140

8.8 半连接 141

8.9 合并连接 142

8.10 哈希连接 142

9.1.1 COUNT()函数 144

9.1 合计函数 144

第9章 数据汇总和报表 144

9.1.2 SUM()和AVG()函数 145

9.1.3 MIN()和MAX()函数 146

9.2 GROUP BY汇总函数 147

9.2.1 GROUP BY ALL 151

9.2.2 GROUP BY对多列进行分组 152

9.2.3 GROUP BY...HAVING 156

9.3 COMPUTE BY合计函数 157

9.4 ROLLUP和CUBE函数 160

9.5 TOP n数值查询 164

第10章 数据修改 167

10.1 插入命令 167

10.1.1 按位置插入 167

10.1.2 按列名插入 168

10.1.3 从其他表中插入数据 169

10.1.4 从存储过程插入数据 170

10.1.5 用SELECT INTO语句创建表 172

10.2 删除 173

10.3 截断表 174

10.4 更新 175

10.4.1 自动编号列的值 178

10.4.2 用GUID插入记录 184

10.5 层叠更新和删除 186

第11章 子查询 188

11.1 简单子查询 188

11.2 相关子查询 195

11.3 EXISTS条件 197

11.4 基于查询结果来修改数据 205

11.4.1 插入 205

11.4.3 更新 206

11.4.2 删除 206

第12章 视图 208

12.1 什么是视图 208

12.2 为何使用视图 209

12.3 如何定义视图 210

12.4 更改和删除视图 213

12.5 通过视图修改数据 215

12.5.1 不可更新视图 217

12.5.2 WITH CHECK选项 217

12.6 SQL 2000新特性:索引视图 218

12.7 分割视图 219

第4部分 通过编程提高性能 222

第13章 事务介绍 222

13.1 什么是事务 222

13.1.1 启动、提交和回滚 223

13.1.2 锁简介 226

13.2 事务日志 227

13.2.1 检查点 228

13.2.3 保存点 229

13.2.2 lazy writer和worker线程 229

13.3 嵌套事务 231

13.4 隐式事务 232

13.5 分布式事务 235

13.5.1 长时间运行的事务 236

13.5.2 编写事务的几点建议 237

第14章 锁 239

14.1 用锁解决潜在问题 239

14.1.1 丢失更新(覆盖更新) 239

14.1.3 不一致分析(不可重复读和幻觉记录) 240

14.1.2 非提交相关性(脏读) 240

14.2 SQL Server锁 241

14.2.1 共享锁 243

14.2.2 排他锁 243

14.2.3 更新锁 243

14.2.4 意图锁 243

14.2.5 系统锁 244

14.2.6 死锁 244

14.3 如何检测锁问题 245

14.4 设置锁选项 246

14.4.1 NOLOCK选项 248

14.4.2 事务隔离级别及如何实现 249

第15章 数据完整性 256

15.1 缺省和规则 256

15.1.1 创建缺省和规则 257

15.1.2 绑定缺省和规则 258

15.1.3 取消规则和缺省的绑定 261

15.1.4 为什么不使用缺省和规则 261

15.2 约束 262

15.2.1 列级约束和表级约束 263

15.2.2 主键 264

15.2.3 惟一约束 266

15.2.4 外键约束 267

15.2.5 缺省约束 270

15.2.6 检查约束 272

15.2.7 检查已有数据 274

15.2.9 NOT FOR REPLICATION选项 275

15.3 约束、缺省和规则 275

15.2.8 启用和禁止约束 275

15.4 约束和触发器 276

第16章 索引 277

16.1 什么是索引 277

16.1.1 什么时候使用索引 277

16.1.2 什么时候不用索引 277

16.1.3 怎样才是好索引 278

16.1.4 如何确定哪个索引正在被使用 279

16.2 索引文件存储 279

16.2.2 簇索引 280

16.2.1 堆 280

16.2.3 非簇索引 281

16.2.4 使用簇索引还是非簇索引 282

16.3 索引类型 282

16.3.1 惟一索引 282

16.3.2 非惟一索引 282

16.3.3 复合索引 282

16.3.4 覆盖索引 283

16.4 创建索引 283

16.4.1 装填因子和填充索引 285

16.4.2 索引统计 286

16.4.3 产生索引碎片报告 287

16.4.4 删除索引 288

16.4.5 索引重建命令 288

16.5 SQL Server 2000中的新特性:索引的物理视图 289

16.6 索引优化 289

第17章 存储过程 291

17.1 什么是存储过程 291

17.2 创建存储过程 291

17.2.1 通过图形工具创建存储过程 293

17.2.2 临时存储过程 294

17.4 存储过程的参数化 295

17.4.1 传递参数 295

17.3 过程高速缓存 295

17.4.2 返回参数 297

17.5 更改和删除存储过程 299

17.6 重编译选项 300

17.7 处理错误信息 301

17.7.1 加入自定义错误信息 302

17.7.2 使用错误信息 305

17.8 扩展存储过程 306

17.7.3 特别的错误信息 306

17.9 存储过程的安全问题 307

17.10 远程存储过程 307

17.11 自动存储过程 310

第18章 触发器 311

18.1 触发器简介 311

18.2 创建触发器 313

18.3 修改和删除触发器 318

18.3.1 禁止和启用触发器 319

18.3.2 IF UPDATE() 320

18.4 INSTEAD OF触发器 321

18.5 触发器和约束 325

18.5.1 触发器和引用完整性 325

18.5.2 用于层叠删除和更新的触发器 326

18.5.3 嵌套或非嵌套触发器 326

18.5.4 递归触发器 327

18.6 性能问题 331

第19章 分布式数据与复制 335

19.1 为什么使用分布式数据 335

19.1.2 数据转换服务(DTS) 336

19.1.1 日志迁移(log-shipping) 336

19.1.3 远程查询和存储过程 337

19.1.4 分布式事务 337

19.2 复制 338

19.2.1 复制术语 338

19.2.2 为复制作数据分割 340

19.2.3 复制方案 340

19.2.4 复制的拓扑结构 344

19.2.7 分布数据的原则 352

19.2.5 复制的安全问题 352

19.2.6 为复制做准备 352

第5部分 数据模型和推荐读物 354

附录A Strawberry Smoooches公司产品配方 354

附录B Strawberry Smoooches公司概念数据模型 355

附录C Strawberry Smoooches公司逻辑数据模型 356

附录D Strawberry Smoooches公司物理数据模型 357

附录E Strawberry Smoooches公司数据库:数据定义语言(DDL)和数据 358

E.1 数据定义语言 358

E.1.1 创建Strawberry数据库 358

E.1.2 创建表 359

E.1.3 创建主键约束 363

E.1.4 创建外键约束 365

E.1.5 创建索引 368

E.2 Strawberry Smoooches公司数据 370

E.2.1 Person表 370

E.2.2 CommDevice表 371

E.2.3 Employee表 372

E.2.4 SalesPerson表 372

E.2.6 EventContact表 373

E.2.5 Contact表 373

E.2.7 Event表 374

E.2.8 Product表 375

E.2.9 Vendor表 375

E.2.10 Supply表 375

E.2.11 Inventory表 376

E.2.12 Manufacturing表 377

E.2.13 WorkAssignment表 377

E.2.15 Saleltem表 380

E.2.14 Sale表 380

附录F 参考文献和推荐读物 382

F.1 数据建模 382

F.2 数据库和系统基础 382

F.3 保密和安全 382

F.4 SQL编程 383

F.5 SQL Server内幕和管理 383

F.6 Osborne/McGraw-Hill SQL Server 2000系列从书 383

F.7 参考文献 384