CSE 560: Data Models and Query Languages


Instructor: Dr. Jan Chomicki (chomicki@cse.buffalo.edu)

Course newsgroup: sunyab.cse.560

Credit hours: 3.0

Time: TR 12:30-1:50

Location: 110 Baldy

Texts:

  • J. Ullman, J. Widom. A First Course in Database Systems, 3rd edition, Prentice Hall, 2007.
  • Lecture transparencies (2-up):

    1. Relational data model
    2. Relational database design
    3. Conceptual database design
    4. XML databases

    Tests:

    1. Test #1 (October 2, review: September 25):
    2. Test #2 (November 11, review November 6):

    Projects:

  • Project #1 (due October 13)
  • Project #2 (due December 8)
  • Miscellaneous:

  • Advanced SQL queries (solutions)
  • Textbook web site
  • PL/SQL tutorial (J. Ullman et al.)
  • Course on Description Logics (E. Franconi)
  • W3Schools XML tutorials: DTD, XPath,...
  • XML validation (DTD)
  • Prerequisites: Knowledge of fundamental data structures and algorithms, knowledge of discrete math concepts, basic Java programming skills. No database background is necessary.

    Grading:

    1. 2 extended homeworks (10%+10%)
    2. weekly quizzes (20%)
    3. 2 tests (15%+15%)
    4. comprehensive final (30%)

    Academic integrity policy: I will follow the CSE department academic integrity policy.

    Make-up policy: The request should be made sufficiently in advance of the test, for valid reasons. The make-up should be scheduled before the next class. No make-ups are available for quizzes.

    Late submission policy: The assignments should be submitted on time. A one-day grace period is provided, with the credit reduced by 20%. An assignment will not be accepted more than one day past the due date. Exceptions will be made only for medical reasons. Questions about the grading have to be raised within a week after the graded assignment is returned.

    Course objectives: In this course the students will study current database concepts from a user's point of view. The students will become familiar with the major data models and query languages, and will acquire the intellectual skills necessary for building complex database applications. In particular, they should be able to evaluate current database technologies and apply them to a variety of application domains. They will also be able to write complex SQL and XPath/XQuery queries.

    Relationship to CSE 562: This course is not a prerequisite of CSE 562. However, it provides a helpful background for the latter course.

    Course summary:

    1. Relational databases. Basic concepts; integrity constraints; relational algebra; basics of query evaluation and optimization; SQL; recursion.
    2. Relational database design. Normal forms; functional and multivalued dependencies; decompositions; tradeoffs.
    3. Conceptual database design. ER (Entity-Relationship) data model; design guidelines; mapping ER schemas to relational schemas; ontologies.
    4. Object databases. Basic object-oriented concepts; object-relational model; object-oriented constructs in SQL:1999 and commercial systems.
    5. XML databases. XML data model; Document Type Definitions; XML Schema; XML query languages: XPath, XQuery; representing XML documents in relational databases.
    6. Advanced topics. Database security; triggers; OLAP.