您的位置:首页 > 数据库

《数据库系统基础教程》读书笔记——第一章 数据库系统世界

2010-11-02 10:10 253 查看
首先说说读这本书的原因,因为自己最近接触到的一些项目比较多地接触到了数据库,但是自己还没有系统地看过数据库方面的教材,于是找本书看,补补自己的基础。我选了《数据库系统基础教程》,这本书是斯坦福的数据库教材,应该很不错。再说说自己做读书笔记的原因,一方面是为了引发自己的思考,另外一方面也是为了克服自己的惰性。

今天仔细地看了第一章,第一章是一个大体地综述,用名词概述的方法来总结今天的学习成果,可能理解有误,不过先写下来好了:

数据库管理系统(DBMS):一般简称为“数据库系统”。数据库系统能有效地建立和维护大量数据的良好关系。我之前接触过的MYSQL和ORACLE都是DBMS中的一种。

关系(relation):将数据整理成表的形式提供给用户,这种形式称之为关系。而现在最主流的数据库是关系型数据库。

信息集成(information integration):由于DBMS有不同的种类,它们可能用不同的术语表示同一事物,或者用同一术语表示不同事物,我们有时需要将这些数据库中的数据集中到一起做分析或处理,称作信息集成。但是在做信息集成的过程中需要处理上述的兼容性问题,方法有两种:第一种是使用一个大的数据库作为数据仓库,再使用适当的数据转换技术,将各个数据库的数据复制到数据仓库中做统一的处理;第二种是使用中间件或协调器,将各个数据库整合在一起。我觉得第二种似乎比第一种更好,因为第一种需要比较强大的硬件基础,而且需要数据迁移,有一些未知的风险,而第二种在硬件上的需求较低,也不需要移动数据。

数据库管理员(DataBase Administrator):也就是我们常说的DBA,指一个人或一批人,负责数据库结构或模式。

元数据(metadata):数据库的模式信息。

查询编译器(query compiler):用户在DBMS中输入语句后执行的第一个模块(也可能是事务管理模块),它负责的事语法的分析和优化。

执行引擎(execution engine):在通过查询编译后的语句队列会通过执行引擎来执行,执行引擎会向资源管理器发出一系列获取小块数据的请求。资源管理器知道数据文件、数据文件的格式和记录大小以及索引文件等,我的理解就是帮助快速找到文件的一些信息。

缓冲区管理器(buffer manager):从资源管理器出来的数据请求被传送到缓冲区管理器,缓冲区管理器从二级存储器(通常是磁盘)中获取数据送入主存缓冲区中。页或“磁盘块”是缓冲区和磁盘间的传送单位。

存储器管理器(storage manager):控制数据在磁盘上的位置存放和在磁盘和主存间的移动。简单的DBMS上,存储管理器可以就是操作系统下的文件系统。

事务管理器(transaction manager):主要有以下三个功能:

1,记日志。

为了保证事务的持久性,数据库底每个变化都有记录在磁盘上。日志管理器的设计遵循的最主要原则就是尽力保证无论系统被破坏到什么程度,恢复管理器都能通过检查日志中的修改记录,把数据库恢复到某个一致状态。

2,并发控制。

这是为了保证事务的独立性,每个事务的效果都是不受其他事务影响的。通过对DBMS表的加锁和解锁操作来进行控制。

3,消除死锁。

死锁就像是两个函数互相调用,陷入一种僵持的状态,事务管理器需要消除这种情况,以保证其他线程的顺利执行。

事务的ACID性质:

A:(atomicity)即原子性,意思是事务是不可分的,要么全部被执行,要么全部不被执行。

C:(consistency)即一致性,意思是事务必然是不能破坏数据本身的性质的,书中举了例子:如账户余额不能是负数。

I:(isolation)即独立性,意思是事务是独立的,不受其他事务的影响。

D:(durability)即持久性,意思是如同时间不可倒流,事务一旦完成,就永远不会被消去。

函数依赖(functional dependencies):说明一类数据唯一地由另一类数据确定的形式化描述的方法。

规范化(normalization):用函数依赖和其他形式的依赖改进关系型数据库设计的过程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: