Object-relational data model

Hi, I am facing to choose an DBMS product for a big project. Does 8i support an object-oriented or object-relational data model?
Thank you!

<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by xuechen:
Hi, I am facing to choose an DBMS product for a big project. Does 8i support an object-oriented or object-relational data model?
Thank you!<HR></BLOCKQUOTE>
Hi, Oracle8 and Oracle8i will provide you object relational model. It is not pure object-oriented solution. In the field of databases it is difficult to impliment pure object-oriented solution now a days. But it is easy to understand and design an object-relational design and implimentation. In Oracle8 there are some very useful facilities for such a design like the concept of nested tables. I had a project of defence nature and design in object-relational technique and find much easy and understandable then pure relational approach. If it is possible for you then please be contect with me on mail and send me a little information about your work and experience.
Regards,
Awais
null

Similar Messages

  • Why you put object in data model

    Hi All
    I did my interview and interviewer asked me the following question.
    Question Why you put object in data model?
    Appreciate your answer. Thanks
    Regards
    Shu

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by xuechen:
    Hi, I am facing to choose an DBMS product for a big project. Does 8i support an object-oriented or object-relational data model?
    Thank you!<HR></BLOCKQUOTE>
    Hi, Oracle8 and Oracle8i will provide you object relational model. It is not pure object-oriented solution. In the field of databases it is difficult to impliment pure object-oriented solution now a days. But it is easy to understand and design an object-relational design and implimentation. In Oracle8 there are some very useful facilities for such a design like the concept of nested tables. I had a project of defence nature and design in object-relational technique and find much easy and understandable then pure relational approach. If it is possible for you then please be contect with me on mail and send me a little information about your work and experience.
    Regards,
    Awais
    null

  • Data Modeler: Relational data model questions

    1. Can a different notation be specified for relational data models' constraints? Specifically, I'd like crow's feet. BTW, the docs show crow's feet and parent pointer (with the arrowhead), but there's no such thing in the actual modeler.
    2. Is there any way to manually route FK constraints lines?
    3. When forward engineering from logical, is there any way to indicate the preferred name for keys and indexes (primary, unique, foreign)?
    4. Mandatory/optional indicator on tables: what exactly does 'N' or 'A' stand for? I can understand 'N' meaning "Not optional", but 'A'? Wouldn't it be simpler to use '*' and 'o' like in the logical?
    Man, do I ever miss Designer!
    Thanks,
    Patrick

    Here's one more question:
    I've transformed several super/sub entities to relational, and some of the tables do not allow me to open Properties (on the table). I can use the navigator to open column properties, but cannot open table properties (neither from diagrammer nor from navigator). Some of the tables are two or three subtype levels deep, and I haven't figured out why some open and some don't.

  • Query on object-relational data takes forever

    hello all
    i have a problem with a query performance... it seems like whenever i call a specific object function, the query executes very very slow. The results though are correct.
    let me explain what i do... I have some relational tables, and i recreate the schema into an object relational one. Then i insert data from relational tables to object tables. I follow this tutorial: [A Sample Application Using Object-Relational Features|http://download.oracle.com/docs/cd/B12037_01/appdev.101/b10799/adobjxmp.htm]
    these are the types that make up the transaction object table.
    CREATE OR REPLACE TYPE  TransactionItem_objtyp AS OBJECT
      transItemID   NUMBER,
      Quantity      NUMBER,
      iValue        NUMBER,
      item_ref      REF Item_objtyp
    CREATE TYPE TransactionItemList_ntabtyp AS TABLE OF TransactionItem_objtyp;
    CREATE OR REPLACE TYPE Transaction_objtyp AS OBJECT
      transID             NUMBER,
      cust_ref            REF Customer_objtyp,
      transTameio         NUMBER,
      transDateTime       DATE,
      isStoreCustomer     CHAR(1),
      store_ref           REF Store_objtyp,
      transItemList_ntab  TransactionItemList_ntabtyp,
      MAP MEMBER FUNCTION
        getTransID  RETURN NUMBER,
      MEMBER FUNCTION
        getTotalCost  RETURN NUMBER
    );the function that causes the query to run very slow (fetching 10 rows per sec in a query that should return 130.000 rows) is the getTotalCost:
    CREATE OR REPLACE TYPE BODY Transaction_objtyp AS
    MAP MEMBER FUNCTION getTransID RETURN NUMBER IS
    BEGIN
    RETURN transID;
    END;
    MEMBER FUNCTION getTotalCost RETURN NUMBER IS
    i       INTEGER;
    Total   NUMBER := 0;
    BEGIN
    IF(UTL_COLL.IS_LOCATOR(transItemList_ntab))
    THEN
    SELECT SUM(L.Quantity * L.iValue) INTO Total
    FROM TABLE(CAST(transItemList_ntab AS TransactionItemList_ntabtyp)) L;
    ELSE
    FOR i IN 1..SELF.transItemList_ntab.COUNT LOOP
    Total := Total + SELF.transItemList_ntab(i).Quantity * SELF.transItemList_ntab(i).iValue;
    END LOOP;
    END IF;
    RETURN ROUND(Total,2);
    END;
    END;the table transaction_objtab that contains the nested table is this
    CREATE TABLE Transaction_objtab OF Transaction_objtyp(
      PRIMARY KEY(transID),
      FOREIGN KEY(cust_ref) REFERENCING Customer_objtab,
      FOREIGN KEY(store_ref) REFERENCING Store_objtab)
      OBJECT IDENTIFIER IS PRIMARY KEY
      NESTED TABLE transItemList_ntab STORE AS TransItem_ntab (
        (PRIMARY KEY(transItemID))
        ORGANIZATION INDEX)
      RETURN AS LOCATOR
    ALTER TABLE TransItem_ntab ADD (SCOPE FOR (item_ref) IS Item_objtab);and this is how i insert the values into the transaction_objtab and the nested tables from the relational ones:
    INSERT INTO Transaction_objtab
    SELECT  t.transID,
            REF(c),
            t.transTameio,
            t.transDateTime,
            t.isStoreCustomer,
            REF(s),
            TransactionItemList_ntabtyp()
    FROM transactions t, Customer_objtab c, store_objtab s
    WHERE t.transCustomer = c.custCode AND t.transStore = s.storeCode;
    BEGIN
      FOR i IN (SELECT DISTINCT transID FROM transactionItems) LOOP
        INSERT INTO TABLE(  SELECT p.TransItemList_ntab
                            FROM Transaction_objtab p
                            WHERE p.transID = i.transID)
        SELECT transItemIDseq.nextval, t.Quantity, t.iValue, REF(i)
        FROM transactionItems t, item_objtab i
        WHERE t.transID = i.transID AND t.itemID = i.itemID;
      END LOOP;
    END;so whenever i use transaction_objtab t, t.getTotalCount() query takes for ever.
    is there anything i do wrong?
    sorry for this long post.
    thanks in advance

    So, how many transactions? How many items? There is a whole series of questions I would normally ask at this point, because performance tuning is - to a certain extent - largely a matter of rote. But there's a more fundamental issue.
    You are experiencing the problem with objects. They are cool enough when handling individual "things" but they suck when it comes to set-based processing. SQL and relational programming, on the other hand, excels at that sort of thing. So the question which has to asked is, why are you using objects for this project?
    Cheers, APC
    blog: http://radiofreetooting.blogspot.com

  • Business object architecture data model

    HI All,
    Can anyone give the architectural data model for business object ?
    i got few but my data base is sap BI and i need to design a document to show the data model
    so anybody having such document or any link for that so please share.
    thanks in advance.
    regards,
    DJ.

    Hi DJ,
    Best Practice says that if you have SAP BI in Back end and SAP BOBJ on front End then follow below mentioned path.
    Create your SAP Query on the top of your InfoCube or ODS etc
    Use calculated Key Figures and Restricted Key Figures in your Query.
    Use most of the objects under Free Characteristics area for better performance and results
    Create your Universe on the top of SAP Query. (we can create universe on the top of Cube and ODS but then we cannot use variable and performance also gets hit)
    You can also create further variable / Filters at Universe level instead of WebI to improve performance
    Create WebI report or Crystal Report etc (You can also create variables / Filters here).
    Page 38 of following link gives a diagram for better understanding.
    [http://help.sap.com/businessobject/product_guides/boexir31/en/xi3-1_bip_admin_en.pdf]
    Bashir Awan

  • Error engineering logical data model to relational data model -- name column hierarchies

    Hello,
    I have three entities, Entity1 is logical only , entity2 is a subtype of entity1, and entity3 is a subtype of entity1.
    Entity1 has the abbreviation ( PRUE) and entity1 has three atributes ( PRUE_PPPPPP, PRUE_OOOOO).
    when I make engineering the columns resulting in entity2 and entity3 are PRUE_PRUE_PPPPPP and PRUE_PRUE_OOOOO
    I have unchecked the options apply translations of names and preferred use abbreviations in general options (engineering)
    and the tree comparison is the right name (While the result in the relational model is incorrect)
    ¿Any help?

    Hello,
    version 4.0.0.820.
    I checked the options (naming standard template) and they are correct, the problem is in the engineering.
    Thanks

  • Object relation data

    hi
    what is the preffered approach for generating xml in the db when
    the xml required is hierachial in nature? I am currently generating
    the xml using object types, lets say for example you create the types
    nescessary to represent a purachse order document. This xml document
    contains ALL the data that makes up the purchase order. now what happens
    when some componants/resources only need say the consignee part of the
    purchase order doc. do you create more types to represent the this new
    xml structure or... ?
    # I am developing for Oracle9i Release 9.0.1.1.1
    any help will be appreciated
    thanks

    Thanks Pete
    I decided to just generate the xml using dbms_xmlquery package. but
    I am still not comfortable with the approach I used. Maybe what Im
    after is an article describing good techniques in designing internet apps
    that use oracle resources. I would like to get a feel for the "bigger picture"
    if you know what I mean. any pointers...
    Regards
    Angus

  • Working with Object Relational model and Eclipse

    Hello,
    I have mad some types and typed tables in a schema on oracle 10g.
    My database respects the Object Relational model, in which I work with VARRAY, TYPES, NESTED TABLES, PL/SQL,...
    I have already install Enterprise Pack for Eclipse, and also have the Weblogic server, And I can generate tables. But the problem is that it gives to me this tables with wrong types, until they contains in fact other tables as Objet column, and also the types are not supported.
    Please need a help !
    Thank's in advance :)

    nhauge wrote:
    Hi,
    I want to make sure I understand the problem but will try to give you some information as well. So you have an Oracle 10g database in which you are using the object-relational database model with VARRAY's, etc. You say you are also trying to generate tables, but the generation is not working correctly. Are you using the "Generate tables from entities..." functionality? What is the source of the generated tables? I assume you generating from some type of JPA entity? Could you give a small example of the source you are generating from?
    In order to generate proper tables of this type, you would need to be using special TopLink/EclipseLink annotations such as @Array so the persistence provider would know that they are "special" and not just regular entities that would create standard relational tables.
    Neil
    Thank you for your replay,
    well I'm generating that with "Generate tables from entities" of eclipse link.
    this is an example of what I have in the database:
    [DB-SCRIPT|http://www.mediafire.com/view/?n3knwz1o4ggk50n]
    and this is what is generated(eclipselink-orm.xml):
    <?xml version="1.0" encoding="UTF-8"?>
    <entity-mappings version="1.2" xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eclipse.org/eclipselink/xsds/persistence/orm http://www.eclipse.org/eclipselink/xsds/eclipselink_orm_1_2.xsd">
         <entity class="model.Chefterritoire" access="VIRTUAL">
              <attributes>
                   <id name="idChef" attribute-type="long">
                        <column name="ID_CHEF"/>
                   </id>
                   <basic name="lesterritoires" attribute-type="Object">
                   </basic>
                   <basic name="nomChef" attribute-type="String">
                        <column name="NOM_CHEF"/>
                   </basic>
                   <basic name="tel" attribute-type="java.math.BigDecimal">
                   </basic>
              </attributes>
         </entity>
         <entity class="model.Client" access="VIRTUAL">
              <attributes>
                   <id name="idClient" attribute-type="long">
                        <column name="ID_CLIENT"/>
                   </id>
                   <basic name="adresseClient" attribute-type="String">
                        <column name="ADRESSE_CLIENT"/>
                   </basic>
                   <basic name="dateP" attribute-type="java.util.Date">
                        <column name="DATE_P"/>
                        <temporal>DATE</temporal>
                   </basic>
                   <basic name="lescommandes" attribute-type="Object">
                   </basic>
                   <basic name="nomClient" attribute-type="String">
                        <column name="NOM_CLIENT"/>
                   </basic>
                   <basic name="profession" attribute-type="String">
                   </basic>
                   <basic name="refrepresentant" attribute-type="Object">
                   </basic>
                   <basic name="telClient" attribute-type="java.math.BigDecimal">
                        <column name="TEL_CLIENT"/>
                   </basic>
              </attributes>
         </entity>
         <entity class="model.Commande" access="VIRTUAL">
              <attributes>
                   <id name="idCommande" attribute-type="long">
                        <column name="ID_COMMANDE"/>
                   </id>
                   <basic name="dateCommande" attribute-type="java.util.Date">
                        <column name="DATE_COMMANDE"/>
                        <temporal>DATE</temporal>
                   </basic>
                   <basic name="dateLivraison" attribute-type="java.util.Date">
                        <column name="DATE_LIVRAISON"/>
                        <temporal>DATE</temporal>
                   </basic>
                   <basic name="refreleve" attribute-type="Object">
                   </basic>
                   <basic name="refrepresentant" attribute-type="Object">
                   </basic>
                   <basic name="refvehicule" attribute-type="Object">
                   </basic>
                   <basic name="reprise" attribute-type="String">
                   </basic>
              </attributes>
         </entity>
         <entity class="model.Constructeur" access="VIRTUAL">
              <attributes>
                   <id name="idConstructeur" attribute-type="long">
                        <column name="ID_CONSTRUCTEUR"/>
                   </id>
                   <basic name="adresseConstructeur" attribute-type="String">
                        <column name="ADRESSE_CONSTRUCTEUR"/>
                   </basic>
                   <basic name="lesreleves" attribute-type="Object">
                   </basic>
                   <basic name="nomConstructeur" attribute-type="String">
                        <column name="NOM_CONSTRUCTEUR"/>
                   </basic>
                   <basic name="refvehucule" attribute-type="Object">
                   </basic>
              </attributes>
         </entity>
         <entity class="model.LesccommandesN" access="VIRTUAL">
              <table name="LESCCOMMANDES_N"/>
              <attributes>
              </attributes>
         </entity>
         <entity class="model.LescommandessN" access="VIRTUAL">
              <table name="LESCOMMANDESS_N"/>
              <attributes>
              </attributes>
         </entity>
         <entity class="model.LescommandesN" access="VIRTUAL">
              <table name="LESCOMMANDES_N"/>
              <attributes>
              </attributes>
         </entity>
         <entity class="model.LesoptionsN" access="VIRTUAL">
              <table name="LESOPTIONS_N"/>
              <attributes>
              </attributes>
         </entity>
         <entity class="model.LesrepresentantsN" access="VIRTUAL">
              <table name="LESREPRESENTANTS_N"/>
              <attributes>
              </attributes>
         </entity>
         <entity class="model.LessclientsN" access="VIRTUAL">
              <table name="LESSCLIENTS_N"/>
              <attributes>
              </attributes>
         </entity>
         <entity class="model.LesscommandesN" access="VIRTUAL">
              <table name="LESSCOMMANDES_N"/>
              <attributes>
              </attributes>
         </entity>
         <entity class="model.LesterritoiresN" access="VIRTUAL">
              <table name="LESTERRITOIRES_N"/>
              <attributes>
              </attributes>
         </entity>
         <entity class="model.LesvehiculesN" access="VIRTUAL">
              <table name="LESVEHICULES_N"/>
              <attributes>
              </attributes>
         </entity>
         <entity class="model.Modele" access="VIRTUAL">
              <attributes>
                   <id name="idModele" attribute-type="long">
                        <column name="ID_MODELE"/>
                   </id>
                   <basic name="couleurExterieure" attribute-type="String">
                        <column name="COULEUR_EXTERIEURE"/>
                   </basic>
                   <basic name="couleurInterieure" attribute-type="String">
                        <column name="COULEUR_INTERIEURE"/>
                   </basic>
                   <basic name="lesoptions" attribute-type="Object">
                   </basic>
                   <basic name="lesvehicules" attribute-type="Object">
                   </basic>
                   <basic name="prix" attribute-type="double">
                   </basic>
              </attributes>
         </entity>
         <entity class="model.Option" access="VIRTUAL">
              <table name="OPTIONS"/>
              <attributes>
                   <id name="idOption" attribute-type="long">
                        <column name="ID_OPTION"/>
                   </id>
                   <basic name="nomOption" attribute-type="String">
                        <column name="NOM_OPTION"/>
                   </basic>
                   <basic name="refmodele" attribute-type="Object">
                   </basic>
              </attributes>
         </entity>
         <entity class="model.Rapportvisite" access="VIRTUAL">
              <attributes>
                   <id name="idRapport" attribute-type="long">
                        <column name="ID_RAPPORT"/>
                   </id>
                   <basic name="dateVisite" attribute-type="java.util.Date">
                        <column name="DATE_VISITE"/>
                        <temporal>DATE</temporal>
                   </basic>
                   <basic name="frais" attribute-type="double">
                   </basic>
                   <basic name="refclient" attribute-type="Object">
                   </basic>
                   <basic name="refrepresentant" attribute-type="Object">
                   </basic>
                   <basic name="resultat" attribute-type="String">
                   </basic>
              </attributes>
         </entity>
         <entity class="model.Releve" access="VIRTUAL">
              <attributes>
                   <id name="idReleve" attribute-type="long">
                        <column name="ID_RELEVE"/>
                   </id>
                   <basic name="dateDebut" attribute-type="java.util.Date">
                        <column name="DATE_DEBUT"/>
                        <temporal>DATE</temporal>
                   </basic>
                   <basic name="dateFin" attribute-type="java.util.Date">
                        <column name="DATE_FIN"/>
                        <temporal>DATE</temporal>
                   </basic>
                   <basic name="lescommandes" attribute-type="Object">
                   </basic>
                   <basic name="refconst" attribute-type="Object">
                   </basic>
              </attributes>
         </entity>
         <entity class="model.RelevesN" access="VIRTUAL">
              <table name="RELEVES_N"/>
              <attributes>
              </attributes>
         </entity>
         <entity class="model.Remise" access="VIRTUAL">
              <attributes>
                   <id name="idRemise" attribute-type="long">
                        <column name="ID_REMISE"/>
                   </id>
                   <basic name="remise" attribute-type="double">
                   </basic>
              </attributes>
         </entity>
         <entity class="model.Representant" access="VIRTUAL">
              <attributes>
                   <id name="idRepresentant" attribute-type="long">
                        <column name="ID_REPRESENTANT"/>
                   </id>
                   <basic name="lesclients" attribute-type="Object">
                   </basic>
                   <basic name="lescommandes" attribute-type="Object">
                   </basic>
                   <basic name="nomRepresentant" attribute-type="String">
                        <column name="NOM_REPRESENTANT"/>
                   </basic>
                   <basic name="refterritoire" attribute-type="Object">
                   </basic>
                   <basic name="typeRep" attribute-type="String">
                        <column name="TYPE_REP"/>
                   </basic>
              </attributes>
         </entity>
         <entity class="model.Territoire" access="VIRTUAL">
              <attributes>
                   <id name="idTerritoire" attribute-type="long">
                        <column name="ID_TERRITOIRE"/>
                   </id>
                   <basic name="lesrepresentants" attribute-type="Object">
                   </basic>
                   <basic name="nomTerritoire" attribute-type="String">
                        <column name="NOM_TERRITOIRE"/>
                   </basic>
                   <basic name="refchef" attribute-type="Object">
                   </basic>
              </attributes>
         </entity>
         <entity class="model.Vehicule" access="VIRTUAL">
              <attributes>
                   <id name="idVehicule" attribute-type="long">
                        <column name="ID_VEHICULE"/>
                   </id>
                   <basic name="lescommandes" attribute-type="Object">
                   </basic>
                   <basic name="nomVehicule" attribute-type="String">
                        <column name="NOM_VEHICULE"/>
                   </basic>
                   <basic name="refavoir" attribute-type="Object">
                   </basic>
                   <basic name="refmodele" attribute-type="Object">
                   </basic>
              </attributes>
         </entity>
         <entity class="model.Visiteav" access="VIRTUAL">
              <attributes>
                   <id name="idVisiteav" attribute-type="long">
                        <column name="ID_VISITEAV"/>
                   </id>
                   <basic name="dateDebut" attribute-type="java.util.Date">
                        <column name="DATE_DEBUT"/>
                        <temporal>DATE</temporal>
                   </basic>
                   <basic name="dateFin" attribute-type="java.util.Date">
                        <column name="DATE_FIN"/>
                        <temporal>DATE</temporal>
                   </basic>
                   <basic name="refclient" attribute-type="Object">
                   </basic>
                   <basic name="refrepresentant" attribute-type="Object">
                   </basic>
              </attributes>
         </entity>
    </entity-mappings>

  • Increased Object Type support within Data Modeler

    Hi,
    This is a question mainly for the Data Modeler Development Team as well as the Tools group. First of all, the production version of Data Modeler 3.0 is very nice and the improvements in the DataTypes area over what was in EA1 are great. Thanks for adding the Domain support to the definition of Attributes and Parameters for Methods, that makes life much simpler and opens the door for a much wider range of object type modeling and ease of implementations since consistency can now be maintained much easier via Domains. Also the support for straightening of lines is awesome. This is the best implementation I have seen, even better that what we had in the Design Editor in Oracle Designer, kudos again to the team that built the diagrammer interfaces.
    My question is, Going forward will Data Modeler continued to be enhanced to finally fully support Oracle Objects and the object relational (OR) model? I ask this because as users of Oracle's RDBMS, we do not have a tool that allows us to fully model and implement the features provided by the Server Group in the area of Object-Relational features and functionality. Oracle Designer had some OR modeling capability, but the end of life on product stopped all further development. One of the common excuses is there is no market demand for object - relational modeling. I would argue, that the lack of market demand for object - relational applications is because we have never have had a tool that fully supports Oracle's object - relational model. Nor do have we had a development tool that allows us to implement a fully developed Oracle Object - Relational model. The tools group stopped the development of Oracle Forms support for nested objects and collections. The LOV functionality for REF columns is pretty awesome, but we can't get to nested collections much less a nested collection of REFs.
    So as a member of the end user community, we are stuck in this Catch 22. The Server Group continues to support and enhance the Object - Relational model, but the Tools and Modeling Groups haven't kept up with the tools to model or implement the functionality and features supported by the database. As a result we have a partially built set of tools that allows us to scratch the surface of the Object - Relational model but are not able to take full advantage of the powerful features of inheritance, inherited and extended collections, the ability to inherit and then extend methods, etc...
    The Object - Relational model was introduced with Oracle8, 10g solved the type evolution problem which made production implementation of object types realistic. My question is; Is Data Modeler finally going to fully support Oracle's object - relational model? If we as the end user community finally get a tool that does fully support the OR model, we'll finally be able to model, build and deploy applications that will in turn create that market demand which is lacking for the object relational model.
    Thanks in advance,
    ScottK

    Phil,
    Yes, having the ability to include an attribute from an data type as part of the PK, UK and or index will be very, very nice. Doing that opens a number of doors on the design, modeling and implementation sides. It would allow us to model and then create a data type which has all the common attributes for housekeeping information within each entity -> table. This is something we tried to do with Designer but was pretty involved script wise. By being able to create specialized housekeeping datatypes and then using the 'add attribute' with the scripts provided with DM 3.0, it simplifies the model after the fact. Think about it, we'll be able to have a datatype with all the attributes for created on/by and modified on/by along will all the methods to populate those attributes (formerly columns), then we can include that datatype into the entity as an attribute called say, 'row_audit' with the datatype of 'common_'. Now in one pass we have the place to hold the information of who created and modified the row as well as the date and time along with all the code required to populate and maintain that information. Everything modeled, defined and written in one place. No more have to include or write the pl/sql across several different modules, rather the calls to the method, a constructor, are within the insert or update statements for that table. If we take that train of thought and extend it to include the housekeeping functions for relational primary keys, then we can create one datatype with the attribute and methods to create a single column primary key. Once that is pulled into an entity, defined as the part of the unique identifier and then pushed down as a primary key and resulting foreign keys. We have all the code to enforce and populate primary and foreign keys wrapped up in one datatype with its supporting method as a constructor. Think of the other possibilities that would be available once we can include nested attributes w/i keys and indexes. It makes some models and designs much simpler, more maintainable, more scalable (less code to execute), etc...
    I have been thinking about this. I see ya'll have provided the options for IN, OUT, IN/OUT, COPY and NOCOPY as modifiers for the parameters on methods. We also have the option for COPY / NOCOPY in the constructor method for type. Will that be included?
    Lastly, since the Server Group solved the type evolution problem, that coupled with the ability to include a datatype as a definition for column really opens the design doors. For example, by using a datatype of 'common_', as mentioned above, if the system requirement appears after the system is built for a the name of the source system to be included with the 'row_audit' information, we can modify the datatype 'common_' to include these new attributes and methods and then the ALTER TYPE syntax provided by the Server and Language groups to effectively extend all the tables to include this new system requirement. Till the Server group solved the type evolution problem, this wasn't possible and we had to write several 'alter table add column' scripts. This is all replaced with the ALTER TYPE... cascade data command now. Once DM 3.0 includes the ability to reference embedded attributes, design and modeling life will be great.
    Thanks in advance,
    ScottK

  • Way of relates root model objects

    Hi,
    I am trying to Model Objects relates Root Model node.
    For testing purpose i want call RFC Module, but i can't
    bind some model objects.
    I have put following code in wdDoInit() method of ComponentController.
    "Bapi_Pr_Create_Input" is Called RFC name.
    "Bapimereqheader","Bapimereqheaderx","Bapimereqitem","Bapimereqitemx" are
    model object for Child Node of Root Object "Bapi_Pr_Create_Input".
    Among these, "Bapimereqitem" and "Bapimereqitemx" are tables parameter.
    These is used by Bapi_Pr_Create_Input's tables parameter, can't relates Root
    Model though "Bapimereqheader" can do it. I don't understand this reason.
    "Prheader" -> created by "Bapimereqheader"
    "Prheaderx" -> created by "Bapimereqheaderx"
    "Pritem" -> created by "Bapimereqitem"
    "Pritemx" -> created by "Bapimereqitemx"
      //@@begin javadoc:wdDoInit()
      /** Hook method called to initialize controller. */
      //@@end
      public void wdDoInit()
        //@@begin wdDoInit()
         pr_input = new Bapi_Pr_Create_Input();
         wdContext.nodeBapi_Pr_Create_Input().bind(pr_input);
         header  = new Bapimereqheader();
         headerx = new Bapimereqheaderx();
         item    = new Bapimereqitem();                         <----Table Parameter
         itemx   = new Bapimereqitemx();                      <----Table Patameter
         pr_input.setPrheader(header);
         pr_input.setPrheaderx(headerx);
            pr_input.setPritem(item);                                 <----Error
            pr_input.setPritemx(itemx);                              <----Error
    What am I doing wrong in above code.
    Please help me.
    Sincerely,
    y.iwata

    Hi,
    Please try with
    pr_input.setTableParameter for following 2 rows.
    pr_input.setPritem(item); <----Error
    pr_input.setPritemx(itemx); <----Error
    regards,
    Ganga

  • Problems with printing from SQL Developer Data Modeler 2.0

    Hi,
    I am not able to print my Relational Model (SubView) from Data Modeler 2.0 Build 584. Only an empty page comes out. If I don't reduce the Print Scale (usually to 10-30%) I get something but then it is lots of pages. I have tried A4 and A3 format. Printing to JPEG or PDF seems to be ok.
    I have relational data model with 25 tables in my SubView.
    Is there any restriction on Print Scale or number of objects in the diagram?
    Do I have to install SQL Developer as well? I have just Data Modeler insalled.
    Regards,
    Alex

    Hi Alex,
    There is newer version of Data Modeler (3.0 EA2) and it is free
    You can download it from here
    http://www.oracle.com/technetwork/developer-tools/datamodeler/ea2-downloads-185792.html
    Regards
    Edited by: Dimitar Slavov on Dec 9, 2010 2:15 AM

  • Can you use Object Relational SQL to access XML content ?

    Is there a possibility to use the generated object types and collection types to conveniently access the xml data?

    Technically there is nothing to prevent you from using the object types generared when an XML Schema is registered to access and manipulate the contents of the instance documents that conform to the Schema. This would be done using the notation x.xmldata.attribute In this case x would be the object table, xmldata is the name of the instance of the SQL object type associated with the table in question.
    However we do not encourage or recommend this approach. Currently XML DB provides the application developer with DML / DDL independence. This holds true as long as you use XPATH expressions to express your DML operations. Using XPATH expressions to access the content of an XML document maintains an abstraction between the DML (XPATH) and the underlying Object Relational Storage Structure derived from the information in the corresponding XML Schema. Whereever possible, when you express a query using an XPATH expression, under the covers we attempt to re-write the query into Object Relational SQL, based on the meta data contained in the Schema, as access v
    If you use the object notation to access the content of the document you break this abstraction. Your application now needs to be aware of the physical (object relational) storage model being used to manage the instance documents.
    One of the key features of XML DB is that it allow a developer to use Schema Annotations to alter the storage model used to manage the instance documents. The most common example of this is using annotations to control the way in which collections are managed. Depending on the annotation in the schema you can store collections as a VARRAY, as a NestedTable or as a separate XMLType table. Dependong on the technique chosed the objects that are generated during the XML Schema registration process will change.
    If you use the XPATH expressions to accesss the content of your documents, and you decided to change the annotations in your schema so as to revise the way your documents are stored, XML DB will ensure your code should continue to work unchanged, regardless of which objects are generated during Schema registration. On the other hand, if you use the object notation to access the content of the documents, and then change the annotation you will have to change your code.
    I hope this clarifies the situation..

  • Basic questions on data modeling

    Hi experts,
    I have some basic questions regarding data modeling within MDM. I understand the available table types and the concept of lookup fields. I know that the MDM data modeling concept is different to the relational concept. But having a strong database background my first step was to design a relational data model which I would like to transfer to a MDM repository. Unfortunately I didn't found good information material on this. So here are some questions maybe you can help me:
    1) Is it the right approach to model n:m relationships with multivalued lookup fields? E.g. main table Users with lookup field from subtable SapAccounts (a user can have accounts in different SAP systems, that means more than one account).
    2) Has a record always be unique in MDM repositories (e.g. should we use Auto ID's in every table or do we have to mark a combination of fields as unique)? Is a composite key of 2 or more fields represented with marking these fields as unique?
    3) The concept of relationships in MDM is only based on relationships between single records (not valid for all records in a table)? Is it necessary to define all relationships similar to the relational data model in MDM? Is there something similar to referential integrity in MDM?
    4) Is it possible to change the main table to a sub table later on if we realize that it has also to be used as a lookup table for another table (when extending the data model) or do we have to create a new repository from scratch?
    Thank you for your answers.
    Regards, bd

    Yes you are correct. It is almost difficult to map relational database to mdm one. But again MDM is not 'just' a database. It holds much more 'master' information as compared to any relational db.
    1) Is it the right approach to model n:m relationships with multivalued lookup fields? E.g. main table Users with lookup field from subtable SapAccounts (a user can have accounts in different SAP systems, that means more than one account).
    Yes Here you need to use MV look up tables or can also try Qualifier tables if it gets more complex
    2) Has a record always be unique in MDM repositories (e.g. should we use Auto ID's in every table or do we have to mark a combination of fields as unique)? Is a composite key of 2 or more fields represented with marking these fields as unique?
    Concept of uniqueness differs here that you also have something called Display Fields (DF). A combination of DF can also be treated as Unique one. For instance while importing records if you select these DF as a combination, you will eliminate any possible of duplicates based on this combination. Auto Id is one of the ways to have a unique id once record is within MDM. While you use UF or DF to eliminate any possible duplicates at import level
    3) The concept of relationships in MDM is only based on relationships between single records (not valid for all records in a table)? Is it necessary to define all relationships similar to the relational data model in MDM? Is there something similar to referential integrity in MDM?
    Hmm... good one. Referencial Integrity. What I assume you are talking is that if you have relationships between tables then removing a record will not be possible as it is a foreign key for some record. Here MDM does not allow that. As Relationships within MDM are physical and not conceptual. For instance material can have components. Now if material does not exist then any relationship to components is not worthwile to maintain. Hence relationshsip is eliminated.  While in relational model relationships are more conceptual. Hence with MDM usage of lookups and main table you do not need to maintain these kind of relationships on your own.
    4) Is it possible to change the main table to a sub table later on if we realize that it has also to be used as a lookup table for another table (when extending the data model) or do we have to create a new repository from scratch?
    No. It is not possible to convert main table. There is only one main table and it cannot be changed.
    I went for the same option but it did not work. What I suggest is to look up your legacy system one by one and see what fields in general can be classified as Master, Reference, Transactional - You will start getting answers immediately.

  • Object Types Attributes (Data Modeler 3.0 EA1.)

    Hi,
    Will the attribute object type support in data modeler be upgraded to the same functionality as column relational table support in 3.0? For relational columns I can attach a domain to a column, I can't attach a domain to an attribute in an object type. Also for a column I can define a 'Units', that is VARCHAR2 (30 BYTE) orVARCHAR2 (30 CHAR). If can't do this with the (Data Modeler 3.0 EA1.) for an object type's attribute. Will this be included?
    Thanks,
    Scott

    Sue,
    Thanks to you and your team for extending this to the object type (structured type) portion of SDDM 3.3 EA1 and 3.3 EA2. The object type portion of SDDM is pretty robust now for modeling and actually generating useable structures in the database (Oracle) now. With 3.3 EA2 at this point it will be much easier to take advantage of the object type features in the database and our applications. I have been waiting since Oracle version 8 for the tools team to provide a modeling tool that mirrors the functionality the server team has provided when it comes object types.
    Thanks for this in SDDM 3.3 EA1 and SDDM 3.3 EA2!
    ScottK

  • Migrating Relational Model to Object-Relational Model

    Hi,
    Can someone direct me to appropriate tutorial/examples in migrating spatial relational model to object-relatonal model.
    I have the following tables in the relational model:
    ROADS
    ROADS_SDODIM
    ROADS_SDOGEOM
    ROADS_SDOINDEX
    ROADS_SDOLAYER
    What tables would I need to create in the object-relational model?
    Can someone advice me on how to use this function sdo_migrate.to_current?
    Thanks in advance!

    There are a number of Object Oriented databases out there, with Gemstone perhaps the best known. Also, Oracle, and other RDBMS vendors are adding more object oriented features all the time.
    However, there are some downsides to OO databases. One of the biggest is that it is often really difficult to query the data directly. All interaction with the database needs some sort of mapping layer to instantiate the objects and get their attributes. It is also difficult, and sometimes impossible, to generate ad hoc queries that try to look at the data in a way that does not match the object model, something that is relatively easy in a well designed relational model.
    Finally, object oriented databases represent a more or less one to one mapping to a currently popular programming paradigm. What happens to the data when the next great programming paradigm (foo perspective) comes along? Will the foo prgrammer be able to easily read the objects in the OO database? Probably not. Will the foo programmer be able to easily read the relational data? Almost certainly.
    John

Maybe you are looking for