学了一段时间的数据库了,回过头来看看,居然还清楚关系数据库的原理是什么,羞愧。先学习一下“牛人”的见解,以后慢慢的消化理解。
数据库是以某种数据模型所确定的数据结构方式来组织和存储某个组织(或部门)相互关联的数据集。数据库管理系统是一种帮助用户建立、使用、管理和维护数据库的计算机系统软件。或者说,数据库管理系统是开发一个实际应用数据库的工具并支撑其执行的平台。数据库管理系统必须与其管理的数据库的数据模型相一致。
1.数据模型
数据模型是对现实世界数据特征进行抽象的工具,用来描写叙述和处理现实世界中的数据和信息。数据模型要能较真实地模拟现实世界,既要便于人们理解,又要便于在计算机上实现。数据模型主要由数据结构、数据操作、数据完整性规则三个部分组成。数据结构描写叙述了组成数据库的基本成分;数据操作描写叙述了对数据结构同意运行的操作集合;完整性规则描写叙述了对数据结构所具有的约束和存储规则。
2.关系数据模型
关系数据模型的数据结构是人们日常事务处理中常见的二维表结构(如工资发放表)。关系数据模型将数据看成是二维表中唯一的行号和列号确定的一个表中元素,即关系数据模型是用二维表的方式来组织、存储和处理数据和信息的。从应用的角度来看,不论什么一个组织(或部门)的关系数据库的基本组成成分是二维表,或者说某个组织(或部门)的数据库是由若干张相互关联的二维表组成。因为二维表结构清晰、简单、易于理解,也易于计算机实现(存储、操作、控制),加上关系数据模型有数学理论基础(集合论、关系代数),因此如今的数据库管理系统软件都是基于关系数据模型研发的,如SQL SERVER、ORACLE、DB2、SYBASE、ACCESS、FOXPRO等等。也就是说,用这些关系数据库管理系统软件为某个组织开发的会计数据库系统必须按关系数据模型来组织数据。那么,关系数据模型中的二维表与数据库中的数据文件之间有何联系?
以下我们通过会计科目代码表来介绍关系数据模型的基本概念及其与数据库中的数据文件之间的相应关系:
(1)关系、二维表、数据文件:关系数据模型中用关系来表述现实世界中能够相互差别的要管理的数据对象集。每个关系都有一个关系名和一组表述其特征的属性集,人们就是通过这些属性集差别不同的关系。如记账凭证、会计科目、总账都能够称之为关系,它们都是要管理的数据对象集,都有各自的属性集。一个关系用一张二维表表示,表名相应关系名。二维表由有限个不反复的行组成,表中的每一列不可再分。一张二维表在关系数据库中用一个数据文件存储。如“会计科目代码表”在会计数据库中用一个数据文件存储,文件名称能够用表名“会计科目代码”,使计算机中存储的文件内容与现实世界管理的数据对象相联系。
(2)记录:二维表中的每一行称为一个记录,描写叙述了关系中一个详细的个体,在数据文件里是一个记录值。如表1中第一行为现金账户的记录,描写叙述了现金账户在会计科目代码文件里全部属性的取值(特征)。
(3)属性、列、字段:二维表中的每一列是一个属性,描写叙述了关系的一个特征。一个二维表的全部列构成了一个关系的属性集,通过它能够差别不同的二维表(关系)。二维表中的每一列的数据属于同一类型。每一列的列名相应关系的属性名,同一时候相应数据文件里的字段名。如表1用6个列表示会计科目代码的属性,当中第三列表示属性“科目性质”,当某条记录取值为1时,表示是资产类科目。
(4)主码、主keyword:指二维表中的某个列(属性)或某几个列(或属性组),它们的值可以唯一确定表中或数据文件里的一个记录。如表1中的“科目代码”属性可以作为主码(或主keyword),用来唯一识别表中的每个会计科目。
(5)域:描写叙述二维表中每一列属性或数据文件的某一字段的取值类型和范围。如表1中每一列的列名以下的括号里的内容表示该列的取值类型和范围,当中第四列“底层明细标志”表示某个科目是不是最底层明细科目(不再有下层科目),仅仅有两种取值T(真)和F(假)。
(6)关系模式:一个关系模式由一个关系名及它全部的属性构成,它相应一个二维表的表名和表头栏目行(列的集合),构成了一个二维表的框架,同一时候也是设计该二维表的数据文件结构的根据。
至此,我们直观地介绍了关系数据库中的关系、二维表、数据文件之间各个概念的相应关系。因为二维表中的行与数据文件的记录、二维表的列(属性)与数据文件的字段之间相互相应,因此,审计人员仅仅要掌握了会计账务数据库的二维表结构及表之间的关联也就行分析电子账的结构。
比如,将会计科目代码表(表1)转换成关系数据库中的数据文件结构:
3.关系数据模型的数据操作
从数学的角度看,关系数据模型的数据操作是基于集合的操作,操作对象和操作结果都是集合。从数据处理的角度看,数据操作的对象和结果都是二维表。对二维表的操作主要有:
(1)对表中的行(记录)进行操作:指对一张表中指定范围的记录进行有条件的操作,操作的结果组成一张新表。比如,从“会计科目代码表”中筛选出资产类科目组成新的“资产类科目代码表”,操作的范围是整个“会计科目代码表”,条件是“科目性质等于1”。对表中的行进行操作后的结果表的结构与原表同样,记录数小于或等于原表。
(2)对表中的列(属性)进行操作:指对一张表中指定的列进行有条件的操作,操作的结果组成一张新表。比如,从“会计科目代码表”中选出“科目代码”、“科目名称”两列,组成新的科目代码相应表,新表仅仅有“科目代码”和“科目名称”两列。显然,列操作后的结果表的结构与原表不同,结果表小于或等于原表。
(3)连接:对两张表或多张表进行有条件的连接操作,生成一张新表。连接操作后的结果表大于等于操作前的表。
从应用的角度看,对二维表中的数据操作功能主要包含更新(添加、改动、删除)数据和检索(查询)数据,即对二维表填入和改动数据,并从表中检索出数据进行加工应用。
4.关系数据模型的数据完整性规则
数据完整性是指数据库中存储的数据是有意义的或正确的。关系数据模型中的数据完整性规则是指对二维表的定义和操作过程中要遵循的某些约束条件。主要包含:
(1)实体完整性:指每张表都必须有主码,并且表中不同意存在无主码值的记录和主码值同样的记录。如表1中的每个记录都必须有科目代码,并且不能有同样科目代码的记录和无科目代码的记录。
(2)參照完整性:指一张表的某列的取值受还有一张表的某列的取值范围约束,描写叙述了多张表之间的关联关系。比如,记账凭证表中的“科目代码”列的取值受到会计科目代码表的“科目代码”取值范围的限定。
(3)用户定义完整性。指针对某一详细应用定义的数据库约束条件,反映某一详细应用所涉及的数据必须满足应用语义的要求。即限制属性的取值类型及范围,防止属性的值与应用语义矛盾。如表1中,“科目性质”的取值仅仅能是1(资产)、2(负债)、3(权益)、4(成本)、5(损益)。
5.从关系数据模型得到的启发
(1)基于关系数据模型的会计账务数据库是以二维表为基本部件构建的,数据库中的每个数据文件相应一张二维表,数据文件之间的关联也能够用二维表之间的关联来表示,对二维表的定义和数据操作必须满足数据完整性约束条件。构建一个会计账务数据库首先要将会计账务管理的对象,如会计科目、记账凭证、日记账、明细账、总账及它们之间的关系抽象成二维表的形式,弄清了它们的二维表结构也就弄清了它们的数据文件结构,即电子账结构。因此,会计账务数据库结构设计能够转变成会计账务数据的二维表及二维表之间的关联设计,而一张二维表的表头栏目(属性集)反映了表的结构特征,是设计数据文件结构的根据。
(2)根据关系数据模型研发的关系数据库管理系统是开发和管理会计数据库系统的工具软件,也是支持所开发的会计数据库系统执行的平台,不论什么一个会计账务数据库都必须在某一个关系数据库管理系统的在线管理下执行。因为不同的数据库软件公司提供的关系数据库管理系统软件的各个版本号的功能强弱、所适应的计算机系统的执行环境(单机、网络等)、所提供的对表的操作命令等都有所不同,因此,审计人员要审查电子账,首先要了解被审单位的电子账的数据库管理系统软件的名称(比如是SQL SERVER或ORACLE)、版本号(单机、网络,第几版)、打开数据库(表)以及对表操作的命令格式和命令等。虽然各种关系数据库管理系统软件版本号有差异,但通过以上对关系数据模型的操作能够了解到:表的主要操作类型和功能基本一致。审计人员仅须要掌握最主要的打开、检索、汇总数据库(表)等操作命令就能进行审查会计账务数据库的基本工作,并不是深不可測。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hdhai9451/archive/2008/12/06/3459700.aspx