CS178: Database Management Systems

Spring 2008 Instructor: Prof. Bhagi Narahari


This course introduces students to concepts in database design and analysis. The course will focus on the relational model and will cover logical design of databases (schema design), physical implementation and file structures, and will provide an introduction to transaction processing systems.  The objective of this course is to expose the student to the basic concepts involved in designing and building a database management system, and to expose the student to practical database information system design through a team based project. The emphasis in the lectures will be on general concepts and theoretical foundations.  In addition to the theoretical concepts, the course through the lab section, and programming assignments and projects, will require students to use the Oracle and MySQL database systems (installed on the SEASCF facilities) and develop a large project. A secondary objective of this course is to provide team project development experience wherein students work in teams and will also be exposed to system integration. Course materials, information and course announcements can also be accessed through the web -- the URL for the web page for this course is  www.seas.gwu.edu/~bhagiweb/cs178/materials/index.html

Course lecture notes will be placed online; however, the lecture notes are meant to give you a reference to material discussed in class and are not meant as a substitute for the textbook. You are expected to read the textbook every week. Topics covered in class are linked to specific chapters in the textbook, as specified in the Schedule of Topics below. In addition, grades, solutions and submissions of homeworks/projects will also use Blackboard. 

Prerequisite:

Textbook:

Text Database Management Systems, by Raghu Ramakrishnan, 3rd Edition, McGraw-Hill, ISBN Number 0-07-246563-8

Reference

Fundamentals of Database System Concepts,3rd Edition, by Elmasri and Navathe, Benjamin-Cummings.

Schedule of Topics

  • Introduction to databases-Chapter 1
  • Intro to ER Model - Chapter 2
  • Relational Model: Relational Algebra, Relational Calculus-Chapter 3,4
  • Query Languages: SQL (Chap.5)
  • Design of Relational databases: Schema Refinement, Normal forms -Chapter 19, Notes
  • Start work on Projects
  • EXAM 1
  • Peformance Modelling, Database Tuning
  • File and System Structures: file organization- Chapters 8,9 , Notes
  • Indexing and Sorting: hashing, B-trees, External sorting -chapters 10,11, 13 Notes.
  • Query-Processing-chapter 12,14, 15 , Notes
  • Transaction Management: concurrency control, trans. processing, Failure and Recovery-notes, chapters 16, 17, 18
  • EXAM 2

  • Security
  • Information Retrieval Systems: Inverted files, Search engines
  • Spatial and Multimedia databases, Chapter 28
  • Data mining and analysis - Chapter 25, 26
  • Final Projects Presentation (in Lab section).
  • Lab Schedule: TBA

  • The Lab section will introduce Oracle and topics such as SQLPlus, PL/SQL, Oracle Forms, Embedded SQL, JDBC, MySQL, PhP, XML. The labs will also provide a practical discussion of Application development- Chapters 6,7. We plan on having a number of lab assignements to be done in the lab during the lab time.
  • Link to Lab Materials

  • Office Hours:

  • Instructor Office Hours:  Monday, Wednesday 10:30-12noon, 3:00-4:30pm. Other times by Appointment only.
  • Grading policy:

    The work requirements for the course consist of (1) a number of homework assignments, (2) programming assignments (both in lab exercises and take home), (3) two exams and (4) one project, requiring use of the Oracle DBMS or MySQL databases (students can choose which platform). The two exams (in-class closed book) will account for 40% of the total, the homeworks will account for 15% of the grade, the programming assignments account for 20% including in-class assignments and the project will account for the remaining 25%. The project has three phases, and some phases will require students to work in various teams -- teams will be assigned during the first month of the course, and more details are provided on the projects page.
    Grading Requirements: Details

    Academic Integrity Policy:

    You really should know better than to cheat in any form. Collaboration on the homeworks and programming assignments is not allowed under any circumstances, and you cannot use material from any other source. For the team based project, collaboration is allowed only within a team and you cannot collaborate or use material from any other source. If you are not sure what this means then meet with the instructor for clarification.  The Academic integrity policy, linked below, will be strictly enforced.
    Academic Integrity Policy

    Course Announcements: Check at least once a week here for announcements and updates

    Course Materials: For lecture notes, homeworks, projects.

    Course Materials Index