A Systems Approach to Constructing a Fact Book Information System Nick Roberts Soham Bhatt Get Your...

40
A Systems Approach to A Systems Approach to Constructing a Fact Book Constructing a Fact Book Information System Information System Nick Roberts Nick Roberts Soham Bhatt Soham Bhatt Get Your Fact Book

Transcript of A Systems Approach to Constructing a Fact Book Information System Nick Roberts Soham Bhatt Get Your...

A Systems Approach to A Systems Approach to Constructing a Fact Book Constructing a Fact Book

Information SystemInformation System

Nick RobertsNick Roberts

Soham BhattSoham Bhatt

Get Your

Fact Book

Define the term “Fact Book” Define the term “Fact Book”

Old problems Old problems

New goals & issues New goals & issues How it works How it works

AgendaAgenda

What is a Fact Book?What is a Fact Book?

A Fact Book is a compendium of statistical data, trend analyses, and interpretative highlights on a wide variety of topics pertaining to the operation of the institution. Its contents are designed to inform its readers, answer the most frequently asked questions about the institution, and support institutional planning and evaluation.

A Fact Book is a compendium of statistical data, trend analyses, and interpretative highlights on a wide variety of topics pertaining to the operation of the institution. Its contents are designed to inform its readers, answer the most frequently asked questions about the institution, and support institutional planning and evaluation.

KSU 2002 Fact BookKSU 2002 Fact Book

KSU 2002 Fact BookKSU 2002 Fact Book

Wide variety of data sources Wide variety of data sources

Data translations among systems Data translations among systems

Errors and inconsistency Errors and inconsistency Proofing Proofing

The ProblemsThe Problems

Data ownership Data ownership

Data Integrity Data Integrity

Design Flexibility Design Flexibility

Web & PDF Output Web & PDF Output One Year Deadline One Year Deadline

Fact Book Project GoalsFact Book Project Goals

Repeatable Process Repeatable Process

Fact Book Best PracticesFact Book Best Practices

Searched for Fact Book best practices in IR shops.

Found standard PDF and ugly HTML.

Searched for Fact Book best practices in IR shops.

Found standard PDF and ugly HTML.

Miracle

DynamicData

DynamicData

Hard CopyData

Hard CopyData

StyleStyleGraphsGraphs

Archiving Design Flexibility Standards

Presentation Colors Dynamic Data

Web & PDF Accessibility Navigation

Ownership Sharing & Reuse Formats

Fact Book – The Big PictureFact Book – The Big Picture

Data GatheringData Gathering

The Fact Book is a historical snap shot, so numbers are not constantly updated.The Fact Book is a historical snap shot, so numbers are not constantly updated.

Solution to multiple data sources: gather data into a centralized location. Extract this data during the Fact Book creation process.

Solution to multiple data sources: gather data into a centralized location. Extract this data during the Fact Book creation process.

We used Oracle, but any DBMS will work.

We used Oracle, but any DBMS will work.

Aggregate DataAggregate Data

Instead of…Instead of…TERM CRN ID GRAD

E

200308

13424

431567485

A

200308

12154

431567485

B

200308

13477

431567485

A

200308

15261

431567485

B

200308

13424

252468417

B

200308

12558

252468417

C

200308

14424

252468417

B

200308

13424

252468417

B

200308

13424

251542286

D

Traditional transaction processing systems consist of hundreds of tables of data. Historically, it is quite difficult to maintain snapshot data in such systems.

For example, a student with an ID of 431567485 earned a grade of A for the course registered as 13424 in the term coded 200308.

Traditional transaction processing systems consist of hundreds of tables of data. Historically, it is quite difficult to maintain snapshot data in such systems.

For example, a student with an ID of 431567485 earned a grade of A for the course registered as 13424 in the term coded 200308.

Aggregate DataAggregate Data

We have…We have… Our centralized “data mart” contains a year, data code, and data value. We can extract a snapshot number at any time from the date it is captured.

Our centralized “data mart” contains a year, data code, and data value. We can extract a snapshot number at any time from the date it is captured.

YEAR DATA_CODE DATA_VALUE

