50
Business Intelligence Portfolio Name: James Colby Maddox Email: [email protected] Phone: 678-895-4769

James Colby Maddox Business Intellignece and Computer Science Portfolio

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: James Colby Maddox Business Intellignece and Computer Science Portfolio

Business IntelligencePortfolio

Name: James Colby MaddoxEmail: [email protected]: 678-895-4769

Page 2: James Colby Maddox Business Intellignece and Computer Science Portfolio

Table of ContentsBusiness Intelligence Overview 1• 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 OverviewComputer Science Overview• Java Samples• C# Samples• Visual Basic Samples• Power Shell Samples• SQL/database design Samples

Page 3: James Colby Maddox Business Intellignece and Computer Science Portfolio

Business Intelligence Overview

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

Audience:• SetFocus Alumni, Instructors, and faculty• Business executives• Information workers• IT managers

Project Goals:• Develop T-SQL queries to retrieve data from a database• Develop a Star Schema database using Visio• Create a staging database using Visio• Create an ETL solution to update a database from Excel and flat file sources using SSIS• Create a OLAP cube with SSAS• Write MDX queries based on the cube• Define Calculated Members, KPIs, Aggregations, and Partitions for the cube• Produce reports, manage schedules, and manage roles using SSRS• Use Excel Services 2007 to display cube data and KPI’s on a Microsoft SharePoint site• Create score cards, dashboards, reports, and import reports from a SharePoint site using PPS

Page 4: James Colby Maddox Business Intellignece and Computer Science Portfolio

T-SQL Samples

Select adult library accounts that have more then 3 children• select d.adult_member_no, a.expr_date, d.No_Of_Children• From adult As a• INNER JOIN (• Select adult_member_no, COUNT(*) As No_Of_Children• From juvenile• GROUP by adult_member_no• Having COUNT(*) > 3• ) as d• ON a.member_no = d.adult_member_no

Page 5: James Colby Maddox Business Intellignece and Computer Science Portfolio

T-SQL Samples

Select library members where the members fine paid is equal to the maximum fine ever paid

• select distinct member.firstname, member.lastname, loanhist.isbn, loanhist.fine_paid

• FROM member• INNER JOIN loanhist on member.member_no = loanhist.member_no• WHERE fine_paid = (select MAX(loanhist.fine_paid) from loanhist)

Page 6: James Colby Maddox Business Intellignece and Computer Science Portfolio

T-SQL SamplesInstructor’s test question• 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,000ABC 44444 11,000DEF 56789 14,000DEF 56784 10,000

You’ll want to query the Products table and the Order Details tableMy answer• select Prod.ProductName, Ord.OrderID, SUM((det.Quantity * det.UnitPrice)) as TotalDollars• From products as Prod• INNER JOIN [Order details] as det on Prod.ProductID = det.ProductID• INNER JOIN Orders as Ord on det.OrderID = Ord.OrderID• GROUP BY Prod.ProductName, Ord.OrderID• HAVING SUM((det.Quantity * det.UnitPrice)) >= 5000Result: Correct

Page 7: James Colby Maddox Business Intellignece and Computer Science Portfolio

T-SQL SamplesInstructors test question• 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,90000022 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?)

My answer• 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'

• FROM customers as cust• INNER JOIN Orders as ord on cust.CustomerID = ord.CustomerID• INNER JOIN [Order Details] as det on det.OrderID = ord.OrderID• GROUP BY cust.CompanyName, ord.OrderID• ORDER BY SUM((det.quantity * det.UnitPrice)) DESCResult: Correct

Page 8: James Colby Maddox Business Intellignece and Computer Science Portfolio

SSIS SamplesIntegration Services• Extract data from Excel and CSV files that will be inserted into the AllWorks database• Transform the data, convert Excel data types into database data types, update records that already exist, take denormalized

data and create appropriate lookup tables• 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• Back up , shrink, and reindex the database• Send an email upon completion of each package, inform the user if any errors take place• Run the packages every night at midnight

Screen shot of master package• 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

Page 9: James Colby Maddox Business Intellignece and Computer Science Portfolio

SSIS SamplesEmployee Master Package• 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

