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:
- Wednesday 12-1pm, and
- Friday 12-1pm
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:
- Wednesday, February 7th, 8am-9am
- Thursday, February 8th, 8am-9am (before class)
- Friday, February 9th, 5:30pm-6:30pm
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:
- Monday - Thursday the first week of classes: 4pm and 6pm, room 1221 CS&S
- Monday - Thursday the second week of classes: 4pm, room 1221 CS&S
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.
NO GRADE WILL BE GIVEN WITHOUT A PHOTO!