数据库系统原理与应用

数据库系统原理与应用"

作者:程学先
ISBN:9787302349280
定价:¥39
字数:千字
页数:
出版时间:2014.03.01
开本:
版次:1-3
装帧:
出版社:清华大学出版社
简介

本书系统而又全面地叙述数据库系统的基本概念、基本原理和基本方法,内容包括数据库概念、数据模型、存储结构、关系数据理论和关系数据库的基本概念、SQL语言、数据库应用系统设计、SQL Server 2008数据库的基本知识与开发方法;还介绍了服务器与客户端、数据库保护、数据仓库、数据挖掘、分布式数据库和面向对象数据库等知识。

为方便读者自学,清华大学出版社网站将公开发布PowerPoint教学幻灯片、管理信息系统软部件库(Java学习版)、数据库试题库、实验手册等文档。

本书可作为高等院校应用类型本、专科及在职职工学习数据库理论与技术的教材,也可供研究生和从事计算机工作的科技工作者参考。

前言

数据库技术是一门发展迅速,在科学与社会各个领域广泛应用的技术,是计算机科学的重要分支,是建设各类信息系统的基础,目前其应用已从信息检索、一般管理扩大到科技计算、计算机辅助设计、人工智能等各个领域。

本书从应用角度出发,力求由浅入深,由具体到抽象,理论与实践紧密相结合,既系统、完整,又突出应用,使读者能了解什么是数据库及数据库要达到的目标,掌握数据库的设计方法,并了解实际数据库应用系统的组成,利用SQL Server 2008关系数据库及Java程序设计语言设计与实现的方法。

本书先分析了应用Java语言进行数据处理的方法与SQL Server环境下数据存储与操作方法的不同,通过实验认识什么是数据库,说明数据库理论中一些至关重要的概念。通过对不同数据逻辑结构与物理结构的介绍,让读者更切实地体会数据库系统需要解决的问题。

本书以SQL Server 2008为例,使关于数据库原理的学习与数据库应用实际紧密结合,加深对数据库基本理论、基本概念的理解。

本书共分为12章:

第1章说明数据处理发展历程,说明数据库理论中的一些基本的概念与方法。包括数据处理的3个阶段、数据库系统与数据库管理系统。借助为本书研制的程序FileRead.java对数据库数据文件进行剖析,从应用角度分析数据库对数据管理与处理的方法。其中包括:

  数据库的基本目标;数据共享、实现数据共享的基本方法、数据独立与数据集成;数据共享可以减少冗余,保证数据的一致性;数据共享必须明确的问题;数据的完整性控制和安全性控制。

 为实现数据独立,采用三级模式、二级映像的结构,在计算机中具体实现时要求选择合适的存储结构与存取方法。

  数据库应用系统设计的基本方法是抽象与概括,从实际应用系统获取数据模型,逐渐求得计算机能够实现的数据结构。◆数据库系统原理与应用第2章回顾了数据结构中所学的几种重要的基本文件组织,包括顺序文件组织(包括顺序文件与链表组织)和随机文件组织。简单介绍数据库系统中数据是如何组织和存储的,IMS层次数据库、DBTG网状数据库、关系数据库等的特点与结构。为了有效使用数据,提高查询速度,采用了索引文件。索引文件、索引链接文件、多重链表文件、倒排表、B+树等的原理与结构。其中包括:

 基本文件组织。

 索引的概念及意义。

 常见的索引结构——索引文件、索引链接文件、多重链表文件、倒排表和B+树。

第3章介绍数据模型,为了设计出满足需要的数据库结构,可以先设计面向语义的数据模型,再转化为经典数据模型,继而求得数据模式。其中包括:   

 数据模型的概念。

 数据之间的联系、ER图。

 层次数据模型、网状数据模型与关系数据模型。

 从ER图转化求出关系数据模型的方法。

第4章介绍关系数据库的基本概念、函数依赖及其分类、候选关键字的概念及其分析方法、关系规范化。关系数据库所处理的数据是现实世界实体属性的抽象,彼此间存在联系,在关系中属性之间表现出函数依赖关系。由此理论可引出关系规范化的基本理论与方法。其中包括:

 关系的定义及其基本要求。

 函数依赖的概念及完全函数依赖、部分函数依赖和传递函数依赖。

 候选关键字与主属性。

 第一范式、第二范式、第三范式与关系规范化。

 关系分解的正确性。

 函数依赖理论与属性集的闭包。

