Difference between revisions of "CS 457 Data Base Processing"

From Computer Science
Jump to: navigation, search
(Created page with "== Catalog Description == Data independence, relational model, relational algebra and calculus, query languages and SQL, conceptual modeling, database design, data dependenci...")
 
 
Line 10: Line 10:
 
== Standard Content ==
 
== Standard Content ==
 
===Course Outline ===
 
===Course Outline ===
Database Models  
+
* Database Models  
Relational Algebra
+
* Relational Algebra
SQL - A reasonably comprehensive introduction to SQL.  SQLite is a very good, easy to use, vehicle for this part of the course.
+
* 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: logical design, physical design, security design.
Database design: ER diagrams, normal forms, functional dependencies, transitive closure, etc.
+
* Database design: ER diagrams, normal forms, functional dependencies, transitive closure, etc.
Transactions: query processing, ACID, logging, indexing, hashing, B+ trees, joins.
+
* Transactions: query processing, ACID, logging, indexing, hashing, B+ trees, joins.
SQL - More advanced features (PL/SQL functions, triggers, etc.)
+
* SQL - More advanced features (PL/SQL functions, triggers, etc.)
NOSQL: discuss a subset of the following (whatever’s hot)
+
* NOSQL: discuss a subset of the following (whatever’s hot)
XML
+
* XML
Mongodb
+
* Mongodb
Redis
+
* Redis
levelDB
+
* levelDB
DataFrames - Python/pandas
+
* DataFrames - Python/pandas
Cassandra
+
* Cassandra
many more possibilities
+
* many more possibilities
  
 
===Learning Outcomes===
 
===Learning Outcomes===
Line 30: Line 30:
  
 
===Important Assignments and/or Exam Questions===
 
===Important Assignments and/or Exam Questions===
Relational algebra exercises (pencil and paper) with a variety of joins.
+
* Relational algebra exercises (pencil and paper) with a variety of joins.
Single table SQLite assignment for experience using SQLite features and basic queries.
+
* 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).
+
* 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.
+
* 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.
+
* 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.
+
* (Mongodb, etc.) Pick smaller database problems and implement them using SQL, mongodb and redis (for example).  Compare performance.
  
 
=== Standard resources ===  
 
=== 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.
 
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.

Latest revision as of 13:08, 18 May 2021

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.