Dimension table design Data modeling question

Hi Experts,
Sorry if I am putting my question in a wrong forum and please suggest an appropriate forum.
need your opinion on the existing design of our 10 years old datawarehouse.
There is one dimension table with structure like following
Dimension Table
Dimension Key Number (THIS IS NOT A PRIMARY KEY)
Natural key (from source) Number
source name character
current record indicator char(1)
form_date date
to_date date
many other columns, which if change a new current record is created and previous is marked as H-historical
Data is stored in the dimension table like this
Dimension_key Natural key Source Name current record ind from_date to_date
1 10001 Source1 H 1-jan-2005 31-may-2005
1 10001 Source1 H 1-jun-20005 12-dec-2011
1 10001 Source1 C 13-dec-2011 NULL
2 20002 Source1 H 1-jun-20001 12-dec-2011
2 20002 Source1 C 13-dec-2011 NULL
The problem I see in this design is that there is no surrogate key, if any attribute is changed the new record is inserted by first taking the dimension key based on the (natural_key,source_name,current_record_ind).
Shouldn't it be stored like following based on the data-warehousing principals.
Dimension_key Natural key Source Name current record ind from_date to_date
1 10001 Source1 H 1-jan-2005 31-may-2005
2 10001 Source1 H 1-jun-20005 12-dec-2011
3 10001 Source1 C 13-dec-2011 NULL
4 20002 Source1 H 1-jun-20001 12-dec-2011
5 20002 Source1 C 13-dec-2011 NULL
Please let me know the pros and cons of the current design.

And what if you have both the features something like this :
Lineno  Dimension_key Natural key Source Name current record ind    from_date         to_date
     1              1       10001     Source1                  H   1-jan-2005     31-may-2005
     2              1       10001     Source1                  H  1-jun-20005     12-dec-2011
     3              1       10001     Source1                  C  13-dec-2011            NULLI mean just add a new column and populate it with required order by clause. Because what i guess, that in the second example you just added a new column which is something like a line number.
Regards
Girish Sharma

