CS347 Database Management -- Fall 2008
preliminary and subject to revision
updated 06/30/2008

Instructor Prof. Don Batory   batory@cs.utexas.edu
TA TBA TBA
Office Hours Batory By Appointment
TBA TBA
Room Burdine 220
Time Tuesday and Thursday 12:30-2:00pm
Unique# 55835
Ground Rules Rules of Conduct and Academic Honesty
Your Grades EGradeBook
Final Exam

TBA

 

Overview

This is an introductory course in database management systems. Topics covered will include SQL, database design, file storage, query processing and optimization, concurrency control and recovery.  The prerequisites for this course are at least a grade of C in CS310 or CS310H, and M 408D or 408M.

Course Material

The texts for this course are:

Note: The Database Management Systems text is for supplementary reading and is optional.  All material on homeworks and exams will be taken from the lecture notes.  You will need the Fundamentals of SQL Programming text.

Lecture notes for the course are available at the Texas Union Copy Center at a cost of $8.25. Additional postings on lecture notes, homework assignments, and software will be made available through this web page as they become available.

UTCS Microlab

The UTCS Microlab is available for your programming assignments.  You will be given an account and password on the Microlab Oracle Server. Remember that to use the Microlab, you must have a valid CS account.  Click here to get a CS account if you don't have one.   Information about the Microlab (hours, location, etc) is:

Oracle

You may use Oracle's SQLDeveloper or SQLPlusWorksheet for your SQL assignments.  Both are nice development facilities. Both are installed in the UT Microlab:

We will be using Oracle 10g for our class homework and projects.  There are several versions of oracle that can be used; this year we will be using the Oracle10g Relational Database Express Edition (10gXE). Follow the instructions below to download and install 10gXE:

Only after you have agreed to all the restrictions on Oracles use will you be able to access this download.  The download takes a few minutes and is of size 160MB and about 10 minutes to install, which is substantially less than the next option.

The second option I don't recommend, but include it for completeness. You can download and install the Oracle client and server Personal Edition (approx 4GB).

Depending on what platform you will be using (I use Windows XP), the download is approximately 1GB, and takes about 15 minutes to a half hour to install.

Oracle documentation is available at:

If you install 10gXE, you can do most of your homework and application development on your own machine.  It is only for projects and maybe a particular programming assignment that you will need to use the server. You can access the server, with your given account, using SQL Developer.

Hints on Using Oracle

Check this page for various updates.

Quizzes

There will be unannounced in-class quizzes on course lecture material, readings from the course texts, and/or homework. Missed quizzes will be given a grade of zero unless there are extenuating circumstances (see below).

Homework

Homework assignments have an explicit due date. Homework is to be done individually. Late homework will be given a grade of zero unless there are extenuating circumstances (see below).  You can use 10gXE (as in class) to produce the output for your homework, or better still, use SQL Developer. On some assignments, we will be using Microsoft Visio, and in particular, a stencil for the ER model.  This stencil can be downloaded here:

MS Visio is installed in the Microlab.

Turning In Homework

Information on turning in assignments is specified on the following web page

Late Policy

No assignment (homework or project) may be more than 2 days late. You will have 5 free late (slip) days in 1 day units (1 minute to 24 hours = 1 day) for all the assignments during the semester. You may divide your slip days across the assignments in any way you wish to extend deadlines, subject to the 2 day maximum per assignment. To help the TA track your slip-day status, if you submit a late assignment email the TA with the following information within 12 hours of submitting the assignment:

Assignment number: _____
Slip days used (this assignment:) _______
Slip days used (total): ______

Class Projects

There will be one or more programming projects that will be due during the course of the semester.  Group projects are not allowed; you must do your own work.  Due dates will be announced at the time of project assignments. You may need information on Java servlets or Java GUIs for the last project.  Tutorials for them are listed below:

Examinations

There will be three closed book exams, a two midterms and a final. These exams must be taken on the specified date and at the specified time. If you miss an exam due to extenuating circumstances (see below), a grade will be negotiated for the exam based on a percentage of your homework, quizzes, and other exam scores. Missed exams will be given a grade of zero.

Class Grades

Final grades will be determined approximately by the following scheme:

Homework grades will be used to decide final grades in grade-borderline cases.

Extenuating Circumstances

If you have difficulty meeting the requirements of this course, fail to hand in an assignment, or miss an exam because of extenuating circumstances, please advise the instructor in writing (not email) at the earliest possible date so that your situation can be discussed. If you encounter an unexpected medical or family emergency or a random act of Nature that causes you to miss the due date for homework or miss a quiz or exam, you must present suitable documentation in writing (not email) to the instructor before special consideration will be given. A file of all written correspondence will be kept by the instructor and decisions regarding them will be made at the end of the semester.

Lecture Schedule

Note: updates to lectures and the script files are posted after class by the lecture below.  Please note that the number of class lectures on a particular topic is variable.  Some topics may be revisited with a second lecture, when necessary.  Further, there may be in-class examples to reinforce previous lectures.  For this reason, no specific dates are assigned to each topic.

Topic Lecture Readings Homework
& Projects
Introduction (1) Introduction (examples) G&R: Chapter 1 Install
Oracle 10gXE
SQL (5) Database Creation, Modification, and Simple Queries (examples)

Mail-Order Database Handout
Shaum: Chapter 1,2,3
Text: Chapter 4
HW1
Multi-table, Nested, and Correlated Queries
(examples) (forall-query)
Shaum: Chapters 2, 3, 7  
Aggregates, Group By, Having, and Database Updates (examples) Shaum: Chapters 4,5 HW2
Homework Review and In Class Problems
(Solutions)
   
Relational Algebra and Relational Calculus G&R: Chapter 4 HW3
SQL Exam 1 (1)      
Database Design (5) Functional Dependencies (2)

supplementary article #1, #2

G&R: Chapter 19  
ER Model (2) (MailOrderDesign)
ER Model Exam Example
G&R: Chapters 2-3 HW4
Homework Review and In Class Problems    
JDBC (1) JDBC Lecture, Recursive Queries + Example Programs

JDBC Example programs
Recursive Query examples

G&R: Chapter 6
JDBC Tutorial
PDF or HTML
 
DB Design Exam (1)     Project 1
Data Storage (3) File Structures (2) G&R: Chapter 8
Inverted Files HW5
Query Processing (3)
Join Algorithms G&R: Chapter 14 Project 2
Query Optimization G&R: Chapter 12
Homework Review and In Class Problems    
Concurrency Control (2) Intro to CC & R G&R: Chapters 16-17 Project 3
Strict 2 Phase Locking
Recovery (3) Transaction Recovery, System, and
Media Recovery
G&R: Chapter 18 HW6
Homework Review and In Class Problems   Project 4
Course Review and Final (1)

FINAL