CS 364
Introduction to Database Management Systems
Spring 1996

Course home page: http://www.cs.wisc.edu/~cs364-1/cs364.html

INSTRUCTOR: Yannis Ioannidis
Office: 7357 Computer Sciences
Office hours: Tuesday 8:30-9:30 am / Thursday 8:30-9:30 am
Office phone: 263-7764
Email address: yannis@cs.wisc.edu
Home page: http://www.cs.wisc.edu/~yannis/yannis.html

TA: Johannes Gehrke
Office: 1345 Computer Sciences
Office hours: Wednesday 12:00-1:00 pm / Friday 12:00-1:00 pm
Office phone: 262-1012
Email address: johannes@cs.wisc.edu
Home page: http://www.cs.wisc.edu/~johannes/johannes.html


Contents


NEWS

Watch this space for the latest updates.
Last updated: Saturday, April 27th, 1996, 1pm

Assignment #5 (the final version) is out

The assignment is now available online.

Access Basic Introduction

The Access Basic Introduction is now available online. For better printing, it is also available in the Vectra Lab in
r:\public\johannes\accbasc.doc

Assignment #4 (part II) is out

The whole assignment is now available online.

Assignment #4 (part I) is out

The first part is now available online.

Assignment #2 is graded

Here are some remarks about the grading and how to find your grade; it also contains some general remarks.

MS Access Introduction is online

The MS Access Introduction is here. For easier printing, it is also available in the Vetra lab as
r:\public\johannes\cs364acc.doc
To print it, run MS Word, load the document and print it.

Assignment #3 is available

The QBE assignment is now available.

Sample solutions for assignment #2

The sample solutions for assignment 2 are out.

Assignment #1 is graded

Here are some remarks about the grading and how to find out your grade. The list with the 27 key facts can be found here. A sample solution schema can be found in
~cs364-1/public/assignment1/airport
A postscript version of the schema can be found here.

Assignment #2

The SQL assignment is now available. Here is an ascii-version.

Assignment #1

The E-R design assignment and a short document with a description of Opossum, the tool that you should use for the assignment, are now available. Here you can read how to hand in the assignment.

Johannes' office hours have changed

Due to the announcement of a weekly seminar every Monday from 12pm-1pm, Johannes has moved the Monday office hour to Wednesday. His new office hours are:

Extra office hours 2/5, 2/6 and 2/7

Johannes will have extra office hours in room 1363 (one of the sun labs) on the following days: He will be sitting on one of the Sun stations and can help you with any questions/problems you have with Opossum, the tool you are going to use in assignment 1 to draw an E-R diagram (Assignment 1 will be handed out on Tuesday, February 6th, in class). His other office hours will be held as usual (Mo, Fr, 12-1pm).

New Room

Starting on Tuesday, February 6th, lectures will be in room 226 Noland.

Johannes has no office hours on Friday, February 2nd

Johannes is moving on Friday, February 2nd, and therefore his regular office hours on that day are cancelled.

CS machines

The handout Getting Started on the CS machines is online.

First-time and Novice Unix Users

First-time Unix users and novice Unix users who have not previousy used the Computer Systems Lab (CSL) Unix workstations are strongly encouraged to attend one of the Unix Orientation sessions. These will be held:
Orientation sessions last 60-90 minutes. You are also encouraged to consult "CS1000", a document available on the web (under Computer Systems Lab) or for sale at the DoIT documentation desk.

Class mailing list

A list with the email addresses of everybody in the class is created and will be used by the instructor and TA for announcements. Students should not mail to this list, but directly to the instructor or TA.

COURSE DESCRIPTION

CS 364 is intended to give students a solid background in database management systems, particularly relational database management systems. Such systems will be primarily examined from the perspective of a database system user.

The concept of a data model will be introduced and the entity-relationship (ER) and the relational models will be covered in detail. Logical and physical database design issues related to these models will be discussed. Advanced design features such as views and integrity constraints will also be touched upon briefly. Students will design both ER schemas and relational schemas using various home-grown and commercial tools. QBE-like graphical-style query languages as well as the main text-based language, SQL, will be examined then. Students will exercise their knowledge of this part of the course material by writing queries against databases using actual relational database management systems. In particular, we will use Microsoft Access on Windows-based PCs (located in room 1350 CS), and Sybase on Unix-based workstations (located in rooms 1358, 1363, and 1368).

In the course, we'll also have a pick at some aspects of the database system internal implementation, just enough for users to understand the implications of some of their external decisions regarding database design on the system performance. The primary focus of this part will be indices (access methods), including B+ trees and hashing, and query processing. Concurrency control, recovery, query optimization, and other advanced implementation issues may be touched upon as time allows.

Aside from reading the course notes and possibly the book, the course will involve midterm and final exams plus several assignments involving the use of database systems.

SYLLABUS

The following is a tentative order of a tentative list of topics to be covered in class, assigned to tentative dates.

