数据库系统的结构
! ^& k2 ^# s2 A; h% U. @0 q 数据库系统的三级模式结构
7 l$ u( k3 r8 J4 ^6 K9 @ 数据库系统的三级模式结构,即由外模式、模式和内模式三级组成。数据按外模式的描述提供给用户,按内模式的描述存储在磁盘中,而模式提供了连接这两级的相对稳定的中间观点,并使得两级中任何一级的改变都不受另一级的牵制。# u! Z W! b! S) u
1.模式& e5 }0 q3 r O5 X" A8 \
模式(Schema)也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它仅仅涉及到型的描述,不涉及到具体的值。模式的一个具体赋值称为模式的一个实例(Instance)。同一个模式可以有很多实例。模式是相对稳定的,而实例是相对变动的,这是因数据库的数据在不断更新。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。1 y$ E9 V% R" G9 ?% h) `
模式实际上是数据库数据在逻辑上的视图,既不涉及存储结构,也与应用程序及访问技术等细节无关。一个数据库只有一个模式。数据库模式以某一种数据模型为基础,统一考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。6 u2 N- Q" ~- t$ q5 T
当定义模式时,要定义数据的逻辑结构,如记录由哪些字段组成,字段的名字、类型、取值范围等,还要定义数据间的联系,与数据有关的完整性、安全性等。描述模式的数据语言称为模式DDL(Schema Data Definition Language)。
+ S, A; }, w z' t8 {% i 2.外模式+ f( c$ V6 n- G: `& ~$ E
外模式(External Schema)也称子模式或用户模式,是用户与数据库系统的接口,是用户用到的那部分数据的描述。外模式通常是模式的子集,由若干个外部记录型组成。由于每个用户均需使用一个外模式,而用户对数据的需求往往不同,因此多个用户可以有多个不同的外模式。每个外模式可为多个用户使用,而同一个用户也可以使用不同的外模式,但每一个应用程序只能使用一个外模式。
: @! k! z6 W& g4 x* _! {) L* W' } 外模式是保证数据库安全的一个有力措施,因为每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据则是不可见的。DBMS提供外模式描述语言(外模式DDL)来严格定义外模式。
; M q+ j, \: o4 ], m 3.内模式
6 j7 l) L/ t! n9 o6 J 内模式(Internal Schema)也称存储模式,是数据库在物理存储方面的描述,它定义所有的内部记录型、索引和文件的组织方式,以及数据控制方面的细节。内部记录并不涉及到物理设备的约束。比内模式更接近物理存储和访问的那些软件机制是操作系统的文件系统。例如,从磁盘读数据或写数据到磁盘上的操作等。
" |0 t! G( `: h, o9 w. q4 f8 [ DBMS提供内模式描述语言(内模式DDL)来严格定义内模式。
# b# ^0 Q2 }1 n/ I6 c1 _& K: K 4.外模式/模式的映象
" ^8 ^- n4 w: @) l) k 数据库系统在三级模式之间建立了两层映象,即外模式/模式的映象和模式/内模式的映象。
: `4 e: W) T2 f0 x( w4 _+ a 模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。同一个模式可以有多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映象。
! Z; ?4 \/ V5 d2 W: n$ B2 C) X! x 当模式改变时,例如增加记录型或增加字段,则只相应修改外模式/模式映象,可以使外模式保持不变。应用程序是依据外模式编写的,故应用程序不必修改,从而保证了数据与应用程序的逻辑独立性,简称数据的逻辑独立性或简称逻辑独立性。& d: U1 a& Q) X5 V. k. t
5.模式/内模式映象
7 J9 J! U, M) ~. ], s# N 数据库中只有一个模式,也只有一个内模式,因此模式/内模式映象是唯一的,它定义了数据库全局逻辑结构与存储结构之间的对应关系。如果数据库的内模式要修改,则由数据库管理员对模式/内模式映象作相应改变,可以使模式保持不变,从而应用程序也不必改变。这样,即保证了数据与程序的物理独立性,称数据的物理独立性或简称物理独立性。
' q0 ?( N: R4 s: p4 ^' m 6.用户及用户界面
6 I6 y W8 x/ p4 u# @5 J 用户是使用数据库应用程序或联机终端的用户。编写应用程序的语言通常为COBOL、C++、Java一类的高级语言,在数据库中常称它们为主语言(Host Language)。DBMS还提供数据操作语言DML(Data Manipulation Language),供用户或程序员使用。DML可自成系统,在终端上直接对数据库进行操作,这种DML称为交互型DML。它也可嵌入在主语言中使用,称其为嵌入型DML,此时主语言是经过扩充并能处理DML语句的语言。
- a% ?* P' n' k5 a 用户界面是用户与数据库系统间的一条分界线,在界线下面,用户是不可知的。用户界面定义在外部级上,用户对于外模式是可知的。1 B) V+ c$ q" ]$ U9 k' v7 q0 H6 ?
数据库系统的体系结构' U! c8 g& n$ ^7 S9 u8 q* D3 S
一个数据库应用系统一般包括数据存储层、应用层与用户界面三个层次。数据库存储层由数据库系统来承担,完成数据的维护操作;应用层是使用数据库处理与用户有关的各种业务操作,通过程序设计语言来完成;用户界面为用户提供可视化图形操作界面,用于数据库系统与用户之间的交互。1 M2 x6 f7 Q3 S( h2 j% `
数据库系统的体系结构与计算机系统的组成结构有关,通常指数据库系统中,数据存储层、应用层、用户界面层以及网络通信之间的布局与分布关系。按照目前数据库系统的应用与发展,可以分为单机结构、集中式结构、C/S结构、B/S结构与多层结构等。
8 J/ \% m B/ t$ L6 K 1.单机结构
) ?9 Z+ g3 c# _) I) Y/ x 随着PC机性能的提高,出现了适合于PC机的单用户数据库系统。这种可以运行在PC机上数据库系统称为桌面型数据库管理系统(Desktop Database Management System)。尽管它在数据的完整性、安全性、并发性等方面有不少缺陷,但已基本实现DBMS应具备的功能。现在较流行的有MicroSoft Access、Visual Foxpro等。
) L. G5 n' x' O r! h 2.集中式数据库系统结构* N3 A. ` E7 {, S! B; F8 L$ {8 z9 m
这种系统是大型主机带多终端的系统。它将操作系统、应用程序、数据库系统等数据和资源均放于大型主机上,而连于主机上的多个终端,只是作为主机的输入/输出设备。数据存储层和应用层均放在主机上,而用户界面层放在多个终端上。
" O" n# f7 u$ L* \4 I. w6 t1 q 在这种系统中,所有的处理均由主机完成,故对主机的性能要求较高,这是数据库系统初期最流行的结构,目前仍有应用。但随计算机网络的普及和硬件价格的不断下降,这种传统的系统已逐渐被C/S所取代。) D2 W: K+ z( E
3.客户机/服务器结构, w, h/ s' R+ F& M2 D8 d
客户机/服务器(Client/Server, C/S)结构是目前流行的数据库系统结构。在这种结构中,客户机提出请求,服务器对客户机的请求作出回应。C/S结构的本质在于通过对服务功能的分布,实现分工服务。每一个服务器都为整个局域网系统提供共享服务,供所有客户机分享;客户机上的应用程序借助于服务器的服务功能以实现复杂的应用功能。在C/S结构中,数据存储层处于服务器上,应用层和用户界面层处于客户机上。客户机负责管理用户界面,接收用户数据,处理应用逻辑,生成数据库服务请求,将该请求发送给服务器,同时接收服务器返回的结果,并将结果按一定格式显示给用户。
) t. _7 h3 Q7 b* U 4.浏览器/服务器结构8 a9 k n( x: f+ P |
浏览器/服务器(Browser/Server, B/S)结构是针对C/S的不足而提出的。在B/S结构中,客户机端仅安装通用的浏览器软件,实现用户的输入/输出,而应用程序不再是安装在客户机端,而是在服务器端安装与运行。在服务器端,除了要有数据库服务器保存数据并执行基本的数据库操作外,还要有另外的称作应用服务器的服务器处理客户端提交的处理要求。也就是说,C/S结构中客户端运行的程序已转移到应用服务器中,此时的客户机可称作“瘦客户”。应用服务器充当了客户机与数据库服务器的中介,架起了用户界面与数据库之间的桥梁,所以也称为三层结构。 |