数据库系统概念-----引言

时间:2024-03-13 07:02:43

本节目录

1、数据库系统的应用

2、数据库系统的目标

3、数据视图

4、数据库语言

5、关系数据库

6、数据库设计

7、数据存储和查询

8、事务管理

9、数据库体系结构

10、数据挖掘与信息检索

11、特种数据库

12、数据库用户和管理员

13、数据库系统的历史

14、总结


        数据库管理系统是一个由互相关联的数据的集合和一组用访问这些数据的程序组成,这个数据集合通常称作数据库,其中包含了关于某个企业的信息。DBMS的主要目标就是提供一种可以方便高效的存取数据库信息的途径。

        设计数据库的目的是管理大量的信息,对数据的管理既涉及信息存储结构的定义又涉及信息操作机制的提供,此外数据库系统还碧玺提供所存储信息的安全性保证,即使数据被多用户共享,那么系统还必须设法避免可能产生的异常结果。

1、数据库系统的应用

        数据库的应用非常广泛,比如:企业信息(销售、会计、人力资源等)、银行和金融(银行业、信用卡交易、金融业)、大学(存储学生信息、课程注册、成绩等)、航空业。

2、数据库系统的目标

        在以前保存信息的方法是将它们存放在操作系统文件中,也就是所谓的文件处理系统。在数据库出现以前,经常采用这样的系统来存储信息。但是这样的存储组织信息有很多弊端:数据的冗余和不一致、数据访问困难、数据孤立、完整性问题、原子性问题、并发访问异常、安全性问题。也正是由于这些问题,促进了数据库系统的发展。

3、数据视图

        数据库系统是一些相关联的数据以及一组使得用户可以访问和修改这些数据的程序的集合,数据库系统的一个主要目的是给用户提供数据的抽象视图。也就是说系统隐藏关于数据存储和维护的某些细节。

    3.1 数据抽象

        一个可用的系统必能高效的检索数据,设计者在数据库中使用复杂的数据结构来表示数据。系统开发人员会通过一下几个层次的抽象来对用户屏蔽复杂性。以简化用户与系统的交互。

        物理层:最低层次的抽象,描述数据实际上是怎么样存储的,物理层详细描述复杂的底层数据结构。

        逻辑层:比物理层稍高的抽象描述数据库中存储什么数据以及这些数据间存在什么关系,这样逻辑层就通过少量相对简单的结构描述了整个数据库。虽然逻辑层的简单结构的实现可能涉及复杂的物理层,但是逻辑层用户不必知道这样的复杂性,这称作物理数据独立性。

        视图层:最高层次的抽象,只描述整个数据库的某个部分,尽管在逻辑层使用了比较简单的结构,但是一个大型数据库中所存信息的多样性,仍存在一定程度的复杂性,数据库系统的很多用户不需要关心所有的信息,而只需要访问数据库的一部分。视图层抽象的定义正是为了使这样的用户与系统的交互更简单,系统可以为同一数据库提供多个视图。

        这三层的相互关系如下图所示:

        数据库系统概念-----引言

       自己的理解,感觉物理层就像是数据结构的具体实现和内存申请销毁等,而逻辑层是对数据结构的各种操作,比如插入删除等。而视图层就像根据不同权限的用户只能使用部分数据结构一样。

    3.2 实例和模式

        特定时刻存储在数据库中的信息和集合称作数据库的一个实例。数据库的总体设计称作数据库模式。数据库模式和实例的概念可以用类的概念来类比理解。

        根据前面的不同的抽象层次,数据库系统可以分为几种不同的模式,物理模式在物理层描述数据库的设计,逻辑模式则在逻辑层描述数据库的设计,数据库在视图层也有几种模式,有时称为子模式,描述了数据库的不同视图。程序员使用最多的一般是逻辑模式,一般用来构造数据库应用程序。

    3.3 数据模型

        数据库结构的基础是数据模型,数据模型是一个描述数据、数据联系、数据语义以及一致性约束的概念工具的集合,数据模型提供了一种描述物理层、逻辑层以及视图层数据库设计的方式。

        数据模型一般分为四类:

        *关系模型,关系模型是基于记录的模型的一种,基于记录的模型的名称的由来是因为数据库是由各种固定格式的记录来构成的。每个表包含各种特定类型的记录,每个记录类型定义了固定数目的字段或属性,表的列对应于记录类型的模型。

        *实体-联系模型:实体-联系数据模型(E-R)基于对现实世界的这样一种认识,现实世界是由一组称作实体的基本对象以及这些对象间的联系构成,实体是现实世界中区别于其他对象的一件事情或一个物体。实体-联系模型被广泛用于数据库设计。

        *基于对象的数据模型:面向对象的额数据模型可以看成E-R模型增加了封装、方法、和对象表示等概念之后的扩展,对象-关系数据模型结合了面向对象的数据模型和关系数据模型的特征。

        *半结构化数据模型:半结构化数据模型允许那些相同类型的数据项含有不同的属性集的数据定义,可扩展标记语言(XML)被广泛的用来表示半结构化数据。

        在之前还有网状数据模型和层次数据模型,但是这两个基本已经很少使用了。

