本书从关系型数据库模型设计、数据库服务器端SQL程序设计和数据库客户端程序设计三个方面介绍数据库设计及其应用程序开发的实用技术。本书的最大特点是与应用的紧密结合,阐述理论和技术的重点不在于解决“是什么”的问题,而在于“怎么用”和“如何用更好”的问题,着力使读者能对具体问题的分析能力上有所提高。
本书第一部分介绍范式理论的运用和如何使用PowerDesigner依据需求建立正确合理的概念模型:第二部分介绍如何进行SQL程序设计以解决典型的应用问题;第三部分介绍使用Delphi、C#for .Net以及采用J2EE架构,进行C/S和B/S多层结构的数据库应用程序开发的基本方法。
本书从关系型数据库模型设计、数据库服务器端SQL程序设计和数据库客户端程序设计三个方面介绍数据库设计及其应用程序开发的实用技术。第一部分介绍范式理论的运用和如何使用PowerDesigner依据需求建立正确合理的概念模型:第二部分介绍如何进行SQL程序设计以解决典型的应用问题;第三部分介绍使用Delphi、C#for .Net以及采用J2EE架构,进行C/S和B/S多层结构的数据库应用程序开发的基本方法。
本书可作为大学计算机本科专业的教材和计算机软件开发人员进行数据库设计和SQL程序设计的实用指导书,也可作为使用Delphi、C#for .Net和J2EE平台和架构开发数据库客户端和中间层应用程序的程序员入门参考书。
第1篇 关系数据库设计技术
第1章 关系模型和关系型数据库管理系统
1.1 问题的引出
1.2 关系模型
1.2.1 关系模型的数据结构
1.2.2 关系模型的数据操作
1.2.3 关系模型的数据约束
1.3 关系型数据库管理系统RDBMS
第2章 范式及其对数据库设计的指导意义
2.1 问题的引出
2.2 范式理论概述
2.3 1NF及对实践的指导意义
2.3.1 1NF的最常见的表述及认识上的误区
2.3.2 1NF另一种表述和全面理解1NF
2.4 函数依赖
2.5 2NF及对实践的指导意义
2.6 3NF及对实践的指导意义
2.7 BCNF——扩充的第三范式
2.8 范式应用实例分析
2.8.1 正确理解1NF——树结点的数据表设计
2.8.2 3NF在实践中的应用问题
2.9 范式的局限——对冗余的进一步讨论
2.9.1 范式无法消除的冗余——计算列问题
2.9.2 范式无法消除的其他冗余
2.9.3 突破范式限制
2.9.4 冗余的代价
2.9.5 小结
第3章 数据库静态结构设计和实现
3.1 概念模型一般概念
3.1.1 概念模型的两个要素
3.1.2 实体关系图
3.1.3 概念模型向关系模型转换的方法和规则
3.1.4 确定实体属性的重要规则
3.2 PowerDesigner概述
3.2.1 概念数据模型CDM概述
3.2.2 CDM分析设计的一般流程
3.2.3 建立CDM的一般操作
3.3 实体——域、数据项和属性
3.3.1 域
3.3.2 数据项
3.3.3 实体
3.4 实体之间的关系
3.4.1 关系
3.4.2 关联和关联连接
3.4.3 小结
3.5 继承
3.6 概念数据模型实例分析
3.6.1 单据的概念数据模型
3.6.2 考勤系统的概念数据模型
3.6.3 商品多供应商问题的概念数据模型
3.6.4 单据相关人员的概念数据模型
3.7 物理数据模型PDM
3.8 数据库的建立
第2篇 SQL程序设计
第4章 查询语句和视图
4.1 单表查询
4.2 数据源中数据表的各种连接
4.2.1 交叉连接和内连接
4.2.2 外连接
4.2.3 自连接
4.2.4 外连接条件和选择条件
4.3 子查询及其逻辑运算符
4.4 关系集合运算的实现
4.4.1 并运算
4.4.2 交和差运算
4.4.3 除运算
4.5 视图
4.6 典型查询实例分析
4.6.1 不同选择条件的聚合列的查询
4.6.2 一行数据归属多个分组的查询
4.6.3 分组列值最大(小)值所在行的查询
4.6.4 交叉表的查询
4.6.5 汇总表的查询
4.7 查询语句小结
第5章 修改语句及其子查询的运用
5.1 插入行
5.1.1 插入单行
5.1.2 插入子查询结果
5.2 更新行
5.2.1 简单的更新
5.2.2 WHERE条件带子查询的更新
5.2.3 表达式包含子查询的更新
5.3 删除行
第6章 数据库中数据的安全控制
6.1 问题的引出
6.2 用户和角色
6.3 授权和回收
6.4 视图机制控制用户的权限
6.4.1 单个基表的视图
6.4.2 多个基表的视图
6.4.3 通过视图修改基表的应用意义
第7章 数据库行为特征设计——SQL程序设计
7.1 SQL程序基础
7.1.1 批处理
7.1.2 变量的声明和使用
7.1.3 流程控制语句
7.2 函数和表达式
7.2.1 表达式和标准函数
7.2.2 自定义函数——标量函数
7.2.3 表值函数
7.3 存储过程
7.3.1 存储过程的创建和调用
7.3.2 存储过程实例分析——月初库存的生成
7.4 触发器
7.4.1 创建触发器
7.4.2 触发器应用实例
7.5 临时表和表变量
7.6 游标
7.6.1 游标及游标变量的声明
7.6.2 打开游标
7.6.3 移动游标指针并取得当前行数据
7.6.4 关闭和释放游标
7.6.5 使用游标实例
7.7 事务
7.7.1 事务定义方法及基本特性
7.7.2 加锁
7.7.3 隔离级别
7.7.4 SQL Server的事务管理模式
7.7.5 事务应用实例
第3篇 数据库应用程序界面和中间层设计
第8章 数据库应用程序开发技术概述
8.1 数据库应用系统的体系结构
8.2 可视化程序设计概述
8.3 可视化程序设计实例
8.4 数据存取技术
第9章 C/S结构在线式数据库应用程序设计
9.1 数据库应用程序界面设计需求
9.2 Delphi简介
9.2.1 DelDhi集成开发环境
9.2.2 Object Pascal语言概要
9.3 界面设计
9.4 建立数据模块(Data Module)
9.5 控件数据和数据表数据的同步
9.5.1 设置属性建立同步
9.5.2 数据同步机制解析
9.6 实现按钮功能的程序
9.7 计算列的计算程序
9.8 报表的设计和输出
9.9 数据表的打开和窗口的创建
9.10 小结
第10章 C/S结构断开式数据库应用程序设计
10.1 ADO.NET
10.2 数据库应用程序界面设计需求
10.3 创建项目和界面控件设置
10.4 程序方式实现界面控件与数据库数据的交互
10.4.1 控件和数据库数据的交互机制概述
10.4.2 连接、加载和简单绑定——学生信息的显示
10.4.3 详细讲述绑定
10.4.4 DataGrid和Relation——学生选课及成绩的显示
10.4.5 进一步探究dataSet
10.4.6 把dataSet数据存入数据库——保存功能的实现
10.4.7 尝试断开式连接的有效性
10.5 数据集及绑定的可视化设计和实现
10.5.1 类型化和非类型化dataSet
10.5.2 构建类型化dataSet
10.5.3 设置控件的绑定属性
10.6 报表设计
10.6.1 水晶报表(Crystal Report)概述
10.6.2 简单报表——学生基本信息表
10.6.3 使用子报表——学生成绩单格式一
10.6.4 运用主从关系——学生成绩单格式二
第11章 B/S多层架构入门
11.1 基础准备
11.1.1 安装JDK
11.1.2 安装Eclipse和MyEclipse
11.1.3 安装和启动Weblogic
11.1.4 在MyEclipse中配置Weblogic-
11.1.5 SOL Server的设置和安装JDBC
11.2 开始第一个程序
11.2.1 JDBC连接池
11.2.2 配置Data Source和JNDI技术
11.2.3 编写Java应用程序
11.2.4 编译Java应用程序
11.2.5 运行Java应用程序
11.2.6 在MyEclispe中运行程序
11.2.7 Java应用程序的存储结构
11.3 J2EE和EJB简述
11.4 实用的用户验证需求
11.5 无状态SessionBean——用户验证和密码修改
11.5.1 创建和部署无状态SessionBean
11.5.2 客户端调用SessionBean
11.5.3 增加修改用户密码的方法
11.6 有状态SessionBean——保留用户信息
11.6.1 创建有状态SessionBean
11.6.2 JSP调用有状态的SessionBean
11.6.3 有状态和无状态SessionBean特点
11.7 EntityBean——修改密码
11.7.1 EntityBean——不包含主键类
11.7.2 EntityBean——包含主键类
11.7.3 Java程序测试EntityBean
11.8 常见错误及处理
附录A DEMO数据库中数据表结构及数据
附录B 完整的Delphi程序
附录C 完整的C#窗口Frm Std Grade程序
附录D CrystalReport设计界面
附录E MyEclipse中实例项目清单
参考文献