CS 457
Database Systems
Spring 2007
Lecture: TuTh
Instructor: Li
Xiong
Email: lxiong@mathcs.emory.edu
Office: E412 Math/Science Center (MSC)
Phone: 404 727 0758
Office Hours: TBA and by appointment
Web: http://www.mathcs.emory.edu/~cs457000
(http://www.mathcs.emory.edu/~lxiong/teaching/cs457000
till the above link is available)
Mailing List: cs457000-list@mathcs.emory.edu
Share Directory: /home/cs457000/share
Textbook:
|
|
Fundamentals
of Database Systems, 5th Edition by Ramez Elmasri & Shamkant B. Navathe. |
Overview:
This is an introduction
course on database systems. It introduces
the fundamental concepts of the design and use of database systems. We will cover the core topics of Part 1 to 3
of the book. If time permits, we will
introduce some topics of Part 4 and 5 and end the course with some emerging and
advanced applications of database systems.
We first introduce the
logical and physical data independence realized in database systems and compare
database systems with traditional file processing systems. In the comparison,
we will see that database system provides greater flexibility - at the cost of
greater complexity. Then we discuss the entity-relationship model used for
describing mini-worlds and how it can be used to design database models. The
main focus of the course will be on relational database systems where we will
study the relational data model and the SQL query language for accessing the
data maintained by relational database systems. We will also study functional
dependence and lossless decomposition as tools to design ``good'' databases. We
then present the normalization process; discussing 3NF and BCNF normalization
forms for designing good database relations without anomalies. Finally we will give a brief overview of database
systems implementation, including topics such as storage management and transaction
processing.
Prerequisites:
Basic Java programming
skills and CS253.
|
Topic |
Chapter(s) |
|
Basic concepts -
data independence, 3 level database architecture, database system components |
1,2 |
|
Conceptual
database level - Entity-Relationship Model |
3,4 |
|
Relational Data
Model: Introduction, Algebra and Calculus |
5, 6 |
|
SQL Query
Language |
8 |
|
Mapping from ER
Model to Relational Model |
7 |
|
Relational database
design - Normal Forms, Functional Dependencies |
10, 11 |
|
Oracle JDBC and
JAVA |
Notes |
|
Selected topics
on data storage and transaction processing |
13, 14, 17 |
|
Further topics: data
warehousing and data mining |
28, 29 |
|
Further topics: Client-server
and distributed databases |
25 |
There will be written
assignments as well as programming assignments/projects. The SQL programming assignments involve formulating
queries on a small database using the departmental Oracle relational database
system. The Java/SQL programming projects
involves implementing a GUI application that accesses and queries a database. There will be a midterm exam and a final exam. Both of them will be open book and open notes.
Grading:
Your grade will
be determined by a weighted average of all the graded items. Grades will typically be curved so that the
class mean falls in a B range. Although
the numerical grade you receive for each assignment will be a raw uncurved
score, you will be given the class median and mean for each exam so that you
may gauge where you stand. You may ask me
about your grades at any time. I will give a passing grade to anyone that makes
a consistent effort to understand the material throughout the semester.
|
Component |
Weight |
|
Assignments |
40% |
|
Midterm |
25% |
|
Final |
30% |
|
Class Participation |
5% |
Honor Code:
No collaboration is allowed
on programming assignments unless you are asked to do a group assignment. All
class work is governed by the College
Honor Code and Departmental
Policy. You should treat programming assignments like take-home exams. Anything
you submit must be your own work.
Enjoy yourself and good luck!