首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 图书频道 > 计算机与网络 > 数据库 >

SQL Server 2008高级程序设计 [平装]

2014-01-21 
编辑推荐《SQL Server 2008高级程序设计》:Microsoft SQL Server 2008极大地完善了数据库引擎的核心组件,也改
商家名称 信用等级 购买信息 订购本书
SQL Server 2008高级程序设计 [平装] 去商家看看
SQL Server 2008高级程序设计 [平装] 去商家看看

SQL Server 2008高级程序设计 [平装]

编辑推荐

《SQL Server 2008高级程序设计》:Microsoft SQL Server 2008极大地完善了数据库引擎的核心组件,也改变了数据库应用程序的构建方式。《SQL Server 2008高级程序设计》由世界顶尖SQL Server权威专家Robert Vieira编写,旨在指导您熟练运用一系列日趋复杂的功能,助您更高效地管理数据。
《SQL Server 2008高级程序设计》首先介绍SQL Server 2008的新功能,然后在更详实的示例代码的引导下全面深入地展开论述,讨论了如何编写复杂查询、构建各种数据结构以及提高应用程序性能,还讲述了如何管理高级脚本和数据库以及如何确定和改正脚本错误。
《SQL Server 2008高级程序设计》提供了快速创建和部署数据驱动的解决方案来满足业务需求的信息,介绍了新数据类型、索引结构、管理功能和高级时区处理等重要内容,掌握这些知识后,您将使自己的数据库发挥㈩最大功效。
主要内容
除规范化外的数据设计技巧
尽量提高应用程序运行速度的方法
有关存储过程和用户定义函数的全部内容
存储过程的高级处理方法
报表服务和集成服务的用法
提高数据库安全性的提示信息
如何利用XML和XQuery支持
通过修改特定数据值进行推理分析的步骤
读者对象
《SQL Server 2008高级程序设计》面向想要学用所有SQL Server 2008功能的有经验的开发人员。

作者简介

维埃拉(Robert Vieira),当1978年的计算机热潮席卷而来时,Robert Vieira对计算机技术萌生了浓厚兴趣。他从1983年开始攻读计算机信息系统学位,于1985年后期涉足自己钟爱的“计算机程序故障”领域,于1990年获得商业管理学位。丰富的商业知识和计算知识为保障他的事业取得成功奠定了坚实基础。获得学士学位后,他又相继获得CMA、MCSD、MCT、MCDBA以及EMT等认证。
Robert目前担任Huron Consulting Group的Stockamp公司的数据库团队领导,迄今已出版了6本有关SQL Server开发的书籍。

目录

第1章 回顾SQLServer中的对象
1.1 数据库的构成
1.2 数据库对象概述
1.2.1 数据库对象
1.2.2 事务日志
1.2.3 最基本的数据库对象:表
1.2.4 模式
1.2.5 文件组
1.2.6 图表
1.2.7 视图
1.2.8 存储过程
1.2.9 用户自定义函数
1.2.10 用户和角色
1.2.11 规则
1.2.12 默认值
1.2.13 用户自定义数据类型
1.2.14 全文目录
1.3 SQLServer数据类型
1.4 SQLserver对象标识符
1.4.1 需要命名的对象
1.4.2 命名规则
1.5 小结

第2章 工具
2.1 联机丛书
2.2 SQLServer配置管理器
2.2.1 服务管理
2.2.2 网络配置
2.2.3 协议
2.2.4 客户端配置
2.3 SQLServerMaliagementStudi0
2.3.1 启动Managemenc Studio
2.3.2 查询编辑器
2.4 SQLServerBusillessIntelligence DeveloplhentStudio
2.5 SQLserver集成服务(SsIs)
2.6 R.epOningSerVices
2.7 BulkCopyPrograml(bcp)
2.8 SQLServerProfiler
2.9 sqlcmd
2.10 小结

第3章 提出更好的问题:高级查询
3.1 子查询概述
3.2 构建嵌套子查询
3.2.1 使用单值SELECT语句的嵌套查询
3.2.2 使用返回多个值的子查询的嵌套查询
3.2.3 ANY、SOME和ALL运算符
3.3 相关子查询
3.3.1 相关子查询的工作方式
3.3.2 WHERE子句中的相关子查询
3.3.3 SELECT列表中的相关子查询
3.4 派生表
3.5 EⅪSTS运算符
3.6 INTERSECT和EXCEPT运算符
3.6.1 EXCEPT
3.6.2 INTERSECT
3.6.3 比较EXCEPT和INTERSECT与相应的EⅪSTS和NOTExISTS语句
3.7 通用表表达式(CTE)
3.8 递归查询
3.9 合并
3.10 利用外部调用完成复杂操作
3.11 性能考虑
3.12 小结