第5章介绍关系数据库理论基础: 关系代数与关系演算,传统的集合运算与专门的关系运算、关系演算等。关系代数和关系演算是包括关系查询在内的数据操作的基础。其中包括:

 4种传统的关系运算(并、交、差和积)。

 4种专门的关系运算(投影、选择、连接和除法)。

 关系演算。

第6章介绍国际标准化组织ISO批准的关系数据库标准语言SQL,包括定义类语句、查询类语句、操纵类语句和控制类语句。它们是目前所有关系数据库系统对数据操作的核心内容。其中包括:

 SQL关于表、视图、索引的定义语句及结构修改与删除语句。

 SQL查询语句,对单表的查询,对多表的查询,条件查询,嵌套查询,统计查询及前述8种关系运算的SQL语句实现。

 录入、修改、删除等SQL数据维护语句。

 数据安全性控制的实现,SQL系统权限授予与文件权限授予及撤销语句。

 语法树与查询优化概念与方法。

第7章介绍SQL Server 2008数据库管理系统的基本操作方法。其中包括:

 SQL Server 2008系统管理工具与基本操作方法。

 关于库、表、视图、索引等的概念与可视化操作方法。

 涉及库、表、视图、索引等操作的基本命令: 建立数据库的命令,对表结构定义与维护命令,对数据维护命令,排序与索引命令,查询命令,统计命令及其他命令。

 数据完整性、安全性的概念与实现。

 SQL Server 2008中SQL语言的扩展。

第8章介绍TSQL 语言及其基本的语法、句法与程序设计方法。涉及常量、变量、表达式、基本函数、基本命令语句、程序设计方法与工具。其中包括:

 常量、变量、表达式的构成,数据类型与存储方法。

 赋值语句、输入输出语句、程序控制语句、过程的概念与结构。

 常用函数、系统函数、自定义函数。

 游标的概念及应用。

 存储过程与触发器的概念及设计方法。

第9章介绍数据库应用系统设计方法,包括需求分析、概念结构设计、逻辑结构设计、物理设计。数据库应用系统的结构特点与设计要求。

 需求分析、概念结构设计、逻辑结构设计与物理设计中主要问题和解决方法。

 应用系统模块设计。

 数据维护程序、查询程序、统计分析程序、导入导出程序等程序模块的任务与特点。

第10章介绍利用软部件设计数据库应用系统的方法与技术。其中包括: 

 部件概念及设计方法、应用部件技术设计数据库应用系统的方法。

 软部件基本概念,应用软部件设计应用系统的方法。

 为本书设计的软部件库组成,接口参数的概念与内容,生成系统菜单的方法。

 数据维护、数据查询、统计分析、导入导出、打印报表等部件功能与使用方法。

 典型代码。

第11章介绍数据库管理的基本技术。其中包括:

 事务。事务的原子性、永久性、串行性和隔离性。

 并发控制的概念,加锁技术,常用的共享锁(S锁)和排他锁(X锁),死锁的概念,防止死锁的几种措施。

 数据备份的概念,备份的方法。

 数据恢复的主要概念,恢复的3种方式。

第12章介绍其他数据库理论与应用正在发展的技术与方法。其中包括:

 数据整合的概念及方法。

 数据仓库与数据挖掘的概念及应用。

 面向对象的数据库设计方法,Rose的使用方法。

 分布式数据库系统的概念与特点,目前网络环境下数据库分布的情况与需求。

随本书将公开发布“管理信息系统软部件库(Java学习版)”全部源代码及“部件库最小系统(VFP 4.0版和网络版)”全部源代码。“管理信息系统软部件”不以具体的应用系统为目标,而是根据对任意的“数据库”的基本操作进行设计,从实际应用角度表现数据库的理论与方法,将界面设计与功能设计有机结合到一起,围绕数据管理、数据定义、数据操作展开。它就如同电子产品中的智能插件、机械产品中的通用部件一样,只需设定初始参数、拨定若干开关就能用于新的场合。以之为实验工具可以帮助更深入地理解数据库的基本理论与基本概念。“管理信息系统软部件库(Java学习版)”介绍软部件的设计方法,每一个部件都可以用于实际应用系统的设计,读者可以从中学习利用Java语言设计数据库应用系统的基本方法。“Java学习版”要求突出管理信息系统一般程序模块的界面要求与设计方法,目标是提高系统易维护性与易扩展性,让一般应用人员也能很容易地学习与使用,降低系统维护费用。强调其在不同应用系统中的通用性,不刻意强调模块内部的软件复用。要求每一个部件只由一两个程序文件构成,尽量少用公用的程序库,内部允许用中文词汇作变量名、方法名与对象名,使非计算机专业读者也能比较容易地读懂甚至进行维护操作,让读者感觉到学习Java与应用系统的设计并不那么难。

