Advanced Database Systems Design

Course No.

CS 632

Sections

002

Title

Advanced Database Systems Design

Time & Place

Monday 10:00 – 11:20

Kupfrian 103

This is a HYBRID course. Half the work has to be done online.

By watching videos on CANVAS and answering quiz questions there.

Course

Website

https://web.njit.edu/~geller/632/

 

Please PRINT the class material before you come to class.

Prerequisite(s)

CS 631 AND

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

Instructor

James Geller

·  Office Room No.: 4410 GITC Building

·  Office Phone: 973 596-3383 (I am more likely to reply quickly to email than to phone!!!!)

·  Fax : 973-596-5777 (Nobody is using fax anymore, really.)

·  Email : james.geller@njit.edu

Instructor

Office Hours

MON 2:30 – 4:00 (subject to change)

TUE 1:00 – 2:30 (subject to change)

 

OTHER TIMES BY APPOINTMENT ONLY

 

(Due to frequent travel and meetings I will often NOT be here. Always email me before you come, to make sure that I am here. )

Description

This course has six parts. 

1) Review your SQL and learn more of it. 
2) Learn PL/SQL. 
3) Practical ETL (Extract-Transform-Load) of data.
4) Study of a few advanced topics on databases, such as XML, OODBs, DB security, Indexing, and Buffer tuning, and some basics of UNIX/AFS use. 

5) Study JSON and No-SQL databases, especially MongoDB.

6) Regular expressions in Oracle SQL

 

The purpose of the course is to get better in programming in an Oracle environment, especially in PL/SQL and to learn about different models of data, such as objects, XML, and JSON.

Learning

Outcomes

At the end of the course, students will have a working knowledge of the following subjects and techniques:

  • PL/SQL as "normal" language 
  • PL/SQL accessing tables 
  • Using Oracle SQL Developer for Oracle programming
  • Extract-Transform-Load
  • Object-Oriented Modeling 
  • Inserting etc. in PL/SQL 
  • Object-Oriented DBs 
  • Triggers in PL/SQL 
  • Object-Relational DBs 
  • Regular expressions in Oracle SQL
  • Objects in Oracle SQL
  • HTML (brief)
  • Intro to XML 
  • Into to JSON
  • Database Security 
  • XML data insertion in Oracle SQL 
  • Querying XML in Oracle SQL
  • JSON in Oracle SQL
  • Introduction to UNIX/LINUX/AFS (shell use) (brief)
  • Introduction vi (brief)
  • No-SQL databases, esp. MongoDB
  • Intro to MongoDB use
  • Indexing in Oracle and MongoDB
  • Buffer Tuning, Exceptions, Transactions (brief)

 

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

The meeting-by-meeting outline may be found in the course calendar in a separate document.

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 

If there are not enough copies in the NJIT bookstore, then 
please get it at www.amazon.com or www.barnesandnoble.com. 
2) WEB MATERIAL AND HANDOUTS: 
There will be handouts in class and reading materials as well as videos that can be found on the Web. 

Grading Policy

Exams:

There will be two midterm exams and one final exam. 


Homework (= Project):

There will be four programming homework assignments covering all the material that we are studying in the class.  Late policies will be announced together with the assignments. 

 

In general, there will be late penalties. 

 

In Class Credit

Occasionally I will give you some work to do in class.

This work will carry credit.  I will announce the details in class.

 

You CANNOT make this up later and you CANNOT do this from home. In Class means: while you sit in the class room.

 

Canvas Credit

There will be Canvas Quizzes EVERY WEEK which you have to do at home. I will check EVERY WEEK whether you are keeping up with the quizzes.

 

By the end of the semester, if you did not do all the quizzes you will get an F in the class, even if you have passing grades on all exams and all homeworks.

 

If you do fall behind on the Canvas quizzes by three weeks I will send you a “Warning you will fail the course” message.

 

If you do Canvas quizzes late, you will not get points for them.

Even though you still have to do the old quizzes, because otherwise the system does not let you access the new quizzes.

 

 

Extra Credit

There will be NO way to get extra credit. Please don’t ask.

 

 

