文档介绍:数据库系统概念
数据库系统概念-
1 简介
1. A database-management system (DBMS) is a collection of interrelateddata and a 么自己手工去挑出自己所需的信息,要么让一位程序员再写一个程序来进行挑选。两种方法都会让人不爽。假设,这次写了这样一个程序,过一段时间,这位员工要找出那些目前至少已经有60个课时的学生,又没有现成的程序,又得要么手工挑要么再写一个程序,不好玩。这里的问题在于:传统的文件处理系统无法提供一种比较便捷的方式来供用户检索数据,必须有一种能更灵活积极地响应用户的数据检索需求的系统才能满足用户需求。
c) 数据隔离。数据分散在不同文件中,文件格式可能各不相同,编写新程序从现有文件中获取数据会比较困难。
d) 数据完整性问题。存储在数据库中的数据必须满足一些一致性约束consistency constraints 。假设大学里的每个学院都有一个账户,并且要求每个账户里的余额不能小于0。开发人员得在各个程序中都添加相应的代码来实现这样的约束,增加新的约束时,如果要通过改代码来实现约束的话,会比较麻烦。当新的约束涉及多个文件中的不同数据时,问题可能会更复杂。
e) 原子性问题。就像其他系统一样,计算机系统也可能出故障。发生故障以后能恢复到发生故障之前的正确状态,对大多数系统而言都十分重要。假设从A学院的账户转500美元去B学院的账户,如果转账过程在发生错误,则可能A的账户少了500美元,B的账户却没有多500美元,导致数据库处于不一致的状态。因此,扣款和存款操作应该要么都发生,要么都不发生。也就是说,资金操作应当是原子的——要么全部发生,要么全部不发生。the funds transfer must beatomic—it must happeninits entirety or not at 。
f) 并发访问异常。多数系统都允许多个用户同时更新数据,以提高系统的性能。而并发更新可能导致数据不一致。假设学院A的账户余额为10000美元,假设该学院的两名员工同时从A学院的账户中取钱,一个人取500,。则可能出现更新丢失,两个程序同时开始运行,读到的账户余额都为10000,一个程序更新完后A 学院还有9500,另一个程序更新完后,,实际上,A学院真正还有的既不是9500也不是9900,,必须有某种监督机制,但是文件处理系统要实现这咱监督比较困难,因为数据可能会被多个程序访问,而这些程序相互之间可能并没有协调好。另一个例子:选课系统要求一门课只能有40个学生上,假设当前已有39名学生选上了,又有两个学生同时来选这门课,则会有两个程序并发地去访问选课数据,两个程序读到的当前学生数都为39,都可以添加,添加完之后选上的学生的数目都是40。但实际上,此时已经有41人了。
g) 安全问题。不应该让每个用户都能访问数据库中的全部数据。起码工资就不应该能随意被人看到。负责财务的员工也不需要看到人力相关的信息。文件处理系统要实现这样的安全性约束也比较困难。
12. 以上问题,加上一些别的问题,推动了DBMS的发展。
13. 数据库的一个主要作用是将数据的某种抽象视图提供给用户provide users with an abstract view of the data。也就是说,数据库向用户隐藏数据存储与操作的某些细节。
14. 为了提高数据访问的效率,数据库的设计者们使用复杂的数据结构来在数据库中存储数据。通过多个层次的抽象,开发人员向用户隐藏了这些复杂的细节,以达到简化用户与系统的交互的目的。主要有3种抽象层次:
a) 物理层,这是最底层的抽象,describeshow the dataare 。
b) 逻辑层,描述的是存储在数据库中的内容,以及它们相互间的关系。describeswhat data are stored in the database, and whatrelationships exist among thosedata。在逻辑层,人们用一组相对较为简单的结构来描述整个数据库。虽然逻辑层的较简单的结构的实现可能涉及复杂的物理层的结构,但是用户并不需要知道这些。这被被为物理数据无关physical data independence。数据