Introduction to Database Systems

Similar documents
Introduction to Database Systems

Introduction to Databases

Introduction to Databases

Introduction to Computer Systems

Introduction to Computer Systems

San José State University College of Science / Department of Computer Science Introduction to Database Management Systems, CS157A-3-4, Fall 2017

San José State University Computer Science Department CS157A: Introduction to Database Management Systems Sections 5 and 6, Fall 2015

CS 245: Database System Principles

Department of Accounting & Law, School of Business. State University of New York at Albany. Acc 682 Analysis & Design of Accounting Databases

CS157a Fall 2018 Sec3 Home Page/Syllabus

Introduction to Database S ystems Systems CSE 444 Lecture 1 Introduction CSE Summer

Introduction to Databases Fall-Winter 2010/11. Syllabus

Introduction to Database Systems CSE 444. Lecture #1 March 26, 2007

Course and Contact Information. Course Description. Course Objectives

Introduction to Database S ystems Systems CSE 444 Lecture 1 Introduction CSE Summer

Introduction to Data Management CSE 344. Lecture 1: Introduction

IS 331-Fall 2017 Database Design, Management and Applications

Course Book Academic Year

CMPS 182: Introduction to Database Management Systems. Instructor: David Martin TA: Avi Kaushik. Syllabus

Course and Contact Information. Course Description. Course Objectives

Database Management System Implementation. Who am I? Who is the teaching assistant? TR, 10:00am-11:20am NTRP B 140 Instructor: Dr.

Database Management Systems CS Spring 2017

San José State University Science/Computer Science Database Management System I

Rochester Institute of Technology Golisano College of Computing and Information Sciences Department of Information Sciences and Technologies

Compilers for Modern Architectures Course Syllabus, Spring 2015

TBD TA Office hours: Will be posted on elearning. SLO3: Students will demonstrate competency in data modeling, including dimensional modeling.

Avi Silberschatz, Henry F. Korth, S. Sudarshan, Database System Concept, McGraw- Hill, ISBN , 6th edition.

CS634 Architecture of Database Systems Spring Elizabeth (Betty) O Neil University of Massachusetts at Boston

INF 315E Introduction to Databases School of Information Fall 2015

CSC 111 Introduction to Computer Science (Section C)

CSE 344 JANUARY 3 RD - INTRODUCTION

Database Systems Management

Introduc)on to Database Systems CSE 444. Lecture #1 March 29, 2010

COMP-421: Database Systems. Joseph D silva McConnel Engg. 102

Introduction to CS 4604

Modern Database Systems CS-E4610

ESET 349 Microcontroller Architecture, Fall 2018

Resource Virtualization and the Enterprise

Introduction to Databases Fall-Winter 2009/10. Syllabus

Introduction to Database Systems CSE 444. Lecture 1 Introduction

IS Spring 2018 Database Design, Management and Applications

Course Design Document: IS202 Data Management. Version 4.5

Overview of the Class and Introduction to DB schemas and queries. Lois Delcambre

Course Syllabus. Course Information

CPS352 - DATABASE SYSTEMS. Professor: Russell C. Bjork Spring semester, Office: KOSC 242 x4377

Arindrajit Roy; Office hours:

CS 525 Advanced Database Organization - Spring 2017 Mon + Wed 1:50-3:05 PM, Room: Stuart Building 111

Prof. David Yarowsky

Course and Contact Information. Catalog Description. Course Objectives

San José State University Department of Computer Science CS-174, Server-side Web Programming, Section 2, Spring 2018

CMPT 354: Database System I. Lecture 1. Course Introduction

SRM UNIVERSITY FACULTY OF ENGINEERING AND TECHNOLOGY SCHOOL OF COMPUTING DEPARTMENT OF CSE COURSE PLAN

CSci 4211: Data Communications and Computer Networks. Time: Monday and Wednesday 1 pm to 2:15 pm Location: Vincent Hall 16 Spring 2016, 3 Credits

Textbook(s) and other required material: Raghu Ramakrishnan & Johannes Gehrke, Database Management Systems, Third edition, McGraw Hill, 2003.

ESET 369 Embedded Systems Software, Fall 2017

CMPUT 391 Database Management Systems. Fall Semester 2006, Section A1, Dr. Jörg Sander. Introduction

CSCE 441 Computer Graphics Fall 2018

Your New App. Motivation. Data Management is Universal. Staff. Introduction to Data Management (Database Systems) CSE 414. Lecture 1: Introduction

