CS 632                                                     Fall 2008

SYLLABUS: CS 632 Advanced Database Systems

Time and Place

Friday 10:00am - 12:55pm  
Room: Kupfrian 203

1. Personnel
Instructor:           James Geller
Office:               4307 Information Technology Center (Guttenberg Building)
Phone:                596-3383  
Email:                geller@oak.njit.edu
Home Page:            http://web.njit.edu/~geller/ 
Office Hours:         See http://web.njit.edu/~geller/callink.html    
 
                      Tentatively office hours are scheduled as follows:
                      Monday 10:00-11:30;  Thursday 1:00-2:30
                      (Subject to Change and Cancellation due to Meetings.)    
                      
                      Additional hours are available by appointment.

2. Readings:

   1) REQUIRED:
   Oracle 10g Programming: A Primer (Paperback)
   by Rajshekhar Sunderraman
   Paperback: 438 pages 
   Publisher: Addison Wesley; 
   Copyright: 2008
   ISBN: 0-321-46304-8

   I did not reserve the book in the NJIT bookstore.
   Please get it at www.amazon.com or www.barnesandnoble.com
   or at your friendly local book store.

   2) RECOMMENDED:
   Learning Oracle PL/SQL
   Bill Prybil with Steven Feuerstein.
   O'Reilly.

   3) RECOMMENDED:
   Susan Boardman, Melanie Caffrey, Solomon Morse, and Benjamin Rosenzweig
   Oracle Web Application Programming for PL/SqL Developers
   The Prentice Hall PTR Oracle Series, 2003.

   4) RECOMMENDED:
   I personally recommend to students (that can afford it...) to buy
   books.  Thus having books on Java, HTML, XML and JavaScript is a good idea,
   even if we will not use them a lot.

   5) WEB MATERIAL AND HANDOUTS:
   There will be handouts in class and reading materials that can be found on
   the Web.


3. Assignments:

Exams:        There will be two Midterm Exams, and one Final Exam.

Homeworks:    There will be four homeworks consisting mostly of PL/SQL
              programming.  However, there wll be additional questions and
              problems.


4. Grading:
The assignments will be assigned points from the following maximum:

Midterm 1:               100
Midterm 2:               100
Final:                   200
Homework 1:               50
Homework 2:               50
Homework 3:               50
Homework 4:               50
                        ______
Total                    600  


At the end of the semester, I will add up your total points and curve
the results for the whole class.  
The department has voted on a stringent new curve for all courses.
Only the top 25% of the class should expect an A.
Furthermore, up to 20% of the class may face a C+, C, or F.
In my experience, students getting 550 out of 600 points tend to
be in the top 25%, but this is no guarantee for the future.

Also note that most students typically get all the points on the
Homeworks.  Thus your position in the curve and your class grade depend
almost entirely on the exams.  On the other hand, missing a single 
homework is highly likely to lower your grade at least one letter grade.


5. Doubts:

>>>>>> When in doubt, ASK <<<<<<<

6. Late policies:
Late policies will be announced together with the assignments.
In general, there will be late penalties.

7. Computer: 

You have to get an AFS account (ID), if you don't have one.  
Otherwise you cannot log into into ORACLE.
PL/SQL is part of the normal Oracle distribution.
You will need a printer, Web access and a text editor (notepad will do).

Media Services can be reached at (973) 596-3005.

In order to work from home on Oracle you need to install VPN.
See Here: http://telecom.njit.edu/vpn/

PREVIOUSLY we used this Oracle Client:
http://prophet.njit.edu:5560/isqlplus
It might still work, but the system people do NOT maintain it.
So you better don't get used to it.  Requests for fixes are NOT
honored.

The ORACLE Web page will ask you for your AFS ID, password and 
connection identifier.  

You should have received (or will receive) your own password
by Web mail in the first week of classes.  (If you didn't get the password 
email then check your email on "oak.njit.edu" AND on Web mail.)

The connection identifier that you are asked for is "course".

Furthermore, you can get extensive explanations of the ORACLE set up
by going to:

http://web.njit.edu/

There, click on the * sign next to Databases and then on ORACLE.

We will use a SECOND Oracle account for Oracle-Web programming.
Details of this account will be announced in class.
The programming that we will do is impossible with your "normal"
Oracle account.


Starting this semester we are using only Aqua Data Studio.
Here is information on Aqua.


You may download packages of Aqua Data Studio from this URL:

http://ist.njit.edu/software/title.php?id=293


Originally it is from: http://www.aquafold.com/downloads.html You may find documentation for Aqua Data Studio from this URL: http://docs.aquafold.com/ads/6.5/index.html You can get version 4.7 for free. For version 6.5 you need the company name (New Jersey Institute of Technology) and license key. The key is available at the Request Product Key button. If there is a password problem, try this: https://mypassword.njit.edu/db 8. Prerequisites: It is assumed that you have taken a graduate database class before and understand the relational data model well. It is assumed that you know SQL. It is assumed that you have extensive experience in programming. If you don't know any UNIX you still may take this class, but I strongly recommend for your own benefit that you learn the basics of UNIX and of an editor such as vi or emacs. 9. Course Description and Outline: This course has four parts. 1) Review your SQL and learn more of it. 2) Learn PL/SQL. 3) Study small parts of other languages that are needed in system building. We are interested in systems that have a Web frontend and a relational database backend. For this purpose we will use PSP (PL/SQL Server Pages). 4) Study a few advanced topics on databases, such as XML, OODBs, DB security, multimedia and distributed databases and ontologies. 10. Purpose of the Course: To get better in programming in an Oracle environment, especially in PL/SQL. To learn a little about building systems that have a relational database as a backend and the Web as a frontend. 11. Cheating The NJIT Honor Code will be upheld. Any violation will be brought to the immediate attention of the Dean of Students. Cheating on an assignment or exam will of course result in 0 credit. You may "talk" about Homeworks with each other. Where does talking end and cheating start? You may NOT copy lines of code from anybody. You may NOT use code in your program where you don't understand WHY it works, even if it works, and you wrote it yourself. A few years ago I caught a student who offered my homeworks on a commercial (bidding) Web site. In other words, he paid money to have somebody else do my assignments for him. I will be checking for this, and I will have no mercy if I catch you. The student in question was failed out of the course. Who knows, the person bidding to do your homework might be me.
In addition, I will give questions out of the homeworks on the midterm and final exam. If your answers on the exams are substantially wrong, even though you did the homework correctly I might question you about the homework and reduce your homework credit to zero, from whatever it was before.

You have been warned.


12. Legal Stuff

Students will be consulted by the instructor and must agree to any 
modifications or deviations from the syllabus throughout the course of the
semester. 



13. Course Details:

Course details shown below are subject to change.
This schedule is a little more ambitious than usual,
so I might have to drop some topics on the way.
I tend to be slower than I like, mostly to
answer questions and review material.

DATE ASSIGN DUE TOPIC
9-5 Introduction
9-5 PL/SQL as "normal" language
9-12 PL/SQL accessing tables
9-12 Object Oriented Modeling
9-19 Inserting etc. in PL/SQL
9-19 Object Oriented DBs
9-26 HOMEWORK 1 DUE Triggers in PL/SQL
9-26 Object-Relational DB
10-03 Objects in SQL
10-03 Intro to XML
10-10 HOMEWORK 2 DUE Database Security
10-10 XML in SQL
10-17 MIDTERM 1
10-17 JDBC
10-24 Querying XML
10-24 Distributed Databases
10-31 Introduction to PSP
10-31 Web databases
11-07 HOMEWORK 3 DUE PSP programming
11-07 Ontologies
11-14 Protege/Ontologies
11-14 MIDTERM 2
11-21 JavaScript
11-21 Multi-Media Databases
11-26 WEDNESDAY Performance Tuning
11-26 HOMEWORK 4 DUE AJAX
12-05 Overflow Lecture
12-05 You chose the topic
12-11 Reading Day
12-12 Reading Day
12-15 Finals start
12-19 Finals end