VFP是桌面数据库系统,对环境要求简单,操作快捷,应用“部件库最小系统(VFP 4.0版或网络版)”作为实验或课堂演示工具,也可帮助大家加深对数据库及其应用系统的了解。为深入研究部件技术,本次将全部发布它们的源代码,但在教材中并不涉及。教师可以选择“Java学习版”或“VFP 4.0版”或“VFP网络版”中的一种作为实验工具。这些系统中的“软部件”是范例,又是工具且具有实用价值。选择合适的“软部件”程序复制并用到自己的系统中,可让初学者在几个小时内就能用Java语言或VFP语言设计出简单的数据库应用系统。通过这样的实践真正了解数据库系统的设计方法,了解应用系统一般模块构成及各种功能模块的需求与结构,理解这些模块的设计目标、设计方法与设计技巧,熟练掌握数据库应用系统的设计。

应用软部件设计应用系统,只需正确设计数据库结构,运行本系统提供的cover.java程序定义封面的属性,再运行HDDMenuCreate.java定义菜单结构,之后进行封装,应用系统就建立完成了。原来需要3个月才能完成的毕业设计,现在在完成需求分析与总体设计后两个小时就能优质超量地完成。读者将不只是学习少数几个虚拟应用系统的设计方法,而是要实地设计并建立一到多个真实的数据库应用系统,实战式地学习数据库系统设计与实现的方法。对于完整、全面地学习数据库的理论与设计数据库应用系统的方法进而提高动手能力更具有意义。希望通过本书的学习,读者不只停留在数据库的概念、原理和理论上,而是要实际应用这些理论知识于实践。   

本书软部件采用Java语言设计,但读者可以先不管源代码,重点学习数据库,有条件的回过头再深研程序设计方法,将有更大收获。

 “部件库(Java学习版)”是为学习数据库原理而研制的,只是示意性软件,离商业应用还有比较大的距离,希望对读者学习数据库原理与应用有所帮助,欢迎读者不吝指教。

本书由程学先教授主编,曾玲、程传慧、陈永辉、杨晓艳、张慧萍等参加编写并完成课件、试题库与实验手册的制作,其中,程传慧负责第1、第2和第3章编写;曾玲负责第4、第5章编写;杨晓艳负责第6、第9章编写;张慧萍负责第7章编写;陈永辉负责第8章编写;程学先负责其他章节编写。

管理信息系统软部件程序由程学先、龚晓明、王富强、程传庆、齐赛、王玉明、陈义、王嘉等设计,参加其他电子文稿设计与制作的还有刘伟、陈永辉、程传慧等,在此一并表示感谢。

编者2014年1月6日

目录

第1章数据库基本概念1

1.1数据处理1

1.1.1人工管理阶段2

1.1.2文件系统阶段2

1.1.3数据库系统阶段5

1.2数据库系统9

1.3数据库管理系统13

1.4小结15

习题一16

第2章数据库的存储结构17

2.1基本文件组织17

2.1.1顺序文件组织17

2.1.2链表结构文件组织18

2.1.3随机存取文件组织(Hash文件组织)20

2.2数据库的数据结构及存储结构21

2.2.1IMS层次数据库结构概述21

2.2.2DBTG网状数据库结构概述22

2.2.3关系数据库结构概述22

2.3索引文件组织26

2.3.1索引文件26

2.3.2非关键字索引文件27

2.4B+树文件29

2.4.1B+树结构29

2.4.2插入算法30

2.4.3查找算法30

2.4.4删除算法31◆数据库系统原理与应用2.5小结33

习题二33

第3章数据模型34

3.1数据模型概述34

3.2ER数据模型35

3.2.1数据之间的联系35

3.2.2实体联系模型37

3.3关系数据模型39

3.3.1关系数据模型基本概念39

3.3.2从ER数据模型到关系数据模型40