General course information

College Algebra. Cartesian Coordinates and Graphs. Dr. Nguyen August 22, Department of Mathematics UK

CPS352 Database Systems Syllabus Fall 2012

Introduction to Data Management (Database Systems) CSE 414

CS503 Advanced Programming I CS305 Computer Algorithms I

CMSC Introduction to Database Systems

San José State University Department of Computer Science CS049J, Programming in Java, Section 2, Fall, 2016

Linear Algebra Math 203 section 003 Fall 2018

Informatics 1: Data & Analysis

CSE 303: Database. Teaching Staff. Lecture 01. Lectures: 1 st half - from a user s perspective. Lectures: 2 nd half - understanding how it works

COMP-421: Database Systems. Joseph D silva McConnel Engg. 102

LIS 2680: Database Design and Applications

Math 2280: Introduction to Differential Equations- Syllabus

Introduction to UNIX

San José State University Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Fall 2017

San Jose State University College of Science Department of Computer Science CS185C, Introduction to NoSQL databases, Spring 2017

Advanced Topics in Database Systems Spring 2016

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

MSIS-DL 317 Syllabus. Faisal Akkawi, Ph.D. Introduction to Databases Fall 09

Goals for Today. CS 133: Databases. Final Exam: Logistics. Why Use a DBMS? Brief overview of course. Course evaluations

San Jose State University College of Science Department of Computer Science CS185C, NoSQL Database Systems, Section 1, Spring 2018

CSE 344 Final Review. August 16 th

Who, where, when. Database Management Systems (LIX022B05) Literature. Evaluation. Lab Sessions. About this course. After this course...

Course and Unix Intro

Advanced Relational Database Management MISM Course S A3 Spring 2019 Carnegie Mellon University

CPS352 - DATABASE SYSTEMS. Professor: Russell C. Bjork Spring semester, Office: KOSC 242 x4377

CS 564: DATABASE MANAGEMENT SYSTEMS. Spring 2018

Database Design and Management - BADM 352 Fall 2009 Syllabus and Schedule

ORACLE PL/SQL DATABASE COURSE

When does RDBMS representation make sense When do other representations make sense. Prerequisites: CS 450/550 Database Concepts

Course Requirements. Prerequisites Miscellaneous

ESET 369 Embedded Systems Software, Spring 2018

CS Final Exam Review Suggestions

Overview of the Class

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

Syllabus of ENPM 691: Secure Programming in C

Grow your cloud knowledge.

EECE.2160: ECE Application Programming Spring 2017

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018

CSci 4211: Introduction to Computer Networks. Time: Monday and Wednesday 2:30 to 3:45 pm Location: Smith Hall 231 Fall 2018, 3 Credits

Course Syllabus - CNT 4703 Design and Implementation of Computer Communication Networks Fall 2011

CNG 140 C Programming. Syllabus. Course Info Fall Semester. Catalog Description

Transcription:

Introduction to Database Systems Syllabus Web Page http://www.eecs.northwestern.edu/~pdinda/db Instructor Peter A. Dinda Technological Institute L463 pdinda@northwestern.edu Office hours: Thursdays, 2-5pm, or by appointment Teaching assistants Besim Avci Tech L580 besim@u.northwestern.edu Office hours: Tuesdays and Wednesdays, 11am-1pm, or by appointment Brandon Staunton Wilkinson Lab brandonstaunton2015@u.northwestern.edu Office hours: Mondays and Fridays, 10:30am-12:30pm, or by appointment Location and Time Lecture: Technological Institute, Tech A110, 4-4:50pm, MWF Prerequisites Required Required Recommended Recommended EECS 214 (311) or equivalent data structures course EECS 213 or equivalent computer systems course Familiarity with concepts from discrete math such as set theory (EECS 212/310 for example) Some familiarity with Perl or other scripting language Textbook and other readings Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer D. Widom, Database Systems: The Complete Book, 2 nd Edition, Prentice Hall, 2009. (Textbook - Required) An in-depth introduction to databases and database implementation Phillip Greenspun, SQL for Web Nerds, http://philip.greenspun.com/sql/. (Required, but available for free on the web) A great introduction to RDBMS systems from the perspective of a web application developer. Page 1 of 7

