tech bug webinar blackboard learn opendb
DESCRIPTION
This is George Kroner's powerpoint from March 15th's inaugural TechBUG webinar on OpenDB.TRANSCRIPT
TechBUG Inaugural webinar: Blackboard’s Open Database March 15, 2011
Intro to TechBUG
History of TechBUG• SysBUG or “System Administrator” BUG started in
2009• Driven by the need that System Administrator need to
rely upon each other to get insights and helpful tips• Feb. 2011 – Teamed up with the Developer Community
leaders to deliver a broader scope of content to both groups: developers as well as system administrators
• Who is this group for?• Blackboard Administrator• Building Block Developers• Database Administrators• Directors of Information Technology• eLearning Coordinators/Technologists
Who are we?Tim Boshart (pronounced Bose-sart)Blackboard Administrator at Univ. of Oregon w/ 21,000 studentsOriginally a Blackboard “Classic” institution, now running on 9.1Over 10 years running Blackboard since CourseInfo 1.5Running on Linux systemWhen not working with computers I can often be found at aBaseball game or working on an 18” gauge railroad
Bryan FendleyDirector of Academic Computing at Univ. of Arkansas, Monticello w/ 3,485 studentsOriginally a CE institution, now running on 9.110 years running WebCT/BlackboardRunning a Solaris systemPast Texas State Champion Cross Country Motocross Racer
Open DatabaseThe Open Database is all about enabling
client access to and understanding of the data and structures necessary to more effectively and efficiently:
• Develop System Tools and Modules• Build reports for Determining Usage and Adoption• Perform Diagnostics• Activity Forensics/Reconstruction• Assess Performance
Accessing the Open Database Documentation requires acceptance of a license addendum which states the allowed activities pertaining to the client’s Blackboard Learn™ database. In short altering of the database beyond using Blackboard Building Block™ APIs is not allowed; Read access using external tools is now allowed.
http://bit.ly/cFXPcb
The Blackboard® Database
BBLEARN_admin Configuration values and legacy configuratios
BBLEARN The “guts” of the application – all tables related to end user functionality are in this schema
BBLEARN_stats A secondary schema to store data for reporting – most of the data is copied from BBLEARN
BBLEARN_cms An administrative database for Xythos – storing “document store” definitions, “principal” definitions, etc.
BBLEARN_cms_doc The Xythos “document store” – storing actual file metadata
Embedded Comments
select t.name, c.name, p.value from sys.extended_properties p left outer join sys.tables t on p.major_id = t.object_id left outer join sys.columns c on p.major_id = c.object_id and p.minor_id = c.column_id where t.name like 'activity%' and p.name = 'MS_Description'
select * from user_tab_comments where table_name = 'MY_TABLE'
Oracle
SQL Server
Embedded Comments…
2 - Extensible Schema
• Blackboard Building Blocks™ may install schema elements
• Schema installation uses the same definitions as core code – schema.xml, etc.
http://bit.ly/hYpSvf
3 - Reporting
Built In ReportsCourse and Tool Level
Track views and activities at the course and tool levelView usage at a course by course basis
Content LevelGrade bookSystem ReportsTextbook Reports
Common Use Cases and NeedsExplore Usage and Adoption
Tool UsagePerformance Management and PlanningInstructor and Student AdoptionAssess Programs and PerformanceBlackboard Outcomes AssessmentData Diagnostics – e.g. what is going on with my dataForensics / Reconstruction –e.g. what did this user do
Models, methods, and measurement metrics
Who logs in the mostWho access the most pagesWho teaches the most coursesWho adds or accesses the most contentWho uses the most available tools
o Basic numberso Thresholds o Trendso Patternso Activity streams
Easier
More difficult, but more interesting
Examples:
LoginsContentDiscussion forumsEnrollmentsToolsPage hitsQuestions:
bb_bb60 vs BBLEARN?_stats (eg: bb_bb60_stats) is populated when you run PurgeAccumulator.sh/.batActivity_accumulator_queue (flushed every 10 mins)
Logins & Page Hits
activity_accumulatorevent_type (LOGIN_ATTEMPT, PAGE_ACCESS)user_pk1timestamp
userspk1user_idinstitution_roles_pk1institution_rolespk1role_namedescriptionrole_id
Logins & Page Hits (examples)Obtain total logins for a given time period
SELECT count(*) FROM activity_accumulator WHERE event_type = 'LOGIN_ATTEMPT' ANDtimestamp BETWEEN
convert(datetime, '2011-01-01', 120) AND convert(datetime, '2011-02-28', 120)
SELECT count(*) FROM activity_accumulator WHERE event_type = 'LOGIN_ATTEMPT' AND timestamp BETWEEN to_date('2011-01-01','YYYY-MM-DD HH24:MI:SS') AND
to_date(‘2011-02-28','YYYY-MM-DD HH24:MI:SS')
MS SQL
Oracle
• Obtain total # users who logged in on a given daySELECT count(*) FROM users WHERE last_login_date BETWEEN convert(datetime, '2011-02-27', 120) ANDconvert(datetime, '2011-02-28', 120)
• Obtain total # page hits on a given daySELECT count(*) FROM activity_accumulator WHERE event_type = 'PAGE_ACCESS' AND timestamp BETWEEN convert(datetime, '2011-02-27', 120) ANDconvert(datetime, '2011-02-28', 120)
Logins & Page Hits...
Contentcontent_handlers
pk1handleName
course_content_handlerscrsmain_pk1content_handlers_pk1available_ind
course_contentspk1cnthndlr_handledtcreateddtmodifiedcrsmain_pk1available_indtitleparent_pk1
course_contents_fileslinks course_contents to files
filesstorage_type (CS or LOCAL)file_namelink_namefile_sizecourse_mainpk1...
Content
Obtain total content count by typeSELECT count (*)
FROM course_contents WHERE cnthndlr_handle = 'resource/x-bb-document'Obtain content added in the past day
SELECT count(*) FROM course_contents WHERE dtcreated BETWEEN convert(datetime, '2011-02-27',
120) ANDconvert(datetime, '2011-02-28', 120)
Discussion forums
Conference_mainForum_main (course-level, group-level)
Msg_main (parent-child relationship for replies)
Example:Obtain total messages
SELECT count(*) FROM msg_main
Enrollmentsuserscourse_maincourse_users
Links pk1 of users and courses tables
course_rolesExample (enabled instructor enrollments)
SELECT COUNT(DISTINCT users.pk1) FROM course_users, users WHERE course_users.row_status = 0 AND course_users.available_ind = 'Y' AND course_users.role IN ('B', 'G', 'P',
'T') AND users.pk1 = course_users.users_pk1 AND users.row_status = 0 AND users.available_ind = 'Y'
Tools
navigation_itemapplication (indicator of product subsystem)internal_handle
course_navigation_iteminternal_handleenabled_ind
applicationpresence of plugins_pk1 indicates a Building Block
Blogs, journals, groups Others have relevant data beyond on/off – but in their own tables
Activity Streams (example)User streams
SELECT pk1, event_type, user_pk1, course_pk1, timestamp, data FROM activity_accumulator
WHERE user_pk1 IS NOT NULLORDER BY user_pk1, timestamp
Course streamsSELECT pk1, event_type, user_pk1, course_pk1,
timestamp, data FROM activity_accumulator WHERE course_pk1 IS NOT NULL ORDER BY course_pk1, timestamp
STOP DO NOT run in production without limiting query
Tools to help (pick the right one)
SQL Server Management StudioOracle SQL Developer Aqua Data StudioBlackboard-specific development
SQL Server Management Studio
Oracle SQL Developer
Aqua Data Studio
Blackboard-specific: ASTRO http://bit.ly/9gim3j
Suggested Topics for Future Meetings
• Open Database (today)• Navigating Behind the Blackboard• Leveraging Reports • Troubleshooting Logs• ??? Tim? Bryan?
• Next topic: May 17th 11am EDT, Save the Date – Upgrading your Building Blocks
Participate in our site on Connections• Log in with your Behind
the Blackboard account at:
http://connections.blackboard.com
• Got a webinar topic
suggestion? Visit: http://tinyurl.com/techbugsuggest
Suggested Topics for Future Meetings
• Open Database (today)• Navigating Behind the Blackboard• Leveraging Reports • Troubleshooting Logs• How Secure Is Your E-learning Environment?
• Next topic: May 17th 11am EDT, Save the Date – Upgrading your Building Blocks
Participate in our site on Connections• Log in with your Behind
the Blackboard account at:
http://connections.blackboard.com
• Got a webinar topic
suggestion? Visit: http://tinyurl.com/techbugsuggest