CS178: Database Management Systems

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 emphasis will be on general concepts, and theoretical foundations, and thus will not focus on any particular commercial system. Some homework assignments, and the project, will require the student to use the Oracle database which is installed on the SEASCF facilities. 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/~narahari/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. Topics covered in class are linked to specific chapters in the textbook, as specified in the Schedule of Topics below.

Prerequisite:

  • CS 169, CS 141, CS 135 or CS 52
  • Text

    Database Management Systems, by Raghu Ramakrishnan, 3rd Edition, McGraw-Hill.

    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
  • 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
  • Advanced Topics:
  • Security
  • Information Retrieval Systems: Inverted files, Search engines
  • Spatial and Multimedia databases, Chapter 28
  • Data warehousing, Data mining, OLAP - Chapter 25, 26
  • Final Projects Presentation (in Lab section).
  • Lab Schedule: TBA

  • Lab TA: TBA
  • The Lab section will introduce Oracle and topics such as SQLPlus, PL/SQL, Oracle Forms, Embedded SQL, JDBC, MySQL, PhP. The labs will also provide a practical discussion of Application development- Chapters 6,7
  • Instructor Office Hours:  Tuesday, Thursday 3:00 -- 5:30pm, Wed 4-5pm
  • Grading policy:

    The work requirements for the course consist of (1) a number of homework assignments, (2) programming assignments, (3) two exams and (4) one project, requiring use of the Oracle DBMS or MySQL databases (decision will made during first month) The two exams (in-class closed book) will account for 45% of the total, the homeworks will account for 15% of the grade, the programming assignments account for 15% and the final project will account for the remaining 25%. Collaboration on the homeworks and programming assignments is not allowed under any circumstances. If you are not sure what this means then meet with the instructor for clarification. The project will require students to work in teams -- teams will be assigned during the first month of the course. l">Academic Integrity Policy