《Visual Studio与SQL Server开发指南 最优架构与实例》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:(美)沃恩,(美)布莱克伯恩著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2008
  • ISBN:9787302181156
  • 页数:708 页
图书介绍:本书内容包括:数据访问体系结构以及如何为Windows Form、ASP.NET、XML Web Services和SQL Server可执行程序选择最佳策略;SQL Server和关系数据库的基本要素和内部体系;通过使用Visual Studio的工具集使得开发经验更加有建设性;有效、安全地使用最新的ADO.NET数据提供者;如何避免常见的错误来保护自己的数据库安全。

第1章 探索应用程序的体系结构 1

1.1概述 1

1.2选择正确的体系结构 1

1.3理解工具集 3

1.3.1ADO和ADO.NET的发展历程 3

1.3.2Jet和ODBC的产生 4

1.3.3数据访问对象的产生 5

1.3.4OLEDB的产生 5

1.3.5ADO.NET的产生 6

1.4了解应用程序的设计约束 7

1.4.1影响设计的因素 8

1.4.2在实现之前进行设计 10

1.5选择正确的数据访问接口 11

1.5.1选择正确的数据访问提供者 12

1.5.2SQLServerEverywhere 12

1.6选择正确的数据库管理系统 18

1.6.1SQLServer开销 18

1.6.2SQLServer的安全性 19

1.6.3性能 20

1.6.4多用户问题 26

1.6.5可伸缩性问题 27

1.6.6局限性问题 28

1.6.7客户端的限制 29

1.6.8服务器的限制 30

1.6.9维护和管理 30

1.6.10管理维护任务 31

1.6.11数据恢复的重要性 31

1.6.12管理资源 35

1.7理解基本的数据访问体系结构 36

1.7.1多层设计 36

1.7.2建立独立的应用程序 38

1.7.3基于ASPBrowser的体系结构 49

1.7.4XMLWeb服务的体系结构 50

1.8小结 50

第2章 SQLServer的工作原理 53

2.1概述 53

2.2服务器和版本 53

2.2.1SQLServer的并行执行 56

2.2.2SQLServerExpressEdition简介 56

2.2.3WorkgroupEdition简介 64

2.3安装SQLServer 64

2.4运行SQLServer服务 70

2.4.1检查SQLServer服务 70

2.4.2启动SQLServer服务 72

2.5浏览SQLServer系统数据库 73

2.5.1SQLServer实例 73

2.5.2多个实例或多个数据库? 74

2.5.3用户和系统数据库 74

2.5.4创建用户数据库 76

2.5.5管理用户数据库 76

2.6理解SQLServer的安全系统 77

2.6.1SQLServer2005中的对象 78

2.6.2系列问题:SQLServer2005对所有权的说明 81

2.6.3理解登录、用户名以及模式 82

2.7管理SQLServer的连接 87

2.7.1理解数据访问接口的角色 88

2.7.2理解协议 88

2.7.3打开连接 89

2.7.4调试连接 92

2.7.5选择连接策略 94

2.8使用SQLQueryTool 96

2.9创建SELECT查询 98

2.9.1使用表和列的别名 100

2.9.2SELECT操作简介 101

2.9.3理解WHERE子句 101

2.9.4通过参数传递字面值 102

2.9.5减少返回的行数 103

2.9.6通过WHERE子句执行JOIN操作 104

2.9.7处理特定类型的查询问题 108

2.10创建和查询视图 118

2.11实现业务规则 121

2.11.1实现具有扩展属性的业务规则 122

2.11.2通过T-SQL规则、约束和默认值实现业务规则 127

2.12User-Defined(别名)类型 129

2.13实现约束 130

2.14通过批处理文件和脚本来管理数据库和查询 132

2.15查询优化器和查询计划 133

2.15.1查看和调整查询计划 133

2.15.2检查客户统计数据和改变计划 135

2.15.3执行查询计划 138

2.16理解缓存 138

2.17执行动作命令 140

2.17.1插入新行 141

2.17.2更新行 147

2.18存储过程简介 155

2.19触发器简介 157

2.19.1创建DML触发器 157

2.19.2创建DDL触发器 158

2.20通过事务来保护数据完整性 158

2.21管理功能 159

2.21.1附加.MDF数据库文件 159

2.21.2设置AutoClose选项 161

2.21.3导入和导出数据 161

2.21.4备份SQLServer数据库 162

2.22事务日志的使用 163

2.23小结 163

第3章 关系数据库101 165

3.1概述 165

3.2建立牢固的数据库设计基础 165

