描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302521488丛书名: 21世纪高等学校计算机专业实用规划教材
产品特色
编辑推荐
? 理论&实战,项目案例精讲
? 例题、习题选材精良,与软考、考研紧密结合
? 配套资源丰富:课件PPT、习题答案、教学大纲、源代码
? 例题、习题选材精良,与软考、考研紧密结合
? 配套资源丰富:课件PPT、习题答案、教学大纲、源代码
内容简介
本书既介绍了经典的数据库理论及设计方法,又展示了目前应用广泛的开源数据库管理系统MySQL的实际操作,*后又给出了一个侧重数据库设计过程的应用系统开发实例,打通了从理论到具体DBMS应用再到实例开发的三个重要环节。为初学者打牢理论基础的同时,又梳理了数据库应用程序开发的重要环节,帮助不同基础的读者快速理解数据库技术及应用程序开发流程,方便其选择不同领域继续深造。
目 录
第1章 数据库概论 1
1.1 数据管理技术的发展阶段与数据库技术概念 1
1.1.1 数据管理技术的三个发展阶段 1
1.1.2 数据库管理阶段产生的三大新技术 4
1.1.3 数据库系统的主要特点 4
1.1.4 数据库技术中的几个主要名称 5
1.2 数据库技术的新发展 7
1.2.1 数据库技术研究的主要领域 7
1.2.2 数据库技术的新发展 8
小结 13
习题 14
第2章 数据库系统结构 16
2.1 数据模型 16
2.1.1 数据描述 16
2.1.2 数据模型的定义和组成结构数据模型的三要素 17
2.1.3 实体-联系模型简述 19
2.1.4 结构数据模型 22
2.2 数据库系统结构 26
2.2.1 数据库系统的三级模式结构 27
2.2.2 数据库的二级映像功能与数据独立性 28
2.2.3 数据库管理系统的工作过程 29
小结 30
习题 30
第3章 关系运算 33
3.1 关系数据模型 33
3.1.1 关系数据模型的定义 33
3.1.2 关键码和表之间的联系 35
3.1.3 关系模式 36
3.1.4 关系模型的完整性规则 37
3.2 关系运算 39
3.2.1 关系查询语言和关系运算 39
3.2.2 关系代数运算符的分类 40
3.2.3 传统的集合运算 41
3.2.4 专门的关系运算 43
3.2.5 关系代数表达式应用举例 48
3.2.6 扩充的关系代数操作 50
3.3 关系代数表达式的查询优化 52
小结 58
习题 58
第4章 标准查询语言SQL 61
4.1 SQL概述及其数据定义 61
4.1.1 SQL的基本概念及其特点 61
4.1.2 SQL的数据定义 63
4.1.3 SQL对索引的创建与删除 66
4.2 SQL的数据查询 67
4.2.1 SELECT命令的格式及其含义 68
4.2.2 单表查询 68
4.2.3 多表间联接和合并查询 76
4.2.4 嵌套查询 78
4.2.5 保存查询结果及分步查询 82
4.3 SQL的数据更新与视图 83
4.3.1 插入数据 83
4.3.2 修改数据 85
4.3.3 删除数据 86
4.3.4 视图创建、删除与更新 87
4.3.5 SQL数据控制 89
小结 89
习题 89
第5章 关系数据库的规范化设计 93
5.1 关系模式的设计问题 93
5.1.1 概述 93
5.1.2 关系模式存在的问题 93
5.2 规范化理论 96
5.2.1 函数依赖 96
5.2.2 码 98
5.2.3 范式 99
5.3 Armstrong公理系统 105
5.3.1 Armstrong公理系统推理规则 105
5.3.2 属性集的闭包 106
5.3.3 小函数依赖集 106
5.3.4 规范化模式设计的三个原则 107
小结 110
习题 111
第6章 E-R模型的设计方法 114
6.1 E-R模型的基本元素 114
6.2 属性的基本分类 116
6.2.1 属性类别分类 116
6.2.2 属性取值特点分类 116
6.3 联系的设计方法 118
6.4 E-R模型的扩充 121
6.5 E-R模型实例介绍 123
小结 126
习题 127
第7章 关系数据库的设计方法 129
7.1 数据库设计概述 129
7.1.1 数据库设计的内容 129
7.1.2 数据库设计的特点 130
7.1.3 数据库设计的方法简述 130
7.1.4 数据库设计的步骤 131
7.1.5 数据库应用系统生命周期 134
7.2 数据库系统的需求分析 135
7.2.1 需求分析的任务 135
7.2.2 需求分析的方法 135
7.2.3 数据字典 136
7.2.4 数据流图 137
7.3 概念结构设计 138
7.3.1 概念结构设计的特点 138
7.3.2 概念结构设计的方法与步骤 139
7.3.3 数据抽象与局部视图设计 140
7.3.4 全局E-R模型设计 142
7.4 数据库系统的逻辑设计 146
7.4.1 逻辑结构设计的任务和步骤 146
7.4.2 E-R图向关系模型的转换 147
7.4.3 数据模型的优化 148
7.5 数据库的物理设计 148
7.5.1 确定物理结构 149
7.5.2 确定数据库的存储结构 150
7.5.3 评价物理结构 150
7.6 数据库的实现 150
7.6.1 建立实际数据库结构 150
7.6.2 数据的载入和应用程序的调试 150
7.6.3 编制与调试应用程序 151
7.6.4 数据库的试运行 151
7.7 数据系统的运行和维护 152
小结 153
习题 153
第8章 数据库管理 156
8.1 数据库中事务的概念 156
8.2 数据库的恢复 157
8.2.1 事务的故障 157
8.2.2 数据库恢复的基本原理及实现技术 158
8.2.3 故障恢复策略 160
8.3 数据库的并发控制 160
8.3.1 并发控制概述 161
8.3.2 封锁及其解决问题的办法 162
8.4 数据库的完整性 167
8.4.1 数据库完整性约束条件的分类 167
8.4.2 数据库完整性控制 168
8.5 数据库的安全性 169
小结 171
习题 171
第9章 SQL Server 2012数据库管理系统介绍 174
9.1 SQL Server 2012概述 174
9.1.1 什么是SQL Server 2012 174
9.1.2 SQL Server 2012的版本 175
9.1.3 SQL Server 2012的主要组件与实用程序 176
9.2 数据库的创建及其管理 182
9.2.1 系统数据库 182
9.2.2 使用SQL Server Management Studio创建数据库 183
9.2.3 使用SQL Server Management Studio查看数据库信息 185
9.2.4 使用SQL Server Management Studio修改数据库 186
9.2.5 使用SQL Server Management Studio删除数据库 189
9.2.6 使用SQL Server Management Studio分离数据库 190
9.2.7 使用SQL Server Management Studio附加数据库 190
9.3 数据表的创建及其管理 192
9.3.1 SQL Server数据类型 192
9.3.2 使用SQL Server Management Studio创建数据表 193
9.3.3 使用SQL Server Management Studio查看数据表 194
9.3.4 使用SQL Server Management Studio修改数据表 195
9.3.5 使用SQL Server Management Studio删除数据表 199
9.4 数据的添加、修改、删除和查询 199
9.4.1 使用SQL Server Management Studio添加数据 199
9.4.2 使用SQL Server Management Studio修改数据 199
9.4.3 使用SQL Server Management Studio删除数据 200
9.4.4 使用SQL Server Management Studio查询数据 200
9.5 数据完整性 202
9.5.1 SQL Server 2012完整性概述 202
9.5.2 主键约束 203
9.5.3 规则 204
9.5.4 默认 207
9.5.5 数据库关系图 209
9.6 视图 212
9.6.1 视图设计窗口 212
9.6.2 使用SQL Server Management Studio创建视图 213
9.6.3 使用SQL Server Management Studio查看及修改视图 215
9.6.4 使用SQL Server Management Studio删除视图 216
9.7 数据库备份与还原 216
9.7.1 使用命令语句备份和还原数据库 216
9.7.2 使用SQL Server Management Studio备份数据库 218
9.7.3 使用SQL Server Management Studio还原数据库 221
9.7.4 使用SQL Server Management Studio导入/导出数据表 223
小结 229
习题 229
第10章 SQL Server编程 232
10.1 嵌入式SQL 232
10.1.1 嵌入式SQL介绍 232
10.1.2 C#平台下的嵌入式SQL 233
10.1.3 Java平台下的嵌入式SQL 236
10.2 过程化SQL 239
10.2.1 常量 239
10.2.2 变量 240
10.2.3 SQL流程控制 241
10.3 程序中的批处理、脚本、注释 246
10.3.1 批处理 246
10.3.2 脚本 248
10.3.3 注释 248
10.4 存储过程 249
10.4.1 存储过程概述 249
10.4.2 存储过程的类型 250
10.4.3 创建、执行、修改、删除简单存储过程 250
10.4.4 创建和执行含参数的存储过程 256
10.4.5 存储过程的重新编译 256
10.4.6 系统存储过程与扩展存储过程 257
10.5 触发器 257
10.5.1 触发器的概念与作用 257
10.5.2 触发器的种类 258
10.5.3 触发器的创建 258
10.5.4 触发器的修改 260
10.5.5 触发器的删除 260
小结 261
习题 261
第11章 数据库应用系统开发实训 264
11.1 系统需求分析 264
11.2 系统功能结构图 265
11.3 系统数据流图 265
11.4 系统E-R图设计 266
11.5 系统数据库设计 266
11.6 系统实现 267
11.6.1 公共类的设计与实现 267
11.6.2 登录模块的设计与实现 270
11.6.3 管理员主窗体设计与实现 272
11.6.4 用户主窗体设计与实现 285
小结 290
习题 290
附录A 上机实验 291
实验1 SQL Server 2012数据库的建立与维护 291
实验2 利用SQL创建数据库表及其索引 292
实验3 利用SQL语句对数据库表的单表查询 294
实验4 利用SQL语句对数据库表的多表查询 295
实验5 利用SQL语句对数据库表的数据更新及视图操作 296
实验6 利用Visio软件制作E-R模型 297
实验7 SQL Server 2012数据库表及其关系图的建立、规则和默认的设置 297
实验8 SQL Server 2012数据库表的查询和视图建立 299
实验9 SQL Server 2012数据库的备份和还原 300
实验10 存储过程与触发器的实现 301
附录B SQL Server 2012常用的系统函数及使用 303
参考文献 312
前 言
数据库技术是20世纪60年代兴起的一门综合性数据库管理技术,也是信息管理中一项非常重要的技术。随着计算机及网络技术的快速发展与应用,数据库技术得到日益广泛的应用。
“数据库原理与应用”这门课程是计算机有关专业的主干课程,对于这门课程的教学历来重理论轻实践,学生学完后,总感觉没有学到什么知识,对于书本的理论知识也是似懂非懂,不知如何把理论知识应用到实际的程序设计中。针对这种情况,本书加强了实践教学内容,特别强调了数据库的实际操作知识和利用嵌入式SQL开发数据库应用系统知识。在讲述理论知识时尽量多讲实例,避免枯燥无味的纯理论教学。本书除了每章有大量实例外,后还有配套的上机实验内容,以便于学生更好地学习与掌握数据库的基本知识与技能。
本书共分为11章。第1章数据库概论;第2章数据库系统结构;第3章关系运算;第4章标准查询语言SQL;第5章关系数据库的规范化设计;第6章E-R模型的设计方法;第7章关系数据库的设计方法;第8章数据库管理;第9章SQL Server 2012数据库管理系统介绍;第10章SQL Server编程;第11章数据库应用系统开发实训。
本书由南昌大学科学技术学院计算机系组织,由多年从事“数据库原理与应用”一线教学、具有丰富教学经验和实践经验的教师编写。其中,熊婷编写了第1~4章、第10章和附录B,邹璇编写了第5、6章和第11章,王钟庄编写了第7~9章和附录A、附录B中的部分内容。另外,张炘、梅毅、邓伦丹、罗少彬、兰长明、周权来、罗丹、李昆仑、汪滢、吴赟婷、张剑、罗婷等为本书的编写做了大量的辅助工作,并提出了许多宝贵意见。尽管大家在编写本书时花费了大量的时间和精力,但由于水平有限,书中疏漏和不当之处在所难免,敬请各位读者批评指出,以便再版时改正。
本书在编写过程中,得到南昌大学科学技术学院及各部门领导和清华大学出版社的大力支持,对此我们表示衷心感谢!
编 者
2018年9月
在线试读
关系数据库的规范化设计
关系数据库的规范化设计是关系数据库原理中的主要理论之一,它与第3章的关系运算知识一起,构成了关系数据库重要的、严密的数学理论基础。
关系数据库的规范化设计理论主要包含数据依赖、范式和规范化设计理论三部分内容。其中,数据依赖是核心,范式是规范化设计的标准。数据库设计的一个基本问题就是如何建立一个好的数据模式,而规范化设计理论则是指导数据模式设计的标准。因此,规范化设计对关系数据库的结构设计起着非常重要的作用。本章重点介绍数据依赖中的函数依赖以及范式的判定方法。
5.1 关系模式的设计问题
关系模式是关系数据库的型,是关系数据库中重要的内容之一。设计出一个规范的关系模式,可以尽可能地消除关系数据库中的数据冗余,解决数据库操作中插入、修改和删除异常的问题。
5.1.1 概述
关系数据库的鼻祖——E.F.Codd从 1971年起,提出了关系数据库的规范化理论,后经过很多专家和学者的不断研究和发展,规范化理论研究已经取得很多的成果,使数据库设计的方法逐步走向完备。在此理论提出以前,层次和网状数据库的设计没有严密的数学理论依据,只是依照其模型自身的特点和原则来设计,其结果可能会给日后的运行和使用带来一些不可预见的问题。关系数据库中关系模型有严格的数学理论基础,又可以向其 他的数据模型转换,因此设计一个好的关系模型需要依托规范化理论这个强有力的设计 工具。
数据库设计的一个基本问题是如何建立一个好的数据库模式,使数据库系统无论是在数据存储方面,还是在数据操作方面都有较好的性能。针对一个具体问题,应该如何构造一个适合于它的数据模式,也就是应该构造几个关系模式,每个关系模式又由哪些属性构成,如何将这些相互关联的关系模式构建成一个适合的关系模型,这是关系数据库逻辑设计所要解决的问题。这就要求关系数据库的设计必须遵循关系数据库的规范化理论。
5.1.2 关系模式存在的问题
想要设计一个相对较好的关系数据库,规范化理论是必须遵循的。关系数据库的设计重要的是关系模式的设计,那么什么是一个较好的关系模式?一个不好的关系模式又会存在什么样的问题?
【例5.1】 要求设计学生-课程数据库,其关系模式如下:SDC(SNO,SNAME,AGE,DEPT,DEAN,CNAME,SCORE),其中,SNO为学号,SNAME为姓名,AGE为年龄,DEPT为系别,DEAN为系主任,CNAME为课程名,SCORE为成绩。具体内容如表5.1所示。
根据实际情况,这些数据有如下语义规定。
(1)一个系有若干名学生,但一名学生只属于一个系;
(2)一个系只有一名系主任,系主任不可以兼任;
(3)一名学生可以选修多门课程,每门课程可被多名学生选修。
表5.1 关系模式SDC对应的部分表内容
学号
SNO
姓名
SNAME
年龄
AGE
系别
DEPT
系主任
DEAN
课程名
CNAME
成绩
SCORE
721011
程民
20
计算机
刘华
计算机应用基础
78
721011
程民
20
计算机
刘华
数据库原理
82
721032
李顺
23
电子
李国义
高频技术
67
722010
王小平
22
自动化
王健
高电压
75
722010
王小平
22
自动化
王健
过程控制
60
722010
王小平
关系数据库的规范化设计是关系数据库原理中的主要理论之一,它与第3章的关系运算知识一起,构成了关系数据库重要的、严密的数学理论基础。
关系数据库的规范化设计理论主要包含数据依赖、范式和规范化设计理论三部分内容。其中,数据依赖是核心,范式是规范化设计的标准。数据库设计的一个基本问题就是如何建立一个好的数据模式,而规范化设计理论则是指导数据模式设计的标准。因此,规范化设计对关系数据库的结构设计起着非常重要的作用。本章重点介绍数据依赖中的函数依赖以及范式的判定方法。
5.1 关系模式的设计问题
关系模式是关系数据库的型,是关系数据库中重要的内容之一。设计出一个规范的关系模式,可以尽可能地消除关系数据库中的数据冗余,解决数据库操作中插入、修改和删除异常的问题。
5.1.1 概述
关系数据库的鼻祖——E.F.Codd从 1971年起,提出了关系数据库的规范化理论,后经过很多专家和学者的不断研究和发展,规范化理论研究已经取得很多的成果,使数据库设计的方法逐步走向完备。在此理论提出以前,层次和网状数据库的设计没有严密的数学理论依据,只是依照其模型自身的特点和原则来设计,其结果可能会给日后的运行和使用带来一些不可预见的问题。关系数据库中关系模型有严格的数学理论基础,又可以向其 他的数据模型转换,因此设计一个好的关系模型需要依托规范化理论这个强有力的设计 工具。
数据库设计的一个基本问题是如何建立一个好的数据库模式,使数据库系统无论是在数据存储方面,还是在数据操作方面都有较好的性能。针对一个具体问题,应该如何构造一个适合于它的数据模式,也就是应该构造几个关系模式,每个关系模式又由哪些属性构成,如何将这些相互关联的关系模式构建成一个适合的关系模型,这是关系数据库逻辑设计所要解决的问题。这就要求关系数据库的设计必须遵循关系数据库的规范化理论。
5.1.2 关系模式存在的问题
想要设计一个相对较好的关系数据库,规范化理论是必须遵循的。关系数据库的设计重要的是关系模式的设计,那么什么是一个较好的关系模式?一个不好的关系模式又会存在什么样的问题?
【例5.1】 要求设计学生-课程数据库,其关系模式如下:SDC(SNO,SNAME,AGE,DEPT,DEAN,CNAME,SCORE),其中,SNO为学号,SNAME为姓名,AGE为年龄,DEPT为系别,DEAN为系主任,CNAME为课程名,SCORE为成绩。具体内容如表5.1所示。
根据实际情况,这些数据有如下语义规定。
(1)一个系有若干名学生,但一名学生只属于一个系;
(2)一个系只有一名系主任,系主任不可以兼任;
(3)一名学生可以选修多门课程,每门课程可被多名学生选修。
表5.1 关系模式SDC对应的部分表内容
学号
SNO
姓名
SNAME
年龄
AGE
系别
DEPT
系主任
DEAN
课程名
CNAME
成绩
SCORE
721011
程民
20
计算机
刘华
计算机应用基础
78
721011
程民
20
计算机
刘华
数据库原理
82
721032
李顺
23
电子
李国义
高频技术
67
722010
王小平
22
自动化
王健
高电压
75
722010
王小平
22
自动化
王健
过程控制
60
722010
王小平
评论
还没有评论。