4、数据库语言

        数据库系统提供数据定义语言来定义数据库模式,以及数据操纵语言来表达数据库的查询和更新,这两种语言也就是数据库语言(比如SQL)的不同部分。

    4.1 数据操纵语言

        数据操纵语言(DML)使得用户可以访问和操作那些按照某种适当和数据模型组织起来的数据,一般有以下类型:检索、插入、删除、修改。通常有两类基本的数据操纵语言:过程化DML(要求用户指定需要什么数据以及如何获得这些数据),声明化DML(只要求用户指定需要什么数据,而不声明如何获得这些数据)。

    4.2 数据定义语言

        数据库是通过一系列定义来说明的,这些定义由一种数据定义语言(DDL)来表达。

        数据库系统所使用的的存储结构和访问方式是通过一系列特殊的DDL语句说明的,这种特殊的DDL称作数据存储和定义语言。存储在数据库中的数据值必须满足一致性约束。数据库实现可以以最小代价测试的完整性约束。

        *域约束:每个属性都必须相对应一个所有可能会的取值构成的域。

        *参照完整性:一个关系中给定属性集上的取值也在另一个关系的某一个属性集的取值中出现。违反参照完整性的处理会被拒绝。

        *断言:一个断言就是数据库需要时刻满足的某一条件,域约束和参数完整性约束是断言的特殊形式。断言创建以后,如果有效,以后只有不破坏断言的数据库更新才被允许。

        *授权:对用户加以区别,对不同的用户在数据库的不同数值上允许不同的访问类型,最常见的是读权限、插入权限、更新权限、删除权限等。

        DDL以一些指令作为输入,生成一些输出,DDL的输出放在数据字典中,数据字典包含了元数据,元数据是关于数据的数据,可以把数据字典看作一种特殊的表,这座钟表只能由数据库本身来访问和修改。在读取和修改实际数据前,要先参考数据字典。

5、关系数据库

        关系数据库基于关系模型,使用一系列表来表达数据以及这些数据之间的联系。

    5.1 表

        每个表都有很多列,每个列都有唯一的名字。关系模型是基于记录的模型的一个实例。基于记录的模型,之所以有这样的称谓,是因为数据库的结构是几种固定格式的记录。每个表包含一种特定类型的记录。每种记录类型定义固定数目的字段或属性,表的列对应记录类型的属性。

        数据库系统概念-----引言

    5.2 数据操纵语言

        SQL查询语言是非过程化的,它以几个表作为输入,总是返回一个表,下面是一个SQL查询的例子,它找出历史系所有教员的名字。

         数据库系统概念-----引言

        这个查询制定了从instructor表中要取回的是dept_name为History的那些行,并且这些行的name属性要显示出来。执行这个查询单额结果是一个表,有一列name和若干行,每一行都是dept_name为History的一个教员的名字。

        查询可以涉及不止一个表的信息,例如,下面的查询,将找出与经得预算超过95000元的系相关的所有教员的ID和系名。

        数据库系统概念-----引言

    5.3 数据定义语言

        SQL提供了一个丰富的DDL语言,通过它我们可以定义表、完整性约束、断言等等,例如下面的语句顶一个department的表。

        数据库系统概念-----引言

        上面的语句执行结果就是创建了department表,该表有三列,分别是dept_name、building、budget,每个列都有一个与之相关联的数据类型。

    5.4 来自应用程序的数据库访问

        应用程序在这里指以嵌入SQL查询访问数据库中的数据这样的方式与数据库交互的程序。为了访问数据库,DML语言需要由宿主语言来执行,有两种途径可以做到这一点:一种是通过提供应用程序接口(过程集),他可以用来将DML和DDL语句发给数据库,再取回结果。一种是通过扩展宿主语言的语法,在宿主语言程序中嵌入DML调用,通常用一个特殊字符座位DML调用的开始,并通过预处理器,称为DML预编译器来将DML语句转为宿主语言的过程调用。

