Changes between Version 3 and Version 4 of FDORfc7


Ignore:
Timestamp:
Jul 30, 2007, 12:24:36 PM (17 years ago)
Author:
barbarazoladek
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FDORfc7

    v3 v4  
    2222== Overview ==
    2323
    24 The purpose of this RFC is to enhance the !FdoClassDefinition class by adding new methods !GetIsViewBased() and !SetIsViewBased().
     24The purpose of this RFC is to enhance the !FdoClassDefinition class by adding new methods !GetIsVirtual() and !SetIsVirtual().
    2525
    2626
    2727== Motivation ==
    2828
    29 The motivation for this RFC is to expose classes based on virtual objects. The significat differenece between classes based on real and virtual objects is that the later do not contain any data themselves. An RDBMS view is an exmaple of the virtual object. It is really an SQL query. An FDO class based on that query exposes data that is contained in other objects referenced in the query. The class schema characterists like property types and constraints tightly depends on the these objects. Data exposed by the class is more dynamic as it can be edited or deleted from the objects that contain it.
     29The motivation for this RFC is to expose classes based on virtual objects. The significat differenece between classes based on real and virtual objects is that the later do not contain any data themselves. Also, a virtual object is not stored in the datastore as a distinct object. An RDBMS view is one exmaple of the virtual object. It is just a named query. An FDO class based on that query exposes data that is contained in other objects referenced in the query. The class schema characterists like property types and constraints tightly depends on the these objects. Data exposed by the class is more dynamic as it can be edited or deleted from the objects that contain it.
    3030
    31 How these classes can be used? Classes based on virtual objects can be used for limiting or restricting access to some data, for analysis where a class exposes data that is combination of many classes joined in certain way with sometimes complex conditions.
     31How these classes can be used? Classes based on virtual objects can be used for limiting or restricting access to some data and for analysis where a class exposes data that is combination of many classes joined in certain way with sometimes complex conditions.
    3232
    33 Why is it important to distinguish these classes in FDO? These classes virtuality cannot be expressed by any existing methods of !FdoClassdefinition. In fact, their characteristics are somewhat unpredictable and depend on the underlying virtual object definition.
     33Why is it important to distinguish these classes in FDO? Because these classes fall into a different category, for the same reasons why in RDBMSs views are distinguished from tables. These classes virtualness cannot be expressed by any existing methods of !FdoClassdefinition. In fact, their characteristics are somewhat unpredictable and depend on the underlying virtual object definition.
    3434
    3535== Proposed Solution ==
     
    4444            ...
    4545            /// \brief
    46             /// Gets the value of m_IsViewBased. It is true if a class is based on view; otherwise is false.
     46            /// Gets the value of m_IsVirtual. It is true if a class is based on virtual object; otherwise is false.
    4747            ///
    4848            /// \return
    4949            /// Returns bool
    5050            ///
    51                 FDO_API bool GetIsViewBased();
     51                FDO_API bool GetIsVirtual();
    5252
    5353            /// \brief
    54             /// Sets the value of m_IsViewBased. It is true if a class is based on view; otherwise is false.
     54            /// Sets the value of m_IsVirtual. It is true if a class is based on view; otherwise is false.
    5555            /// This is an internal method that can only be called by providers. Application should not use this method.
    5656            ///
     
    5858            /// Returns nothing
    5959            ///
    60                 FDO_API void SetIsViewBased( bool value );
     60                FDO_API void SetIsVirtual( bool value );
    6161            ...
    6262       
    6363         private:
    6464            ...
    65             FdoBoolean  m_isViewBased;
     65            FdoBoolean  m_isVirtual;
    6666            ...
    6767       }
    6868
    6969}}}
     70
     71Note that for the providers where the virtual object concept cannot be used, GetISVirtual() will always return ''false''.
     72
    7073== Implications ==
    7174