快捷搜索:

谈数据库中模糊数据的输入与判别

媒介

隐隐数据库,是指能够处置惩罚隐隐数据的数据库。一样平常的数据库都因此二直逻辑和正确的数据对象为根基的,不能表示许多隐隐不清的工作。跟着隐隐数学理论体系的建立,人们可以用数量来描述隐隐事故并能进行隐隐运算。这样就可以把不完全性、不确定性、隐隐性引入数据库系统中,从而形成隐隐数据库。隐隐数据库钻研主要有两方面,首先是若何在数据库中寄放隐隐数据;其次是定义各类运算建立隐隐数据上的函数。隐隐数的表示主要有隐隐区间数、隐隐中间数、隐隐聚拢数和附属函数等。

自从1965年美国加州大年夜学伯克利分校的LoftiZadeh提出了隐隐逻辑以来,人类在这一领域内的钻研不停没有终止过;在数据库领域内,隐隐逻辑理论也获得了必然的利用,本文就隐隐数据的输入与判别谈一下自己的熟识,意在抛砖引玉。

一、隐隐逻辑基滥觞基本理

U 为某些工具的聚拢,称为论域,可所以继续的或离散的;u 表示U 的元素,记作U ={u}。

定义1 隐隐聚拢(fuzzy sets) 论域U 到[0,1]区间的任一映射mF ,即mF :U ®[0,1],都确定U 的一个隐隐子集F ;mF称为F的附属函数(membership function)或附属度(grade of membership)。也便是说,mF 表示u属于隐隐子集F的程度或等级。在论域U中,可把隐隐子集表示为元素u与其附属函数mF(u)的序偶聚拢,记为:

F ={(u,mF(u)|uÎU)}

若U 为继续,则隐隐集F 可记作:

F =òUmF(u)/u

若U 为离散,则隐隐集F 可记为:

F=mF(u1)/u1 mF(u2)/u2 …. mF(un)/un= åmF(ui)/ui

定义2 隐隐支集、交叉点及隐隐单点 假如隐隐集是论域U 中所有满意mF(u)>0的元素u 构成的聚拢,则称该聚拢为隐隐集F的支集。当u 满意mF =10,则称此隐隐集为隐隐单点。

定义3 说话变量 一个说话变量可定义为多元组(x,T(x),U,G,M)。此中,x为变量名;T(x)为x的词集,即说话值名称的聚拢;U 为论域;G 是孕育发生说话值名称的语律例则;M 是与各说话值含义有关的语律例则。说话变量的每个说话值对应一个定义在论域U 中的隐隐数。说话变量基础词集把隐隐观点与正确值联系起来,实现对定性观点的定量化以及定量数据的定性隐隐化。 例如,某浴室锅炉把水的温度作为一个说话变量,其词集T(温度)可为:

T(温度)={超高,很高,较高,适中,较低,很低,过低}

二、 数据库中寄放隐隐数据的措施

1、 数据模型的选择

近年利用较多的数据库模型主要有关系数据模型、面向工具模型、工具-关系数据模型。

隐隐数据库要求存储的数据具有抽象度高、数据类型繁杂、面向工具操作的特征,分外针对隐隐识别功能的实现还必须具即时的附属函数。

关系数据模型具有布局统一、面向记录、有限数据类型、不能清晰表示和有效处置惩罚繁杂工具的毛病,难以满意隐隐数据库的需求。

面向工具数据库治理系统(OODBMS)是从工具不雅点启程,移向数据库治理思维,以面向工具的法度榜样设计说话为根基的持久化的法度榜样设计说话,今朝推行的是ODMG-93标准,得当于具有繁杂数据要求的工程、图形、多媒体等领域,是今朝对照先辈的一种数据模型理念。然则它在查询、事物治理和并发方面较差,而且用户真个介入不好,同时因为其属于新闹事物,尚不成熟,是以各大年夜数据库厂家对其的支持较差,可谓“曲高和寡”。是以也不是最好的选择。

工具-关系数据库治理系统(ORDBMS)是从关系数据库不雅点启程,移向工具思维,以关系数据库和SQL为根基的扩展关系模型,具扩展繁杂数据类型和容许用户自定义函数(SQL或C说话)功能。具面向工具特点,受通用性强的SQL3(SQL99)标准支持。ORDBMS既满意了传统关系型数据库用户的要求,同时又具有繁杂数据必要的利用,具强大年夜查询说话功能,同时也有很多大年夜的数据库厂商支持。是建立隐隐数据库的最佳选择。

2、 数据模型的建立

首先建立非1NF文档关系:

[sayyes]http://www.computerworld.com.cn/htm/app/service/01_7_13_3.gif[/sayyes]

以例某浴室锅炉把水的温度作为一个说话变量,其词集T(温度)可为:

T(温度)={超高,很高,较高,适中,较低,很低,过低}

----------------------------------------------------------------------------

SQL99语句:

Create type mynum1 integer varying.

Create type mynum2 numeric varying.

/*建立繁杂类型*/

create table temperature

(fuzzytemp char(4),

x mynum1 [10],

mn mynum2 [10],

/*应用数组,以确定各数的位置*/

check (fuzzytemp in (‘超高’,’很高’,’较高’,’适中’,’较低’,’很低’,’过低’))

create table measure

(time time,

temp smallint;

check (temp

create function sum()

returns integer as

select (x[1]* mn[1]x[2]* mn[2]x[3]* mn[3]x[4]* mn[4]x[5]* mn[5]x[6]* mn[6]x[7]* mn[7]x[8]* mn[8]x[9]* mn[9]x[10]* mn[10])/( mn[1]mn[2]mn[3]mn[4]mn[5]mn[6]mn[7]mn[8]mn[9]mn[10])

from temperature

where fuzzytemp=’适中’)

/*应用ORDBMS中的用户定义函数用重心法建立附属函数*/

select time

from measure

where (temp-sum())-5

/*经由过程应用附属函数的返回值完成查询,并将水温适中的偏差范围定为5℃以内

您可能还会对下面的文章感兴趣: