《数据库原理与应用(SQL Server 2005)》用通俗的语言将抽象的数据库系统原理具体化,结合目前最流行的数据库管理系统——SQL Server 2005讲述了数据库的基本理论与应用。全书共11章,主要内容包括绪论、数据模型、关系数据库、SQL Server 2005数据库基础、关系数据库标准语言SQL、存储过程和触发器、安全性管理、数据库保护、关系模式规范化、数据库设计和Visual Basic.NET数据库编程实例——教务管理系统等,附录部分还给出了实验指导等内容。书中还包括大量的实例及习题,并配有丰富的实验项目。书中实例采用积件的方式围绕一个完整的数据库管理系统——教务管理系统来设计,这也是《数据库原理与应用(SQL Server 2005)》区分于其他数据库教材的一个重要特色。?
《数据库原理与应用(SQL Server 2005)》既可作为一般本科院校或高职高专计算机以及非计算机专业数据库课程的教材,也可作为数据库方面的培训用书,还可作为数据库开发人员的参考书。
数据库技术是计算机学科中极其重要的组成部分。一直以来,各种应用广泛的信息系统,包括国家经济信息系统、企业管理信息系统、事务型管理信息系统、行政机关办公型管理信息系统和专业型管理信息系统等,都需要数据库技术的支持。同时,数据库原理与技术也是当前高等院校计算机及相关专业必修的核心课程之一。
面对市场上琳琅满目的数据库相关教材,读者要选择一本合适的教材却并不容易,原因主要有两点:一方面是有的数据库教材过分强调理论,读者在艰难的学习中好不容易理解了相关理论,却不能将理论付诸于实践;另一方面是有的数据库教材过分强调应用,学生通过对教材的学习基本上能够开发一个小型的数据库应用系统,但只知其然而不知其所以然。以上两方面的问题都源于数据库技术理论与实践教学的严重脱节。
为了解决上述问题,编者根据近二十年的“数据库原理”、“SQL Servet与应用”、“数据库原理与应用”等课程的教学经验及其立项课题研究成果,坚持以理论与实践相结合的原则,在注重理论性、系统性、科学性的同时,兼顾培养学生的自主创新学习能力,编写了本书,旨在帮助读者通过目前最流行的数据库管理系统——SQL Servet 2005的学习掌握数据库技术的基本原理,并能够利用目前被广泛应用的开发工具——Visual Basic.NET 2005开发一个实用的管理信息系统。
本书是湖南省教育厅2008年教学改革研究立项项目——“大学计算机应用基础”课程教学改革的研究与实践(湘教通[2008]263号)的研究成果。
出版说明
前言
第1章 绪论
1.1 信息、数据与数据处理
1.2 数据管理技术的发展
1.2.1 人工管理阶段
1.2.2 文件系统阶段
1.2.3 数据库系统阶段
1.3 数据库系统的组成
1.4 数据库技术的研究领域
1.5 本章小结
1.6 习题
第2章 数据模型
2.1 数据模型概述
2.1.1 数据描述的三种范畴
2.1.2 两类抽象层次的数据模型
2.2 概念模型与E-R方法
2.2.1 概念模型的基本概念
2.2.2 实体-联系模型
2.3 结构数据模型
.2.3.1 数据模型的三要素
2.3.2 非关系模型
2.3.3 关系模型
2.4 数据库系统的模式结构
2.4.1 数据库系统模式的概念
2.4.2 数据库系统的三级模式结构
2.4.3 数据库的二级映像与数据独立性
2.5 本章小结
2.6 习题
第3章 关系数据库
3.1 关系数据模型
3.1.1 关系数据模型的数据结构和基本术语
3.1.2 关系的形式定义
3.1.3 关系的性质
3.1.4 关系模式
3.2 关系模型的完整性约束
3.2.1 实体完整性规则
3.2.2 参照完整性规则
3.2.3 用户定义完整性
3.3 关系代数
3.3.1 关系代数的五种操作
3.3.2 关系代数的其他操作
3.4 本章小结
3.5 习题
第4章 SQL Server 2005数据库基础
4.1 SQL Server 2005简介
4.2 SQL Server服务器的启动、暂停和停止
4.3 SQL Server Management Studio简介
4.3.1 对象资源管理器
4.3.2 查询编辑器
4.4 注册服务器
4.5 SQL Server数据库的创建与维护
4.5.1 SQL Server 数据库的组成
4.5.2 系统数据库
4.5.3 创建数据库
4.5.4 修改数据库
4.5.5 删除数据库
4.5.6 数据库的重命名
4.6 Transact?SQL程序设计基础
4.6.1 SQL与Transact?SQL
4.6.2 SQL Server标识符
4.6.3 数据类型
4.6.4 常量、变量和运算符
4.6.5 函数
4.6.6 程序注释语句
4.6.7 批处理
4.6.8 流程控制语句
4.7 本章小结
4.8 习题
第5章 关系数据库标准语言SQL
5.1 SQL的三级模式结构
5.2 数据定义功能
5.2.1 基本表的定义
5.2.2 修改表结构
5.2.3 删除表
5.2.4 建立与删除索引
5.3 数据查询功能
5.3.1 查询语句的基本结构
5.3.2 单表查询
5.3.3 多表连接查询
5.3.4 嵌套查询
5.3.5 集合查询
5.4 数据操纵功能
5.4.1 插入数据
5.4.2 修改数据
5.4.3 删除数据
5.5 视图
5.5.1 视图的概念
5.5.2 定义视图
5.5.3 删除视图
5.5.4 查询视图
5.5.5 更新视图
5.5.6 视图的作用
5.6 数据控制
5.6.1 数据控制简介
5.6.2 授权
5.6.3 收回权限
5.7 本章小结
5.8 习题
第6章 存储过程和触发器
6.1 存储过程
6.1.1 存储过程的基本概念
6.1.2 创建存储过程
6.1.3 执行存储过程
6.1.4 存储过程的返回值和状态信息
6.1.5 存储过程的修改和删除
6.2 触发器
6.2.1 触发器的概念
6.2.2 触发器的功能
6.2.3 触发器的分类
6.2.4 Inserted表和deleted表
6.2.5 操作触发器的注意事项
6.2.6 创建触发器
6.2.7 DML触发器
6.2.8 DDL触发器
6.3 本章小结
6.4 习题
第7章 安全性管理
7.1 SQL Server 的安全机制
7.1.1 操作系统级的安全性
7.1.2 SQL Server 级的安全性
7.1.3 数据库级的安全性
7.2 登录和用户
7.2.1 登录身份验证模式及其设置
7.2.2 创建登录
7.2.3 创建用户
7.3 权限管理
7.3.1 服务器权限
7.3.2 数据库对象权限
7.3.3 数据库权限
7.4 角色管理
7.4.1 固定服务器角色
7.4.2 数据库角色
7.5 本章小结
7.6 习题
第8章 数据库保护
8.1 事务
8.1.1 事务的概念
8.1.2 事务的性质
8.1.3 事务调度
8.1.4 SQL Server的事务处理
8.2 并发控制
8.2.1 并发控制概述
8.2.2 封锁
8.2.3 封锁协议
8.2.4 活锁和死锁
8.2.5 并发调度的可串行性
8.2.6 两段锁协议
8.2.7 封锁的粒度
8.2.8 SQL Server的并发控制
8.3 数据库恢复技术
8.3.1 恢复的实现技术
8.3.2 具有检查点的恢复技术
8.3.3 SQL Server 的备份与恢复
8.4 本章小结
8.5 习题
第9章 关系模式规范化
9.1 问题的提出
9.2 函数依赖的基本概念
9.2.1 函数依赖
9.2.2 一些术语和符号
9.3 规范化
9.3.1 第一范式
9.3.2 第二范式
9.3.3 第三范式
9.3.4 BCNF范式
9.3.5 多值依赖与第四范式
9.3.6 各范式间的关系
9.4 本章小结
9.5 习题
第10章 数据库设计
10.1 数据库设计概述
10.1.1 数据库设计的特点
10.1.2 数据库设计方法
10.1.3 数据库设计的基本步骤
10.2 数据库规划
10.3 需求分析
10.3.1 需求分析的任务
10.3.2 调查
10.3.3 结构化分析方法
10.4 概念结构设计
10.4.1 概念结构设计的策略与步骤
10.4.2 采用E?R方法的概念结构设计
10.5 逻辑结构设计
10.5.1 E?R模型向关系数据模型的转换
10.5.2 关系模型的优化
10.5.3 设计外模式
10.6 物理结构设计
10.6.1 物理设计的内容与方法
10.6.2 关系模式存取方法选择
10.6.3 确定数据库的存储结构
10.6.4 物理设计的评价
10.7 数据库行为设计
10.7.1 功能需求分析
10.7.2 功能设计
10.7.3 事务设计
10.8 数据库的实施和维护
10.8.1 数据库的实施
10.8.2 数据库的运行和维护
10.9 本章小结
10.10 习题
第11章 Visual Basic.NET数据库编程实例——教务管理系统
11.1 Visual Basic.NET介绍
11.1.1 Microsoft Visual Studio 2005集成开发环境
11.1.2 Visual Studio 2005 IDE 的用户界面元素
11.2 利用ADO.NET进行数据库开发
11.2.1 ADO.NET概述
11.2.2 ADO.NET对象模型
11.3 教务管理系统的实现
11.3.1 创建数据库及数据表
11.3.2 系统框架示意图
11.3.3 业务方法类的实现
11.3.4 系统登录模块的设计与实现
11.3.5 基础数据管理模块的设计与实现
11.3.6 教师选课以及成绩管理模块的设计与实现
11.3.7 学生选课以及成绩查询模块的设计与实现
11.4 本章小结
附录
附录A 实验指导
实验一 SQL Server2005服务器与数据库管理
实验二 表的建立与维护
实验三 数据查询
实验四 创建和使用视图
实验五 存储过程的创建和使用
实验六 触发器的创建和使用
实验七 SQL Server的数据库恢复技术
实验八 SQL Server的安全性管理
实验九 数据库系统开发
附录B SQL Server 2005服务器注册常见问题及其解决办法
参考文献
例如,学校教务处、财务处及医院建立的文件中都有学生资料,如家庭住址、联系电话等,这便是数据冗余,如果某个学生退学,就要修改三个部门文件中的数据,否则会导致同一数据在三个部门的不一致。产生上述问题的原因是这三个部门的文件中的数据没有联系。
1.2.3数据库系统阶段
20世纪60年代后期,计算机的软硬件得到了进一步的发展,已出现了容量大、存取速度快的磁盘,需要管理的数据量急剧增加,数据管理技术得到了很大提高。1968年,美国IBM公司成功开发了世界上第一个数据库管理系统IMs,标志着数据管理技术进入了数据库系统阶段。数据库系统克服了文件系统的缺陷,应用程序与存储的数据分离开来,提供了对数据更有效的管理。
数据库系统阶段的数据管理方式有以下几个特点。
1.数据结构化
在数据库系统中,数据按一定的模式组织与存储,这就称为数据的结构化。结构化的数据能反映数据间的内在联系。由于数据库是从全部应用的全局考虑并集成数据结构,因此数据库中的数据已不再只是面向个别应用,而是面向整个系统,各个不同应用所需数据只是整个全局数据的局部子集。
2.数据的共享性高。冗余度低。易扩充
数据共享是数据库技术先进性的重要体现。数据库的数据共享主要体现在:第一,数据库中的数据可供多个应用使用;第二,可以开发新的应用而不增加新的数据。数据共享可以减少数据冗余,节省存储空间,同时可以在现有数据的基础上开发新的应用,所以整个应用系统易于扩充。
3.数据独立性高
数据库系统中的数据文件是面向数据的,而与具体的应用程序无关。在数据库系统中,数据具有很高的独立性。
数据的独立性包括数据的物理独立性和数据的逻辑独立性。
数据的物理独立性是指应用程序与存储在磁盘上的数据库中的数据是相互独立的。这是因为数据在磁盘上的存储由数据库管理系统统一管理,应用程序只是处理数据的逻辑结构,即使数据的物理存储结构发生了变化,应用程序也不用改变。
数据的逻辑独立性是指应用程序涉及的数据只是系统全局数据的局部子集,即使全局数据发生了改变,局部数据和应用程序也不用改变。
数据的逻辑独立性和物理独立性的具体实现细节将在第2章给出。
4.数据由数据库管理系统统一控制
在数据库系统中,多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据,即数据库的共享是并发的。数据库管理系统对数据的控制主要体现在:第一,对数据的安全性进行保护;第二,对数据的完整性进行检查;第三,数据的并发控制;第四,数据库的恢复。具体内容参见本书后面的相关章节。