究竟什么是关系数据库?

学了一段时间的数据库了,回过头来看看,居然还清楚关系数据库的原理是什么,羞愧。先学习一下“牛人”的见解,以后慢慢的消化理解。

数据库是以某种数据模型所确定的数据结构方式来组织和存储某个组织(或部门)相互关联的数据集。数据库管理系统是一种帮助用户建立、使用、管理和维护数据库的计算机系统软件。或者说,数据库管理系统是开发一个实际应用数据库的工具并支撑其执行的平台。数据库管理系统必须与其管理的数据库的数据模型相一致。

  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

时间: 2024-10-18 23:27:20

究竟什么是关系数据库?的相关文章

[转帖]脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?

脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么? http://www.52im.net/thread-1732-1-1.html 1.引言 本文接上篇<脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手>,继续脑残式的网络编程知识学习 ^_^. 套接字socket是大多数程序员都非常熟悉的概念,它是计算机网络编程的基础,TCP/UDP收发消息都靠它.我们熟悉的web服务器底层依赖它,我们用到的MySQL关系数据库.Redis内存数据库底层依赖它.我们用微信和别

越来越火的图数据库究竟是什么?

随着社交.电商.金融.零售.物联网等行业的快速发展,现实社会织起了了一张庞大而复杂的关系网,传统数据库很难处理关系运算.大数据行业需要处理的数据之间的关系随数据量呈几何级数增长,亟需一种支持海量复杂数据关系运算的数据库,图数据库应运而生. 世界上很多著名的公司都在使用图数据库.比如: 社交领域:Facebook, Twitter,Linkedin用它来管理社交关系,实现好友推荐 零售领域:eBay,沃尔玛使用它实现商品实时推荐,给买家更好的购物体验 金融领域:摩根大通,花旗和瑞银等银行在用图数据

刨根究底字符编码之十二——UTF-8究竟是怎么编码的

UTF-8究竟是怎么编码的 1. UTF-8编码是Unicode字符集的一种编码方式(CEF),其特点是使用变长字节数(即变长码元序列.变宽码元序列)来编码.一般是1到4个字节,当然,也可以更长. 为什么要变长呢?这可以理解为按需分配,比如一个字节足以容纳所有的ASCII码字符,那何必补一堆0用更多的字节来存储呢? 实际上变长编码有其优势也有其劣势,优势是节省空间.自动纠错性能好.利于传输.扩展性强,劣势是不利于程序内部处理,比如正则表达式检索:而UTF-32这样等长码元序列(即等宽码元序列)的

淘宝Tedis组件究竟是个啥(一)

淘宝的Tedis组件究竟是个啥呢?可能有一些朋友没有听过这个名字,有一些朋友会经常使用,那么今天我就来和大家深入分析一下,它的使用和原理. 一.Tedis简介 Tedis是另一个redis的java客户端,Tedis的目标是打造一个可在生产环境直接使用的高可用Redis解决方案. 特性如下: * 高可用:Tedis使用多写随机读做HA确保redis的高可用 * 高性能:使用特殊的线程模型,使redis的性能不限制在客户端 * 多种使用方式:如果你只有一个redis实例,并不需要tedis的HA功

一个Windows 系统究竟有多复杂?

一个Windows 系统究竟有多复杂? 来源:开发者WEB Microsoft Windows问世于1985年,起初仅仅是Microsoft-DOS模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统. 下面我们从代码行数.开发难度,参与人员的数量,开发的时间长度等角度来说说,一个windows系统有多复杂. Windows XP 大约40,000,000行代码. Windows Vista 大约50,000,000行代码. Windows 7 大约

关系数据库&amp;&amp;NoSQL数据库

在过去,我们只需要学习和使用一种数据库技术,就能做几乎所有的数据库应用开发.因为成熟稳定的关系数据库产品并不是很多,而供你选择的免费版本就更加少了,所以互联网领域基本上都选择了免费的MySQL数据库.在高速发展的WEB2.0时代,我们发现关系数据库在性能.扩展性.数据的快速备份和恢复.满足需求的易用性上并不总是能很好的满足我们的需要,我们越来越趋向于根据业务场景选择合适的数据库,以及进行多种数据库的融合运用. 当我们在讨论是否要使用NoSQL的时候,你还需要理解NoSQL也是分很多种类的,在No

JavaScript 闭包究竟是什么

JavaScript 闭包究竟是什么 1.简单的例子 首先从一个经典错误谈起,页面上有若干个div, 我们想给它们绑定一个onclick方法,于是有了下面的代码 <div id="divTest"> <span>0</span> <span>1</span> <span>2</span> <span>3</span> </div> <div id="d

MongoDB是一个介于关系数据库和非关系数据库之间的产品

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型.Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引.它的特点是高性能.易部署.易使用,存储数据非常方便. MongoDB[1]的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的R

关系数据库的几种设计范式介绍

关系数据库的几种设计范式介绍1.第一范式(1NF) 在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库. 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性.如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系.在第一范式(1NF)中表的每一行只包含一个实例的信息.例如,对于图3-2 中的员工