| 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.
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.
Information on turning in assignments is specified on the following web page
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) | 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 | 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 |