Chapter 8 Questions

Ace your homework & exams now with Quizwiz!

The NOT EXITS keyword will be true if any row in the subquery fails to meet the condition.

.False

During the database redesign process, you discover that when you try to change a DEPARTMENT name (the department's primary key), the change is disallowed by the DBMS due to your design of the EMPLOYEE table (which has a foreign key referencing DEPARTMENT) You want the change to be allowed. In order to fix this, you use what SQL syntax? A) ON UPDATE CASCADE B) ON DELETE CASCADE C) ADD CONSTRAINT D) FOREIGN KEY

A

In a correlated subquery of a database that has tables TableOne and TableTwo, if table TableOne is used in the upper SELECT statement, then which table is used in the lower SELECT statement? A) TableOne B) TableTwo C) Both TableOne and TableTwo D) Either TableOne or TableTwo

A

In a doubly nested set of NOT EXISTS SELECT statements, ________. A) if a row does not not match any row, then it matches every row B) if a row matches any row, then it matches every row C) if a row does not match any row, then it does not match every row D) if a row matches any row, then it does not match every row

A

In the database redesign process, before proceeding with the redesign it is often useful to ________. A) check whether certain conditions or assumptions about the data are valid B) find out why the design was not done properly the first time C) stop information systems and users from influencing each other D) set standards for user behavior

A

When changing the minimum cardinality on the parent side of the relationship from zero to one, the foreign key ________. A) must be changed from NULL to NOT NULL B) must be changed from NOT NULL to NULL C) must be changed to a composite key D) must be changed to a surrogate key

A

When running an SQL query that uses EXISTS, the EXISTS keyword will be true if ________. A) any row in the subquery meets the condition B) all rows in the subquery meet the condition C) no row in the subquery meets the condition D) any row in the subquery fails to meet the condition

A

What is a correlated subquery? Include an example.

A correlated subquery uses the standard SQL subquery structure of a SELECT statement (called the lower SELECT) within the WHERE clause of a controlling (or upper) SELECT. However, where a non-correlated subquery uses different tables in the upper and lower SELECTS, the correlated subquery uses the same table in both SELECTS. SQL aliases are used to provide different table names within the query. When a non-correlated subquery is processed, the lower SELECT is processed first and the entire result set of the lower SELECT is passed to the upper SELECT. When a correlated subquery is processed, a nested processing is used where each individual result of the lower SELECT is returned one at a time to the upper SELECT for processing. Here is an example that finds the last names of all students advised by a faculty whose last name is 'Smith': SELECT S.LastName FROM Student S WHERE EXISTS (SELECT * FROM FACULTY F WHERE F.FacultyID = S.AdvisorID AND F.LastName = 'Smith'));

Which of the following different copies of the database schema is typically not used in the database redesign process? A) Small test database B) Data warehouse database C) Operational database D) Large test database

B

Because of the need to know the functional dependencies in a database, it is a good idea to create a(n) ________. A) conceptual schema B) internal schema C) dependency graph D) table-relationship diagram

C

Changing cardinalities ________. A) never occurs in database redesign B) rarely occurs in database redesign C) commonly occurs in database redesign D) always occurs in database redesign

C

Database redesign is fairly easy when ________. A) information systems and organizations influence each other B) the design was done correctly the first time C) there is no data in the database D) good backups of the database are available

C

In order to make sure the database redesign is working properly during the redesign testing process, a means must be created to ________. A) reverse engineer all test databases B) graph dependencies in all test databases C) recover all test databases to their original state D) re-interview all relevant users

C

The process of reading an actual database schema and producing a data model from that schema is called ________. A) data modeling B) data engineering C) reverse engineering D) schema modeling

C

When decreasing cardinalities, there will always be ________. A) relationship loss B) foreign key loss C) data loss D) default value loss

C

When dropping a primary key column from a table, which of the following steps is included in the process? (The order of the steps listed below is not relevant, only the steps themselves.) A) Drop all constraints from the table B) Drop the foreign keys from the table C) Drop the foreign keys in other tables based on the primary key column D) Drop the primary key(s) of any table(s) to which this one is related

C

When making any change to the database structure, we may need to check for effects of the change on any of the following except ________. A) data B) foreign keys C) ad-hoc SQL queries D) triggers

C

When running a correlated subquery, the DBMS ________. A) runs the lower SELECT statement by itself and then sends the results to the upper SELECT statement. B) runs the upper SELECT statement by itself and then sends the results to the lower SELECT statement. C) alternates running the lower SELECT statement with running the upper SELECT statement based on each result of the lower SELECT statement D) Either A or B may be used depending on the query.

C

When running an SQL query that uses NOT EXISTS, the NOT EXISTS keyword will be true if ________. A) any row in the subquery meets the condition B) all rows in the subquery meet the condition C) no row in the subquery meets the condition D) any row in the subquery fails to meet the condition

C

Which of the following is not a possible step in the database redesign process? A) Checking whether certain conditions or assumptions about the data are valid B) Reverse engineering the data model C) Revising user account name policies D) Maintaining backups of the existing database

C

A dependency graph should include all of the following except ________. A) tables B) views C) triggers D) DEFAULT values

D

A doubly nested set of NOT EXISTS SELECT statements is ________. A) a famous pattern in SQL B) regularly used C) rarely used to nonexistent in the real world D) Both A and B are correct

D

In the database redesign process, an SQL tool that is useful for testing whether or not certain conditions or assumptions are valid is ________. A) UPDATE B) DROP TABLE C) CREATE TRIGGER D) NOT EXISTS

D

The data model produced by reverse engineering is a(n) ________. A) conceptual schema B) internal schema C) dependency graph D) table-relationship diagram

D

The data model produced by reverse engineering is not truly a logical model because it will contain ________. A) tables for strong entities B) supertype/subtype tables C) tables for ID-dependent entities D) intersection tables

D

To add a NOT NULL column to a table, we ________. A) use the REVISE TABLE command B) use the ALTER TABLE command C) use the MODIFY TABLE command D) create a new NULL column, insert data values into every row, and change the NULL constraint to NOT NULL

D

To change a table name, we ________. A) use the SQL RENAME TABLE command B) use the SQL ALTER TABLENAME command C) use the SQL MODIFY TABLENAME command D) create a new table, move the data, and drop the old table

D

When dropping a foreign key column from a table, which of the following steps is (are) included in the process? (The order of the steps listed below is not relevant, only the steps themselves.) A) Drop the foreign key constraint from the table B) Drop the foreign key column from the table C) Drop the primary key in the other table referenced by the referential integrity constraint D) Both A and B are correct

D

When dropping tables and relationships, which of the following steps is/are included in the process? (The order of the steps listed below is not relevant, only the steps themselves.) A) Drop the foreign key constraints from the tables B) Drop the tables C) Drop the primary key constraints from the tables D) Both A and B are correct

D

When increasing cardinalities from 1:N to N:M, which of the following steps is not included in the process? (The order of the steps listed below is not relevant, only the steps themselves.) A) Create an intersection table B) Populate the intersection table C) Drop the old foreign key D) Drop the primary key

D

Which of the following SQL statements is a correctly stated correlated subquery? A) SELECT C1.CustName, C1.SalesRepNo FROM CUSTOMER C1 WHERE C1.SalesRepNo IN (SELECT S1.SalesRepNo FROM SALESREP S1 WHERE S1.RepName = 'Smith'); B) SELECT C1.CustName, C1.SalesRepNo FROM CUSTOMER C1 WHERE C1.SalesRepNo IN (SELECT S1.SaleRepNo FROM SALESREP S1 WHERE S1.RepName = 'Smith') AND C1.SalesRepNo=S1.SalesRepNo); C) SELECT C1.CustName, C1.SalesRepNo FROM CUSTOMER C1 WHERE C1.SalesRepNo IN (SELECT S1.SaleRepNo FROM SALESREP S1 WHERE S1.RepName = 'Smith') AND C1.SalesRepNo<>S1.SalesRepNo); D) SELECT C1.CustName, C1.SalesRepNo FROM CUSTOMER C1 WHERE C1.SalesRepNo IN (SELECT C2.SaleRepNo FROM CUSTOMER C2 WHERE C1.SalesRepNo=C2.SalesRepNo); AND C1.OrderNo<>C2.OrderNo);

D

Explain and contrast the results provided by the EXISTS, NOT EXISTS, and doubly-nested NOT EXISTS keywords.

The EXISTS and NOT EXISTS keywords are used in the WHERE clause of correlated subqueries, and thus are the basis of just another form of correlated subquery. The EXISTS keyword will be true if any row in the subquery meets the subquery condition(s). The NOT EXISTS keyword will be true when all rows in the subquery fail to meet the subquery condition(s). The double use of NOT EXISTS, which requires three nested SELECT statements, can be used to test for situations where every row of a table meets a specified condition tested. The doubly nested NOT EXISTS pattern is a famous pattern in SQL and very useful when needed.

When redesigning a database, how can we check assumptions about functional dependencies?

There are two related SQL techniques that we can use to check assumptions about functional dependencies in an existing database. The first is to use a correlated subquery with the SQL IN keyword, and the second is to use a correlated subquery structure using the SQL EXISTS and/or NOT EXISTS keywords.

