When you innovate, you've got to be prepared for everyone telling you you’re nuts. – attributed to Larry Ellison

As in the last unit, work through the following materials writing one sample query for each mechanism using the modified version of the movies database (see code/07sql/guide07.sql).

  1. Views (Section 7.3, for Monday)

    1. Write a simple view specification. For details on Oracle views, see Managing Views.

    2. Define the following terms (in the comments of your SQL command file).

      1. Base Tables

      2. Join Views

      3. Updateable Join Views

      4. Key-Preserved Tables

      5. Views that are implemented via query modification vs materialization. (For details on Oracle materialization, see Materialized View Concepts and Architecture, focusing on the “What is a Materialized View?” and “Why Use Materialized Views” sections.)

  2. Formal languages for the relational model (Chapter 8, for Wednesday)

    1. Relational Algebra (read Sections 8.1–8.3 & 8.5) — Write a simple query on the movies database using SELECT (σcondition), PROJECT (πfieldlist), RENAME (ρnewName) and JOIN (⋈condition) (see example queries 1 & 2 in Section 8.5).

    2. Tuple Relational Calculus (read Sections 8.6.1–8.6.4 & 8.6.8) — Write a simple query on the movies database using the tuple relational calculus queries (see example queries 0 & 1 in Section 8.6.4).

    3. Define the following terms:

      1. Existential (∃) and universal (∀) quantifiers (see Section 8.6.3).

      2. Safe expressions (see Section 8.6.8).

    Write your solutions either in ASCII (e.g., SELECT_condition), in Unicode (e.g., σcondition) or by hand.