数据库系统概念-读书笔记-1.8 ~1.14

来源:互联网 发布:西澳大学知乎 编辑:程序博客网 时间:2024/05/29 11:41

1.8事务管理

1.       在生活中,一项工作时常由多个操作组成。比如A学院给B学院转账。

2.       A的账户扣钱和B的账户加钱这两个操作应该要么都完成要么都不完成才是正确的。原子性Atomicity指的就是多个操作要么全成要么全挂

3.       另一方面,转账之后,数据库的状态应该仍与之前保持一致,也就是说,转账之后,A和B的账户余额之和应该与转账之前相同。对正确性的要求即是指一致性Consistency。

4.       最后,转账结束之后,即使系统崩溃A和B的账户的余额应该保持为转账之后的数目,而不是别的数字,这一点我们称为持久性Durability

5.       事务是数据库应用中完成单个逻辑意义上的完整功能的一组操作的集合,A transaction is a collection of operations that performs a singlelogical function in a database application。

6.       事务应当具备原子性、一致性。事务不能违反现有的数据库一致性约束,如果事务开始之前DB处于一致的状态,事务结束之后,DB状态也应保持一致。但是在事务执行过程中,有可能需要临时破坏数据库的一致状态,因为A账户扣钱B账户加钱这两个操作总有先后顺序。这种临时不一致的状态是必须的,但是,当系统崩溃时处理起来可能会比较麻烦。

7.       合理地定义事务以保持数据库的一致性是程序员的责任。也可以说,把哪些操作放到一个事务里,由程序员来决定。

8.       而事务的原子性和持久性则由数据库的恢复管理器Recovery Manager来实现。不出错的话原子性很容易保证,但是出错了的话,为了保证原子性,就不能让出错的事务影响到DB的状态,也就是说,要把DB恢复到有问题那个事务开始之前的状态。这种情况下,DB要进行错误恢复Faliure Recovery:检测系统错误,并将系统恢复到错误之前的某个一致状态。

9.       当多个事务并发地更新数据时,即使单独来看每个事务都是正确的,整个数据库的一致性还是可能被破坏。这时候就需要并发控制管理器concurrency-controlmanager来控制并发事务之间的交互。事务管理器就由并发控制管理器和恢复管理器两部分组成。

1.9 数据库架构

10.   数据库系统的架构与支撑系统运行的计算机系统关系密切。.   

13.   关于两层、三层架构。两层架构中,应用程序位于客户端,通过查询语句来调用服务器端的数据库系统的功能。客户端和服务器端使用诸如ODBC、JDBC一类的API来进行通行。在三层架构中客户端机器只作为一个前面存在,不包含任何数据库调用,客户端一般通过某个UI与应用程序服务器ApplicationServer交互,应用程序服务器再与数据库系统交互以获取数据。业务逻辑——关于在什么条件下做什么事情The business logic of the application, which says what actions tocarry out under whatconditions(这样解释业务真是太棒了),——放在应用程序服务器中而不是分散在各个客户端。在大型应用以及在互联网上运行的应用上三层架构比较合适。

1.10 数据挖掘Data Mining与信息检索Information Retrieval

14.   数据挖掘大体上是指结合计算机和人力半自动地对大数据库进行分析以发现有用的模式。类似人工智能领域里的机器学习Machine Learning或者统计分析,数据挖掘也试图从数据中发掘规律与模式,然而数据挖掘与机器学习和统计分析的不同之处于在数据挖掘要处理的数据多半存储在磁盘上,因此数据挖掘更多地是从数据库中挖掘知识。

15.   通过数据挖掘获得的某些知识可用一些规则来表达,比如年收入高于5万美元的年轻女性是最可能购买小型运动车的人群。这种规则并具有普适性,更多具有参照意义。还有些知识则以公式来表达,以揭示不同变量之间的关系,或者当某些变量发生变化时,对其可能的结果进行预测。

16.   数据挖掘工作的开始和结束阶段一般会涉及一些人工操作,比如预处理、后处理,另外,从发掘出来的规则中遴选较优的规则也需要人工判断。总的来说,数据挖掘是一项半自动化的工作。

17.   许多大型公司的决策支持数据往往来自不同的渠道,为了高效地使用这些数据,这些公司大多建立起了数据仓库,Data Warehouse。数据仓库基于一个统一的方案Schema在某个站点从多个渠道获取数据,以向用户提供统一的数据访问接口。

