数据库原理与应用(SQL Server)
作者:赵明渊主编
出版时间:2019年版
内容简介
本书以关系数据库管理系统SQL Server 2014作为平台,以商店销售数据库作为主线,全面系统地介绍了数据库原理、数据库系统和数据管理新技术。数据库原理部分包括数据库概述、关系数据库、关系数据库规范化理论和数据库设计;数据库系统部分包括SQL Server数据库基础、创建数据库和创建表、数据定义语言和数据操纵语言、数据查询语言、索引和视图、数据完整性、数据库程序设计、数据库编程技术、事务和锁、系统安全管理、备份和恢复、基于Visual C#和SQL Server数据库的学生管理系统的开发;数据管理新技术部分包括大数据和云计算。本书可作为高等院校计算机及相关专业的教学用书,为读者提供习题答案、教学课件、所有实例的源代码。
目录
第1章 数据库概述 1
1.1 数据库系统概述 1
1.1.1 数据库 1
1.1.2 数据库管理系统 1
1.1.3 数据库系统 2
1.2 数据管理技术的发展 3
1.3 数据库系统结构 4
1.3.1 数据库系统的三级模式结构 5
1.3.2 数据库的二级映射功能和数据
独立性 5
1.3.3 数据库管理系统的工作过程 6
1.4 数据模型 7
1.4.1 两类数据模型 7
1.4.2 概念模型 8
1.4.3 数据模型组成要素 11
1.4.4 常用的数据模型 11
1.5 小结 12
习题1 13
第2章 关系数据库 15
2.1 关系模型 15
2.1.1 关系数据结构 15
2.1.2 关系操作 18
2.1.3 关系的完整性 19
2.2 关系代数 21
2.2.1 传统的集合运算 21
2.2.2 专门的关系运算 23
2.3 关系演算 28
2.3.1 元组关系演算 28
2.3.2 域关系演算 30
2.4 SQL简介 32
2.4.1 SQL语言分类 32
2.4.2 SQL语言的特点 32
2.4.3 SQL语言的发展历程 33
2.5 小结 34
习题2 34
第3章 关系数据库规范化理论 37
3.1 关系数据库设计理论概述 37
3.2 规范化 39
3.2.1 函数依赖、码和范式 39
3.2.2 1NF 41
3.2.3 2NF 42
3.2.4 3NF 43
3.2.5 BCNF 44
3.2.6 多值依赖与4NF 46
3.2.7 规范化小结 48
3.3 数据依赖的公理系统 48
3.3.1 Armstrong公理系统 48
3.3.2 闭包及其计算 49
3.3.3 确定候选码 51
3.3.4 函数依赖集的等价和最小函数
依赖集 52
3.4 关系模式的分解 53
3.4.1 模式分解的定义 53
3.4.2 分解的无损连接性 54
3.4.3 分解的保持依赖性 55
3.4.4 模式分解的算法 56
3.5 小结 57
习题3 57
第4章 数据库设计 60
4.1 数据库设计概述 60
4.2 需求分析 63
4.3 概念结构设计 65
4.3.1 概念结构的特点和设计步骤 65
4.3.2 局部E-R模型设计 66
4.3.3 全局E-R模型设计 67
4.4 逻辑结构设计 69
4.4.1 逻辑结构设计的步骤 69
4.4.2 E-R模型向关系模型的转换 69
4.4.3 数据模型的优化和设计外模式 72
4.5 物理结构设计 73
4.6 数据库实施 74
4.7 数据库运行和维护 75
4.8 应用举例 75
4.9 小结 76
习题4 77
第5章 SQL Server数据库基础 80
5.1 SQL Server 的发展历史和版本 80
5.2 SQL Server 2014的新特点 81
5.3 SQL Server 2014的安装 81
5.3.1 SQL Server 2014安装要求 81
5.3.2 SQL Server 2014安装步骤 81
5.4 服务器组件和管理工具 85
5.4.1 服务器组件 85
5.4.2 管理工具 85
5.5 SQL Server Management Studio环境 86
5.6 小结 88
习题5 88
第6章 创建数据库和创建表 89
6.1 SQL Server数据库概述 89
6.1.1 逻辑数据库 89
6.1.2 物理数据库 91
6.2 创建SQL Server数据库 92
6.2.1 创建数据库 92
6.2.2 修改数据库 93
6.2.3 删除数据库 95
6.3 SQL Server表概述 95
6.3.1 表和表结构 95
6.3.2 数据类型 96
6.3.3 表结构设计 101
6.4 创建SQL Server表 101
6.4.1 创建表 101
6.4.2 修改表 103
6.4.3 删除表 104
6.5 操作SQL Server表数据 105
6.6 小结 106
习题6 107
第7章 数据定义语言和数据操纵
语言 110
7.1 T-SQL概述 110
7.1.1 T-SQL的语法约定 110
7.1.2 在SQL Server Management Studio
中执行T-SQL语句 110
7.2 数据定义语言 112
7.2.1 数据定义语言用于数据库 112
7.2.2 数据定义语言用于表 116
7.3 数据操纵语言 119
7.3.1 插入语句 119
7.3.2 修改语句 120
7.3.3 删除语句 121
7.4 小结 121
习题7 121
第8章 数据查询语言 123
8.1 基本查询 123
8.1.1 SELECT子句 123
8.1.2 FROM子句 125
8.1.3 WHERE子句 127
8.1.4 ORDER BY子句 130
8.2 统计计算 130
8.2.1 聚合函数 131
8.2.2 GROUP BY子句 132
8.2.3 HAVING子句 132
8.3 连接查询 133
8.3.1 连接谓词 133
8.3.2 JOIN连接 135
8.4 嵌套查询 137
8.4.1 IN子查询 138
8.4.2 比较子查询 139
8.4.3 EXISTS子查询 139
8.5 其他查询子句 140
8.5.1 UNION 140
8.5.2 EXCEPT和INTERSECT 141
8.5.3 INTO子句 142
8.5.4 CTE子句 142
8.5.5 TOP谓词 144
8.6 应用举例 145
8.7 小结 146
习题8 147
第9章 索引和视图 150
9.1 索引概述 150
9.1.1 索引的基本概念 150
9.1.2 索引的分类 150
9.2 索引的操作 151
9.2.1 创建索引 151
9.2.2 查看和修改索引属性 155
9.2.3 索引的删除 156
9.3 视图概述 157
9.3.1 视图的基本概念 158
9.3.2 视图类型 158
9.4 视图的操作 158
9.4.1 创建视图 159
9.4.2 查询视图 161
9.4.3 修改视图定义 163
9.4.4 删除视图 165
9.5 更新视图 165
9.5.1 可更新视图 165
9.5.2 插入数据 166
9.5.3 修改数据 167
9.5.4 删除数据 167
9.6 小结 168
习题9 169
第10章 数据完整性 172
10.1 数据完整性概述 172
10.2 约束 173
10.2.1 PRIMARY KEY约束 173
10.2.2 UNIQUE约束 176
10.2.3 FOREIGN KEY约束 178
10.2.4 CHECK约束 184
10.2.5 DEFAULT约束 186
10.3 应用举例 187
10.4 小结 190
习题10 191
第11章 数据库程序设计 193
11.1 数据类型 193
11.1.1 系统数据类型 193
11.1.2 用户自定义数据类型 193
11.1.3 用户自定义表数据类型 196
11.2 标识符、常量、变量 196
11.2.1 标识符 196
11.2.2 常量 197
11.2.3 变量 198
11.3 运算符与表达式 200
11.3.1 算术运算符 201
11.3.2 位运算符 201
11.3.3 比较运算符 201
11.3.4 逻辑运算符 202
11.3.5 字符串连接运算符 202
11.3.6 赋值运算符 203
11.3.7 一元运算符 203
11.3.8 运算符优先级 203
11.4 批处理 203
11.4.1 批处理的指定和使用规则 204
11.4.2 GO命令 204
11.5 流程控制语句 206
11.5.1 BEGIN…END语句块 206
11.5.2 条件语句 207
11.5.3 循环语句 208
11.5.4 无条件转移语句 209
11.5.5 返回语句 210
11.5.6 等待语句 210
11.5.7 错误处理语句 210
11.6 系统内置函数 211
11.7 小结 218
习题11 219
第12章 数据库编程技术 221
12.1 存储过程 221
12.1.1 存储过程概述 221
12.1.2 存储过程的创建 222
12.1.3 存储过程的执行 224
12.1.4 存储过程的参数 226
12.1.5 存储过程修改和删除 228
12.2 触发器 230
12.2.1 触发器概述 230
12.2.2 创建DML触发器 231
12.2.3 使用DML触发器 234
12.2.4 创建和使用DDL触发器 237
12.2.5 触发器的管理 238
12.3 用户定义函数 242
12.3.1 用户定义函数概述 242
12.3.2 用户定义函数的定义和调用 242
12.3.1 用户定义函数概述 247
12.3.2 用户定义函数的定义和调用 247
12.3.3 用户定义函数的删除 248
12.4 游标 249
12.4.1 游标概述 249
12.4.2 游标的基本操作 249
12.5 应用举例 253
12.6 小结 257
习题12 258
第13章 事务和锁 261
13.1 事务 261
13.1.1 事务原理 261
13.1.2 事务类型 261
13.1.3 事务模式 262
13.1.4 事务处理语句 262
13.2 锁定 267
13.2.1 并发影响 267
13.2.2 可锁定资源和锁模式 267
13.2.3 死锁 269
13.3 小结 269
习题13 270
第14章 系统安全管理 272
14.1 SQL Server安全机制和身份验证
模式 272
14.1.1 SQL Server安全机制 272
14.1.2 SQL Server验证模式 273
14.2 服务器登录名管理 273
14.2.1 创建登录名 273
14.2.2 修改登录名 275
14.2.3 删除登录名 276
14.3 数据库用户管理 276
14.3.1 创建数据库用户 276
14.3.2 修改数据库用户 279
14.3.3 删除数据库用户 279
14.4 角色 280
14.4.1 服务器角色 280
14.4.2 数据库角色 283
14.5 权限管理 287
14.5.1 登录名权限管理 287
14.5.2 数据库用户权限管理 289
14.6 应用举例 292
14.7 小结 294
习题14 294
第15章 备份和恢复 297
15.1 备份和恢复概述 297
15.2 创建备份设备 298
15.2.1 使用T-SQL语句创建临时备份
设备 298
15.2.2 使用存储过程创建和删除命名
备份设备 298
15.2.3 使用图形界面方式创建和删除
命名备份设备 299
15.3 备份数据库 301
15.3.1 使用T-SQL语句备份数据库 301
15.3.2 使用图形界面方式备份
数据库 303
15.4 恢复数据库 305
15.4.1 使用T-SQL语句恢复数据库 305
15.4.2 使用图形界面方式恢复
数据库 307
15.5 复制数据库 309
15.6 分离和附加数据库 311
15.6.1 分离数据库 311
15.6.2 附加数据库 311
15.7 小结 313
习题15 314
第16章 大数据和云计算 316
16.1 大数据概述 316
16.2 云计算概述 318
16.3 云数据库 320
16.4 NoSQL数据库 322
16.5 Microsoft Azure SQL Database 324
16.5.1 申请试用Microsoft Azure 324
16.5.2 进入Microsoft Azure管理
门户 325
16.5.3 使用Microsoft Azure管理门户
创建Azure SQL数据库 325
16.5.4 使用集成开发环境管理Azure
SQL数据库 327
16.6 小结 331
习题16 332
第17章 基于Visual C#和SQL
Server数据库的学生管理
系统的开发 334
17.1 学生管理系统的数据库和表 334
17.2 新建项目和窗体 334
17.3 父窗体设计 336
17.4 学生信息录入 338
17.5 学生信息查询 341
17.6 学生信息管理 344
17.7 学生管理系统的启动 345
17.8 小结 345
习题17 345
附录A 习题参考答案 347
第1章 数据库概述 347
第2章 关系数据库 347
第3章 关系数据库规范化理论 349
第4章 数据库设计 350
第5章 SQL Server数据库基础 351
第6章 创建数据库和创建表 352
第7章 数据定义语言和数据操纵语言 352
第8章 数据查询语言 354
第9章 视图和索引 356
第10章 数据完整性 359
第11章 数据库程序设计 361
第12章 数据库编程技术 363
第13章 事务和锁 369
第14章 系统安全管理 370
第15章 备份和恢复 372
第16章 大数据和云计算 372
第17章 基于Visual C#和 SQL Server
数据库的学生管理系统的开发 373
附录B StoreSales数据库的表
结构和样本数据 374
附录C StudentScore数据库的
表结构和样本数据 377
参考文献 379