3.3理解关系数据库的正规化 167

3.4创建表、行和列 169

3.4.1SQLServer针对关系数据库的存储方式 169

3.4.2选择正确的数据类型 178

3.5小结 183

第4章 VisualStudio入门 185

4.1概述 185

4.2我的经历 185

4.3安装正确版本的VisualStudio 186

4.3.1处理CTP或Beta版本 187

4.3.2典型的安装过程 187

4.3.3安装MSDN文档 191

4.4启动VisualStudio 192

4.5定制VisualStudio2005 193

4.5.1保存和加载自定义的配置 195

4.5.2创建自定义的项目模板 197

4.5.3联机配置或本地帮助 202

4.6配置服务器(或数据库)管理器 202

4.6.1通过ServerExplorer创建新的数据库 203

4.6.2在代码中创建新的数据库 205

4.7创建和管理数据库连接 205

4.8通过ServerExplorer管理数据库对象 212

4.9通过查询设计器管理查询 222

4.9.1熟悉QueryDesigner 222

4.9.2QueryDesigner窗格 223

4.9.3派生表的定义 225

4.9.4修改查询类型 225

4.9.5QueryDesigner(查询设计器)——重述 232

4.10通过ServerExplorer来查看同义词 233

4.11通过ServerExplorer管理类型 234

4.12使用ServerExplorer管理汇编 237

4.13使用ServerExplorer管理服务器 237

4.14小结 240

第5章 用ServerExplorer管理可执行程序 241

5.1概述 241

5.2创建和编辑存储过程 241

5.2.1比较SQLServer2005和VisualStudio2005 242

5.2.2进入SQLServerManagementStudioExpress 243

5.3创建新存储过程 243

5.4用RunSelection执行T-SQL 250

5.5调试存储过程 250

5.5.1针对本地实例的T-SQL调试 251

5.5.2在存储过程中用断点调试 253

5.6在远程实例上调试存储过程 255

5.7从代码调试存储过程 258

5.8使用ServerExplorer管理函数 260

5.9小结 268

第6章 构建数据源、数据集和表适配器 269

6.1概述 269

6.2创建YADAI的原因 270

6.3强类型数据是否重要 271

6.4什么是数据源 272

6.5什么是TableAdapter 275

6.6TableAdapter中缺少什么 276

6.7创建基于数据库的数据源 277

6.8配置TableAdapter 283

6.8.1添加参数到查询中 289

6.8.2选择查询方法进行生成 291

6.9使用拖放绑定TableAdapter 294

6.9.1定制生成的UI 296

6.9.2使用SmartTag管理绑定控件 297

6.9.3绑定到Details 298

6.9.4绑定到自定义控件 298

6.10不通过拖放直接使用TableAdapter 299

6.11在DataSourceDesigner中管理DataTable类 300

6.11.1设置DataTable属性 300

6.11.2生成的窗体代码 301

6.12在应用程序间移动数据源 301

6.13创建Web服务数据源 302

6.13.1什么是Web服务 302

6.13.2构造一个示例Web服务 304

6.13.3使用和测试Web服务 310

6.13.4在UI中提供Web服务数据源 312

6.14小结 313

第7章 管理数据工具和数据绑定 315

7.1概述 315

7.2漫游VisualStudioToolbox 316

7.2.1提供废弃的数据访问控件 317

7.2.2找到正确的控件 318

7.2.3理解ToolTray 319

7.3使用DatasetToolbox元素 319

7.4数据绑定 321

7.5使用BindingSource类 326

7.5.1使用EndEdit和CancelEdit方法 331

7.5.2使用BindingSource类的数据绑定 333

7.6使用BindingNavigator控件 334

7.7使用DataGridView控件 335

7.8使用ProgressBar控件 337

7.9小结 338

第8章 ADO.NET入门 339

8.1概述 339

8.2数据访问的挑战 339

8.3ADO.NET总览 340

8.4使用VisualStudioObjectBrowser研究ADO.NET 342

8.4.1用ClassDiagram研究ADO.NET 343

8.4.2解释名称空间 345

8.4.3对类名称的处理 346

8.4.4使用简写来寻址类 346

8.5实例化ADO.NET对象 347

8.5.1理解代码的作用域 347

8.5.2理解对象实例化 349

8.5.3VisualBasic.NET中的Using代码块 350

8.6研究System.Data.SqlClient名称空间 351

8.7研究SqlClient名称空间 352

8.8研究System.Data名称空间 359

8.8.1解释System.Data命名约定 359

8.8.2理解System.Data.DataSet和DataTable对象 360

