简介 |
![]()
内容推荐 本书重点介绍了数据库的原理、设计与实现技术,对传统的数据库理论进行了精练,保留了核心与实用部分,并适当增加了实验内容,以突出实践能力的培养。全书由三部分共18章组成: 部分介绍数据库基本原理,包括数据库的基础知识、数据模型、结构化查询语言SQL和数据的安全性等内容;第二部分介绍数据库的设计与开发,包括关系模式的规范化和数据库的设计与建模等内容;第三部分讨论数据库管理系统(DBMS)的设计与实现,以一个实际的DBMS为例,介绍DBMS的设计、存储管理、数据缓冲、数据操纵、索引技术、查询处理、事务管理和故障恢复等知识。 本书适合于高等院校计算机及相关专业的本科生和研究生教学使用,也可供相关领域技术人员参考。 作者简介 赵文栋 博士,陆军工程大学副教授,主要研究方向为计算机网络、服务计算,先后主持几十项军内外科研项目,发表学术论文60余篇。曾获多项军队科技进步奖。 目录 部分数据库原理 章数据库基础知识3 1.1数据管理技术的发展3 1.1.1数据和数据处理3 1.1.2数据管理的三个阶段4 1.2数据库的基本概念5 1.2.1数据库系统5 1.2.2数据模型8 1.2.3数据库的发展9 1.2.4数据库分类11 1.3DBMS体系结构12 习题113 第2章关系数据模型15 2.1关系模型基础15 2.1.1基本术语15 2.1.2关系的数学定义17 2.2关系代数19 2.2.1传统的集合运算20 2.2.2专门的关系运算22 2.2.3关系演算24 2.3基于包的关系代数25 2.3.1传统的集合运算25 2.3.2专门的关系运算272.4关系的三类完整性约束27 2.4.1实体完整性约束28 2.4.2参照完整性约束28 2.4.3用户自定义的完整性约束29 实验畅想数据库管理系统29 习题232 数据库原理目录第3章结构化查询语言(SQL)35 3.1SQL概述35 3.1.1SQL的标准和特点35 3.1.2SQL的术语36 3.1.3RDBMS的体系结构37 3.2数据定义38 3.2.1数据类型38 3.2.2定义基表40 3.2.3修改与删除基表44 3.3基本数据查询45 3.3.1SELECT语句的语法45 3.3.2单表查询45 3.3.3分组统计查询49 3.4连接查询51 3.4.1交叉连接51 3.4.2内连接52 3.4.3外连接53 3.4.4多表连接查询56 3.5数据更新57 3.5.1数据插入57 3.5.2数据修改58 3.5.3数据删除59 3.6复杂的查询条件60 3.6.1查询条件表达式的语法60 3.6.2空值的判断62 3.6.3针对字符数据的查询62 实验SQL实验64 习题367 第4章数据库对象69 4.1视图69 4.1.1视图的概念69 4.1.2创建和删除视图70 4.1.3修改视图71 4.1.4使用视图数据71 4.2索引72 4.2.1索引的概念72 4.2.2使用索引73 4.3序列73 实验使用数据库对象75 4.4存储过程75 4.5触发器77 习题478 第5章数据的安全性79 5.1事务和锁的概念79 5.1.1事务的概念79 5.1.2事务的ACID特性80 5.1.3事务生命周期82 5.1.4锁83 5.2使用事务83 5.2.1用户、连接和事务的关系83 5.2.2显式模式84 5.2.3隐性模式85 5.2.4自动提交模式86 5.3特殊事务模型86 5.3.1嵌套事务86 5.3.2保存点87 5.3.3分布式事务87 实验事务的并发与隔离88 5.4SQL中的授权机制92 5.4.1用户92 5.4.2权限92 5.4.3授权93 5.4.4解除授权93 习题594第二部分数据库设计与开发 第6章关系模式的规范化97 6.1问题提出97 6.2函数依赖和模式分解99 6.2.1函数依赖99 6.2.2模式分解101 6.3关系范式102 6.3.1范式104 6.3.2第二范式105 6.3.3第三范式107 6.3.4非规范化108 6.4BoyceCodd范式(BCNF)109 实验规范化设计案例111 习题6111 第7章数据库设计与建模113 7.1数据库设计的工作113 7.2数据库系统的设计方法及步骤116 7.3概念模型设计与ER模型118 7.3.1基本ER元素118 7.3.2不错ER元素123 7.3.3建立ER模型125 7.4逻辑模式设计128 7.4.1概念模型向关系模式的转换129 7.4.2继续转换为逻辑模式134 7.5选择索引135 7.5.1单个索引的收益135 7.5.2主键上的索引136 7.5.3索引的选择136 实验数据库建模实验137 习题7137 第8章数据库应用程序开发139 8.1数据库系统的体系结构139 8.1.1数据库的访问139 8.1.2几种常见的体系结构140 8.1.3三层体系结构142 8.2应用程序接口142 8.2.1ODBC143 8.2.2JDBC143 实验使用ODBC连接数据库145 习题8146 第三部分DBMS的实现 第9章DBMS的设计149 9.1需求分析149 9.1.1关于数据量150 9.1.2关于并发度151 9.1.3CXDB教学版简介152 9.2接口设计153 9.2.1数据接口设计153 9.2.2语言接口设计153 9.2.3编程接口设计154 9.3总体设计155 9.3.1总体设计的任务155 9.3.2DBMS的一般体系结构156 9.3.3CXDBE的体系结构158 实验基于CXDBE的编程160 习题9161 0章存储管理163 10.1数据存储技术概述163 10.1.1存储器的层次163 10.1.2磁盘的读写164 10.1.3磁盘调度165 10.1.4磁盘缓存166 10.1.5提高磁盘I/O速度的方法166 10.1.6RAID167 10.2数据在文件中的组织168 10.2.1CXDBE文件格式168 10.2.2CXDBE的文件头格式169 10.3页的寻址170 实验CXDBE的存储管理171 习题10171 1章数据缓冲173 11.1数据缓冲层概述173 11.1.1缓冲区的概念173 11.1.2散列表174 11.2缓冲区管理175 11.2.1文件页和缓冲区页175 11.2.2缓冲区管理的功能177 11.2.3缓冲区的大小178 11.3缓冲区替换策略179 实验CXDBE的数据缓冲181 习题11181 2章数据操纵183 12.1记录的存储技术183 12.1.1记录在页中的存放183 12.1.2记录的寻址185 12.1.3溢出页的使用185 12.2CXDBE的数据页格式186 12.2.1数据记录格式186 12.2.2数据页格式187 12.2.3溢出页格式188 12.2.4空闲页格式189 12.3游标190 12.3.1游标种类190 12.3.2游标操作190 12.3.3游标结构191 实验CXDBE的记录操纵192 习题12193 3章索引技术195 13.1索引技术概述195 13.2B树索引197 13.2.1B树的概念197 13.2.2B树的基本算法198 13.2.3B树基本算法的讨论202 13.2.4B+树203 13.3CXDBE的索引页格式204 13.4用于索引的B树算法205 13.4.1需要考虑的问题205 13.4.2算法206 实验CXDBE的索引操纵213 13.5其他索引技术214 13.5.1散列索引214 13.5.2位图索引215 13.5.3多维索引215 习题13216 4章查询处理217 14.1查询处理的一般过程217 14.1.1编译218 14.1.2优化219 14.1.3执行220 14.2物理查询计划操作符220 14.2.1关系的扫描221 14.2.2物理操作符的代价计算模型221 14.2.3衡量代价的参数221 14.2.4两阶段多路归并排序222 14.2.5物理操作符迭代器224 14.2.6算法分类225 14.3选择操作226 14.4连接操作228 14.4.1一趟算法228 14.4.2嵌套循环连接228 14.4.3基于排序的两趟算法229 14.4.4基于散列的两趟算法231 14.4.5基于索引的算法232 14.5聚合操作233 14.5.1一趟算法234 14.5.2基于排序的两趟算法235 14.5.3基于散列的两趟算法236 14.5.4基于索引的算法236 14.6关系代数的等价性定律236 14.6.1交换律和结合律236 14.6.2与选择有关的定律237 14.6.3与投影有关的定律238 14.6.4与连接和积有关的定律238 14.6.5与分组和聚合有关的定律238 14.7选择逻辑查询计划238 14.7.1将分析树转换为关系代数表达式树239 14.7.2逻辑查询计划的优化240 14.8选择物理查询计划241 习题14242 5章CXDBE的SQL层245 15.1SQL语句的编译245 15.1.1编译的一般步骤246 15.1.2lex与yacc介绍246 15.1.3SQL语句的语法描述248 15.1.4SQL语句的内存结构249 15.2CXDBE的查询处理250 15.2.1语义分析251 15.2.2选择查询计划252 15.2.3查询执行256 15.2.4条件表达式向索引的转换259 实验SQL层的实现259 习题15260 6章事务管理261 16.1事务调度261 16.1.1串行调度和并行调度262 16.1.2可串行化265 16.1.3冲突可串行化266 16.2事务隔离级别267 16.2.1并行调度造成的不一致现象267 16.2.2事务隔离级别269 16.3并发控制270 16.3.1并发控制的分类270 16.3.2基于锁的并发控制270 16.4锁的类型271 16.4.1共享锁与排他锁271 16.4.2锁的相容矩阵271 16.4.3锁升级272 16.4.4更新锁273 16.4.5意向锁274 16.5封锁粒度和封锁协议275 16.5.1锁的粒度275 16.5.2两段锁协议276 16.6加锁产生的问题279 16.6.1阻塞279 16.6.2死锁280 16.6.3死锁的预防280 16.6.4死锁检测与解除281 16.6.5活锁282 16.7CXDB加锁的实现282 16.7.1CXDB加锁的粒度282 16.7.2CXDB表级锁的类型283 16.7.3CXDB的死锁检测与解决285 实验死锁285 习题16287 7章故障恢复289 17.1故障恢复概述289 17.1.1故障类型289 17.1.2故障恢复基础290 17.2Undo日志292 17.2.1日志的概念292 17.2.2日志记录293 17.2.3使用Undo日志的恢复294 17.2.4检查点295 17.2.5模糊检查点296 17.3Redo日志297 17.3.1使用Redo日志的恢复297 17.3.2Redo日志的检查点298 17.3.3使用带检查点的Redo日志的恢复299 17.4Undo/Redo日志299 17.4.1使用Undo/Redo日志的恢复299 17.4.2Undo/Redo日志的检查点300 17.5防备介质故障301 17.5.1备份类型301 17.5.2使用备份和日志的恢复302 习题17302 8章数据库技术的发展305 18.1数据仓库306 18.1.1数据仓库的发展与定义306 18.1.2数据仓库的特点307 18.1.3数据仓库的组成308 18.1.4新一代数据仓库309 18.2XML和XQuery310 18.2.1半结构化数据311 18.2.2XML311 18.2.3XPath313 18.2.4XQuery314 附录A人员数据库设计319 A.1表定义和表数据319 A.2创建语句321 附录B图书借阅数据库设计323 B.1规章制度323 B.2与藏书有关的需求324 B.3数据库设计325 参考文献333 |