A continuous circular process of changes in user behaviors and change in the information systems they use is a natural outcome of information system use.

True

A doubly nested set of NOT EXISTS SELECT statements can be used to find rows that meet some specified condition for every row in a table.

True

A means must be created to recover all test databases to their original stat during the redesign testing process.

True

Because EXISTS and NOT EXISTS are forms of correlated subqueries, the processing of the associated SELECT statements must be nested,

True

Because of the need to know the functional dependencies in a database, it is a good idea to create a dependency graph.

True

Changing table names is complicated by the fact that constraints are often associated with the table and will also need to be changed.

True

Converting date, money, or other more specific data types to char or varchar will usually succeed.

True

Correlated subqueries can be used to verify functional dependencies.

True

Deleting tables and relationships is basically a matter of foreign key constraints and then dropping the tables.

True

Depending on the DBMS, when changing the minimum cardinality on the parent side from zero to one, the foreign key constraint that defines the relationships may have to be dropped before the change is made and re-added afterwards.

True

EXISTS and NOT EXISTS are actually just another form of correlated subqueries.

True

IF a DEFAULT constraint is included when a new column is added to a table, the default value is only applied to new rows and not to existing rows at the time the new column is added.

True

In a correlated subquery, the DBMS must run the lower SELECT statement as a process that is nested within the upper SELECT statement.

True

In a correlated subquery, the same table is used in he upper and lower SELECT statements

True

In a real sense, information systems and organizations do not just influence each other, but rather they create each other.

True

In order to minimize the need to change table names, some organizations have a policy that no user or application should ever employ the true name of a table, but use views as table aliases instead.

True

In the SQL statement: SELECT S1.CustName, S1.SalesRepNo FROM SALES S1; the "S1" is called an alias.

True

In the database redesign process, it is often useful to test whether certain conditions or assumptions are valid before proceeding with the redesign.

True

SQL Server 2014 contains a system-stored procedure named sp_rename that can be used to change table names.

True

The authors refer to the data model produced by reverse engineering as the RE data model.

True

The continuous circular process of changes is known as the Systems Development Life Cycle (SDLC)

True

The data model produced by reverse engineering may include some entities that should not appear in the data model.

True

The design produced by reverse engineering may be described as a table-relationship diagram.

True

The process of reading an actual database schema and producing a data model from that schema is called reverse engineering.

True

The use of double nested set of NOT EXISTS SELECT statements is a famous pattern in SQL use.

True

There is a common trap in writing a correlated subquery, which will cause no rows to ever be displayed in the results.

True

There is no good SQL command that can be used to change table names.

True

To add a NOT NULL column to a table, we first add a NULL column, then we insert values into every row, and finally we change the NULL constraint to NOT NULL.

True

To change the minimum cardinality on the parent side from zero to one, the foreign key, which would have been NULL, must be changed to NOT NULL.

True

To drop a constraint, no preliminary steps are needed and we can simply use the ALTER TABLE DROP CONSTRAINT statement.

True

To drop a nonkey column from a table, no preliminary steps are needed and we can simply use the ALTER TABLE DROP COLUMN statement.

True

When decreasing maximum cardinalities, there will always be data loss.

True

When increasing cardinalities from 1:N to N:M, we basically create a new intersection table, fill it with data and drop the old foreign key.

True

When using a double nested set of NOT EXIST SELECT statements, a row that does not match any row matches every row.

True

When using queries with EXISTS and NOT EXISTS, the processing of the associated SELECT statements must be nested.

True

the EXISTS keyword will be true if any row in the subquery meets the condition.

True

Discuss the role of backup and test databases in database redesign.

Typically, there are at least three different copies of the database schema used in database redesign: (1) a small test database for initial testing, (2) a large or full copy test database for further testing, and (3) the operational database itself. There must be a process to restore the test databases to their original state during the testing process so that tests can be rerun as needed. If it is not possible to use a full copy of a very large operational database for testing, an appropriate large scale test version must be created and used.

Why do databases need redesigning?

Databases need redesigning for two reasons. First, it is not always easy to build a database correctly the first time, and changes in an organization's business process may create the need for a change. With regards to the first reason, even if the data modeling process captured all the users' requirements, translating the requirements into a correct data model and database design can be difficult. Almost inevitably, there will be errors that need to be corrected. With regards to the second reason, information systems and the organizations that use them influence each other to the point where they can be said to "create" each other. As the organization changes so will the user requirements, which will necessitate database redesign.

What is a dependency graph, and what is it used for in database redesign?

Dependency graphs are not a graphical display like a bar chart, but rather a set of connected nodes. The nodes represent objects such as tables, view, triggers, stored procedures, etc., in the database. Line segments show the interconnections, or dependencies, between these objects. Thus, a dependency graph is useful for determining how a change to one object in a database might affect other objects in the database.

A correlated subquery looks very different from a non-correlated subquery.

False

A doubly nested set of EXISTS SELECT statements can be used to find rows that meet some specified condition for every row in a table.

False

Adding new tables and relationships to a database is difficult.

False

Although correlated subqueries are useful in database redesign, they cannot be used to verify functional dependencies.

False

Database redesign is equally difficult whether or not the database has data in it.

False

Database redesign is rarely needed because databases are usually built correctly the first time.

False

Dependency graphs are graphical displays like bar charts.

False

Even if an organization has a very large database, it will be possible to make a complete backup copy of the operational database prior to making structural changes.

False

In a correlated subquery, the DBMS can fun the lower SELECT statement by itself and then send the results to the upper SELECT statement.

False

In the database redesign process, two SQL tools are useful for testing whether or not certain conditions or assumptions are valid: uncorrelated subqueries and EXISTS/NOT EXITS.

False

SQL contains an SQL command RENAME TABLENAME that can be used to change table names.

False

The data model produced by revers engineering is a true conceptual schema.

False

The use of a doubly nested set of NOT EXISTS SELECT statements is so rare that even if you a professional database developer you will probably never see it used.

False

There are several difficulties with increasing cardinalities from 1:1 to 1:N, one of which is preserving the existing relationships.

False

To add a NULL column to a table, we simply used the MODIFY TABLE statement.

False

To drop a foreign key column from a table, no preliminary steps are needed and we can simply use the ALTER TABLE DROP COLUMN statement.

False

To drop a primary key column from a table the primary key constraint must first be dropped, but this does not require that related foreign keys based on the column be dropped.

False

Typically, there are at least four different copies of the database schema used in the redesign process.

False

What is reverse engineering and how well does it work?

Reverse engineering (RE) is the process of reading the database schema of an existing database and using it to reconstruct a data model of the database. It works fairly well, but does have significant limitations. First, RE produces conceptual schema errors because it creates an entity for every table in the database including intersection tables in N:M relationships which would not be an entity in the original data model. Second, it does not generate internal schema information such as referential integrity constraints. Therefore, the result, which the authors call the RE data model, is a good starting point for analyzing an existing database but is not a complete solution.

Which of the following are difficulties when changing the maximum cardinality from 1:1 to 1:N? A) Preserving the existing tables B) Preserving the existing relationships C) Preserving the existing data D) Both A and B are correct

B

During the database redesign process, you discover that when an ORDER is deleted, its corresponding entries in the LINE_ITEM table are not deleted (but you would like them to be). In order to fix, this, you use what SQL syntax? A) ON UPDATE CASCADE B) ON DELETE CASCADE C) CASCADE CONSTRAINTS D) DEFAULT

B

If a DEFAULT constraint is included when a new column is added to a table, the default value is applied to ________. A) all existing rows at the time the column is added B) all new rows C) all new rows but only after the UPDATE command is issued D) Both A and B are correct

B

In the SQL statements SELECT C1.CustName, C1.SalesRepNo FROM CUSTOMER C1; the "C1" is called a(n) ________. A) term B) alias C) convention D) label

B

SQL queries that use EXISTS and NOT EXISTS are ________. A) normal subqueries B) correlated subqueries C) uncorrelated subqueries D) constraint dependent subqueries

B

To add a NULL column to a table, we ________. A) use the REVISE TABLE command B) use the ALTER TABLE command C) use the MODIFY TABLE command D) create a new table with the NULL column, move the other data, and drop the old table

B

When changing column data types, which of the following data conversions will either usually or always succeed? A) Numeric → date B) Date or money → char or varchar C) Char or varchar → numeric D) Char or varchar → date or money

B

When dropping a nonkey column from a table, which of the following steps is (are) included in the process? (The order of the steps listed below is not relevant, only the steps themselves.) A) Drop any column constraints from the table B) Drop the column from the table C) Drop any foreign keys constraints based on the column D) Both A and B are correct

B

When running a correlated subquery, the DBMS always uses ________. A) regular processing B) nested processing C) "quick and dirty" processing D) SQL-92 processing

B


Related study sets

Help Desk Customer Service Quiz #4(2)

View Set

FIN Ch. 14, Working capital and current assets management

View Set

Head and Spine Injuries Ch.29 Hw

View Set

NCLEX-PN Maternal and Women's Health Nursing EAQ questions and answers

View Set