第1章 数据库与数据库用户
数据库和数据库系统已经成为现代社会日常生活中的重要组成部分,在每天的工作和生活中,大多数人都会或多或少地与数据库打交道。例如,到银行存钱或取钱;预订宾馆房间或机票;在图书馆的计算机化目录中查找图书条目;或者通过其网上商店的网页从一个Internet商家购买商品(如图书、玩具或计算机),所有这些活动都会涉及某些人或某些计算机程序要访问数据库。如今即便是到超市购物,也经常会涉及超市商品目录数据库的自动更新。
以上所列举的与数据库的交互行为就是我们所称的传统数据库应用(traditional database application),在传统数据库应用中,大多数信息都是以文本或数字形式来存储和访问的。过去几年中,随着技术的发展,已经出现了许多令人欢欣鼓舞的新数据库系统应用。多媒体数据库(multimedia database)现在可以存储图片、视频片断以及语音消息。地理信息系统(Geographic Information System,GIS)可以存储和分析地图、气象数据和卫星图像。许多公司使用数据仓库(data warehouse)和联机分析处理(online analytical processing,OLAP)来提取、分析超大型数据库中的有用信息以辅助决策。实时(real-time)和主动数据库技术(active database technology)则用于控制工业和制造业生产过程。而且数据库搜索技术也已经应用到World Wide Web上,从而改善信息的搜索,以满足浏览Internet的用户的需求。
不过,要想理解数据库技术的基础,必须从传统数据库应用的基本知识学起。所以本章的第1.1节首先定义了什么是数据库,然后将给出其他基本术语的定义。第1.2节举了一个简单的UNIVERSITY数据库例子来对前面的讨论加以讲解。第1.3节描述了数据库系统的一些主要特点。第1.4和1.5节对工作涉及到使用数据库和与数据库打交道的人员进行了分类。第1.6、1.7和1.8节更为全面地讨论了数据库系统赋予我们的各种能力,并介绍了一些典型的数据库应用。第1.9节是本章的小结。
如果读者只是想快速了解数据库系统,可以只学习第1.1~1.5节的内容,简单浏览或跳过第1.6~1.8节,然后直接进入第2章的学习。
1.1 绪论
越来越多的人开始使用计算机,计算机的应用领域也在不断扩大,数据库和数据库技术对此产生了深刻的影响。可以毫不夸张地说,数据库在使用计算机的各个领域中都起着举足轻重的作用,包括商业、电子商务、工程、医疗、法律、教育和科学实验等等领域,而以上所列还远不是全部。既然数据库(database)这个词如此通用,那么在学习数据库时首先就要明确什么是数据库,所以本书将先为数据库下一个定义,再逐步系统地学习数据库。这里最先给出的定义非常宽泛。
数据库(database)是相关数据的一个集合①。所谓数据(data),指的是可记录的已知事实,并有隐含的含义。例如,可以考虑你所认识的某个人的名字、电话号码和地址。你可能把这个数据保存在了一个带索引的通讯簿上,或者使用个人计算机和诸如Microsoft Access、Excel等软件将其存储到了硬盘上。这就是具有隐含含义的相关数据的集合,因此正是一个数据库。
前面的数据库的定义非常宽泛;例如,可以将组成本页文本的字的集合看作是相关数据,这样就构成了一个数据库。不过,数据库这个术语的一般使用往往更为严格。数据库有如下隐含性质:
— 数据库代表了现实世界的某些方面,有时我们称之为微世界(miniworld)或论域(universe of discourse,UoD)。微世界的变化会在数据库中有所反映。
— 数据库是逻辑上一致而且有某种内在含义的数据集合。不能把数据的随机归类就称为是数据库。
— 数据库是为一个特定目标而设计、构建并装入数据的。数据库有目标用户组,而且存在这些用户组感兴趣的一些预想应用。
换句话说,数据库必须有可以从中获取数据的数据源,要与现实世界的事件存在某种程度的交互,而且还需要有对此数据库内容很感兴趣的用户组。
数据库的规模不一,复杂性也可高可低。例如,前面提到的名字和地址列表中可能只有几百条记录,每条记录都有一个简单的结构。而一个大型图书馆的计算机化书目中可能包含五十万条按不同类别组织的条目(主要是根据主要作者的姓氏、主题、书名等来组织),每个类别又按字母顺序进行组织。而美国国家税务局(Internal Revenue Service,IRS)维护的数据库无论是规模还是复杂性则更要大得多,这个数据库要记录美国纳税人提交的税单。假设现有1亿个纳税人,平均每个纳税人(一次)提交五份税单,而每份税单中大约有400个字符的信息,那么这个数据库中就有100×106×400×5个字符(字节)的信息。除了当前的纳税记录外,如果IRS还要保存每名纳税人在此之前的三次纳税记录,那么数据库将达到8×1011字节(800GB)。因此,必须对如此大量的信息进行组织与管理,以便用户在需要时查询、检索和更新数据。
可以手工地生成和维护数据库,也可以利用计算机维护。例如,图书馆卡片目录就是一个数据库,可以手工地创建和维护。计算机化数据库既可以由一组专门为完成此任务而编写的应用程序来创建和维护,也可以由数据库管理系统加以创建和维护。当然,本书只关注计算机化的数据库。
数据库管理系统(Database Management System,DBMS)是支持用户创建和维护数据库的一组程序。由此可见,DBMS是一个通用软件系统,可为定义、构建、操纵数据库以及在不同用户和应用间共享数据库提供便利。定义(defining)一个数据库涉及到以下内容,即对于要存储在数据库中的数据,指定其数据类型、结构和约束。构建(constructing)数据库是指在DBMS所控制的某种存储介质上存储数据本身的过程。操纵(manipulating)数据库包括如下功能:查询数据库以获取所需数据、更新数据库以反映微世界的变化,以及由数据生成报告等。共享(sharing)数据库允许多个用户和程序并发地访问数据库。
DBMS提供的其他重要功能包括:保护数据库以及在较长时期内维护数据库。保护(protection)既包括防止硬件或软件故障(崩溃)的系统保护,又包括避免非授权或恶意访问的安全保护。通常大型数据库的生命周期可能会长达数年,所以DBMS必须允许数据库系统能够根据需求变化随时间推进而不断发展,从而做到对系统的维护(maintain)。
不一定非要用通用DBMS软件实现计算机化数据库,也可以自己编写一组程序来创建和维护数据库,这也就是创建我们自己的特定功能DBMS软件。不论哪种方式(不管是否使用通用DBMS),通常都必须部署大量复杂软件。实际上,大多数DBMS都是非常复杂的软件系统。
为了完成最初的定义,我们将把数据库和DBMS软件统称为数据库系统(database system)。图1.1给出了到目前为止我们已经讨论过的概念。
![]() |
| 图1.1 一个简化的数据库系统环境 |
| 回书目 上一节 下一节 |
|
· Linux笔试面试题选摘测.. · 08年5月软考网管上午真.. · 性能测试从零开始 目录 · 08年5月软考网工上午真.. · 上周拒绝服务攻击(DDo.. · 08年5月各大网上书店及.. |
· 2008年5月24日软考试题.. · 软件设计师专家临考模.. · 上周网络管理员专家自.. · 网络工程师自测获奖名.. · 08年4月各大网上书店及.. · 系统分析师自测获奖名.. |
|
||||
| · ASP.NET开发教程 · 专题:ASP.NET 2.0基础.. · LAMP技术精解 · 服务器节能与绿色IT · ARP攻击防范与解决方案 · Linux 集群技术专题 · Windows集群服务应用 · CISSP认证成长之路 |
· SQL Server 2008/2005.. · SQL Server入门到精通 · 网络工程师职业规划与.. · 浏览器的战国时代 · 运营商封堵ADSL共享 中.. · 微软出价446亿美元收购.. · 技术人求职简历完备手册 · 开源虚拟化技术Xen |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Apache技术专题 · Windows集群服务应用 · 国际文档格式标准开战 |
· 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 · 了解统一威胁管理(UTM).. · 专题:AIX操作系统管理.. · 访问控制列表(ACL)介绍 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · 三层交换技术专题 · Apache技术专题 · 企业数据恢复指南 · Windows集群服务应用 |
· 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 · 访问控制列表(ACL)介绍 · ASP.NET开发教程 · PHP开发应用手册 |
|||