Fuzzy relational databases have been introduced to deal with uncertain or incomplete information demonstrating the efficiency of processing fuzzy queries. For these reasons, many organizations aim to integrate flexible querying to handle imprecise data or to use fuzzy data mining tools, minimizing the transformation costs. The best solution is to offer a smooth migration towards this technology. This chapter presents a migration approach from relational databases towards fuzzy relational databases. This migration is divided into three strategies. The first one, named “partial migration,” is useful basically to include fuzzy queries in classic databases without changing existing data. It needs some definitions (fuzzy metaknowledge) in order to treat fuzzy queries written in FSQL language (Fuzzy SQL). The second one, named “total migration,” offers in addition to the flexible querying, a real fuzzy database, with the possibility to store imprecise data. This strategy requires a modification of schemas, data, and eventually programs. The third strategy is a mixture of the previous strategies, generally as a temporary step, easier and faster than the total migration.
Key Terms in this Chapter
Fuzzy Query: Query with imprecision in the preferences about the desired items. These preferences may be set usually using fuzzy conditions in the queries. These fuzzy conditions include many possible forms like fuzzy preferences (e.g., I prefer bigger than cheaper), fuzzy labels (e.g., hot and cold), fuzzy comparators (e.g., approximately greater or equal than), fuzzy quantifiers (e.g., most or approximately the half), and so forth. One basic target in a fuzzy query is to rank the resulting items according to their fulfillment degree (usually a number between 0 and 1).
Fuzzy Metaknowledge Base (FMB): In a fuzzy database, the FMB is the extension of the data dictionary in order to store the fuzzy metadata, that is, information about fuzzy objects: fuzzy data type of each fuzzy attribute, the definition of labels, the margin for approximate values, the minimum distance for very separated values, fuzzy quantifiers, and so forth.
Legacy System: Existing system in a concrete context, for example, an existing database.
SQL (Structured Query Language): A computer language used to create, retrieve, update, and delete data from relational database management systems. SQL has been standardized by both ANSI and ISO. It includes DML (Data Management Language) and DDL (Data Definition Language). The statement for querying is the SELECT command.
FSQL (Fuzzy SQL): Extension of the popular language SQL that allows the management of fuzzy relational databases using the fuzzy logic. Basically, FSQL defines new extensions for fuzzy queries, extending the SELECT statement, but it also defines other statements. One of these fuzzy items is the definition of fuzzy comparators using mainly the possibility and necessity theory. Besides, FSQL allows the definition of linguistic labels (like hot, cold, tall, short, etc.) and fuzzy quantifiers (most, approximately 5, near the half, etc.). The more recent publication about FSQL is the book Fuzzy Databases: Modeling, Design and Implementation by Galindo et al. (2006).
Fuzzy Comparators: They are different techniques to compare two values using fuzzy logic. FSQL defines fuzzy comparators like FEQ (fuzzy equal), NFEQ (necessarily fuzzy equal), FGT (fuzzy greater than), NFGT (necessarily fuzzy greater than), and so forth.
FuzzyEER Model: Conceptual modeling tool, which extends the Enhanced Entity Relationship (EER) model with fuzzy semantics and fuzzy notations to represent imprecision and uncertainty in the entities, attributes, and relationships. The basic concepts introduced in this model are fuzzy attributes, fuzzy entities, fuzzy relations, fuzzy degrees, fuzzy degrees in specializations, and fuzzy constraints. A complete definition of this model is published in the book Fuzzy Databases: Modeling, Design and Implementation (Galindo et al., 2006).
Fuzzy Attribute: In a database context, a fuzzy attribute is an attribute of a row or object in a database, which allows querying by fuzzy information and/or storing this kind of information.
Fuzzy Migration: Migration from crisp databases towards fuzzy databases in order to introduce imprecise/fuzzy information in current information systems. This fuzzy migration consists in deriving a new database from a legacy database and in adapting data, metadata, and the software components accordingly. It does not only constitute the adoption of a new technology, but also the adoption of a new paradigm.
CDEG Function: Function defined in FSQL to compute the Compatibility DEGree of each row. This value is the fulfillment degree of each row to the fuzzy condition included in the WHERE clause of a SELECT statement in FSQL language. This function may be used with an attribute in the argument and then it computes the fulfillment degree for the specific attribute. If the argument is the symbol asterisk, *, then it computes the fulfillment degree using the whole condition, even whether it includes fuzzy conditions on different attributes.
Fuzzy Database: If a regular or classical database is a structured collection of records or data that is stored in a computer, a fuzzy database is a database which is able to deal with uncertain or incomplete information using fuzzy logic. There are many forms of adding flexibility in fuzzy databases. The simplest technique is to add a fuzzy membership degree to each record, that is, an attribute in the range [0,1]. However, there are other kinds of databases allowing fuzzy values to be stored in fuzzy attributes using fuzzy sets, possibility distributions, or fuzzy degrees associated to some attributes and with different meanings (membership degree, importance degree, fulfillment degree, etc.). Of course, fuzzy databases should allow fuzzy queries using fuzzy or nonfuzzy data, and there are some languages that allow these kinds of queries, like FSQL or SQLf. In synthesis, the research in fuzzy databases includes the following four areas: flexible querying in classical or fuzzy databases, extending classical data models in order to achieve fuzzy databases (fuzzy relational databases, fuzzy object-oriented databases, etc.), fuzzy data mining techniques, and applications of these advances in real databases.