CSE 315: Database Transaction Processing Systems

[Announcements] [Experiments] [Hints] [Home]


Instructor: Radu Grosu (grosu@cs.sunysb.edu)
Class:  Mon/Wed 3:50pm - 5:10pm, Engr 145
Office hours: Mon/Wed 12:00pm - 2:00pm, CS Building room 1425, and by appointment

TA: Alok Vadgaonkar (avadgaon@cs.sunysb.edu)
Office hours: Flexible timings, on student request, call or email me. Mobile : 5164295364


Contents


Course Motivation

Database transaction processing systems occupy a central position in our information-based society. Virtually every large system with which we interact in our daily lives has a database at its core: from simple supermarket checkout systems to life critical air traffic control systems. Over the next decades, we will become increasingly dependent on the correctness and efficiency of such systems.


Course Overview

This course is about the theory and practice underlying the design of correct and efficient applications involving transactional access to a database. Each concept introduced in the course is reinforced in a laboratory project where student groups are asked to use the transactional concept and analyze the consequences of its use in an application implementation.


Course Objectives

Provide the students of this course with a deep understanding of:
  • ACID (atomicity, consitency, isolation, durability) properties of transactions and their implications on system correctness and performance.
  • Various transaction processing models and how these models influence the design of applications involving transactional access to a database..
  • Implementation and support of ACID properties in modern relational and non-relational database trenasaction processing systems..
  • Modern architectures of distributed transaction processing systems and their influence on security, replication and ACID properties.

  • Course Prerequisites

    The official prerequisite of this course is CSE/ISE 305: Introduction to Database Systems.


    Course Textbook

    Databases and Transaction Processing: An Application Oriented Approach. By P.M. Lewis, A. Bernstein and M. Kifer. Addison Wesley, ISBN: 0-201-70872-8


    Course references

  • Transaction Processing: Concepts and Techniques. By J. Gray and A. Reuter. Morgan Kaufmann Publishers, ISBN 1-55860-190-2
  • Principles of Transaction Processing: For the Systems Professional. By P.A. Bernstein and E. Newcomer. Morgan Kaufmann Publishers, ISBN 1-55860-415-4

  • Laboratory Projects

    Six short laboratory projects (2 weeks allocated for each) covering: stored procedures, save points and nested transactions, isolation levels and phantoms, deadlocks and lost updates, indexes, performance issues.

    Students will work in teams of two on the projects. Both members of the team are expected to know the code. You are advised to start working on the projects at the earliest possible time even if the deadlines are far away. The date the projects are due will be clearly specified in the project handout, on the web; any changes in deadlines will be posted on the course homepages.

    Projects are due by 11:59pm on the specified date. Late projects will be penalized at the rate of 20% per day. So, there is no point submitting a project more than 4 days late! Each team can submit one project late by seven calendar days (1 week) without late penalty. You don't need to send me mail about this. No extensions will be allowed beyond this.


    Software

    JBuilder or NetBeans, TPPT(Transaction Processing Performance Tool)


    Communication

    This class is project intensive and you may want to exchange ideas and experience with each other. The best way to do this is by using the news group created specially for cse315. To subscribe to this group, proceed as follows (e.g. with the netscape browser): (1) right click the news.sunysb.edu, (2) select subscribe to Newsgroups, (3) choose the search panel and search for sbcs.cse315, (4) select the sbcs.cse315 newsgroup and click on the subscribe button. Now you are ready to send and retrieve messages.


    Course Grading

    Your performance on the programming projects will be the major part of the final grades. In addition, there will be a mid-term exam and a final exam. The relative weights for the above components will be:

  • Projects:  35%
  • Midterm exam: 30%
  • Final exam: 35%.

  • Your Rights and Responsibilities

    Special Needs

    If you have a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, you are urged to contact the staff in the Disabled

    Student Services office (DSS), Room 133 Humanities, 632-6748/TDD. DSS will review your concerns and determine, with you, what accommodations are necessary and appropriate.

    All information and documentation of disability is confidential.

    The Importance of Being Earnest

    Because a primary goal of the course is to teach professionalism, any academic dishonesty will be viewed as evidence that this goal has not been achieved. Any act of cheating will be treated with utmost seriousness.

    You can discuss the course material with other students, but not the homework assignments themselves. In effect, you can discuss the problems but not the solutions. If you help another student with a homework, use examples that do not resemble those in the homework. Remember that there are many different ways to solve the same problem; even solutions with the same central idea can be formulated in many different ways. Therefore, suspiciously similar homework solutions will be considered as evidence of disallowed collaboration or copying.

    In case you have any questions about whether an act of collaboration may constitute "cheating", please come and talk to the instructor beforehand to clarify the issue.

    Copying an assignment from another student in this class or obtaining a solution from some other source will lead to an automatic F for this course and to a disciplinary action. Allowing another student to copy one's work will be treated as an act of academic dishonesty, leading to the same penalty as copying. You should learn how to protect your data. Failure to do so is also unprofessional and it may expose you to the danger that someone will copy your homework and will submit it as his or her own (see above). In this case, you may be given a score of 0 for the assignment in question (and the other party will get an F).

    All cases of academic dishonesty will be reviewed by the Engineeing College's committee (CASA).

    Survival Tips

    Do not postpone working on assignments. Start working on programming assignments as soon as they are handed out. Do not wait till the day before the deadline. You will see that assignments take much more time when you work on them under pressure, than when you are more relaxed. Remember that no late submissions are allowed.

    Do not postpone working on assignments! This cannot be understated. Despite the above warning, most students will end up working only around the deadline. Remember, the homeworks usually take more time that it initially appears. Furthermore, I expect both the TA and me to be swamped on the office hours before projects are due. So, you, being wiser than the rest, should start earlier and beat the rush!

    Design before you code. Writing a well designed piece of code is always easier than staring with some code that "almost works" and adding patches to make it "really work".

    Follow good programming discipline. Why spend hours debugging when you can party? A little bit of thought before you do some esoteric pointer manipulation will save you a lot of time, headache and may be a grade!


    Tentative Schedule

    1. Overview of Transaction Processing Systems
    2. Embedded SQL, ODBC, and JDBC
    3. Models of Transaction Processing Systems
      • Flat Transactions
      • Savepoints
      • Nested Transactions
      • Distributed Transactions
    4. Implementing Isolation
    5. Implementing Atomicity and Durability
      • Models of Recovery -- Immediate Update and Deferred Update
      • Logs and Checkpoints
      • Media Failures
    6. Architecture of Transaction Processing Systems
      • Centralized Systems
      • Distributed Systems
      • Internet Systems
    7. Distributed Databases
      • Commit Protocols
      • Network Failures
      • Replication and Fragmentation
    8. Security and Internet Protocols
      • Symmetric and Assymetric Encryption
      • The SSL and SET protocols
      • Goods Atomicity and Certified Delivery
      • Electronic Cash

    Last updated on Feb 07, 2007 by Radu Grosu