TM_200308 STU_HEADCOUNT 13158

TM_200208 STU_HEADCOUNT 12544

TM_200108 STU_HEADCOUNT 12013

FY_2004 BGT_TOTAL 112324226

FY_2003 BGT_TOTAL 108554979

FY_2002 BGT_TOTAL 104315336

For example, in Fall Semester 2003, the total student headcount at KSU was 13,158.For example, in Fall Semester 2003, the total student headcount at KSU was 13,158.

Fact Book ERDFact Book ERD

FB_HGT

PK,FK1 YEAR_CODEPK,FK1 PAGE_IDPK HGT_ID

HGT_VALUEEFFDT

FB_COMP_TYPE

PK COMP_CODE

COMP_DESCUSER_COMMENTBANN_CODEEFFDT

FB_PAGE

PK,FK1 YEAR_CODEPK PAGE_ID

PAGE_NUMBERSEC_IDTITLEGRAPHEFFDTPAGE_SOURCETITLE_TOC

FB_COMP_VALUE

PK,FK3 YEAR_CODEPK,FK2 DATA_CODEPK,FK1 COMP_CODE

COMP_VALUEEFFDT

FB_CTRL_TYPE

PK CTRL_CODE

CTRL_DESC

FB_YEAR_CTRL

PK,FK2 YEAR_CODEPK,FK1 CTRL_CODE

FB_DATA_TYPE

PK DATA_CODE

DATA_DESCUSER_COMMENTEFFDT

FB_YEAR_TYPE

PK YEAR_CODE

YEAR_DESCFY_CODE

FB_DATA_VALUE

PK,FK2 YEAR_CODEPK,FK1 DATA_CODE

DATA_VALUEEFFDT

FB_FOOT

PK,FK1 YEAR_CODEPK,FK1 PAGE_IDPK FOOT_ID

FOOT_VALUEEFFDT

FB_COLL_MAJR_TYPE

PK,FK2 YEAR_CODEPK,FK1 COMP_CODEPK COLL_CODE

DEPT_CODEEFFDTDEGR_LEVL

Extract

Data ETL ProcessData ETL Process

Banner

FBSchema

ExtractSIRS

Data ETL ProcessData ETL Process

Since we had Oracle as our DBMS, we used PL/SQL for the extract/transform/load process. There are alternatives, such as:

Since we had Oracle as our DBMS, we used PL/SQL for the extract/transform/load process. There are alternatives, such as:

Java Java

C++ C++

Visual Basic Visual Basic And many more… And many more…

Miracle

DynamicData

DynamicData

Hard CopyData

Hard CopyData

StyleStyleGraphsGraphs

Archiving Design Flexibility Standards

Presentation Colors Dynamic Data

Web & PDF Accessibility Navigation

Ownership Sharing & Reuse Formats

Fact Book – The Big PictureFact Book – The Big Picture

External Data GatheringExternal Data Gathering

IR Team

Budget Financial Aid

HistoricalFaculty

Excel

Incompetent Ann

Crystal Report

No Response Jake

Hard Copy

Slow Sophia

Access

Fiesty Frank

Data Entry

Data Insertion ProcessData Insertion Process

FBSchema

ExternalData

Data Entry FormsData Entry Forms

We built data entry forms for all external data. There were a few issues:We built data entry forms for all external data. There were a few issues:

Security Security

Design Flexibility Design Flexibility

Error Checking Error Checking Input Validation Input Validation

Abstract FB year from end user Abstract FB year from end user

Data Entry FormsData Entry Forms

Our web-based data entry forms were constructed using VB.NET in Visual Studio .Net, but there are numerous alternatives, such as:

Our web-based data entry forms were constructed using VB.NET in Visual Studio .Net, but there are numerous alternatives, such as:

Java Java

C++ C++

Oracle Forms Oracle Forms Oracle Portal Oracle Portal

Active Server Pages Active Server Pages

And many more… And many more…

Miracle

DynamicData

DynamicData

StyleStyleGraphsGraphs

Archiving Design Flexibility Standards

Presentation Colors Dynamic Data

Web & PDF Accessibility Navigation

