Advanced Database Systems Design

 

Course No.

CS 632

Sections

001

Title

Advanced Database Systems Design

Course

Website

http://web.njit.edu/~geller/632/index.html

Prerequisite(s)

CS 631

Good knowledge of programming in any modern high-level procedural programming language such as Java or C++.

Instructor

James Geller

·  Office Room No.: 4307 GITC

·  Office Phone: 973 596-3383

·  Fax : 973-596-5777

·  Email : geller@njit.edu

Instructor

Office Hours

Tue 2:30 – 4:00

Wed 10:00 – 11:30

(Tentative; Subject to Change; Other hours by appointment)

Description

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. 

 

The purpose of the course is to get better in programming in an Oracle environment, especially in PL/SQL and to learn about building systems that have a relational database as a backend and the Web as a frontend. 

 

Topics

  • PL/SQL as "normal" language 
  • PL/SQL accessing tables 
  • Object Oriented Modeling 
  • Inserting etc. in PL/SQL 
  • Object Oriented DBs 
  • Triggers in PL/SQL 
  • Object-Relational DB 
  • Objects in SQL 
  • Intro to XML 
  • Database Security 
  • XML in SQL 
  • JDBC 
  • Querying XML 
  • Distributed Databases 
  • PSP Programming 
  • Minimal introduction to UNIX use
  • Web databases 
  • JavaScript 
  • Multi-Media Databases 
  • Performance Tuning 
  • AJAX 

 

Topics are subject to change or omission, depending on time.

Text Book(s)

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. Or use the Web. :) 

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

Time & Place

TUESDAY 8:30AM – 11:25AM; Kupfrian Hall 206

Other Info

Exams:

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

Homework:

There will be four homework assignments consisting mostly of PL/SQL programming. However, there will be additional questions and problems.  Late policies will be announced together with the assignments. In general, there will be late penalties. 

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 
Homework assignments. 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. 

 

Computer Use:

You have to get an AFS account (ID), if you don't have one. 

 

You will need a printer, Web access and a text editor (notepad will do). 

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


Oracle and Aqua:

We are using only the Oracle database system and PL/SQL.

PL/SQL is part of the normal Oracle distribution.

 
We are using Aqua Data Studio for as interface to Oracle. 
Here is information on Aqua. 

You may download 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

 

We use version 6.5. You will need the company name (New Jersey Institute of Technology) and license key. The key is available at the Request Product Key button at the download site. 

If there is a password problem, try this: 
https://mypassword.njit.edu/db

 

 

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

 

The ORACLE log in will ask you for your AFS ID, password and 
connection identifier. 

You should have received (or will receive) your own password by email from NJIT in the first week of classes.


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. 

 

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 Homework assignments 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 homework 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 homework assignments 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.