Database Systems -- Resources
The textbook for this course will be:
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
- MySQL reference manual, for Version 8, which is what we will be using.
- MySQL’s connector for Python may be found here, and all the other Connectors and API’s are there too.
- W3Schools.com’s SQL Tutorial covers SQL for a variety of systems, including MySQL. It has loads of live examples as well as a good reference section.
- The MySQLTUTORIAL website has a good MySQL with Python tutorial as does the TutorialsPoint website.
Other language references that may be useful with MongoDB
- PHP function reference.
- Javascript tutorial at w3schools.
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.