In this chapter, we present the Soft-SQL project whose goal is to define a rich extension of SQL aimed at effectively exploiting flexibility offered by fuzzy sets theory to solve practical issues when querying classic relational databases. The Soft-SQL language is based on previous approaches that introduced soft conditions on tuples in the classical relational database model. We retain the main features of these approaches and focus on the need to provide tools allowing users to directly specify the context dependent semantics of soft conditions. To this end, Soft-SQL provides a command (named CREATE TERM-SET) to define the semantics of linguistic values with respect to a context represented by a linguistic variable (Zadeh, 1975); the SELECT command is extended in order to support soft predicates based on the user defined term sets, the semantics of grouping and aggregation can be modified, and finally, the clauses in the SELECT command can be combined effectively.
Key Terms in this Chapter
Term Set: Name of the set of values that a linguistic variable can assume.
Linguistic Quantifier: Linguistic quantifiers extend the set of quantifiers of classical logic. They can be either crisp (such as all, at least 1, at least k, half) or fuzzy quantifiers (such as most, several, some, approximately k). Formally, Zadeh (1983) first defined fuzzy quantifiers as fuzzy subsets and identified two types of quantifiers: absolute and relative. Absolute quantifiers, such as about 7, almost 6, and so forth are defined as fuzzy sets with membership function on a subset of positive integers. Relative quantifiers are defined as fuzzy sets with membership function defined on [0,1].
OWA Operator: Ordered weighting average operators defined by Yager (1988) are a family of mean-like operators that allow the realization of aggregations in between the two extremes of the AND and OR corresponding with the minimum and the maximum of the operands respectively.
Flexible Query: A query allowing the specification of some kind of preferences on selection conditions and/or priorities among conditions. Within the fuzzy context, flexible queries are also named fuzzy queries: preferences in fuzzy queries are defined by soft conditions expressed by linguistic predicates such as young, while priorities among conditions are expressed by numeric values expressing the degrees of priorities.
Soft-SQL: Indicates the fuzzy extension of SQL defined in this chapter.
Fullfillment Degree: A value in [0,1] that expresses the satisfaction degree of a tuple of a relation subjected to a flexible query in a relational database. When it is zero, it means that the tuple does not satisfy the flexible query at all; when it is one, it means that the tuple fully satisfies the query. Intermediate values in (0,1) indicate partial satisfaction of the query by the tuple. Fullfillment degree is also named membership degree of the tuple in SQLf queries.
SQLf: Indicates a fuzzy extension of SQL language (Bosc & Pivert, 1995). Another extension is named FSQL (Galindo et al., 2006).
Aggregate Function: A function of SQL language working on sets of tuples instead of on single tuples and returning one single value as a result of their evaluation.
SQL: Structured Query Language used in relational databases.
Soft Condition: Tolerant selection condition admitting degrees of satisfaction defined by a fuzzy set on the domain of a linguistic variable, such as Age, and specified by linguistic terms, such as young, old, and so forth.