Database Systems website

This commit is contained in:
Oliver Kennedy 2019-01-27 19:21:32 -05:00
parent 5ad3a10858
commit 6953dcdd5c
8 changed files with 1003 additions and 3 deletions

View file

@ -0,0 +1,368 @@
[
{
"date": "Jan 28",
"type": "Lecture",
"due": "",
"topic": "Introduction",
"materials": {
}
},
{
"date": "Jan 30",
"type": "Lecture",
"due": "",
"topic": "SQL Overview + Physical Data Organization",
"textbook" : "Ch. 2.3, 6.1-6.4, and 13.5-13.7",
"materials": {
}
},
{
"date": "Feb 1",
"type": "Practicum",
"due": "",
"topic": "Checkpoint 0 + Java + GIT",
"materials": {
}
},
{
"date": "Feb 4",
"type": "Lecture",
"due": "",
"topic": "Relational Algebra",
"textbook" : "Ch 2.4, 5.1",
"materials": {
}
},
{
"date": "Feb 6",
"type": "Lecture",
"due": "Homework 1",
"topic": "Relational Algebra Equivalences",
"textbook" : "Ch 2.4, 5.1, 16.2",
"materials": {
}
},
{
"date": "Feb 8",
"type": "Practicum",
"due": "Checkpoint 0",
"topic": "Checkpoint 1",
"materials": {
}
},
{
"date": "Feb 11",
"type": "Lecture",
"due": "",
"topic": "Evaluating Relational Algebra",
"textbook" : "Ch 15.4-15.5",
"materials": {
}
},
{
"date": "Feb 13",
"type": "Lecture",
"due": "Homework 2",
"topic": "Extended Relational Algebra",
"textbook" : "Ch 5.2, 13.1-13.3, 15.7-15.8",
"materials": {
}
},
{
"date": "Feb 15",
"type": "Lecture",
"due": "",
"topic" : "Physical Data Layout", // Serialization, Paging, Columnar, Buffer Manager
"materials": {
}
},
{
"date": "Feb 18",
"type": "Lecture",
"due": "",
"topic": "Indexing (Intro + Tree Indexes)",
"textbook" : "Ch. 8.3, 14.1-14.4",
"materials": {
}
},
{
"date": "Feb 20",
"type": "Lecture",
"due": "Homework 3",
"topic": "Indexing (Hash Indexes + Modern Indexes)", // Learned indexes, LSM Trees
"textbook" : "Ch. 8.3, 14.1-14.4",
"materials": {
}
},
{
"date": "Feb 22",
"type": "Lecture",
"due": "",
"topic" : "External (2-Pass) Algorithms", // Sort, Joins
"materials": {
}
},
{
"date": "Feb 25",
"type": "Practicum",
"due": "Checkpoint 1",
"topic" : "Checkpoint 2",
"materials": {
}
},
{
"date": "Feb 27",
"type": "Lecture",
"due": "Homework 4",
"topic": "Access Paths and Aggregation",
"materials": {
}
},
{
"date": "Mar 1",
"type": "Lecture",
"due": "",
"topic": "Query Optimization", // Cost based and otherwise
"textbook" : "Ch 15.1-15.3, 16.1, 16.3",
"materials": {
}
},
{
"date": "Mar 4",
"type": "Lecture",
"due": "",
"topic": "Database Statistics 1/2",
"materials": {
}
},
{
"date": "Mar 6",
"type": "Lecture",
"due": "Homework 5",
"topic": "Database Statistics 2/2",
"materials": {
}
},
{
"date": "Mar 8",
"type": "Lecture",
"topic" : "Buffer Day",
"materials": {
}
},
{
"date": "Mar 11",
"type": "Review",
"due": "Checkpoint 2",
"topic": "Midterm Review",
"materials": {
}
},
{
"date": "Mar 13",
"type": "Lecture",
"due": "",
"topic": "<b>Midterm</b>",
"materials": {
}
},
{
"date": "Mar 15",
"type": "Practicum",
"due": "",
"topic": "Checkpoint 3",
"materials": {
}
},
{
"date": "Mar 18",
"type": "Break",
"due": "",
"topic": "<b>Spring Break</b>",
"materials": {
}
},
{
"date": "Mar 20",
"type": "Break",
"due": "",
"topic": "<b>Spring Break</b>",
"materials": {
}
},
{
"date": "Mar 22",
"type": "Break",
"due": "",
"topic": "<b>Spring Break</b>",
"materials": {
}
},
{
"date": "Mar 25",
"type": "Lecture",
"due": "",
"topic": "Views",
"materials": {
}
},
{
"date": "Mar 27",
"type": "Lecture",
"due": "Homework 6",
"topic": "SQL DDL and Constraints",
"materials": {
}
},
{
"date": "Mar 29",
"type": "Lecture",
"due": "",
"topic": "Materialized Views",
"materials": {
}
},
{
"date": "Apr 1",
"type": "Lecture",
"due": "",
"topic": "Managing Updates", // Overview of challenges associated with updates
"materials": {
}
},
{
"date": "Apr 3",
"type": "Lecture",
"due": "Homework 7",
"topic": "Theory of Transactions",
"materials": {
}
},
{
"date": "Apr 5",
"type": "Lecture",
"due": "",
"topic": "Theory of Transactions (contd.)",
"materials": {
}
},
{
"date": "Apr 8",
"type": "Lecture",
"due": "Checkpoint 3",
"topic": "Pessimistic Transaction Control",
"materials": {
}
},
{
"date": "Apr 10",
"type": "Practicum",
"due": "Homework 8",
"topic": "Checkpoint 4",
"materials": {
}
},
{
"date": "Apr 12",
"type": "Lecture",
"due": "",
"topic": "Optimistic Transaction Control",
"materials": {
}
},
{
"date": "Apr 15",
"type": "Lecture",
"due": "",
"topic": "Logging + ARIES Recovery",
"materials": {
}
},
{
"date": "Apr 17",
"type": "Lecture",
"due": "Homework 9",
"topic": "Distributed Algorithms",
"materials": {
}
},
{
"date": "Apr 19",
"type": "Lecture",
"due": "",
"topic": "Distributed Algorithms (contd.)",
"materials": {
}
},
{
"date": "Apr 22",
"type": "Lecture",
"due": "",
"topic": "Distributed Updates",
"materials": {
}
},
{
"date": "Apr 24",
"type": "Lecture",
"due": "Homework 10",
"topic": "Distributed Updates (contd.)",
"materials": {
}
},
{
"date": "Apr 26",
"type": "Lecture",
"due": "",
"topic": "Stream Queries",
"materials": {
}
},
{
"date": "Apr 29",
"type": "Lecture",
"due": "",
"topic": "Provenance Queries",
"materials": {
}
},
{
"date": "May 1",
"type": "Lecture",
"due": "Homework 11",
"topic": "Provenance Queries (contd.)",
"materials": {
}
},
{
"date": "May 3",
"type": "Lecture",
"due": "",
"topic": "Provenance for Uncertainty",
"materials": {
}
},
{
"date": "May 6",
"type": "Lecture",
"due": "Homework 12",
"topic": "Buffer Day",
"materials": {
}
},
{
"date": "May 8",
"type": "Review",
"due": "",
"topic": "Final Exam Review 1",
"materials": {
}
},
{
"date": "May 10",
"type": "Review",
"topic": "Final Exam Review 2",
"materials": {
}
}
]

