CISC 437/637 - Database Systems - Fall
2009
TuTh 5:00 pm-6:15 pm, 219 Smith Hall
| Instructor: Daniel Chester |
TA: Dongqing Zhu |
| Office: 101G Smith Hall |
Office: 103 Smith Hall |
| Hours: M/F 3:15 pm-4:15 pm and by appt. |
Hours: Tu 10:00 am-11:30 am, Th 3:30 pm-5:00 pm |
| Phone: 831-1955 |
Phone: 831-3132 |
| Email: User: chester Domain: cis.udel.edu |
Email: User: zhudq Domain: udel.edu |
Textbook
DATABASE SYSTEMS The Complete Book, second edition, by Garcia-Molina,
Ullman and Widom. Pearson Prentice Hall, 2009. CAUTION: The international
edition of this textbook is not the same as the one sold in the US. The
exercises are different.
Course Description
Physical and logical organization of databases. Data retrieval
languages, relational database languages, security and integrity,
concurrency, distributed databases.
Course Objectives
In this course, the student will learn how to create and manipulate
a database system using MySQL. He or she will also learn how to
design a database using the E-R model and will design and implement
a complete database system. He or she will understand basic implementation
techniques
that make databases systems more efficient and some important issues
that must be addressed when more than one user uses a database system
at the same time or when the database system is distributed over several
locations.
Topics (tentative)
-
Chapter 1: The Worlds of Database Systems
-
Chapter 2: The Relational Model of Data (sections 2.1 through 2.4)
-
Chapter 5: Algebraic Query Languages (sections 5.1 and 5.2)
-
Chapter 6: The Database Language SQL [and MySQL]
-
Chapter 3: Design Theory for Relational Databases
-
Chapter 4: High-Level Database Models (sections 4 through 4.6)
-
Chapter 7: Constraints and Triggers (sections 7 through 7.1.2, 7.2.1, 7.3, 7.5)
-
Chapter 8: Views and Indexes(sections 8.1 through 8.3)
-
Chapter 9: SQL in a Server Environment (sections 9.1 through 9.6)
-
Chapter 10: Advanced Topics in Relational Databases (section 10.1)
-
Chapter 14: Index Structures (sections 14, 14.1, 14.2, 14.3)
-
Chapter 15: Query Execution (sections 15 through 15.6)
-
Chapter 16: The Query Compiler
--------------------------we got this far---------------------------------
-
Chapter 17: Coping With System Failures
-
Chapter 18: Concurrency Control
-
Chapter 19: More About Transaction Management
-
Chapter 20: Distributed Databases (sections 20.3 through 20.7)
Grading
Ninety-five percent of the grade will be based on (with equal weight) [tentative]:
-
project
-
homework assignments (and programming exercises)
-
midterm (Tuesday, October 20th)
-
final exam (Friday, December 18th, 3:30-5:30 pm, SMI219)
plus five percent for doing the online course evaluation
http://www.udel.edu/course-evals/
at the end of the semester.
The numerical scores will be combined, not the letter grades.
Since the assignments and exams are not standardized, your
course grade will depend not only on the weighted score you
receive, but also on how your score compares with the score
distribution for the whole class.
NOTE: Roll will be taken from time to time without warning.
If you are absent a substantial number of times when these
rolls are taken, your grade for the course could be lowered
by as much as one letter grade. No make-ups allowed.
Policies
-
All assignments and projects are due at the beginning of class on the due date.
They must be printed, not handwritten, and give to me in class on the due
data. Do not email your work to the TA or me unless I give you instructions
to do so.
-
Homework will be accepted at the following class period after the due
date, but the score will be reduced by 10 percent of the maximum possible
score. The homework will not be accepted more than one week after the
due date except in extreme and verifiable circumstances.
-
All work on assignments and projects must be your own. Do not collaborate
with other students or copy their work. Do not copy from a book or other
source. You may consult with each other about conceptual problems, but
see the TA or me for help with details or debugging.
If you get text or code from any source, including webpages on the Internet,
books or other students, and present it as if it were your own, that is
plagiarism. If the TA or I discover that you have plagiarized, I
am obligated to report the incident to University authorities above the
CIS Department. You must acknowledge and document such borrowings if
you do use them. If they significantly reduce the amount of work you
have to do for an assignment, you will lose points; the grade you get
is for your work, not somebody else's.
-
If you can't come to scheduled office hours, please send me email; I'll
be happy to schedule a meeting at some other mutually-agreed upon time.
Getting Started in MySQL
Some Limitations of MySQL
C API example(SELECT)
Works in C++ too. Must be compiled and run on orioles.
C API example(INSERT)
Works in C++ too. Must be compiled and run on orioles.
JDBC example
Slides
Relations
Relational Algebra
SQL
Normal Forms
E/R Diagrams
Art Gallery example
Constraints and triggers
Trigger demo
File to source for removing trigger demo
Views and Indexes
Review of topics covered before midterm
SQL and C (and Java)
Granting privileges
Indexing
RA operator algorithms
Query compilation
Assignments
Assignment 1 (relational algebra)
Assignment 2 (SQL)
Assignment 3 (BCNF)
PROJECT: PART 1
Assignment 4 (3NF, E/R diagrams)
PROJECT: PART 2
Assignment 5 (triggers and views)
Assignment 6 (Indexing, B+ trees, Hash tables)
PROJECT: PART 3
Assignment 7 (Iterators for intersection)
November 18, 2009