CS 334: Exam 1 topics

Table of Contents

Notes sheet

You are permitted one 8.5 x 11 handwritten notes sheet (both sides) for use as a reference during the exam.

How to study

Lots of research has shown that purely reading over material isn't a very good way to prepare for exams. Practice is also important. Reading how to swing a baseball bat or how to cross-country ski might be important for giving you some good ideas on how to get better the next time you try it, but it's doesn't substitute for actually getting out there and trying those ideas by swinging a bat or skiing in the Arb.

How can you practice? Go back to look at the homework problems. Can you do them from scratch on paper? Furthermore, the textbook has a strong set of practice problems, with solutions online. Make sure to do all of your practicing on paper, not at a keyboard, so as to simulate the exam conditions.

Remember that you have a textbook. Its content is much better than what you'll find with random web searches, and I'm basing my notation and content on it. It is a much more effective use of your time to use the textbook as a reference rather than trying to find random web pages that may or may match what we've covered.

Exam content

Listed below is the material that I have in mind that you should know for the exam. It's what's in my head when creating it. That said, this isn't a contract. I may have inadvertently left something off this list that ends up on an exam question. I make no guarantees that the exam will be 100% limited to items listed below. Moreover, I will not be able to test all of this material given the time limitations of the exam. I will have to pick and choose some subset of it.

There's more in the textbook than what we've covered; I will only be asking exam questions about content that has either been discussed in class or has appeared on homework assignments.

Relational model (chapter 2)

Be able to define and/or identify aspects of the relational model such as relations, candidate keys, primary keys, superkeys, foreign keys.

Relational algebra (chapter 6)

Be able to write queries as specified in relational algebra using selection, projection, set operators, Cartesian product, join, rename, assignment, and aggregation. Be able to interpret relational algebra queries provided, or fill in incomplete queries.

SQL (chapter 3)

Be able to produce or interpret the results of SELECT / FROM / WHERE / GROUP BY / ORDER BY / HAVING / [INNER/OUTER] JOIN queries. Be able to predict the output of queries where knowledge of the Cartesian-product / selection / projection definition is likely to be useful. Be able to create and use tables with primary keys, foreign keys, integers, reals, and text. Be able to interpret and construct queries with subqueries. Use and interpret NULL correctly.

Data modeling (chapter 7)

Be able to map ideas and general descriptions, stated in words or in basic E-R diagrams, into the relational model. This including ideas such as 1-to-many vs. many-to-many vs. 1-to-1 relationships.