18.   文本数据是非结构化的,不像关系数据库里的数据那样一行一列清楚分明。检索非结构化的文本数据的过程称为信息检索information retrieval。信息检索系统在数据的存储和获取上与数据库系统类似,但是其重点则与数据库系统不同,关注的是基于关键字进行查询、判断某篇文档与当前查询的相关性、文档的分析、分类、索引等问题

1.11 特种数据库Specialty Databases

19.   为了扩展数据库系统的应用范围,研究者们在关系数据模型以外又提出了关系对象模型、关结构化模型等模型。

1.11.1 基于对象的模型

20.   目前主流的数据库提供商们大多都支持对象关系型模型,该模型结合了面向对象模型和关系模型的特点,它通过结构、集合、面向对象等扩展了关系模型。

1.11.2半结构化模型

21.   不同于关系模型里一个类型的各个数据项的属性集完全相同,半结构化模型允许同一类型的数据项的属性集各不相同。

22.   XML应当是其中的一种。

1.12数据库用户和管理员

23.   使用数据库的人可分为两类:用户、管理员。

1.12.1 用户与UI

24.   用户有4种:

a)       一般用户,使用写好的应用程序,并能阅读程序生成的较简单的报表。

b)       应用程序开发人员,他们可能使用RAD Rapid application development 工具来迅速地搭建系统的UI以及设计报表格式等。

c)       高级用户,不通过专门的程序来与DB交互,而是通过查询语言或者某种数据分析软件来进行查询、分析。

d)       专门用户,最高级的用户,写特殊的程序,做数据挖掘、专家系统等。

1.12.2管理员

25.   使用DB的一个主要原因是集中控制对数据以及使用数据的程序。能控制整个数据库的人称为DBA。其职责包括:

a)       定义数据库方案Schema

b)       定义数据结构以及访问方法

c)       修改数据库方案以及其物理结构

d)       授予其他用户访问数据的权限

e)       常规维护工作

1.14总结

26.   数据库管理系统DBMS (database-management system)由一组相关联的数据以及访问这些数据的程序组成。

27.   使用DBMS的首要目的是给人们提供一个方便、高效的存取数据的环境。

28.   DMBS用途非常广泛,人们在日常生活中经常直接或间接的与其打交道。

29.   数据库系统是用来存储大批量的数据的。管理数据包括定义信息的存储结构、提供访问这些信息的机制,在出现故障时保证数据的安全,阻止未授权用户访问数据,多个用户共用一份数据时,应当避免出现反常情况。

30.   使用数据库系统的另一个重要目的是给用户提供数据的某种抽象视图,也就是说,向用户隐藏数据的存储、维护等细节。

31.   数据模型是用来描述数据、数据之间的关系,语法、约束等内容的一组概念性的工具conceptual tools,它支撑着整个数据库的结构。

32.   在DB中存储数据目前最常用的是关系模型。还有其他一些模型:面向对象模型、对象-关系模型、半结构化模型等。

33.   DML data-manipulation language,用户访问、操作数据所用的语言。非过程式DML目前使用非常广泛,使用它时只需要指定需要什么数据,而不用声明如何获取数据。

34.   DDL 是是用于定义数据库方案Schema以及数据的其他属性的语言。

35.   数据库设计主要包括数据库方案的设计,目前人们常用ER模型来进行数据库设计。

36.   数据库系统由多个子系统组成:

a)       存储管理器:作为存储在库中的数据与应用程序、提交给数据库的查询之间的接口

b)       查询处理器:编译、执行DDL、DML语句。

37.   事务管理的作用是发生问题时,保证数据库的一致性,以及多个事务并发执行时,防止出现冲突。

38.   数据库系统的架构受底层的计算机系统的结构影响非常大,可以是集中式的也可以是分布式的。

39.   数据库应用一般分为在客户端运行的前端部分和在服务器上运行的后端部分。如果采用2层架构,前端程序直接与后端的数据库交互,如果采用三层架构,则后端程序分解为应用程序服务器和数据库服务器三部分。

40.   Knowledge-discovery尝试从数据中发掘统计规律与模型,数据挖掘是在人工智能领域与统计分析领域发展起来的Knowledge-discovery与将其高效地运用在大型数据库上的技术的结合。

41.   数据库系统的用户可依其专业程度分成4种,不同类型的用户用不同的方式与数据库交互。

0 0
原创粉丝点击