EECS647 Introduction to Database Systems (Fall 2009)

Important: we use KU Blackboard in this course.


"Introduction to the concept of databases and their operations. Basic concepts, database architectures, storage structures and indexing, data structures: hierarchical, network, and relational database organizations. Emphasis on relational databases and retrieval languages SQL, QBE, and one based on relational algebra and relational calculus; brief description of predicate calculus. Theory of databases, normal forms, normalization, candidate keys, decomposition, functional dependencies, multi-valued dependencies. Introduction to the design of a simple database structure and a data retrieval language. " --EECS Catalog

Time and Location:

Class: MWF 2pm-2:50pm, Learned 3154
Office hours: TBA, or by appointment
Instructor: Bo Luo (bluo <at> ku <dot> <edu>), AIM: bluoku, Google Talk: through homepage.
Grader: TBA


Database Systems: The Complete Book, Second Edition, by Hector Garcia-Molina, Jeff Ullman, and Jennifer Widom, Prentice Hall, 2008.

Tasks and grading:

Homeworks (15%): 8 homeworks (lowest score will be dropped).
In-class activities (15%): 3 in-class hands-on mini-projects.
Projects (30%): project details can be found here.
Exams (35%): closed book, closed notes, one page cheat sheet (letter size, double sided) allowed for midterm, two pages for final.
Class participation (5%): students are expected to sit in class and participate in class discussions.

A: 85+ or top 30%
B: 70+ or top 60%
C: 60+ or top 90%
D/F: 0-59


Academic Integrity

"Academic integrity is a central value in higher education. It rests on two principles: first, that academic work is represented truthfully as to its source and its accuracy, and second, that academic results are obtained by fair and authorized means. 'Academic misconduct' occurs when these values are not respected." -- Office of the Vice Provost for Student Success.

Office of the Vice Provost for Student Success Academic Integrity Webpage

University Policy (Academic Misconduct)


1 08/21 Introduction - welcome to EECS647    
2 08/24 Introduction to database systems    
08/26 ER    
08/28 ER   group
3 08/31 Relational model    
09/02 ER to relational model    
09/04 PBL I - ER to relational model    
4 09/07 Labor day - no class!    
09/09 ER-Team Competition    
09/11 Normalization    
5 09/14 Review: Conceptual and Logical design    
09/16 Team discussion I - (SoE Career Fair)    
09/18 Team discussion II   report 1
6 09/21 Relational algebra    
09/23 Relational algebra    
09/25 SQL - 1: Basic    
7 09/28 SQL - 2: Basic    
09/30 SQL - 3: Basic    
10/02 SQL: mini-project    
8 10/05 SQL - 4: Join    
10/07 SQL - 5: Join    
10/09 SQL: mini-project    
9 10/12 PHP: 1    
10/14 PHP: 2   report 2
10/16 Fall Break - no class!    
10 10/19 Team discussion III    
10/21 Midterm review    
10/23 Mideterm (1-page cheat sheet)    
11 10/26 SQL - 6    
10/28 SQL - 7    
10/30 SQL: mini-project    
12 11/02 Integrity, triggers    
11/04 Transactions    
11/06 Views, access control    
13 11/09 RDBMS: how it works?    
11/11 XML: data model, schema    
11/13 XML: XPath, XQuery    
14 11/16 XML: XML-relational    
11/18 New frontiers    
11/20 New frontiers    
15 11/23 Team discussion IV    
11/25 Thanksgiving - no class    
11/27 Thanksgiving - no class    
16 11/30 Project presentation    
12/02 Project presentation    
12/04 Project presentation    
17 12/07 Final review    
12/09 Final review   report 3
12/11 Stop day - no class!    


This project is designed for students to apply their knowledge into real world applications. Students are expected to design and implement a database-supported online application. For example: an online retailer (Amazon), an online auction (Ebay), a social network site (Facebook), and etc. Be creative!

  • Task 1: System design: system architecture, functions, ER diagrams, database structures, interface, etc.
  • Task 2: Implementation: PHP + MySQL suggested.
  • Note: you can use any programming language and SDK. However, you should NOT use any open-source or third party code, except for HTML generated by WYSIWYG editors.

Project Report

The group report is to show what you did in the project, especially, how you designed and implemented your system. The first interim report shall include overall system design, ER diagram and (conceptual) database design. The second interim report shall show your implementation plan and show at least 3 queries with join. The final report shall include everything. You are allowed (and suggested) to reuse the contents from previous reports. Please clearly state your results, and carefully proofread and edit the paper before submission.

You are expected to hand in a final report in the following formats:

  • Major sections such as Introduction, System Architecture, DB design, Implementation notes, Test results, Necessary Appendixes, etc.
  • A cover page (including project title) with group name and group members
  • Using double-spaced typing for convenient grading
  • E-copies only.

Project Log

With each report, please include an project log, which describes your activities in this project.

  • Clearly state the responsibility of each group member. If possible, give a table to tell who did which task, who implemented which component, who wrote which part of the report, who coordinated the group work activities, etc.
  • Give a log of your group activity, such as what you did on which day, and how many people attend.

Grading (30 points total)

  • Report 1: 5 points
  • Report 2: 5 points
  • Final report, performance and code quality: 15 points
  • Presentation: 5 points
  • Individual adjustment based on project log: -10 points to +10 points