3.4其他数据模型42

3.4.1网状数据模型42

3.4.2层次数据模型43

3.5小结45

习题三45

第4章关系数据库基本概念46

4.1基本概念46

4.2函数依赖47

4.2.1函数依赖概念47

4.2.2部分函数依赖48

4.2.3完全函数依赖48

4.2.4传递函数依赖48

4.3候选关键字与主属性49

4.3.1候选关键字49

4.3.2主属性50

4.4关系规范化50

4.4.1问题的提出50

4.4.2范式52

4.4.3关系模式分解的正确性57

4.5函数依赖理论58

4.5.1推理规则58

4.5.2属性集的闭包59

4.6小结59

习题四60

第5章关系数据库理论基础61

5.1关系代数61

5.1.1传统的集合运算61

5.1.2专门的关系运算64

5.2关系演算68

5.3小结68

习题五69

第6章SQL语言70

6.1SQL语言概貌70

6.2SQL数据定义功能71

6.2.1基本表的定义和修改71

6.2.2索引的建立和删除72

6.3SQL数据查询语句73

6.3.1语句格式73

6.3.2对单一表查询语句74

6.3.3对两个以上表的连接查询75

6.3.4嵌套查询76

6.3.5关系除法77

6.4视图79

6.5SQL数据更新语句80

6.5.1修改(UPDATE)语句80

6.5.2删除(DELETE)语句80

6.5.3插入(INSERT)语句80

6.5.4视图的更新81

6.6SQL数据控制功能81

6.7嵌入式SQL83

6.8查询优化84

6.9小结86

习题六87

第7章SQL Server 2008基础89

7.1SQL Server管理工具89

7.2建立数据库、表、索引的操作91

7.2.1建立数据库91

7.2.2建立数据表92

7.2.3修改表结构与数据维护97

7.2.4建立索引97

7.2.5数据维护操作99

7.3建立视图的操作100

7.3.1建立视图100

7.3.2使用视图101

7.4数据完整性保护102

7.4.1实体完整性保护的实现102

7.4.2参照完整性保护的实现103

7.4.3域完整性保护的实现105

7.5数据库安全性管理106

7.5.1主体与安全对象106

7.5.2身份验证模式107

7.5.3登录名的管理107

7.5.4创建架构109

7.5.5针对具体数据库创建用户名109

7.5.6服务器角色110

7.5.7数据库角色110

7.5.8权限管理113

7.6SQL Server中扩展的SQL语言114

7.6.1SQL Server 2008的数据定义语句(DDL)114

7.6.2数据操纵语言124

7.6.3SQL查询语句125

7.6.4数据控制语言130

7.7小结132

习题七133

第8章TSQL语言134

8.1常量、变量、表达式、函数134

8.1.1TSQL语言概述134

8.1.2常量、字段变量、内存变量136

8.1.3表达式138

8.1.4常用系统函数141

8.1.5自定义函数145

8.2流程控制语句149

8.2.1BEGIN…END语句149

8.2.2IF…ELSE语句149

8.2.3CASE语句151

8.2.4WHILE…CONTINUE…BREAK语句153

8.2.5GOTO语句154

8.2.6WAITFOR语句154

8.2.7RETURN语句155

8.2.8错误捕捉语句155

8.2.9游标155

8.3SQL Server中的存储过程157

8.3.1存储过程的概念157

8.3.2存储过程的优点158

8.3.3使用TransactionSQL命令创建存储过程159

8.3.4使用管理工作平台创建存储过程161

8.3.5重新命名存储过程162

8.3.6删除存储过程163

8.3.7执行存储过程163

8.3.8系统存储过程163

8.4SQL Server中的触发器164

8.4.1触发器的概念及作用164

8.4.2触发器的种类165

8.4.3创建触发器165

8.4.4触发器的原理169

8.4.5INSTEAD OF触发器170

8.4.6触发器的应用171

8.5SQL Server中的数据导入和导出174

8.5.1使用TSQL进行数据导入导出174

8.5.2使用命令行bcp导入导出数据175

8.5.3使用数据转换服务(DTS)导入导出数据176

8.5.4如何选择具体的数据导入导出方法177

8.6SQL Server应用系统开发环境178

8.6.1SQL Server应用系统的两种系统结构178

8.6.2ODBC179

8.6.3ADO183

8.6.4JDBC184

8.7小结189

习题八190

