第1章数据库概述/1 1.1数据管理技术1 1.1.1数据管理的概念1 1.1.2数据管理技术的发展过程2 1.2大数据分析与管理技术5 1.2.1关于大数据5 1.2.2大数据存储技术7 1.2.3大数据处理模式9 1.2.4大数据处理的基本流程11 1.3数据库系统概述12 1.3.1数据库系统13 1.3.2数据库系统的模式结构14 1.3.3数据库管理系统15 1.4数据模型16 1.4.1数据模型的基本要素17 1.4.24种主要的数据模型17 1.5概念模型的描述21 1.5.1概念模型21 1.5.2实体及其联系21 1.5.3ER图23 习题25 第2章关系数据库理论基础/27 2.1关系模型27 2.1.1关系模型的数据结构——关系27 2.1.2关系操作30 2.1.3关系的完整性约束30 2.2关系代数33 2.2.1基本集合运算33 2.2.2关系运算34 2.3关系数据库37 2.3.1关系数据库的概念38 2.3.2关系数据库的特点38 2.4函数依赖39 2.4.1函数依赖的概念39 2.4.2函数依赖的性质(Armstrong公理系统)41 2.4.3候选码和主码42 2.4.4属性集闭包与候选码求解方法44 2.4.5依赖函数的等价及最小函数依赖集47 2.5关系模式的范式50 2.5.1第一范式(1NF)50 2.5.2第二范式(2NF)53 2.5.3第三范式(3NF)57 2.5.4BC范式(BCNF)60 2.6关系模式的分解和规范化64 2.6.1关系模式的规范化64 2.6.2关系模式的分解65 2.7关系规范化理论综合分析69 习题72 数据库原理与应用(第2版)目录第3章数据库设计技术/77 3.1数据库设计概述77 3.2需求分析78 3.2.1系统调研过程78 3.2.2需求分析的方法79 3.2.3形成数据字典83 3.3数据库结构设计85 3.3.1概念结构设计85 3.3.2逻辑结构设计89 3.3.3物理结构设计91 3.4数据库的实施、运行和维护93 3.4.1数据库实施93 3.4.2数据库系统的运行和维护94 习题95 第4章数据库查询语言SQL/98 4.1SQL概述98 4.1.1SQL的发展98 4.1.2SQL的特点99 4.1.3SQL的基本功能100 4.2SQL的数据类型100 4.2.1字符串型101 4.2.2数值型101 4.2.3日期时间型102 4.2.4货币型103 4.2.5二进制型103 4.2.6其他数据类型103 4.2.7自定义数据类型104 4.3SQL的数据定义功能104 4.3.1数据表的创建和删除104 4.3.2数据表的修改108 4.4SQL的数据查询功能109 4.4.1基本查询111 4.4.2带DISTINCT的查询113 4.4.3带WHERE子句的条件查询114 4.4.4带BETWEEN的范围查询115 4.4.5带IN的范围查询116 4.4.6带GROUP的分组查询116 4.4.7带LIKE的匹配查询和带IS的空值查询118 4.4.8使用ORDER排序查询结果119 4.4.9连接查询120 4.4.10嵌套查询126 4.4.11查询的集合运算129 4.5SQL的数据操纵功能132 4.5.1数据插入132 4.5.2数据更新134 4.5.3数据删除137 习题137 第5章TransactSQL程序设计/142 5.1TransactSQL142 5.1.1关于TransactSQL142 5.1.2TransactSQL元素143 5.2TransactSQL的变量和常量143 5.2.1变量的定义和使用144 5.2.2TransactSQL常量147 5.3TransactSQL运算符149 5.4TransactSQL流程控制152 5.4.1注释和语句块152 5.4.2IF语句153 5.4.3CASE语句156 5.4.4WHILE语句159 5.4.5GOTO语句160 5.4.6TRY…CATCH语句161 5.4.7RETURN语句162 5.4.8WAITFOR语句162 5.5TransactSQL函数163 5.5.1系统内置函数163 5.5.2用户自定义函数169 习题174 第6章数据库的创建和管理/176 6.1数据库和数据库文件176 6.1.1数据库的组成176 6.1.2文件组177 6.2数据库的创建178 6.2.1创建数据库的SQL语法178 6.2.2创建使用默认参数的数据库179 6.2.3创建指定数据文件的数据库180 6.2.4创建指定大小的数据库181 6.2.5创建带多个数据文件的数据库182 6.2.6创建指定文件组的数据库183 6.3查看数据库184 6.3.1服务器上的数据库184 6.3.2数据库的基本信息185 6.3.3数据库中的数据表186 6.4修改数据库187 6.4.1更改数据库的名称187 6.4.2修改数据库的大小188 6.5数据库的分离和附加189 6.5.1用户数据库的分离189 6.5.2用户数据库的附加190 6.6删除数据库192 习题192 第7章索引与视图/194 7.1索引概述194 7.1.1什么是索引194 7.1.2何种情况下创建索引195 7.1.3索引的原理——B树195 7.2索引的类型196 7.2.1聚集索引和非聚集索引196 7.2.2唯一索引与非唯一索引198 7.2.3组合索引199 7.3创建索引199 7.3.1聚集索引199 7.3.2非聚集索引201 7.3.3唯一索引202 7.3.4组合索引202 7.4查看和删除索引202 7.4.1查看索引202 7.4.2删除索引203 7.5视图概述204 7.5.1视图的概念204 7.5.2视图的优缺点205 7.6视图的创建与删除206 7.6.1创建视图206 7.6.2更新视图209 7.6.3删除视图209 7.7查看视图210 7.7.1视图的定义代码210 7.7.2视图的结构信息210 7.7.3数据库中的视图211 习题211 第8章存储过程和触发器/214 8.1存储过程214 8.1.1存储过程的概念214 8.1.2存储过程的类型215 8.1.3存储过程的创建和调用216 8.1.4存储过程的修改和删除220 8.2触发器221 8.2.1关于触发器221 8.2.2创建触发器223 8.2.3修改触发器227 8.2.4禁用和删除触发器228 习题230 第9章游标/233 9.1游标概述233 9.1.1游标的概念233 9.1.2游标的作用及其实现过程233 9.2创建游标——DECLARE CURSOR234 9.2.1DECLARE CURSOR基本语法234 9.2.2创建简单的游标236 9.2.3创建局部游标和全局游标237 9.2.4创建静态游标和动态游标237 9.2.5创建只读游标238 9.2.6创建键集游标和(快速)只进游标238 9.2.7创建锁定游标和乐观游标239 9.2.8创建双向滚动游标239 9.2.9创建可更新游标239 9.2.10创建综合类型的游标240 9.3打开游标——OPEN240 9.4检索游标数据——FETCH242 9.4.1FETCH基本语法242 9.4.2遍历游标结果集243 9.4.3使用局部变量保存检索结果245 9.4.4使用游标变量246 9.5更新游标数据247 9.5.1修改游标数据247 9.5.2删除游标数据248 9.6关闭和删除游标248 9.6.1关闭游标——CLOSE248 9.6.2删除游标——DEALLOCATE248 习题249 第10章事务管理与并发控制/250 10.1事务的基本概念250 10.1.1事务250 10.1.2事务的ACID特性251 10.2事务的管理251 10.2.1启动事务252 10.2.2终止事务253 10.2.3嵌套事务258 10.3并发控制260 10.3.1并发控制的概念260 10.3.2几种并发问题260 10.3.3基于事务隔离级别的并发控制263 10.3.4基于锁的并发控制270 习题275 第11章数据的完整性管理/277 11.1关于数据完整性277 11.1.1数据完整性的概念277 11.1.2数据完整性的分类277 11.2实体完整性的实现278 11.2.1实体完整性的定义278 11.2.2实体完整性的检查281 11.3参照完整性的实现281 11.3.1参照完整性的定义281 11.3.2参照完整性的检查282 11.4用户定义完整性的实现284 11.4.1域完整性的实现284 11.4.2表级约束完整性的实现288 习题289 第12章数据的安全性控制/292 12.1SQL Server安全体系结构292 12.1.1主体292 12.1.2安全对象294 12.1.3权限295 12.2角色296 12.2.1服务器角色296 12.2.2数据库角色297 12.2.3应用程序角色298 12.3服务器级的安全控制298 12.3.1身份验证模式298 12.3.2创建登录300 12.3.3查看登录303 12.3.4登录的权限管理303 12.3.5删除登录307 12.4数据库级的安全控制308 12.4.1数据库用户的管理308 12.4.2安全对象的权限管理313 12.5架构级的安全控制320 12.5.1架构及其管理320 12.5.2安全对象的权限管理325 习题327 第13章数据库备份与恢复/329 13.1备份和恢复329 13.1.1备份和恢复的概念329 13.1.2恢复模式及其切换329 13.1.3备份类型331 13.2完整数据库备份与恢复332 13.2.1完整数据库备份332 13.2.2完整数据库恢复333 13.3差异数据库备份与恢复334 13.3.1差异数据库备份334 13.3.2差异数据库恢复335 13.4事务日志备份与恢复336 13.4.1事务日志备份336 13.4.2事务日志恢复337 13.5一种备份案例338 习题342 参考答案/343 参考文献/369