ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:87.29KB ,
资源ID:9845804      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9845804.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(谓词逻辑在关系数据库中的应用张益.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

谓词逻辑在关系数据库中的应用张益.docx

1、谓词逻辑在关系数据库中的应用张益谓词逻辑在关系数据库中的应用张益(07级2011届 安庆师范学院数学信息与计算科学学院 安徽 安庆 246011)指导老师:张胜 摘要:本文旨在研究将谓词逻辑及公理化理论应用于关系数据库中表示数据子语言,应用谓词逻辑作为它的数学基础,使得对这些语言的研究成为对谓词逻辑的研究优化数据子语言的表示成为对谓词逻辑的化简问题。关系数据库是具有严格数学模型的一种数据库系统,该系统有效地解决了数据存储和数据应用问题;除法运算是关系数据库的基本运算之一,在MYSQL里面较难实现相关操作.文章利用谓词逻辑的基本推理方法有效地分解了除法运算的基本过程,给出了除法运算的基本语义,并

2、对除法运算提供了有效的SQL实现手段,从而提供了MYSQL实现除法运算的有效手段,也为MYSQL有关的教学提供了操作模式.关键词:关系数据库,数据库,关系,谓词逻辑,关系代数,谓词演算,SQL除法。1 引言任何一门学科在其研究和发展过程中都要借助一些工具和方法计算机科学也不例外l9世纪末迅速发展起来的数理逻辑作为现代逻辑的分支直接为计算机科学的产生和根本性发展提供了重要的思维方法和研究工具正如美国科学促进会在题为“OntheUnusualEffectivenessofLogicinComputerScience”的会议中的总结:Logichaspermeated through compute

3、rscienceduringthe pastthirty yearsmuch more than ithasthroughmathematicsduring thepastonehundmdyeasro Indeed,atpresentconceptsand methodsoflogicoccupyacentralplacein computerscience,Insomuchthatlogiehasbeencalled“thecalculusofcomputerscience”。关系数据库有一套比较完善的数学理论,关系代数有力地支撑了关系数据库的理论框架.除法运算是关系运算的基本操作之一,因

4、其特有的物理背景和运算方式造成了除法运算设计的难度1.关系数据库的结构化查询语言SQL成功地解决了关系代数操作的语言表达,其自身的结构化特点对广大SQL设计开发人员提供了简单有效的实现手段,可是除法运算一直是SQL较难实现的一个运算.文献2中对除法运算的SQL描述较为成功,可是其基本上限于案例的分析,没有从形式化上给出有力的语义解释和统一的实现技巧.文献3中以中介逻辑谓词演算系统MFM为基础,探讨了SQL查询的形式语义,从而可以较好地处理不完全信息问题,并提出了只需要很少的转化规则就能完成的SQL语言的形式化模型.文献4给出了利用Group By子句实现除法的一种方法,该方法比较实用容易掌握,

5、可是对该方法的设计所需要的逻辑分析和语义等价性分析没有描述.笔者通过一阶谓词逻辑的形式分析手段较统一的构造了SQL的语义框架,并用MYSQL实现了统一的语句设计.在研究将谓词逻辑及公理化理论应用于关系数据库之前有必要先介绍相关知识。2 关系数据库简介随着信息管理水平的不断提高信息资源已成为社会各行各业的重要资源和财富用于信息管理的数据库技术也得到了很大的发展是计算机科学的重要分支由于数据库具有数据结构化较低的冗余度、较高的程序与数据独立性、易于扩充和易于编制应用程序等优点所以大中型信息系统都是建立在数据库设计之上的数据库技术成为目前最活跃、应用最广泛的计算机领域之一,几乎所有的应用系统都涉及到

6、数据库以数据库方式存储系统数据。数据库是计算机管理数据的一种机构是计算机数据处理的核心是现代信息科学与技术的重要组成部分数据库一般由两部分组成即数据库的硬件部分和数据库的软件部分其硬件部分是供存放数据用的大量物理存储空间如磁盘、磁带、光盘等外存空间:其软件部分是管理数据库中数据的一组程序这组程序叫作数据库管理系统简称DBMS它的主要目的是提供一可以方便地、有效地存取数据库信息的环境对数据库的一切操作都是通过DBMS进行的。DBMS的主要功能为:(1)数据库的定义功能(2)数据库的操纵功能(3)数据库的保护功能(4)数据库的存储管理(5)数据库的维护功能(6)数据库的描述功能鉴于下文的需要这里我

7、们介绍只数据库管理系统的第二个功能数据库的操纵功能。该功能是面向用户的主要功能用户可以使用数据库管理系统所提供的语言数据操作语言(DML)使用数据库中的数据供用户使用数据库的语言有的从终端装置输入这种语言叫终端查询语言(SQL);有的可附属于某些宿主语言,如可附属于FORTRAN、COBOL等语言作为这些语言的扩充成分。基本的数据操作有以下几个方面:数据的查询:从数据库中取出满足一定条件要求的数据;数据的修改:可以修改数据库中指定的数据;数据的插入:将一些数据存储到数据库中供以后使用;数据的删除:删除数据库内指定的数据。数据库内的数据一般都按一定格式组织与存放为了清晰理解数据库内数据的基本组织

8、格式我们要引入以下概念:实体:将现实世界中客观存在的能够相互区分的事物经过加工、分类抽象成为数据库中数据的基本存放单位如职工的简历、工资单、一次考试、一个学生、物资供销情况等均是实体。在数据库内实体是一个整体它内部的数据相互间是有逻辑联系的。实体集:所有具有相同结构形式的实体集合。联系:实体集之间的对应关系称为联系它反映现实世界中事物之间的相互关联。在数据库中实体是基本的数据单位但是各实体间是有一定联系的如实体集学生通过选课和课程之间联系起来,这个联系是学生选修课程,教师也是实体而教师与学生、课程也有联系。在数据库中存储数据时不仅要存放实体的数据还要存放联系的数据,如上例上,不仅要存放有关学生

9、、教师和课程的实体而且还要存放学生选修哪门课程的情况及教师教授哪门课程的情况只有这样数据库中的这个数据信息才是完整的。关键字:如果某个属性或属性组合的值能够惟一地标识出实体集中的每一个实体那么该属性或属性组合就可以叫做关键字用做标识的关键字也称为码如学校的学生管理系统中的学生的学号(学生的学号是惟一的一个学生只能有一个学号并且每个学生都不相同。)属性:现实世界中事物的特征即实体的性质。这些性质称为此实体的属性,如学生这个实体就可以用学号、姓名、性别、出生日期、系和年级等属性来描述用这些属性的具体值可以描述一个具体的实体。属性域:实体的每个属性的表现形式都是统一的,如学号是由n个数字所组成的号码

10、,性别为M,F中之一(M代表男性,F代表女性),年龄由三个数字簖组成_对每个属性都有一个表示范围,如年龄的表示范围是从O到150闯的数字;性别的表示范围是集合M,F,这种属性的表示范围就是属性域,每个属性都有一个属性域。数据库目前可以有三种结构数据模型它们分别是层次模型、网络模型、关系模型。层次模型是用树形结构表示实体间联系的数据模型它是数据库系统中最早出现的数据模型。层次模型对一对多的层次关系描述比较直观、自然且容易理解该模型本身比较简单。但现实世界的很多联系是非层次性的这样一来若仍用层次模型表示这类非层次性的联系则显得很笨拙并且会产生大量的数据冗余。网状模型对于处理这种联系则非常有效。网状

11、模型是用有向图结构表示实体类型及实体间联系的数据模型。其傥点是具有良好的性能。存取效率高,并且能够更为直接地描述现实世界。但是网状模型结构复杂,不容易实现,不利于扩充。关系模型可以克服上述层次模型和网状模型的缺点关系模型有以下优点:结构简单直观、用户易理解;有严格的设计理论:存取路径对用户透明。从而具有更高的独立性、更好的安全保密性。同时简化了程序员的工作,减少了数据库开发建立的工作量。正是因为它的诸多优点使得关系模型是结构数据模型中最为重要的数据模型关系数据模型是由IBM公司的EF。Codd于1970年首次提出20世纪8O年代以来数据库管理系统几乎都支持关系数据模型。非关系系统的产品也大都加

12、上了关系接口。数据库领域当前的研究工作都是以关系方法为基础以关系数据模型为基础的数据库管理系统称为关系数据库系统(RDBMS)。关系数据库系统目前是各类数据库中最重要也是最流行的数据库技术也最为成熟。本文将重点讨论关系式数据库,其他的两种结构模型将不作介绍了。关系数据模型是指实体和联系均用二维表来表示的数据模型。关系模型有以下性质:二维表中的每一列属性都是不能再分的基本字段也就是说不允许表中有表:二维表中的各列被指定一个相异的名字;二维表中的各行不允许重复:二维表上的行列排列次序不重要。在用户看来一个关系模型的逻辑结构是一张二维表。它由行和列组成如下:表1学生人事记录表学号姓名性别年龄专业系别

13、2005001石晓彤M29计算机计算科学2005002丁文峰M30控制工程电子工程2005003罗婷F28经济学经管系2005004晓旭F25应用数学数学系属性(列)关系:对应通常说的二维表,如表1所示的这张学生人事记录表。元组:二维表中的一行即为一个元组,相当于一个记录值。下面我们举例说明关系设有实体集S表示学生概貌它有五个属性:学号、姓名、性别、年龄、系别。分别可用S#、NAME、SEX、AGE、DEP。这个实体集存放5个学生的概貌,表2用来表示以上关系。表2 实体集SS#NAMESEXAGEDEP2006001QWM30FL2006002FAM29ES2006003ZAF32CS2006

14、004FGF20EE2006005LFM25CS设有实体集C表示课程的概况,它有三个属性,分别为:课程号、课程名、课程学分,分别用C#,CN,CC。这个实体集存放5门课的概况。表3 实体集CC#CNCC001OS3002DB3003ML4004SE3005DM4实体集与实体集间的联系也可用关系表示如学生选修课程的情况可用学号与课程号、课程成绩构成一个新关系SC,它描述了学生修课情况及课程成绩CG,这个关系如下:表4联系SC的关系S#C#CG200600100038020060010004852006002000191200600200028720060020005852006003000394

15、2006004000190200600400059520060050002922006005000395数据实体集与联系都可以用以上的这种二维表表示在数据库中用这种二维表构造数据的模型就是关系数据库。关系数据库中的数据库管理系统向用户提供使用数据库的语言。即数据子语言这种语言目前以关系代数表示但为了优化数据子语言的表示方法下面我们将引入用谓词逻辑中的方法表示数据子语言使得对数据子语言的研究成为对谓词逻辑的研究。3 关系演算应用谓词逻辑表示关系数据库中的数据子语言就叫关系演算关系数据库中的基本数据结构二维表是一个n元有序组的集合,而关系演算是基于谓词逻辑的,因此这个n元有序组的集合可以用一个谓词

16、逻辑公式表示,下面我们举例加以详细说明:设有二维表如图1所示:xY12233445图1 图1所示二维表可用谓词公式F(x,y)=(y=x+1)AN(x)表示,其中N(x)表示X为自然数。通过上例说明我们可以建立集合论与谓词逻辑公式间的一一对应关系数据子语言的操作对象二维表可用谓词公式表示。而对其对象的操作也可用谓词公式表示下面我们加以详细说明:谓词公式的基本符号:谓词符(二维表名):如P,Q,R,;个体常量(二维表中数据):如a,b,c,;个体变量(二维表中属性变量):如x,Y,z,;函数符(数据库中的公式):如f,g,h,;联结符:,V,一;量词:V,括号:(,)。谓词公式的项:(1)个体变

17、量是项;(2)个体常量是项:(3)设t。,t,t是项,f是函数符,则f(t,t,t)是函数,函数是项(4)项由且仅由上述13有限步骤生成。一个谓词逻辑公式可以由下面规则得到:(1)单个命题变元加左、右括号是公式。如(P),(Q),是公式;(2)如果A是公式,那么A也是公式;(3)如果A,B都是公式,那么(AB),(AVB),(AB),(AB)也是公式;(4)如果A是公式而x是任一变元,那么Vx(A)及x(A)是公式;(5)只有由规则1到规则4所得到的那些公式才是公式。由规则1得到的公式称为原子公式而其余的公式称为合式公式。接下来我们用谓词公式来表示基本操作。我们先讨论插入、删除和修改在关系代数

18、中我们知道可以用并运算与差运算分别表示插入与删除而在谓词逻辑中联结词“或者”相当于并运算而联结词“并且”再在第二项中加以否定相当于差运算。假设:R=(x1,x2,x。)lP(xl,x2,x)s=(Y,Yz,Y)lQ(Y,Yz,Y)则有:基本操作 谓词逻辑公式插入 (Xl,X2,X) | P(Xl,X2,Xn)V Q(Yl,Y2,Ym)删除 (Xl,X2,X) | P(Xl,X2,X)V Q(Yl,Y2,Ym)投影 Xil,Xi2,Xik | Xi1 Xi2 Xin P (x1,x2 ,xn)选择 f(xlx2,xn) | P(xl,x2xn) F笛卡尔乘积 (xlx2,x,y-,Y2,ym)

19、| P(X-,x,x) Q(yt,y2,ym)上面的操作没有提到修改是因为它是由删除和插入两个操作组合而成的因此删除操作、插入操作可以由谓词刻划则修改操作也可由谓词刻划通过以上的谓词逻辑公式我们可以把关系数据库中的数据子语言变成谓词逻辑中的谓词公式因而可以用谓词公式研究数据子语言而应用上面的谓词公式对关系数据库的研究所形成的理论叫关系演算用关系演算中的公式表示关系数据库中的数据操作在实际应用中它能够方便地对数据作检索及增加、删除、修改操作。接下来我们将举例详细说明。我们以上文中的表323334所定义的二维表S、C、SC作为操作对象,将它们的谓词定义为:S(S#,NAME,SEX,AGE,DEP

20、),C(C#,CN,CC),SC(S#,C#,CG)。下面,我们进一些操作:(1)打印所有学生名单我们可以表示为:(S#,NAME,SEX,AGE,DEP);(2)打印出课程学分为3学分的课程我们可以表示为:C(C#,CN。CC)CC=3;(3)找出所有课程号和课程名我们可以表示为:ccC(C#,CN,CC);(4)找出性别为女性学生我们可以表示为:S(S#,NAME,SEX,AGE,DEP)SEX=F;(5)找出所有电子工程系EE学生的名单我们可以表示为:s#,sex,age,dep (S,NAME,SEX,AGE,DEP)DEP=EE:(6)找出姓名为LF的学生所修读课程的课程号我们可以表

21、示为:NAm DEP(S(S#,NAME,SEX,AGE,DEP)SC(S#,C#,CG)NAME=LF;(7)找出学号为2006003的学生所修读的课程号及其分数我们可以表示为:C(S#,C#,CG)S#=2006003;(8)找出姓名为SY的学生所修读课程的课程名我们可以表示为:s# name sex age dep c# cg cc (S(S#,NAME,SEX,AGE,DEP)SC(S#,C#,CG)C(C#,CN,CC)NAME=SY;(9) 现在我们要在学生关系S中插入一个元组:(2006008,LY,M,26,CS)我们假设要插入的元组的谓词为Si则这个插入操作可表示为:S (S

22、#,NAME,SEX,AGE,DEP) V Si(S#,NAME,SEX,AGE,DEP);(10) 若我们要在课程关系C中删除课程学分为4的课程我们可以表示为:C(C#,CN,CC) (C(C#,CN,CC)CC=4)。关系演算可分为元组关系演算和域关系演算前者以元组为变量后者以域为变量我们对于关系演算的关系式数据库的理论作进一步研究发展了关系演算的公理系统,它由三部分组成,这三部分即三组公理:1特殊化公理;2事实性公理;3演绎性公理。关系演算公理系统所采用的推理方法、定理及证明过程与谓词逻辑是相同的由于谓词逻辑中的公理是永真的因此谓词逻辑中的公理在关系演算中也可以认为是公理。4 分析应用(

23、基于谓词逻辑的除法运算语义及其SQL实现)4.1 谓词逻辑及语义表达谓词(Predicate)描述了对象的状态、性质及对象之间的关系,其表示形式为:P(x1,x2,x3,.xn).其中P是谓词符号,表示x1,x2,x3,.,xn个体对象之间的属性、状态或关系.x1,x2,x3,.,xn是谓词的参量,可以是个体常量、个体变量或个体函数.谓词逻辑就是指利用谓词的形式,来表达知识和进行因果推理.在谓词逻辑中,通过增加量词来提高谓词表达语义的能力.“!”表达全称量词,而“”表达存在量词,用“!”和“”加约束变元的形式有效地提高了谓词逻辑的表达能力5.使用谓词逻辑能够自然、直观、准确地表示知识及推理,从

24、而为计算机实现逻辑推理提供了一条有效的途径.4.2、基于谓词逻辑的除法运算的SQL表达4.2.1、基于谓词逻辑的除法运算语义分析与表达给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组.R中Y与S中的Y可以有不同的属性名,但必须出自相同的域集.R与S的除运算可以得到一个新的关系P(X),第2期王路帮,张庆元,储成哲:基于谓词逻辑的除法运算语义及其SQL实现P是R中满足下列条件的元组在X属性列上的投影:元组在X上的分量值x的像集Y(x)包含S在Y上的投影的集合.可记作:.图1表达了除法运算的实现过程.图2表达了除法运算的语义实现过程.通过谓词推理和形式转换,除法运算的语义解析为:在MS

25、SQL中可以用到的谓词表达关键词有ANY、ALL和Exists,ANY在SQL中表达了“某一个”的含义,而并非“任意一个”的意思,比如“ANY”表达了“大于子查询结果中的某个值”的含义,而非“任何值都大的含义”.ALL表达“所有值”的含义,比如“ALL”表示“大于子查询结果中的所有值”.而Exists表达“存在”的含义,一般在构造子查询的时候用到.4.2.2、SQL除法运算的实现R(X、Y)S(Y、Z)的运算用结构化语言SQL语句可表达为下列形式:select distinct R.Xfrom R R1where not exists(select S.Yfrom Swhere not exi

26、sts(selectfrom R R2where R2.X=R1.X AND R2.Y=S.Y)同理,基于多属性关系除法的SQL表达形式为:select distinct R1.X1,R1.X2,R1.Xnfrom R R1where not exists(select S.Y1,S.Y2,S.Ymfrom Swhere not exists(selectfrom R R2where R2.X1=R1.X1 And R2.X2=R1.X2 AndAnd R2.Xn=R1.Xn AndR2.Y1=S.Y1 And R2.Y2=S.Y2 AndAnd R2.Ym=S.Ym)4. 3、除法运算的案例

27、解析构造一个RDB数据库,包括一个学生记录表(Student),一个课程记录表(Course)和一个学生选课关系表(SC).Student表中记录了学生的Sno(学号)、Sname(学生名)、Ssex(学生性别)、Sage(学生年龄)及Sdept(学生所在系);而Course包括Cno(课程号)和Cname(课程名称);SC表包括Sno、Cno和Grade(成绩).现要查询至少学习了学号为“95001”的学生所学课程的所有学生学号.因查询仅涉及SC表,故仅列SC表,如表1:表1 SC记录表Sno(学号)Cno(课程号)Grade(成绩)95001192950012859500138895002

28、29095002380令CS(95002,y)表示95002学习了课程y,Student(x)表达x是某个学生的学号,这样CS(x,y)就表达某个学生学习了y课程.相关的语义描述为: 对应的SQL语句可以设计为:select distinct Snofrom SC SCF/SCF表示sc课程表的第一张虚拟表/where not exists(select Cnofrom SC SCS/SCS表示第二张虚拟表/where SCS.Sno=95001and not exists(selectfrom SC SCT/SCT表示第三张虚拟表/where SCT.Sno=SCF.Sno and SCT.

29、Cno=SCS.Cno)结束语本文首先介绍了谓词逻辑的基本概念和对谓词公式基本操作,运用路一些具体的实例进行了分析,然后介绍了关系数据库的基本概念基本操作,最后详细的介绍了谓词逻辑在关系数据库中的应用,即将谓词逻辑及公理化理论应用于关系数据库中表示数据子语言,根据一些实例表进行了关系演算以及分析。最后分析了基于谓词逻辑的除法运算语义及其SQL实现,基于谓词推理的除法运算的语义分析与表达较好地反映了除法操作的基本过程,也反映了变量之间的依赖关系.在内外嵌套的三层结构中,最里层的变量连接了第一层和第二层的两类变量.这为MS SQL实现除法运算提供了明晰的逻辑基础,使得SQL设计较为简单快捷,为大量涉及除法操作的实际问题提供了有效的解决方案.在未来的学术探讨和教学中想通过某种机制构造一种除法运算的结构化自动实现机制,解决除法运算给广大SQL使用者带来的困难.参考文献【1】赵永霞数据库系统原理与应用【M】武汉大学出版社,2006【2】王志梅关系数据库基础与技术【M】国防工业出版社,2005【3】李春葆,曾慧数据库原理【M】清华大学出版社,2006【4】周定康,许婕关系数据库理论及应用【M】华中科技大学出版社2005【5】德特数据库系统导论【M】中国电力出版社,2006【6】戴特数据库系统导论【M】机械工业出版社,2007【7】GeofSutclifeLog

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1