CPSC 343 Database Theory and Practice Fall 2006

CPSC 343 Syllabus

 AssignmentsImportant Dates

Week 1: 8/28-9/1

Topics: introduction, data modeling (ER model)

Reading: EN ch 1-2 (read during the first week); EN 3.1-3.4 (Wed); 3.5-3.7.3 (Fri)
Plan to do the readings before class on the day listed, so that class time can be spent on addressing questions and trickier topics.

Optional Reading: EN 3.7.4, 3.8

Handouts:

homework #0
due W 8/30
   
   
homework #1
due F 9/1
(solutions)
   
   
homework #2
due W 9/6
(solutions)
   

Week 2: 9/4-9/8

Topics: data modeling: ER model and relational model

Reading: EN 3.9, 4.1-4.3 (Mon); EN ch 5 (Fri)

Examples: discussion of ternary relationship examples not discussed in class

Handouts:

   
   
homework #3
due M 9/11
(solutions)
   
   
   

Week 3: 9/11-9/15

Topics: relational model, ER-to-relational mapping

Reading: EN 7.1.1, 7.2.1 (Wed)

Examples: mapping binary relationship types (PDF)

homework #4
due W 9/13
(solutions)
   
   
homework #5
due M 9/18
(solutions)
   
project: topic
due Fri 9/15
 
project: requirements collection and analysis
due Fri 9/29
 

Week 4: 9/18-9/22

Topics: relational algebra

Reading: EN 6.1-6.5 (Mon)
Skim sections 6.3.5 and 6.4.3.

Handouts:

  • sailor-boat-reservation: sample relational algebra queries along with selected solutions (PDF)
  • using the RA interpeter (PDF)
    Note: the command for starting the interpreter in our environment is
    /classes/f06/cs343/bin/run-ra dbname
    where "dbname" is the name of the database you want to work with. You'll get Java classpath errors if you use the command given on the first page of the handout.
homework #6
due W 9/20
(solutions)
 
 
homework #7
due F 9/22
(solutions)
 
 
homework #8
due M 9/25
(solutions)
 

Week 5: 9/25-9/29

Topics: relational calculus

Reading: EN 6.6 except 6.6.5 (Mon)

Handouts:

homework #9
due W 9/27
(solutions)
 
 
homework #10
due F 9/29
(solutions)
 
 
     

Week 6: 10/2-10/6

Topics: exam, SQL (data definition, insert/delete/update, basic queries)

Reading: EN 8.1-8.3, 8.6, 8.4.1 (Wed)
Note: The readings have been changed slightly from what was originally posted. If you don't quite get to everything in the new version for Wednesday, read it before Friday.

Handouts:

    midterm #1
in class part Mon 10/2
take home part due Fri 10/6 in class
review information
(solutions (PDF): in class, take home)
   
   
   
homework #11
due F 10/13 (#1-3), M 10/16 (#4-5)
(solutions)
 

Week 7: 10/9-10/13

Topics: SQL (queries)

Reading: EN 8.4-8.5 (Fri)

Handouts:

  no class Mon 10/9 (fall break)
 
project: ER model
due Wed 10/18
 
   

Week 8: 10/16-10/20

Topics: SQL (queries)

Reading: EN 8.9 (Fri)

Optional Reading: EN 8.7-8.8 (Fri)

Handouts:

homework #12
due W 10/18
(solutions)
 
 
homework #13
due F 10/20
(solutions)
project: relational model
due Wed 10/25
 
 
homework #14
new due date: F 10/27
(solutions)
 

Week 9: 10/23-10/27

Topics: SQL wrapup, web applications (HTML, PHP)

Reading: EN 8.9 (Mon); EN 9.1, 26.1-26.3.3, HTML Quick Start, PHP Language Quick Start, PHP Local Quick Start (Wed)
How to read the Quick Starts (and other documentation): first, look at the table of contents to get an overview of what information is available; second, skim through the text to gain a more detailed overview of what can be done and what techniques are appropriate for different tasks; third, read individual sections carefully and work through the examples when you have a particular application for which the material in that section is relevant.

Optional Reading: EN 9.2-9.3 (for more specifics on different approaches to database programming)

Examples:

 
 
project: application design
due Wed 11/8
 
 
homework #15
due F 11/3
(solutions)
 

Week 10: 10/30-11/3

Topics: web applications (HTML, PHP, DB access)

Reading: EN 26.4, PHP MySQL Quick Start (Wed)
Focus on the "Querying a Database and Displaying Results" part of the PHP MySQL Quick Start. (The other sections involve form processing, which we'll get to next week.)
Skim 26.4 to get an overview of the process but don't worry about the details - we'll be using a different library to connect to MySQL (as outlined in the PHP MySQL Quick Start).

Examples:

no class Mon 10/30
 
 
 
homework #16
due W 11/8
(solutions)
 

Week 11: 11/6-11/10

Topics: web applications (HTML forms, sessions, cookies)

Reading: EN 26.2, 26.3.4, PHP Web Quick Start, PHP MySQL Quick Start (Mon)
Focus on the rest of the PHP MySQL Quick Start (the parts not assigned last week).

Examples:

 
 
homework #17
due M 11/13 11:59pm
(solutions)
project: alpha release
due Mon 12/4
 
 
 

Week 12: 11/13-11/17

Topics: review, exam, disks and files

Reading: EN 13.1-13.8.2 (Fri)

 
   
  midterm #2
in class part Wed 11/15
take home part due Tue 11/21 5pm
review information
(solutions (PDF): in class, take home)
 
 

Week 13: 11/20-11/24

Topics: files and indexing

Reading: EN 14.1-14.2

disks and files
(practice homework)
 
  no class Wed 11/22 or Fri 11/24, no lab Thu 11/23 (Thanksgiving break)
 
 

Week 14: 11/27-12/1

Topics: files and indexing, query processing

Reading: EN 14.2 (Mon), 15.1-15.4 (Wed)

Optional Reading: EN 15.5.1

indexes
(practice homework)
 
   
   
   
   

Week 15: 12/4-12/8

Topics: query optimization, database tuning, project demos

Reading: EN 15.7-15.8 (Mon), EN ch 16 (Wed)
Skip the part of 16.1.2 about denormalization and 16.2.2; skim 16.2.3-16.2.4.

Handouts:

Examples:

query processing and optimization
(practice homework)
project: beta release
due Fri 12/8
 
   
   
   
  project demos in class Fri 12/8

Reading Period & Exams: 12/9-12/15

  project: final release
due Tue 12/12 7pm
 
   
   
super deadline
no work accepted after Tue 12/12 10pm
final exam
take-home due Tue 12/12 10pm
review information
     
     
     

Valid HTML 4.01!