Course Overview

Professor: Simon Miner Spring Semester 2015
Contact: simon.miner@gordon.edu
978-380-2626
KOSC 243
Wednesday 6:00 - 9:00 pm - KOSC 125
Office Hours: Wednesday 4:00 - 6:00 pm and by appointment Course Website

Catalog Description

Explores database technology; various data models, query languages, and application program-DBMS interface. Prerequisites: CPS122, CPS221, and MAT230.

Course Objectives

In general, this course is designed to introduce you to basic database management system concepts and applications.

In particular, upon completion of this course, you should be familiar with the following:

  1. The entity-relationship and relational data models, plus new directions involving "NoSQL" persistence models.
  2. The use of SQL.
  3. Design and normalization principles for relational databases, including the various normal forms.
  4. Underlying file structures used to implement databases, and their performance implications.
  5. Multi-user database concerns such as crash recovery, concurrency control, security, and integrity.
  6. The emerging field of data science and its main concerns and areas of focus.
  7. Various applications of database systems.

Course Texts and Resources

Silberschatz, Abraham, Henry F. Korth and S. Sudarshan. Database System Concepts (6th ed.). (New York: McGraw-Hill, 2010).

Sadalage, Pramad J. and Martin Fowler. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. (Addison-Wesley: 2012).

AVAILABLE ONLINE: Selected tutorial and resource material on SQL, information on various DBMSs, persitence systems, and other topics, as well as documentation for the particular database system used for homework and projects is available in the Resources section of this site.

Course Techniques and Procedures

This is a survey course, in which we will gain a general familiarity with a large volume of material. For this reason, textbook reading and problem sets will play a significant role in the course, with a somewhat reduced emphasis on actual programming. Homework exercises and two projects (one focusing on database design and the other on programming with commercial DBMS software) will provide opportunities for you to experience practical application of the theoretical material.

Course Requirements and Evaluation

  1. You will be expected to read most of the textbooks, as assigned in the topic schedule below. Reading assignments should be completed BEFORE the class session in which the topic is discussed.
  2. Eight (8) homework sets will be distributed during the semester and will be due as shown in the course schedule. These will consist mostly of selected problems from the texts, plus exercises using online database tools. All told, these will account for 40% of your final course grade.
    Set Number Tentative Emphases
    1 Fundamental Concepts; The Relational Model; Relational Algebra
    2 SQL
    3 Relational Database Design and Normalization
    4 Database Application Development; DBMS File Structures; Indexes; Efficient Query Processing/Optimization
    5 Transactions; Concurrency; Crash Recovery
    6 Database Architectures; Parallel and Distributed Databases
    7 NoSQL
    8 Data Science

    The following guidelines should be observed when completing these homework sets:

    • Homework assignments will be due at the start of class on the date indicated. Late homework sets will NOT be accepted.
    • Completed omework assignments (or links to them) must be submitted electronically to the professor via email. Solutions may be sent either inline within the email message body, as one or more file attachments in common text formats (i.e. Microsoft Word, PDF, HTML, plaintext), or as a URL to an online or downloadable copy the solution, whichever is appropriate. Problems must be numbered, and final answers (where appropriate) should be highlighted. (Homework sets not conforming to these standards will be returned ungraded.)
    • You may work together with another student on homework, provided each of you works on each problem and submits his or her own copy of the solutions.
    • Where an exercise calls for writing a program, it is sufficient to include the typed source code in your homework submission; you need not enter it into the computer.
  3. Structured Query Language (SQL) is the standard language for querying relational databases. For this reason, it is important that you become thoroughly familiar and comfortable with using SQL. Most homework sets will include several questions that can be answered by performing a query on an example database; you will be required to turn in the queries and the results they yield as part of the homework. Learning how to formulate the required queries may require some searching of relevant SQL tutorials and reference material.
  4. During the semester, you will apply the material you are learning to a project in which you will design a database application of your own choice, requiring on the order of a dozen tables. You will be responsible for turning in (1) a description of the requirements for this system; (2) an ER diagram; and (3) an actual database with simulated data. (You are not responsible for building the application - only for designing its underlying database.) Specific requirements for the project will be distributed in class. All parts of this project, together, will be worth 10% of your final course grade.
  5. You will complete a major programming project involving the development of a DBMS application using a database design furnished by the instructor. Specific requirements will be distributed in class. This project will be worth 10% of your final grade.
  6. You will also research a NoSQL or data science technology of interest to you that we do not cover in class. You will prepare a report on your research and give a brief oral presentation of this technology to your peers and instructor during one of the final class sessions. This assignment will be worth 10% of your final course grade.
  7. There will be two (2) take-home examinations (a midterm and a final exam) given as shown in the course schedule below. Each of these exams will account for 15% of your final course grade (for a total of 30%). Exams will be open book, open notes.
  8. SUMMARY 8 Homework sets 40%
    Databse Design Project 10%
    Databse Programming Project 10%
    NoSQL/Data Science Research Project 10%
    Exams 30%
    100%
  9. Your final grade will be computed on the basis of a weighted sum of the items listed above.
  10. The following are the minimum guaranteed grades for the percentages indicated:

    93% - 100%: A 90% - 92.9%: A-
    87% - 89.9%: B+ 83% - 86.90%: B 80% - 82.9%: B-
    77% - 79.9%: C+ 73% - 76.90%: C 70% - 72.9%: C-
    67% - 69.9%: D+ 63% - 66.90%: D 60% - 62.9%: D-

Policies

