IS 331-101 Database Design, Management and Applications Course Syllabus, V_0.9 (This is a preliminary version of the course syllabus; a final version will be available on the first meeting of the class. Note that we always reserve the right to subsequently make changes to the syllabus for the benefit of the class, and these will be announced in class.) Fall, 2011 Instructor: Dr. J. M. Scher Office: Room 4105 GITC (Office Hours (preferably by prior appointment) - Mondays, 5:00PM – 5:45PM, Tuesday, 4:00PM -5:00PM, Friday, 2:30PM – 3:30PM) Phone: (724) IS331NJ , (which is 724-473-3165), and is Dr. Scher’s Google Voice phone number); ( If urgent, you can also leave a msg. for Dr. Scher at the IS Secretary (973) 596-3368 ) E-Mail: IS331NJIT@GMAIL.COM – use only this email address to contact Dr. Scher, and please do NOT send IS431 email to Dr. Scher's NJIT ADM account, and DO NOT message him through Moodle!) Textbook: D. Kroenke and D. Auer, DATABASE PROCESSING: FUNDAMENTALS, DESIGN & IMPLEMENTATION, TWELFTH Edition, Pearson/Prentice-Hall, 2012. ISBN: 10:0132145375 or 13:9780132145374 (Earlier editions of this text will NOT satisfy the course requirements - only purchase and use the current edition, which has a copyright date of 2012). Course Overview: IS331 introduces the student to database design, exemplary database applications, and the need for databases and their utilization as a strategic corporate resource. Topics include (1) data modeling (primarily E-R data modeling), (2) relational database design (including database integrity issues), (3) professional and ethical responsibilities of database professionals, (4)\ query design (including the Relational Algebra), (4) functional/multivalued dependencies, (5) relational decomposition and normalization (through 3NF, BCNF, 4NF and DKNF), (6) Denormalization and read-only/non-updateable databases, including data warehouses, and (7) Structured Query Language (SQL) and Oracle. Course Description (modified and adapted from Catalog): Businesses use databases extensively for analysis and decision-making because they provide efficient, large-scale information storage and rapid retrieval. Databases support the “back end functionality” of most large web systems. This course gives students extensive, pragmatic experience in designing, building, querying, updating, maintaining and managing relational databases, using the Structured Query Language (SQL). Proper database design principles are emphasized throughout the course, beginning with high level descriptions of relational databases using data modeling tools (such as ER (Entity Relationship) diagrams) and progressing to relational database design principles based on higher order normalizations. We will examine some poorly designed databases and show how these can be transformed into well designed databases. SQL will be extensively covered, and students will design and implement sophisticated SQL queries invoking self-joins, outer joins, correlated subqueries and related concepts. Students will explore and utilize design methodologies for input data validation and maintaining database integrity, and study related issues of database privacy and security. Advanced topics to be discussed include the role of the Database Administrator (DBA), database life cycle activities, database denormalizations, read-only databases and data warehouses. Hands-on experience will be gained by working with actual databases using industrystandard database management systems such as Oracle. Prerequisite: Completion of a 100-level GUR course in computing, such as IS118 or CS101 or CS104 or CS113. (It is also assumed that students have some familiarity with Microsoft Office (2007 or 2010), including Microsoft Access.) Exogenous Class Communication Space/Learning Management System: We will be using Moodle, an open source Learning Management System at NJIT, for the posting of projects and class resources. Students are obligated to log into Moodle on a near-daily basis, and to keep current. Course Goals: To understand the design and development issues regarding databases. Students will obtain a strong conceptual foundation of the underpinnings of database design, as well as gain experience with some commercial database management products, ranging such as Oracle. IS331 seeks to provide the student with the conceptual and pragmatic aspects and issues related to designing, implementing, managing, deploying and utilizing database applications, with the emphasis on the student’s comprehension of key concepts in database design (as opposed to programming or algorithms). The student will utilizes various DBMS products and software tools, such as Oracle, to put into practice the database concepts presented. Lecture Notes: Slides will be downloadable each week Course Grade Components: Midterm Exam (closed book) 33% Final Exam (open book) 34% Weekly Database conceptual assignments and DBMS projects 33% Policy on Collaboration/Cheating: Every assignment/project is a 'home-mini-exam.' The NJIT Honor Code will be strictly upheld. Students found cheating/collaborating/plagiarizing will be immediately referred to the Dean of Students and the NJIT Committee on Professional Conduct and subject to possible Disciplinary Probation, a permanent marking on the record, possible dismissal and a grade of 'F' in the course. All submitted assignments are carefully checked for similarities, and plagiarism and guilty students will be identified and referred to the Dean of Students for disciplinary action. Policy on Lateness of Submission: Every assignment will have a due date, and all submissions must be done in class by this due date. Assignments submitted after the due date will NOT be accepted. NO EXCEPTIONS. Below are the TOPICs covered in the course and the related TEXTBOOK readings. Remember one of the keys to success in IS331 is your own self-discipline - your goal should be to maintain currency each week, and NEVER fall behind! (Note: this is a tentative schedule, and we reserve the privilege to modify and edit all attributes of this table (topics, dates, etc.) for the benefit of the course.) Class Meeting TOPICS PRESENTATIONS. TEXTBOOK READINGS, SOFTWARE ACTIVITY, SAMPLE DATABASES, PROJECTS 9/12 Welcome, Introduction to Database Concepts and Database Design, Database Properties, File Processing Systems, Database Examples, Flat File Databases, Relational Databases (as discussed in class, and presented in Moodle) 9/19 High-Level Descriptions of Relational Databases, Using Entity Relationship Data Modeling and E-R Diagrams (both Chen and Crow’s Foot Notational Schemes) (as discussed in class, and presented in Moodle) 9/26 Querying a Database. The Relational Algebra for Query Design, RA Operators and Querying a Database (using GQBE), Responsibilities of the database professional, including database integrity and ethical obligations involving privacy/security of data, relational database design, designing validation rules for database integrity (as discussed in class, and presented in Moodle) 10/3 Introduction to the syntax of Structured Query Language (SQL) (as discussed in class, and presented in Moodle) 10/10 Continued discussion of using SQL in the design of database queries (as discussed in class, and presented in Moodle) 10/17 An Object-Oriented Approach to Database Modeling: Semantic Object Data Modeling, Using Cool Strategy.com's Table Designer 1.0a (as discussed in class, and presented in Moodle) 10/24 Midterm Exam (precise details to be announced) 10/31 11/7 11/14 11/21 Examining some poorly designed databases, and the conceptual tools we have for optimal database design, (as discussed in including concepts of functional dependencies, class, and presented Armstrong’s axioms, relational decompositions and in Moodle) lossless joins, and inferring new functional dependencies from existing functional dependencies Ramifications of poorly designed databases, and optimal database design using Database Normalization (1NF, 2NF, 3NF, BCNF, 4NF). Multivalued Dependencies (as discussed in class, and presented in Moodle) (as discussed in The highest order normal form (Domain Key Normal class, and presented Form) and issues in proper Relational Database in Moodle) Design Database Design Using Normalization & Denormalization, (as discussed in Updatable vs. Read-Only Databases, Data class, and presented Warehousing in Moodle) 11/28 (as discussed in Aqua Data Studio and Oracle, and SQL for Database class, and presented Construction and Application Processing in Moodle) 12/28 Advanced SQL, including sophisticated SQL queries involving self-joins and inner and outer joins. (as discussed in class, and presented in Moodle) 12/5 Database Redesign, SQL Correlated Subqueries, and the SQL EXISTS and NOT EXISTS; (as discussed in class, and presented in Moodle) 12/12 Database Security (as discussed in class, and presented in Moodle) 12/19-12/20 Comprehensive Final Examination