Help:COAP-3180
<pageby nominor="false" comments="false"/>
Introduction
Disclaimer: This is a resource page for my Spring 2010 I Web Databases course (COAP 3180) at Webster University, Geneva. This page does neither replace the official syllabus nor the information in the official learning management system (WorldClassroom/Blackboard). It allows students to navigate more efficiently through the materials in this wiki.
The program and materials are provisional and will be adjusted on a weekly basis.
Course level outcomes
At the completion of this course students will be able to:
- Add a Webpage Database to an HTML page
- Manipulate data using SQL operations
- Publish both static and dynamic data on the Web
- Convert text files to XML databases
- Be able to query XML data using XQuery
- Be able to work with relational data as XML
These outcomes defined in the syllabus can be translated to more practical outcomes:
- Use simple Web 2.0 database services and integrate it into a webpage.
- Manipulate data using SQL operations and create simple SQL databases in a DBMS.
- Understand the architecture of a simple web application (HTML client / Web server / Script / Database).
- Be able use a LAMP/WAMP software bundle and to install and to configure web applications, e.g. a CMS. This can evolve into a term project.
- Generate a very simple web application that can connect to a database management system (DBMS) though an ODBC API.
- Understand/recall XML basics, like converting text files and database output to XML, editing an XML file using a schema and displaying XML data.
- Be able to query and update XML data files and XML Databases using XQuery dand XQuery Update.
- Understand the general architecture and purpose of LDAP address and authentication servers and light-weight solutions like OpenID.
Current weekly program
Week 7 - COAP 3180
Topics Covered
- Termproject - Getting it done with Wordpress
- XQuery (follow-up)
- Digital identities
Classroom activities Monday
- Installing the cformsII plugin for Wordpress as explained in Using the CformsII plugin to collect and display data
- Recall of FLOWR principles. Some Xquery practice with the following URLs
- http://www.dbis.informatik.uni-goettingen.de/Mondial/mondial.xml
- http://www.cafeconleche.org/examples/shakespeare/ (on of the Hamlet files, you may its zip from OASIS
- Visit of eXist database home (if time left)
Classroom activities Wednesday
- First hour
- talk and some visits/demos
- A tour of identity and authentication on the web issues
- Get an OpenID from https://www.myopenid.com/ and configure
- Find a service where you can login with this OpenID
- Identity management and privacy
- Have a look at what Internet knows about you: http://123people.com (select the right country)
- Get an XRI (i-name) from http://www.freexri.com/ and configure
- LDAP (local) and Shibboleth (nation-wide, based on SAML)
- How it works (UK Access federation)
- Look at Shibboleth video
- Second hour
- Exam Q/A
- Work on Term project Q/A
Homework 6
Task
- Create three XQuery scripts that extract three different data from a single large XML File.
- You are expected to use at least simple FLWR expressions like the following one:
<result>
{ for $t in
fn:doc("http://tecfa.unige.ch/guides/xml/examples/shakespeare.1.10.xml/hamlet.xml")//ACT//SCENE/TITLE
return $t }
</result>
- You will get a better grade if you render in HTML, e.g.
xquery version "1.0";
let $source_doc := fn:doc("http://tecfa.unige.ch/guides/xml/examples/shakespeare.1.10.xml/hamlet.xml")
return
<html>
<head> <title>Questionnaire Items</title> </head>
<body>
Acts of Hamlet
<ol>
{ for $t in $source_doc//ACT//SCENE/TITLE
return
<li> {$t/text()} </li>
}
</ol>
</body>
</html>
... you will get an A if your are somewhat original and/or if you produce more complex queries.
Submission Dates
- This homework is due at start of Monday lesson, week 8.
- Students must provide three XQuery scripts plus a copy of the XML file.
- Each homework counts 10% in your global evaluation. The four best homeworks will be taken into account.
Evaluation
- Three working scripts
- Complexity of the query
- Rendering quality, e.g. you get a bonus if you render in a (X)HTML page.
Tips for the homework
- Read my handout first, you may need to find some extra reading.
- If you use the XQuery USE ME plugin, set the Output file ext. to html !
Links and teaching materials XQuery
- Online software
- XQuery USE ME (XqUSEme) Firefox plugin, which is based on the (serious) Saxon B engine.
- Teaching materials
- XPath tutorial - basics (exam topic, must know partly)
- XQuery tutorial - basics (exam topic, must know)
- Optional reading
- Darshan Singh, Essential XQuery - The XML Query Language (currently broken ?)
- XQuery (Wikipedia)
- XQuery: A Guided Tour - Download the free tutorial today. This is an 80-page tutorial from the XQuery from the Experts: A Guide to the W3C XML Query Language book by Howard Katz, Don Chamberlin, Denise Draper, Mary Fernandez, Michael Kay, Jonathan Robie, Michael Rys, Jerome Simeon, Jim Tivy, and Philip Wadler, (ISBN 0-321-18060-7), 2004.
- XQuery (Wikibooks, for the ambitious).
Links and teaching materials Digital identity
- Web IDs and authentication Digital identity, OpenID, i-name
- Institutional authentication single sign-on, LDAP, Shibboleth (Wikipedia)
Week 8 - COAP 3180
Term project presentation
(Monday)
- See term project page
Summary
(Monday)
- Final lecture, reminder of the most important subjects addressed etc.
Final exam
- The exam will be a paper exam with MCQ's, open questions, code repair and completion, etc.
- Open book (any resource you like including the Internet)
Main subjects:
(1) High level web application principles
- Simple web application architectures (tiers)
- Kinds of databases
(2) Practical know how
- Using web services to create "mini-databases"
- Using widgets
- Creating simple HTML Web Forms
- Using a WAMP server (Mowes)
- CMS/CMF installation and configuration
- Database administration with PHPMyAdmin
- Simple reuse of PHP code, i.e. you may be asked to change "parameters"
(3) SQL:
- SELECT
- SELECT ... WHERE, INSERT ... ORDER
- Joins (select from two tables)
- CREATE
- Data types: Integer, Float, VarChar, text
- DEFAULT, NOT NULL, Auto increment
- Keys
- Primary keys
- Foreign keys
- INSERT (both forms)
- UPDATE / DELETE
- DROP
(4) Relational database design:
- Simple 2-3 table architectures
- 1 to N and N to N relations between tables
- Be able to read a diagram that summarizes table fields and shows relations (as in the Wordpress installation and configuration example).
(5) XML
- Be able to edit/fix well-formed XML files
- XSLT: Simple use of templates (definition and applying), html page generation
- Simple use of XPath expressions (finding nodes and attributes, extracting text, identifying a position). XPath is used both by XSLT and XQuery.
- XQuery: Simple FLOWR expressions, html page generation
(6) Identity and authentication (high-level principles)
Not included:
- PHP programming, e.g. writing for loops and other algorithms
- XSLT and XQuery functions and other more advanced programming constructs
List of all Coap 3180 pages
Weekly programs
- Help:COAP-3180/week1
- Help:COAP-3180/week2
- Help:COAP-3180/week3
- Help:COAP-3180/week4
- Help:COAP-3180/week5
- Help:COAP-3180/week6
- Help:COAP-3180/week7
- Help:COAP-3180/week8
- Help:COAP-3180/term project
- Help:COAP-3180/template (instructor only)
Most important wiki pages
The COAP 3180 lecture notes page allows you to get the whole lot of wiki pages in a single PDF. Of course, some contents will not be tested in exams. In particular, there will be no PHP and no XML DTD/Schema questions. Mid-term will focus on SQL. The final exam will add XML, XSLT and Xquery plus some minor topics.
The following list may not be complete. Also, some subject require extra reading (see the weekly programs).
- Creating websites with online services
- Using web widgets
- web application
- Portalware
- content management system
- Web application framework
- web hosting service
- Wordpress installation and configuration
- SQL and MySQL tutorial
- XML
- DTD tutorial (understand how to use/read a DTD only)
- XSLT Tutorial - Basics
- XPath tutorial - basics (parts only)
- PHP tutorial - basics (not exam subject)
- PHP-MySQL tutorial -basics (not an exam subject)
- PHP - MySQL - XML tutorial - basics (must be able to use this)
- XQuery tutorial - basics
- digital identity
- OpenID
- i-name
Other teaching resources
- webdatabases-intro.pdf (revised version, Monday week 8)
- mysql-intro.pdf but SQL and MySQL tutorial is better reading.
- php-mysql.pdf but PHP tutorial - basics and PHP-MySQL tutorial -basics is better reading (quality for both slides and wiki articles is not great, consider reading one of the tutorials suggested on the week 4 page)
- xslt-basics.pdf. XSLT Tutorial - Basics is better reading.
Most important software
- Some online services like Zoho and Netvibes.
- Modular Webserver System
- A text editor, e.g. Notetab light
- PHP Generator for MySQL (Maestro)