程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 談數據庫模糊數據的輸入與判別

談數據庫模糊數據的輸入與判別

編輯:關於SqlServer
 前言

模糊數據庫,是指能夠處理模糊數據的數據庫。一般的數據庫都是以二直邏輯和精確的數據工具為基礎的,不能表示許多模糊不清的事情。隨著模糊數學理論體系的建立,人們可以用數量來描述模糊事件並能進行模糊運算。這樣就可以把不完全性、不確定性、模糊性引入數據庫系統中,從而形成模糊數據庫。模糊數據庫研究主要有兩方面,首先是如何在數據庫中存放模糊數據;其次是定義各種運算建立模糊數據上的函數。模糊數的表示主要有模糊區間數、模糊中心數、模糊集合數和隸屬函數等。
自從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.jpg[/sayyes]
以例某浴室鍋爐把水的溫度作為一個語言變量,其詞集T(溫度)可為:
T(溫度)={超高,很高,較高,適中,較低,很低,過低}
----------------------------------------------------------------------------
SQL99語句:
Create type mynum1 integer varying.
Create type mynum2 numeric varying.
/*建立復雜類型*/
create table temperature
(fuzzytemp char(4),
x mynum1 ,
mn mynum2 ,
/*使用數組,以確定各數的位置*/
check (fuzzytemp in (‘超高’,’很高’,’較高’,’適中’,
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved