Website/src/teaching/cse-562/2015sp/index.html

153 lines
14 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

<h1 style="text-align: center;">Spring 2015</h1>
<p style="text-align: justify;">Data Management Systems (including Relational Databases, Non-Relational Databases, and NoSQL storage systems) form the basis of the Big Data Economy we now live in.  A data management system is responsible for storing data, enabling efficient access to that data, as well as mediating concurrent modifications.  This class approaches the challenges of designing a data management system from a standpoint that is both principled and practical.  The course revolves around a term-long programming assignment, in which you will build a system that answers SQL queries efficiently.  Course lectures will focus on the conceptual basis for this system, and will discuss how the techniques you learn generalize (e.g., to the use of NoSQL systems)</p>
In this course, you will learn...
<ul>
<li>... how to efficiently store and retrieve data programatically.</li>
<li>... how to optimize big-data computations.</li>
<li>... how to use index structures to accelerate computations.</li>
<li>... how to safely and efficiently manipulate data concurrently.</li>
<li>... how to recover state after software and hardware failures.</li>
<li>... how to query and update distributed data consistently.</li>
</ul>
<h2>Course Details</h2>
<ul>
<li><strong>Class</strong>: M/W/F, 12:00-12:50 PM in <a href="http://www.buffalo.edu/buildings/building?id=nsc">NSC 201</a></li>
<li><strong>Class Forum</strong>: <a href="https://piazza.com/class/i4xda6rvshkgk">Piazza</a></li>
<li><strong>Textbook</strong>: "<a href="http://www.bkstr.com/webapp/wcs/stores/servlet/CourseMaterialsResultsView?catalogId=10001&amp;categoryId=9604&amp;storeId=10542&amp;langId=-1&amp;programId=602&amp;termId=100034970&amp;divisionDisplayName=%20&amp;departmentDisplayName=CSE&amp;courseDisplayName=562LEC&amp;sectionDisplayName=000~15586&amp;demoKey=d&amp;purpose=browse">Database Systems, The Complete Book</a>" 2nd Edition by Garcia-Molina, Ullman and Widom.</li>
<li><strong>Instructor</strong>: <a href="http://okennedy.xthemage.net">Oliver Kennedy</a> (Davis 338H, Wed 1:00-3:00)</li>
<li><strong>TAs</strong>
<ul>
<li>Vishrawas Gopalakrishnan (TA Lounge, Mon 2:00-4:00)</li>
<li>Ning Deng (TA Lounge, Tue 9:00-11:00)</li>
</ul>
</li>
<li><strong>Project Submission</strong>:<a href="http://dubstep.odin.cse.buffalo.edu"> http://dubstep.odin.cse.buffalo.edu</a></li>
<li><strong>Project Groups</strong>: 1-3 people</li>
<li><strong>Grading</strong>:
<ul>
<li>50% exams
<ul>
<li>15% Midterm 1 on Mar. 4 (in class)</li>
<li>15% Midterm 2 on Apr. 8 (in class)</li>
<li>20% Comprehensive Final on Thu May 14 (4:00-6:30)</li>
</ul>
</li>
<li>50% projects
<ul>
<li>5% <a title="Checkpoint 0" href="checkpoint0.html">Project 0</a> due on Feb. 6</li>
<li>15% <a title="Checkpoint 1" href="checkpoint1.html">Project 1</a> due on Feb. 23 (code-review after)</li>
<li>15% <a title="Checkpoint 2" href="checkpoint2.html">Project 2</a> due on Mar. 30 (code-review after)</li>
<li>15% <a title="Checkpoint 3" href="checkpoint3.html">Project 3</a> due on May 8 (code-review after)</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>Library Documentation</h2>
<ul>
<li><strong>JSqlParser</strong> (<a href="https://odin.cse.buffalo.edu/resources/jsqlparser">JavaDoc</a>, <a href="https://youtu.be/U4TyaHTJ3Zg">Demo</a>)</li>
<li><strong>ExpressionLib</strong> (<a href="https://odin.cse.buffalo.edu/resources/expressionlib">JavaDoc</a>)</li>
<li><strong>BerkeleyDB</strong> (<a href="https://odin.cse.buffalo.edu/resources/berkeleydb/java/index.html">JavaDoc</a>, <a href="https://odin.cse.buffalo.edu/resources/berkeleydb/GettingStartedGuide">Guide</a>)</li>
</ul>
<h2>Lecture Schedule</h2>
<ul>
<li><em>Jan. 26</em>:  Intro and Outline (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/01-IntroAndStructure">Slides</a>, <a href="http://youtu.be/lsw_4p9TSLw">Video</a>)</li>
<li><em>Jan. 28</em>: Relational Algebra 1/2 (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/02-RA">Slides</a>, <a href="http://youtu.be/h9L7j5Q4W_I">Video</a>, <a href="https://piazza.com/class_profile/get_resource/i4xda6rvshkgk/i5xb15qumpn2il">Example DB</a>)</li>
<li><em>Jan 30</em>:  Relational Algebra 2/2 (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/03-RA">Slides</a>, <a href="http://youtu.be/OGHPgtL3rKQ">Video</a>)</li>
<li><em>Feb. 2</em>: SQL (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/04-SQL">Slides</a>, <a href="http://youtu.be/syXkeUVcKlA">Video</a>)</li>
<li><em>Feb. 4</em>: Translating SQL to Relational Algebra (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/05-TranslatingSQL">Slides</a>)</li>
<li><em>Feb. 6</em>: Evaluating Relational Algebra (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/06-EvaluatingRA">Slides</a>, <a href="http://youtu.be/lee20kp_zPw">Video</a>)</li>
<li><em>Feb. 9</em>: Extended Relational Algebra (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/07-ExtendedRA">Slides</a>, <a href="http://youtu.be/2JxV8-gF-dw">Video</a>)</li>
<li><em>Feb. 11</em>: <a title="Checkpoint 1" href="checkpoint1.html">Project 1</a> Review (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/08-Project1Review">Slides</a>, <a href="http://youtu.be/y7i4STVgI9k">Video</a>)</li>
<li><em>Feb. 13</em>: Data Modeling - The E/R Model (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/09-DataModeling">Slides</a>, <a href="http://youtu.be/O233R8_XnZM">Video</a>)</li>
<li><em>Feb 16</em>: Data Modeling - Constraints (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/10-DataModeling">Slides</a>, <a href="http://youtu.be/DXaf0hNmD8s">Video</a>)</li>
<li><em>Feb 18</em>: Query Optimization (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/11-Rewrites">Slides</a>, <a href="http://youtu.be/WNsQB-0r7G4">Video</a>)</li>
<li><em>Feb 20</em>: Physical Design (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/12-PhysicalLayout">Slides</a>, <a href="http://youtu.be/lsg4iuL8xcA">Video</a>)</li>
<li><em>Feb 23</em>: Indexes (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/13-Indexes">Slides</a>, <a href="http://youtu.be/IdvucPC5HUI">Video</a>)</li>
<li><em>Feb 25</em>: Join Algorithms (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/14-JoinAndAccessPaths">Slides</a>, <a href="http://youtu.be/tuw6cvFK3Og">Video</a>)</li>
<li><em>Feb 27</em>: Out-of-Core Algorithms (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/15-ExternalSort">Slides</a>, <a href="http://youtu.be/wo9U6qX6-R4">Video</a>)</li>
<li><em>Mar 2</em>: Midterm 1 Review (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/16-Review">Slides</a>, <span style="text-decoration: underline;">No Video</span>)</li>
<li><em>Mar 4</em>: Midterm 1 (<a href="https://odin.cse.buffalo.edu/resources/cse562/test_sp2015_m1_solutions.pdf">Solutions</a>)</li>
<li><em>Mar 6</em>: <a title="Checkpoint 2" href="checkpoint2.html">Project 2</a> Review (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/17-Project2Review">Slides</a>, <a href="https://youtu.be/vv38YCSO80g">Video</a>)</li>
<li><em>Mar 9</em>: Cost-Based-Optimization (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/18-CostBasedOptimization">Slides</a>, <a href="https://youtu.be/GFKt089eGls">Video</a>)</li>
<li><em>Mar 11</em>: Cost-Based-Optimization (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/19-CostBasedOptimization">Slides</a>, <span style="text-decoration: underline;">No Video</span>)</li>
<li><em>Mar 13</em>: Storage/Serialization (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/20-LowLevelLayout">Slides</a>, <a href="https://youtu.be/uup4TrtmXKg">Video</a>)</li>
<li><em>Mar 16-20</em>: <strong>Spring Break!</strong></li>
<li><em>Mar 23</em>: Transactional Correctness (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/21-TransactionCorrectness">Slides</a>)</li>
<li><em>Mar 25</em>: Locking (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/22-TransactionLocking">Slides</a>)</li>
<li><em>Mar 27</em>: Deadlock Management (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/23-TransactionDeadlock">Slides</a>, <a href="https://youtu.be/euQ4mwoQLyk">Video</a>)</li>
<li><em>Mar 30</em>: Optimistic Concurrency Control (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/24-TransactionOCC">Slides</a>)</li>
<li><em>Apr 1</em>: <a title="Checkpoint 3" href="checkpoint3.html">Project 3</a> Review (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/25-Project3Review">Slides</a>)</li>
<li><em>Apr 3</em>: Logging (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/26-Logging">Slides</a>)</li>
<li><em>Apr 6</em>: Midterm 2 Content Review (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/27-Review">Slides</a>)</li>
<li><em>Apr. 8</em>: Midterm 2 (<a href="https://odin.cse.buffalo.edu/resources/cse562/test_sp2015_m2_solutions.pdf">Solutions</a>)</li>
<li><em>Apr 10</em>: The ARIES Protocol (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/28-ARIES">Slides</a>)</li>
<li><em>Apr 13</em>: Views  (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/29-Views">Slides</a>)</li>
<li><em>Apr 15</em>: Incremental View Maintenance (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/30-IVM">Slides</a>)</li>
<li><em>Apr 17</em>: Parallelism Fundamentals (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/31-Parallelism">Slides</a>)</li>
<li><em>Apr 20</em>: Semi-Join &amp; Bloom Join (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/32-BloomJoin">Slides</a>)</li>
<li><em>Apr 22</em>: Bloom, Updates &amp; CAP (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/33-ParallelUpdates">Slides</a>)</li>
<li><em>Apr 24</em>: 2-Phase Commit (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/34-2PhaseCommit">Slides</a>)</li>
<li><em>Apr 27</em>: Replica Consistency (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/35-Replication">Slides</a>)</li>
<li><em>Apr 29</em>: Data Warehousing (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/36-ColumnStores">Slides</a>)</li>
<li><em>May 1</em>: JITDs (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/37-JITDs">Slides</a>, <a title="ASTral" href="https://odin.cse.buffalo.edu/research/astral/">More Info</a>)</li>
<li><em>May 4</em>: Final Review 1 (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/38-FinalReview1">Slides</a>)</li>
<li><em>May 6</em>: Final Review 2 (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/39-FinalReview2/">Slides</a>)</li>
<li><em>May 8</em>: Final Review 3 (<a href="https://odin.cse.buffalo.edu/slides/cse562sp2015/40-FinalReview3/">Slides</a>)</li>
<li><em>May 14</em>: Final Exam 4 PM</li>
</ul>
<h2>Content Outline</h2>
<ul>
<li><a title="Checkpoint 0" href="checkpoint0.html">Project 0</a> - Basic Setup</li>
<li><a title="Checkpoint 1" href="checkpoint1.html">Project 1</a> - Infrastructure &amp; Evaluation
<ul>
<li><strong>Relational Algebra</strong> (Ch 2.4, 5.1)</li>
<li><strong>SQL</strong> (Ch 2.3 and 6.1-6.4)</li>
<li><strong>Query Compilers</strong> (Ch 15.1-15.3, 16.1, 16.3)</li>
<li><strong>Data Modeling</strong> (Ch 2.1-2.2)</li>
</ul>
</li>
<li><a title="Checkpoint 2" href="checkpoint2.html">Project 2</a> - Optimization &amp; External Algorithms
<ul>
<li><strong>Algebraic Query Optimization</strong> (Ch 16.2)</li>
<li><strong>Join Algorithms</strong> (Ch 15.4, 15.5)</li>
<li><strong>Extended Relational Algebra</strong> (Ch 5.2)</li>
<li><strong>Buffering &amp; External Algorithms</strong> (Ch 15.7-15.8)</li>
<li><strong>Physical Plans</strong> (Ch 16.7)</li>
</ul>
</li>
<li><a title="Checkpoint 3" href="checkpoint3.html">Project 3</a> - Indexing &amp; Physical Layout
<ul>
<li><strong>The Memory Hierarchy</strong> (Ch 13.1-13.3)</li>
<li><strong>Physical Design</strong> (Ch 13.5-13.7)</li>
<li><strong>Indexing</strong> (Ch 8.3, 14.1-14.4)</li>
<li><strong>Materialized Views</strong> (Ch 8.1-8.2, 8.5)</li>
<li><strong>Cost-Based Optimization</strong> (Ch 8.4, 16.4-16.6)</li>
</ul>
</li>
<li>Concepts (No Project)
<ul>
<li><strong>Failure Recovery</strong> (Ch 13.4, 19.1, 19.3)</li>
<li><strong>Updating Data</strong> (Ch 6.5, 13.8)</li>
<li><strong>Transactions</strong> (Ch 6.6, 18.1-18.2)</li>
<li><strong>Locking</strong> (Ch 18.3-18.7)</li>
<li><strong>Deadlocks</strong> (Ch 19.2)</li>
<li><strong>Lock-free Concurrency</strong> (Ch 18.8-18.9)</li>
<li><strong>Distributed Data Management</strong> (Ch 20)</li>
<li><strong>Uncertain Data Management</strong></li>
<li>Time permitting, other subjects will also be covered.</li>
</ul>
</li>
</ul>
<h2>Academic Integrity</h2>
<p style="text-align: justify;">Students may discuss and advise one another on their lab projects, but groups are expected to turn in their own work.  Discussing concepts is permitted.  Referencing another group's code is not.  Cheating on any course deliverable will result in an automatic grade of F in the course.  The University's policy on academic integrity can be reviewed at:</p>
<p style="text-align: center;"><a href="http://grad.buffalo.edu/Academics/Policies-Procedures/Academic-Integrity.html">The Graduate School Academic Integrity Policy</a></p>
<h2>Medical Emergencies</h2>
<p style="text-align: justify;">Accommodations for medical emergencies will be made on a case-by-case basis.  Requests for extensions based on medical emergencies must be accompanied by documentation of the emergency from student health services:</p>
<p style="text-align: center;"><a href="http://www.student-affairs.buffalo.edu/shs/student-health/">Student Health Services</a></p>
<h4 style="text-align: left;">Accessibility Resources</h2>
<p style="text-align: justify;">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, please advise the instructor during the first two weeks of the course so that we may review possible arrangements for reasonable accommodations. In addition, if you have not yet done so, contact:</p>
<p style="text-align: center;"><a href="http://www.student-affairs.buffalo.edu/ods/">The Office of Accessibility Resources</a>.</p>