目录 第1章数据库系统概论1 1.1数据管理技术的发展1 1.1.1人工管理阶段1 1.1.2文件系统管理阶段3 1.1.3数据库系统管理阶段5 1.2数据库的基本概念5 1.2.1数据库5 1.2.2数据库管理系统8 1.2.3数据库系统10 1.3数据库系统体系结构13 1.3.1数据库系统的三级模式结构13 1.3.2二级映射与数据独立性18 1.4小结19 习题20第2章数据模型23 2.1抽象与模型23 2.2概念模型24 2.2.1概念模型中的概念24 2.2.2实体联系模型27 2.3数据模型概述29 2.3.1数据模型的组成要素29 2.3.2数据模型的演变30 2.3.3关系模型30 2.3.4半结构化数据模型31 2.3.5面向对象数据模型34 2.4小结35 习题36第3章关系数据库理论39 3.1关系模型概述39 3.1.1关系的数据结构39 3.1.2关系的完整性约束44 3.1.3关系操作47 3.2关系代数48 3.2.1传统的集合运算49 3.2.2专门的关系运算50 3.2.3用关系代数运算实现数据库操作55 3.3关系演算57 3.3.1关系演算中关系的表示58 3.3.2元组关系演算58 3.3.3域关系演算61 3.4小结63 习题63第4章关系数据库标准查询语言SQL69 4.1SQL概述69 4.1.1SQL的发展历史69 4.1.2SQL的特点70 4.1.3SQL的语句格式72 4.2数据定义72 4.2.1数据库的定义72 4.2.2基本表的定义73 4.2.3基本表的修改77 4.2.4基本表的删除78 4.3数据查询78 4.3.1单表查询79 4.3.2连接查询86 4.3.3嵌套查询89 4.3.4集合查询97 4.4数据更新97 4.4.1插入元组97 4.4.2修改元组属性值99 4.4.3删除元组100 4.4.4更新操作的完整性检查100 4.4.5触发器103 4.5视图107 4.5.1视图的概念107 4.5.2视图的定义108 4.5.3视图的删除109 4.5.4视图的查询109 4.5.5视图的更新110 4.5.6视图的作用113 4.6授权控制114 4.7小结121 习题121第5章关系模式的规范化设计128 5.1关系模式的设计问题128 5.2关系模式的规范化129 5.2.1函数依赖130 5.2.2基于函数依赖的范式132 5.2.3多值依赖与4NF137 5.2.4关系模式的规范化过程139 5.3函数依赖的理论140 5.3.1函数依赖集的逻辑蕴含140 5.3.2Armstrong公理141 5.3.3属性集闭包143 5.3.4函数依赖集等价和最小函数依赖集144 5.3.5候选键及其判定方法147 5.4模式分解149 5.4.1模式分解的概念150 5.4.2无损连接分解和保持函数依赖分解151 5.4.3模式分解算法154 5.5小结158 习题159第6章数据库的存储管理163 6.1数据库存储管理的数据163 6.2磁盘上数据的存储165 6.2.1磁盘的物理特性165 6.2.2磁盘上数据的缓冲存取167 6.3文件的组织结构169 6.3.1定长记录170 6.3.2变长数据和记录171 6.3.3列存储173 6.4文件的存储结构173 6.4.1堆文件173 6.4.2顺序文件174 6.4.3聚集文件175 6.4.4散列文件(直接文件)176 6.4.5SQL Server的文件存储177 6.5索引180 6.5.1索引的概念181 6.5.2聚集索引和非聚集索引182 6.5.3稠密索引和稀疏索引185 6.5.4多级索引188 6.5.5倒排索引和文档检索191 6.5.6位图索引191 6.6索引文件的结构193 6.6.1B+树193 6.6.2散列索引199 6.7小结200 习题201第7章关系查询与优化204 7.1数据库系统的查询处理步骤204 7.2查询分析与预处理206 7.3代数优化208 7.3.1代数优化的必要性208 7.3.2基于代数等价的启发式优化210 7.4物理优化215 7.4.1操作符的实现算法215 7.4.2基于代价的物理优化方法220 7.5小结223 习题224第8章事务处理227 8.1事务的概念227 8.1.1概念的引入227 8.1.2事务的定义229 8.1.3事务的ACID特性230 8.1.4事务的管理232 8.2事务的恢复233 8.2.1故障及其错误状态233 8.2.2恢复的实现技术235 8.2.3恢复的策略239 8.3并发控制247 8.3.1并发控制的必要性247 8.3.2并发控制的实现技术255 8.4小结295 习题296第9章数据库设计300 9.1数据库设计概述300 9.1.1数据库设计的内容300 9.1.2数据库设计的方法300 9.1.3数据库设计的阶段301 9.2需求分析303 9.2.1需求分析的任务303 9.2.2需求分析的方法304 9.3概念结构设计308 9.3.1概念结构设计步骤309 9.3.2概念结构设计方法311 9.4逻辑结构设计314 9.4.1ER图向关系数据库模式的转换314 9.4.2关系模式的优化320 9.5物理结构设计322 9.5.1确定数据库的存储结构和存取方法322 9.5.2物理结构设计策略327 9.6数据库的实施328 9.7数据库的维护329 9.8小结330 习题330第10章数据库编程334 10.1数据库系统体系结构334 10.1.1客户机/服务器体系结构334 10.1.2浏览器/服务器体系结构335 10.2嵌入式SQL336 10.2.1数据库的连接与关闭336 10.2.2ESQL语句与主语言之间的通信337 10.2.3游标338 10.2.4动态ESQL340 10.3存储过程和函数344 10.3.1TransactSQL345 10.3.2存储过程348 10.3.3函数351 10.4数据库访问接口356 10.4.1专用数据库访问接口356 10.4.2ODBC数据库访问接口359 10.4.3OLEDB数据库访问接口362 10.4.4ADO数据库访问接口362 10.4.5ADO.NET数据库访问接口365 10.4.6JDBC数据库访问接口368 10.5小结370 习题371第11章数据库技术的发展372 11.1关系数据库技术的发展372 11.1.1关系数据库的发展历程372 11.1.2关系数据库的功能扩展374 11.2联机分析处理与数据仓库375 11.2.1联机分析处理375 11.2.2数据仓库376 11.2.3多维数据模型378 11.3分布式数据库系统380 11.3.1分布式数据库系统的概念380 11.3.2数据分布381 11.3.3分布式查询处理383 11.3.4分布式事务管理384 11.4非关系数据库387 11.4.1NoSQL技术的兴起387 11.4.2NoSQL数据模型388 11.4.3NoSQL的事务特性400 11.5小结401 习题402参考文献403