SQLf
SQLf är en SQL utökad med fuzzy set theory- applikation för att uttrycka flexibla ( fuzzy ) frågor till traditionella (eller ″vanliga″) relationsdatabaser. Bland de kända tilläggen som föreslås för SQL, för närvarande, är detta den mest kompletta, eftersom den tillåter användning av olika otydliga element i alla konstruktioner av språket SQL.
SQLf är det enda kända förslaget till flexibla frågesystem som tillåter språklig kvantifiering över uppsättning rader i frågor, som uppnås genom utökningen av SQL-kapslings- och partitioneringsstrukturer med fuzzy kvantifierare. Det tillåter också användningen av kvantifierare för att kvalificera antalet sökkriterier som uppfylls av enstaka rader. Flera mekanismer föreslås för frågeutvärdering, den viktigaste är den som bygger på härledningsprincipen. Detta består i att härleda klassiska frågor som ger, givet ett tröskelvärde t , en t -cut av resultatet av den luddiga frågan, så att den extra bearbetningskostnaden för att använda ett suddigt språk minskar.
Grundblock
Den grundläggande frågestrukturen för SQLf är det multirelationella blocket. Uppfattningen av denna struktur är baserad på de tre grundläggande funktionerna i den relationella algebra : projektion , kartesisk produkt och urval , och tillämpningen av fuzzy sets begrepp. Resultatet av en SQLf-fråga är en suddig uppsättning rader som är en suddig relation istället för en vanlig relation. Ett grundläggande block i SQLf består av en SELECT-
sats, en FROM
-sats och en valfri WHERE
-sats. Semantiken för denna frågestruktur är:
- SELECT
-
satsen motsvarar projektionen. Den specificerar relationernas attribut (eller attribututtryck) som kommer att väljas. Den resulterande tabellen är en suddig uppsättning och den ges i fallande ordning efter nöjdhetsgrad. - SELECT
-
satsen specificerar också en kalibrering som är avsedd att begränsa uppsättningen rader som hämtas. Det finns två typer av kalibreringar: kvantitativa och kvalitativa. I kvantitativ kalibrering anger användaren antalet resultat som ska hämtas, så att frågan kommer att hämta raderna med högsta medlemsgrader upp till antalet obligatoriska svar. I kvalitativ kalibrering specificerar användaren en lägsta nivå av tillfredsställelse som måste ha någon hämtad rad. - FROM
-
klausulen motsvarar den kartesiska produkten. Konsultationen görs om den kartesiska produkten av de relationer som specificeras i denna klausul. - WHERE
-
satsen motsvarar valet. Den anger det villkor för vilket nöjdhetsgraden kommer att beräknas. Rader som inte alls uppfyller villkoret avvisas. Detta tillstånd är ett suddigt predikat som kan involvera vilket attribut som helst i relationerna.
Följande är ett exempel på en SELECT-
fråga som returnerar en lista över hotell som är billiga. Frågan hämtar alla rader från Hotell som uppfyller det fuzzy predikatet billigt definierat av den fuzzy uppsättningen μ =( ∞ , ∞ , 25, 30). Resultatet sorteras i fallande ordning efter medlemsgraden för frågan.
VÄLJ namn , adress FRÅN hotell VAR pris = billigt ;