List of Figures

 

Chapter 3. Finding functional dependencies

Figure 1. A mocked-up database diagram makes it immediately obvious that this foreign key isn’t allowed.

Figure 2. A sample order confirmation form

Figure 3. Sample order confirmation modified to find which attributes depend on OrderNo

Chapter 7. Pulling apart the FROM clause

Figure 1. Identical query plans demonstrating the breakdown of the view

Figure 2. A much simpler execution plan involving only one table

Figure 3. A nonclustered index being used

Figure 4. The ProductSubcategory table being used again

Figure 5. This execution plan is simpler because NULLs are not being introduced.

Chapter 8. What makes a bulk insert a minimally logged operation?

Figure 1. Bulk Insert Task Editor

Figure 2. Properties window

Chapter 9. Avoiding three common query mistakes

Figure 1. NULL values are included along with the colors that have data.

Figure 2. No results returned

Figure 3. The list of colors not used in the Production.Product table

Figure 4. All rows from the Production.ColorList and the Production.Product rows that match. Non-matching rows return NULL in the ProductID column.

Figure 5. The non-matching rows are lost.

Figure 6. The correct results when the LEFT OUTER JOIN is continued

Figure 7. An extra column in the GROUP BY clause causes unexpected results.

Figure 8. Invalid results because OrderDate was included instead of the expression

Figure 9. The results when the expression is included in the GROUP BY clause