书籍详情
SQL Server 2000设计与T-SQL编程
作者:(美)Michael Reilly,(美)Michelle Poolet著;卢庆龄,王芹,李东译
出版社:清华大学出版社
出版时间:2002-01-01
ISBN:9787302050094
定价:¥40.00
购买这本书可以去
内容简介
这是一本关于规划、设计和实现SQL Server 2000数据库的专业指导书。全书以一个小型商业公司的数据库为样例,详细讲述了数据库的设计、实现、信息检索、程序设计以及数据模型等方面的技术。不管是创建新的数据库还是扩展你已有的桌面数据库,本书都将教会你如何建立一个稳固的、可信赖的数据库系统,以满足当前和将来随需求而增长的需要。本书为使用Microsoft SQL Server 2000进行数据库项目开发人员提供实际指导和技术支持。数据库设计人员、数据库管理员以及欲通过Microsoft认证考试的读者都能从本书中获取切实有用的内容。
作者简介
暂缺《SQL Server 2000设计与T-SQL编程》作者简介
目录
内容简介
第1部分 入门
第1章 数据库设计
1.1 关系数据库发展历程简介
1.1.1 SQL Server:背景和起源
1.1.2 SQL Server适合哪些领域
1.1.3 SQL Server的不同版本
1.1.4 支持的平台
1.2 数据建模
1.2.1 数据建模的步骤
1.2.2 需求收集
1.2.3 用户的观点
1.2.4 标识实体
1.3 Strawberry Smoooches公司
第2章 实体关系建摸
2.1 实体建模介绍
2.2 ERD示例
2.2.1 二元关系
2.2.2 三元关系
2.2.3 递归关系
2.2.4 弱实体
2.2.5 类-子类关系
2.3 Strawberry Smoooches:实体模型
第3章 设计原则
3.1 逻辑建模
3.1.1 数据的规范化
3.1.2 规范和业务标准
3.1.3 规范化的准则
3.1.4 规范化、性能和安全
3.2 四个完整性
3.2.1 实体完整性
3.2.2 引用完整性
3.2.3 域完整性
3.2.4 业务完整性
3.3 数据库设计的道德规范
3.3.1 信息收集和隐私问题
3.3.2 错误信息
3.3.3 安全和秘密
3.3.4 为何社会安全号码不是作为主键的一个好选择
3.3.5 在道德问题上程序员的责任
第4章 规划物理实现
4.1 物理设计
4.1.1 逆规范化设计
4.1.2 增添附加属性
4.1.3 赋予厂商特定的数据类型
4.1.4 建立代理主键
4.1.5 确立候选关键字
4.1.6 评价增强的引用完整性
4.1.7 确定候选索引
4.2 映射ERD到表结构
第2部分 实现
第5章 实现设计
5.1 创建数据库
5.1.1 SQL Server用于创建数据库的工具
5.1.2 规划数据库的规模
5.1.3 调整模型数据库
5.1.4 数据库文件组
5.1.5 创建数据库
5.2 管理数据库增长
5.3 缩减数据库
5.3.1 删除数据库
5.3.2 连接和断开数据库
5.4 数据库配置选项
第6章 建立表
6.1 SQL Server 2000中的数据类型
6.1.1 系统提供的数据类型
6.1.2 用户自定义数据类型
6.1.3 关于DATETIME类型的问题
6.2 创建表
6.2.1 理解数据存储及分配
6.2.2 使用T-SQL创建表
6.2.3 标识属性
6.2.4 全局惟一标识符
6.3 表的维护
6.3.1 增加或删除列
6.3.2 删除表中的数据
6.3.3 从数据库中删除表
6.3.4 临时表
6.4 对象的隶属关系
第3部分 信息检索
第7章 数据检索
7.1 Query Analyzer窗口简介
7.1.1 Object Browser窗口
7.1.2 Object Search窗口
7.2 简单SELECT语句
7.2.1 注释代码
7.2.2 格式化输出
7.3 数据处理
7.3.1 算术计算
7.3.2 数学函数
7.3.3 日期时间计算
7.4 查询中的搜索准则
7.4.1 限定操作
7.4.2 布尔运算AND、OR、NOT
7.4.3 约束运算符IN
7.4.4 值的范围
7.4.5 搜索字符数据
第8章 连接:合并多个表中的数据
8.1 内部连接
8.1.1 使用表别名
8.1.2 生成执行规划
8.2 多表连接
8.3 同等连接和自然连接
8.4 外部连接
8.4.1 左外部连接
8.4.2 右外部连接
8.4.3 完全外部连接
8.4.4 连接中的NULL
8.5 交叉连接
8.6 自连接
8.7 联合运算符
8.8 半连接
8.9 合并连接
8.10 哈希连接
第9章 数据汇总和报表
9.1 合计函数
9.1.1 COUNT()函数
9.1.2 SUM()和AVG()函数
9.1.3 MIN()和MAX()函数
9.2 GROUP BY汇总函数
9.2.1 GROUP BY ALL
9.2.2 GROUP BY对多列进行分组
9.2.3 GROUP BY…HAVING
9.3 COMPUTE BY合计函数
9.4 ROLLUP和CUBE函数
9.5 TOP n数值查询
第10章 数据修改
10.1 插入命令
10.1.1 按位置插入
10.1.2 按列名插入
10.1.3 从其他表中插入数据
10.1.4 从存储过程插入数据
10.1.5 用SELECT INTO语句创建表
10.2 删除
10.3 截断表
10.4 更新
10.4.1 自动编号列的值
10.4.2 用GUID插入记录
10.5 层叠更新和删除
第11章 子查询
11.1 简单子查询
11.2 相关子查询
11.3 EXISTS条件
11.4 基于查询结果来修改数据
11.4.1 插入
11.4.2 删除
11.4.3 更新
第12章 视图
12.1 什么是视图
12.2 为何使用视图
12.3 如何定义视图
12.4 更改和删除视图
12.5 通过视图修改数据
12.5.1 不可更新视图
12.5.2 WITH CHECK选项
12.6 SQL 2000新特性:索引视图
12.7 分割视图
第4部分 通过编程提高性能
第13章 事务介绍
13.1 什么是事务
13.1.1 启动、提交和回滚
13.1.2 锁简介
13.2 事务日志
13.2.1 检查点
13.2.2 lazy writer和worker线程
13.2.3 保存点
13.3 嵌套事务
13.4 隐式事务
13.5 分布式事务
13.5.1 长时间运行的事务
13.5.2 编写事务的几点建议
第14章 锁
14.1 用锁解决潜在问题
14.1.1 丢失更新(覆盖更新)
14.1.2 非提交相关性(脏读)
14.1.3 不一致分析(不可重复读和幻觉记录)
14.2 SQL Server锁
14.2.1 共享锁
14.2.2 排他锁
14.2.3 更新锁
14.2.4 意图锁
14.2.5 系统锁
14.2.6 死锁
14.3 如何检测锁问题
14.4 设置锁选项
14.4.1 NOLOCK选项
14.4.2 事务隔离级别及如何实现
第15章 数据完整性
15.1 缺省和规则
15.1.1 创建缺省和规则
15.1.2 绑定缺省和规则
15.1.3 取消规则和缺省的绑定
15.1.4 为什么不使用缺省和规则
15.2 约束
15.2.1 列级约束和表级约束
15.2.2 主键
15.2.3 惟一约束
15.2.4 外键约束
15.2.5 缺省约束
15.2.6 检查约束
15.2.7 检查已有数据
15.2.8 启用和禁止约束
15.2.9 NOT FOR REPLICATION选项
15.3 约束、缺省和规则
15.4 约束和触发器
第16章 索引
16.1 什么是索引
16.1.1 什么时候使用索引
16.1.2 什么时候不用索引
16.1.3 怎样才是好索引
16.1.4 如何确定哪个索引正在被使用
16.2 索引文件存储
16.2.1 堆
16.2.2 簇索引
16.2.3 非簇索引
16.2.4 使用簇索引还是非簇索引
16.3 索引类型
16.3.1 惟一索引
16.3.2 非惟一索引
16.3.3 复合索引
16.3.4 覆盖索引
16.4 创建索引
16.4.1 装填因子和填充索引
16.4.2 索引统计
16.4.3 产生索引碎片报告
16.4.4 删除索引
16.4.5 索引重建命令
16.5 SQL Server 2000中的新特性:索引的物理视图
16.6 索引优化
第17章 存储过程
17.1 什么是存储过程
17.2 创建存储过程
17.2.1 通过图形工具创建存储过程
17.2.2 临时存储过程
17.3 过程高速缓存
17.4 存储过程的参数化
17.4.1 传递参数
17.4.2 返回参数
17.5 更改和删除存储过程
17.6 重编译选项
17.7 处理错误信息
17.7.1 加入自定义错误信息
17.7.2 使用错误信息
17.7.3 特别的错误信息
17.8 扩展存储过程
17.9 存储过程的安全问题
17.10 远程存储过程
17.11 自动存储过程
第18章 触发器
18.1 触发器简介
18.2 创建触发器
18.3 修改和删除触发器
18.3.1 禁止和启用触发器
18.3.2 IF UPDATE()
18.4 INSTEAD OF触发器
18.5 触发器和约束
18.5.1 触发器和引用完整性
18.5.2 用于层叠删除和更新的触发器
18.5.3 嵌套或非嵌套触发器
18.5.4 递归触发器
18.6 性能问题
第19章 分布式数据与复制
19.1 为什么使用分布式数据
19.1.1 日志迁移(log-shipping)
19.1.2 数据转换服务(DTS)
19.1.3 远程查询和存储过程
19.1.4 分布式事务
19.2 复制
19.2.1 复制术语
19.2.2 为复制作数据分割
19.2.3 复制方案
19.2.4 复制的拓扑结构
19.2.5 复制的安全问题
19.2.6 为复制做准备
19.2.7 分布数据的原则
第5部分 数据模型和推荐读物
附录A Strawberry Smoooches公司产品配方
附录B Strawberry Smoooches公司概念数据模型
附录C Strawberry Smoooches公司逻辑数据模型
附录D Strawberry Smoooches公司物理数据模型
附录E Strawberry Smoooches公司数据库:数据定义语言(DDL)和数据
E.1 数据定义语言
E.1.1 创建Strawberry数据库
E.1.2 创建表
E.1.3 创建主键约束
E.1.4 创建外键约束
E.1.5 创建索引
E.2 Strawberry Smoooches公司数据
E.2.1 Person表
E.2.2 CommDevice表
E.2.3 Employee表
E.2.4 SalesPerson表
E.2.5 Contact表
E.2.6 EventContact表
E.2.7 Event表
E.2.8 Product表
E.2.9 Vendor表
E.2.10 Supply表
E.2.11 Inventory表
E.2.12 Manufacturing表
E.2.13 WorkAssignment表
E.2.14 Sale表
E.2.15 SaleItem表
附录F 参考文献和推荐读物
F.1 数据建模
F.2 数据库和系统基础
F.3 保密和安全
F.4 SQL编程
F.5 SQL Server内幕和管理
F.6 Osborne/McGraw-Hill SQL Server 2000系列从书
F.7 参考文献
第1部分 入门
第1章 数据库设计
1.1 关系数据库发展历程简介
1.1.1 SQL Server:背景和起源
1.1.2 SQL Server适合哪些领域
1.1.3 SQL Server的不同版本
1.1.4 支持的平台
1.2 数据建模
1.2.1 数据建模的步骤
1.2.2 需求收集
1.2.3 用户的观点
1.2.4 标识实体
1.3 Strawberry Smoooches公司
第2章 实体关系建摸
2.1 实体建模介绍
2.2 ERD示例
2.2.1 二元关系
2.2.2 三元关系
2.2.3 递归关系
2.2.4 弱实体
2.2.5 类-子类关系
2.3 Strawberry Smoooches:实体模型
第3章 设计原则
3.1 逻辑建模
3.1.1 数据的规范化
3.1.2 规范和业务标准
3.1.3 规范化的准则
3.1.4 规范化、性能和安全
3.2 四个完整性
3.2.1 实体完整性
3.2.2 引用完整性
3.2.3 域完整性
3.2.4 业务完整性
3.3 数据库设计的道德规范
3.3.1 信息收集和隐私问题
3.3.2 错误信息
3.3.3 安全和秘密
3.3.4 为何社会安全号码不是作为主键的一个好选择
3.3.5 在道德问题上程序员的责任
第4章 规划物理实现
4.1 物理设计
4.1.1 逆规范化设计
4.1.2 增添附加属性
4.1.3 赋予厂商特定的数据类型
4.1.4 建立代理主键
4.1.5 确立候选关键字
4.1.6 评价增强的引用完整性
4.1.7 确定候选索引
4.2 映射ERD到表结构
第2部分 实现
第5章 实现设计
5.1 创建数据库
5.1.1 SQL Server用于创建数据库的工具
5.1.2 规划数据库的规模
5.1.3 调整模型数据库
5.1.4 数据库文件组
5.1.5 创建数据库
5.2 管理数据库增长
5.3 缩减数据库
5.3.1 删除数据库
5.3.2 连接和断开数据库
5.4 数据库配置选项
第6章 建立表
6.1 SQL Server 2000中的数据类型
6.1.1 系统提供的数据类型
6.1.2 用户自定义数据类型
6.1.3 关于DATETIME类型的问题
6.2 创建表
6.2.1 理解数据存储及分配
6.2.2 使用T-SQL创建表
6.2.3 标识属性
6.2.4 全局惟一标识符
6.3 表的维护
6.3.1 增加或删除列
6.3.2 删除表中的数据
6.3.3 从数据库中删除表
6.3.4 临时表
6.4 对象的隶属关系
第3部分 信息检索
第7章 数据检索
7.1 Query Analyzer窗口简介
7.1.1 Object Browser窗口
7.1.2 Object Search窗口
7.2 简单SELECT语句
7.2.1 注释代码
7.2.2 格式化输出
7.3 数据处理
7.3.1 算术计算
7.3.2 数学函数
7.3.3 日期时间计算
7.4 查询中的搜索准则
7.4.1 限定操作
7.4.2 布尔运算AND、OR、NOT
7.4.3 约束运算符IN
7.4.4 值的范围
7.4.5 搜索字符数据
第8章 连接:合并多个表中的数据
8.1 内部连接
8.1.1 使用表别名
8.1.2 生成执行规划
8.2 多表连接
8.3 同等连接和自然连接
8.4 外部连接
8.4.1 左外部连接
8.4.2 右外部连接
8.4.3 完全外部连接
8.4.4 连接中的NULL
8.5 交叉连接
8.6 自连接
8.7 联合运算符
8.8 半连接
8.9 合并连接
8.10 哈希连接
第9章 数据汇总和报表
9.1 合计函数
9.1.1 COUNT()函数
9.1.2 SUM()和AVG()函数
9.1.3 MIN()和MAX()函数
9.2 GROUP BY汇总函数
9.2.1 GROUP BY ALL
9.2.2 GROUP BY对多列进行分组
9.2.3 GROUP BY…HAVING
9.3 COMPUTE BY合计函数
9.4 ROLLUP和CUBE函数
9.5 TOP n数值查询
第10章 数据修改
10.1 插入命令
10.1.1 按位置插入
10.1.2 按列名插入
10.1.3 从其他表中插入数据
10.1.4 从存储过程插入数据
10.1.5 用SELECT INTO语句创建表
10.2 删除
10.3 截断表
10.4 更新
10.4.1 自动编号列的值
10.4.2 用GUID插入记录
10.5 层叠更新和删除
第11章 子查询
11.1 简单子查询
11.2 相关子查询
11.3 EXISTS条件
11.4 基于查询结果来修改数据
11.4.1 插入
11.4.2 删除
11.4.3 更新
第12章 视图
12.1 什么是视图
12.2 为何使用视图
12.3 如何定义视图
12.4 更改和删除视图
12.5 通过视图修改数据
12.5.1 不可更新视图
12.5.2 WITH CHECK选项
12.6 SQL 2000新特性:索引视图
12.7 分割视图
第4部分 通过编程提高性能
第13章 事务介绍
13.1 什么是事务
13.1.1 启动、提交和回滚
13.1.2 锁简介
13.2 事务日志
13.2.1 检查点
13.2.2 lazy writer和worker线程
13.2.3 保存点
13.3 嵌套事务
13.4 隐式事务
13.5 分布式事务
13.5.1 长时间运行的事务
13.5.2 编写事务的几点建议
第14章 锁
14.1 用锁解决潜在问题
14.1.1 丢失更新(覆盖更新)
14.1.2 非提交相关性(脏读)
14.1.3 不一致分析(不可重复读和幻觉记录)
14.2 SQL Server锁
14.2.1 共享锁
14.2.2 排他锁
14.2.3 更新锁
14.2.4 意图锁
14.2.5 系统锁
14.2.6 死锁
14.3 如何检测锁问题
14.4 设置锁选项
14.4.1 NOLOCK选项
14.4.2 事务隔离级别及如何实现
第15章 数据完整性
15.1 缺省和规则
15.1.1 创建缺省和规则
15.1.2 绑定缺省和规则
15.1.3 取消规则和缺省的绑定
15.1.4 为什么不使用缺省和规则
15.2 约束
15.2.1 列级约束和表级约束
15.2.2 主键
15.2.3 惟一约束
15.2.4 外键约束
15.2.5 缺省约束
15.2.6 检查约束
15.2.7 检查已有数据
15.2.8 启用和禁止约束
15.2.9 NOT FOR REPLICATION选项
15.3 约束、缺省和规则
15.4 约束和触发器
第16章 索引
16.1 什么是索引
16.1.1 什么时候使用索引
16.1.2 什么时候不用索引
16.1.3 怎样才是好索引
16.1.4 如何确定哪个索引正在被使用
16.2 索引文件存储
16.2.1 堆
16.2.2 簇索引
16.2.3 非簇索引
16.2.4 使用簇索引还是非簇索引
16.3 索引类型
16.3.1 惟一索引
16.3.2 非惟一索引
16.3.3 复合索引
16.3.4 覆盖索引
16.4 创建索引
16.4.1 装填因子和填充索引
16.4.2 索引统计
16.4.3 产生索引碎片报告
16.4.4 删除索引
16.4.5 索引重建命令
16.5 SQL Server 2000中的新特性:索引的物理视图
16.6 索引优化
第17章 存储过程
17.1 什么是存储过程
17.2 创建存储过程
17.2.1 通过图形工具创建存储过程
17.2.2 临时存储过程
17.3 过程高速缓存
17.4 存储过程的参数化
17.4.1 传递参数
17.4.2 返回参数
17.5 更改和删除存储过程
17.6 重编译选项
17.7 处理错误信息
17.7.1 加入自定义错误信息
17.7.2 使用错误信息
17.7.3 特别的错误信息
17.8 扩展存储过程
17.9 存储过程的安全问题
17.10 远程存储过程
17.11 自动存储过程
第18章 触发器
18.1 触发器简介
18.2 创建触发器
18.3 修改和删除触发器
18.3.1 禁止和启用触发器
18.3.2 IF UPDATE()
18.4 INSTEAD OF触发器
18.5 触发器和约束
18.5.1 触发器和引用完整性
18.5.2 用于层叠删除和更新的触发器
18.5.3 嵌套或非嵌套触发器
18.5.4 递归触发器
18.6 性能问题
第19章 分布式数据与复制
19.1 为什么使用分布式数据
19.1.1 日志迁移(log-shipping)
19.1.2 数据转换服务(DTS)
19.1.3 远程查询和存储过程
19.1.4 分布式事务
19.2 复制
19.2.1 复制术语
19.2.2 为复制作数据分割
19.2.3 复制方案
19.2.4 复制的拓扑结构
19.2.5 复制的安全问题
19.2.6 为复制做准备
19.2.7 分布数据的原则
第5部分 数据模型和推荐读物
附录A Strawberry Smoooches公司产品配方
附录B Strawberry Smoooches公司概念数据模型
附录C Strawberry Smoooches公司逻辑数据模型
附录D Strawberry Smoooches公司物理数据模型
附录E Strawberry Smoooches公司数据库:数据定义语言(DDL)和数据
E.1 数据定义语言
E.1.1 创建Strawberry数据库
E.1.2 创建表
E.1.3 创建主键约束
E.1.4 创建外键约束
E.1.5 创建索引
E.2 Strawberry Smoooches公司数据
E.2.1 Person表
E.2.2 CommDevice表
E.2.3 Employee表
E.2.4 SalesPerson表
E.2.5 Contact表
E.2.6 EventContact表
E.2.7 Event表
E.2.8 Product表
E.2.9 Vendor表
E.2.10 Supply表
E.2.11 Inventory表
E.2.12 Manufacturing表
E.2.13 WorkAssignment表
E.2.14 Sale表
E.2.15 SaleItem表
附录F 参考文献和推荐读物
F.1 数据建模
F.2 数据库和系统基础
F.3 保密和安全
F.4 SQL编程
F.5 SQL Server内幕和管理
F.6 Osborne/McGraw-Hill SQL Server 2000系列从书
F.7 参考文献
猜您喜欢