The textbook for this course will be:

CoronelMorris14

Database Systems - Design, Implementation, and Management, 14th Edition
Carlos Coronel and Steven Morris - ISBN-13: 9780357673034
Publisher : Cengage Learning; 14th edition (December 15, 2022)
Paperback : 816 pages
ISBN-10 : 0357673034
ISBN-13 : 978-0357673034

This text is “a thorough, up to date (2022) treatment of the topic. It is available from Amazon and the publisher: Cengage.com.”


⚠️ NOTE:
When you obtain the text (in whatever form), you do not need to pay for the “MindTap” service.


Documentation for many of the tools we will be using will either be found in  man pages or are supplied as URL’s below. Of course, you’re welcome to employ your favorite search engine to find them yourselves.

Other resources, papers, and references will appear on in this page as they are identified.

If you find tools or references that you like, mention them on Ed Discussion to share with everyone.

Course resources

The Student Data Files which contain all the source code used in the text is available here (Yes, this link is for the 13th edition, but the files are still valid).

You do NOT need to purchase anything at this site. If you click on the “Errata” and “Student Data Files” links (in blue on the left) you can download all the student materials.

The textbook’s authors provided several sample databases for you to use. They are in Microsoft Access databases, so you will need to run a quick shell script to convert those .mdb files to sql files. The script is available here: mdb_to_mysql.sh .

Database Programming Samples

  • You are expected to use Python for all your programming assignments.
  • We are providing an example using Python to access the class MySQL server at Dartmouth.
  • We are also providing an example using Python to access the class MongoDB server on MongoDB Atlas.

Online references

Other language references that may be useful with MongoDB

Papers

  • Several seminal, interesting papers may be found here. They are recommended to all students who want to learn more.
  • This paper from Kent provides a great explanation of the Five Normal Forms (third week).

Books

  • Miurach’s MySQL 4th Ed. is an excellent guide to designing, building, and implementing databases with MySQL. It’s available as a big paperback as well. as an eBook.
  • Database Systems: The Complete Book (2nd Edition) by Hector Garcia-Molina, Jeff Ullman, and Jennifer Widom; Prentice Hall, 2008. Referred to as DSCB, it is the definitive text on databases and their design with a definite thoretical foundation
  • PHP and MySQL 4th Ed. is an excellent book by Joel Murach & Ray Harris. It’s available as a big paperback as well as an eBook.

Useful tools

Relational Algebra tools
  • Relax Relational Algebra calculator This is an excellent tool for exploring Relational Algebra. It can evaluate any relational algebra expression like

    σa>42( A ) ⋈ ( Π a,b ( B ) )

    over a set of relations you can define. The examples demonstrated in class use this tool. You can create relations by hand or bulk load them. See the Readme there.

  • RA The RA Relational Algebra interpreter, maintained by Prof. Jun Yang at Duke University, is a handy aid to learning about relational algebra.

SQL and Relational DB tools

  • SQL Style Guide by Simon Holywell. An EXCELLENT guide that we adopt for this class.

  • The website EverSQL has some handy SQL syntax checkers.

  • SQLFiddle is described as “A tool for easy online testing and sharing of database problems and their solutions.” You can enter schemas and data and then launch queries against them, using MySQL or any of the other most popular database systems (PostgreSQL, MS SQL Server, Oracle, and SQLite). It’s a great tool for quick experimentation when you don’t have access to a live DB. It also has the ability to save what you enter as a private problem space (unique URLs) that you can then share with others for consultation or advice.

  • SQL Pro Quick Guide (IOS app) is a very handy reference for SQL, including language syntax, data types, and all sorts of SQL statements and functions.

ER Diagraming tools

  • MySQLWorkBench is an open source integrated environment including tools for SQL development, DB design and modeling (including E-R diagrams), and DB administration. MySQLWorkbench makes it easy to access remote MySQL servers (like ours) for database creation and SQL querying. We will briefly cover its use in class. It is available for OS X, Linux, and Windows. Note: the current version (6.3) is not yet compatible with Mac OS High Sierra. Use 6.1.7 instead, downloadable here .

  • SQLFluff Online is a SQL formatter that is implemented in Python. Slightly different formatting style than ours, but still pretty good.

  • draw.io is a handy drawing tool you can use online or as a download. It has templates for ER diagrams as well as lots of others.

  • The Mermaid drawing tool can do ER diagrams too.

  • dbdiagram (free) This is a free tool available here that seems to work well.

  • Visio (paid?) A superb commercial software package for diagramming on Windows.

NoSQL Tools

MongoDB

Hakan Özler assembled a nice collection of sample MongoDB databases.

Some tools / other resources:

  • MongoDB Compass A FREE MongoDB GUI from the MongoDB team. Available on Windows, OS X, and Linux.
  • `Studio 3T (a.k.a.) RoboMongo
    A FREE MongoDB GUI with embedded mongo shell. Available on Windows, OS X, and Linux. Go to the link above and choose Download Robo 3T.

  • jq](https://github.com/stedolan/jq) is a lightweight and flexible command-line JSON processor. Very powerful and fast! Installable on MacOS via homebrew` and also available for Linux and Windows.
  • python itself has a JSON prettyprinter. Use it like this:

    cat myfile.json | python -mjson.tool > myfile.json.text
    
  • MongoDB and Rust

Remember that we’re not suggesting you buy or rent any books other than the text.