Ownership Sharing & Reuse Formats

Hard CopyData

Hard CopyData

Fact Book – The Big PictureFact Book – The Big Picture

GraphsGraphs

Macromedia Fireworks Macromedia Fireworks Harvard Graphics Harvard Graphics

Microsoft Excel Microsoft Excel Adobe Illustrator Adobe Illustrator

Dynamic Dynamic

High Quality High Quality

Web and PDF Compatibility Web and PDF Compatibility JPEG Format JPEG Format

Scalable Vector Graphics Scalable Vector Graphics

Adobe IllustratorAdobe Illustrator

Decided to create static graphs in Illustrator.Decided to create static graphs in Illustrator.

Used a color palette of no more than six colors.Used a color palette of no more than six colors.

Saved the output in JPEG format.Saved the output in JPEG format.

Illustrator is qwirky, and it has limitations for our use.Illustrator is qwirky, and it has limitations for our use.

Miracle

DynamicData

DynamicData

StyleStyleGraphsGraphs

Archiving Design Flexibility Standards

Presentation Colors Dynamic Data

Web & PDF Accessibility Navigation

Ownership Sharing & Reuse Formats

Hard CopyData

Hard CopyData

Fact Book – The Big PictureFact Book – The Big Picture

Data Extract

Data Extraction ProcessData Extraction Process

FBSchema

HTML& PDF

Data StylingData Styling

Active Server Pages (ASP) Active Server Pages (ASP) Java Server Pages (JSP) Java Server Pages (JSP)

PHP: Hypertext Preprocessor (PHP) PHP: Hypertext Preprocessor (PHP)

Goal: Separate content from presentationGoal: Separate content from presentation

Navigation Navigation

Accessibility Accessibility

Oracle PL/SQL Oracle PL/SQL

Design Flexibility Design Flexibility

Cold Fusion Cold Fusion

Browser Independence Browser Independence

Data StylingData StylingSolution: XML + XSL = HTMLSolution: XML + XSL = HTML

FBSchema

XML

XSL Miracle HTML

What is XML?What is XML?

Extensible Markup Language, abbreviated XML, describes a class of data objects called XML documents and partially describes the behavior of computer programs which process them.

Extensible Markup Language, abbreviated XML, describes a class of data objects called XML documents and partially describes the behavior of computer programs which process them.

XML documents are made up of storage units called entities, which contain either parsed or unparsed data. Parsed data is made up of characters, some of which form character data, and some of which form markup. Markup encodes a description of the document's storage layout and logical structure. XML provides a mechanism to impose constraints on the storage layout and logical structure.

XML documents are made up of storage units called entities, which contain either parsed or unparsed data. Parsed data is made up of characters, some of which form character data, and some of which form markup. Markup encodes a description of the document's storage layout and logical structure. XML provides a mechanism to impose constraints on the storage layout and logical structure.W3C: http://www.w3.org/TR/2004/REC-xml-20040204

An XML ExampleAn XML Example

XML CreationXML Creation

We used PL/SQL to generate the XML, but there are other alternatives, such as:We used PL/SQL to generate the XML, but there are other alternatives, such as:

Java Java

Visual Basic Visual Basic

C# C# And others… And others…

What is XSL?What is XSL?

Extensible Stylesheet Language, abbreviated XSL, is a family of recommendations for defining XML document transformation and presentation. An XSLT stylesheet specifies the presentation of a class of XML documents by describing how an instance of the class is transformed into an XML document that uses a formatting vocabulary, such as (X)HTML.

Extensible Stylesheet Language, abbreviated XSL, is a family of recommendations for defining XML document transformation and presentation. An XSLT stylesheet specifies the presentation of a class of XML documents by describing how an instance of the class is transformed into an XML document that uses a formatting vocabulary, such as (X)HTML.

W3C: http://www.w3.org/TR/xslt

An XSL ExampleAn XSL Example

Miracle

DynamicData

DynamicData

Hard CopyData

Hard CopyData

StyleStyleGraphsGraphs

Archiving Design Flexibility Standards

Presentation Colors Dynamic Data

