CS 2541: Database Systems


Instructors:

 Professor Bhagi Narahari   |   narahari [at] gwu.edu


Roxana Leontie   |   roxana [at] gwu.edu


 Mon 12:45-2pm, Wed 12:45--3:25pm SEH1300

TAs: Ayush Singh and Huzefa Raja    |ayushsingh, huzefa  [at] gwu.edu


Office Hours:

Roxana Leontie:

Bhagi Narahari: Monday 2-3:30pm SEH 2120E (Dean's Suite)

Ayush Singh: TBD

Huzefa Raja: TBD

 


Undergraduate TA: Billy Miller  bmiller8 [at] gwmail.gwu.edu

LAs: Kevin Deems and Jonathan Minkin   |  software8, minkinj  [at] gwmail.gwu.edu
Office Hours: TBD

Billy Miller:  SEH 4th floor

Kevin Deems: SEH 4th floor

Jonathan Minkin :




Course Outline and Objectives


This course will expose students to design and implementation of Database systems and team software development. The course introduces relational database design, query languages including SQL, theory behind the design of relational schemas and normal forms, database application development, and team software development.   It introduces  Not just SQL (NoSQL) database systems, types of NoSQL databases,  and design of NoSQL databases.  A semester long team project requiring the design and implementation of a relational database system and  full stack development.  As part of the Writing in the Disciplines (WID) requirement, a number of written reports will be assigned (in this class and in CS2501) and classroom discussions will be required.

Note: Students taking this course are also expected to be taking CS2501 to meet the degree requirements.

Learning Outcomes:

Upon completion of this course students should:

  • Design and evaluate relational database schemas, apply normalization techniques.
  • Understand formal relational query languages, and understand and write queries in SQL.
  • Experience programming in SQL using commercial relational database management systems.
  • Understand different types of NoSQL databases and experience application development for NoSQL systems
  • Improve technical writing skills, and write technical reports.
  • Give oral presentation and demonstration of term projects.
  • Build web applications, including both front end and backend, using database systems to solve real world problems.
  • Work in teams to design, implement, integrate and test a database application.
Course material and course announcements will be placed at the following URL: www.seas.gwu.edu/~bhagiweb/cs2541/

Prerequisites and Texts

  •   Prerequisites: CSci 1311, 1112, and Co-requisite of CSci2113
  • Primary Text: Notes will be provided and links to free online resources will be provided.
For those who wish to purchase a textbook, the following are recommended for Relational Databases (1)  Database Management Systems*, by Raghu Ramakrishnan, 3rd Edition, McGraw-Hill, (2) Fundamentals of Database systems, El-Masri and Navathe, 7th edition, Prentice Hall.
 
*The notes posted on the web will be sufficient for most of the database topics.

Working in Teams

In this course, you will work in a team during in-class exercises and the term project. Lectures and labs will include in-class activities, some of which will require students to work in teams to cooperatively solve the assigned problems. Participating in team activities is essential for learning in this course. Details of roles within a team, team contracts, and how your role changes in this class will be provided.


Writing Requirements
This is a WID course -- as a result there will be a number of writing requirements in this course and in CS2501. We will post some resources on this topic. As a starting point read the resources posted on the lectures webpage. A copy of the book The Elements of Style, by Willian Strunk and E.B. White Jr, Longman Press. An earlier edition is available free on-line.

Course Materials


Grading
There will be many components for the grade: Lab Assignments, Homeworks, Team assignments, Exams and quizzes, Written reports, Term project and in-class participation.  The tentative breakdown is provided below:
  • Assignments: Homeworks, in-class assignments/quizzes, and class participation:35%
  • Exam: 22.5%
  • Team based project: 42.5%
You have one week after the grade is posted to contact the instruction team. Afterr that your assignment will not be regraded. Details of grading and assessment are provided here.
Team based term Project
There will be a term project. The project will involve working in a team to design and implement a database System.

Syllabus:
  • Course Overview and Introduction to Database Systems. 
  • Introduction to the Relational Model
  • Formal query languages: relational algebra and relational calculus.
  • SQL and programming in SQL (MySQL)
  • Theory of relational schema design and normal forms
  • ER Model and ER to Relational mapping
  • Views, Security in SQL
  • Application development using PHP (or other server side tools)
  • Team Software Development 
  • Overview DBMS
  • Introduction to  NoSQL Database management systems, and Data Analytics (Data Mining)
    • MongoDB.
  • Project Demos
Official Syllabus Document

Lab Section and Teaching Assistants
You must be registered in the lab section. These will be conducted by the instructor(s) and TAs

The lab sessions will focus on skills related to database design - including, but not limited to, PHP, MySQL, and some NoSQL systems. You are expected, as a CS major, to learn enough web programming and web design on your own -- this is required for the project.


Lab Schedule
  • Front end dev. tools
  • Introduction to PhP
  • Introduction to MySQL
  • SQL Queries using MySQL
  • Team Project discussions and design document 1.
  • More SQL: App development with MySQL+PHP+Web Front end
  • Team project Phase 1 demos
  • Teamwork assessments.
  • Introduction to Unstructured Data (JSON) and NoSQL Databases
    • MongoDB
  • Team Project Phase 2 discussions - design document 2.
  • Team project final demos

Schedule of Lectures and Lecture Notes

Homeworks (blackboard)

Link to Lab Section Materials (github)


Projects and Teams


Academic Integrity Policy