Database Management Systems
Class Outline and Teaching Materials
Part I: sqlite and mysql sample databases
- Question: managing contacts / classroom assignment /
university registration system / library
- Essential SQL Terms:
A /
B /
- SQLite Tutorial
- LiteCLI : color themes,
the less pager,
GNU readline key cheat sheet
- about quoting:
A,
B,
C
- regexp for sqlite3
- mysql setup + DBeaver
- The Barrier to Exit - Scott McNealy on the #1 Reason for Choosing Open Source Software
-
Embrace, Extend and Extinguish
- Export SQLite Database To a CSV File
- Transactions:
- DDL/DML/DQL/DCL/TCL
Part II: Theoretical Concepts in Relational Databases
- basic math terminology:
terms about sets;
Cartesian products;
binary relations
- Relational Algebra
- The Entity-Relationship Model
- Crow's Foot Notation:
Vertabelo,
Regina
- compound key vs composite key
- integrity constraints 1 /
integrity constraints 2 :
referencial integrity and
cascading actions of foreign keys;
why omit foreign keys?
- mysql indexing
- Conceptual Modeling
- SQL
- join: w3schools,
stackoverflow,
picture,
multiple join,
practice: dofactory
(join on non-unique columns)
- Why normal forms? example:
students and professors,
- functional dependency: OpenTextBC
-
reading functional dependency from an ER diagram
- 3 normal forms:
example
- multivalued dependency:
simplified explanation,
original paper
- Normalization:
vertabelo,
Gordon,
Colostate,
Qvarnström
- Difference between 3NF and BCNF:
A,
B,
C
- Relational Database Design Rules of Thumb:
Grayson /
MIT
Part III: Other Kinds of Databases
- Relational DB vs ORDB:
differences /
differences /
Gordon
- NoSQL Tutorial
- Cassandra Data Modelling - Tables
- Cassandra Data Modelling - Primary Keys
Books and Lecture Notes
- Greg's Supplementary Notes
- SQLite Tutorial
- Db2 SQL Cookbook
- Gordon College 2019 / Gordon College 2015
- George Washington Univ. 2020
- unibz 2010
- Open textbook: Database Design by Adrienne Watt
Tools
- Database Tools Catalog (some are outdated)
- sqlectron
- omnidb
- dbeaver: ER Diagrams
- 5 Open-Source SQL IDEs for You to Learn and Explore
Sample Databases
- chinook record company (sqlite)
- Sakila DVD rental (mysql)
- airport (mysql)
- employees (mysql)
- classic cars (mysql)
- School Database (mysql)
- bike store (MS)
- database schema design exercise: CD catalog
- database schema design exercise: library
- database schema design exercises: manufacturer ; car dealership
- many database schema design exercises
(back to course homepage)