| Week | Date | Topics | Exercises | Reading |
| 6 | February 4 | Introduction (slides: ps.gz, pdf). Entity-Relationship Model (Ullmans slides: html) . | Chapter 1 and 2 in [GUW]. | |
| February 6 | The relational model. Conversion from E/R (Ullmans slides: html). Functional dependencies (Ullmans slides: html). | Sections 3.1-5 in [GUW] | ||
| 7 | February 11 | More on functional dependencies (Ullmans slides: html). Boyce-Codd normal form, third normal form (Ullmans slides: html). | Sections 3.5-6 in [GUW] | |
| February 13 | Fourth normal form (Ullmans slides: html). Relational algebra (Ullmans slides: html). | Sections 3.7 and Sections 5.1-3 in [GUW] | ||
| 8 | February 18 | More on the relational algebra. Start on SQL (Ullmans slides: html). | Exercise 2.1.1-2 in [GUW], question 8-12 in the midterm exam of Ullmans Fall 2001 course (ps), question 1-3 and 18-19 in the final exam of Ullmans Fall 2001 course (ps). | Sections 5.4-5 and Sections 6.1-2 in [GUW] |
| February 20 | More basic SQL (Ullmans slides: html and html). | Sections 6.3-7 in [GUW]. | ||
| 9 | February 25 | Constraints and triggers in SQL (Ullmans slides: html). | Exercise 6.1.3, 6.2.2, 6.3.1, and 6.4.6 in [GUW]. Try out your answers in mySQL (your can use these files with the data from Figures 5.10 and 5.11 (a and b): txt, txt, and txt). Solutions: Ex_6.1.3, Ex_6.2.2, Ex_6.3.1, Ex_6.4.6. | Chapter 7 in [GUW] |
| February 27 | Privileges (Ullmans slides: html). Transactions (Ullmans slides: html). | Sections 8.6-7. in [GUW] | ||
| 10 | March 4 | SQL and programming (Ullmans slides: html and html, JDBC example and its output when run on the data from Exercise 5.2.1). | Sections 8.1-5 in [GUW]. | |
| March 6 | Object-oriented DBs (Ullmans slides: html). | ODL and OQL parts of Sections 4.1-5 and Chapter 9 in [GUW]. | ||
| 11 | March 11 | Object-relational model (Ullmans slides: html). Semistructured data and XML (Ullmans slides: html). | Exercise 8.5.1 in [GUW]. Some solutions: Ex_8.5.1.a, Ex_8.5.1.e, Ex_8.5.1.f | Rest of Chapter 4 and 9 in [GUW]. |
| March 13 | More XML: XPath, XQuery (Ullmans slides: html). | Xpath and XQuery is not in [GUW]. See [MS] for an overview of these and other XML technologies. | ||
| 12 | March 18 | Data warehousing (Ullmans slides: html). Start on Datalog (Ullmans slides: html). | Chapter 20, Sections 10.1-2 in [GUW]. | |
| March 20 | Recursion in Datalog and SQL. | Sections 10.3-4 in [GUW]. | ||
| 13 | March 25 | External Memory. The I/O model. | Excercises 10.1.1 (only b, d, f, h ), 10.3.2, and 10.3.3 in [GUW]. | Sections 11.1-3 in [GUW]. |
| March 27 | Multi-way Mergesort. Speeding up disk access. | Sections 11.4-5 in [GUW]. | ||
| 14 | April 1 | Disk recovery and RAID. Data representation. | Sections 11.6-7 and Chapter 12 in [GUW]. | |
| April 3 | Index structures, B-trees. | Sections 13.1-3 (except 13.2.4) in [GUW]. | ||
| 15 | April 8 | Hashtables. Grid files, partitioned hashing, multiple-key indexes. | Sections 13.4, 14.1-2, and 14.3.1-2 in [GUW]. | |
| April 10 | kd-trees, quad-trees, R-trees. | Sections 14.3.3-8 in [GUW]. | ||
| 16 | April 15 | No lectures (Easter vacation) | ||
| April 17 | No lectures (Easter vacation) | |||
| 17 | April 22 | Bitmap indexes, inverted indexes. Query execution. | Sections 14.4, 13.2.4, 15.1-6, and 15.8 in [GUW]. | |
| April 24 | Query execution on parallel machines. Buffer management. Start on query compilation and optimization. | Sections 15.9, 15.7, 16.1, and 16.3.1-2 in [GUW]. | ||
| 18 | April 29 | More on query optimization. | Sections 16.2, 16.3.3, 16.4, and 16.5.1-3 in [GUW]. | |
| May 1 | Even more on query optimization. | Sections  16.5.4 and 16.6-7 in [GUW]. | ||
| 19 | May 6 | System failure recovery. | Chapter 17 in [GUW]. | |
| May 8 | Concurrency control. Locking schemes. | Sections 18.1-3 in [GUW]. | ||
| 20 | May 13 | More on locking schemes. | Sections 18.4-7 in [GUW]. | |
| May 15 | Dirty data and recoverability. Concurrency control by timestamping. | Sections 19.1 and 18.8 in [GUW]. | ||
| 21 | May 20 | Concurrency control by validation. View-Serializability. Deadlock handling. Distributed databases. | Sections 18.9 and 19.2-5 in [GUW]. | |
| May 22 | More on distributed databases. Guidelines for database design and tuning. | Sections 19.6-7 in [GUW]. Chapter 16 in [EN] and Section 21.2 in [SKS]. See also [R] for further guidelines on database design. |
[GUW] Hector Garcia-Molina, Jeff Ullman, and Jennifer Widom: Database Systems: The Complete Book. Prentice-Hall 2002, ISBN 0-13-031995-3.The website of the book contains many resources, including a list of errata and solutions to selected exercises in the book. We will be using the fine material on this website extensively, in particular Jeff Ullmans slides from Fall 2002.
For XML and related technologies, the following notes provides a good overview:
[MS] Anders Møller, Michael I. Schwartzbach: The XML Revolution - Technologies for the future Web. Online notes at www.brics.dk/~amoeller/XML/.
For a discussion of database tuning, we use excerpts from the following two books. Handouts can be obtained at the lecturers office.
[EN] Ramez Elmasri, Shamkant B.\ Navathe: Fundamentals of Database Systems, third edition. Addison-Wesley, 2000, ISBN 0-8053-1755-4.
[SKS] Abraham Silberschatz, Henry F. Korth, S. Sudarshan: Database System Concepts, fourth edition. McGraw-Hill, 2002, ISBN 0-07-228363-7.The online Chapter 2 (pdf) from
[R] George Reese: Java Database Best Practices. O'Reilly, 2003, ISBN 0-596-00522-9.also contains useful guidelines for the database design process.
javac and java, then invoke the
command /usr/local/bin/daimi-setup --addon java to set
things up for your account). Alternatively, it may be downloaded and
installed on your own machine at home. For information on using JDBC
with mySQL, see these instructions. For
general information on how to use JDBC in Java, see e.g. the nice introduction
from SUN, and the documentation for
the java.sql package of the Java distribution.
For the first part, you have the option of either doing a programming project (ps.gz, pdf) in a group of two persons or individually handing in solutions to the entire midterm exam (ps) and question 1-8 of the final exam (ps) from Jennifer Widoms Spring 2000 course. In both cases, the deadline for the first part is April 8. The actual subject of the programming project is negotiable - if you have ideas for another project of similar size which would make more sense to you (e.g. would be useful for you), come talk to the lecturer.
The second part consists of a series of exercises (ps.gz, pdf) from
the textbook, to be solved individually by each student. The deadline
for the second part is June 3.