The textbooks that I know about, teaching databases, are not complete. In the sense that they lack a complete set of assignments, homework, projects, slides and instructor manual. Do you know of any new textbook that is complete in this sense?
-
2$\begingroup$ Great question, and welcome to Computer Science Educators! Not my area of expertise,, but Ihope you get some helpful answers here :) $\endgroup$– Ben I. ♦Commented Dec 28, 2018 at 3:24
-
$\begingroup$ IMO the question is incomplete without a syllabus. E.g. I attended a 24-lecture course on databases which didn't include a single statement of SQL, but other database courses might be primarily about SQL. Do you want the textbook to cover No-SQL databases? Do you want it to discuss the deviations from ANSI SQL of the major vendors? Etc. etc. etc. $\endgroup$– Peter TaylorCommented Jan 9, 2019 at 8:49
-
$\begingroup$ Nowadays I would expect a proper introduction to databases to also cover NoSQL databases. They're not a niche thing anymore that you only cover in the last lecture if you have time left. $\endgroup$– ObscureOwlCommented Dec 10, 2019 at 9:35
4 Answers
I've taught a lot of people SQL in person (over 3000), and I've had to cobble together materials out of a bunch of resources to do it.
For Exercises:
http://sqlzoo.net
http://pgexercises.com
https://www.codewars.com/?language=sql
For slides, you can use mine, just fork them and remove the branding (they are CC-licensed, the branding is just there to look nice): https://slides.com/lizh/sql-intro
Make diagrams or have students make diagrams with: https://app.quickdatabasediagrams.com/#/
Usually the way I see SQL courses go:
Start by covering enough to get them through querying- have them start with one of the exercise sets above. You may want to break it down into a few class periods - basic querying and filters, followed by joins, and then more complex joins / functions.
Next, have them model data. If you model some data for them, then present a problem for them to do in groups, they usually get the idea pretty well and can self-grade. Then, have them choose something to model individually.
Students should first try to model some data that has 2-3 relations, then model data with a many-to-one relation, then more complex relationship models (relating through 3 or 4 tables).
Some really great things to model, either as a class or as individual projects:
- Books (books are great because you can start with a simple model, then factor it out to third normal form, and then identify where it would vary by application greatly, eg amazon.com vs a library, they need different data models).
- Keyboard shortcuts (because you can relate them to applications, and keys)
- Transit (routes and schedules and busses, most students are familiar)
- Food (you can go a million different ways with this, this is a very difficult data model to do properly)
- Content (users, posts, comments, upvotes, block list. Do this one yourself as an example, it's in too many walkthroughs to be a good assignment.)
If this helps, I am the CTO over at enki.com, and we have an open-source CC-licensed curriculum here: https://github.com/enkidevs/curriculum and a free app students can use to do daily practice with SQL here: https://enki.com/
-
2$\begingroup$ Excellent answer, welcome to Computer Science Educators. From a personal perspective I really appreciate the sharing of material, and CC-licensing is even better. Kudos to enki as well for supporting both students and open source. $\endgroup$ Commented Dec 29, 2018 at 2:19
I have found the Shelly Cashman Series® of books to be effective. All too often the focus is on Microsoft products. In this case, Access is the database used in Shelly Cashman Series® Microsoft® Office 365 & Access 2016: Comprehensive, 1st Edition, (2017).
Table of Contents:
Microsoft's New Productivity Tools for School and Work. Office 2016 and Windows 10: Essential Concepts and Skills. 1. Databases and Database Objects: An Introduction. 2. Querying a Database. 3. Maintaining a Database. 4. Creating Reports and Forms. 5. Multiple-Table Forms. 6. Advanced Report Techniques. 7. Advanced Form Techniques. 8. Macros, Navigation Forms, and Data Macros. 9. Administering a Database System. 10. Using SQL. 11. Database Design. Index.
Also worth a look is Concepts Of Database Management 9th
Table of Contents:
- Introduction to Database Management.
- The Relational Model 1: Introduction, QBE, and Relational Algebra.
- The Relational Model 2: SQL.
- The Relational Model 3: Advanced Topics.
- Database Design 1: Normalization.
- Database Design 2: Design Method.
- DBMS Functions.
- Database Administration.
- Database Management Approaches. Appendix A: Comprehensive Design Example: Marvel College. Appendix B: SQL Reference. Appendix C: MySQL. Appendix D: "How Do I" Reference. Appendix E: Using Access to Create a Web App. Appendix F: A Systems Analysis Approach to Information-Level Requirements.
Both books are from Cengage, which does very well with print and ebook options, including a student access area to download materials for the practice work of each chapter and source material for the exercises. They also have extensive material available online for instructors, often including PowerPoint slides and test generators.
(As a student, I've found the Cengage books I've used to be good for learning from. The download area sometimes includes even more exercises than the book presents. Sometimes the Shelly Cashman Series® of books seems too elementary for my tastes, but my fellow students have always seemed to like them well enough. So I can recommend Cengage as a resource from a student perspective as well.)
-
$\begingroup$ I have used resources from these, they are definitely good quality. $\endgroup$ Commented Jan 19, 2019 at 16:44
Database Systems Concepts by Silberschatz, Korth and Sudarshan comes with a comprehensive instructor/student resources web site provided by the authors. You can find slides, assignments and even a web based tool to practice SQL at https://www.db-book.com/db7/index.html
If you are an instructor in a qualified educational institution, you can contact the book publisher. They provide additional resources for instructors like solutions to selected end of chapter exercises etc.
"Fundamentals of Database Systems" (Elmasri, Navathe) is a good textbook. Still, from the practical point of view, there are no practical assignments one can use for students. Also, there is no complete set of exercises with solutions. Links given above are interesting, but not complete, especially for the normalization process.
-
$\begingroup$ I once reduced Normalization to four simple sentences, but students still have to visualize what is happening, which takes many nights of sleep to do. Then, "to comprehend the nectar, requires sorest need", brought on by carefully designed assignments. It is a long struggle to learn this stuff, I don't believe that it can be made easy. $\endgroup$ Commented May 2, 2021 at 12:31