谈数据库中模糊数据的输入与判别
谈数据库中模糊数据的输入与判别,谈数据库中模糊数据的输入与判别
模糊数据库,是指能够处理模糊数据的数据库。一般的数据库都是以二直逻辑和精确的数据工具为基础的,不能表示许多模糊不清的事情。随着模糊数学理论体系的建立,人们可以用数量来描述模糊事件并能进行模糊运算。这样就可以把不完全性、不确定性、模糊性引入数据库系统中,从而形成模糊数据库。模糊数据库研究主要有两方面,首先是如何在数据库中存放模糊数据;其次是定义各种运算建立模糊数据上的函数。模糊数的表示主要有模糊区间数、模糊中心数、模糊集合数和隶属函数等。
自从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<=100))
三、模糊数据的判决
通过模糊推理得到的结果是一个模糊集合或者隶属函数,但在实际使用中,特别是在模糊逻辑控制中,必须用一个确定的值才能去控制伺服机构。在推理得到的模