数据库原理与应用——基础、设计、实现与程序开发(SQLServer版)

数据库原理与应用——基础、设计、实现与程序开发(SQLServer版)"

作者:邵鹏鸣
ISBN:9787302146193
定价:¥25
字数:千字
页数:
出版时间:2007.03.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

    本书以一个完整的应用案例为主线,以SQL Server为工具,全面阐述了数据库技术原理及应用。全书分为7部分:第一部分讲解数据库功能及其定义;第二部分为数据库基础,主要内容为关系模型及其实现,包括SQL中的DDL(数据定义语言);第三部分为数据库设计,主要内容为实体-关系模型、实体-关系模型到数据库设计的转换和表的规范化;第四部分为实现数据库,包括创建数据库和表,表的联系及参照完整性,SQL语言和索引;第五部分为数据库对象,包括视图、存储过程、触发器和用户定义函数;第六部分为数据库管理,包括安全管理和数据库维护;第七部分为数据库应用程序开发,包括控件及UGI程序设计,使用ADO.NET进行数据库编程等内容。

    本书内容丰富、可操作性强、语言生动流畅,没有晦涩的术语,采用面向实际应用的教学方式来安排内容,使学生能够轻松愉快地掌握从事数据库领域的职业所必需的数据库技术。

    本书可作为高职高专院校计算机专业和应用型高等院校计算机专业的教材和教学参考书,也适合所有希望学习数据库技术的人员使用。

前言

前    言

  数据库技术是计算机领域中最重要的技术之一。目前,不仅在各种机型上都配有数据库管理系统,而且各行各业的信息系统,乃至Internet上的信息系统也大都离不开数据库的支持。因此数据库已成为信息社会的重要基础设施。

  近年来,随着Internet技术激动人心的发展,使得数据库应用及开发成为最热门的职业技能之一。因为数据库应用及开发的专业人才的需求量非常大,所以学习和掌握数据库技术的技能和知识是非常必要的。比较遗憾的是,在数据库的教学实践中,现有的大多数教材要么只讲理论,要么只讲一个数据库管理系统的使用方法,或者前半部分讲理论,后半部分讲一个数据库管理系统的使用方法。所有这些都会造成理论与实践的脱节,达不到应有的学习效果。而且很多教材是以Visual FoxPro或Access为工具讲解数据库的应用,远远不能满足市场和行业的需要。

  SQL Server是目前最为流行的数据库管理系统之一,它是学生在将来的工作中最可能遇到的产品,而且学生学会了SQL Server之后,很容易弄懂Access。相反,学会了Access却不一定或很难弄懂SQL Server。因此,笔者认为,在讲授数据库原理与应用时,应该从头到尾采用SQL Server来讲解知识点,这样可取到事半功倍的效果,这才是真正的理论联系实际,走向真正的实用。再者,在进行数据库应用程序开发时,行业很少采用VBA与宏进行数据库应用程序开发,而目前很多教材在讲数据库应用程序开发时,都会贯穿讲解VBA与宏。笔者认为,这与实用相违背,与市场相脱离。面对日新月异的新技术、新方法,我们必须对现有计算机课程的设置和教学内容进行调整,以适应技术进步与市场变化的需要,使教授的知识是市场上最需要的知识。

  本教材根据理论与实践并重的原则编写,采用面向实际应用的教学方式来安排内容,使学生轻松掌握从事数据库领域的职业所必需的数据库技术。本书主要特色如下:

  (1) 从应用与实用的角度出发,阐述数据库应用设计与实现。

  (2) 将理论与实践有机地融合。如在讲解数据库建模、关系模型和规范化时,不是抽象地讲解概念和原理,而是和应用实例融合在一起,用实例说明抽象的概念和原理。这样有助于学生对概念和知识点的理解和应用,同时也可激发学生的学习热情。

  (3) 新体系、新思路。无论是内容体系、教学的模式及理念等都具有一定的新意。本书的内容及体系结构使学生感到它既具有易读性又增进知识和技能,因此具有很强的实用性。

  (4) 以一个具有商业应用价值的应用实例为主线,通过任务驱动的方式展开数据库知识的讲解,在学习基本原理的同时进行实践,使学生在较轻松的气氛下掌握最重要的知识点和技能,使其成为名副其实的“理论家”和“实践家”。内容叙述深入浅出,注重培养学生的应用能力和职业技能。

  (5) 面向实际应用技术,逐步展现主题鲜明的各章内容的讲解。本书将焦点集中于重要的主题来展开充分论述,而不是肤浅地涉及许多问题,罗列许多概念和术语。

  (6) 先进性及实用性并重。本书的内容吸收了最新的实用方法及技术,讲解了UML在数据库设计中的应用,内容与实用的新技术同步。

  (7) 以技术较全面、应用很广的SQL Server作为工具,来阐述数据库技术,而不是只讲解某一特定的数据库产品,注重数据库的共同要素,做到举一反三,触类旁通。

  本书可作为高职高专院校计算机专业和应用型高等院校计算机专业的教材或教学参考书,也适合所有希望学习数据库技术的人员使用。

  由于编写本书的时间略显仓促,书中难免有错漏之处,恳请专家和读者批评指正。(pmshao@163.com),本书的源代码可在http://www.pyp.edu.cn/shaopm站点下载。如果发现书中的内容或代码有不当之处,我们会在http://www.pyp.edu.cn/shaopm站点发布勘误信息。要想与本书的作者进行交流,可加入论坛http://www.pyp.edu.cn/shaopm/forum /database/default.aspx.

  

  

编  者

II

数据库原理与应用——基础、设计、实现与程序开发(SQL Server版)

II

  

目录

目    录

第1章  数据库简介 1

1.1  数据库举例 1

1.2  数据库管理系统的概念 2

1.3  应用程序与数据库管理系统之间

的关系 2

1.4  数据库的数据结构 3

1.5  数据库的定义 3

1.6  习题 4

第2章  使用关系(表)存储用户数据 5

2.1  关系模型 5

2.1.1  关系模型的概念 5

2.1.2  关键字 6

2.1.3  域 7

2.2  列的数据类型 7

2.3  关系的实现 9

2.3.1  创建数据库 9

2.3.2  创建表 9

2.3.3  修改表 10

2.3.4  操作表的数据 11

2.4  习题 13

第3章  字段的属性和约束 15

3.1  字段的属性 15

3.1.1  默认值 15

3.1.2  精度和小数位数 17

3.1.3  标识、标识种子和标识

      递增量 17

3.1.4  ROWGUIDCOL 18

3.1.5  空 (NULL) 值 18

3.2  约束 19

3.2.1  PRIMARY KEY 约束 19

3.2.2  UNIQUE约束 20

3.2.3  CHECK约束 21

3.2.4  字段(列)约束和表约束 22

3.3  习题 23

第4章  实体-关系模型 24

4.1  实体 24

4.2  属性 24

4.2.1  简单属性和复合属性 24

4.2.2  单值属性和多值属性 24

4.2.3  派生属性 25

4.2.4  属性的域 25

4.2.5  关键字 25

4.3  关系 26

4.3.1  关系的类型 26

4.3.2  1对1关系(1:1) 26

4.3.3  1对多关系(1:*) 26

4.3.4  多对多关系(*:*) 26

4.4  实体-关系图(E-R图) 27

4.4.1  实体类的图形化表示 27

4.4.2  关系的图形化表示 27

4.4.3  属性的图形化表示 28

4.5  实例研究 30

4.5.1  标识实体类 30

4.5.2  标识实体类间的关系 30

4.5.3  标识实体的属性 33

4.6  习题 38

第5章  实体-关系模型到数据库设计

        的转换 39

5.1  将实体类转换为表 39

5.2  表的规范化 41

5.2.1  函数依赖和函数依赖传递 41

5.2.2  更新异常 42

5.2.3  规范化的本质 43

5.2.4  第一范式 43

5.2.5  第二范式 43

5.2.6  第三范式 44

5.3  表示HAS-A关系 45

5.3.1  表示1对1关系 45

5.3.2  表示1对多关系 45

5.3.3  表示多对多关系 46

5.4  实例研究 47

5.4.1  将E-R模型映射为表 47

5.4.2  对多值属性的处理 50

5.4.3  再论1对1关系 50

5.5  习题 51

第6章  创建数据库和表 52

6.1  创建数据库 52

6.1.1  理解数据库 52

6.1.2  示例 53

6.2  实例研究 55

6.3  习题 58

第7章  创建表的关系和参照完整性 59

7.1  创建表的关系 59

7.1.1  在创建表时创建外键约束 59

7.1.2  在已有的表中创建外键

      约束 60

7.2  创建参照完整性 60

7.2.1  参照完整性的含义 60

7.2.2  创建级联删除规则 61

7.2.3  创建级联更新规则 62

7.2.4  对 INSERT 和 UPDATE 

      语句忽略外键约束 62

7.3  实例研究 63

7.4  习题 66

第8章  结构化查询语言SQL 67

8.1  对单表进行查询 67

8.1.1  使用SELECT进行投影 67

8.1.2  简单条件查询 68

8.1.3  复杂条件查询 69

8.1.4  创建计算字段的查询 76

8.1.5  排序 77

8.1.6  汇总与分组查询 78

8.1.7  查询中的表达式 79

8.2  子查询 81

8.2.1  子查询的概念 81

8.2.2  使用别名的子查询 82

8.2.3  使用 EXISTS 和NOT EXISTS

      的子查询 83

8.2.4  用于替代表达式的子查询 84

8.2.5  UPDATE、DELETE语句中的

      子查询 84

8.3  联接查询 84

8.4  实例研究 89

8.5  习题 92

第9章  索引 94

9.1  什么是索引 94

9.2  索引的分类 95

9.2.1  聚集索引 95

9.2.2  非聚集索引 96

9.2.3  惟一索引 96

9.3  创建与删除索引 96

9.3.1  在现有表上创建索引 96

9.3.2  在创建表时创建索引 97

