CS410: Advanced Databases

Course Syllabus for "CS410: Advanced Databases"

While CS403: Introduction to Modern Database Systems covered many of the core concepts behind database management systems, there are many other considerations that should be addressed if you intend to pursue a career in this field.  This course will expand upon what you learned about SQL in CS403 and introduce various other advanced topics, including query optimization, concurrency, data warehouses, object-oriented extensions, and XML.  While CS403 introduced the basics of database management systems, the additional topics covered in this course will help you become more proficient in writing queries and will expand your knowledge base so that you have a better understanding of the field.  By the end of this course, you should have a solid grasp on data warehouses and XML, which will prove to be invaluable as you progress further in your Computer Science studies.

Learning Outcomes

Upon successful completion of this course, the student will be able to:

  • Write complex queries, including full outer joins, self-joins, sub queries, and set theoretic queries.
  • Write stored procedures and triggers.
  • Apply the principles of query optimization to a database schema.
  • Explain the various types of locking mechanisms utilized within database management systems.
  • Explain the different types of database failures as well as the methods used to recover from these failures.
  • Design queries against a distributed database management system.
  • Perform queries against database designed with object-relational extensions.
  • Develop and query XML files.

Course Requirements

In order to take this course, you must:

√    Have access to a computer.

√    Have continuous broadband Internet access.

√    Have the ability/permission to install plug-ins (e.g. Adobe Reader or Flash) and software.

√    Have the ability to download and save files and documents to a computer.

√    Have the ability to open Microsoft file and documents (.doc, .ppt, .xls, etc.).

√    Be competent in the English language.

√    Have read the Saylor Student Handbook.

√    Have access to a relational database management system.  A good open-source option is MySQL (dev.mysql.com).

√    Have completed CS101, CS102, CS107, CS201, CS202, CS301, and CS403 from the Computer Science discipline.

√    Have completed MA101.

Course Information

Welcome to CS410.  Below, please find general information on this course and its requirements. 

Course Designer:  Charles W. Lively, III

Primary Resources:

Requirements for Completion:  In order to complete this course, you will need to work through each unit and all of its assigned materials.  Specifically, be sure to focus on the tutorial exercises provided in Unit 1 to ensure a strong understanding of the SQL commands.

Please be aware that your mastery of the course material and final grade will be represented by your grade on the Final Exam.

In order to “pass” this course, you will need to earn a 70% or higher on the Final Exam.  Your score on the exam will be tabulated as soon as you complete it.  If you do not pass the exam, you may take it again.

Time Commitment: This course should take you a total of 97 hours to complete.  Each unit includes a “time advisory” that lists the amount of time you are expected to spend on each subunit.  These should help you plan your time accordingly.  It may be useful to take a look at these time advisories and to determine how much time you have over the next few weeks to complete each unit, and then to set goals for yourself.  For example, Unit 1 should take you 10.5 hours.  Perhaps you can sit down with your calendar and decide to complete subunits 1.1 and 1.2 (a total of 4 hours) on Monday night; subunit 1.3 (a total of 3 hours) on Tuesday night; etc.

Tips/Suggestions:  As noted in the “Course Requirements,” Introduction to Modern Databases is a pre-requisite for this course.  Please ensure that you have successfully completed this course and have a strong understanding of the fundamentals of SQL.