Crs 594
Building Database Driven Web Sites with Perl, Apache, MySQL/PostgresSQL and Linux

I've put this course together in response to requests from clients for a course that, in five days, could train staff from a variety of programming, database and web design backgrounds to develop database driven internet and intranet sites. This course is the result.

It covers the essentials of all the technologies listed at a sufficient level to enable those who complete the course to make sense of existing web sites they may be working on, to develop their own web sites, and to serve as a starting point for more ambitious projects.

Course Outline Ctd.

Serving Dynamic Content via Apache

  • Technical overview of Apache and how it is configured
  • Technical overview of the Common Gateway Interface (CGI)
  • Configuring httpd (the Apache server daemon) to process CGI scripts - AddHandler and SetHandler directives
  • mod-perl
  • Server Side Includes - enabling and configuring

Intensive overview of HTML and XHTML

  • Structure of an HTML document
  • Text and Images
  • Forms and form processing
  • Tables
  • Frames

Using Perl to process Forms and to generate Web pages

  • Perl scripts to generate simple HTML pages
  • Perl scripts to generate static web sites from information held in flat file databases
  • The Perl CGI module - and form processing

Intensive overview of Relational Databases, SQL , MySQL and PostgresSQL

  • Tables, columns (attributes) and rows (records)
  • Entity, Attribute, Relationship model
  • Keys - Primary keys, Foreign keys and capture of relationships
  • Introduction to SQL syntax for retrieving, altering and deleting information from database tables
  • Queries spanning more than one table - joins
  • Queries containing subqueries
  • Transactions
  • Introduction to SQL syntax for creating databases and tables

Using Perl to access non relational databases

  • Working with delimited or fixed-width field flat file databases
  • AnyDBM_File
  • Storable
  • Data::Dumper

DBI

  • Architecture
  • Connecting to the database
  • Handling Errors
  • Retrieving data
  • Inserting new data
  • Updating existing data
  • Working with LONG/BLOB data types
  • Transaction handling

Accessing the database via CGI scripts

  • Using an HTML form as an interface to query the database
  • Constructing SQL queries from submitted form data
  • Constructing an HTML table to display the query result
  • Using forms to submit data to the database
  • Maintaining state information - cookies, hidden fields

Intended Audience

The course is intended programmers, database administrators, web designers, web administrators and project managers who need an integrated overview of constructing a database driven web site based on widely used open source technologies

Attendees are required to have a reasonable level of programming experience, to be familiar with the web and working in a Unix environment, to have a basic knowledge of relational databases.

Key Skills

  • basic Apache configuration
  • competence in reading and modifying Perl scripts, ability to develop moderately complex Perl applications
  • knowing your way round mySQL and PostgresSQL
  • ability to develop moderately complex SQL queries
  • setting up and maintaining a database driven web site

Practical Work

The exercises follow the presentation closely. Their purpose is to foster confidence by doing, and by understanding and modifying templates.

Each workstation will be running Linux, and have Apache, Perl, mySQL and PostgresSQL installed.

  • Understand and modify an Apache configuration
  • Install a website on an Apache server
  • Understand and install mod_perl
  • Write Perl programs for reading and writing data to both files and standard I/O
  • Understand HTML tables and implement a Perl program that constructs a display record table dynamically
  • Develop and refresh SQL skills by interacting with mySQL and PostgresSQL via GUI and command line interfaces
  • Use the Perl DBI module to query and modify an e-commerce oriented database
  • Implement forms for querying a mySQL or PostgresSQL database
  • Implement a Perl and database driven mini e-commerce site.
  • Course outline

    Overview of the Internet and Web Technologies

    • Web Servers, Web Browsers and the HTTP protocol
    • Overview of Apache
    • Overview of the Common Gateway Interface (CGI)
    • Overview of the three tier model

    The essentials of Perl

    • Scalar, vector and hash variable types
    • Operators
    • Functions and subroutines
    • Input/Output (I/O) and File I/O in Perl
    • References and anonymous references