8.8.3是否使用JOIN——这是个问题 370

8.9小结 371

第9章 建立连接 373

9.1概述 373

9.2连接策略——包括安全 373

9.3配置服务器及防火墙 375

9.4连接策略 380

9.4.1实时连接 380

9.4.2持久连接 381

9.4.3理解MARS及其含义 381

9.4.4为连接对象选择正确的作用域 382

9.5建立连接 383

9.6编写代码创建连接 386

9.6.1什么是ConnectionString 386

9.6.2用SqlConnectionStringBuilder类创建一个ConnectionString 386

9.6.3保护ConnectionString 388

9.6.4保存ConnectionString 388

9.6.5建立Connection对象 389

9.6.6设置服务器名称关键字 392

9.6.7为实例设置别名 393

9.6.8重访问其他关键字 395

9.6.9配置连接池关键字的值 396

9.7理解并管理连接池 397

9.7.1监控连接池 404

9.7.2防止连接池的溢出 405

9.8为其他提供者建立ConnectionString 406

9.9使用VisualStudio建立ConnectionString 408

9.10(半)自动打开和关闭连接 411

9.11理解Connection属性 411

9.12使用Connection方法 413

9.13处理Connection事件 417

9.14管理Connection异常 418

9.14.1关于异常 419

9.14.2理解SqlException类 420

9.14.3处理异常 422

9.15小结 422

第10章 管理SqlCommand对象 423

10.1概述 423

10.2创建SqlCommand对象 423

10.2.1理解SqlCommand属性 424

10.2.2理解SqlCommand方法 429

10.2.3理解SqlCommand支持函数 433

10.3将adhoc查询集成到应用程序中 435

10.4编码参数查询 440

10.4.1插入adhoc查询 441

10.4.2理解SqlParameterCollection类 442

10.4.3理解SqlParameter类 444

10.5验证值的有效性 454

10.5.1编写代码验证值的有效性 455

10.5.2处理复杂参数设计问题 459

10.5.3理解SqLCommand事件 462

10.6执行存储过程 462

10.6.1处理OUTPUT、INPUT/OUTPUT和RETURN值参数 462

10.6.2处理行集和OUTPUT参数 464

10.7小结 466

第11章 执行SqlCommand对象 467

11.1概述 467

11.2同步执行SqlCommand对象 467

11.3了解SqlDataReader 474

11.3.1从流中取回数据 475

11.3.2从SqlDataReader流中取回元数据 480

11.3.3设计最好的SqlDataReader 481

11.4填充数据结构 481

11.4.1通过设计进行有效填充 482

11.4.2如何填充 484

11.4.3填充InfoMessage消息 485

11.4.4填充OUTPUT和RETURN值参数 486

11.4.5用DataTableLoad方法填充 487

11.4.6填充附加结果集 488

11.5异步取回行 491

11.6异步执行命令 493

11.6.1异步SqlCommand函数编码 494

11.6.2等待戈多或异步操作完成 497

11.7小结 503

第12章 更新管理 505

12.1概述 505

12.2使用向导创建更新动作命令 505

12.2.1CommandBuilder应该完成的操作 506

12.2.2并发处理——更新和插入冲突 507

12.2.3ADO.NETCommandBuilder的工作方式 509

12.2.4编码CommandBuilder 510

12.3替代更新:使用TableAdapter配置向导 512

12.3.1使用TableAdapter更新 512

12.3.2管理生成的参数 516

12.4用服务器端逻辑进行复杂的更新 518

12.4.1使用事件执行自己的更新逻辑 518

12.4.2UpdateEvents的示例 520

12.4.3管理批模式更新 525

12.5通过设计或冲突管理并发 527

12.6小结 532

第13章 管理SQLServerCLR可执行程序 535

13.1概述 535

13.1.1VisualBasic.NET开发人员的作用 535

13.1.2VisualStudio的作用 536

13.2发展CLR可执行程序技术 536

13.3CLR可执行程序适用的场合 538

13.3.1可以或应该构建的可执行程序类型 539

13.3.2预览示例 540

13.4设计CLR可执行程序 542

13.5构建第一个CLR可执行程序 542

13.6构建并部署一个CLR可执行程序 548

13.6.1准备部署一个CLR可执行函数 548

13.6.2部署过程 552

13.7建立测试环境 554

13.7.1在T-SQL中寻址CLR函数 555

13.7.2评价CLR可执行程序的性能 558

13.7.3创建表值函数 560

13.8在CLR可执行程序中处理ADO.NET 563

13.8.1使用上下文连接 563

