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:
- CS 143, CS 135 -- Fluency in Java, basic knowledge of
Architecture and systems.
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
- Selection of Advanced Topics (contingent on time):
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
- You must be registered in a lab section of CS 178. These will be
conducted by the TAs and some may have in-class exercises.
- The goal of the labs are: (1) serve as
a review session to review concepts covered in the lecture, and (2)
apply the concepts you learnt by working on some commercial DBMS' such
as Oracle and MySQL.
- Lab TAs: Stefan Poponeuvic
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 Materials: For lecture notes, homeworks, projects.
Course Materials Index