Page 10: James Colby Maddox Business Intellignece and Computer Science Portfolio

SSIS SamplesClient Grouping Package• 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

Page 11: James Colby Maddox Business Intellignece and Computer Science Portfolio

SSIS SamplesClients Grouping to Client Xref Package• 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

Page 12: James Colby Maddox Business Intellignece and Computer Science Portfolio

SSAS SampleCreate an OLAP Cube using BIDS• Establish a data source with the staging database• Create a data source view that defines the relationships between the dimension and fact tables• Create the cube based on the data source view, define hierarchies for dimensions, define measures for the fact tables• Verify that all hierarchies have appropriate name ids, verify fact tables have appropriate relationships with dimensions• Define Calculated Measures, and KPIs for the Cube• Design partition and aggregations for the cube• Add security roles to the cube

Screen shot of data source view for cube

Page 13: James Colby Maddox Business Intellignece and Computer Science Portfolio

SSAS SampleScreenshot of Cube

Page 14: James Colby Maddox Business Intellignece and Computer Science Portfolio

SSAS SampleScreenshot of Dimension Usage

Page 15: James Colby Maddox Business Intellignece and Computer Science Portfolio

SSAS SampleScreenshot of Partitions and Aggregations

Page 16: James Colby Maddox Business Intellignece and Computer Science Portfolio

MDX SampleQuery Requirements• -- List Hours Worked and Total Labor for each employee• -- including the [All] members• -- for 2005, • -- along with the labor rate (Total labor / Hours worked).

My Answer• --this member will calculated the labor rate by dividing total labor by hours worked• --this member will be calculated first• WITH MEMBER [Labor Rate] AS• [Total Labor]/[Hoursworked], solve_order = 0

• --the hours worked, total labor, and labor rate are displayed on top• SELECT {[Hoursworked], [Total Labor],[Labor Rate]} on columns,• --employees with information will be displayed on the rows• NON EMPTY [Employees].[Full Name].members on rows• FROM [All Works]• --where the year is equal to 2005• WHERE [2005]

Result Correct

Page 17: James Colby Maddox Business Intellignece and Computer Science Portfolio

MDX SampleQuery Requirements- Show jobs in order of purchase amount and then show the-- breakdown in each job of material type (for instance, -- Job A, total purchase amount, amount for fuel, amount for materials,-- amount for petty cash, etc.)in hierarchy order.

-- The general order should be by -- total purchase amount, so that the top of the result set -- shows the jobs that required the highest purchase amounts.-- Display NULLs as $0.00 My Answer--create the sort order for the jobs, the jobs will be sorted by purchase amount in descending orderWITH SET [Ordered Jobs] ASORDER([Job Master].[Description].Children, [Purchase Amount], desc)

--retrieve the purchase amount for the current job and material typeMEMBER [Check Purchase] AS([Purchase Amount], [Job Master].[Description].CurrentMember,[Material Types].[Description].CurrentMember)

--check to see if the purchase amount is null, if its null display 0, else display the amountMember [Purchase Amt] ASiIF ([Check Purchase] = NULL, 0, [Check Purchase])

--display the purchase amount on topSELECT [Purchase Amt] on columns,--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 [Ordered Jobs] * [Material Types].[Description].members on rowsFROM [All Works]Result Correct

Page 18: James Colby Maddox Business Intellignece and Computer Science Portfolio

MDX Sample-- Show Overhead by Overhead Category -- including the [All] members-- for Q3 and Q4 2005,-- and also show the % of change between the two -- alphabetical overhead category WITH

--obtain the Weekly over head for the current overhead category--this member will be calculated firstMEMBER [Current Overhead] AS([Weekly Over Head], [Overhead].[Description].Currentmember), solve_order = 0

--this member retrieves the weekly over head for the current overhead category for Q3--this member will be calculated secondMEMBER [Quarter 3] AS([Current Overhead],[2005 Q3]), solve_order = 1

--this member retrieves the weely over head for the current overhead category for Q4--this member will be calculated thirdMEMBER [Quarter 4] AS([Current Overhead],[2005 Q4]), solve_order = 2

