1.数据库
顾名思义,数据库DB (DataBase)即指存放数据的仓库,只不过该仓库位于计算机的存储设备上。通常,这些数据面向一个组织、部门或整个企业,它们是按照一定的数据组织模型存放在存储器上的一组相关数据集合。例如学生成绩管理系统中,学生的基本信息、学籍信息、成绩信息等都是来自学生成绩管理数据库的除了用户可以直接使用的数据外,还有另外一种数据.它们是有关数据库的定义信息,如数据库的名称、数据表的定义、数据库账户、权限等。这些数据用户不会经常性的使用,但是对数据库来说非常重要。这些数据通常存放在一个“数据字典( datadictionary)"中。数据字典是数据库管理系统工作的依据,数据库管理系统借助数据字典来理解数据库中数据的组织,并完成对数据库中数据的管理与维护。数据库用户可通过数据字典获取有用的信息,如用户创建了哪些数据库对象,这些对象是如何定义的,这些对象允许哪些用户使用等。但是,数据库用户是不能随便改动数据字典中的内容的。
提示:数据字典是数据库管理系统中非常重要的组成部分之一,它是由数据库管理系统自动生成并维护的一组表和视图。过去人们只是把数据存放在文件柜里,当数据逐渐增多时,从大量的文件中查找数据变得十分困难.如今人们利用计算机和数据库科学地保存和管理大量复杂的数据,首先将要应用的大量数据收集并抽取之后,然后将其保存并进行进一步的查询和加工处理,以获得更多有用的信息。由此看来,数据库是长期存储在计算机内,有组织的、大量的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享.
2.数据库管理系统
在建立了数据库之后,由数据库管理系统〔DataBase Management System. DBMS)实现对数据库中数据进行各种管理与操纵,科学地组织和存储数据、高效地获取和维护数据、完成用户账户的建立和权限的分配,以及向用户提供各种操作功能。数据库管理系统(DBMS)是指数据库系统中对数据进行管理的软件系统,它是数据库系统的核心组成部分,数据库系统的一切操作,包括查询、更新及各种控制,都是通过DBMS进行的 .DBMS总是基于数据模型,因此可以把它看成是某种数据模型在计算机系统上的具体实现。根据所采用数据模型的不同,DBMS可以分成网状型、层次型、关系型、面向对象型等。但在不同的计算机系统中,由于缺乏统一的标准,即使是同种数据模型的DBMS,它们在用户接口、系统功能等方面也是不同的关系型DBMS是目前最流行的DBMS,常见的如Oracle, MS SQL Server, DB2等如果用户要对数据库进行操作,是由DBMS把操作从应用程序带到外部级、概念级,再导向内部级,进而操纵存储器中的数据。一个DBMS的主要目标是使数据作为一种可管理的资源来处理.DBMS应使数据易于为各种不同的用户所共享,应该增进数据的安全性、完整性及可用性,并提供高度的数据独立性。
3数据库系统
数据库系统(DataBaseSystem, DBS)是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统和数据库管理员构成,如图1.1所示。需要注意的是,数据库的建立、使用和维护等工作只靠一个DBMS是远远不够的,还要有专门的人员来完成,这些人被称为数据库管理员(DaWBaseAdministrator. DBA)
图1.1数据库系统
通常,在不引起混淆的情况下,人们将数据库系统简称数据库.数据库系统在计算机系统中的地位如图1.2所示.数据库系统的组成包括硬件平台、数据库、软件系统、应用系统和相关人员等.
图12数据库在计算机系统中的地位
3.1.硬件平台及数据库
硬件系统主要指计算机各个组成部分。鉴于数据库应用系统的需求,特别强调数据库主机或数据库服务器外存要足够大,v0存取效率要高,主机的吞吐量要大、作业处理能力要强。对于分布式数据库而言,计算机网络也是基础环境,其具体介绍如下:
- 要有足够大的内存,存放操作系统和DBMS的核心模块、数据库缓冲区和应用程序。
- 有足够大的磁盘等直接存取设备存放数据库,有足够的光盘、磁盘、磁带等作为数据各份介质.
- 要求连接系统的网络有较高的数据传输率。
- 有较强处理能力的中央处理器(CPU)来保证数据处理的速度.
3.2.软件
数据库系统的软件需求,主要包括如下几个方面:
- DBMS. DBMS是为数据库的建立、使用和维护配置的软件.
- 支持DBMS运行的操作系统。
- 与数据库通信的高级程序语言及编译系统
- 为特定应用环境开发的数据库应用系统。
3.3.数据库管理员及相关人员
数据库有关人员包括数据库管理员、系统分析员、应用程序员和普通用户,其各自职责如下所述:
(I)数据库管理员
数据库管理员(DBA)负责管理和监控数据库系统,负责为用户解决应用中出现的系统问题。为了保证数据库能够高效正常地运行.大型数据库系统都设有专人负责数据库系统的管理和维护。数据库管理员在数据库管理系统的正常运行中起着非常重要的作用。其主要职责如下:
.决定数据库中的信息内容和结构.数据库中要存放哪些信息,DBA要参与决策.因此DBA必须参加数据库设计的全过程,并与用户、应用程序员、系统分析员密切合作共同协商,做好数据库设计工作
.决定数据库的存储结构和存取策略。
.监控数据库的运行(系统运行是否正常,系统效率如何),及时处理数据库系统运行过程中出现的问题。比如系统发生故障时,数据库会因此遭到破坏,DBA必须在最短的时间内把数据库恢复到正确状态。
.安全性管理,通过对系统的权限设置、完整性控制设置来保证系统的安全性。DBA要负责确定各个用户对数据库的存取权限、数据的保密级别和完整性约束条件。
.日常维护,如定期对数据库中的数据进行备份、维护日志文件等。
.对数据库有关文档进行管理.
(2)系统分析员和数据库设计人员
系统分析员负责应用系统的需求分析和规范说明,和用户及DBA一起,确定系统的硬件、软件配置,并参与数据库系统概要设计。
(3)应用程序员
应用程序员是负责设计、开发应用系统功能模块的软件编程人员,他们根据数据库结构编写特定的应用程序.并进行调试和安装
(4)用户
这里的用户是指最终用户。最终用户通过应用程序的用户接口使用数据库.常用的接口方式有浏览器、菜单驱动、表格操作、图形显示、报表等。
4数据库模式
数据库系统结构是数据库的一个总的框架.尽管实际的数据库系统软件产品多种多样。支持不同的数据摸型.使用不同的数据库语言,建立在不同的操作系统之上,但绝大多数数据库系统在总的体系结构上都具有三级模式的结构特征学习数据库的三级模式将有助于理解数据库设计及应用中的一些基本概念。
4.1数据库的三级模式
数据库的三级模式分为外模式、概念模式和内模式,如图1.3所示
图13数据库系统结构—三级模式
(1)概念模式
概念模式也称模式,是对数据库中全局数据逻辑结构的描述,是全体用户公共的数据视图。这种描述是一种抽象描述,不涉及具体硬件环境与平台,也与具体软件环境无关概念模式主要描述数据的概念记录类型及其关系,还包括数据间的一些语义约束,
对它的描述可用DBMS中的DDL定义。
(2)外模式(External Schema)
外模式也称子模式(Subschema)或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式通常是模式的子集。一个模式可以有多个外模式。由于它是各个用户的数据视图,如果不同的用户在应用需求、看待数据的方式、对数据保密的要求等方面存在差长度、保密级别等都可以不同。另外,同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。
DBMS提供子模式数据描述语言(子模式DDL)来严格定义格式。
提示:外模式是保证数据库安全性的一个有力措施.应的外模式中的数据,数据库中的其他数据是看不到的。
(3)内模式(Intemal Schema)
每个用户只能看到和访问所对内模式也称存储模式(Storage Schema).结构和存储方式的描述控制方面的细节。一个模式只有一个内模式.它是数据物理定义所有的内部记录类型、索引和文件的组织形式,以及数据内部记录并不涉及到物理记录,也不涉及到设备的约束.储和访问的那些软件机制是操作系统的一部分,即文件系统。到磁盘上的操作等。比内模式更接近于物理存如从磁盘读数据或写数据DBMS提供内模式数据描述语言(内模式DDL)来严格地定义内模式。
4.2.数据库的二级映像
数据库系统的模式、内模式、外模式之间有很大的差别,为了实现用户和数据之间的透明化,DBMS提供了两层映像外模式/模式映像和模式/内模式映像。有了这两层映像·用户就能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式.正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性.
提示:映像实质上是一种对应关系,是指映像双万如何进行数据转挽,并定义转换规则。这样就能使数据独立性得到保证。
(1)外模式/模式映像
数据库的每一个外模式都有一个外模式/模式映像,它定义了该外摸式与模式之间的对应关系,外模式厂模式映像一般是在外模式.
模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构对应于同一个模式可以有任意多个外模式。对于每一个外模式,模式映像,它定义了该外模式与模式之间的对应关系的描述中.数据库系统都有一个外模式/这些映像通常包含在各自外模式如果模式需要进行修改,的数据类型等例如数据重新定义、增加新的关系、新的属性、改变属性那么只需对各个外模式/模式的映像做相应的修改,使外模式尽量保持不变,而应用程序一般是依据外模式编写的,因此应用程序也不必修改据与程序的逻辑独立性,这就是数据的逻辑独立性.
(2)模式/内模式映像
从而保证了数模式/内模式映像是唯一的,因为数据库只有一个模式和内模式。它存在于模式和内模式之间,由于两级模式之间的数据结构可能不一致,甚至可能差别很大。模式/内模式映像定义了模式和内模式之间的对应关系,即数据全局逻辑结构与存储结构之间的对应关系。模式/内模式映像一般是在模式中描述的。当数据库的存储结构改变时,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,因此应用程序也不必改变.这就保证了数据与程序的物理独立性。简称数据的物理独立性.在数据库的三级模式结构中,数据库模式即全局逻辑结构是数据库的中心与关键,它独立于数据库的其他层次。因此设计数据库模式结构时应首先确定数据库的逻辑模式。
数据库的内摸式依赖于它的全局逻辑结构,但独立于数据库的用户视图即外模式,也独立于具体的存储设备。它是将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以实现达到较好的时间与空间效率的目的。
数据库的外模式面向具体的应用程序,它定义在逻辑模式之上,但独立于存储模式和存储设备。当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式就得做相应改动,所以设计外模式时应充分考虑到应用的扩充性。特定的应用程序是在外模式描述的数据结构上编制的,它依赖于特定的外模式,与数据库的模式和存储结构独立.
注意:不同的应用程序有时可以共用同一个外模式数据库的二级映像保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改。
数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去。另外,由于数据的存取由DBMS管理,用户不必考虑存取路径等细节,从而简化了应用程序的编制,大大减少了应用程序的维护和修改工作。
5.数据模型
模型是现实世界特征的模拟与抽象比如一组建筑规划沙盘,精致逼真的飞机航模,都是对现实生活中的事物的描述和抽象,见到它就会让人们联想到现实世界中的实物.数据模型(Data Model)也是一种模型,它数据库中用于提供信息表示和操作手段的形式构架,是数据库中用来对现实世界进行抽象的工具。由于计算机不可能直接处理现实世界中的具体事物,因此人们必须事先把具体事物转换成计算机能够处理的数据,即首先要数字化,要把现实世界中的人、事、物、概念用数据棋型这个工具来抽象、表示和加工处理.数据模型按不同的应用层次分为3种类型,分别是概念数据模型(conceptual datamodel),逻辑数据摸型(logicdata model)和物理数据模型(physical data model).
1.概念数据模型
概念数据模型又称概念模型,是一种面向客观世界、面向用户的模型,与具体的数据库管理系统无关,与具体的计算机平台无关。人们通常先将现实世界中的事物抽象到信息世界,建立所谓的“概念模型”,然后再将信息世界的模型映射到机器世界,将概念模型转换为计算机世界中的模型。因此,概念模型是从现实世界到机器世界的一个中间层次.
2.逻辑数据模型
逻辑数据模型又称逻辑模型,是一种面向数据库系统的模型,它是概念模型到计算机之间的中间层次。概念棋型只有在转换成逻辑模型之后才能在数据库中得以表示。目前,逻辑棋型的种类很多。其中比较成熟的包括层次模型、关系模型、网状模型、面向对象模型等.
上述4种数据模型的根本区别在于数据结构不同,即数据之间联系的表示方式不同,具体介绍如下:
- 层次模型用“树结构”来表示数据之间的联系。
- 关系模型用“二维表”来表示数据之间的联系。
- 网状模型用“图结构”来表示数据之间的联系.
- 面向对象模型用“对象”来表示数据之间的联系。
3.物理数据模型
物理数据模型又称物理模型,模型在计算机物理结构上的表示。通常,数据模型由数据结构、型的三大要素。
6.数据完整性约束
它是一种面向计算机物理表示的模型,此模型是数据数据操纵和完整性约束三部分组成,这也称为数据模数据的完整性约束是对数据描述的某种约束条件,关系型数据模型中可以有三类完整性约束实体完整性、参照完整性和用户定义的完整性.
1.实体完整性(Entity Integrity)
一个基本关系通常对应现实世界的一个实体集。例如学生关系对应于学生的集合现实世界中的实体是可区分的,即它们具有某种唯一性标识。相应地,关系模型中以主码作为唯一性标识.主码中的属性即主属性不能取空值。所谓空值即指“无意义“的值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与现实世界的应用环境相矛盾,因此这个实体一定不是一个完整的实体。实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。
2.参照完整性〔Referential工ntegrity )
现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的.这样就自然存在着关系与关系间的引用。设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码(Foreign key),并称基本关系R为参照关系(Referencing relation),基本关系S为被参照关系(Referenced relation)或目标关系(Target relation)。关系R和S不一定是不同的关系。参照完整性规则就是定义外码与主码之间的引用规则。参照完整性规则描述如下:
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和5不一定是不同的关系).则对于R中每个元组在F上的值必须为:取空值((F的每个属性值均为空值),或等于s中某个元组的主码值
【例1.11下面列出的几种情况说明了参照完整性规则在关系中如何实现的.在关系数据库中有下列两个关系模式学生关系模式:s(学号,姓名,性别,年龄,班级号,系别),PK(学号)学习关系棋式:SC(学号,课程号。成绩),PK(学号,课程号),FKI(学号),FK2(课程号)据规则要求关系SC中的“学号”值应该在关系S中出现。如果关系SC中有一个元组(S07,C04,80),而学号S07却在关系S中找不到,那么就认为在关系SC中引用了一个不存在的学生实体,这就违反了参照完整性规则。另外,在关系SC中“学号即不仅是外键,也是主键的一部分,因此这里“学号”值不允许为空。
3.用户定义的完整性(user-defined Integrity )
实体完整性和参照完整性适用于任何关系数据库系统。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统方法处理它们,而不要由应用程序承担这一功能。
【例1.2]例1中的学生关系模式s,学生的年龄定义为两位整数,但范围还很大,为此用户可以写出如下规则把年龄限制在15--30岁之间:
CHECK(AGE BETWEEN 15 AND 30)
7.联机事务处理和联机分析处理
联机事务处理(OnLine Transaction Processing. OLTP )是数据库应用系统的鼓底层的应用,主要用于完成数据库应用系统的各项业务处理。OLTP是数据库应用系统发展中最早也是最迫切要求被实现的一层,它可以直接替代手工劳动,极大地提高工作效率。它的应用需求推动了数据库技术,尤其是关系数据库的发展随着,而后者又为其提供了强有力的支持.OLTP系统的成熟,人们一方面在研究数据处理技术还可以带来什么,另一方面又被OLTP产生的大量数据淹没时,E.F.Codd博士提出了联机分析处理(OaLineAnalytical Processing, OLAP)的概念。OL人P是一种软件技术,它使分析人员、经理和执行官能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。这些信息是由OLTP系统中的原始数据转换过来的,按照用户的理解,它反映了用户环境真实的方方面面,为中层领导和高层决策提供了参考和依据。
提示:联机事务处理和联机分析处理代表了数据处理技术和数习感应用的两个层次:
联机事务处理提高了工作效率和工作质量;联机分析处理从领导和决策出发,全面、真实、直观地反映经营活动的各个方面
8.数据仓库
支持大量数据信息存储的叫做支持数据仓储或数据仓库当把几个小型数据库集成为一个大型数据库,并为一个较广泛的组织服务时,如果该数据库存储历史数据,提供决策支持,提供数据汇总,提供只读数据,井且实质上充当所有向它提供数据的相关成品数据库的数据接收器,那么它通常被叫做数据仓库(DataWarchouse)数据仓库体系结构可以容纳各种格式的内部和外部数据,其中包括各种经营数据、历史数据、现行数据、订阅数据及来自Internet服务商的数据,还必须包括易于访问的元数据。从而能够提供访问和综合来自各种数据商店的数据,进行复杂的数据分析.建各翼卖笔馨摄馨瓮菇人WH.1_于,996年在《Building the Data Wuehouse》中明确给出数据仓库的定义是:数据仓库是面向主题的、完整的、非易失的、随时间变化的、用于支持决策管理的数据集合.其主要特征如下:
1面向主题
与OLTP面向应用进行数据组织相对应,数据仓库的数据被划分成一个个的主题域。主题是一个抽象的逻辑概念.是在一个较高层次上将数据分析归类的标识。对应于一个宏观的分析领域,如政策、市场分析、价格趋势等。主题域应该具有独立性和完整性。数据信息按主题进行组织,为按主题进行决策提供信息.
2.完整性
数据在进入数据仓库之前,不是简单从各个业务系统中抽取出来的,必须经过系统加工、汇总和整理,从而使数据仓库内的信息是关于企业的、一致的、全局的数据信息这一步是数据仓库建设中最关键、最复杂的一步,它完成了元数据从面向应用到面向主题的转变
3.稳定性
与OLTP系统不同,数据按照一定的周期升级到数据仓库中,包括复杂提取、概括、聚集和老化的过程.数据一旦进入数据仓库以后,在一般情况下长期保留。也就是说,数据仓库基本上是只读的,反映的是历史数据的内容,是不同时点的数据库快照的集合,以及基于这些快照的通过统计、综合和重组所导出的数据,而不是OLTP系统的数据它所涉及的操作主要是查询操作,用户不能对其进行删除或更新.一旦数据超过了数据仓库的数据存储期限,这些数据将从当前的数据仓库中删去。
4时变性
数据仓库内的信息包括了企业各个历史时期的数据,而不只是企业当时或某一时间点上的数据,用以支持数据分析,它可提供对数据的瞬时分析并衍生出数据值或对企业的发展历程和未来趋势分析等功能。所谓变化即指数据仓库中存储的大量历史数据、当前数据和综合数据等,它们处于永远的发展变化中。引起变化的因素包括新的数据内容的引入、旧的数据的删除以及重新综合数据等.