6、数据库设计

        略

7、数据存储和查询

        数据库系统分为不同的模块,每个模块完成整个系统的一个功能,数据库系统的功能部件大致可分为存储管理器和查询处理部件。

        存储管理和查询处理都十分重要。

    7.1 存储管理器

        存储管理器是数据库系统中负责在数据库中存储底层数据与应用程序以及向系统提交的查询之间提供接口的部件。,存储管理器负责与文件管理器进行交互,原始数据通过操作系统提供的文件系统存储在磁盘上,存储管理器将各种DML语句翻译成为底层文件系统命令,因此,存储管理器负责数据库中数据的存储、检索和更新。

        存储管理部件包括:权限及完整性管理器、事务管理器、文件管理器、缓冲区管理器、数据文件、数据字典、索引。

    7.2 查询处理器

        查询处理器组件包括:

        *DDL解释器:解释DDL语句并将这些定义记录在数据字典中。

       *DML编译器:将查询语句中DML语句翻译成一个执行方案,包括一系列查询执行引擎能理解的低级指令。一般DML解释器还进行查询优化。

       *查询执行引擎:执行由DML编译器产生的低级指令。

8、事务管理

        通常对数据库的几个操作合起来形成一个逻辑单元。要么完成要么不发生的要求称为原子性,正确性的要求称为一致性。保持的要求称为持久性。

        事务是数据库应用中完成单一逻辑功能的操作集合,每一个事务是一个既有原子性又有一致性的单元。原子性和持久性的保证数据库自身的职责,确切的说是恢复管理器的职责。数据库系统要有故障恢复的功能,当多个事务同时对数据库进行更新时,也要保证数据库的一致性,并发控制管理器控制并发事务间相互影响,保证数据库的一致性,事务管理器是包括并发控制管理器和恢复管理器的。

9、数据库体系结构

        数据库系统的体系结构很大程度上取决于数据库系统运行的计算机系统,数据库系统可以是集中式、客户服务式、也可以针对并行计算机体系结构设计数据库系统,分布式数据库包含地理上分离的多台计算机。

        现在数据库系统大多用户并不直接面对数据库系统,而是通过网络与其相连,我们可以区分远程数据库用户工作的用户机和运行数据库系统的服务器。下图是数据库的体系结构。

        数据库系统概念-----引言

        下图是两层和三层体系机构

        数据库系统概念-----引言

10、数据挖掘与信息检索

        略

11、特种数据库

        略

12、数据库用户和管理员

    12.1 数据库用户和用户界面

        数据库系统的用户可以分为四种不同类型,系统为不同类型的用户设计了不同类型的用户界面。无经验用户、应用程序员、老练的用户、专门的用户。

    12.2 数据库管理员

        使用DBMS一个主要原因可以对数据和访问这些数据的程序进行集中控制。对系统进行集中控制的人称作数据库管理员。数据库管理员的作用包括:模式定义、存储结构以及存取方法的定义、模式及物理组织的修改、数据访问授权、日常维护。

13、数据库系统的历史

        略

14、总结

        数据库管理系统、数据模型、数据操纵语言、数据定义语言、数据库由几个子系统构成(存储管理器和查询管理器)、事务管理。