9.3.3  删除索引 98

9.4  使用索引 98

9.4.1  使用聚集索引 98

9.4.2  使用非聚集索引 99

9.4.3  使用惟一索引 99

9.5  实例研究 99

9.6  习题 100

第10章  视图 101

10.1  视图综述 101

10.1.1  视图的概念 101

10.1.2  视图的作用 102

10.2  创建视图 102

10.2.1  创建简单视图 103

10.2.2  具有计算字段的视图 103

10.2.3  创建视图字段的别名 104

10.2.4  加密视图 104

10.2.5  具有数据约束的视图 105

10.3  修改和重命名视图 105

10.3.1  修改视图 105

10.3.2  重命名视图 106

10.4  通过视图修改数据 106

10.5  视图和查询的比较 106

10.6  实例研究 107

10.7  习题 109

第11章  存储过程 110

11.1  存储过程概述 110

11.2  创建简单的存储过程 110

11.3  创建带参数的存储过程 111

11.3.1  创建使用参数的简单

       存储过程 111

11.3.2  创建使用参数默认值的

       存储过程 112

11.3.3  使用包含通配符的参数

       默认值创建存储过程 114

11.3.4  创建使用OUTPUT参数

       返回数据的存储过程 114

11.4  在存储过程中调用其他存储

 过程 115

11.5  执行存储过程 116

11.6  实例研究存储过程分析 116

11.7  习题 124

第12章  触发器和用户定义函数 125

12.1  触发器种类 125

12.1.1  AFTER 触发器 125

12.1.2  INSTEAD OF 触发器 125

12.2  创建触发器 125

12.2.1  创建AFTER 触发器 126

12.2.2  查看触发器 126

12.2.3  Inserted和Deleted表 126

12.2.4  AFTER 触发器应用示例 127

12.3  创建INSTEAD OF 触发器 129

12.4  触发器与约束的比较 131

12.5  修改和重命名触发器 132

12.5.1  修改触发器 132

12.5.2  重命名触发器 132

12.5.3  删除触发器 133

12.6  实例研究 133

12.6.1  触发器应用分析 133

12.6.2  用户定义函数 135

12.7  习题 138

第13章  安全管理 139

13.1  安全性示例 139

13.2  创建登录账户 140

13.2.1  用 Windows 账户访问

       数据库 140

13.2.2  在SQL Server 中创建SQL 

       Server 登录名 141

13.3  用户 141

13.4  授予权限 143

13.5  角色 146

13.5.1  创建角色 147

13.5.2  给角色授权 147

13.5.3  向数据库角色添加用户 148

13.5.4  将成员添加到固定服务器

       角色 150

13.6  习题 150

第14章  数据库维护 151

14.1  备份 151

14.1.1  概述 151

14.1.2  创建数据库备份 152

14.1.3  差异数据库备份 153

14.1.4  事务日志备份 154

14.2  还原 155

14.2.1  还原数据库备份 155

14.2.2  还原差异数据库备份 156

14.2.3  还原事务日志备份 157

14.3  附加和分离数据库 158

14.3.1  分离数据库 158

14.3.2  附加数据库 159

14.4  习题 160

第15章  控件及GUI程序设计 161

15.1  Connection和Command对象 161

15.1.1  Connection 对象 161

15.1.2  Command 对象 164

15.2  创建三层应用程序——雇员信息

 管理应用程序 166

15.2.1  创建项目和窗体 167

15.2.2  创建问题域类:

       Employee类 167

15.2.3  创建用户界面 171

15.2.4  创建数据存取类:

       EmployeeDA类 173

15.2.5  编写GUI(图形用户界面)

       代码 184

15.3  PictureBox(图片框)控件 188

15.3.1  PictureBox的常用属性 192

15.3.2  PictureBox的常用事件 193

15.3.3  Image.FromFile方法 193

15.4  组合框控件和文本框控件 193

15.4.1  ComboBox的常用属性

       和方法 200

15.4.2  列表框控件的常用事件 202

15.4.3  TextBox的常用属性 203

15.4.4  TextBox的常用事件 205

15.5  列表框 205

15.5.1  列表框控件的常用属性 220

15.5.2  列表框控件的常用方法 221

15.5.3  列表框控件的常用事件 223

15.6  习题 223

第16章  使用ADO.NET进行数据库

         编程 225

16.1  数据表DataTable 225

16.2  数据集和数据适配器 237

16.2.1  将数据集绑定到DataGrid 

       控件 257

16.2.2  行状态与行版本 260

16.3  Windows窗体中的数据绑定 261

16.3.1  简单绑定控件属性 262

16.3.2  使用CurrencyManager 268

16.4  创建和使用数据视图 269

16.4.1  使用数据库视图查询

       数据 269

16.4.2  数据视图的常用属性

       及方法 274

16.5  DataRelation 对象 276

16.5.1  实例:产品类别信息管理 276

16.5.2  导航表间关系 280

16.6  习题 281

参考文献 282

IV

数据库原理与应用——基础、设计、实现与程序开发(SQL Server版)

VI

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个