Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

James Colby Maddox Business Intellignece and Computer Science Portfolio


Published on

This portfolio covers the business intelligence course work I have completed at Set Focus, and some of the course work I have completed at Kennesaw State University

  • Login to see the comments

James Colby Maddox Business Intellignece and Computer Science Portfolio

  1. 1. <ul><li>Business Intelligence </li></ul><ul><li>Portfolio </li></ul><ul><li>Name: James Colby Maddox </li></ul><ul><li>Email: </li></ul><ul><li>Phone: 678-895-4769 </li></ul>
  2. 2. Table of Contents <ul><li>Business Intelligence Overview 1 </li></ul><ul><li>T-SQL Samples </li></ul><ul><li>SSIS-Integrations Services Samples </li></ul><ul><li>SSAS-Analysis Services Samples </li></ul><ul><li>MDX Samples </li></ul><ul><li>Calculated Member and KPI Samples </li></ul><ul><li>Excel Services-Samples </li></ul><ul><li>SSRS-Reporting Services Samples </li></ul><ul><li>PPS-Share Point Overview </li></ul><ul><li>Computer Science Overview </li></ul><ul><li>Java Samples </li></ul><ul><li>C# Samples </li></ul><ul><li>Visual Basic Samples </li></ul><ul><li>Power Shell Samples </li></ul><ul><li>SQL/database design Samples </li></ul>
  3. 3. Business Intelligence Overview <ul><li>Introduction: The following sections will cover examples of my development skills with Microsoft Business Intelligence: T-SQL Samples, SSIS-Integrations Services Samples, SSAS-Analysis Services Samples, MDX Samples, Calculated Member and KPI Samples, Excel Services-Samples, SSRS-Reporting Services Samples, PPS-Share Point Overview </li></ul><ul><li>Audience: </li></ul><ul><li>SetFocus Alumni, Instructors, and faculty </li></ul><ul><li>Business executives </li></ul><ul><li>Information workers </li></ul><ul><li>IT managers </li></ul><ul><li>Project Goals: </li></ul><ul><li>Develop T-SQL queries to retrieve data from a database </li></ul><ul><li>Develop a Star Schema database using Visio </li></ul><ul><li>Create a staging database using Visio </li></ul><ul><li>Create an ETL solution to update a database from Excel and flat file sources using SSIS </li></ul><ul><li>Create a OLAP cube with SSAS </li></ul><ul><li>Write MDX queries based on the cube </li></ul><ul><li>Define Calculated Members, KPIs, Aggregations, and Partitions for the cube </li></ul><ul><li>Produce reports, manage schedules, and manage roles using SSRS </li></ul><ul><li>Use Excel Services 2007 to display cube data and KPI’s on a Microsoft SharePoint site </li></ul><ul><li>Create score cards, dashboards, reports, and import reports from a SharePoint site using PPS </li></ul>
  4. 4. T-SQL Samples <ul><li>Select adult library accounts that have more then 3 children </li></ul><ul><li>select d.adult_member_no, a.expr_date, d.No_Of_Children </li></ul><ul><li>From adult As a </li></ul><ul><li>INNER JOIN ( </li></ul><ul><li>Select adult_member_no, COUNT(*) As No_Of_Children </li></ul><ul><li>From juvenile </li></ul><ul><li>GROUP by adult_member_no </li></ul><ul><li>Having COUNT(*) > 3 </li></ul><ul><li>) as d </li></ul><ul><li>ON a.member_no = d.adult_member_no </li></ul>
  5. 5. T-SQL Samples <ul><li>Select library members where the members fine paid is equal to the maximum fine ever paid </li></ul><ul><li>select distinct member.firstname, member.lastname, loanhist.isbn, loanhist.fine_paid </li></ul><ul><li>FROM member </li></ul><ul><li>INNER JOIN loanhist on member.member_no = loanhist.member_no </li></ul><ul><li>WHERE fine_paid = (select MAX(loanhist.fine_paid) from loanhist) </li></ul>
  6. 6. T-SQL Samples <ul><li>Instructor’s test question </li></ul><ul><li>Using Northwind, write a query that will retrieve line items in [Order Details], where the line item dollars in Order Details (Unit Price * Quantity) is greater than or equal to $5,000. Sort the results by Dollars Descending, WITHIN each ProductName. The output should look like this: ProductName OrderID TotalDollars ABC 12344 12,000 ABC 44444 11,000 DEF 56789 14,000 DEF 56784 10,000 You’ll want to query the Products table and the Order Details table </li></ul><ul><li>My answer </li></ul><ul><li>select Prod.ProductName, Ord.OrderID, SUM((det.Quantity * det.UnitPrice)) as TotalDollars </li></ul><ul><li>From products as Prod </li></ul><ul><li>INNER JOIN [Order details] as det on Prod.ProductID = det.ProductID </li></ul><ul><li>INNER JOIN Orders as Ord on det.OrderID = Ord.OrderID </li></ul><ul><li>GROUP BY Prod.ProductName, Ord.OrderID </li></ul><ul><li>HAVING SUM((det.Quantity * det.UnitPrice)) >= 5000 </li></ul><ul><li>Result: Correct </li></ul>
  7. 7. T-SQL Samples <ul><li>Instructors test question </li></ul><ul><li>Write a query to retrieve the Top 10 Orders by Freight dollars (descending). The output should look like this: OrderID Customer Name Freight $ 11111 Test Company $1,900 00022 Test Company $1,800 (Extra credit: even though the class probably didn’t cover the RANK function – how would you show the ranking number in the query?) </li></ul><ul><li>  My answer </li></ul><ul><li>select TOP 10 with ties ord.OrderID, cust.CompanyName, SUM((det.quantity * det.UnitPrice)) as 'Frieght$', RANK() OVER (partition by ord.orderid order by SUM((det.quantity * det.UnitPrice)) DESC ) as 'Rank' </li></ul><ul><li>FROM customers as cust </li></ul><ul><li>INNER JOIN Orders as ord on cust.CustomerID = ord.CustomerID </li></ul><ul><li>INNER JOIN [Order Details] as det on det.OrderID = ord.OrderID </li></ul><ul><li>GROUP BY cust.CompanyName, ord.OrderID </li></ul><ul><li>ORDER BY SUM((det.quantity * det.UnitPrice)) DESC </li></ul><ul><li>Result: Correct </li></ul>
  8. 8. SSIS Samples <ul><li>Integration Services </li></ul><ul><li>Extract data from Excel and CSV files that will be inserted into the AllWorks database </li></ul><ul><li>Transform the data, convert Excel data types into database data types, update records that already exist, take denormalized data and create appropriate lookup tables </li></ul><ul><li>Load the data into the AllWorks database, log any records that fail parent to child lookups, log any errors that take place when records are being inserted into the database and log the records that created the error in a log file </li></ul><ul><li>Back up , shrink, and reindex the database </li></ul><ul><li>Send an email upon completion of each package, inform the user if any errors take place </li></ul><ul><li>Run the packages every night at midnight </li></ul><ul><li>Screen shot of master package </li></ul><ul><li>The master package runs all the other packages, backs up, shrinks, and reindex’s the database and then email the user of success or failure of the master package, the master package is what is run every night at midnight </li></ul>
  9. 9. SSIS Samples <ul><li>Employee Master Package </li></ul><ul><li>This package takes rows from the Employees Excel Spreadsheet, converts the Excel data formats into the database data formats, and insert the records into the employees table, if the record already exist an update takes place </li></ul>
  10. 10. SSIS Samples <ul><li>Client Grouping Package </li></ul><ul><li>This package takes the special groupings spreadsheet, convert the data, group the data by group number and group name, sort the data by group number, and insert the data into the ClientGrouping table </li></ul>
  11. 11. SSIS Samples <ul><li>Clients Grouping to Client Xref Package </li></ul><ul><li>This package loads a lookup table for clients to groups, if a lookup record doesn’t match a client and a group then that record is sent to an error log, there is no updates that take place in this package </li></ul>
  12. 12. SSAS Sample <ul><li>Create an OLAP Cube using BIDS </li></ul><ul><li>Establish a data source with the staging database </li></ul><ul><li>Create a data source view that defines the relationships between the dimension and fact tables </li></ul><ul><li>Create the cube based on the data source view, define hierarchies for dimensions, define measures for the fact tables </li></ul><ul><li>Verify that all hierarchies have appropriate name ids, verify fact tables have appropriate relationships with dimensions </li></ul><ul><li>Define Calculated Measures, and KPIs for the Cube </li></ul><ul><li>Design partition and aggregations for the cube </li></ul><ul><li>Add security roles to the cube </li></ul><ul><li>Screen shot of data source view for cube </li></ul>
  13. 13. SSAS Sample <ul><li>Screenshot of Cube </li></ul>
  14. 14. SSAS Sample <ul><li>Screenshot of Dimension Usage </li></ul>
  15. 15. SSAS Sample <ul><li>Screenshot of Partitions and Aggregations </li></ul>
  16. 16. MDX Sample <ul><li>Query Requirements </li></ul><ul><li>-- List Hours Worked and Total Labor for each employee </li></ul><ul><li>-- including the [All] members </li></ul><ul><li>-- for 2005, </li></ul><ul><li>-- along with the labor rate (Total labor / Hours worked). </li></ul><ul><li>My Answer </li></ul><ul><li>--this member will calculated the labor rate by dividing total labor by hours worked </li></ul><ul><li>--this member will be calculated first </li></ul><ul><li>WITH MEMBER [Labor Rate] AS </li></ul><ul><li>[Total Labor]/[Hoursworked], solve_order = 0 </li></ul><ul><li>--the hours worked, total labor, and labor rate are displayed on top </li></ul><ul><li>SELECT {[Hoursworked], [Total Labor],[Labor Rate]} on columns, </li></ul><ul><li>--employees with information will be displayed on the rows </li></ul><ul><li>NON EMPTY [Employees].[Full Name].members on rows </li></ul><ul><li>FROM [All Works] </li></ul><ul><li>--where the year is equal to 2005 </li></ul><ul><li>WHERE [2005] </li></ul><ul><li>Result Correct </li></ul>
  17. 17. MDX Sample <ul><li>Query Requirements </li></ul><ul><li>- Show jobs in order of purchase amount and then show the </li></ul><ul><li>-- breakdown in each job of material type (for instance, </li></ul><ul><li>-- Job A, total purchase amount, amount for fuel, amount for materials, </li></ul><ul><li>-- amount for petty cash, etc.)in hierarchy order. </li></ul><ul><li>-- The general order should be by </li></ul><ul><li>-- total purchase amount, so that the top of the result set </li></ul><ul><li>-- shows the jobs that required the highest purchase amounts. </li></ul><ul><li>-- Display NULLs as $0.00 </li></ul><ul><li>My Answer </li></ul><ul><li>--create the sort order for the jobs, the jobs will be sorted by purchase amount in descending order </li></ul><ul><li>WITH SET [Ordered Jobs] AS </li></ul><ul><li>ORDER([Job Master].[Description].Children, [Purchase Amount], desc) </li></ul><ul><li>--retrieve the purchase amount for the current job and material type </li></ul><ul><li>MEMBER [Check Purchase] AS </li></ul><ul><li>([Purchase Amount], [Job Master].[Description].CurrentMember,[Material Types].[Description].CurrentMember) </li></ul><ul><li>--check to see if the purchase amount is null, if its null display 0, else display the amount </li></ul><ul><li>Member [Purchase Amt] AS </li></ul><ul><li>iIF ([Check Purchase] = NULL, 0, [Check Purchase]) </li></ul><ul><li>--display the purchase amount on top </li></ul><ul><li>SELECT [Purchase Amt] on columns, </li></ul><ul><li>--the jobs will be displayed in descending order based on total purchase amount, and for each job, all the material type purchase amounts for that job will be displayed </li></ul><ul><li>[Ordered Jobs] * [Material Types].[Description].members on rows </li></ul><ul><li>FROM [All Works] </li></ul><ul><li>Result Correct </li></ul>
  18. 18. MDX Sample <ul><li>-- Show Overhead by Overhead Category </li></ul><ul><li>-- including the [All] members </li></ul><ul><li>-- for Q3 and Q4 2005, </li></ul><ul><li>-- and also show the % of change between the two </li></ul><ul><li>-- alphabetical overhead category </li></ul><ul><li>WITH </li></ul><ul><li>--obtain the Weekly over head for the current overhead category </li></ul><ul><li>--this member will be calculated first </li></ul><ul><li>MEMBER [Current Overhead] AS </li></ul><ul><li>([Weekly Over Head], [Overhead].[Description].Currentmember), solve_order = 0 </li></ul><ul><li>--this member retrieves the weekly over head for the current overhead category for Q3 </li></ul><ul><li>--this member will be calculated second </li></ul><ul><li>MEMBER [Quarter 3] AS </li></ul><ul><li>([Current Overhead],[2005 Q3]), solve_order = 1 </li></ul><ul><li>--this member retrieves the weely over head for the current overhead category for Q4 </li></ul><ul><li>--this member will be calculated third </li></ul><ul><li>MEMBER [Quarter 4] AS </li></ul><ul><li>([Current Overhead],[2005 Q4]), solve_order = 2 </li></ul><ul><li>--this member will calculated the percent change between Q3 and Q4 </li></ul><ul><li>MEMBER [% chg] AS </li></ul><ul><li>--if quarter three has no data, no percent change can be recorded </li></ul><ul><li>iIF ([Quarter 3] = NULL,'N/A', </li></ul><ul><li>--if quarter three has data, the percent change is calcualted by taking q4 - q3 and dividing by q3 </li></ul><ul><li>([Quarter 4]- [Quarter 3]) / [Quarter 3]), solve_order = 3 ,format_string = 'percent' </li></ul><ul><li>--Quarter 4, Quarter 3, and the percent change between the two are displayed on top </li></ul><ul><li>SELECT {[Quarter 4],[Quarter 3],[% chg]} on columns, </li></ul><ul><li>--rows that had no data in quarter 4, where null rows, so i removed those rows using this filter </li></ul><ul><li>filter( [Overhead].[Description].members ,[Quarter 4] <> NULL) on rows </li></ul><ul><li>FROM [All Works] </li></ul>
  19. 19. MDX Sample <ul><li>Query Requirements </li></ul><ul><li>-- List the jobs that make up the top 30% of total invoice amount </li></ul><ul><li>-- sorted by descending invoice amount </li></ul><ul><li>My Answer </li></ul><ul><li>--display the invoice amount on top </li></ul><ul><li>SELECT [Measures].[Invoice Amount] on columns, </li></ul><ul><li>ORDER ( </li></ul><ul><li>--dislpay the jobs that make up the top 30% of the total invoice amount </li></ul><ul><li>TOPPERCENT ([Job Master].[Description].children,30,[Invoice Amount]) </li></ul><ul><li>--sort the top 30 percent by invoice amount in descending order </li></ul><ul><li> ,[Invoice Amount],desc) on rows </li></ul><ul><li>FROM [All Works] </li></ul><ul><li>Result Correct </li></ul>
  20. 20. Calculated Member Samples <ul><li>Screen shots of Calculated Members from my SSAS Project </li></ul>
  21. 21. Calculated Member Samples <ul><li>Screen shots of Calculated Members from my BI Team Project </li></ul>
  22. 22. KPI samples <ul><li>Screen shots of KPIs from my SSAS Project </li></ul>
  23. 23. KPI Samples <ul><li>Screen shots of KPIs from my BI Team Project </li></ul>
  24. 24. Excel Services Samples <ul><li>Create Excel Services reports based on a OLAP cube </li></ul><ul><li>Use Excel Services to test out and display KPIs and Calculated Members </li></ul><ul><li>Use Excel Services to post reports to Performance Point Server </li></ul><ul><li>Use Excel Services to post reports to a Sharepoint site </li></ul><ul><li>Screenshot of Excel KPI report from my SSAS Project </li></ul>
  25. 25. Excel Services Samples <ul><li>Screenshot of KPI report for number of jobs serviced for a client </li></ul>
  26. 26. Excel Services Samples <ul><li>Screenshot of KPI report for the overhead percent for each job serviced </li></ul>
  27. 27. Excel Services Samples <ul><li>Screenshot of KPI report for the profit percent for each client </li></ul>
  28. 28. SSRS Reporting Services Samples <ul><li>Created detailed SSRS reports based on an OLAP Cube or relational database </li></ul><ul><li>Create reports from scratch without using the wizard </li></ul><ul><li>Create calculations and format data to be displayed on the report </li></ul><ul><li>Group and sort data that will be presented on a report </li></ul><ul><li>Create drill down, and Matrix reports and display charts representing the data </li></ul><ul><li>Implement Security using browser based report manager </li></ul><ul><li>Note: the following screen shots where taken on my laptop, since the olap cube that these reports are based on are not my laptop, the appropriate field values will not be displayed </li></ul><ul><li>Screen shot of the Employee Report from my SSRS Project </li></ul>
  29. 29. SSRS Reporting Services Samples <ul><li>Screen shot of the Overhead Report from my SSRS Project </li></ul>
  30. 30. PPS-SharePoint Overview <ul><li>Note, I wasn’t able to access the Sharepoint site I created for my PPS/Sharepoint project on my personal laptop so screen shots are not available, instead I will give a short overview on what I did for that project. On the next slide however, you will see a screen shot of the Sharepoint site I created for my team project </li></ul><ul><li>Overview of the work I did for my PPS/Sharepoint project </li></ul><ul><li>Created KPI Scorecards based on dimensions, calculated members, and KPIs stored in the cube </li></ul><ul><li>Created analytic grids and analytic charts to be displayed on a dashboard </li></ul><ul><li>Used MDX to customize reports and charts </li></ul><ul><li>Created hotlinks between KPIs and reports </li></ul><ul><li>Exported a Excel Service report to my Sharepoint site, imported the Excel Service report from the website to a analytic grid, placed the grid in a dashboard, uploaded the dashboard to the sharepoint site </li></ul><ul><li>Imported a SSRS report and its datasource to my Sharepoint site, stored credentials for the datasource, created a schedule for the SSRS report and any other SSRS reports that needed the schedule, created a subscription for each report that used the schedule </li></ul>
  31. 31. SharePoint Sample <ul><li>Screen shot of the Sharepoint site I managed for my team project </li></ul>
  32. 32. Computer Science Overview <ul><li>Introduction: The following sections will cover some of the course work I have completed at Kennesaw State University. The following programming languages will be covered: Java, C#, Visual Basic, and Windows Powershell. Also examples will be provided of development plans for a SQL database I had to create for a project for my database class. </li></ul><ul><li>Audience: </li></ul><ul><li>KSU Faculty, Instructors, and peers </li></ul><ul><li>Software Developers and Engineers </li></ul><ul><li>IT Managers </li></ul><ul><li>Coursework Goals: </li></ul><ul><li>Achieve strong understanding of programming using object oriented design and other programming design strategies </li></ul><ul><li>Gain a strong understanding of system analysis and design </li></ul><ul><li>Learn how to develop database applications </li></ul><ul><li>Understand data structure, and operating system principles </li></ul><ul><li>Learn how to manage projects </li></ul>
  33. 33. Java Samples <ul><li>Java Programming </li></ul><ul><li>Create Java applications that can take user input, run loops such as while and for, create objects based on various classes and call methods from those classes, use recursion to solve complex problems, and other various purposes </li></ul><ul><li>Check for syntax, runtime, and logic errors when developing applications </li></ul><ul><li>Handle exceptions when they happen and take appropriate steps to handle those exceptions </li></ul><ul><li>Comment code so that other people looking at the code knows what is going on </li></ul><ul><li>This code will take a new loan object and throw an illegial exception if the loan is invalid </li></ul>
  34. 34. Java Samples <ul><li>This code manages the size of an array and inserts book objects into the array </li></ul>
  35. 35. Java Samples <ul><li>This code searches for a word in a string using for loops </li></ul>
  36. 36. Java Samples <ul><li>This code uses recursion to check if a path on a maze game is valid or invalid </li></ul>
  37. 37. C# Samples <ul><li>Programming with C# </li></ul><ul><li>Design GUI interfaces that interact with classes and their methods to provide the user with a functional application </li></ul><ul><li>Design Console applications that take input from a file and process the data and display the results in a command window </li></ul><ul><li>Design Web applications that are connected to a class or classes, the classes call methods that take input from a file, process the data, and display the results on the web page </li></ul><ul><li>Create multiple projects that store code, each project has its own set of classes, each class has its own set of methods, a program project has a reference to all these class projects and can create an object based on each class and can call those classes methods </li></ul><ul><li>Create applications that can parse and unparse data </li></ul><ul><li>Here is a simple console application that takes a file and counts how many lines are in the file </li></ul>
  38. 38. C# Samples <ul><li>This web application will have a user select a person ID, and when the user clicks the button, the person’s information is displayed on the page </li></ul>
  39. 39. C# Samples <ul><li>This console application will read a file from binary and write a file to binary </li></ul>
  40. 40. C# Samples <ul><li>This Windows Form Application takes two numbers from the user and displays their sum </li></ul>
  41. 41. Visual Basic Samples <ul><li>Programmi ng with Visual Basic </li></ul><ul><li>Design GUI interfaces that users find easy to use </li></ul><ul><li>Use While loops and For loops to process repetitive data when appropriate </li></ul><ul><li>Use appropriate data conversions to process data </li></ul><ul><li>Use Exception Handling and Validation to handle errors and allow users to operate the application without any problems </li></ul><ul><li>Use Listbox, Combo boxes, check boxes, and radio buttons to allow users to selection different options on a form </li></ul><ul><li>Use Modules to store methods that other forms can use </li></ul><ul><li>This form allows a user to select a state and when the user clicks the button the states bird and abbreviation will be shown </li></ul>
  42. 42. Visual Basic Samples <ul><li>This form will take user input and calculate ticket cost, an error will be thrown if the input is invalid </li></ul>
  43. 43. Visual Basic Samples <ul><li>This form allows a user to enter input and select check boxes to compute their cost </li></ul>
  44. 44. Visual Basic Samples <ul><li>This is my term project, the main form opens up multiple sub forms in order to get a users order </li></ul>
  45. 45. Power Shell Samples <ul><li>Programming with Power Shell </li></ul><ul><li>Design Scripts using Object Oriented Programming </li></ul><ul><li>Create Scripts that can filter data coming through a pipe line </li></ul><ul><li>Create Scripts that use functions to repeat repetitive task </li></ul><ul><li>Create Scripts that handles error exceptions if they take place </li></ul><ul><li>Create Scripts that takes a user’s input and checks to see if the input is valid </li></ul><ul><li>This script takes two arguments, a directory and a file size, if a file’s size in the directory is greater then the size specified then that file is displayed </li></ul>
  46. 46. Power Shell Samples <ul><li>These two functions in a hang man game checks to see if the users answer is correct, if its wrong, or if the user already guessed a letter </li></ul>
  47. 47. Power Shell Samples <ul><li>This script takes a user’s input, and if the input is correct, displays a knock knock joke </li></ul>
  48. 48. SQL/database design Samples <ul><li>The following screenshots are of design documents I created to display how I was going to set up my SQL database for my class project </li></ul><ul><li>Table Layout Document </li></ul>
  49. 49. SQL/database design Samples <ul><li>E-R Diagram </li></ul>
  50. 50. SQL/database design Samples <ul><li>Executive Summary </li></ul>