Download School of Computing CS 5530: Database Systems Spring 2017

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Serializability wikipedia , lookup

IMDb wikipedia , lookup

Extensible Storage Engine wikipedia , lookup

SQL wikipedia , lookup

Oracle Database wikipedia , lookup

Entity–attribute–value model wikipedia , lookup

Ingres (database) wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Functional Database Model wikipedia , lookup

Concurrency control wikipedia , lookup

Database wikipedia , lookup

Versant Object Database wikipedia , lookup

Clusterpoint wikipedia , lookup

ContactPoint wikipedia , lookup

Relational model wikipedia , lookup

Database model wikipedia , lookup

Transcript
School of Computing
CS 5530: Database Systems
Spring 2017
Instructor: Prof. Feifei Li, [email protected], http://www.cs.utah.edu/∼lifeifei, phone 801-5856673, WEB 2692.
Instructor Office Hours: Monday, Wednesday, 2:00-3:00pm or by appointment (the best way to
reach me is via email.)
TA: Dyllon Gaginer, Elijah Grubb, Rui Dai, Husan Lee, Guineng Zheng; [email protected]
TA Office Hours: TBA.
Course Description: Undergraduate-level introduction course to database systems and applications
using databases. Introduce the ER model and its mapping to the relational data model. Study the
logical language in the relational data model and its relationship to the practical relational query
language: SQL. Examine in depth how to design and implement a database application. Understand
how various programs are able to connect to the database through ODBC. Briefly cover indexing and
hashing. Introduce the concept of transactions. Database integrity and security issues will also be
briefly discussed. An important related topic is the social and ethical issues with data management. A
semester-long project will build a web-based database system (e.g., an online bookstore) starting with
a customer specification. In summary, the main focus of course is about the principles of designing and
developing applications using the relational database system. Lastly, if schedule allows, we will also
expand the discussion to NoSQL systems. In particular, we will discuss MongoDB as an example.
Course Objectives: To learn the basic principles of designing and implementing applications using
the relational database system. To understand in depth how a relational database application works
for designing (the schema for), mapping and querying structured data.
Prerequisites: CS3510, Advanced Algorithms and Data Structures. Object-Oriented Programming
experience (e.g., Java).
Class Home Page: http://www.cs.utah.edu/∼lifeifei/cs5530/
All class assignments, schedules, and lecture notes can be found on this page. Please check this website
regularly for important updates.
Time and Place: Monday and Wednesday, 11:50am–13:10pm, MEK 3550.
Textbook: R. Ramakrishnan, J. Gehrke. Database Management Systems. Third Edition. McGrawHill 2003, ISBN 0-07-246563-8. Additional reading material may be distributed.
Additional Readings: Database Systems, The Complete Book, 2nd Edition, ISBN: 0131873253.
Note: It is NOT necessary for you to buy this book.
Collaboration/Academic Honesty All course participants must adhere to the academic honor code
of the University of Utah. All instances of academic dishonesty will be reported to the university. Every
student must write his/her own homework/code. Showing your code or homework solutions to others is
a violation of academic honesty. It is your responsibility to ensure that others cannot access your code
or homework solutions. Consulting related textbooks, papers and information available on Internet for
your coding assignment and homework is fine. However, copying a large portion of such information
will be considered as academic dishonesty. If you borrow a small piece of any such information, please
1
acknowledge that in your assignment.
In addition, the School of Computing has introduced its own cheating policy where a two-strikes and
you’re out rule will be applied. In short, a student who has been caught cheating twice (either in one
course or cumulatively in different CS courses) will no longer be allowed to register for future CS classes
or any cross-listed class that is taught by SoC faculty. A strike equals a failing grade sanction due to
cheating and that all strikes will be documented and kept in the student’s permanent file. A link to
a more detailed description regarding this policy will be posted later on the course website (once the
document for this policy is finalized by the department).
Students with Disabilities Students with disabilities needing academic accommodation should: (1)
register with and provide documentation to the Student Disability Resource Center.
(2) bring a letter to the instructor indicating the need for accommodation and what type.
Important Dates: Midterm Exam: The Wed’s lecture before Spring break. Final Exam: Wednesday,
May 3, 10:30am to 12:30pm. Last day to add, drop, elect CR/NC, or audit the class: Friday, January
20. Last day to withdraw from the class: Friday, March 3 (Please verify this with registrar!)
Grading Policy: The course grade will break down as follows (no curving will be applied).
Written Assignments
Programming Assignments (Project)
Midterm
Final Exam
10%
30%
30%
30%
And your final grade will be strictly assigned as follows.
92-100
83-91
40-44
A
AD+
75-82
68-74
35-39
B+
B
D
60-67
55-59
30-34
BC+
D-
50-54
45-49
0-29
C
CE
We will round up your score to the closet integer value, e.g, 79.5-79.9 will be treated as 80; 79.1-79.4
will be treated as 79. Both midterm and final exams will be open-book (subject to our open book policy
which will be specified before a week before the exam).
In addition, we will have a few quiz that don’t count toward your grade. But they will help you review
the course materials in smaller chunks and checkpoint how well you do in various modules.
NO curving of any sort will be applied.
Course Policy
1. You are allowed to discuss written assignments, however, any such discussion must be clearly
acknowledged on the submitted solution. Your solution should be stapled together and neatly
prepared.
2. The programming project will be carried out in a team of two.
3. Usually, written assignment is due one or one and half week after it is out. The time allocated to
the programming assignment will vary depending on the difficulty of each individual assignment.
Late Policy – Make up exams: Late assignments will not ordinarily be accepted. If, for some
compelling reason, you cannot hand in an assignment on time, please contact me as far in advance
2
as possible. If a written assignment is due at the beginning of a class, you should hand it in at the
beginning of the class. No credit will be given to late programming projects. No make-up exams (except
under extremely unusual circumstances).
More about the Project The semester-long project aims to build a web-based database system.
There will be three major modules that you will work on. The first one is to design the ER diagram
and the relational modules based on the given specification. The second phase is build a stand-alone,
desktop-like database application conforming to the given specification and user requirements. The
third phase is to implement the web-based interface to connect and query (or insert/delete/update) the
database. We will use Java for the second phase, and JSP for the third phase (running with Tomcat).
The third phase will utilize most of the Java classes you have developed in the second phase. More
details will be provided as the semester progresses.
We use Moss to check for plagiarism, and we have submission files from last 4 years to check against
too. Once a plagiarism is caught, student in concern will receive 0 points for the project and the case
might also be officially reported to both the department and the college.
Tentative Course Schedule
Week#
1
2, 3
4, 5
6, 7
8, 9
10, 11
12
13, 14
15, 16
16
Topics
Introduction; Overview of a Database System
Conceptual Design with the ER Model
Relational Model and Relational Algebra
SQL
ODBC and Web Database, Java, JSP
Overview of Functional Dependencies and Normal Forms
Disk, Files and Indexing
Hashing
Overview of Transactions
Parallel Databases, NoSQL systems (e.g., MongoDB)
Data Warehouse, Course wrap-up
3
Readings
Chapter 1
Chapter 2
Chapter 3, 4
Chapter 5
Chapter 6, 7 and additional material
Chapter 19
Chapter 9, 10
Chapter 11
Chapter 16
Chapter 22 and additional material
Chapter 25