1.教材的基本结构
本教材以数据库基础概念和基本原理出发,从企业信息化运营与数据库系统应用两个视角,从基础理论、编程方法、实证研究三个方面,循序渐进地介绍了嵌入式数据库的基础理论、SQLite编程方法以及嵌入式数据库的设计开发。
本教材知识点全面,除了嵌入式数据库的基础理论知识外,还包括了嵌入式数据库应用开发技术;教材中以SQLite为例讲解数据库的软件编程知识,包括在C语言环境下的编程和图形界面Qt环境下的程序设计。最后本教材以三个综合性的项目结尾。在课后配有习题和项目,加深相关知识的理解和运用,同时也检验学习效果。本教材内容深入浅出,图文并茂,有利于学生课前自学预习以及课后复习,从而达到良好的学习效果。
2.内容组织
本教材系统地讲述了数据库技术的基本原理和应用实践。全教材分为理论篇、SQLite应用篇、实战篇共三部分,其中1~3章属于理论篇,理论篇以百货商店数据库WebStore为例,讲解了如何应用和操纵数据库,结构合理、内容紧凑。第1章是嵌入式数据库系统概论,主要介绍了嵌入式数据库技术的基本概念和基本原理,描述了数据库系统的组成、结构和功能,以及数据库技术的新发展等。第2章是关系数据库,主要介绍了当今流行的关系数据库、关系的完整性约束以及关系代数语言。第3章是SQLite中的SQL,主要介绍了SQL语言的基本功能,数据的定义、查询、增加、删除、修改,以及SQLite的局限性。SQLite应用篇包括4~5章,第4章是SQLite数据库基础应用,主要介绍了SQLite的体系结构、SQLite特色以及SQLite数据库的管理与维护。第5章是SQLite的C API应用,主要介绍了SQLite C API接口。项目实战篇包括第6章和第7章。第6章主要介绍了基于Qt的SQLite应用。第7章主要是SQLite开发实例,通过引入三个实例项目强化对数据库设计的学习和数据库开发能力。同时,本教材增加了配套授课视频,供学生们课前预习和课后复习使用。
第一篇理论篇
第1章嵌入式数据库系统概述2
1.1数据管理技术的产生与发展4
1.1.1人工管理阶段5
1.1.2文件系统阶段5
1.1.3数据库系统阶段7
1.2数据库基本概念8
1.2.1数据8
1.2.2数据库10
1.3嵌入式数据库11
1.3.1几种主流的嵌入式数据库介绍11
1.3.2几种主流的嵌入式数据库性能比较14
1.3.3SQLite数据库的基本特点和应用16
1.4数据模型19
1.4.1数据模型的组成19
1.4.2概念模型21
1.4.3逻辑模型26
1.4.4物理模型28
1.5数据库系统的体系结构28
1.5.1数据库三级模式体系结构29
1.5.2数据库二级映像与数据独立性29
1.6数据库技术新发展30
本章小结32
【学习效果评估】33
第2章关系数据库36
2.1关系数据库概述38
2.2关系数据库基本概念38
2.2.1关系38
2.2.2关系模式42
2.2.3关系数据库42
2.3关系的完整性约束43
2.3.1实体完整性43
2.3.2参照完整性43
2.3.3用户定义的完整性44
2.4关系代数44
2.4.1传统的集合运算45
2.4.2专门的关系运算47
本章小结53
【学习效果评估】53
第3章SQLite中的SQL58
3.1SQL语言概述60
3.1.1SQL的基本概念60
3.1.2SQL的基本功能61
3.1.3SQL的主要特点61
3.1.4SQLite的局限性62
3.2数据定义62
3.2.1索引的定义与删除63
3.2.2基本表的定义、修改与删除64
3.3数据查询67
3.3.1单表查询69
3.3.2多表连接查询79
3.3.3子查询82
3.4数据更新85
3.4.1插入数据85
3.4.2修改数据86
3.4.3删除数据87
3.5视图87
3.5.1视图的概念和作用87
3.5.2定义视图88
3.5.3查询视图90
3.5.4删除视图90
本章小结91
【学习效果评估】91
第二篇SQLite应用篇
第4章SQLite数据库基础应用97
4.1SQLite体系结构99
4.2SQLite特色102
4.2.1内嵌性102
4.2.2多角色用户102
4.2.3易用性和可靠性104
4.2.4性能和限制104
4.3SQLite的安装和配置105
4.3.1获取SQLite105
4.3.2基于Windows的SQLite命令行shell106
4.3.3基于Linux的SQLite命令行shell107
4.4SQLite数据库的管理与维护107
4.4.1利用SQLite Database Browser管理数据库107
4.4.2SQLite命令行程序113
本章小结123
【学习效果评估】124
第5章SQLite的C API应用126
5.1数据库的打开与关闭130
5.1.1数据库的打开/创建130
5.1.2数据库的关闭132
5.1.3SQLite数据库创建范例132
5.2SQL接口135
5.2.1执行SQL语句135
5.2.2数据库描述的基本术语回调函数的实现137
5.2.3Get Table查询140
5.3数据模型预处理查询142
5.3.1SQL命令编译143
5.3.2SQL命令执行143
5.3.3SQL命令的结束和重置144
5.3.4预处理查询范例144
5.4数据库系统的体系结构146
5.4.1获取列信息146
5.4.2获取列值147
5.5参数化查询149
5.5.1绑定参数的函数150
5.5.2为参数编号151
5.5.3为参数命名152
5.5.4参数绑定的实例152
5.6操作控制155
5.6.1提交Hook函数155
5.6.2回滚Hook函数156
5.6.3更新Hook函数156
5.7授权157
5.7.1SQLite的授权API函数157
5.7.2授权实现范例159
本章小结162
【学习效果评估】163
第三篇项目实战篇
第6章基于Qt的SQLite应用166
6.1Qt简单介绍168
6.2数据库的连接169
6.2.1数据库配置170
6.2.2数据库驱动插件170
6.2.3数据库连接类170
6.2.4SQLite数据库连接范例172
6.3常用数据库操作实现174
6.3.1QSqlQuery类174
6.3.2占位符的使用177
6.3.3常用数据库操作范例178
6.4数据库模型类使用188
6.4.1QSqlQueryModel类188
6.4.2QSqlTableModel类190
6.4.3QSqlRelationTableModel类193
6.4.4事务操作195
6.4.5数据库模型类使用范例196
本章小结200
【学习效果评估】201
第7章SQLite开发实例202
7.1ATM机管理204
7.1.1项目任务204
7.1.2数据库设计204
7.1.3任务分析206
7.1.4关键代码实现207
7.2电子点菜系统208
7.2.1项目任务208
7.2.2数据库设计209
7.2.3关键代码实现213
7.2.4任务分析213
7.3工厂生产线计数系统214
7.3.1项目任务214
7.3.2数据库设计214
7.3.3任务分析218
7.3.4系统界面设计220
7.3.5关键代码实现223
本章小结231
【学习效果评估】231
附录ASQLite3 C API233
附录BQt中支持数据库API236
附录C学习知识要点及能力要点245
参考文献248
2016年6月,中国成为国际本科工程学位互认协议《华盛顿协议》的正式会员,这是中国工程教育国际化进程的重要里程碑。“回归工程”、培养学生的“大工程观”是当今国际工程教育的主流理念。《华盛顿协议》对毕业生提出的12条素质要求中,不仅要求工程知识、工程能力,还强调通用能力和品德伦理;在实践上,以学生为中心,以产出为导向,注重对目标达成的支撑及持续改进,与CDIO工程教育实质等效。
CDIO工程教育是近年来国际工程教育改革的最新成果,以“预期学习结果”集合来驱动课程内容、教学方法、教育文化的设计,重视营造工程教育文化,其注重工程能力培养和基于工程项目全生命周期的一体化设计思想,对于国内工程类和相关专业的建设具有重要的实施价值。
作为承载了教学改革思想的载体,融入CDIO工程教育理念的高品质教材,东软CDIO工程教育教材在注重理实结合的同时,也注重对学生八大能力的培养,即:技术知识与推理能力,开放式思维与创新,个人职业能力,沟通表达与团队合作,态度与习惯,责任,价值观,实践构思、设计、实现和运行对社会的贡献。
CDIO工程教育教材是 CDIO教育教学改革在教学实施过程中的集中体现,它不仅承载着课程和项目的教学内容,而且贯穿和体现了CDIO工程教育的理念、思想与方法,是在系统化理论的指导下,将知识、能力、素质培养进行一体化设计,有机融合在教材体系中。教材的编写以能力培养为主线,以案例教学为引导,以项目为载体,充分体现“做中学”和“学中做”的思想,具有以下优势:
(1)以能力培养为主线,培养学生专业知识学习能力和工程实践能力。
(2)以案例为驱动,在做案例的过程中学习新知识,充分体现了“做中学”。
(3)以项目为载体,基于工程化教育方法,按照分析、设计、实施、运行展开项目及知识点的讲解。
(4)围绕专业知识结构和能力体系设计教材,实现同一专业下不同教材紧密的关联性。
(5)内容编排循序渐进,符合人的认知规律。
(6)适应柔性化教学变革,构建一体化、立体化教学资源。
CDIO工程教育教材可供以应用型人才为培养目标的高等院校以及职业培训机构作为教材使用。
目前,CDIO工程教育教材的建设还处于探索阶段,是一项创造性的工作,尚需要通过改革的实践不断加以深化和持续改进,任重而道远。