13.8.2管理事务 565

13.8.3查询数据 565

13.8.4返回数据和消息 565

13.9编码CLR存储过程 565

13.9.1构建CLR存储过程的示例 567

13.9.2测试CLR存储过程 573

13.9.3研究余下的CountWords示例 574

13.9.4评价CLR和T-SQL的性能 575

13.10实现基本的用户定义类型CLR可执行程序 577

13.10.1编码CLRUDT 578

13.10.2调试CLRUDT 585

13.10.3使用SELECT查询UDT数据 587

13.10.4为提高性能调整自己的UDT 588

13.10.5引用并更新UDT值 589

13.10.6单步调试UDT代码 591

13.10.7验证自己的UDT数据 593

13.10.8实现UDT方法 594

13.11实现高级CLR用户定义的类型 595

13.11.1用户自定义串行化 596

13.11.2构建iTypCurrencyV2UDT 597

13.11.3测试typICurrencyV2UDT 602

13.12访问CLRUDT的其他方式 602

13.12.1引用UDT 603

13.12.2实例化UDT变量 604

13.12.3浏览LoanRequest代码 605

13.13实现CLR聚集可执行程序 606

13.13.1什么是聚集 607

13.13.2CLR聚集示例 607

13.13.3测试CLR聚集 612

13.14实现CLR触发器 612

13.14.1构建CLR触发器 613

13.14.2访问INSERTED和DELETED伪表 614

13.14.3处理更新 615

13.15高级调试 616

13.16UDT安全和IP安全 617

13.16.1提供自己的智能属性 619

13.16.2保护自己的智能属性 619

13.17小结 620

第14章 创建并管理报表 621

14.1概述 621

14.2理解报表服务和RDL 622

14.3VisualStudio2005报表 626

14.4VisualStudio2005报表工具的内容 627

14.5构建自己的第一个报表 628

14.5.1创建报表数据源 629

14.5.2展示报表 631

14.5.3配置ReportViewer控件 634

14.5.4测试报表 635

14.5.5完善报表 636

14.6深入研究ReportViewer 640

14.6.1ReportViewer属性 640

14.6.2ReportViewer的方法 642

14.6.3ReportViewer事件 642

14.6.4LocalReport类 643

14.6.5ServerReport类 644

14.7管理服务器报表 644

14.7.1呈现服务器报表 645

14.7.2管理服务器报表参数 646

14.7.3重新设置参数值 649

14.7.4有趣的ServerReport参数 649

14.7.5有趣的ServerReport方法和函数 650

14.8管理参数 650

14.8.1捕获参数 651

14.8.2报表参数 656

14.9高级报表技术 658

14.9.1管理单击报表 658

14.9.2使用SubReport报表项 662

14.9.3RDLC的组成 664

14.9.4将RDL转换为RDLC 665

14.10实现Matrix报表 666

14.10.1报表的数据考虑 666

14.10.2初始选择查询 667

14.10.3数据分组 668

14.10.4绑定Matrix报表 670

14.11小结 679

第15章 本书总结 681

附录Ⅰ安装示例和测试数据库 683

Ⅰ.1安装示例 683

Ⅰ.2安装示例数据库 683

Ⅰ.2.1附加示例数据库 684

Ⅰ.2.2为实例创建别名 685

Ⅰ.3特定章节的配置问题 686

Ⅰ.3.1第8章:ADO.NET入门 686

Ⅰ.3.2第13章:管理CLR可执行文件 686

Ⅰ.4小结 687

附录Ⅱ重新安装DACW和VisualStudio中没有的其他功能 689

附录Ⅲ监控SQLServer 691

Ⅲ1用SQLProfiler监控SQLServer 691

Ⅲ.1.1添加过滤条件 691

Ⅲ.1.2配置SQLProfiler 692

Ⅲ.1.3开始追踪 694

Ⅲ.1.4评估追踪 695

Ⅲ.1.5一些SQLProfiler提示 695

Ⅲ.2用性能计数器监控SQLServer和ADO.NET 696

Ⅲ.3小结 700

附录Ⅳ创建并管理服务器端游标 701

Ⅳ.1服务器端游标重要的原因 701

Ⅳ.2ADO.NET如何实现游标 702

Ⅳ.3如何管理服务器端游标 702

Ⅳ.4ADO.NET如何创建服务器端游标 704

Ⅳ.4.1打开、关闭和重新打开连接 704

Ⅳ.4.2创建游标 704

Ⅳ.5从游标取回数据 705

Ⅳ.6更新服务器端游标 708

Ⅳ.7小结 708