Agnes's BI Portfolio Handout Version

613 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
613
On SlideShare
0
From Embeds
0
Number of Embeds
22
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Agnes's BI Portfolio Handout Version

  1. 1. 9/22/2009 Business Intelligence Portfolio Agnes Tetter agnes_tetter@yahoo.com August 22, 2009 TABLE OF CONTENTS This portfolio includes examples of my development skills in Business Intelligence Area Data Modeling SQL Server T-SQL Programming SQL Server Integration Services (SSIS) SQL Server Analysis Services (SSAS) MDX Programming SQL Server Reporting Services (SSRS) Performance Point Server (PPS) - Dashboard MS Office SharePoint Server (MOSS) © Agnes Tetter 2009 1
  2. 2. 9/22/2009 DATA MODELING © Agnes Tetter 2009 RELATIONAL MODEL FOR EMPLOYEE SELF-SERVICE SYSTEM SELF- This relational model was used for the development of an Automated Equipment check-in/check-out and tracking system (AECTS) that will streamline equipment check-in and check-out, its availability, and will keep track of the current location of equipment (if borrowed, the expected date of return can be viewed and the job site location of the employee who borrowed it can also be viewed). © Agnes Tetter 2009 2
  3. 3. 9/22/2009 RELATIONAL MODEL FOR STI CLASS SCHEDULING SYSTEM This relational data model was used for the class scheduling of STI-Cagayan De Oro. I used ER Assistant Software for designing the schema and this project was developed using MS Access. © Agnes Tetter 2009 RELATIONAL DATA MODEL FOR ALLWORKS DATABASE This is the relational database that we used in our first project. The schema was created from MS Visio and the T-SQL script that was generated was run in MS SQL Server Management Studio for the creation of the staging database. © Agnes Tetter 2009 3
  4. 4. 9/22/2009 BOOK SALE DATA WAREHOUSE DIMENSIONAL MODEL This data model was built in MS Visio, a combination of snowflakes and star schema. In this model we have two fact tables, these are the FactBookSales and FactBookEval. FactBookSales is built for each state, customers, date, sales type, and book. FactBookEval is built for each book and date. We also used MS Visio to generate the T-SQL script to create the staging database. © Agnes Tetter 2009 SQL SERVER T-SQL PROGRAMMING © Agnes Tetter 2009 4
  5. 5. 9/22/2009 THIS QUERY WILL DISPLAY ALL THE RECORDS WITH A TOTAL GREATER THAN OR EQUAL TO 5. THE HOTTEST ITEM WAS LISTED FIRST. DECLARE @txtMinimumTotal int SET @txtMinimumTotal=5 SELECT oi.ISBN, bo.Title, SUM(oi.QuantityOrdered) Total FROM OrderItems oi INNER JOIN Books bo ON oi.ISBN=bo.ISBN GROUP BY oi.ISBN, bo.Title Sample Output HAVING SUM(oi.QuantityOrdered)>= @txtMinimumTotal ORDER BY Total DESC, bo.Title © Agnes Tetter 2009 THIS QUERY RETURNS BOOKS THAT ARE CURRENTLY AVAILABLE FOR AND WITH AN ISBN OF 500 OR 1000 AND Sample Output SELECT co.ISBN, co.Copy_no, co.On_loan, ti.Title, it.Translation, it.Cover FROM dbo.copy co INNER JOIN dbo.item it ON co.isbn=it.isbn INNER JOIN dbo.title ti ON co.title_no=ti.title_no WHERE co.ISBN IN (500, 1000) and lower(co.on_loan) = 'n' ORDER BY it.cover, co.copy_no, ti.title © Agnes Tetter 2009 5
  6. 6. 9/22/2009 THIS QUERY RETRIEVE A SINGLE LIST OF MEMBERS BOTH ADULT AND JUVENILE, WHO HAVE RESERVED ISBN NUMBER 288. Sample Output SELECT re.ISBN, Title, me.Member_no, lastname+', '+firstname 'Name', 'Adult' AS 'Adult or Juvenile' FROM dbo.reservation re INNER JOIN dbo.member me ON me.member_no=re.member_no INNER JOIN dbo.adult ad ON me.member_no=ad.member_no INNER JOIN dbo.item it ON re.isbn=it.isbn INNER JOIN dbo.title ti ON it.title_no=ti.title_no WHERE re.ISBN = 288 UNION SELECT re.ISBN, Title, me.Member_no, lastname+', '+firstname 'Name', 'Juvenile' AS 'Adult or Juvenile' FROM dbo.reservation re INNER JOIN dbo.member me ON me.member_no=re.member_no INNER JOIN dbo.juvenile ju ON me.member_no=ju.member_no INNER JOIN dbo.item it ON re.isbn=it.isbn INNER JOIN dbo.title ti ON it.title_no=ti.title_no WHERE re.ISBN = 288 ORDER BY Name © Agnes Tetter 2009 SQL SERVER INTEGRATION SERVICES (SSIS) © Agnes Tetter 2009 6
  7. 7. 9/22/2009 DATA FLOW FOR CLIENT GROUPINGS TO CLIENT XREF TABLE This data flow read the contents from the spreadsheet and add them to SQL Server AllWorks Database (refer to Slide 6 for the relational database destination that was used in this project). Multiple lookups were included to ensure database integrity. All rows that are invalid were log and save to csv file for review and correction. © Agnes Tetter 2009 CONTROL FLOW FOR JOB TIME SHEET PACKAGE This ETL processes multiple csv files containing Job Time Sheet and loads them into the staging database (AllWorks.mdb), refer to slide 6 for the relational database destination that was used in this project. Upon completion a status email is sent for the result of the package. Success email include counts of rows inserted, updated, and invalid. © Agnes Tetter 2009 7
  8. 8. 9/22/2009 VB.NET SCRIPT WAS USED FOR THE PACKAGE This VB.net script was used in this package to keep a running the number of rows that were processed (inserted and updated), total of invalid rows, and the total number of rows processed from each CSV files in the Timesheet folder. © Agnes Tetter 2009 DATA FLOW FOR THE JOB TIME SHEET PACKAGE This is the dataflow of the control flow that was shown from slide 14. This will read multiple Job time sheet csv from one folder and load them to the staging database. Multiple lookups are included to ensure data integrity. This dataflow insert, update and logs all invalid jobs, employee and timesheet to csv file for review and correction. © Agnes Tetter 2009 8
  9. 9. 9/22/2009 MASTER PACKAGE This master package includes all eight the package for this project and they are arrange in according to their dependencies. This include maintenance task to the database, it include the following: Back-up database Shrinking database Rebuilding index. Email notification is sent if any of the maintenance task fails and if the maintenance task were processed successful. © Agnes Tetter 2009 SQL SERVER ANALYSIS SERVICES (SSAS) SSAS) © Agnes Tetter 2009 9
  10. 10. 9/22/2009 THE DEVELOPMENT AND DEPLOYMENT OF ALLWORKS CUBE In this cube we have four fact tables and five dimension tables created out of nine dimensions. This shows the cube structure of AllWorksCube. Only the five dimensions (AllWorksCalendar, JobMaster, Overhead, MaterialType, and Emplooyes) with direct relationship with the four fact tables were shown in the solution explorer. The four dimension tables (client, division, client grouping , and county) that had no direction were hidden under JobMaster Table. © Agnes Tetter 2009 BROWSING THE ALLWORKS CUBE DATA This SSAS browser shows the Clients Name, Total Labor Cost, Total Material Cost, Total Overhead, and Total labor Profit for each quarter in 2005. © Agnes Tetter 2009 10
  11. 11. 9/22/2009 CUBE PARTITIONING AND AGGREGATION In this project we used MOLAP for SSAS data storage. Queries to MOLAP data execution are significantly faster than queries against other two storage modes (ROLAP and HOLAP). For our cube performance optimization we used two partitions for each fact table. One partition was from year 2005 down and the second partition was from 2006 up. Partitions allow the server to detect which partition can be simply ignored for a query. For example, if a query is querying the month January for the year 2006, with this partition, there is no need for the query to scan the data from 2005. The following are the names of the partition created for each fact table. © Agnes Tetter 2009 DEFINITION OF THE CALCULATED MEMBERS In the Calculation Tab of AllWorks Cube, we created eleven calculations or measures that were used in the KPI (Key Performance Indicator). © Agnes Tetter 2009 11
  12. 12. 9/22/2009 DEFINITION OF THE KEY PERFORMANCE INDICATORS (KPI) Five KPIs were used in the Project. In this example, we have the KPITotalCostPctOverhead. This KPI uses the TotalCostPctOverhead Measure to determine the status: We based the Status expression in this condition : 0 – 10% OK Greater than 10%, less than or equal to 15%, Warning Greater than 15% - bad © Agnes Tetter 2009 MDX PROGRAMMING © Agnes Tetter 2009 12
  13. 13. 9/22/2009 THIS QUERY SHOW THE JOB AND THE TOP THREE EMPLOYEES WHO WORKED THE MOST HOURS ON THAT JOB. Sample Output With Set [MainSet] as Generate ( [Job Master].[Description].children, ([Job Master].[Description].currentmember, TopCount ( [Employees].[Full Name].children, 3 , [Measures].[Hoursworked] ) )) Select [Measures].[Hoursworked] on columns, non empty [MainSet] on rows From [All Works Cube] Where [All Works Calendar].[FY Calendar].[Year].&[2005] © Agnes Tetter 2009 THIS QUERY SHOW THE OVERHEAD BY CATEGORY IN ALPHABETICAL ORDER. WITH COMPUTED VALUES FOR WEEKLY OVERHEAD COST FOR THE CURRENT MINUS THE PREVIOUS OVER THE PREVIOUS VALUES. With Member [Measures].[Current] as -- currentmember function will returns the current member along a Sample Output specified hierarchy during iteration ([All Works Calendar].[FY Calendar].currentmember,[Measures].[Weekly Over Head]) --return the value of the previous member specified in the hierarchy Member [Measures].[Previous] as --prevmember function will return the previous member in the level that contains a specified member. ([Measures].[Weekly Over Head],[All Works Calendar].[FY Calendar].prevmember) Member [Measures].[%Change] as --will check if the [Measures].[Previous] is equal to zero or if it empty then it will return N/A IIF( IsEmpty([Measures].[Previous]) or [Measures].[Previous] = 0, 'N/A', ([Measures].[Current]- [Measures].[Previous])/[Measures].[Previous]), format_string= '0.00%;;;;' Select {[Measures].[Current],[Measures].[Previous],[Measures].[%Change] } on columns, [Overhead].[Description].members on rows From [All Works Cube] Where [All Works Calendar].[Qtr].&[2005 Q4] © Agnes Tetter 2009 13
  14. 14. 9/22/2009 THIS QUERY SHOW THE PRODUCT CATEGORIES SORTED BY PRODUCT PRICE RANGE RANGE IN DESCENDING ORDER. AVERAGE SALE PRICE, MAX AVERAGE PRICE AND THE THE DIFFERENCE BETWEEN THE TWO ARE COMPUTED. With Member [Measures].[Avg Sales Price] as [Measures].[Dollar Sales]/[Measures].[Unit Sales], Sample Output format_string = 'currency' Member [Measures].[MaxAvgPrice] as Max (Filter ( [Customer].[Customer].[City], [Measures].[Unit Sales] > ([Customer].[Customer].prevmember,[Measures].[Unit Sales])) AS [CustomerFilteredCities],[Measures].[Avg Sales Price] ) Member [Measures].[MinAvgPrice] as Min( Filter ( [Customer].[Customer].[City], [Measures].[Unit Sales] > ([Customer].[Customer].prevmember,[Measures].[Unit Sales])) AS [CustomerFilteredCities],[Measures].[Avg Sales Price] ) Member [Measures].[Product Price Range] AS [Measures].[MaxAvgPrice] - [Measures].[MinAvgPrice] Select {[Measures].[Avg Sales Price],[Product Price Range], [MaxAvgPrice],[Measures].[MinAvgPrice]} on columns, Order ( [Product].[Category].[Rt Prod Category],[Measures].[Product Price Range],bdesc) Having [Measures].[Unit Sales] > ([Measures].[Unit Sales],[Time].[Quarter].prevmember) on rows From [Sales] Where [Time].[Quarter].lastchild © Agnes Tetter 2009 SQL SERVER REPORTING SERVICES (SSRS) SSRS) © Agnes Tetter 2009 14
  15. 15. 9/22/2009 THIS REPORT RETRIEVE KPI’S GRAPHICALLY USING SSRS. SSRS. Sample Output This report shows the Product Category, the sale, return, return percentage for the current yean and last year. This report also indicate a status if it currently doing good or bad based on it’s goal. In this report the user can sort the report in ascending or descending order based on the columns that he selected. “Even if an organization doesn’t use SharePoint/Performance Point, we can still render KPIs graphically in an SSRS report. “ © Agnes Tetter 2009 THIS REPORT SHOWS A TREND LINE CHART WITH A TWELVE-MONTH MOVING AVERAGE USING MDX TWELVE- Sample Output This report shows revenue as a column bar and the 12 month moving average as a horizontal line. The trend line helps to visually assess if monthly revenue is above or below the 12 month average (at that month) © Agnes Tetter 2009 15
  16. 16. 9/22/2009 THIS REPORT SHOWS THE RANKING BY REGION AND THE RANKING OF THE PRODUCTS IN EACH REGION BASED ON DOLLAR SALE Sample Output This report uses MDX code that generates a nested TOPCOUNT and Ranking over a user-defined date range. In this report the user can specify what top count in region and in product category that he is interested in to look at. © Agnes Tetter 2009 PERFORMANCEPOINT PERFORMANCEPOINT SERVER (PPS) DASHBOARD DESIGNER © Agnes Tetter 2009 16
  17. 17. 9/22/2009 THIS REPORT CAN GENERATE THE KPI RETURNS PERCENTAGE BOTH FOR CURRENT PERIOD AND FOR LAST YEAR Sample Output In this dashboard we selected the year 2005 then – showing KPI Returns % from WareMart (both for current period, and for Last Year) In this dashboard the user can select a date from Year to Quarter to Month. The user can also select a Product Type, and the scorecard will show that product, plus all the products that belong in that type. We used MDX code based on the date and product selected. © Agnes Tetter 2009 THIS REPORT WAS IMPORTED FROM SSRS TO PERFORMANCE POINT SERVER 2007 Sample Output This Pie Report is filter by year, the user can select what product category that interest him from the document map then it will show a Pie Graph showing the percentage in each region for that particular product. © Agnes Tetter 2009 17
  18. 18. 9/22/2009 MS OFFICE SHAREPOINT SERVER (MOSS) 2007 © Agnes Tetter 2009 THIS REPORT WAS CREATED FROM PERFORMANCEPOINT SERVER(PPS) AND DEPLOYED TO MS OFFICE SHAREPOINT SERVER (MOSS) Sample Output Employee Labor Analysis Report shows the employee labor dollar by quarter, along with the percentage of labor for the jobs the employee worked. © Agnes Tetter 2009 18
  19. 19. 9/22/2009 THIS REPORT WAS CREATED FROM SQLSERVER REPORTING SERVICES (SSRS) AND DEPLOYED TO MS OFFICE SHAREPOINT SERVER (MOSS) Sample Output Employee Jobs in Date Range Report incorporate a cascading parameters based on the employee. Based on the employee, we can only dropdown for week ending dates that the employee worked. © Agnes Tetter 2009 THIS REPORT WAS CREATED AS PIVOT TABLE FROM MS EXCEL, LINKED THE SPREADSHEET IN PPS, AND THEN DEPLOYED TO MS OFFICE SHAREPOINT SERVER (MOSS) Sample Output Job Profitability Chart Report is filtered by County. The pivot table uses Profit in Dollar, Profit Percentage, and Quarter. The pivot table uses the AllWorks-Project Labor Cube as the source of data. In this report, the user can have a multi selection of the counties that they are interested to look at. © Agnes Tetter 2009 19

×