CS 6660 Spring 2009 Home Page
CS 6660 Spring 2009 - Database Systems - 4 Credits 

Instructor: David Yang (Science South 450, david.yang@csueastbay.edu)

Office Hours: You can find my office hours on my faculty info card.
Time: Mondays, Wednesdays 02:00P-03:50P
Location: SC-N112
Software: While we will make some use of the Oracle system we have at school, you will want to install some free software on a home machine. If your home network connection is slow, you will probably want to download it at school or elsewhere, then bring it home to install. Most of the work will be designed around Oracle Express (also known as Oracle XE) 10g. It requires about 1.1 GB of disk space to install. If you happen to have the whole Oracle 10g or 11g on your computer, that would obviously work, too.

For the 5th assignment on persistence, you may want to use Derby/Java DB or possibly another database instead, especially if you have an older computer. You will also want an IDE that provides support for the Java Persistence API (JPA), either NetBeans or Eclipse, plus an implementation of the JPA. Oracle developed TopLink, which they have turned into an Eclipse project called EclipseLink. (For C++ programmers, I am working on getting litesql on the Unix servers.)

Blackboard:
Here is a page with useful info related to Blackboard.

Text:
If you have not had the undergraduate database course here or elsewhere, I have asked the bookstore to order Ramakrishnan/Gehrke, Database Management Systems, ISBN 0072465638, McGraw-Hill, as an optional text, but the reading for the course will come from various online sources.

We will be using Oracle for most of the exercises, so we will make fairly substantial use of the Oracle documentation, which you can download or simply read through online.

Goals:

  • to further explore the database topics of a standard undergraduate course. Databases have evolved quite a bit, and these topics will not always "look like" databases. To solve various problems, the newer topics draw from not only databases, but data structures, programming language concepts, artificial intelligence, statistics, operating systems, among other areas.
  • To gain some experience with how companies that support databases are providing support for these newer topics.

Prerequisites

: You are expected to be fairly comfortable with Java or C++ and object-oriented concepts. The first and last homework assignments involve inheritance of interface, for example. You will also be doing a fair amount of work with Oracle's PL/SQL in the first 4 assignments. While a few students do not find the assignments that hard, I expect most students will find the first and last assignments difficult and the 2nd and 3rd assignments still relatively challenging. While it is always a good idea to get started early on assignments, it is going to be particularly important here.

Calculation of your grade: 
Assignments : 50%.
The midterm : 20%
The comprehensive final exam : 30%.

[grading note: Your exams must average (using the relative weights above) out to a B- or better in order to get at least a B- in the course.]

Final grades will be given according to the following scale:

93-100 A, 90-92 A-, 87-89 B+, 83-86 B, 80-82 B-, 77-79 C+, 73-76 C, 70-72 C-,67-69 D+, 60-66 D, 0-59 F 

Attendance:
Remember that standard policy dictates that students who do not attend can be removed in favor of students on the waiting list who do show up. Also, not being prepared for an exam is not an excuse to not show up -- if you do not have a verified excuse, you will be given a zero for the exam. If you find out in advance that you will not be able to be present on the day of the exam, you should (as in all your courses) let me know as soon as possible.

Academic Honesty: This course will follow the University's standard policy on academic dishonesty. In particular, note that regardless of whether you copy work from another student or allow another student to copy your work on an exam, you are both equally guilty and equally penalized. Copying text/files off the internet without properly giving credit is also cheating. Any cheating on an exam results in an F for the course. Cheating twice also results in an automatic F.

Remember that the University may inflict further penalties than listed here under the provisions of the published Academic Dishonesty Policy. 

Tentative Topic Schedule (planned timeframe -- 1 topic per week, except where noted)

  1. Database models : relational vs. object-relational, PL/SQL
  2. More on Data modeling: spatial data, R-trees
  3. More on data modeling: XML
  4. Data mining (2-3 weeks)
  5. Persistence packages vs. SQL -- Java Persistence API
  6. Frameworks -- Django
  7. Data warehouses
  8. Performance
  9. Heterogeneous databases

 
This webpage's layout is originally from Bill Parkinson, who used to teach in the evening program at St. Joseph's University.