Venue: Washburn Shops 229
Date/Time: 0800 to 0950 on Tuesday and Friday
Instructor: Amrith Kumar
Email:
amrith.wpi@gmail.com or akumar@wpi.edu
Phone: +1-978-563-9592
Office
Hours: By Appointment
How
to reach me, and my schedule:
I am not at WPI everyday so I strongly suggest that you
first seek the advice of the other members of the staff (listed below). By
mutual agreement, Mingrui and Kaiyu
have agreed to have office hours on Monday, Tuesday, Wednesday and Thursday.
If you do need to contact me, then send me email. I will try
to get back to you as soon as possible.
TA: Mingrui Wei (netwmr01@wpi.edu)
TA: Kaiyu Zhao (kaiyuzhao@wpi.edu)
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, please
contact the instructor.
This
course teaches you how to use a relational database system such as MySQL,
Oracle or SQL Server for your database application development.
The specific topics you will study in this course include:
a)
The
formal process of database design
b)
High
level logical data models such as the Entity Relationship Model (ER), for
representing data elements
c)
The
relational database model, and algorithms to translate the ER model to a
relational schema
d)
Objects
and Constraints, and their representations in SQL/DDL
e)
Canonical
representations of the ER model, preferred representations, and normalization
f)
Relational
algebra for operations on relational model (i.e., how to query data from
a relational database), and
g)
SQL
DML which include queries for representing relational algebra, and data modification
statements for making changes to the data
h)
Other
issues important to SQL systems such as triggers and views, will also be
covered
i)
A
high level description of conventional relational database applications (Real
Time Stream processing, OLTP, Data Warehousing and BI, and Analytics), an
overview architectural variations and implications for relational schema design
j)
Time
permitting, we may also provide an overview of indexing, transactions, logging
and/or security.
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.
The core mathematical principles behind relational databases are those of sets, relations and functions. An understanding of these concepts is necessary, for you to understand the materials contained in this course. It will, for example, be required that you are familiar with set theory and common set theory concepts such as intersections and unions, and the commutative and associative properties of common set theory operators. It will also be assumed that you are familiar with logical operators (AND, OR, NOT) and concepts such as De Morgan’s law, truth tables, Venn Diagrams or Karnaugh Maps.
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 must be able to program in at least one of these languages. The course does not offer instruction in programming in these languages, and it is assumed that you have a familiarity with programming in at least one of the languages, Java and C, and have a working development environment on some computer(s) where you can implement an application that interacts with a database.
We will generally be referring to an abstract relational database during this course but the project and homework assignments will require you develop against a real database. While MySQL and Oracle are recommended, they are not required, you may, for example, choose to develop your application or project on SQL Server. Instruction will not be provided on how to setup or configure the database as the internet and intranet have a wealth of information on these subjects.
We will discuss the grading policy for the course in more detail during the first session.
Homework and project assignment descriptions will be announced in class, and will also be made available on myWPI. Students are responsible to be aware of all assignments. Failing to check the course web site on myWPI is not an acceptable excuse for late submission, or missing exams. For projects, you must submit your source code on time via mywpi, and demonstrate the system on the assigned demonstration time period.
Unless explicitly noted, all work is to be done on an individual basis. You are encouraged to discuss with others about ideas and material in the course, in preparing for exams, in understanding project statements, etc. However, all homework and exams are to be written individually, and the solutions should be your own. Projects require teamwork; meaning that you are expected to work closely with your partner/(s) to solve problems and prepare a commonly agreed-upon solution. As part of your group activities, you will be asked to provide details about your contribution, and the contribution of others in your group. It is expected that you will answer these questions completely and truthfully.
Any violation of the WPI's guidelines for academic honesty will result in no credit for the course and referral to the Student Affairs Office. More information on definitions, responsibilities and procedures regarding the WPI academic honesty policy can be found here.
For your questions concerning the course material, clarifications on the homework, questions on the project, and so on, please use the discussion board available at myWPI.
The course outline of the course
CS3431 in the B term 2010-11 is loosely based on the outline of the previous
offering of the course in C term 2009-10 that was taught by Prof. Elke A. Rundensteiner.