EECS-3421A
Introduction to Database Systems

York University
Fall 2016
Syllabus
Instructor: Parke Godfrey
Office: #2050 LAS
Office Hours: We 3–5pm
& by appointment / availability
Ph#: 416-736-2100 x66671
e-mail: godfrey@yorku.ca
T.A.: To be announced...
Office:  
Office Hours:  
e-mail:  
Term: Fall 2016
Time: Mo & We 1:00–2:30pm
Place: CB 115
Textbook: H. Garcia-Molina, J.D. Ullman, & J. Widom
Database Systems: The Complete Book
2nd edition, 2009
Pearson / Prentice Hall
ISBN: 0-13-187325-3
Class URL: http://www.eecs.yorku.ca/course/3421/
  About the Course
The Topic (from the academic calendar)

The purpose of this course is to introduce the fundamental concepts of database management, including aspects of data models, database languages, and database design. At the end of this course, a student will be able to understand and apply the fundamental concepts required for the use and design of database management systems.

Course Objectives and Content

Through this course, students shall

  • become proficient at modeling databases at conceptual and logical levels of design,
  • be able to develop database schemas with principled design that enforce data integrity,
  • become knowledgeable in the creation, altering, and manipulation of tables, indexes, and views using relational algebra and SQL,
  • become proficient at casting queries in SQL,
  • and at writing database application programs with an understanding of transaction management, concurrency control, and crash recovery.

Topics to be covered include the following.

  1. design:
    • conceptual design (E-R modeling)
    • the relational model
    • normalization (What are the criteria of good design?)
  2. queries:
    • algebra and logic (relational algebra and calculus)
    • relational query languages and queries (namely SQL)
      • select, project, join
      • union, intersection, except
      • recursion
      • aggregation
    • data manipulation
  3. applications:
    • application development
      • database application interfaces (e.g., JDBC)
      • internet applications
      • proper database application paradigms
    • transactions
      • transaction management
      • concurrency control
      • crash recovery
Required Textbook / Reading

Course materials will be primarily drawn from the assigned readings from the course textbook (Garcia-Molina, Ullman, & Widom, 2009).

Useful reference books for the course include:

Jim Melton and Alan R. Simon.
SQL 1999: Understanding Relational Language Components.
First Edition, 1999.
Morgan Kaufmann Publishers.
ISBN: 1-55860-456-1

Don Chamberlin.
Using the New DB2: IBM's Object-Relational Database System.
First Edition, 1996.
Morgan Kaufmann Publishers.
ISBN: 1-55860-373-5

 
  Grading Criteria & Course Requirements