第9章数据库应用系统设计192

9.1概述192

9.2数据库结构设计193

9.2.1数据库结构设计步骤193

9.2.2需求分析194

9.2.3概念结构设计199

9.2.4逻辑结构设计201

9.2.5数据库物理设计203

9.3数据库应用系统设计205

9.3.1系统模块结构设计205

9.3.2主程序结构设计206

9.3.3数据维护类程序设计207

9.3.4数据查询与统计类程序结构209

9.3.5导入导出类程序构成212

9.3.6统计打印报表程序构成214

9.4系统调试与运行218

9.5小结218

习题九219

第10章利用软部件构建数据库应用系统220

10.1软部件技术概述220

10.1.1软部件主要特征221

10.1.2构建应用系统的主程序结构222

10.1.3水平下拉菜单生成程序设计224

10.2表格式数据维护部件设计231

10.2.1表格式数据维护部件概述231

10.2.2通用表格式数据浏览部件1(tableTenance1.java)232

10.2.3通用表格式数据浏览部件2(tableTenance2.java)235

10.2.4表格式数据维护部件5(tableTenance5.java)236

10.2.5表格式数据维护部件7(tableTenance7.java)240

10.2.6表格式数据维护部件11(tableTenance11.java)245

10.3单数据表单记录数据维护部件250

10.3.1单记录数据维护部件概述250

10.3.2单记录数据维护部件控件布局251

10.3.3单记录数据维护部件1(dataTenance1.java)254

10.3.4单记录数据维护部件2(dataTenance2.java)258

10.4查询类部件设计266

10.4.1查询类部件概述266

10.4.2通用数据单查询部件3(dataQuery3.java)267

10.4.3基本组合查询部件12(dataQuery12.java)268

10.4.4复杂组合查询部件273

10.5数据处理类部件设计275

10.5.1数据处理类部件概述275

10.5.2全表统计部件(dataStatistic1.java)276

10.5.3分组统计部件(dataStatistic2.java)277

10.5.4横向数据处理部件(dataStatistic3.java)278

10.5.5单数据表交叉表(dataStatistic10.java)280

10.6数据通信类部件设计282

10.6.1数据通信类部件概述282

10.6.2覆盖式导出到纯文本文件、XML文件与其他数据表部件

(dataTransfer1.java)284

10.6.3覆盖式导出到Office文件(dataTransfer4.java)286

10.6.4从Office文件导入部件(dataTransfer10.java)288

10.7打印报表部件设计289

10.7.1打印报表部件概述289

10.7.2简单表格式报表格式生成部件(printFormat1.java)290

10.7.3其他报表格式生成部件291

10.7.4统计图形显示程序292

10.7.5打印预览部件(dataPreview.java)293

10.7.6打印报表部件(dataPrint.java)294

10.8系统工具类部件295

10.9小结297

习题十297

第11章数据库的管理299

11.1事务处理299

11.1.1事务的基本概念299

11.1.2事务处理过程分析300

11.1.3SQL的事务管理300

11.2并发控制302

11.2.1并发处理产生的三种不一致性302

11.2.2封锁304

11.3备份与恢复306

11.3.1故障的类型307

11.3.2事务日志307

11.3.3恢复的概念308

11.3.4数据的转储309

11.3.5创建备份设备310

11.3.6备份数据库310

11.3.7恢复311

11.4小结312

习题十一313

第12章其他数据库技术概述314

12.1面向对象数据模型314

12.1.1UML定义的类图315

12.1.2利用Rose建模操作319

12.1.3从建模到建库与建表的自动化操作320

12.2数据仓库322

12.2.1数据仓库的概念323

12.2.2数据仓库和数据集市324

12.2.3数据仓库的处理325

12.2.4联机分析(OLAP)技术概述326

12.2.5SQL Server中的数据仓库组件328

12.3数据挖掘329

12.3.1数据挖掘技术概述329

12.3.2数据挖掘的定义331

12.3.3数据挖掘的过程模型及常用技术331

12.3.4目前数据挖掘的主要应用332

12.4分布式数据库333

12.4.1分布式数据库系统概述333

12.4.2分布式数据存储334

12.4.3分布式数据的查询处理335

12.4.4分布式数据库系统中的事务处理335

12.4.5数据对象的命名方式与表的管理339

12.4.6更新传播341

12.5小结341

习题十二342

参考文献343

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个