Policy Statement on Extensions and Incompletes

  1. Extensions to the homework or project due dates will be given in the event of extenuating circumstances (such as illness, personal emergency, etc.) IF you submit a brief written request to the professor as soon as possible after the circumstances arise. This request will be initialed (if approved) and will be returned to you. You must attach it to or cite it on the piece of work for which the extension was granted.
  2. A grade of Incomplete will be given without penalty IF you are unable to complete the course work by the last day of the term due to major illness or other similar emergency. Again, a written request should be submitted. Such a request will only be granted if you are substantially up-to-date with your course work and were making good progress in the course up to the time that the difficulty arose. Of course, you must complete all work for the course by the midpoint of the next semester in accordance with College policy.

Academic Dishonesty

From the Gordon College Student Handbook: "Academic dishonesty is regarded as a major violation of both the academic and spiritual principles of this community and may result in a failing grade or suspension. Academic dishonesty includes plagiarism, cheating (whether in or out of the classroom) and abuse or misuse of library materials when such abuse or misuse can be related to course requirements." For the purposes of this course, abuse or misuse of Gordon computer systems or networks related to course requirements will also be viewed as academic dishonesty.

Academic dishonesty will not be tolerated. You know better. Just don't.

Class Attendance and Participation Policy

Regular class attendance and participation is an essential component of this course and expected of all students. Class attendance and participation will be recorded. Please come to class having completed the assigned reading for the day and ready to discuss and unpack the material with your instructor and peers.

Absences from class will be classified as "documented" or "undocumented." A documented absence is one where written documentation is submitted supporting the absence from class due to circumstances beyond the student's control. An undocumented absence is any other absence, including one that could qualify as documented if proper documentation were submitted. Multiple undocumented absences will impact your final course grade as follows:

  • Each student may take one (1) undocumented absence without penalty.
  • Each subsequent undocumented absence will cause the student's final course grade to be reduced by 3%.
  • Students with more than four (4) undocumented absences will automatically fail the course.
  • Students who arrive more than five (5) minutes late to class more than three (3) times during the semester will have each subsequent late arrival to class counted as a half undocumented absence for that class.

A student's participation in class discussions and exercises will be factored into his or her overall course grade. Constructive questions, dialog, and feedback on the course subject matter is encouraged during class time, and the instructor will take each student's class participation into account when assessing the student's final grade. If two students score identically on homework assignments, projects, and exams, but one of them consistently makes positive contributions to class discussions while the other does not, the student with steady class participation will receive a higher grade for the course.

Students with Disabilities

Gordon College is committed to assisting students with documented disabilities (see Academic Catalog Appendix C, for documentation guidelines). A student with a disability who may need academic accommodations should follow this procedure:

  1. Meet with a staff person from the Academic Support Center (Jenks 412 x4746) to:
    1. Make sure documentation of your disability is on file in the ASC,
    2. Discuss the accommodations for which you are eligible,
    3. Discuss the procedures for obtaining the accommodations, and
    4. Obtain a Faculty Notification Form.
  2. Deliver a Faculty Notification Form to each course professor within the first full week of the semester; at that time make an appointment to discuss your needs with each professor.

Failure to register in time with your professor and the ASC may compromise our ability to provide the accommodations. Questions or disputes about accommodations should be immediately referred to the Academic Support Center. See Grievance Procedures available from the ASC.

Tentative Schedule of Topics

Date Topic(s) Reading Homework / Projects Due
W 1/14 Course Introduction; DBMS Fundamentals Silberschatz et. al., Ch. 1 Start Design Project
W 1/21 The Relational Data Model; Relational Algebra;
Class Presentations/Discussions of Design Project Requirements
Silberschatz et. al., Ch. 2, 6.1 DESIGN PROJECT MILESTONE I;
Start Homework 1
W 1/28 SQL Silberschatz et. al., Ch. 3-5 none
W 2/4 Entity Relationship Modeling Silberschatz et. al., Ch. 7 HOMEWORK 1
W 2/11 Database Design;
Class Presentations and Discussions of Design Project ER Diagrams
Silberschatz et. al., Ch. 8 HOMEWORK 2;
DESIGN PROJECT MILESTONE II
W 2/18 Database Normalization Silberschatz et. al., Ch. 8 none
W 2/25 Database Application Development Silberschatz et. al., Ch. 9 HOMEWORK 3;
Exam 1 Distributed
W 3/4 File Structures and Indexes Silberschatz et. al., Ch. 10-11 EXAM 1
W 3/11 (Spring Break)
W 3/18 No Class
W 3/25 Class Presentations/Discussions of Design Project;;
Query Processing Strategies and Optimizations
Silberschatz et. al., Ch. 12-13 DESIGN PROJECT MILESTONE III;
Start Programming Project
W 4/1 Transactions: Crash Recovery Silberschatz et. al., Ch. 14, 16 HOMEWORK 4
W 4/8 Concurrency Silberschatz et. al., Ch. 15 PROGRAMMING PROJECT PART I
W 4/15 Database Architectures; Parallel, Distributed, and NoSQL Databases Silberschatz et. al., Ch. 17-19; Sadalage & Fowler, Ch. 8-15 HOMEWORK 5; Start NoSQL/Data Science Research Project
W 4/22 NoSQL Databases Sadalage & Fowler, Ch. 8-15 HOMEWORK 6;
PROGRAMMING PROJECT PART II
W 4/29 Data Analysis; Data Science Silberschatz et. al., Ch. 20-21
Data: Emerging Trends and Technologies
HOMEWORK 7
W 5/6 NoSQL/Data Science Research Presentations;
Course Review
none HOMEWORK 8;
NoSQL/Data Science Research Project;
Exam II Distributed
W 5/13 Final Exam due by 3:00 p.m.. EXAM II