PUERTA | Puerta TI 2007 | Pregunta 66

Considere los siguientes esquemas de relación:

    • b-Esquema = (b-nombre, b-ciudad, activos)
    • a-Schema = (a-num, b-name, bal)
    • d-Schema = (c-name, a-number)

Sean sucursal, cuenta y depositante respectivamente instancias de los esquemas anteriores. Suponga que las relaciones de cuenta y depositante son mucho más grandes que la relación de sucursal.
Considere la siguiente consulta:

П c-nameb-city = “Agra” ⋀ bal < 0 (sucursal ⋈ (cuenta ⋈ depositante)

¿Cuál de las siguientes consultas es la versión más eficiente de la consulta anterior?
(A) П nombre-cbal < 0ciudad-b = sucursal “Agra” ⋈ cuenta) ⋈ depositante)
(B) П nombre-cciudad-b = sucursal “Agra” ⋈ (σ bal < 0 cuenta ⋈ depositante))
(C) П c-nameb-city = sucursal “Agra” ⋈ σ b-city = “Agra” ⋀ bal < 0 cuenta) ⋈ depositante)
(D) П c-nameciudad-b = “Agra” ⋀ bal < 0 cuenta ⋈ depositante))

Respuesta: (A)
Explicación:  

Para un mejor procesamiento de registros, siempre debemos seleccionar antes de unir para evitar que se consideren tuplas innecesarias para unirse. (Para una consulta SQL esto no es estrictamente necesario ya que DBMS reorganizará la consulta para que sea eficiente) y el procesamiento de una tabla más pequeña brinda más eficiencia. que el más grande.

opción (A) : П c-name (σ bal < 0 (σ b-city = sucursal “Agra” ⋈ cuenta) ⋈ depositante) aquí estamos haciendo una unión entre una tabla relativamente más pequeña (sucursal) y una más grande (cuenta) y la La salida que da esta tabla interna (que es más pequeña en comparación con las uniones que estamos haciendo en B) se usa para unirse con la tabla de depositantes con la condición de selección (igual que la consulta dada).
opción (B): П c-name (σ b-city = sucursal “Agra” ⋈ (σ bal < 0 cuenta ⋈ depositante)) aquí estamos haciendo una combinación entre dos cuentas de mesa masivas y el depositante con condición de selección (para un saldo inferior a cero) y la salida que da esta tabla interna se usa para unirse con la tabla de sucursales (tabla relativamente más pequeña) con la condición de selección (para la ciudad de Agra). (igual que la consulta dada), por lo que la opción A y la opción B son las mismas que la consulta dada, pero hay una diferencia entre el procesamiento de registros, ya que el procesamiento de registros de la opción A se reducirá en cierta medida. (ya que las condiciones filtradas se aplican después de la unión entre una tabla más pequeña y una más grande, lo que dará una tabla relativamente más pequeña que la unión de dos tablas más grandes). Entonces, la opción A en general es mucho mejor que la opción B.
opción (C): П c-name ((σ b-city = sucursal “Agra” ⋈ σ b-city = depositante “Agra”) Incorrecto ya que no hay una columna de ciudad b en a-Schema.
opción (D) : П c-name (σ ciudad-b = sucursal “Agra” ⋈ (σ ciudad-b = depositante “Agra”))
Incorrecto ya que no hay una columna de ciudad-b en el esquema a.
⋀ bal < 0 cuenta) ⋈
⋀ bal < 0 cuenta ⋈
Nota: no se pierda esta oración «las relaciones de cuenta y depositante son mucho más grandes que la relación de sucursal» porque eso hace que A sea la mejor respuesta.
Esta solución es aportada por .
Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *