* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download School of Computing CS 5530: Database Systems Spring 2017
Serializability wikipedia , lookup
Extensible Storage Engine 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
Versant Object Database wikipedia , lookup
Clusterpoint wikipedia , lookup
ContactPoint wikipedia , lookup
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