欢迎光临
免费的PDF电子书下载网站

SQL Server 2008数据库设计与实现 PDF下载

编辑推荐

  “跟本书的2005版一样,我认为Louis的这本书写得非常好,信息量极其丰富而且实践性强。阅读过程中,你会觉得是在跟作者讨论问题。我喜欢这本书,还因为它有自己的观点,而非从在线图书中照搬过来……”

                —— Amazon读者评论

  资深数据库专家的心血力作,SQL Server设计思想的独到解析,关系数据库实现的通关宝典。 ;

内容简介

  本书深入浅出地介绍了目前世界上最受欢迎的数据库管理系统之一——SQL Server。全书共分三个部分:第一部分阐释了数据库的基本概念,讲解了数据库建模语言;第二部分展示了从概念建模到在SQL Server 2008上真正实现数据库的过程;第三部分深入探讨了SQL Server若干方面的技术细节,如数据保护、索引、并发访问等。通过将理论融入数据库实践,清晰地讲解了关系型数据库的设计原则,完整地展示了如何进行良好的关系型数据库设计,深入揭示了SQL Server 2008的技术细节。

  本书浓缩了作者作为SQL Server数据库架构师多年来丰富的实践经验,适合各类数据库开发和管理人员学习参考。

作者简介

暂无

SQL Server 2008数据库设计与实现 PDF下载

目录

第1章 数据库概念简介
 1.1 数据库设计阶段
  1.1.1 概念阶段
  1.1.2 逻辑阶段
  1.1.3 实现阶段
  1.1.4 物理阶段
 1.2 关系数据结构
  1.2.1 数据库和模式
  1.2.2 表、行和列
  1.2.3 信息原则
  1.2.4 域
  1.2.5 元数据
  1.2.6 键
  1.2.7 未显式赋值的项(NULL)
 1.3 实体之间的关系
  1.3.1 二元关系
  1.3.2 非二元关系
 1.4 数据访问语言(SQL)
 1.5 理解依赖性
  1.5.1 函数依赖性
  1.5.2 判定
 1.6 总结
第2章 数据建模语言
 2.1 数据建模介绍
 2.2 实体
 2.3 属性
  2.3.1 主键
  2.3.2 替代键
  2.3.3 外键
  2.3.4 域
  2.3.5 命名
 2.4 关系
  2.4.1 识别性关系
  2.4.2 非识别性关系
  2.4.3 角色名字
  2.4.4 关系基数
  2.4.5 动词短语(关系名字)
 2.5 描述信息
 2.6 其他建模方法
  2.6.1 信息工程
  2.6.2 Chen ERD
  2.6.3 Visio
  2.6.4 Management Studio数据库关系图
 2.7 最佳实践
 2.8 总结
第3章 概念阶段数据建模
 3.1 理解需求
 3.2 文档化过程
 3.3 需求收集
  3.3.1 客户访谈
  3.3.2 要回答的问题
  3.3.3 现存的系统和原型
  3.3.4 其他类型的文档
 3.4 识别对象和过程
  3.4.1 识别实体
  3.4.2 实体间关系
  3.4.3 识别属性和域
 3.5 识别业务规则和业务过程
  3.5.1 识别业务规则
  3.5.2 识别基础业务过程
 3.6 完成概念模型
  3.6.1 识别明显的、额外的数据需求
  3.6.2 和客户一起评审
  3.6.3 重复以上步骤直到客户同意你的模型
 3.7 最佳实践
 3.8 总结
第4章 规范化过程
 4.1 为什么要规范化
  4.1.1 消灭重复数据
  4.1.2 避免编写不必要的代码
  4.1.3 给表瘦身
  4.1.4 最大化聚集索引的使用
  4.1.5 降低每张表中索引的数量
 4.2 规范化应该走多远
 4.3 规范化过程
 4.4 实体和属性的形式:第一范式
  4.4.1 所有属性必须是原子的
  4.4.2 实体的所有实例必须包含相同数量的值
  4.4.3 实体中出现的所有实体类型都必须不同
  4.4.4 第一范式所避免的不规则编程
  4.4.5 当前设计不符合第一范式的线索
 4.5 属性间的关系
  4.5.1 第二范式
  4.5.2 第三范式
  4.5.3 Boyce-Codd范式
 4.6 实体中的多值依赖
  4.6.1 第四范式
  4.6.2 第五范式
 4.7 非规范化
 4.8 最佳实践
 4.9 总结
 4.10 额外的例子
 4.11 本书迄今为止所讲述的故事
第5章 实现基础的表结构
 5.1 评审逻辑设计
 5.2 变换设计
  5.2.1 选择名字
  5.2.2 处理子类型
  5.2.3 决定树的实现方式
  5.2.4 选择键的实现方式
  5.2.5 决定域的实现方式
  5.2.6 设置模式
  5.2.7 评审“最终的”实现模型
 5.3 实现设计
  5.3.1 创建基本表结构
  5.3.2 添加唯一性约束
  5.3.3 构建默认约束
  5.3.4 添加关系(外键)
  5.3.5 处理排序规则和排序
  5.3.6 计算列
  5.3.7 实现用户定义的数据类型
  5.3.8 文档化你的数据库
  5.3.9 处理依赖信息
 5.4 最佳实践
 5.5 总结
第6章 保护数据的完整性
 6.1 最佳实践
 6.2 自动数据保护
  6.2.1 声明性数据保护
  6.2.2 基本语法
  6.2.3 基于简单表达式的CHECK约束
  6.2.4 基于函数的CHECK约束
  6.2.5 约束引起的错误
  6.2.6 DML触发器
  6.2.7 处理来自触发器和约束的错误
 6.3 手动数据保护
 6.4 更多最佳实践
 6.5 总结
