CS 457 Data Base Processing

From Computer Science
Revision as of 13:08, 18 May 2021 by Znoble1 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Catalog Description

Data independence, relational model, relational algebra and calculus, query languages and SQL, conceptual modeling, database design, data dependencies and normalization, access methods, tables, queries, forms, macros and reports, database administration, introduction to transaction processing, concurrent transactions, and recovery. Case studies of commercial database systems such as Oracle and Microsoft SQL Server. Prerequisite - C or better in CS 202 and CS 303.

Prerequisites

  • TODO


Standard Content

Course Outline

  • Database Models
  • Relational Algebra
  • SQL - A reasonably comprehensive introduction to SQL. SQLite is a very good, easy to use, vehicle for this part of the course.
  • Database design: logical design, physical design, security design.
  • Database design: ER diagrams, normal forms, functional dependencies, transitive closure, etc.
  • Transactions: query processing, ACID, logging, indexing, hashing, B+ trees, joins.
  • SQL - More advanced features (PL/SQL functions, triggers, etc.)
  • NOSQL: discuss a subset of the following (whatever’s hot)
  • XML
  • Mongodb
  • Redis
  • levelDB
  • DataFrames - Python/pandas
  • Cassandra
  • many more possibilities

Learning Outcomes

  • TODO

Important Assignments and/or Exam Questions

  • Relational algebra exercises (pencil and paper) with a variety of joins.
  • Single table SQLite assignment for experience using SQLite features and basic queries.
  • Multi-table SQLite assignment in the context of normal forms. An example: students at a university with tables for personal data (addresses), financial data (tuition payments), and performance data (credits, grades).
  • Assignment to practice C or Python (or whatever) interface to SQLite.
  • Postgres/Oracle assignment using multiple databases, tables, triggers, transactions, etc. Examples could include the student/university database with the addition of classes, grades, adding, dropping, room assignments, courses, scheduling, faculty schedules, etc.. A more standard example is a company with employees, customers, suppliers, departments, etc.
  • (Mongodb, etc.) Pick smaller database problems and implement them using SQL, mongodb and redis (for example). Compare performance.

Standard resources

Stanford Database Course with Jennifer Widom (available from YouTube). Not a full course, but a nice outline that goes at a slower pace than one might expect from Stanford. PDF files are also available for a more comprehensive version of the course.