a systems approach to constructing a fact book information system nick roberts soham bhatt get your...
TRANSCRIPT
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.
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
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 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 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
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
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