Joe Celko, SQL for Smarties: Advanced SQL Programming, 4th edition, Morgan Kaufman, 2010. (Useful) A collection of wisdom on how working developers get useful things done in SQL. Tom Christiansen, brian d foy, Larry Wall, Jon Orwant, Programming Perl, 4 th Edition, O Reilly and Associates, 2012. (Useful) This is the bible for the Perl language Eben Hewitt, Cassandra: The Definitive Guide, O Reilly and Associates, 2010. (Interesting) This describes the Cassandra distributed database, but is a bit dated Objectives, framework, philosophy, and caveats This course introduces the underlying concepts behind data modeling and database systems using relational database management systems (RDBMS), the structured query language (SQL), and web applications (Perl/JavaScript/CGI) as examples. You will learn: How to model your data using the entity-relationship model How to design a normalized schema in the relational data model How to implement your schema using SQL How to keep your data consistent and safe with your schema using the ACID properties that a modern RDBMS gives you How to query your data using SQL How to interface to a modern RDBMS from a modern programming language. How such interfaces are used to create web applications How an RDBMS provides quick access to your data using indices, and how indices are implemented. How an RDBMS manages the storage hierarchy. How an RDBMS optimizes and execute your queries using the relational algebra, the theoretical underpinning of database systems. How an RDBMS implements transactions. Special topics: database security, including SQL injection attacks, and, if time: NoSQL/distributed databases, CAP theorem. The textbook I have chosen is actually a combination of two books, an introduction to the concepts and use of databases and an introduction to the implementation of RDBMS systems. We will cover mostly the former. However, this is a very useful and essentially timeless book to have on your bookshelf for both elements. At the beginning of the course, we will also use a Page 2 of 7

very practical, and highly irreverent, free introductory book on relational databases and web applications. The idea is to dive in quickly and learn how to use a database as the core of a web application, and then to back up and consider data modeling, query modeling, and database systems more deeply. This is a learn-by-doing kind of class. You will dive right in and modify a small database-based, mobile, geolocating web application. Next you will design and implement your own database-backed web application for financial portfolio management. Finally, you ll implement a B+Tree index data structure, a common index structure used in many database engines. The majority of the programming in this class will be from scratch. We will use SQL, Perl, JavaScript, and C++ on Linux systems. Projects At the beginning of the course, I will provide you with a simple web application that implements a mobile, map-based view of political candidates, committees, and contributors. This application is based on an Oracle database and provides a web interface using a combination of client-side JavaScript and a CGI application written in Perl that talks to the database via DBI. This is a very common form of web application. You will learn how this application works, and then you will extend it in several ways, focusing on the database backend. The goal is to immediately introduce you to SQL right away using a substantial dataset, namely the Federal Election Commission s disclosure database from 1980 to the present. This project will take three weeks. The second project is focused on developing a simple financial portfolio manager that tracks a user's investments, and allows the user to mine historical financial data in several ways. I will give you a set of requirements and access to about 10 years of stock price data, and you will design and implement a database-backed web-based system. This project will take four weeks. The third project is to build a B+Tree data structure. B+Trees are common ondisk (as opposed to in-memory) data structures used in relational database systems and many other systems. I will provide you with a framework, starter code, and a test harness. Homework There will be three homework sets that will be periodically assigned to help you improve your understanding of the material. These will focus on the entity relationship model, the relational model, and relational algebra. Exams There will be a midterm exam and a final exam. The midterm exam will take place in the evening outside of class. The final exam will not be cumulative. Page 3 of 7

Grading 15% Project A: Dry-run project ( Red, White, and Blue ) 20% Project B: Portfolio manager project 15% Project C: B+Tree project 10% Homework 20% Midterm 20% Final Grades are not a competition. Late Policy For each calendar day after the due date for a homework or a lab, 10% is lost. After 1 day, the maximum score is 90%, after 2 days, 80%, etc, for a maximum of 10 days. Cheating Since cheaters are mostly hurting themselves, we do not have the time or energy to hunt them down. We much prefer that you act collegially and help each other to learn the material and to solve development problems than to have you live in fear of our wrath and not talk to each other. Nonetheless, if we detect blatant cheating, we will deal with the cheaters as per Northwestern guidelines. Schedule Note that the schedule is subject to change due to travel and other factors. I will announce schedule and due-date changes via email. If you do not receive a welcome email from me, please let me know. Lecture Date Topics Readings Homework and Project 1 9/24 Class mechanics Introductory material, Web applications, client/server, and three-tier GUW 1, 9.1, 9.3.1,9.3.2; PG preface + 1 Project A (RWB) out If you re unfamiliar with Unix, now would be a good time to view the Unix introduction video available from the course web site. 2 9/26 SQL in a nutshell, Start walk through of RWB (SQL) PG 1-7, Perl HO, JS HO, WOT HO 3 9/29 How web applications work. Apache, CGI, Perl, JavaScript, DBI, RDBMS, SQL in a nutshell, continue walk through of RWB (SQL) PG 1-7, Perl HO, JS HO, WOT HO, GUW 9.3.9 Note: you might find PG 10 useful reading Page 4 of 7