第7章 模式与查询技术
 7.1 预计算值
  7.1.1 序列表
  7.1.2 日期计算
 7.2 二进制大型对象(BLOB)
 7.3 存储用户自定义数据
  7.3.1 一长串通用列
  7.3.2 实体-属性-值(EAV)
  7.3.3 往表中增加列
 7.4 通用实现对象
 7.5 反模式
  7.5.1 多用途键域
  7.5.2 通用键引用
  7.5.3 对非结构化数据的过度使用
 7.6 总结
 7.7 回顾与展望
第8章 数据访问安全
 8.1 安全主体与安全对象
 8.2 数据库安全概述
  8.2.1 模拟
  8.2.2 权限
  8.2.3 控制对象访问
  8.2.4 角色
  8.2.5 模式
 8.3 通过T-SQL编程对象控制对象访问
  8.3.1 存储过程和标量函数
  8.3.2 对象内模拟
  8.3.3 跨数据库边界
  8.3.4 不同的服务器(分布式查询)
 8.4 视图与表值函数
  8.4.1 一般用法
  8.4.2 使用视图实现可配置的行级安全
 8.5 数据混淆
 8.6 监视与审核
  8.6.1 服务器与数据库审核
  8.6.2 使用DML触发器查看表的变更历史
  8.6.3 DDL触发器
  8.6.4 分析器日志
 8.7 最佳实践
 8.8 总结
第9章 表结构与索引
 9.1 数据库物理结构
  9.1.1 文件与文件组
  9.1.2 分区与页
  9.1.3 页中的数据
  9.1.4 分区
 9.2 索引概览
 9.3 基本索引结构
 9.4 索引类型
  9.4.1 聚集索引
  9.4.2 非聚集索引
  9.4.3 聚集表上的非聚集索引
 9.5 索引创建的基本方法
 9.6 基本的索引使用模式
  9.6.1 使用聚集索引
  9.6.2 使用非聚集索引
  9.6.3 使用唯一索引
 9.7 高级的索引使用案例
  9.7.1 外键索引
  9.7.2 索引视图
 9.8 最佳实践
 9.9 总结
第10章 并发编程
 10.1 什么是并发
 10.2 查询优化的基础知识
 10.3 操作系统与硬件因素
 10.4 事务
  10.4.1 事务语法
  10.4.2 已编译的SQL Server代码
 10.5 SQL Server并发控制
  10.5.1 锁
  10.5.2 隔离级别
 10.6 完整性与并发性编程
  10.6.1 悲观锁定
  10.6.2 实现单线程代码块
  10.6.3 乐观锁定
  10.6.4 基于行的锁定
  10.6.5 逻辑工作单元
 10.7 最佳实践
 10.8 总结
第11章 数据访问策略
 11.1 即席SQL
  11.1.1 优点
  11.1.2 缺陷
 11.2 存储过程
  11.2.1 封装性
  11.2.2 动态存储过程
  11.2.3 安全性
  11.2.4 性能
  11.2.5 缺陷
  11.2.6 观点
 11.3 T-SQL与CLR(公共语言运行时)
  11.3.1 选择T-SQL的准则
  11.3.2 选择.NET的准则
  11.3.3 CLR对象类型
 11.4 最佳实践
 11.5 总结
附录A Codd的RDBMS十二法则
附录B 标量数据类型参考
索引

免费在线读

第1章 数据库概念简介

  这下她明白了,敌人如魔鬼般的狡诈,正在于给谎言掺入一点真话,如此一来,谎言就更以假乱真。

          ——《纳尼亚传奇:最后的战役》,C.S.Lewis著

  作为数据架构师的职业生涯中,从最开始到昨天为止(不管你什么时候看到这些句子,我这句话基本上都不可能会变化),我无数次遭遇一个完全难以克服的现实。向一个以墙上的钟点考评所有项目的管理体系兜售“做对事情”的概念从来都不轻松。不光如此,通常情况下,实现功能的程序员人数往往比做数据库的多若干倍,他们边等着用数据库,边对管理层抱怨说,不到数据库设计完成或至少开始实现,他们什么事都干不了。如果这还不够,现在介绍一下项目组的思维定势,具体用词可能略有偏差:“数据库设计不那么重要。”

  这话往往并非明确地用这些词说出来(虽然也确实有这样说的时候)。一般说来,在人们大谈用户界面(UI)应该如何显示某个东西,以及某按钮应该放到哪儿的时候,类似的话就混杂于其中。系统设计从一开始就让人感觉像是追求“照片般真实”的艺术家在画一幅画,而不是在进行一个需要遵循坚实工程实践的项目,先回答“需要做什么”再回答“如何做’’的问题。更糟糕的是,由于数据库是几乎所有软件项目的骨干成分,这使得情况更加复杂且不易看清,往往快到项目开发阶段结束时,事情才暴露出狰狞的真面目。如果你在参与数据库设计,那么非常重要的是,你需要知道如何回答一个基本问题:“为什么?”

  这样来看问题:你愿意开车在一座由某位不懂物理的工程师设计出来的桥上行驶吗?或者,你愿意乘坐一架由某位不懂飞行基本原理的人士所设计出来的飞机吗?听起来非常荒谬,是不是?那么,你愿意把自己的重要数据存放在一个由某位不懂数据库设计基本原理的人士所设计出来的数据库中吗?

  本书的前4章致力于讨论关系数据库设计的不同阶段,以及如何有效地执行每个阶段的工作,从而能够获得一个良好的最终设计,既能满足业务需求又能保证数据库中数据的完整性。然而,在满腔热情地投入设计过程之前,需要探讨几个核心的关系数据库概念。因此,本章讨论如下主题。

  ……

SQL Server 2008数据库设计与实现 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:SQL Server 2008数据库设计与实现