View file

@ -0,0 +1,131 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Embracing Uncertainty</title>
<meta name="description" content="CSE 4/562">
<meta name="author" content="Oliver Kennedy">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
<link rel="stylesheet" href="../reveal.js-3.6.0/css/reveal.css">
<link rel="stylesheet" href="ubodin.css" id="theme">
<!-- Code syntax highlighting -->
<link rel="stylesheet" href="../reveal.js-3.6.0/lib/css/zenburn.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../reveal.js-3.6.0/css/print/pdf.css' : '../reveal.js-3.6.0/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
<!--[if lt IE 9]>
<script src="../reveal.js-3.6.0/lib/js/html5shiv.js"></script>
<![endif]-->
</head>
<body>
<div class="reveal">
<!-- Any section element inside of this container is displayed as a slide -->
<div class="header">
<!-- Any Talk-Specific Header Content Goes Here -->
CSE 4/562 - Database Systems
</div>
<div class="footer">
<!-- Any Talk-Specific Footer Content Goes Here -->
<div style="float: left; margin-top: 15px; ">
Exploring <u><b>O</b></u>nline <u><b>D</b></u>ata <u><b>In</b></u>teractions
</div>
<img src="graphics/LabLogo-FullText-white.png" height="40" style="float: right;"/>
</div>
<div class="slides">
<section>
<h1>Intro</h1>
<h3>CSE 4/562 Database Systems</h3>
<h5>January 29, 2018</h5>
</section>
</div></div>
<script src="../reveal.js-3.6.0/lib/js/head.min.js"></script>
<script src="../reveal.js-3.6.0/js/reveal.js"></script>
<script>
// Full list of configuration options available at:
// https://github.com/hakimel/../reveal.js#configuration
Reveal.initialize({
controls: false,
progress: true,
history: true,
center: true,
slideNumber: true,
transition: 'fade', // none/fade/slide/convex/concave/zoom
chart: {
defaults: {
global: {
title: { fontColor: "#333", fontSize: 24 },
legend: {
labels: { fontColor: "#333", fontSize: 20 },
},
responsiveness: true
},
scale: {
scaleLabel: { fontColor: "#333", fontSize: 20 },
gridLines: { color: "#333", zeroLineColor: "#333" },
ticks: { fontColor: "#333", fontSize: 16 },
}
},
line: { borderColor: [ "rgba(20,220,220,.8)" , "rgba(220,120,120,.8)", "rgba(20,120,220,.8)" ], "borderDash": [ [5,10], [0,0] ]},
bar: { backgroundColor: [
"rgba(220,220,220,0.8)",
"rgba(151,187,205,0.8)",
"rgba(205,151,187,0.8)",
"rgba(187,205,151,0.8)"
]
},
pie: { backgroundColor: [ ["rgba(0,0,0,.8)" , "rgba(220,20,20,.8)", "rgba(20,220,20,.8)", "rgba(220,220,20,.8)", "rgba(20,20,220,.8)"] ]},
radar: { borderColor: [ "rgba(20,220,220,.8)" , "rgba(220,120,120,.8)", "rgba(20,120,220,.8)" ]},
},
// Optional ../reveal.js plugins
dependencies: [
{ src: '../reveal.js-3.6.0/lib/js/classList.js', condition: function() { return !document.body.classList; } },
{ src: '../reveal.js-3.6.0/plugin/math/math.js',
condition: function() { return true; },
mathjax: '../reveal.js-3.6.0/js/MathJax.js'
},
{ src: '../reveal.js-3.6.0/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: '../reveal.js-3.6.0/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: '../reveal.js-3.6.0/plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } },
{ src: '../reveal.js-3.6.0/plugin/zoom-js/zoom.js', async: true },
{ src: '../reveal.js-3.6.0/plugin/notes/notes.js', async: true },
// Chart.min.js
{ src: '../reveal.js-3.6.0/plugin/chart/Chart.min.js'},
// the plugin
{ src: '../reveal.js-3.6.0/plugin/chart/csv2chart.js'},
{ src: '../reveal.js-3.6.0/plugin/svginline/es6-promise.auto.js', async: false },
{ src: '../reveal.js-3.6.0/plugin/svginline/data-src-svg.js', async: false }
]
});
</script>
</body>
</html>

View file

@ -0,0 +1,403 @@
@font-face {
font-family: 'News Cycle';
font-style: normal;
font-weight: 400;
src: local('News Cycle'), local('NewsCycle'), url(../reveal.js-3.1.0/fonts/9Xe8dq6pQDsPyVH2D3tMQsDdSZkkecOE1hvV7ZHvhyU.ttf) format('truetype');
}
@font-face {
font-family: 'News Cycle';
font-style: normal;
font-weight: 700;
src: local('News Cycle Bold'), local('NewsCycle-Bold'), url(../reveal.js-3.1.0/fonts/G28Ny31cr5orMqEQy6ljt8BaWKZ57bY3RXgXH6dOjZ0.ttf) format('truetype');
}
@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 400;
src: local('Lato Regular'), local('Lato-Regular'), url(../reveal.js-3.1.0/fonts/1EqTbJWOZQBfhZ0e3RL9uvesZW2xOQ-xsNqO47m55DA.ttf) format('truetype');
}
@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 700;
src: local('Lato Bold'), local('Lato-Bold'), url(../reveal.js-3.1.0/fonts/MZ1aViPqjfvZwVD_tzjjkwLUuEpTyoUstqEm5AMlJo4.ttf) format('truetype');
}
@font-face {
font-family: 'Lato';
font-style: italic;
font-weight: 400;
src: local('Lato Italic'), local('Lato-Italic'), url(../reveal.js-3.1.0/fonts/61V2bQZoWB5DkWAUJStypevvDin1pK8aKteLpeZ5c0A.ttf) format('truetype');
}
@font-face {
font-family: 'Lato';
font-style: italic;
font-weight: 700;
src: local('Lato Bold Italic'), local('Lato-BoldItalic'), url(../reveal.js-3.1.0/fonts/HkF_qI1x_noxlxhrhMQYECZ2oysoEQEeKwjgmXLRnTc.ttf) format('truetype');
}
/**@import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700);
@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
**/
/**
* A simple theme for reveal.js presentations, similar
* to the default theme. The accent color is darkblue.
*
* This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed.
* reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
*/
/*********************************************
* GLOBAL STYLES
*********************************************/
body {
background: #fff;
background-color: #fff; }
.reveal {
font-family: 'Lato', sans-serif;
font-size: 36px;
font-weight: normal;
color: #000; }
::selection {
color: #fff;
background: rgba(0, 0, 0, 0.99);
text-shadow: none; }
.reveal .slides > section, .reveal .slides > section > section {
line-height: 1.3;
font-weight: inherit; }
/*********************************************
* STATIC HEADER/FOOTER
*********************************************/
.reveal .header {
position: absolute;
top: 0px;
left: 0px;
right: 0px;
height: 25px;
text-align: center;
padding-left: 15px;
padding-right: 15px;
padding-bottom: 10px;
padding-top: 15px;
background-color: #041a9b;
color: white;
font-size: 0.5em;
z-index: 100;
}
.reveal .footer {
position: absolute;
bottom: 0px;
left: 0px;
right: 0px;
height: 40px;
text-align: center;
padding-left: 15px;
padding-right: 15px;
padding-bottom: 10px;
padding-top: 20px;
background-color: #041a9b;
color: white;
font-size: 0.5em;
z-index: 100;
}
/*********************************************
* HEADERS
*********************************************/
.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 {
margin: 0 0 20px 0;
color: #000;
font-family: 'News Cycle', Impact, sans-serif;
font-weight: normal;
line-height: 1.2;
letter-spacing: normal;
text-transform: none;
text-shadow: none;
word-wrap: break-word; }
.reveal h1 {
font-size: 3.77em; }
.reveal h2 {
font-size: 2.11em; }
.reveal h3 {
font-size: 1.55em; }
.reveal h4 {
font-size: 1em; }
.reveal h1 {
text-shadow: none; }
/*********************************************
* OTHER
*********************************************/
.reveal p {
margin: 20px 0;
line-height: 1.3; }
.reveal imagecredits {
font-size: 12pt;
position: absolute;
right: -10px;
bottom: -10px;
text-align: right;
}
.reveal citation {
font-size: 12pt;
position: absolute;
right: -10px;
bottom: -10px;
text-align: right;
}
/* Ensure certain elements are never larger than the slide itself */
.reveal img, .reveal video, .reveal iframe {
max-width: 95%;
max-height: 95%; }
.reveal strong, .reveal b {
font-weight: bold; }
.reveal em {
font-style: italic; }
.reveal ol, .reveal dl, .reveal ul {
display: inline-block;
text-align: left;
margin: 0 0 0 1em; }
.reveal ol {
list-style-type: decimal; }
.reveal ul {
list-style-type: disc; }
.reveal ul > li {
margin-top: 20px; }
.reveal ul.tight > li {
margin-top: 10px; }
.reveal ol > li {
margin-top: 20px; }
.reveal ol.tight > li {
margin-top: 0px; }
.reveal ul ul {
list-style-type: square; }
.reveal ul ul ul {
list-style-type: circle; }
.reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul {
display: block;
margin-left: 40px; }
.reveal dt {
margin-top: 20px;
margin-bottom: 0px;
font-weight: bold; }
.reveal dd {
margin-top: 0px;
margin-left: 40px; }
.reveal q, .reveal blockquote {
quotes: none; }
.reveal blockquote {
display: block;
position: relative;
width: 70%;
margin: 20px auto;
padding: 5px;
font-style: italic;
background: rgba(255, 255, 255, 0.05);
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
.reveal blockquote p:first-child, .reveal blockquote p:last-child {
display: inline-block; }
.reveal q {
font-style: italic; }
.reveal pre {
display: block;
position: relative;
width: 90%;
margin: 20px auto;
text-align: left;
font-size: 0.55em;
font-family: monospace;
line-height: 1.2em;
word-wrap: break-word;
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); }
.reveal code {
font-family: monospace;
}
.reveal pre code {
display: block;
padding: 5px;
overflow: auto;
max-height: 400px;
word-wrap: normal;
background: #3F3F3F;
color: #DCDCDC; }
.reveal table {
margin: auto;
border-collapse: collapse;
border-spacing: 0; }
.reveal table th {
font-weight: bold;
border-bottom: 1px solid; }
.reveal table th, .reveal table td {
text-align: center;
padding: 0.2em 0.5em 0.2em 0.5em;}
.reveal table th[align="left"], .reveal table td[align="left"] {
text-align: left; }
.reveal table th[align="right"], .reveal table td[align="right"] {
text-align: right; }
.reveal table tr:last-child td {
border-bottom: none; }
.reveal sup {
vertical-align: super; }
.reveal sub {
vertical-align: sub; }
.reveal small {
display: inline-block;
font-size: 0.6em;
line-height: 1.2em;
vertical-align: top; }
.reveal small * {
vertical-align: top; }
/*********************************************
* LINKS
*********************************************/
.reveal a {
color: #00008B;
text-decoration: none;
-webkit-transition: color 0.15s ease;
-moz-transition: color 0.15s ease;
transition: color 0.15s ease; }
.reveal a:hover {
color: #0000f1;
text-shadow: none;
border: none; }
.reveal .roll span:after {
color: #fff;
background: #00003f; }
/*********************************************
* IMAGES
*********************************************/
.reveal section img {
margin: 15px 0px;
background: rgba(255, 255, 255, 0.12);
}
.reveal section img.bordered
{
border: 4px solid #000;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
}
.reveal a img {
-webkit-transition: all 0.15s linear;
-moz-transition: all 0.15s linear;
transition: all 0.15s linear; }
.reveal a:hover img {
background: rgba(255, 255, 255, 0.2);
border-color: #00008B;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
/*********************************************
* NAVIGATION CONTROLS
*********************************************/
.reveal .controls div.navigate-left, .reveal .controls div.navigate-left.enabled {
border-right-color: #00008B; }
.reveal .controls div.navigate-right, .reveal .controls div.navigate-right.enabled {
border-left-color: #00008B; }
.reveal .controls div.navigate-up, .reveal .controls div.navigate-up.enabled {
border-bottom-color: #00008B; }
.reveal .controls div.navigate-down, .reveal .controls div.navigate-down.enabled {
border-top-color: #00008B; }
.reveal .controls div.navigate-left.enabled:hover {
border-right-color: #0000f1; }
.reveal .controls div.navigate-right.enabled:hover {
border-left-color: #0000f1; }
.reveal .controls div.navigate-up.enabled:hover {
border-bottom-color: #0000f1; }
.reveal .controls div.navigate-down.enabled:hover {
border-top-color: #0000f1; }
/*********************************************
* PROGRESS BAR
*********************************************/
.reveal .progress {
background: rgba(0, 0, 0, 0.2); }
.reveal .progress span {
background: #00008B;
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
/*********************************************
* SLIDE NUMBER
*********************************************/
.reveal .slide-number {
color: #00008B; }
/*********************************************
* CUSTOM HIGHLIGHTS
*********************************************/
.reveal .slides section .fragment.highlight-grey,
.reveal .slides section .fragment.highlight-current-grey {
opacity: 1;
visibility: inherit; }
.reveal .slides section .fragment.highlight-grey.visible {
color: lightgrey; }
.reveal .slides section .fragment.highlight-current-grey.current-fragment {
color: lightgrey; }
/*********************************************
* CUSTOM TAGS
*********************************************/
attribution {
width: 100%;
text-align: right;
font-size: 40%;
display: block;
}

View file

@ -0,0 +1 @@
Oliver Kennedy,okennedy,Loki,12.12.2018 18:41,file:///home/okennedy/.config/libreoffice/4;

View file

@ -1,5 +1,5 @@
---
redirect: ../cse-562/2018sp/index.html
redirect: ../cse-562/2019sp/index.html
title: CSE 462 - Database Systems
---

View file

@ -0,0 +1,96 @@
---
title: CSE-4/562 Database Systems (Spring 2019)
---
<h1 style="text-align: center;"><%= title %></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 4:00-4:50 PM in in <a href="http://www.buffalo.edu/buildings/building?id=hoch">Hoch 114</a></li>
<strong>Instructors: </strong><ul>
<li><a href="https://odin.cse.buffalo.edu/people/oliver_kennedy.html">Oliver Kennedy</a>: Capen 212 (<b>inside</b> the library); Weds: 10:00-12:00 (Starting Feb 6)</li>
</ul></li>
<li><strong>TAs: </strong><ul>
<li>Vicky Zheng (Time/Location TBD)</li>
<li>Qiuling Suo (Time/Location TBD)</li>
</ul></li>
<li><strong>Ninjas: </strong><ul>
<li>William Spoth (Availability TBD)</li>
<li>Darshana Balakrishnan (Availability TBD)</li>
<li>Carl Nuessle (Availability TBD)</li>
</ul></li>
<li><strong>Course Discussions: </strong> <a href="https://piazza.com/buffalo/spring2019/cse4562/home">Piazza</a></li>
<li><strong>Textbook</strong>: <ul>
<li>"Database Systems: The Complete Book" 2e. by Garcia-Molina, Ullman, and Widom</li>
</ul></li>
<li><strong>Optional References</strong>: <ul>
<li>"<a href="https://smile.amazon.com/Patterns-Data-Management-Flipped-Textbook/dp/1523853964/ref=sr_1_1?ie=UTF8&qid=1483409680&sr=8-1&keywords=patterns+in+data+management">Patterns in Data Management</a>" by Jens Dittrich</li>
<li>"SAMS Teach Yourself SQL in 10 Minutes" 4e. by Ben Forta</li>
<li>"<a href="http://www.redbook.io/">The Red Book: Readings in Databases</a>" ed. Bailis, Hellerstein, and Stonebraker</li>
</ul></li>
<li><strong>Software</strong>: <ul>
<li>JSQLParser-UB (<a href="http://maven.mimirdb.info/info/mimirdb/jsqlparser/1.0.0/jsqlparser-1.0.0.jar">Jar</a> | <a href="http://doc.odin.cse.buffalo.edu/jsqlparser/">JavaDoc</a> | <a href="https://github.com/UBOdin/jsqlparser">Source</a>)</li>
<li>EvalLib (<a href="http://maven.mimirdb.info/info/mimirdb/evallib/1.0/evallib-1.0.jar">Jar</a> | <a href="https://github.com/UBOdin/evallib">Source</a>)</li>
<li>Apache Commons CSV (<a href="http://commons.apache.org/proper/commons-csv/download_csv.cgi">Jar</a> | <a href="https://commons.apache.org/proper/commons-csv/archives/1.4/apidocs/index.html">JavaDoc</a>)</li>
</ul></li>
<li><strong>Project Submission</strong>: TBD</li>
<li><strong>Project Groups</strong>: 1-3 people</li>
<li><strong>Grading</strong>:
<ul>
<li>50% theory<ul>
<li>10% Homeworks (Skip any 4 for any reason)</li>
<li>20% (or 15%) Midterm on Mar.13 (in class)</li>
<li>20% (or 25%) Comprehensive Final (see HUB for time/location)</li>
</ul>
</li>
<li>50% projects</li>
<ul>
<li>5% <a>Checkpoint 0</a> due on Feb. 8.</li>
<li>10% <a>Checkpoint 1</a> due on Feb. 25</li>
<li>10% <a>Checkpoint 2</a> due on Mar. 11</li>
<li>15% <a>Checkpoint 3</a> due on Apr. 8</li>
<li>10% <a>Checkpoint 4</a> due on May 6</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>Lecture Schedule</h2>
<ul>
<% $db["teaching/cse4_562/2019sp/schedule"].each do |data| %>
<li style="list-style-type: none;list-style-type; margin-top: 3px;">
<div style="display: inline-block; vertical-align: top; text-align: right; padding-right: 20px; width: 100px; font-style: italic;"><%=data["date"]%></div>
<div style="display: inline-block; width: 300px; padding-left: 10px; border-left: solid 1px black;">
<% if data.fetch("due", "") != "" %>Due: <u><%= data["due"] %></u><br/><% end %>
<% if data["type"] != "Lecture" and data["type"] != "Break" %><%=data["type"]%> <% end %>
<%=data["topic"]%>
<% unless data.fetch("materials", {}).empty? %> ( <%= data["materials"].map { |r,url| "<a href=\"#{url}\">#{r}</a>" }.join(" | ") %> )<% end %>
<% if data.has_key? "textbook" then %>
<div style="font-size:70%; margin-left:20px;"><%= data["textbook"] %></div>
<% end %>
</div>
</li>
<% end %>
</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 grade of F in the course. It is the CSE department's policy not to provide financial support to any student disciplined for plagarism. University policies on academic integrity can be reviewed at:</p>
<p style="text-align: center;"><a href="http://engineering.buffalo.edu/computer-science-engineering/information-for-faculty-and-staff/policies/academic-integrity-students.html">CSE Departmental Policy on Academic Integrity</a></p>
<p style="text-align: center;"><a href="https://catalog.buffalo.edu/policies/integrity.html">UB's University-Wide Undergraduate Academic Integrity Policy</a></p>
<p style="text-align: center;"><a href="http://grad.buffalo.edu/succeed/current-students/policy-library.html">The Graduate School Policy Library</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 <b>from student health services</b>:</p>
<p style="text-align: center;"><a href="http://www.buffalo.edu/studentlife/who-we-are/departments/health.html">Student Health Services</a></p>
<h2>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="https://www.buffalo.edu/studentlife/who-we-are/departments/accessibility.html">The Office of Accessibility Resources</a>.</p>

View file

@ -1,5 +1,5 @@
---
redirect: 2018sp/index.html
redirect: 2019sp/index.html
title: CSE 562 - Database Systems
---

View file

@ -9,9 +9,10 @@ title: Courses
</p>
<ul>
<li><a href="cse-562/2019sp/index.html">Spring 2019</a></li>
<li><a href="cse-562/2018sp/index.html">Spring 2018</a></li>
<li><a href="cse-562/2017sp/index.html">Spring 2017</a> (Graduate Only)</li>
<li><a href="cse-462/index.html">Spring 2016</a> (Undergraduate Only)</li>
<li><a href="cse-462/2016sp/index.html">Spring 2016</a> (Undergraduate Only)</li>
<li><a href="cse-562/2015sp/index.html">Spring 2015</a> (Graduate Only)</li>
<li><a href="https://piazza.com/class/hbnssrlgj3o2xl">Spring 2014</a> (Graduate Only)</li>
<li><a href="https://piazza.com/buffalo/spring2013/cse562/home">Spring 2013</a> (Graduate Only)</li>