Database Systems (Fall 2017/18)

Course Information

Instructor Information

  • Tova Milo, Professor
    Office Hours: TBA
  • Amit Somech, Teaching Assistant
    Office Hours: Wednesday 14:00 - 15:00 (by email appointment)

Course Goals and Short Syllabus

Databases are at the heart of modern commercial application development. Their use extends beyond this to many applications and environments where large amounts of data must be stored for efficient update and retrieval. The purpose of this course is to provide an introduction to the design and use of database systems, as well as an appreciation of the key issues in building such systems.

We begin by covering the relational model and the SQL language. We then study methods for database design, covering the entity relationship model. Time permitting we will then study XML as a data model and languages for querying it, and see how XML is used for sharing data among different applications in a distributed environment. We then inspect the architecture of a database system, and discuss efficient storage of data, execution of queries and query optimization. Finally, we touch on some advanced topics in database systems.

Course Format

The class meets once a week for 3 lecture hours. There will be about 3 homework assignments (some of which will involve programming). In addition, there will be a programming project, and a final exam at the end of the semester. You can usually find copies of the slides used in the lecture on this web site, a couple of days before the lecture.

Course Grading

  • Homework - 15%
  • Project - 35%
  • Final Exam - 50%
  • Bonus points: will be given to the top-5 scorrers on the class's Forum (See the exact terms at the first recitation session).

Textbooks

  • Database Systems: The Complete Book, by Garcia-Molina, Ullman and Widom, 2002
  • For SQL: SQL for Nerds, by Philip Greenspun

Additional Texts (can be found at the library):

  • Fundamentals of database systems, by Elsmasri and Navathe
  • Database management systems, by Raghu Ramakrishnan
  • Foundations of database systems, by Abiteboul, Hull and Vianu
  • Data on the Web by Abiteboul, Buneman and Suciu