========================================================================
DATE			|  TOPIC
========================================================================
Jan 23			| Introduction / Administration
Jan 25			| General Architecture of a Database System
Jan 30			| Database Design / Data Modeling / E-R Model
Feb 1			| E-R Model (cont.)
Feb 6			| E-R Model (cont.)
Feb 8			| Relational Model
Feb 13			| The SQL Query Language
Feb 15			| SQL (cont.)
Feb 20			| SQL Updates and Aggregation
Feb 22			| Query-by-Example (QBE)
Feb 27			| `Access' Forms
Feb 29			| `Access' Forms (cont.)
Mar 5			| Dependencies/Normal Forms
Mar 7			| MIDTERM
Mar 19			| Views, Integrity Constraints
Mar 21			| Programming Language Embedding
Mar 26			| Database Programming
Mar 28			| Database Programming (cont.)
Apr 2			| `Access' Report Writers
Apr 4			| `Access' Report Writers (cont.)
Apr 9			| Disks and Files
Apr 11			| B+ Tree Indices
Apr 16			| Hashing
Apr 18			| Secondary Indices
Apr 23			| Relational Algebra
Apr 25			| Relational Algebra Queries
Apr 30			| Query Processing and Optimization
May 2			| External Sorting
May 7			| Concurrency Control and Recovery
May 9			| 
========================================================================

Although I expect that the changes in the topics themselves and the order of their coverage will be few, the specific dates on which each topic will be covered may be very different, depending on how quickly or slowly we progress in class.

CS364 vs CS564

In addition to CS 364, there is another undergraduate database course, CS 564. CS 564 is for C++ whizzes who are interested in the internals of a database system and are ready for a substantial implementation project to obtain programming experience. CS 364, on the other hand, does not require C++ and involves no major programming assignments. If you are/will be computer science majors, you are strongly encouraged to drop 364 and move to 564. CS564 lectures are on Mondays, Wednesdays, and Fridays 9:55-10:45 in 1221 CS & S. Both courses meet the Business School Information Systems DB requirement.

LECTURES

Lecture: TR 9:30-10:45, 226 Noland.

GRADING

Final grades will be (tentatively) determined as follows: midterm exam (25%), final exam (25%), assignments (50%). Class participation is strongly encouraged and may be used as a fudge factor on the final grade.

DATES AND TIMES TO REMEMBER

Midterm exam March 7 (Thu), 7:15pm - 9:15 pm, 1325 CS&S
Final exam May 17 (Fri), 10:05am - 12:05 pm, 1407 Sterling

LATE ASSIGNMENT POLICY

No late assignment will be accepted. Assignments must be turned in exactly when they are due. In order to avoid lateness caused by machine loads, coincident due dates for several classes, etc., simply be sure to get started right away on each assignment. Things are certain to go wrong now and then, so don't wait until the last minute to start.

TEXT (Recommended but not required)

If you would like to have a text for reference, the following is recommended:
H. Korth and A. Silberschatz, Database System Concepts (2nd edition), McGraw-Hill, 1991

Below are the book sections corresponding to material that we will cover in this course. This section will be updated as we go along.


========================================================================
TOPIC			|  BOOK CHAPTERS/SECTIONS
========================================================================
		Before the midterm
========================================================================
Basic stuff		|  Ch.1 : everything
ER model                |  Ch.2 : 2.1, 2.2, 2.3, 2.4, 2.5, 2.6,
			|         2.7 (ignore "weak entity" stuff)
Relational model        |  Ch.3 : 3.1
Relational Languages    |  Ch.4 : 4.1, 4.2
========================================================================
		After the midterm
========================================================================
Relational algebra      |  Ch.3 : 3.2.1
Integrity Constraints   |  Ch.5 : 5.1, 5.2.1, 5.2.4, 5.3.1, 5.4
Normal forms            |  Ch.6 : 6.1.1, 6.2 (except 6.2.1)
Physical organization   |  Ch.7 : 7.1, 7.2, 7.3, 7.4, 7.5, 7.6
Index structures        |  Ch.8 : 8.1, 8.2, 8.3, 8.4, 8.5, 8.7
Query Processing/Opt.   |  Ch.9 : 9.1, 9.2, 9.3, 9.4, 9.5.1, 9.5.2, 9.5.3,
			|	  9.5.4
========================================================================

LECTURE NOTES (Required)

To be distributed through DoIT. These will include the notes I use during lecture, which you should always have with you during class. They will also include parts of manuals necessary for some assignments.

ASSIGNMENT 0 (ABSOLUTE NECESSITY TO GET A GRADE OTHER THAN F!)

Bring in a photograph of you. It should not be your picture from your 1st birthday, nor should it be the one from that boy/girl scout trip in the summer of 1984. Other than that, it can be color or black-and-white, any size, etc.
yannis@cs.wisc.edu
Mon Jan 22 13:20:14 CDT 1995