Objectives
This is an upper-level course on the internals of database management systems. This course places a heavy emphasis on programming projects. There are also readings assigned for each class and two exams. Upon successful completion of this course, a student should be able to:
- Use relational algebra to express database tables and queries.
- Use SQL to interact with database management systems.
- Implement a disk-oriented database storage manager with table heaps and indexes.
- Design a query processor.
- Understand distributed databases and implement concurrency control algorithms.
- Understand and constructively criticize database system architectures.
TextBooks
- DATABASE SYSTEM CONCEPTS (7/e by Silberschatz), ISBN: 9781260515046 - Required
- DATABASE MANAGEMENT SYSTEMS (3/e by Ramakrishnan), ISBN: 9780072465631 - Optional
Grading Scheme
The final grade for the course will be based approximately on the following weights:
- 60% - Assignments
- 20% - Midterm Exam
- 20% - Final Exam
Assignments
Students will work in groups (3 or 4) to complete the assignments during the course.
Each assignment is cumulative. That is, you need to successfully complete each project in order to complete the next one.
Each assignment carries 20% of the grade.
We will not teach students how to write/debug Python programs during the semester. It is a prerequisite for this course.
Exams
There will be two exams during the course. These exams will cover the mandatory readings and topics discussed in class. The first will be an in-class midterm exam. The second will be a final exam at during the University's final examination period at the end of the quarter.
Late Policy
Each person has an automatic extension of three calendar days for assignments only.
For instance, you can hand in one assignment three days late, or each of three assignments one day late.
Late days are rounded up to the nearest integer. For example, a submission that is 3 hours late will count as one day late.
When you hand in a late assignment, you must identify (1) how late this assignment is and (2) how many total extension days you have left.
If you hand in a homework late and have used up your extension days for assignments, the grade will be zero.
Plaigarism
We expect each student group to work on their projects in isolation, while each student will complete the exam by themselves. You cannot copy any part of a solution that was written by another group/students, or develop your project or homework solutions together with other groups/students, or copy solutions from any unauthorized source such as the Internet. You may not look at another group/student's solution without permission from the course staff, even if you have completed your own, nor may you knowingly give your solution to another group/student or leave your solution where another group/student can see it.
Here are some examples of behavior that are inappropriate:
- Copying (or retyping) homework, project, or exam solutions from another group/strudent or source, either in draft or final form,
even if permissions are incorrectly set to allow it.
This behavior is still clearly inappropriate even if you make modifications from the original source.
- Searching for or viewing a current or past group/student's homework, project, or exam solution.
- Allowing someone else to view or copy your code, written assignment, quiz, or exam, either in draft or final form.
- Getting help that you do not fully understand or from someone whom you do not acknowledge on your solution.
- Coaching others step-by-step without them understanding your help.
- Writing, using, or submitting a program that attempts to alter or erase grading information or otherwise compromise security of course resources.
- Lying to course staff.
- Making your work publicly available in a way that other students (current or future) can access your solutions,
even if others' access is accidental or incidental to your goals.
If your work contains any statement or code that was not written by you, you must clearly identify the derived work and cite the source. If you are paraphrasing an idea you read elsewhere, you must acknowledge the source. Using existing material without proper citation is plagiarism, a form of cheating. If there is any question about whether the material is permitted, you must get permission in advance.
It is not considered cheating to clarify vague points in the assignments, lectures, lecture notes, or to give help or receive help in using the computer systems, compilers, or other facilities.
Any violation of this policy is cheating. The minimum penalty for cheating (including plagiarism) will be a zero grade for the whole assignment; a typical penalty
will be 0 on the project.
Dishonesty while discussing an academic integrity issue (i.e. lying to course staff) usually results in an 'R' in the course.
All violations of this collaboration policy will be referred to the appropriate University disciplinary board, with possible additional disciplinary action.
For more information, see the University Policy on Academic Integrity.
If you have any question about how this policy applies in a particular situation, ask the instructors or TAs for clarification.