CS3431. Database Systems I
Home Textbooks Homeworks & Projects Schedule Additional Resources


Class Meetings

         Term:        C-2015
         Room:       Salisbury Labs SL-104
         Date/Time:     Tues.   12:00pm - 1:50pm    &     Fri.  8:00am - 8:50am      &   Fri.  12:00pm - 12:50pm
     
Instructor/Office Hours
          Prof. Mohamed Eltabakh,  FL-235,  meltabakh@cs.wpi.edu
          Office Hours:  Monday  2:00 - 3:00pm,    Thursday 2:00 - 3:00pm.    (Students are also welcomed to schedule other meeting times by email).


TAs/Office Hours (in FL-A22)
           Lily Amadeo,  loamadeo@wpi.edu
                   Office Hours:   Tuesday 2:00 - 3:30pm,    Wednesday   1:00 - 2:30pm.

          Siyuan Zhao, szhao@wpi.edu
                   Office Hours:  Monday 3:00 - 4:30pm,     Friday  1:30 - 3:00pm


Regarding when and by what means to approach the instructor or TAs with questions outside of class, please keep in mind the following. We are always willing and eager to answer your questions, and would like you to master the topics covered in a timely manner. There are different venues for bringing questions outside the lecture hours: (a) First we suggest that you utilize the discussion boards on mywpi - as we will be monitoring those daily, plus other students could likely benefit from your questions and our answers. Other students may even be able to answer your questions. (b) Second, go to the office hours, as they are set up solely for this purpose. (c) Only when the above two means do not work for you, then feel free to email to the staff of this course explaining your problem. Also, if there is specific issue that cannot be addressed in the above manner, you are welcome to drop by our offices to set up some alternate agreed-upon meeting time.


Course Highlights (Catalog Info)
      -- This course introduces the student to the design, use, and application of database management systems.

      -- Topics include the relational data model, relational query languages, design theory, and conceptual data design and modeling for relational database design. Techniques that provide for data independence, and minimal redundancy will be discussed.

      -- Students will be expected to design and implement database system applications.

      -- Undergraduate credit may not be earned both for this course and for CS 4431 or CS 542.

      -- Recommended background: CS 2022 and either CS 2102 or CS 2118.


Course Objectives
This course teaches you how to use a relational database system such as Oracle or SQL Server, for your application.

The specific topics you will study in this course include (a) conceptual models, such as ER (Entity Relationship) model for representing your application requirements formally (b) relational model: structures and constraints, and how to represent them using SQL DDL (c) algorithms for translating your ER model to relational model (d) understanding any defects in your relational design, and rectifying them using normalization theory (e) relational algebra for operations on relational model (i.e., how to query data from a relational database), (f) SQL DML which include queries for representing relational algebra, and data modification statements for making changes to the data, and (g) DB application development concepts such as stored procedures (PL/SQL), and JDBC and related concepts. Other issues important to SQL systems such as triggers and constraints, and views, as well as an overview of indexes, transactions, logging and security will also be covered.

This course will NOT cover database system implementation details (e.g., how to build a database system that processes SQL queries efficiently). These topics will be covered in CS4432. We recommend all students to take this class after CS3431 to get a complete understanding of how database systems are implemented and used.

Background Material
The core mathematical principles behind relational databases is that of sets, relations and functions. An understanding of these concepts is necessary. A recap of these concepts can be obtained here.

Also for one part of the project, you will integrate the SQL knowledge you learn in this class with other programming languages, such as Java, C, Perl etc. Therefore you should be comfortable with programming and be able to program well in at least one of these languages.


Course Load & Grading Policy
This course will have 3-4 homeworks, 1 Project (multiple phases), and midterm and final exams. We will also have 3-4 short quizzes. The division of the course grade is given below.

Items Percentage
Homeworks      
20%
Projects
20%
Midterm
20%
Final Exam
25%
Quizzes
15%



WPI E-System
This course will use blackboard.wpi.edu. You can use this system for electronic submission of homeworks and/or projects, and for checking your grads.



Discussion Board
Please use the discussion board available at blackboard.wpi.edu. for any course-related posts and discussions.