Web & PDF Accessibility Navigation

Ownership Sharing & Reuse Formats

Fact Book – The Big PictureFact Book – The Big Picture

What is the Miracle?What is the Miracle?

ASP.NET makes building real world Web applications dramatically easier.ASP.NET makes building real world Web applications dramatically easier.

Microsoft: http://msdn.microsoft.com/asp.net

The .NET framework has a built-in component for combining XML documents with XSL stylesheets to create HTML output. It is included with a Windows 2000 web server.

The .NET framework has a built-in component for combining XML documents with XSL stylesheets to create HTML output. It is included with a Windows 2000 web server.

ASP.NETASP.NET<script runat="server"> Dim secId As String Dim pageId As String Dim subId As String

Sub Page_Load secId = Request.QueryString("secid") pageId = Request.QueryString("pageid") subId = Request.QueryString("subid")

Dim xslArg as XsltArgumentList = new XsltArgumentList()

xslArg.AddParam("secid", "", secId) xslArg.AddParam("pageid", "", pageId) xslArg.AddParam("subid", "", subId)

fb_toc_xml.DocumentSource = "../fb_2004_toc.xml" fb_toc_xml.TransformSource = "../fb_2004_toc.xsl"

fb_toc_xml.TransformArgumentList = xslArg

fb_page_xml.DocumentSource = "../fb_2004_" & secid & ".xml" fb_page_xml.TransformSource = "../fb_2004.xsl"

fb_page_xml.TransformArgumentList = xslArg End Sub</script>

<script runat="server"> Dim secId As String Dim pageId As String Dim subId As String

Sub Page_Load secId = Request.QueryString("secid") pageId = Request.QueryString("pageid") subId = Request.QueryString("subid")

Dim xslArg as XsltArgumentList = new XsltArgumentList()

xslArg.AddParam("secid", "", secId) xslArg.AddParam("pageid", "", pageId) xslArg.AddParam("subid", "", subId)

fb_toc_xml.DocumentSource = "../fb_2004_toc.xml" fb_toc_xml.TransformSource = "../fb_2004_toc.xsl"

fb_toc_xml.TransformArgumentList = xslArg

fb_page_xml.DocumentSource = "../fb_2004_" & secid & ".xml" fb_page_xml.TransformSource = "../fb_2004.xsl"

fb_page_xml.TransformArgumentList = xslArg End Sub</script>

ASP.NETASP.NET

<html> <body><form runat="server"> <asp:Xml id="fb_toc_xml" runat="server"/> <asp:Xml id="fb_page_xml" runat="server"/></form></body></html>

<html> <body><form runat="server"> <asp:Xml id="fb_toc_xml" runat="server"/> <asp:Xml id="fb_page_xml" runat="server"/></form></body></html>

Not a Microsoft Fan?Not a Microsoft Fan?

Microsoft’s .NET framework is not the only solution for combining XML and XSL into HTML.Microsoft’s .NET framework is not the only solution for combining XML and XSL into HTML.

Apache: http://cocoon.apache.org

The Apache organization offers Cocoon, a web development framework built around the concepts of separation of concerns and component-based web development. For more info, visit http://cocoon.apache.org.

The Apache organization offers Cocoon, a web development framework built around the concepts of separation of concerns and component-based web development. For more info, visit http://cocoon.apache.org.

ASP.NET

DynamicData

DynamicData

Hard CopyData

Hard CopyData

StyleStyleGraphsGraphs

Archiving Design Flexibility Standards

Presentation Colors Dynamic Data

Web & PDF Accessibility Navigation

Ownership Sharing & Reuse Formats

Fact Book – The Big PictureFact Book – The Big Picture

Future ImprovementsFuture Improvements

Dynamic PDF Output Dynamic PDF Output

Easier Graph Manipulation Easier Graph Manipulation Proofing Proofing

The EndThe End

Questions?Questions?

Comments?Comments?

Angry Outbursts?Angry Outbursts?

Thanks to Dr. Randy Hinds for the use of some of his PowerPoint graphics.

Thanks to Dr. Randy Hinds for the use of some of his PowerPoint graphics.