第4章 XML集成
4.1 XML数据类型
4.1.1 定义XML数据类型的列
4.1.2 XML模式集合
4.1.3 创建、修改和删除Ⅺ儿模式集合
4.1.4 XML数据类型方法
4.1.5 施加超出模式集合范围的约束
4.2 提取XML格式的关系数据
4.2.1 FORXML子句
4.2.2 OPENXML
4.3 有关XML索引的提示
4.4 层次数据概述
4.5 小结

第5章 细心推敲,大胆设计
5.1 进一步了解规范化
5.1.1 入手点
5.1.2 达到第三范式
5.1.3 其他的规范形式
5.2 关系
5.3 图表
5.3.1 几种关系类型
5.3.2 实体框
5.3.3 关系线
5.3.4 终止符
5.4 逻辑设计与物理设计
5.4.1 逻辑模型的用途
5.4.2 逻辑模型的组成
5.5 通过经典的BLOB处理基于文件的信息
5.6 子类别
5.6.1 子类别的类型
5.6.2 明确概念——实现子类别
5.6.3 子类别的物理实现
5.6.4 通过子类别增加可扩展性
5.7 数据库重用
5.7.1 可重用数据库的候选
5.7.2 如何分解事物
5.7.3 可重用性的高昂代价
5.8 反规范化
5.9 通过分区方法进行扩展
5.10 SQLServer关系图工具
5.10.1 表
5.10.2 处理约束
5.11 关于日期列
5.12 小结

第6章 核心存储和索引结构
6.1 SQLserer存储
6.1.1 数据库
6.1.2 文件
6.1.3 区段
6.1.4 页
6.1.5 行
6.1.6 全文目录
6.1.7 文件流
6.2 理解索引
6.2.1 “B”还是非“B”:B树
6.2.2 如何在SQLServer中访问数据
6.2.3 索引类型和索引导航
6.3 创建、修改和删除索引
6.3.1 CREATEINDEX语句
6.3.2 随约束隐含创建的索引
6.3.3 ALTERINDEX
6.3.4 DROPINDEX
6.4 明智地决定何时何地使用何种索引
6.4.1 选择性
6.4.2 注意代价
6.4.3 选择聚集索引
6.4.4 列排序问题
6.4.5 删除索引
6.4.6 使用数据库引擎优化顾问
6.5 维护索引
6.5.1 碎片
6.5.2 检测碎片
6.6 小结

第7章 更高级的索引结构
7.1 XML索引
7.1.1 主XML索引
7.1.2 辅助XML索引
7.1.3创建XML索引
7.2 用户定义的数据类型
7.2.1 经典UDT
7.2.2 NETUDT
7.2.3 表格式UDT
7.2.4 删除用户定义的类型
7.3 层次数据
7.3.1 理解深度与输出
7.3.2 HifffarchyID类型结构
7.3.3 处理HierarchyID值——HicrarchyID方法
7.3.4 索引层次数据
7.3.5 性能考虑
7.4 空间数据
7.4.1 空间概念
7.4.2 平面数据描述的实现GEOME FRY数据类型
7.4.3 测量数据描述的实现GEOGRAPHY类型
7.5 文件流
7.6 启用文件流
7.6.1 为数据库启用文件流
7.6.2 创建一个启用文件流的表
7.6.3 在T.SQL中使用文件流
7.6.4 在.NET中使用文件流
7.7 表压缩
7.8 小结

第8章 视图
8.1 回顾视图语法
8.2 更复杂的视图
8.3 使用T.SQL编辑视图
8.4 删除视图
8.5 审核:显示现有代码
8.6 保护代码:加密视图
8.7 关于模式绑定
8.8 使用VIEwMETADAIIA使自己的视图看起来像一个表
8.9 索引(物化)视图
8.10 分区视图
8.11 小结

第9章 脚本和批处理
9.1 脚本的基本概念
9.2 批处理
9.2.1 批处理错误
9.2.2 使用批处理的时机
9.3 SQLCMD
9.4 动态SQL:使用ExEc命令生成即时代码
9.5 流控制语句
9.5.1 IFELSE语句
9.5.2 CASE语句
9.5.3 使用wHlLE语句进行循环
9.5.4 WArITOR语句
9.5.5 TRY/CATCH块
9.6 小结

