程序员SQL Server 数据建模指南
包括SQL Server 2005 和2008
作者:埃里克.约翰逊
约
亚.琼斯
:王海鹏
程序员 SQL Server 数据建模指南的赞扬
“埃里克和约书亚在描述数据建模的重要性和如何正确的数据建模上做了非常棒的工作。他们使用真实世界的例子来说明许多数据库和应用程序的开发者所忽略的重要概念,而不是依靠教条化的概念。数据库初级
者和资深的专家都很喜欢这种对话式和平易近人的写作风格。负责设计、实施和管理数据库的读者将会从约书亚和埃里克的专家技巧中获得很大益处。
-阿尼尔.德赛 阿尼尔.德赛公司顾问
“几乎每一个IT项目都设计某种数据存储,其中大多数都是关系数据库管理系统(RDBMS)。这本书是为以数据为中心的读者(数据建模员,架构师,设计师,开发者等等)。作者在给我们展示如何让项目从各个方面收集需求的初始阶段到实施。顺着过程我们学习如何处理一些真实世界的非常典型的设计问题。
“基本要求是很简单的。就是当你老板说:“我们要在你的帮助下开展一个新的项目”,你会想读完这本书。”
-Ronald Landers,技术顾问,IT专家
“数据模型是应用程序的基础。我非常高兴看到更多的为这个关键的阶段而写的书。通过获得正确的优先级这本书介绍了一个平衡和使用的见解,使你的SQL Server项目有一个好的开始和长的生命周期。
-Paul Nielsen,SQL Server MVP,SQLServerBible.com
“无论对新手或者高级设计师,这真是一个对数据库设计
学的杰出介绍。作者在讲解关系数据库模型基础和他们如何适合现在商业逻辑架构上做了非常好的工作。这本书教给我们如何确认那些必须满足数据库要求的业务问题和解释如何从草稿中建立一个稳定的解决方案。
-Alexzander N.Nepomnajashiy,Microsoft SQL Server DBA,NeoSystems North-West,Inc.
“《一本开发者的SqlServer数据建模指南》清晰的讲解技术数据建模的概念和实践,使建立数据库和数据驱动程序的任何人都容易理解这项技术。
“埃里克 约翰逊和约书华 琼斯 艺术般的结合了两人对多年数据建模科学的理解。如果你是一个数据建模的新手或者有需要了解之二写概念,这本是是为您定做的。”
-Peter Varhol,Executive Editor,Redmond Magazine
程序员SQL Server 数据建模指南
适合SQL Server 2005 和2008
埃里克.约翰逊
约书华.琼斯
艾迪生-韦斯利
马鞍河上游,新泽西州 波士顿 印第安纳波利斯 纽约旧金山 多伦多 蒙特利尔 伦敦 慕尼黑 巴黎 马德里开普敦 悉尼 新加坡 墨西哥城
许多名称制造商和销售商注册为区分他们的产品而注册申请为商标专利。当这些名称出现在这本书中,而且出版社也知道这些注册商标,所以名称以首字母大写或者整个名称都是大写的。
作者和出版社很注意的准备了这本书,但是不会明示或者隐含为错误或者过失承担任何责任和赔偿。没有为使用书中的信息或者程序造成的损失承担附带或者间接责任。
当批量购买或者包含电子版本或者为你的业务,训练目标,市场营销,品牌权益自定义封面和内容特殊,市场订单出版社为这本书提供优厚的折扣。如果想获取更多信息,请联系:
U.S 政府和企业销售
(800)382-3419
Corpsales@pearsontechgroup.com
For sales outside the united sates please contact:
International Sales
internationl@pearsoned.com
访问我们在网站:infomit.com/aw
图书目录编录在美国国会图书馆
约翰逊 埃里克,1978-
程序员SQL Server 数据建模指南 覆盖 SQLServer 2005 和2008 /埃里克.约翰逊和约书华.琼斯 -1st ed。
P.CM.
包括目录.
ISBN 978-0-321-49764-2(PBK:alk.PAPER)
1, sql server 2,数据库设计 3,数据结构(计算机科学)
I琼斯.约书华 1975- II.Title
QA76.9.D26J65 2008
Copyright 2008 培生教育公司
保留所有权利,在美国本土印刷。本出版物受版权保护,在从出版社取得许可之前禁止任何形式的复制,目录检索,或者转载,如:电子版本,手工,影印,录制等等。如果想获得许可信息,写信至:
培生教育
权利和合约部
501博伊尔斯顿街 900栋
波士顿 Ma02116
传真:(617)671-3447
ISBN-13:978-0-321-49764-2
ISBN-10:0-321-49764-3
文字印刷在可回收纸张在波士顿邮局 美国 马萨诸塞州
第一次印刷 2008 6月
为 米歇尔 和 埃文 ----------埃里克
写给我的妻子和孩子; 让我有时间来工作---乔西
前言 XV
答谢 Xvii
关于作者 Xix
第一部分 数据建模理论。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。1
PREFACE
前言
作为一个数据库专家,我们经常被要求进入现有环境和修复存在的数据库。这是很经常的,因为在已经交付的程序的生命周期中程序开发人员和用户经常发现性能问题。不可避免地,期望我们能施展一些魔术般的技巧,让性能问题消失。不行的是,你们绝大多数都已经知道,问题经常在于数据库的设计。我们经常在会上花费几个小时来努力验证重新设计整个数据库的成本,以便支持应用的实习需求以及业务的性能需求。我们经常发现我们面临现实世界的问题,比如预算,资源,和业务需求,时间不允许完全解决一个设计不良的数据库上的所有问题。
当你发现你自己处在需要重新设计一个数据库的时候或者好一点,要去从头开始设计一个新的数据库的处境的时候,将会发生什么呢?你知道那里有一些规则来遵循,伴随着能指导你可伸缩的、功能性的设计的最好的练习。如果不想从现在起三年内(这么长时间就够了)让数据库开发者和数据库管理员咒骂你的名字,你就要遵循这些规则。此外,随着企业级关系关系数据管理系统的到来,理解你的设计将要实施的数据库平台的输入和输出时非常重要的。
有2个原因让我们决定写这本书,为每一个需要设计或者重做一个依赖于 Microsoft SQL Server的数据模型的人提供参考。第一,即使已经有了许多的书从上到下的覆盖了关系数据库的设计,也有了大量的书如何为SQL Server优化性能和编写T-SQL,对开发者和设计者从开始到结束的伴随正确理论的融合和实践经验过程却没有任何帮助。第二,我们已经逐字逐句的看过了人们遗留下的数百个设计不良的数据库,这些人既没有SQL Server的理论背景也没有相关经验来设计一个高效的数据库模型。有时这些数据库被良好的设计为他们曾经实施过的数据库;随后他们被简单的复制和黏贴(缺少更准确的术语)到SQL Server,经常会造成灾难性的后果。我们曾经想,一本讨论关于SQL Server的书籍将会对重新设计一个存在的数据库从另一个平台迁移到SQL Server中去。
我们都详细读过软件设计,和关系数据库设计,应该是不分平台的。我们不需要争论这些观点。然而,了解关系数据库管理系统将会主导你的设计是非常重要的,因为会影响你
的性能和在你的设计中你可能需要说明的缺陷。除此之外,在SQL Server 2005的介绍中,微软应用了很多能扩展SQL Server能力超过简单主机的技术 。虽然我们没有覆盖到扩展功能的每一点(否则,你考虑需要一个起动机来携带这本书),我们会引用这些功能,在恰当的地方给你机会学习这些功能如何帮助你。
在这本书的页面里,我们希望通过完整的设计和开发流程,你将会发现你需要的每一件事来帮助你,所有事情从跟用户沟通,设计用例,开发你的数据模型来实施和确认模型拥有稳定的性能特点。只要有可能我们就会提供示例,我们希望这些示例在一个方面或者另一个方面对你来说是有用的也是合适的。在花费几个小时来开发后台和需求为我们的虚拟公司,我们已经考虑关于开始我们拥有的音乐业务。接下来让我们面对这些,一行一行的读取关于对一个varchar数据类型各种不同的用途不能总是令人毛骨悚然,因此我们试图添加一些轶事anecdote,一些笑话,和一个意译电影片段或者2个来保持这本书的活力。
写这本书是一个奇特的经历对我们2个来说,学习出版过程的工作是怎样的,学习对大多数读者来说更好的细节写作,学习即使我们自己是最大的批评者critics ,但是听到朋友的批评是很艰难的,即使他们是对的,但是我们很高兴他们提出批评。
ACKNOWLEDGMENT
感谢
我们一直享受训练和写作,同时这本书给我们同时训练而后写作的机会。许多漫长的夜晚和周末花费在这本书上,我们也希望所有的辛勤工作创造了一个对你有用的资源库。
我们无法足够的表达出我们家人的感谢-----米歇尔(Michelle)和Evan(埃文),和丽萨(Lisa) 、布雷登(Breydon)、悉尼(Sydney).他们一直非常支持和理解我们在整个过程中,虽然没有我们的陪伴。我们非常爱你们。
我们也想感谢Addison-Wesley 出版社的团队,琼-默里 和金-Boedigheimer。我们在这本书之前从未写过书,琼非常信任我们,给予了我们机会。谢谢在整个过程中指导我们,即使在事情变得棘手的时候也同我们一块工作。
非常感谢Embarcadero (embarcadero.com) 让我们在创建模型时可以使用ERStudio 的副本,这些模型你将会在这本书中看到。
我们也想感谢微软创造了SQL Server和提供关于主机数据库的在这样一个稳定的平台上的IT社区。
最后,我们将会我们将会犯错,如果我们没有感谢你,读者们。没有你们,那么就没有这本书。
ABOUT THE AUTHORS
关于作者
埃里克-约翰逊(Eric Johnson) (Microsoft SQL MVP) 是Consortio Services co-founder(共同创建者)同时是高级数据库技术顾问。他有多样的技术背景,一系列的操作系统和硬件为专门的程序和开发。因为IT是一条支持业务的过程,埃里克也取得了一个MBA,一切的一切,他有10年的IT经验,大多数时间同MICROSFOT SQL Server 打交道。埃里克已经管理和设计了所有形状和大小的数据库。他已经发布了众多的SQL Server 训练课程和网络视频,同时还有在国家技术会议上的演讲。最近,他出席了TechMenter 关于SQL Server 2005 复制,报表服务,和整合服务。除此之外,他也活跃在本地SQL Server社区,以主席的身份服务于Colorado Springs SQL Server Users Group。他同时也是CS Techcast 的联合主机,一个每周为IT专业发布广播在www.cstechcast.com。你能在www.consortioservices.com/blog找到埃里克的博客。