--this member will calculated the percent change between Q3 and Q4MEMBER [% chg] AS--if quarter three has no data, no percent change can be recordediIF ([Quarter 3] = NULL,'N/A',--if quarter three has data, the percent change is calcualted by taking q4 - q3 and dividing by q3([Quarter 4]- [Quarter 3]) / [Quarter 3]), solve_order = 3 ,format_string = 'percent'

--Quarter 4, Quarter 3, and the percent change between the two are displayed on topSELECT {[Quarter 4],[Quarter 3],[% chg]} on columns,--rows that had no data in quarter 4, where null rows, so i removed those rows using this filterfilter( [Overhead].[Description].members ,[Quarter 4] <> NULL) on rowsFROM [All Works]

Page 19: James Colby Maddox Business Intellignece and Computer Science Portfolio

MDX SampleQuery Requirements-- List the jobs that make up the top 30% of total invoice amount -- sorted by descending invoice amount

My Answer--display the invoice amount on topSELECT [Measures].[Invoice Amount] on columns,

ORDER (--dislpay the jobs that make up the top 30% of the total invoice amountTOPPERCENT ([Job Master].[Description].children,30,[Invoice Amount])--sort the top 30 percent by invoice amount in descending order

,[Invoice Amount],desc) on rowsFROM [All Works]

Result Correct

Page 20: James Colby Maddox Business Intellignece and Computer Science Portfolio

Calculated Member SamplesScreen shots of Calculated Members from my SSAS Project

Page 21: James Colby Maddox Business Intellignece and Computer Science Portfolio

Calculated Member Samples

Screen shots of Calculated Members from my BI Team Project

Page 22: James Colby Maddox Business Intellignece and Computer Science Portfolio

KPI samples• Screen shots of KPIs from my SSAS Project

Page 23: James Colby Maddox Business Intellignece and Computer Science Portfolio

KPI Samples• Screen shots of KPIs from my BI Team Project

Page 24: James Colby Maddox Business Intellignece and Computer Science Portfolio

Excel Services SamplesCreate Excel Services reports based on a OLAP cube• Use Excel Services to test out and display KPIs and Calculated Members• Use Excel Services to post reports to Performance Point Server• Use Excel Services to post reports to a Sharepoint site

Screenshot of Excel KPI report from my SSAS Project

Page 25: James Colby Maddox Business Intellignece and Computer Science Portfolio

Excel Services SamplesScreenshot of KPI report for number of jobs serviced for a client

Page 26: James Colby Maddox Business Intellignece and Computer Science Portfolio

Excel Services SamplesScreenshot of KPI report for the overhead percent for each job serviced

Page 27: James Colby Maddox Business Intellignece and Computer Science Portfolio

Excel Services SamplesScreenshot of KPI report for the profit percent for each client

Page 28: James Colby Maddox Business Intellignece and Computer Science Portfolio

SSRS Reporting Services SamplesCreated detailed SSRS reports based on an OLAP Cube or relational database• Create reports from scratch without using the wizard• Create calculations and format data to be displayed on the report• Group and sort data that will be presented on a report• Create drill down, and Matrix reports and display charts representing the data• Implement Security using browser based report manager

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

Screen shot of the Employee Report from my SSRS Project

Page 29: James Colby Maddox Business Intellignece and Computer Science Portfolio

SSRS Reporting Services SamplesScreen shot of the Overhead Report from my SSRS Project

Page 30: James Colby Maddox Business Intellignece and Computer Science Portfolio

PPS-SharePoint Overview• 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

Overview of the work I did for my PPS/Sharepoint project• Created KPI Scorecards based on dimensions, calculated members, and KPIs stored in the cube• Created analytic grids and analytic charts to be displayed on a dashboard• Used MDX to customize reports and charts• Created hotlinks between KPIs and reports• 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• 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

Page 31: James Colby Maddox Business Intellignece and Computer Science Portfolio

SharePoint SampleScreen shot of the Sharepoint site I managed for my team project

Page 32: James Colby Maddox Business Intellignece and Computer Science Portfolio

Computer Science Overview

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.