第10章 高级编程
10.1 细看存储过程
10.1.1 输出参数
10.1.2 处理错误
10.2 表值参数(TVP)
10.3 调试
10.3.1 启动调试器
10.3.2 调试器的组件
10.3.3 启动后使用调试器
10.4 理解SQLCLR及SQLserver中的.NET编程
10.4.1 程序简介
10.4.2 编译程序集
10.4.3 将程序集上载到SQL Server上
10.4.4 创建基于程序集的存储过程
10.4.5 从程序集创建标量用户定义函数
10.4.6 创建表值函数
10.5 创建聚集函数
10.6 自定义数据类型
10.6.1 从程序集创建自己的数据类型
10.6.2 访问复杂数据类型
10.6.3 删除数据类型
10.7 小结

第11章 事务和锁
11.1 事务
11.1.1 BEGINTTRAN
11.1.2 COMMMTTRAN
11.1.3 ROLLBACKTRAN
11.1.4 SAVETRAN
11.2 SQLServer日志的工作方式
11.2.1 使用CHECKPOINT命令
11.2.2 在服务器正常关机时执行
11.2.3 在更改数据库时执行
11.2.4 在启用TrtmcateonCheckpoint选项时执行
11.2.5 在恢复时间超过设置的恢复间隔时执行
11.2.6 失败与恢复
11.2.7 隐式事务
11.3 锁和并发
11.3.1 通过锁可以防止的问题
11.3.2 可锁的资源
11.3.3 锁升级以及锁对性能的影响
11.3.4 锁模式
11.3.5 锁的兼容性
11.3.6 指定特定的锁类型——优化器提示
11.4 设置隔离级别
11.4.1 RPLAIDCOMMIllED
11.4.2 READUNCOMMITTED
11.4.3 REPEATABLEREAD
11.4.4 SERIALIZABLE
11.4.5 SNAPSHOT
11.5 处理死锁(也称作“A1205”)
11.5.1 SQLServer判断死锁的方式
11.5.2 如何选择死锁牺牲品
11.5.3 避免死锁
11.6 小结

第12章 触发器
12.1 触发器的含义
12.1.1 0N
12.1.2 WITHENCRYPTl0N
12.1.3 FORlAFTER与INSTEAD0F子句
12.1.4 WITHAPPEND
12.1.5 NOTFORREPLICATl0N
12.1.6 AS
12.2 为数据完整性规则使用触发器
12.2.1 处理源自其他表的要求
12.2.2 使用触发器检查更新的差异
12.2.3 使用触发器实现自定义错误消息
12.3 触发器的其他常见用途
12.3.1 更新摘要信息
12.3.2 向反规范化的表输入数据以用于报告
12.3.3 设置条件标志
12.4 其他触发器问题
12.4.1 嵌套触发器
12.4.2 递归触发器
12.4.3 触发器调试
12.4.4 触发器不妨碍架构的修改
12.4.5 不必删除就可以禁用触发器
12.4.6 触发器的触发顺序
12.5 INSTEAD0F触发器
……
第13章 SQL游标
第14章 Reporting Services
第15章 bcp和其他基本的大容量操作
第16章 开始集成
第17章 复制
第18章 全文搜索
第19章 安全性
第20章 设计性能卓越的数据库
第21章 性能优化工具
第22章 管理
第23章 SMO.SQL管理对象
第24章 数据仓库
第25章 保证良好的连接性
附录A 系统函数
附录B 分析元数据
附录C 基础知识

序言

