目录 第1章绪论1 1.1什么是数据库系统1 1.1.1数据库与大数据1 1.1.2数据库管理系统2 1.1.3数据库系统3 1.2为什么需要数据库系统3 1.2.1DBS前的困境4 1.2.2DBS的吸引力5 1.3数据抽象6 1.3.1四层抽象6 1.3.2数据抽象的表达6 1.3.3三层模式和两级映射8 1.4数据库管理系统9 1.4.1数据定义语言11 1.4.2数据操作语言11 1.4.3数据保护语言11 1.4.4查询处理模块11 1.4.5存储管理模块12 1.4.6保护管理模块12 1.4.7物理数据结构12 1.4.8立足点13 1.5数据库系统13 1.5.1硬件13 1.5.2软件14 1.5.3用户15 1.5.4工作过程15 1.5.5在网络上16 1.6大数据与数据管理技术发展趋势18〖3〗数据库系统原理与实践目录〖3〗习题18 第2章关系模型20 2.1关系结构与约束20 2.1.1关系与表20 2.1.2关系键23 2.1.3约束24 2.2关系操作24 2.2.1基本关系代数运算25 2.2.2附加关系代数运算32 2.2.3扩展关系代数运算35 2.2.4数据库修改38 习题39 第3章SQL Server数据定义与操作41 3.1SQL与SQL Server41 3.1.1SQL发展史41 3.1.2SQL Server42 3.1.3数据库语言组成42 3.1.4数据库语言特点42 3.1.5考试系统数据库43 3.1.6应急预案编制数据库45 3.1.7中共党史数据库46 3.2数据定义47 3.2.1SQL Server的基本数据类型47 3.2.2表的创建、修改和删除48 3.3投影与广义投影50 3.4选择52 3.5集合操作57 3.6连接查询58 3.6.1笛卡儿积(交叉连接)58 3.6.2内连接59 3.6.3外连接60 3.7更名60 3.8聚集查询61 3.8.1基本聚集61 3.8.2分组62 3.8.3排名64 3.8.4分窗65 3.9基本查询语句的一般形式66 3.10嵌套查询67 3.10.1子查询作为标量67 3.10.2子查询作为表70 3.10.3子查询作为集合72 3.10.4关系除74 3.11递归查询76 3.12数据修改77 3.12.1数据插入77 3.12.2数据删除79 3.12.3数据更新80 习题81 第4章SQL Server应用83 4.1应用体系结构83 4.1.1C/S结构83 4.1.2B/S结构84 4.2嵌入式 SQL Server86 4.2.1SQL Server 嵌入式使用86 4.2.2编译嵌入式SQL程序91 4.2.3动态SQL语句92 4.3JDBC编程94 4.3.1JDBC基础94 4.3.2JDBC程序95 4.3.3JSP连接访问数据库实例98 4.4ODBC编程100 4.5存储函数和过程102 4.5.1变量的定义和赋值102 4.5.2控制结构103 4.5.3存储函数定义和执行103 4.5.4存储过程定义和执行105 习题106 第5章SQL Server数据保护108 5.1数据保护108 5.2视图109 5.2.1视图的创建和撤销109 5.2.2对视图的操作111 5.3访问控制113 5.3.1角色管理113 5.3.2授予权限115 5.3.3收回权限116 5.4完整性约束117 5.4.1约束含义117 5.4.2声明及检验118 5.5触发器125 5.5.1定义触发器125 5.5.2激活触发器127 5.5.3删除触发器128 5.6事务128 5.7加密130 习题133 第6章数据库设计: 实体联系方法134 6.1数据库设计方法和生命周期134 6.2基本ER模型136 6.2.1ER模型基本元素136 6.2.2基本ER图设计137 6.3基本ER图转换为关系模式144 6.4扩展ER图及其关系模式的转换147 6.4.1弱实体147 6.4.2父子实体148 6.5大数据ER图及其关系模式的转换152 习题154 第7章数据库设计: 属性-联系方法156 7.1数据依赖156 7.1.1函数依赖的定义156 7.1.2函数依赖的逻辑蕴涵157 7.1.3函数依赖的推理规则158 7.1.4属性集的闭包159 7.1.5函数依赖集的最小依赖集161 7.1.6多值依赖161 7.2模式分解162 7.2.1无损连接分解164 7.2.2分解无损连接检验165 7.2.3保持函数依赖的分解168 7.3范式170 7.3.1第一范式(1NF)171 7.3.2第二范式(2NF)172 7.3.3第三范式(3NF)173 7.3.4BC范式(BCNF)174 7.3.5第四范式175 7.4规范化175 7.5大数据与反规范化177 习题180 第8章存储和存取182 8.1存储器件182 8.2磁盘182 8.3DBMS文件管理184 8.4数据库文件组织184 8.4.1行存储184 8.4.2列存储188 8.5文件中元组组织189 8.6索引191 8.6.1稠密索引和稀疏索引192 8.6.2多级索引193 8.6.3B+树索引194 8.6.4哈希方法196 习题198 第9章查询处理与优化199 9.1查询处理过程及查询优化问题199 9.2关系代数表达式的等价变换与优化201 9.2.1关系代数表达式等价变换规则201 9.2.2关系代数等价变换的启发式规则204 9.3实现关系运算的算法与优化204 9.3.1选择运算的算法与优化204 9.3.2连接运算的算法与优化205 9.4表达式的求值方法与优化208 9.4.1实体化208 9.4.2流水线209 9.5基于代价的定量优化209 习题210 第10章事务处理212 10.1事务概念212 10.1.1如果没有事务212 10.1.2事务及其特性213 10.2并发执行和调度216 10.2.1并发执行216 10.2.2可串行化219 10.3并发控制220 10.3.1锁220 10.3.2两阶段封锁221 10.3.3死锁223 10.4故障恢复223 10.4.1恢复准备223 10.4.2恢复处理226 10.5小结228 习题228 第11章大数据技术230 11.1大数据特征230 11.2大数据关键技术231 11.3分布式文件系统231 11.3.1计算机集群231 11.3.2分布式文件系统232 11.4NoSQL数据模型233 11.4.1键值存储233 11.4.2列族存储234 11.4.3文档存储234 11.4.4图存储234 11.5大数据计算236 11.5.1批处理237 11.5.2流式计算238 11.6大数据应用239 11.6.1基于内容推荐239 11.6.2协同过滤推荐240 11.6.3小结242 习题242 附录A实验指导243 实验一认识数据库243 实验二SQL Server 基础和安装244 实验三数据库的基本操作244 实验四数据表的基本操作245 实验五数据备份与还原248 实验六简单查询: 基于“感动中国年度人物” 数据库250 实验七高级数据查询252 实验八Java连接数据库254 实验九简单的流程控制与用户自定义函数256 实验十索引和视图257 实验十一SQL Server权限管理258 实验十二触发器259 实验十三事务与并发控制260 实验十四PowerDesigner261 实验十五综合应用261 实验课评分标准262 实验报告评分标准实例263 实验报告样板267 实验软件下载279 附录B案例: 网络考试系统280 B.1需求分析281 B.2系统用例图281 B.3系统总体设计283 B.4数据库设计290 B.5系统实现296 B.6小结300 附录C数字化应急预案完备性评价系统设计与开发301 C.1应急预案完备性标准的建立301 C.2功能分析303 C.3系统数据库的设计与实现304 C.4系统功能模块的开发介绍306 C.5小结307 附录D数字预案一致性评审系统的设计与实现308 D.1数字预案一致性标准的建立308 D.2系统需求310 D.3系统架构311 D.4系统的设计与实现311 D.4.1主要功能模块设计311 D.4.2数据库的设计与实现313 D.5小结314 附录E数字化应急预案可操作性评价系统设计与开发315 E.1应急预案可操作性测量标准的建立315 E.1.1基本子任务的内部复杂度315 E.1.2应急预案的整体复杂度317 E.2系统功能分析320 E.3系统数据库的设计与实现321 E.4系统功能模块的开发介绍323 E.5小结325