CS 457 Database Systems

Spring 2007

 

Lecture: TuTh 11:30-12:45pm MSC W302

 

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.

Syllabus:

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

 

Assignments and Exams:

 

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!