第1篇 关系数据库设计技术 3
第1章 关系模型和关系型数据库管理系统 3
1.1问题的引出 3
1.2关系模型 5
1.2.1关系模型的数据结构 5
1.2.2关系模型的数据操作 7
1.2.3关系模型的数据约束 12
1.3关系型数据库管理系统RDBMS 14
第2章 范式及其对数据库设计的指导意义 16
2.1问题的引出 16
2.2范式理论概述 17
2.3 1 NF及对实践的指导意义 19
2.3.1 1 NF的最常见的表述及认识上的误区 19
2.3.2 1 NF另一种表述和全面理解1NF 20
2.4函数依赖 21
2.5 2NF及对实践的指导意义 22
2.6 3NF及对实践的指导意义 23
2.7 BCNF——扩充的第三范式 25
2.8范式应用实例分析 26
2.8.1正确理解1NF——树结点的数据表设计 26
2.8.2 3NF在实践中的应用问题 29
2.9范式的局限——对冗余的进一步讨论 33
2.9.1范式无法消除的冗余——计算列问题 33
2.9.2范式无法消除的其他冗余 34
2.9.3突破范式限制 36
2.9.4冗余的代价 37
2.9.5小结 38
第3章 数据库静态结构设计和实现 39
3.1概念模型一般概念 39
3.1.1概念模型的两个要素 39
3.1.2实体关系图 42
3.1.3概念模型向关系模型转换的方法和规则 43
3.1.4确定实体属性的重要规则 44
3.2 PowerDesigner概述 44
3.2.1概念数据模型CDM概述 45
3.2.2 CDM分析设计的一般流程 45
3.2.3建立CDM的一般操作 47
3.3实体——域、数据项和属性 48
3.3.1域 48
3.3.2数据项 49
3.3.3实体 51
3.4实体之间的关系 53
3.4.1关系 54
3.4.2关联和关联连接 59
3.4.3小结 60
3.5继承 61
3.6概念数据模型实例分析 63
3.6.1单据的概念数据模型 63
3.6.2考勤系统的概念数据模型 64
3.6.3商品多供应商问题的概念数据模型 66
3.6.4单据相关人员的概念数据模型 67
3.7物理数据模型PDM 72
3.8数据库的建立 76
第2篇 SQL程序设计 81
第4章 查询语句和视图 81
4.1单表查询 81
4.2数据源中数据表的各种连接 86
4.2.1交叉连接和内连接 87
4.2.2外连接 88
4.2.3自连接 90
4.2.4外连接条件和选择条件 90
4.3子查询及其逻辑运算符 92
4.4关系集合运算的实现 94
4.4.1并运算 95
4.4.2交和差运算 95
4.4.3除运算 96
4.5视图 98
4.6典型查询实例分析 101
4.6.1不同选择条件的聚合列的查询 101
4.6.2一行数据归属多个分组的查询 106
4.6.3分组列值最大(小)值所在行的查询 112
4.6.4交叉表的查询 114
4.6.5汇总表的查询 117
4.7查询语句小结 124
第5章 修改语句及其子查询的运用 126
5.1插入行 126
5.1.1插入单行 126
5.1.2插入子查询结果 127
5.2更新行 127
5.2.1简单的更新 128
5.2.2 WHERE条件带子查询的更新 128
5.2.3表达式包含子查询的更新 129
5.3删除行 131
第6章 数据库中数据的安全控制 133
6.1问题的引出 133
6.2用户和角色 135
6.3授权和回收 137
6.4视图机制控制用户的权限 138
6.4.1单个基表的视图 139
6.4.2多个基表的视图 140
6.4.3通过视图修改基表的应用意义 142
第7章 数据库行为特征设计——SQL程序设计 144
7.1 SQL程序基础 144
7.1.1批处理 145
7.1.2变量的声明和使用 146
7.1.3流程控制语句 149
7.2函数和表达式 151
7.2.1表达式和标准函数 151
7.2.2自定义函数——标量函数 160
7.2.3表值函数 162
7.3存储过程 166
7.3.1存储过程的创建和调用 166
7.3.2存储过程实例分析——月初库存的生成 169
7.4触发器 181
7.4.1创建触发器 181
7.4.2触发器应用实例 182
7.5临时表和表变量 187
7.6游标 193
7.6.1游标及游标变量的声明 193
7.6.2打开游标 195
7.6.3移动游标指针并取得当前行数据 195
7.6.4关闭和释放游标 196
7.6.5使用游标实例 196
7.7事务 200
7.7.1事务定义方法及基本特性 200
7.7.2加锁 204
7.7.3隔离级别 207
7.7.4 SQL Server的事务管理模式 210
7.7.5事务应用实例 211
第3篇 数据库应用程序界面和中间层设计 215
第8章 数据库应用程序开发技术概述 215
8.1数据库应用系统的体系结构 216
8.2可视化程序设计概述 218
8.3可视化程序设计实例 218
8.4数据存取技术 221
第9章 C/S结构在线式数据库应用程序设计 224
9.1数据库应用程序界面设计需求 224
9.2 Delphi简介 225
9.2.1 Delphi集成开发环境 225
9.2.2 Object Pascal语言概要 227
9.3界面设计 228
9.4建立数据模块(Data Module) 230
9.5控件数据和数据表数据的同步 233
9.5.1设置属性建立同步 233
9.5.2数据同步机制解析 234
9.6实现按钮功能的程序 235
9.7计算列的计算程序 238
9.8报表的设计和输出 239
9.9数据表的打开和窗口的创建 241
9.10小结 242
第10章 C/S结构断开式数据库应用程序设计 244
10.1 ADO.NET 244
10.2数据库应用程序界面设计需求 245
10.3创建项目和界面控件设置 246
10.4程序方式实现界面控件与数据库数据的交互 248
10.4.1控件和数据库数据的交互机制概述 249
10.4.2连接、加载和简单绑定——学生信息的显示 249
10.4.3详细讲述绑定 251
10.4.4 DataGrid和Relation——学生选课及成绩的显示 258
10.4.5进一步探究dataSet 260
10.4.6把dataSet数据存入数据库——保存功能的实现 264
10.4.7尝试断开式连接的有效性 269
10.5数据集及绑定的可视化设计和实现 269
10.5.1类型化和非类型化dataSet 269
10.5.2构建类型化dataSet 270
10.5.3设置控件的绑定属性 271
10.6报表设计 271
10.6.1水晶报表(Crystal Report)概述 271
10.6.2简单报表——学生基本信息表 272
10.6.3使用子报表——学生成绩单格式一 277
10.6.4运用主从关系——学生成绩单格式二 279
第11章 B/S多层架构入门 281
11.1基础准备 281
11.1.1安装JDK 281
11.1.2安装Eclipse和MyEclipse 282
11.1.3安装和启动Weblogic 282
11.1.4在MyEclipse中配置Weblogic 283
11.1.5 SQL Server的设置和安装JDBC 284
11.2开始第一个程序 284
11.2.1 JDBC连接池 285
11.2.2配置Data Source和 JNDI技术 286
11.2.3编写Java应用程序 287
11.2.4编译Java应用程序 288
11.2.5运行Java应用程序 289
11.2.6在MyEclispe中运行程序 290
11.2.7 Java应用程序的存储结构 291
11.3 J2EE和EJB简述 293
11.4实用的用户验证需求 294
11.5无状态SessionBean——用户验证和密码修改 295
11.5.1创建和部署无状态SessionBean 296
11.5.2客户端调用SessionBean 300
11.5.3增加修改用户密码的方法 307
11.6有状态SessionBean——保留用户信息 311
11.6.1创建有状态SessionBean 311
11.6.2 JSP调用有状态的SessionBean 314
11.6.3有状态和无状态SessionBean特点 317
11.7 EntityBean——修改密码 320
11.7.1 EntityBean不包含主键类 320
11.7.2 EntityBean包含主键类 323
11.7.3 Java程序测试EntityBean 326
11.8常见错误及处理 333
附录A DEMO数据库中数据表结构及数据 335
附录B完整的Delphi程序 339
附录C完整的C#窗口Frm_ Std_ Grade程序 345
附录D CrystalReport设计界面 363
附录E MyEclipse中实例项目清单 365
参考文献 368