Similar Messages

  • Creating Time dimension in BW data model. - like seen in logical data model

    Hello all,
    I have been struggling with this thing and I am looking for some help from anyone on this forum.
    We are trying to create a logical data model of our bw system. We are going live next month with Student module for universities. We have multiple Infocubes and DSO and since there is so much crossing over in between them most of the reporting is done on infosets.
    One of the thing we were thinking; is it possible to create something like a common time dimension table for every infoprovider. Basically when we are providing the reports to the end user can we give them a drop down menu which gives a time frame for reporting rather than selecting.
    Example: Like can we create something which looks in the drop down like current month data, last months data, three months ago, four months ago, five months ago, one year ago, two years ago. Can we make like these data slices in our cube and deliver it to the end user?
    We have in our cube a few date infoobjects, like receipt date, decision date, cancellation date and like wise.
    Please let me know if any one has done any similar thing, it will be very helpful.
    Thank you so much in advance.

    if you add your common time dimension to your data model, first identify for each infoprovider the time against which 'current month' and other frames should be applied and map them to your dimension.
    just a question... are you not using time dimension in cubes ? ideally this should be your time dimension llinking all.
    when you use time dimension which uses 'current month' , 'current year' , you will have to address their historisation as well. (because current month now will not be so current after 2 months).
    so in data load procedure every day these values need to change (meaning drop and reload).
    and routines to populate these values based on reporting date.
    Edited by: hemant vyas on May 6, 2009 1:56 PM

  • How to generate the java code of a table's data model by parsing it's FXML?

    I have know how to create FXML file that describes a table. Meanwhile, according to [Oracle Tutorial|http://docs.oracle.com/javafx/2/fxml_get_started/fxml_tutorial_intermediate.htm#CACFEHBI], it is a best practice to implement a class that defines the data model and provides methods and fields to further work with the table.
    However, It's rather cumbersome and time consuming to typing the code. So, is there any tools that can generate the java code of a table's data model by parsing it's FXML describe file?
    Regards, Qinn
    Edited by: 854675 on Oct 7, 2012 11:02 PM

    I have know how to create FXML file that describes a table. Meanwhile, according to [Oracle Tutorial|http://docs.oracle.com/javafx/2/fxml_get_started/fxml_tutorial_intermediate.htm#CACFEHBI], it is a best practice to implement a class that defines the data model and provides methods and fields to further work with the table.
    However, It's rather cumbersome and time consuming to typing the code. So, is there any tools that can generate the java code of a table's data model by parsing it's FXML describe file?
    Regards, Qinn
    Edited by: 854675 on Oct 7, 2012 11:02 PM

  • Reg: Fact table and Dimension table in Data Warehousing -

    Hi Experts,
    I'm not exactly getting the difference between the criteria which decide how to create a Fact table and Dimension table.
    This link http://stackoverflow.com/questions/9362854/database-fact-table-and-dimension-table states :
    Fact table contains data that can be aggregate.
    Measures are aggregated data expressions (e. Sum of costs, Count of calls, ...)
    Dimension contains data that is use to generate groups and filters.
    This's fine but how does one decide which columns to consider for Fact table and which columns for Dimension table?
    Any help is much appreciated.
    Pardon me if this's not the correct place for this question. My first question in the new forum.
    Thanks and Regards,
    Ranit Biswas

    ranitB wrote:
    But my main doubt was - what is the criteria to differentiate between columns for Fact tables and Dimension tables? How can one decide upon the design?
    Columns of a fact table will often be 'scalar' attributes of the 'fact' data item. A dimension table will often be 'compound' attributes of a 'fact'.
    Consider employee information. The EMPLOYEE table can be a fact table. It might have scalar attribute columns such as: DATE_HIRED, STATUS, EMPLOYEE_ID, and so on.
    Other related information that can't be specified as a single attribute value would often be stored in a 'dimension' table: ADDRESS, PHONE_NUMBER.
    Each address requires several columns to define it: ADDRESS1, ADDRESS2, CITY, STATE, ZIP, COUNTRY. And an employee might have several addresses: WORK_ADDRESS, HOME_ADDRESS. That address info would be stored in a 'dimension' table and only the primary key value of the address record would be stored in the EMPLOYEE 'fact' table.
    Same with PHONE_NUMBER. Several columns are required to define a phone number and each employee might have several of them. The dimension tables are used to help 'normalize' the data in the employee 'fact' table.
    And that EMPLOYEE table might also be a DIMENSION table for other FACT tables. A DEVELOPER table might have an EMPLOYEE_ID column with a value that points to a 'dimension' row in the EMPLOYEE dimension table.

  • 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.

  • Dimension Table populating data

    Hi
    I am in the process of creating a data mart with a star schema.
    The star schema has been defined with the fact and dimension tables and the primary and foreign keys.
    I have written the script for one of the dimensions and would like to know when the job runs on a daily basis should the job truncate the table every day and rebuild the dimension table or should it only add new records to the table. If it should add only
    new records to the table how do is this done?
    I assume that the fact table job is run once a day and only new data is added to it?
    Thanks

    It will depend on the volume of your dimensions. In most of our projects, we do not truncate, we update only updated rows based on a fingerprint (to make the comparison faster than column by column), and insert for new rows (SCD1). For SCD2 we apply
    similar approach for updates and inserts, and expirations in batch (one UPDATE for all applicable rows at the end of the package/ETL). 
    If your dimension is very large, you can consider truncating all data or deleting only affected modified rows (based on nosiness key) to later reload those, but you have to be carefully maintaining the same surrogate keys reference by your
    existing facts.
    HTH,
    Please, mark this post as Answer if this helps you to solve your question/problem.
    Alan Koo | "Microsoft Business Intelligence and more..."
    http://www.alankoo.com

  • Alternative of Bridge table in data Modelling.

    Hello Gurus,
    while doing the data modeling, we found one place where we have Many to Many joins between One Fact and 3 Dim.
    where in Dim., we mostly have only one attribute/ Dim, which relates Many to Many with Fact.
    so as in obiee we have to build the bridge table to take care of the issue.
    is there any alternative method of data modeling that can eliminate the Bridge table itself?
    I was thinking to add the dim attribute in fact itself. though it's with diff grain it should work??

    If you really have a many-to-many relationship from fact to dimension, which attribute value (which of the many) would you put on the fact?
    What is the issue you are having with a bridge table?

  • How to record partitioned tables in Data Modeler ?

    Hi,
    I have discovered the options for partitioned tables. Some questions remain, however.
    1) Static partitions
    For one table, a set of predefined partitions is set up in the data model. In certain situations, a new partition is added. Is it possible to generate alter table DDL from the model that will add this partition ?
    2) Dynamic partitions
    For another table, partitions are added and deleted on the fly (exhange partition). For this tabel, I would like to record just 1 partition, which is added when the tabels are created initially. It is not important to include the actual partitions when synchronizing with the database. Is it possible to skip this for a certain table (i.e. record this preference with the table, since it does not apply for all partitioned tables... ) ?
    Thanks,
    Richard.

    Hi Richard,
    For one table, a set of predefined partitions is set up in the data model. In certain situations, a new partition is added. Is it possible to generate alter table DDL from the model that will add this partition ?
    In Data Modeler version 4.1, ALTER TABLE ... ADD PARTITION statements are generated for new LIST partitions, but not for other types of partitions.
    For another table, partitions are added and deleted on the fly (exhange partition). For this tabel, I would like to record just 1 partition, which is added when the tabels are created initially. It is not important to include the actual partitions when synchronizing with the database. Is it possible to skip this for a certain table (i.e. record this preference with the table, since it does not apply for all partitioned tables... ) ?
    I've logged an enhancement request on this.
    Regards,
    David

  • Generation of DDL similar to Oracle Designer (Data Modeler 3.0 EA1.)

    Hi,
    Will the production version of SQL Data Modeler allow the creation of separate DDL files similar to that which Oracle Designer does? For example, I can create a sequence number generator in Data Modeler (DM) and then make a call to that in an Object Type method. However the DDL file that is generated by DM has all DDL in one file. This would allow to take dependencies were taken into consideration, that is create the sequences before object types, packages and tables, then object type bodies, package bodies, etc...
    Thanks,
    ScottK

    At this stage we do not support multiple files. We do plan to do this in the future. However you can work around this by repeating the DDL generation for the different objects types you want to have files for.
    Remember that you can vote on the Exchange for your most desired features.
    Sue

  • SQL Query Data Model Question

    Hi All,
    I'm new to XMLPublisher so i'll try to explain the best i can the problem i'm having creating a Data Model for my report.
    I'm using Database XE and have installed XMLPublisher, as XE is extremely flexible in creating apps i'm having huge trouble finding a reporting solution for my applicaiton. I have created an app to track and control time and expense which i want to generate timesheet, expense sheets, invoice etc from.
    Having done some read i think XML is the best approach for me however i'm having huge troubles with my data model.
    EXAMPLE:
    I have 2 tables to start with, first table holds client information and the second table holds project information. One client can have many projects.
    When i create the Data Model using SQL i get the obvious problem that when a client has more then one project my XML structure is incorrect.
    SELECT gc.name AS CLIENT,
    gp.name AS PROJECT
    FROM gte_client gc,
    gte_project gp
    WHERE gc.client_id = gp.client_id(+)
    The above SQL creates the following XML
    - <ROWSET>
    - <ROW>
    <NAME>Symatrix Ltd</NAME>
    <NAME>Symatrix Pre-Sales</NAME>
    </ROW>
    - <ROW>
    <NAME>Aston Carter</NAME>
    <NAME>MOD</NAME>
    </ROW>
    - <ROW>
    <NAME>Symatrix Ltd</NAME>
    <NAME>Fujitsu</NAME>
    </ROW>
    </ROWSET>
    Obvious problem here is the fact that client Symatrix appears twice as there are 2 projects.
    I have tried to write SQL/XML and i think i'm beginning to understand the structure of the XML functions however XMLPublisher doesn't appear to understand the syntax when creating a SQL Query for the data model.
    I hope all this makes sense.
    Kind Regards
    Glen

    Hi All,
    Ok, so with a little searching through documents and articles on the web i found this information.
    http://blogs.oracle.com/xmlpublisher/2006/05/05#a38
    this details the exact thing i'm trying to achieve so anyone else who searches this forum with a similar problem check this out.
    Regards
    Glen

  • Sort Order of Tables in Data Modeler in SQL Developer 3.0

    I have a schema with many tables and would like the Data Modeler (in SQL Developer 3.0) to create a Relational Model sorted by table name in Alphabetical Order. The default seems to be random alphabetic order.

    There's an algorithm involved, and I'm pretty sure it's related to the number of grouped objects by relations, but instead of guessing I'll ask the developer to weigh in with the 'real answer.'
    When working with larger models, I've found the #1 tip for making them easier to digest is to break them down into smaller SubViews. Have you experimented much with this feature yet? Also, you can right-click on a table in the tree and 'Go To Diagram' to find the object in the diagram.

  • How to load data and design data model

    Hi,
    We have data in excel(size is appx. 60 MB) of 24 month, excel has column like Year, Month, Region, Affiliate KPI and their value.
    How can we load excel data into dashboard and design the data model?
    Please find the attached file for reference.
    Any help will be appreciated.
    Thanks,
    Ram Krishna

    File is corrupted, you can import the excel into dashboard using import button.
    Design you need to come up with your navigation first and what you need to display in dashboard. If possible explain that we can help you better on this.

  • ADF BC: Active data model question

    Hello,
    can somebody confirm that row iterator of detail view object obtained from master view using view link is different from row iterator used by active data model (getDetails() in application module) ?
    My problem is:
    I have a detail view object with multiple updateable entities. When I create a new row like this:
       Row row = masterViewRow.getDetails().createRow();
       masterViewRow.getDetails().insertRow(row);I don't see this row on web page probably because multi upd entities view object doesn't notify other iterators about changes by default.
    I have to use
       Row row = appModule.getDetails().createRow();
       appModule.getDetails().createRow(row);to make it work
    Can I omit use of application module and use master view object only to work with details in model and have changes visible in layout?

    Nobody can answer this.
    Where are all the ADF experts.
    Please help solve this issue.

  • Data Model Question

    I am new with XML Publisher. What I'm still not getting is how to define a data model containing parent-child relationship (e.g. customers - orders - order_lines). Do I have to use some tools to create it?
    Denes Kubicek

    Hi.  In my opinion, option A is the most straight forward solution. 
    One thing to keep in mind is how the % figures will roll up, say over the entity hierarchy.  The % accounts will simply sum as you roll up the entity heirarchy, which is generally incorrect.  So, at a parent level you will need to back calculate the % figure.  I hope this makes sense.  I am pointing this out to you because I am in the process of building a similar solution and clean forgot about this.  I have had to re-engineer the solution slightly to correct this.
    Hope this helps.
    Sean

  • Canonical data model  Question?

    How can XI support a canonical data model ?  We don't want point-to-point mappings....We always want to map to and from a central message/data model which will be based on canonical data model.
    regards,
    tony

    you can support that with using a sequence of message mappings within an Interface mapping. with that you could canonicalize your message mappings, where you map from legacy to canonical model and from canonical to other legacy model. your interface mapping however would always be point to point, including a sequence of mappings to and from canonical model.
    best regards
    christine

Maybe you are looking for

  • GR value is greater than PO value.

    Hi friends, I got a strange situation. I created a PO material 'x' for the quantity 900 with price of USD 162.00/ea. Total amount is USD 145800. But when I do GR it posted to amount USD 265,356.00. quatity is same as 900. Tha material is valuated wit

  • Xslt/xsql for csv output

    anyone have a translator to convert the XML out of a XSQL servlet to deliver plain old comma separated values for Excel? i've got some users that want to hit our XSQL servlet but can't handle the processing of XML, they just want csv files. i was thi

  • Can two wireless "networks" co-exist?

    Since they both live in the same frequency, has anyone found any conflicts with a Terk Leapfrog LF-30S and the AEX?

  • HT4356 HP all in one 5510 b111a/ iphone3gs

    I just purchased an HP all in one e print 5510 b11a.  My husbands iphone4 and our ipad prints with no problems. However my iphone 3gs does not for some reason.... I am using the coupons.com app and when I select the coupons and click print it says th

  • How to stop defragmenting and start living - Revisit

    Hi, When deal with fragmentation, most of the time we will be directed to read the technical paper (How to stop defragmenting and start living). If i'm not mistaken, this was published in the year of 1996/1998 for Oracle version 7/8. Time passed and