Components
what % when
Projects 1–4 25% four, due over the term
Test #1 20% We 12 Oct
Test #2 20% We 9 Nov
Final Exam (“Test #3”) 35% ? Dec

The tests (including the final exam) are cumulative, testing all the material up to that point.

The grading policy is standard for tests, exams, and projects. For projects, discussion is fine, but your work must be your own.

York University's rules for academic honesty and plagiarism are always in effect. ( See below.) Discussion is fine on the assignments and projects. However, collaboration is not. The work must be your own.

Projects

There will be four projects over the term.

  name description % due
1. Scheming designing an E-R schema 5% Fr 7 Oct
2. Voilà Creating a database 5% Fr 4 Nov
3. SQL Jeopardy composing queries 10% Fr 25 Nov
4. The Apt APP Writing an application program. 5% Mo 5 Dec

The projects will use the IBM DB2 Universal Database system (v10). In project 1, students will design an ER schema for a given problem domain. In project 2, students will design and implement a relational database under our DB2 system. In project 3, students will compose sophisticated SQL, XPath, and XQuery queries for existing databases. Project 4 will involve programming to implement a database application program.

All work for the projects should be prepared in a professional manner. Work should be typeset, and run through a spell-checker. Due dates are as indicated in the schedule above. Projects (P1P4) will be due by 11:59pm on Friday of the week indicated. The last project (P4) is due on Monday 5 December. Each project should be turned in both via the submit program and/or by hard copy in the class dropbox, as will be indicated for each project.

Late projects will be accepted up to 48 hours after the due date with a 20% penalty.

Further details will be established as the project assignments are posted.

 
  Schedule

week# day topic reading due
The Game
#1 Mo 12 Sep Introduction Ch1  
  We 14 Sep database models Ch2 §1–3  
I. Design
#2 Mo 19 Sep E-R model: basics Ch4 §1–6  
  We 21 Sep advanced    
#3 Mo 26 Sep translating to relational    
  We 28 Sep design theory: functional dependencies Ch3 §1–5  
#4 Mo 3 Oct decompositions    
  We 5 Oct normal forms   P1
Thanksgiving (10 October)
#5 We 12 Oct Test #1  
II. queries
#6 Mo 17 Oct relational algebra Ch5  
  We 19 Oct SQL: the basics Ch6 §1–3  
#7 Mo 24 Oct advanced Ch6 §4,5  
  We 26 Oct constraints Ch7  
fall reading days (27–30 October)
#8 Mo 31 Oct authorization Ch10 §1  
  We 2 Nov XML Ch11 P2
#9 Mo 7 Nov XPath & XQuery Ch12 §1,2  
  We 9 Nov Test #2  
III. Applications
#10 Mo 14 Nov transactions Ch6 §6 & Ch 8  
  We 16 Oct views, indexes    
#11 Mo 21 Nov database connections Ch9 §3,5–7  
  We 23 Nov cursors, etc.   P3
#12 Mo 28 Nov information integration Ch21 §1,2  
  We 30 Nov OLAP Ch22 §1,2  
#13 Mo 5 Dec wrap up   P4
exam period (7–22 Dec)
  ? Dec Final Exam (“Test #3”)

 
  Policies
Exams & Attendance

Exams must be taken when scheduled unless the student has a medical documentation or can demonstrate special circumstances for a need for a rescheduled exam. The student must obtain approval from the instructor.

Class attendance is useful and encouraged as the student will have an opportunity to ask for clarification of course and text material. There will be problem solving sessions during class period so that students gain experience applying the theory in practice. However, class attendance will not be monitored and is not part of the grade.

E-mail Policy

On e-mail from students with questions regarding course materials.

  • I will not answer these e-mails by e-mail reply, in general.

    My time is spent more productively for the class's sake in different ways. For pertinent questions on the materials that students send me by e-mail — or for questions that many people seem to be having — I will try to address them in class.

    If you have an urgent question I have not addressed, come see me during my office hours, or make an appointment if you need to. Many students do this already; it is a good use of my time and theirs. I can usually answer a question a student asks in person in about a tenth the time than by an e-mail exchange. Writing it out takes much longer. And for many of the questions people send me, the question is often unclear. It then requires a back and forth by e-mail several times.

On e-mail from students with issues regarding administrative matters.

  • For administrative requests (e.g., “I cannot make the test,”), e-mail is fine, of course, and I will attempt to answer you directly.

Please use a York University account when e-mailing me (with regards to the course), so that I can know who it is. Please include [3421] at the beginning of the subject line so I am able to sort it.

I do not mind students sending questions by e-mail. Just do not necessarily expect a direct reply. I do read them, and I try to address the issues and questions people raise. If your question or issue remains after some time, do let me know.

Academic Integrity, Honesty, & Plagiarism

The Department of Electrical Engineering & Computer Science's Academic Honesty Guidelines are in effect for this course, as, indeed, they are for any EECS course.

Plagiarism is defined as taking the language, ideas, or thoughts of another, and representing them as your own. If you use someone else's ideas, cite them. If you use someone else's words, clearly mark them as a quotation. Note that plagiarism includes using another's computer programs or pieces of a program. All noted instances of plagiarism will be reported.

These policies are not intended to keep students from working with other students. One can learn much working with others, so this is to be encouraged. Should you encounter any situations for which you are uncertain whether the collaboration is permitted or not, please ask.