Audience:• KSU Faculty, Instructors, and peers• Software Developers and Engineers• IT Managers

Coursework Goals:• Achieve strong understanding of programming using object oriented design and other programming

design strategies• Gain a strong understanding of system analysis and design• Learn how to develop database applications• Understand data structure, and operating system principles• Learn how to manage projects

Page 33: James Colby Maddox Business Intellignece and Computer Science Portfolio

Java SamplesJava Programming• 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• Check for syntax, runtime, and logic errors when developing applications• Handle exceptions when they happen and take appropriate steps to handle those exceptions• Comment code so that other people looking at the code knows what is going on

This code will take a new loan object and throw an illegial exception if the loan is invalid

Page 34: James Colby Maddox Business Intellignece and Computer Science Portfolio

Java SamplesThis code manages the size of an array and inserts book objects into the array

Page 35: James Colby Maddox Business Intellignece and Computer Science Portfolio

Java SamplesThis code searches for a word in a string using for loops

Page 36: James Colby Maddox Business Intellignece and Computer Science Portfolio

Java SamplesThis code uses recursion to check if a path on a maze game is valid or invalid

Page 37: James Colby Maddox Business Intellignece and Computer Science Portfolio

C# SamplesProgramming with C#• Design GUI interfaces that interact with classes and their methods to provide the user with a functional application• Design Console applications that take input from a file and process the data and display the results in a command window• 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• 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

• Create applications that can parse and unparse data

Here is a simple console application that takes a file and counts how many lines are in the file

Page 38: James Colby Maddox Business Intellignece and Computer Science Portfolio

C# Samples• 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

Page 39: James Colby Maddox Business Intellignece and Computer Science Portfolio

C# SamplesThis console application will read a file from binary and write a file to binary

Page 40: James Colby Maddox Business Intellignece and Computer Science Portfolio

C# SamplesThis Windows Form Application takes two numbers from the user and displays their sum

Page 41: James Colby Maddox Business Intellignece and Computer Science Portfolio

Visual Basic SamplesProgrammi ng with Visual Basic• Design GUI interfaces that users find easy to use• Use While loops and For loops to process repetitive data when appropriate• Use appropriate data conversions to process data• Use Exception Handling and Validation to handle errors and allow users to operate the application without any problems• Use Listbox, Combo boxes, check boxes, and radio buttons to allow users to selection different options on a form• Use Modules to store methods that other forms can useThis form allows a user to select a state and when the user clicks the button the states bird and abbreviation will be shown

Page 42: James Colby Maddox Business Intellignece and Computer Science Portfolio

Visual Basic SamplesThis form will take user input and calculate ticket cost, an error will be thrown if the input is invalid

Page 43: James Colby Maddox Business Intellignece and Computer Science Portfolio

Visual Basic SamplesThis form allows a user to enter input and select check boxes to compute their cost

Page 44: James Colby Maddox Business Intellignece and Computer Science Portfolio

Visual Basic SamplesThis is my term project, the main form opens up multiple sub forms in order to get a users order

Page 45: James Colby Maddox Business Intellignece and Computer Science Portfolio

Power Shell SamplesProgramming with Power Shell• Design Scripts using Object Oriented Programming• Create Scripts that can filter data coming through a pipe line• Create Scripts that use functions to repeat repetitive task• Create Scripts that handles error exceptions if they take place• Create Scripts that takes a user’s input and checks to see if the input is valid

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

Page 46: James Colby Maddox Business Intellignece and Computer Science Portfolio

Power Shell SamplesThese 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

Page 47: James Colby Maddox Business Intellignece and Computer Science Portfolio

Power Shell SamplesThis script takes a user’s input, and if the input is correct, displays a knock knock joke

Page 48: James Colby Maddox Business Intellignece and Computer Science Portfolio

SQL/database design SamplesThe following screenshots are of design documents I created to display how I was going to set up my SQL database for my class project

Table Layout Document

Page 49: James Colby Maddox Business Intellignece and Computer Science Portfolio

SQL/database design SamplesE-R Diagram

Page 50: James Colby Maddox Business Intellignece and Computer Science Portfolio

SQL/database design SamplesExecutive Summary