4 10/1 Returning to the big picture: Relational and distributed databases, Data modeling, transactions/acid, queries, abstracting storage+indices, GUW 1; PG preface + 1 5 10/3 Back to the nitty gritty: Perl Perl HO 6 10/6 Walk through RWB (Perl) Perl HO 7 10/8 Walk through RWB (Perl) Instructor may be out of town 8 10/10 Database security topics or catchup Instructor may be out of town 9 10/13 NoSQL/Distributed Databases Perl HO GUW 10.1 (although lecture will focus elsewhere) Optional SQL Injection Attack Challenge 10 10/15 Data models and Data modeling: Why? Start Entity- Relationship: Entity sets, attributes, relationships, ER diagrams, instances, multiplicity, roles, multiway 11 10/17 Entity-Relationship Model: conversion to binary relationships, subclassing, design principles 12 10/20 Entity-Relationship Model: constraints, weak entity sets 13 10/22 Relational Data Model: basics, translating from ER to relational 14 10/24 Relational Data Model: basics, translating from ER to relational 15 10/27 Relational Data Model: subclasses, functional dependencies 16 10/29 Relational Data Model: Schema design and normal forms 17 10/31 Relational Data Model: Multivalued dependencies GUW 2.1, 4.1-4.4 GUW 4.1-4.4 GUW 4.1-4.4 GUW 2.2, 2.3, 4.5 GUW 2.2, 2.3, 4.5 GUW 4.6, 3.1-3.2 GUW 3.3-3.5, 3.6.6 GUW 3.6 Project A (RWB) in. Project B (Portfolio) out HW 1 out HW 1 in HW 2 out 18 11/3 Slack time or Midterm Review HW 2 in Page 5 of 7

Midterm Exam: Tuesday, 11/4, 6-8pm location TBD Midterm Exam will cover Lectures 1-18 19 11/5 Relational Algebra: Sets: union, intersection, difference, selection, projection, Cartesian product, and cross, inner, outer, left, right joins 20 11/7 Relational Algebra: Bags, equivalent expressions, some extended operators 21 11/10 Relational Algebra: grouping, constraints, data-mining 22 11/12 Advanced SQL: strings, regular expressions, date/time, nulls, 3-valued logic, explain plan, subqueries in/exists/>all/>any, correlation 23 11/14 Advanced SQL: insert/update/delete, multistatement transactions using PL/SQL; create schemas: bitfields, decimal, blob; drop, alter; indexes; views 24 11/17 Advanced SQL: Constraints, Triggers, systems aspects. 25 11/19 Implementation: Storage and Representing Data 26 11/21 Implementation: Indexes, Btrees 27 11/24 Implementation: Indexes, Hashes 27a 11/26 (probably no class) GUW 2.4, 5.1-5.2 GUW 5.1-5.2 GUW 5.1-5.2, 2.5 GUW 6 GUW 6, 7, 8 GUW 6, 7, 8 GUW 13 GUW 14.1, 14.2 GUW 14.3 HW 3 out Project B (Portfolio) in Project C (B+Tree) out HW 3 in Thanksgiving Break (6pm, 11/25; classes resume on 12/1) 28 12/1 Implementation: Indexes, Bitmaps 29 12/3 Implementation: Transactions (Logging, Locking) 30 12/5 Implementation: Transactions (Logging, Locking) GUW 14.7 GUW 17.1-17.4, 18.1-18.3 GUW 17.1-17.4, 18.1-18.3 Project C (B+Tree) in Final Exam, Thursday, 12/11, 7-9pm, in our classroom. Final Exam will Cover Lectures 19-30 Page 6 of 7

PG = Phillip Greenspun, SQL for Web Nerds GUW = Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer D. Widom, Database Systems: The Complete Book Perl HO = Perl in a Nutshell handout JS HO = JavaScript Model in a Nutshell handout WOT HO = Using Databases in the Web of Things Environment handout Page 7 of 7