Grading: 
The assignments will be graded with points from the following maxima: 

Midterm 1*:                                   100

Midterm 2*:                                   100
Final Exam*:                                 200 

 

Programming Homework 1:            40 
Programming Homework 2:            40 
Programming Homework 3:            40 
Programming Homework 4:            40

In Class Credit**:                            18  (6 * 3)

Canvas Quiz Credit:                        22  (11 * 2)

                                                ______ 
Total                                              600 

 

* Exams will be in class for face-to-face and for Hybrid classes. If the class is run in full distance learning mode appropriate software tools will be used for exams taken off campus (see below).

 

** If and only if the class is run in full distance learning mode, the In Class Credit will be replaced by biweekly online discussion sessions.

Penalty Points:

I reserve the right to take penalty points off from students whose phones are ringing during an exam.

 

Letter Grade:
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 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 by one letter grade. 

 

Make-up Policy:

Exam makeup after missing the exam will be only allowed in extreme cases with written proof, e.g., hospital stay, car accident with police report, and similar.

 

Exam makeup due to travel may or may not be approved ahead of time and never after the trip. As above, trips related to an extreme emergency, e.g., death in the family, will be allowed with written proof (death announcement in a newspaper or government death certificate with official English translation, if from a foreign country).

Cellphones, Headphones, Earbuds

I will talk about this in class in detail.

As basic rules:

·         You may not have earbuds in your ears during class.

·         You may not have headphones on your ears.

·         Your cell phone must be on silent during the class. Any ringing during the class will disturb the professor and the other students.

·         Unless you have a very good reason (e.g., a family member in the hospital) you should put your cell phone where you CANNOT SEE IT. It would be best if you put it in your bag.

·         All of the above should be “of course” in your eyes.

Computer Use

 

BRING YOUR CHARGED LAPTOP TO EVERY CLASS.

 

The Department has a Bring Your Own Device Policy.

If you do not own a laptop talk to the Department Chair (or take a different class.)

 

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

 

You will need a printer, Web access, AFS access and a text editor (notepad will do). You will need fast internet access if you work from home.

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

Moodle:

We will not use Moodle this semester.

 

Canvas:

We will use CANVAS. You will need to watch videos posted there and take quizzes there.   

Oracle and SQL Developer:

You will use the Oracle database system and PL/SQL.

PL/SQL is part of the normal Oracle distribution.

Instructions about SQL Developer are in the class materials web page and I will talk about them in the lecture.

MongoDB:

We will use MongoDB.  It is available at NJIT.

 

Studio3T:

We will use the Studio3T development environment as a frontend to MongoDB.  The company is making it available for free to NJIT students.  Find the information here:

https://studio3t.com/discount/education

 

 

 

NJIT Passwords:

If there is an NJIT password problem, try this: 
http://myucid.njit.edu

This is the UCID password reset.

 

You need a DIFFERENT password for Oracle.

How do you get that different password?

Go to:

https://ist.njit.edu/database-password-assistant/

 

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

 

The computer we are using is called prophet.njit.edu
The connection identifier that you will be asked for is course. 

Furthermore, you can get extensive explanations of the ORACLE setup by going to:  http://ist.njit.edu/support/db/oracle.php

 

RESPONDUS: We will use the Respondus Lockdown Browser as needed.

Cheating

“Academic Integrity is the cornerstone of higher education and is central to the ideals of this course and the university. Cheating is strictly prohibited and devalues the degree that you are working on. As a member of the NJIT community, it is your responsibility to protect your educational investment by knowing and following the academic code of integrity policy that is found at:

 

http://www5.njit.edu/policies/sites/policies/files/academic-integrity-code.pdf.   

 

Please note that it is my professional obligation and responsibility to report any academic misconduct to the Dean of Students Office. Any student found in violation of the code by cheating, plagiarizing or using any online software inappropriately will result in disciplinary action. This may include a failing grade of F, and/or suspension or dismissal from the university. If you have any questions about the code of Academic Integrity, please contact the Dean of Students Office at dos@njit.edu


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 even if 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.