Here is intro course to BI Analytics...
1. Facts(Measures) is a summable numeric value
2. Only events tracking in Fact table known as fasctless fact tables, in that case add column with value 1 to track them.
3. Grain is the lowest possible level of information in fact, make it as lowest as possible. Atomic level.
4. Facts are verb in Business process where as Dimesnions are nouns.
5. Dimension shared across more than 1 business process is known as Conformed Dimension
6. Surrogate keys (Meaningless , non-natural, artificial, ) is int value associayrf with each rown in dimesnion
7. Dimensions with Changeable attribute is called Slowly Changing Dimesnions (SCDs)
Type 1 SCDs overwrite old value
Type 2 SCDs have new row for every new change
Type 3 SCDs provide option of columns (not commonly followed and not scalable)
8. Data Dimension classic example for role Playing Dimension... better to have surrogate keys in year-month0date format since 20050221(would help for partitioning)
9.Dimension that doesn't have attributes are known as Degenerated Dimensions (e.g TransactionID)
10.Discourage Snowflake schema, Analysis 2000 has little inclination towards it but not 2005
11. Bridge table required when we have many-many dimensions, called Intermediate Fact Tables in Analysis Services 2005
12. Fact Table types, Periodic Snapshot, transaction and accumulating snapshot
Here you can find wide variety of things about me. A small description about me, a computer programming obsessed guy thinking one day would come up like gates.
January 10, 2011
DB Normalization in simple
This is one of the most frequently used question..lot times we know the thing have difficulty in expressing it...thot would write a simple post for it...
First Normal Form (1NF)
First Normal Form (1NF)
- Eliminate duplicative columns from the same table.
- Create separate tables for each group of related data and identify each row with a unique column or set of columns (the primary key).
Second Normal Form (2NF)
- Meet all the requirements of the first normal form.
- Remove subsets of data that apply to multiple rows of a table and place them in separate tables. Create relationships between these new tables and their predecessors through the use of foreign keys.
Third Normal Form (3NF)
- Meet all the requirements of the second normal form.
- Remove columns that are not dependent upon the primary key.
Fourth Normal Form (4NF)
- Meet all the requirements of the third normal form.
- A relation is in 4NF if it has no multi-valued dependencies.
Review your Architecture
Last week I bumped in to a book "Enterprise Application Arch 2ed". I read abot reviewing S/W arch by some proven methodlogies..thot would blog for starters.. good read...
Scenario-based evaluations are a powerful method for reviewing an architecture design. In a scenario-based evaluation, the focus is on the scenarios that are most important from the business perspective, and which have the greatest impact on the architecture. Consider using one of the following common review methodologies:
Software Architecture Analysis Method (SAAM). SAAM was originally designed for assessing modifiability, but later was extended for reviewing architecture with respect to quality attributes such as modifiability, portability, extensibility, integratability, and functional coverage.
Architecture Tradeoff Analysis Method (ATAM). ATAM is a refined and improved version of SAAM that helps you review architectural decisions with respect to the quality attributes requirements, and how well they satisfy particular quality goals.
Active Design Review (ADR). ADR is best suited for incomplete or in-progress architectures. The main difference is that the review is more focused on a set of issues or individual sections of the architecture at a time, rather than performing a general review.
Active Reviews of Intermediate Designs (ARID). ARID combines the ADR aspect of reviewing in-progress architecture with a focus on a set of issues, and the ATAM and SAAM approach of scenario-based review focused on quality attributes.
Cost Benefit Analysis Method (CBAM). This CBAM focuses on analyzing the costs, benefits, and schedule implications of architectural decisions.
Architecture Level Modifiability Analysis (ALMA). ALMA evaluates the modifiability of architecture for business information systems (BIS).
Family Architecture Assessment Method (FAAM). FAAM evaluates information system family architectures for interoperability and extensibility.
Refer this URL
http://enggtech.wordpress.com/2010/05/13/software-architecture-qaw-add-atam-cbam-arid-and-sdlc/
Scenario-based evaluations are a powerful method for reviewing an architecture design. In a scenario-based evaluation, the focus is on the scenarios that are most important from the business perspective, and which have the greatest impact on the architecture. Consider using one of the following common review methodologies:
Software Architecture Analysis Method (SAAM). SAAM was originally designed for assessing modifiability, but later was extended for reviewing architecture with respect to quality attributes such as modifiability, portability, extensibility, integratability, and functional coverage.
Architecture Tradeoff Analysis Method (ATAM). ATAM is a refined and improved version of SAAM that helps you review architectural decisions with respect to the quality attributes requirements, and how well they satisfy particular quality goals.
Active Design Review (ADR). ADR is best suited for incomplete or in-progress architectures. The main difference is that the review is more focused on a set of issues or individual sections of the architecture at a time, rather than performing a general review.
Active Reviews of Intermediate Designs (ARID). ARID combines the ADR aspect of reviewing in-progress architecture with a focus on a set of issues, and the ATAM and SAAM approach of scenario-based review focused on quality attributes.
Cost Benefit Analysis Method (CBAM). This CBAM focuses on analyzing the costs, benefits, and schedule implications of architectural decisions.
Architecture Level Modifiability Analysis (ALMA). ALMA evaluates the modifiability of architecture for business information systems (BIS).
Family Architecture Assessment Method (FAAM). FAAM evaluates information system family architectures for interoperability and extensibility.
Refer this URL
http://enggtech.wordpress.com/2010/05/13/software-architecture-qaw-add-atam-cbam-arid-and-sdlc/
February 20, 2010
Iterating over JSON object (string ) with jquery
We had a scenario where in we need to search for particular object in collection. Whenever the user changes something in dropdown in ASP.NET we need to show some value in a label. If we take the drop down value to server it would take time.... so what we thot is we searialized the object using JavascriptSerializer in ASP.NET and converted to JSON string.. passsed to a javascript function to search.... (whenever dropdown changes)... I was literally amazed with the power of JSON and jquery combination... thot i would share with people in need.....
Here is the JSON string...in Javascript...
var obj = [{"Description":"No jquery pricing group may be used for Testing", "ID":1, "TempID":1, "CompareID":3}, {"Description":"No jquery pricing group may be used for Testing", "ID":2, "TempID":2, "CompareID":3}, {"Description":"No jquery pricing group may be used for Testing", "ID":3, "TempID":3, "CompareID":3}, {"Description":"No jquery pricing group may be used for Testing", "ID":4, "TempID":4, "CompareID":3}, {"Description":"No jquery pricing group may be used for Testing", "ID":5, "TempID":1, "CompareID":4}, {"Description":"Jquery required for pricing Testing", "ID":6, "TempID":2, "CompareID":4}, {"Description":"Jquery required for pricing Testing", "ID":7, "TempID":3, "CompareID":4}, {"Description":"Jquery required for pricing Testing", "ID":8, "TempID":4, "CompareID":4}, {"Description":"No jquery pricing group may be used for Testing", "ID":9, "TempID":1, "CompareID":5}, {"Description":"Jquery required for pricing Testing", "ID":10, "TempID":2, "CompareID":5}, {"Description":"Jquery required for pricing Testing", "ID":11, "TempID":3, "CompareID":5}, {"Description":"Jquery required for pricing Testing", "ID":12, "TempID":4, "CompareID":5}];
We had a requirement to searhch the description for matching TempID and COmpareID...
Our Javascript function was amazingly...
function Myfunc(ID1,Exp1){jQuery.each(obj, function Test(x) { if (obj[x].TempID == ID1 && obj[x].CompareID == Exp1) //return obj[x].Description; alert(obj[x].Description);}); }
This would have helped you to understand the power of jqeury
Here is the JSON string...in Javascript...
var obj = [{"Description":"No jquery pricing group may be used for Testing", "ID":1, "TempID":1, "CompareID":3}, {"Description":"No jquery pricing group may be used for Testing", "ID":2, "TempID":2, "CompareID":3}, {"Description":"No jquery pricing group may be used for Testing", "ID":3, "TempID":3, "CompareID":3}, {"Description":"No jquery pricing group may be used for Testing", "ID":4, "TempID":4, "CompareID":3}, {"Description":"No jquery pricing group may be used for Testing", "ID":5, "TempID":1, "CompareID":4}, {"Description":"Jquery required for pricing Testing", "ID":6, "TempID":2, "CompareID":4}, {"Description":"Jquery required for pricing Testing", "ID":7, "TempID":3, "CompareID":4}, {"Description":"Jquery required for pricing Testing", "ID":8, "TempID":4, "CompareID":4}, {"Description":"No jquery pricing group may be used for Testing", "ID":9, "TempID":1, "CompareID":5}, {"Description":"Jquery required for pricing Testing", "ID":10, "TempID":2, "CompareID":5}, {"Description":"Jquery required for pricing Testing", "ID":11, "TempID":3, "CompareID":5}, {"Description":"Jquery required for pricing Testing", "ID":12, "TempID":4, "CompareID":5}];
We had a requirement to searhch the description for matching TempID and COmpareID...
Our Javascript function was amazingly...
function Myfunc(ID1,Exp1){jQuery.each(obj, function Test(x) { if (obj[x].TempID == ID1 && obj[x].CompareID == Exp1) //return obj[x].Description; alert(obj[x].Description);}); }
This would have helped you to understand the power of jqeury
January 16, 2010
ASP.NET Dynamic User controls
Today after long time...I moved to an assignment to work in ASP.NET after the gap of almost nealry 5 years. I started working on an Intranet Portal for a financial institution.
We wanted to generate certain UIs dynamically, we chose different user controls will be loaded based on the user requirement. One thing I learned today is "Dynamic Controls Should be Loaded on Each PostBack" On every postback literally you need to load the controls again and again. If you want the control to have its Viewstate data preserved, adding the USercontrols to page (Parent) should happen before LoadViewstate event gets fired in the page life cycle.
Normally the user controls will be added as Controls.Add(UsercontrolPath), where ocntrols is Place holder in the page/another user control.
I will write more about this assignement that looks very interesting.
We wanted to generate certain UIs dynamically, we chose different user controls will be loaded based on the user requirement. One thing I learned today is "Dynamic Controls Should be Loaded on Each PostBack" On every postback literally you need to load the controls again and again. If you want the control to have its Viewstate data preserved, adding the USercontrols to page (Parent) should happen before LoadViewstate event gets fired in the page life cycle.
Normally the user controls will be added as Controls.Add(UsercontrolPath), where ocntrols is Place holder in the page/another user control.
I will write more about this assignement that looks very interesting.
December 21, 2009
Some Interesting Websites.
LINQ Tools
http://www.thinqlinq.com/Post.aspx/Title/LINQ-Tools
.NET 3.5, ASP.NET interview questions.
http://dotnet2008interviewquestions.blogspot.com/
WCF 4.0 Introduction from MSDN
http://msdn.microsoft.com/en-us/library/ee354381.aspx
Sharepoint Beginner videos.
http://dotnetguts.blogspot.com/2009/03/sharepoint-videos-for-beginner-step-by.html
OOPS Concepts
http://dng-oops.blogspot.com/
Cool Tools for .NET
http://www.hanselman.com/blog/ScottHanselmans2009UltimateDeveloperAndPowerUsersToolListForWindows.aspx
http://www.thinqlinq.com/Post.aspx/Title/LINQ-Tools
.NET 3.5, ASP.NET interview questions.
http://dotnet2008interviewquestions.blogspot.com/
WCF 4.0 Introduction from MSDN
http://msdn.microsoft.com/en-us/library/ee354381.aspx
Sharepoint Beginner videos.
http://dotnetguts.blogspot.com/2009/03/sharepoint-videos-for-beginner-step-by.html
OOPS Concepts
http://dng-oops.blogspot.com/
Cool Tools for .NET
http://www.hanselman.com/blog/ScottHanselmans2009UltimateDeveloperAndPowerUsersToolListForWindows.aspx
January 5, 2009
Meta Data Queries in SQL Server 2000
-- Query to Find All User Tables
SELECT * FROM SYSOBJECTS SOWHERE SO.XTYPE = 'U' ORDER BY SO.NAME
-- Query to Find All User Views
SELECT SO.NAME FROM SYSOBJECTS SOWHERE SO.XTYPE = 'V' ORDER BY SO.NAME
--Query to Find all Procedures in the DB
SELECT SO.NAME FROM SYSOBJECTS SOWHERE SO.XTYPE = 'P' ORDER BY SO.NAME
--Query to Find all Triggers in the DB
SELECT SO.NAME FROM SYSOBJECTS SOWHERE SO.XTYPE = 'TR' ORDER BY SO.NAME
--Query to Find all User Defined Table Functions in the DB
SELECT SO.NAME FROM SYSOBJECTS SOWHERE SO.XTYPE = 'TF' ORDER BY SO.NAME
--Query to Find all User Defined Inline Functions in the DB
SELECT SO.NAME FROM SYSOBJECTS SOWHERE SO.XTYPE = 'IF' ORDER BY SO.NAME
--Query to Find all User Defined Scalar Functions in the DB
SELECT SO.NAME FROM SYSOBJECTS SOWHERE SO.XTYPE = 'FN' ORDER BY SO.NAME
Note.
X.Type define the object type, the possible values are
C = CHECK constraint
D = Default or DEFAULT constraint
F = FOREIGN KEY constraint
L = Log
FN = Scalar function
IF = Inlined table-function
P = Stored procedure
PK = PRIMARY KEY constraint (type is K)
RF = Replication filter stored procedure
S = System table
TF = Table function
TR = Trigger
U = User table
UQ = UNIQUE constraint (type is K)
V = View
X = Extended stored procedure
SELECT * FROM SYSOBJECTS SOWHERE SO.XTYPE = 'U' ORDER BY SO.NAME
-- Query to Find All User Views
SELECT SO.NAME FROM SYSOBJECTS SOWHERE SO.XTYPE = 'V' ORDER BY SO.NAME
--Query to Find all Procedures in the DB
SELECT SO.NAME FROM SYSOBJECTS SOWHERE SO.XTYPE = 'P' ORDER BY SO.NAME
--Query to Find all Triggers in the DB
SELECT SO.NAME FROM SYSOBJECTS SOWHERE SO.XTYPE = 'TR' ORDER BY SO.NAME
--Query to Find all User Defined Table Functions in the DB
SELECT SO.NAME FROM SYSOBJECTS SOWHERE SO.XTYPE = 'TF' ORDER BY SO.NAME
--Query to Find all User Defined Inline Functions in the DB
SELECT SO.NAME FROM SYSOBJECTS SOWHERE SO.XTYPE = 'IF' ORDER BY SO.NAME
--Query to Find all User Defined Scalar Functions in the DB
SELECT SO.NAME FROM SYSOBJECTS SOWHERE SO.XTYPE = 'FN' ORDER BY SO.NAME
Note.
X.Type define the object type, the possible values are
C = CHECK constraint
D = Default or DEFAULT constraint
F = FOREIGN KEY constraint
L = Log
FN = Scalar function
IF = Inlined table-function
P = Stored procedure
PK = PRIMARY KEY constraint (type is K)
RF = Replication filter stored procedure
S = System table
TF = Table function
TR = Trigger
U = User table
UQ = UNIQUE constraint (type is K)
V = View
X = Extended stored procedure
Subscribe to:
Posts (Atom)