Course Syllabus

Table of Contents

I. Information

  • CSE462 - Database Concepts, Spring 2011
  • Course Hours
    • LEC: M-W-F 3:00-3:50pm, 322 Clemens
    • R1: M 10:00-10:50am, 118 Baldy
    • R2: F 2:00-2:50am, 4 Clemens
  • Instructor
    • Demian Lessa dlessa_at_buffalo_dot_edu
    • Office Hours: M-W 1:30-2:30pm, 329 Bell Hall
  • Teaching Assistant
    • Niccolò Meneghetti niccolom_at_buffalo_dot_edu
    • Office Hours: T-H 2:00-3:00pm, 329 Bell Hall
  • Prerequisites
    • CSE250: Data Structures
    • Working knowledge of discrete math and logic.
    • Working knowledge of Object-Oriented programming and Java in particular.
    • Rudimentary knowledge of the Unix/Linux command line.

II. References

You will be fully covered by the course slides, online documentation, and recommended textbook (see below). The textbook is recommended for its consistency, clarity, examples, and exercises. Course slides are based on the recommended textbook and so are many of the problems that will be solved in the lectures and recitations.

Recommended Textbook

  • Textbook: Ullman, Widom. A First Course in Database Systems. 3rd edition, Prentice Hall, 2007. The textbook has a supplementary web site where you can find valuable resources for the course.
  • Silberschatz, Korth, and Sudarshan. Database Systems Concepts. 6th (or 5th) edition, McGraw-Hill, 2010.
  • Elmasri and Navathe. Fundamentals of Database Systems. 4th edition, Addison-Wesley, 2003.
  • Ramakrishnan and Gehrke. Database Management Systems. 3rd edition, McGraw-Hill, 2002. (Cow book.)
  • Garcia-Molina, Ullman, Widom. Database Systems: The Complete Book. Prentice Hall, 2001.
  • Abiteboul, Hull, and Vianu. Foundations of Databases. Addison Wesley, 1994. (Alice book.)

Seminal research papers in the field of databases that you may find interesting:

Similar courses, in both form and content, offered by other departments across the country, in alphabetical order.

III. Objectives

In this course, students are exposed to the fundamental concepts of database systems, with particular focus on the relational model. The course covers a wide range of topics, both theoretical and practical: database query languages (relational algebra and SQL), data dependencies and schema design (normal forms), conceptual database design (Entity-Relationship Modeling), and database-driven application programming. The course will also cover one particular form of semi-structured data model, namely, XML. Time permitting, advanced topics will be covered: indexing, triggers and stored procedures, concurrency control, transaction management, and security.

At the end of the course, students will be able to:

  1. Relational Model
    • Define data model and describe its purpose.
    • Identify and describe the main components of the relational data model.
    • Differentiate database instance and schema, relation instance and schema.
    • Differentiate attribute, domain, and value.
  2. Relational Query Languages
    • Describe the syntax and semantics of relational algebra queries (set operations, selection, projection, cartesian, join, rename).
    • Describe the syntax and semantics of SQL queries (selection, projection, join, cartesian, set operations, subqueries, correlated subqueries, grouping/aggregation, recursion).
    • Describe a criteria for determining whether two queries are equivalent.
    • Describe the purpose of a given query.
    • Formulate a query to answer a given problem.
    • Determine if two queries are equivalent.
    • Create and modify physical relations using SQL's Data Definition Language (DDL).
  3. Database Design
    • Distinguish between conceptual and physical database models.
    • Design a conceptual database model from a set of requirements.
    • Create a physical database from a conceptual database model.
  4. Relational Database Normalization
    • Describe the purpose of normalization in database models.
    • Characterize normal forms: 1NF, 2NF, 3NF, BCNF, and 4NF.
    • Examine an entity and determine if any normalization rules are violated.
    • Apply normalization rules to decompose a schema and resolve violations.
    • Determine if a decomposition satisfies the lossless join property.
    • Determine if a decomposition is dependency-preserving.
  5. Conceptual Design using Entity/Relationship Models
    • Describe the roles of entities, instances, attributes, and identifiers.
    • Identify and model relationships with their optionality and cardinality.
    • Identify and model weak entities with their discriminators.
    • Identify and model subtypes.
    • Design an ER diagram from a set of requirements.
    • Map an ER diagram to a physical database.
  6. Semi-Structured Data Model
    • Identify and describe the main components of the XML data model.
    • Distinguish between well-formed and valid XML documents.
    • Identify and describe the main components of a Document Type Definition (DTD).
    • Determine whether an XML document is valid with respect to a DTD.
    • Design a DTD that makes an XML document valid.
  7. Query Languages for XML
    • Describe the main features of XPath and XQuery.
    • Describe the purpose of a given query.
    • Formulate a query to answer a given problem.