我们将在新的起点上重新启航。我们等待SQL Server 2005用了长达5年的时间,但Microsoft 给我们带来了惊喜,SQL Server 2008的到来只用了3年时间。
我对SQL Server 2008在这么短的时间里引入这么多功能并不感到惊讶。真正使我感到惊讶的是这个新版本中添加了大量“袖珍功能”。尽管Microsoft将一些主要功能(如基于管理的策略)作为市场宣传的噱头,但该产品最突出的新功能其实都是相当细微的。
SQL Server 2008包括了大量看似微小但却非常有用的功能,例如:
·新增的且非常有用的数据类型(分离的日期和时间数据类型以及对地理空间数据和分层数据表示的支持)。
·新增的MERGE命令(将INSERT、UPDATE和DELETE选项结合到一条语句中,其他产品有时将其称作UPSERT语句)。
·改进了Reporting Service,可提供更优雅的报表。
·跟踪和提供了“缺少”索引信息(在优化时,会关注可提高性能的“缺少”索引信息)。
这些都是面向初学者的。
对于已阅读过我所写的2005版的图书的读者来说,《SQL Server 2008编程入门经典》(由清华大学出版社引进并出版)一书中。一些介于初级、中级或高级主题之间的内容,我将作较为深入的介绍,但对于此版本来说,大部分初级内容都罗列在入门书籍中(本书最后添加的一个新附录给出了简短的语法列表和一些示例,但数百页的内容现在浓缩成了数十页)。
好消息是,这让本书可以涵盖更广泛的主题。这就让我可以更接近最初为“高级”篇设定的目标:提供产品的大部分基础信息,即使你无法在每个领域都做到专业级,你也可从整体上理解SQLServer并构建一个更好的系统,了解许多SQL Server功能领域所涉及的内容,并准备在必要时获取更多的信息。
除此之外,本书保持了作者一贯的写作风格。书中涵盖了大部分的附加服务、高级编程结构(如.NET程序集)以及一些支持的对象模型(可用于管理SQL Server及其各种引擎)。
0.1 版本问题
本书是针对SQL Server 2008编写的,不过,书中也追溯了一些之前版本的内容,并且密切关注了与SQL Server 2005甚至SQL Server 2000相关的向后兼容性问题。之前的版本太陈旧了(简言之,在SQL Server 2008发布时,SQL Server 6.5和7.0已经面世10年之久了),书中几乎不会涉及它们。
0.2 读者对象
本书假定你已经具有一些SQL Server经验,并准备并具有介于中级到高级的编程水准。此外,本书主要面向较高层次的开发人员。
除了方便参考的附录外,本书很少涉及初级内容。它假定你有编写DML语句的经验,了解所有主流SQL Server对象(如视图、存储过程、用户自定义函数以及触发器)的基础知识。如果你准备好接受高级主题,但又想要温习初级知识,那我强烈建议你学习《SQL Server 2008编程入门经典》一书,因为这两本书的内容是经过特别设计的,内容较少重叠。
0.3 本书内容
本书介绍的是关于SQL Server的内容。更准确地说,本书是围绕SQL Server开发展开的。大部分的概念都与所使用的客户端语言无关,尽管本书中利用了客户端语言的示例一般都使用C#语言(有些示例采用了多种语言)。
对于那些从SQL Server早期版本过渡而来的读者,我们将对因产品有多个版本而导致的一些“陷阱”作相关讨论。

文摘

插图:



除了这个最基本的应用之外,还可以创建所谓的索引视图(indexed view)。索引视图除了针对视图创建索引之外,别的与其他视图相同。这一点对使用性能有一定影响(包括正面影响和负面影响):
·对于引用多个表的视图来说,执行索引视图会快很多,因为它预先构造了表之间的联结。
·视图中执行的聚合(aggregation)是预先计算好,并作为索引的一部分存储;因此聚合只要执行一次(在插入或更新行时),然后就可从索引信息中直接读入。
·由于视图上的索引必须及时更新,因此插入和删除需要更多的系统开销;如果更新影响索引的键列,则更新还需要更大的系统开销。
本书第8章将深入探讨这些性能问题以及视图的其他特殊用途。
提示:
尽管创建索引视图的代码在所有版本中都能起作用,但只有在企业版中使用时,查询优化器才考虑它。
1.2.8 存储过程
存储过程(或sprocs)是SQL Server编程功能的基础。存储过程通常是组成一个逻辑单元的Transact-SQL(用于查询Microsoft SQL Server的语言)语句的有序集合。存储过程允许使用变量和参数,也可使用选择和循环结构。与发送单条语句到服务器相比,使用存储过程具有以下几个优点:
·调用存储过程不使用长文本串而使用短存储过程名,可减少运行存储过程中的代码所要的网络流量。
·预先优化和预编译,能将存储过程每次运行的时间缩短一点。
·通常考虑安全原因,或仅仅是简化数据库的复杂性,将过程封装。
·可从其他存储过程调用,使得它们在一定意义上重用。
此外,可利用任何.NET语言创建程序集,并向存储过程中添加T-SQL之外的程序结构。

喜欢SQL Server 2008高级程序设计 [平装]请与您的朋友分享,由于版权原因,读书人网不提供图书下载服务

热点排行