数据库系统概念
- 格式:docx
- 大小:18.09 KB
- 文档页数:6
数据库系统概念-
1 简介
1. A database-management system (DBMS) is a collection of interrelateddata and a set of
programs to access those data. The collection of data,usually referred to as
thedatabase,contains information relevant to an enterprise.
2. 数据库管理系统——数据以及访问数据的程序的集合。数据库——前面的数据的集合,其中包含与一个企业或组织相关的信息。
3. 使用DBMS的首要目的是提供一种方便、高效的存储、访问数据的方式。
4. DBMS被设计为管理大批量的数据。对数据的管理包括:
a) 定义数据的存储结构
b) 提供操作数据的机制
c) 当系统崩溃或者出现未经授权的对数据的访问时,保证存储的数据的安全性
d) 在多个用户间共享数据时,要避免出现异常结果
1.1 数据库系统应用程序
5. 数据库的使用范围极广:
a) 企业:
i. 销售信息
ii. 账户信息
iii. 人力资源信息
iv. 制造业:供应链、库存、订单信息
v. 在线销售
b) 银行、财务系统:银行、信用卡交易信息、财务信息
c) 大学:学生信息、课程信息、以及常规的企业级信息
d) 航班
e) 通信
6. 过去人们较少直接与数据库打交道,随着互联网的发展人们越来越多地与数据库打交道。在网上买东西、查网银账户时都是在访问数据库里的数据。
1.2 使用数据库系统的目的
7. 早期使用计算机来管理商业信息的方法的出现引发了数据库系统的兴起Database
systems arose in response to early methods of computerized managementof commercial data。
8. 这类方法大约出现在19世纪60年代。管理一个大学的教师、学生、院系、课程等信息的系统可能会选择把各种信息以文件的形式保存在操作系统中。为了让用户能使用这
些信息,系统中要包含一组操作这些文件的程序,这些程序可能分别用于:
a) 添加学生、老师、课程信息
b) 生成学生的课程表、制作花名册
c) 维护学生的年级信息、计算学生的GPA、生成成绩单
9. 当新的需求出现时,就要往系统中添加新的程序,比如,如果该大学决定新增一个专业(比如计算机专业)。则应当添加一个新的学院/系department,系统需要添加新的文件,或者向已有文件中添加信息来记录这个新增的系的老师、新的专业里的学生、课程设置、学位要求等。我们的大学管理系统可能需要添加新的程序来处理这个新增的专业的某些特殊要求。新增的专业可能导致大学的管理方式也发生变化,这可能又会要求新增程序来进行处理。随着时间的推移,我们的大学管理系统可能会需要越来越多的文件,越来越多的系统。
10. 传统的操作系统支持这种文件处理系统,系统把信息存储在不同的文件中,使用不同的程序来对文件中的信息进行增、删、改操作。在D
11. DBMS出现以前,各个组织一般采用这种方式来管理自己的信息,然而使用这种方式有以下的缺点:
a) 数据冗余与不一致。因为系统中的文件和程序是由不同的程序员在不同时期创建的,这些文件的结构可能不一致,这些程序的编程语言也可能各不相同。而且,同样的信息可能会重复在不同的文件中。比如,如果一个学生修了数学和音乐的双学位,则数学系和音乐系的文件中可能都会存储这个学生的地址、联系方式。这样的数据冗余,会占用的空间,提高访问成本,更严重的是,可能导致数据不一致data inconsistency——同一份信息存在不同的位置,内容却不一致。比如前面的例子中,可能音乐系的文件中的学生的地址与数学系的文件中的学生的地址不一样。
b) 数据访问比较困难。假设某个员工使用文件处理系统来找出住在某个邮区postal-code area的所有学生的姓名。由于程序的设计者没有料到会有这样的请求,系统中没有现成的程序能处理这样的需求。不过系统中可能有一个程序能生成所有学生的列表。这时这位员工有2种选择:生成全部学生的列表,然后,要么自己手工去挑出自己所需的信息,要么让一位程序员再写一个程序来进行挑选。两种方法都会让人不爽。假设,这次写了这样一个程序,过一段时间,这位员工要找出那些目前至少已经有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 all.传统的文件处理系统难以保证原子性。
f) 并发访问异常。多数系统都允许多个用户同时更新数据,以提高系统的性能。而并发更新可能导致数据不一致。假设学院A的账户余额为10000美元,假设该学院的两名员工同时从A学院的账户中取钱,一个人取500,一个人取100.两人的操作几乎同时。则可能出现更新丢失,两个程序同时开始运行,读到的账户余额都为10000,一个程序更新完后A学院还有9500,另一个程序更新完后,A学院还有9900.但,实际上,A学院真正还有的既不是9500也不是9900,而是9400.在这种情况下,必须有某种监督机制,但是文件处理系统要实现这咱监督比较困难,因为数据可能会被多个程序访问,而这些程序相互之间可能并没有协调好。另一个例子:选课系统要求一门课只能有40个学生上,假设当前已有39名学生选上了,又有两个学生同时来选这门课,则会有两个程序并发地去访问选课数据,两个程序读到的当前学生数都为39,都可以添加,添加完之后选上的学生的数目都是40。但实际上,此时已经有41人了。
g) 安全问题。不应该让每个用户都能访问数据库中的全部数据。起码工资就不应该能随意被人看到。负责财务的员工也不需要看到人力相关的信息。文件处理系统要实现这样的安全性约束也比较困难。
12. 以上问题,加上一些别的问题,推动了DBMS的发展。
1.3数据的不同视图
13. 数据库的一个主要作用是将数据的某种抽象视图提供给用户provide users with an
abstract view of the data。也就是说,数据库向用户隐藏数据存储与操作的某些细节。
1.3.1数据抽象
14. 为了提高数据访问的效率,数据库的设计者们使用复杂的数据结构来在数据库中存储数据。通过多个层次的抽象,开发人员向用户隐藏了这些复杂的细节,以达到简化用户与系统的交互的目的。主要有3种抽象层次:
a) 物理层,这是最底层的抽象,describeshow the dataare actuallystored.详细地描述数据的存储方式。
b) 逻辑层,描述的是存储在数据库中的内容,以及它们相互间的关系。describeswhat
data are stored in the database, and whatrelationships exist among thosedata。在逻辑层,人们用一组相对较为简单的结构来描述整个数据库。虽然逻辑层的较简单的结构的实现可能涉及复杂的物理层的结构,但是用户并不需要知 道这些。这被被为物理数据无关physical data
independence。 数据库管理员由于要决定将哪些内容存储在数据库中,常在逻辑层进行思考
c) 视图层。最高的抽象层。只描述整个数据库的某个部分。虽然视图层只使用简单的结构来描述,但是存储在数据库中的数据的多样性决定了这一层仍然存在许多复杂 的问题。不过大多数的DB用户并不需要知道这些细节,视图层简化了他们与DB的交互。对同一个DB,DBMS可能提供多个视图。
15. 在物理层,一条“教师记录”an instructor record 可以被描述为一块连续的存储空间。编译器向开发人员隐藏了这层抽象,
1.3.2 实例和方案Instances and Schemas
21. 随着信息的增减,数据库会发生变化。在某个特定时刻数据库中存储的信息称为数据库的一个实例Instance。而数据库的整体设计称之为方案Schema。
22. The collection of informationstored in the database at a particular moment is called an
instance of thedatabase. The overall design of the database is calledthe database schema. 数据库的方案变动非常小。
23. 方案好比程序中定义的变量和类型,程序运行的某个时刻,各个变量的值的集合构成这个程序的实例。A database schema corresponds to the variabledeclarations(alongwith