IV. Organization

  • Considerations
    • If you don't understand something covered in class, ask about it right away. The only silly question is the one which is not asked.
    • If you get a poor mark on an assignment or exam, find out why right away. Don't wait a month before asking.
    • The instructor and teaching assistant are available to answer your questions. Don't be afraid to ask questions or to approach the instructor or TA in class, during office hours, or through e-mail (but see below about e-mail).
    • This course is intended to be hard work, but also interesting and fun. I think databases are interesting and exciting, and I want to convince you of this.
  • E-Mail Communication
    • Always use your university account when contacting the instructor or teaching assistant and always include the prefix "[CSE462]" at the beginning of the subject line.
    • Be brief, ojective, and polite. For example: "I couldn't come to class today and I need to talk with you about X. Can we meet sometime this week?"
    • Questions about course content, assignments, or exams are best handled in office hours. If you must use e-mail, try to solve your problem first with the teaching assistant before contacting the instructor.
    • Brief messages are normally answered within one working day. Slightly longer messages may take more time. A long and/or involved messages may be replied with a simple request for you to show up for office hours.
    • Please keep in mind that e-mail is not an adequate replacement for personal contact, which is an essential part of instruction. In particular, e-mail is not a substitute for office hours or for attending class.
  • Exams
    • Exams dates will be known far in advance, so plan accordingly not to miss any exams.
    • If you know you will not be present for an exam, request for a make-up exam in advance. All requests should be done in writing (university e-mail preferred). Requests will be accepted at the discretion of the instructor. The make-up exam will be scheduled for the earliest possible date.
  • Grading
    • Homeworks will contain a small number of problems similar to those on the textbook.
    • Projects will be short Java programming assignments with follow-up questions.
    • Tests will be non-cumulative but the final exam will be cumulative.
    • Final grades will be computed as a weighted average of the course work according to the distribution below (the instructor reserves the right to make minor adjustments as necessary).
      Part Value Total
      Homeworks (4 out of 5) 5% + 5% + 5% + 5% 20%
      Projects (2) 10% + 10% 20%
      Tests (2) 15% + 15% 30%
      Final Exam (comprehensive) 30% 30%
    • Mapping of percentage scores to letter grades will be on a curve, based on overall class performance. Letter grades will be given in the range of F to A, with minuses and pluses.
    • If you have questions about the grading of a piece of work, consult first with the teaching assistant. If you cannot resolve your questions with the teaching assistant, you should then consult with the instructor.
    • Questions about the grading of a piece of work must be raised within one week of the date that the work was returned by the teaching assistant or instructor. If you do not pick up your work in a timely fashion, you may forfeit your right to question the grading of your work.
  • Work Submission
    • Homework assignments and projects will be provided with submission instructions.
    • Extensive time will be given to complete homeworks and projects; use it wisely.
    • Submissions late by at most one day will be accepted with a 30% grade penalty.
    • No submissions will be accepted after one day past the deadline.
    • Exceptions to the rules above may apply for documented, extraordinary reasons.

V. Policies

CSE department policies and undergraduate academic policies and procedures will be followed strictly, so make sure you are familiar with them. Some of them have been copied below for your convenience. If you have any questions regarding these policies, please see instructor during office hours.

  • Academic Integrity
  • Class Attendance
    • Strongly recommended for lectures and recitations, but not enforced. Note that late arrivals are distracting to both the instructor and other students, so please be considerate and arrive on time. If you miss a lecture or recitation, it is your responsibility to find out what was covered and collect any materials that may have been handed out.
  • Disability Services
    • If you have a diagnosed disability (physical, learning, or psychological) that will make it difficult for you to carry out the course work as outlined, or that requires accommodations such as recruiting note-takers, readers, or extended time on exams or assignments, you must consult with the Office of Disability Services (25 Capen Hall, Tel: 645-2608, TTY: 645-2616, Fax: 645-3116, http://www.student-affairs.buffalo.edu/ods/). You must advise your instructor during the first two weeks of the course so that we may review possible arrangements for reasonable accommodations.
  • Incomplete Grades
    • Prior to the end of the semester, students must initiate the request for an "I" grade and receive the instructor's approval. Assignment of an "I" grade is at the discretion of the instructor.
    • A grade of incomplete ("I") indicates that additional course work is required to fulfill the requirements of a given course. Students may only be given an "I" grade if they have a passing average in coursework that has been completed and have well-defined parameters to complete the course requirements that could result in a grade better than the default grade. An "I" grade may not be assigned to a student who did not attend the course.
  • Obstruction or Disruption in the Classroom
    • Attending classes and paying attention. Students should not ask an instructor in class to go over material they missed by skipping a class or not concentrating.
    • Not coming to class late or leaving early. If a student has to enter a class late, he or she should do so quietly and should not disrupt the class by walking between the class and the instructor. Students should not leave class unless it is an absolute necessity.
    • Not talking with other classmates while the instructor or another student is speaking. If a student has a question or comment, he or she should raise a hand, rather than starting a conversation about it with a neighbor.
    • Showing respect and concern for others by not monopolizing class discussion. Students must allow others time to give their input and ask questions. Students should not stray from the topic of class discussion.
    • Not eating and drinking during class time.
    • Turning off all electronic devices including cell phones, pagers, and beeper watches.
    • Avoiding audible and visible signs of restlessness. These are both rude and disruptive to the rest of the class.
    • Focusing on class material during class time. Sleeping, talking to others, doing work for another class, reading the newspaper, checking e-mail, and exploring the Internet are unacceptable and can be disruptive.
    • Not packing bookbags or backpacks to leave until the instructor has dismissed class.

Valid W3C XHTML 1.0 StrictValid W3C CSS 2.1