Рубрики

ВОРОТА | GATE IT 2006 | Вопрос 86

Рассмотрим базу данных с тремя экземплярами отношений, показанными ниже. Первичные ключи для отношения Drivers и Cars соответственно сделаны и cid, а записи хранятся в порядке возрастания этих первичных ключей, как указано в таблицах. Нет индексации в базе данных.



Позвольте n быть числом сравнений, выполненных, когда вышеупомянутый запрос SQL оптимально выполнен. Если для определения кортежа в отношении с использованием первичного ключа используется линейный поиск, то n лежит в диапазоне
(А) 36 — 40
(Б) 44 — 48
(С) 60 — 64
(D) 100 — 104

Ответ: (Б)
Объяснение:

здесь мы должны вычислить количество сравнений, выполненных, когда вышеупомянутый запрос SQL выполняется оптимально.

из первого внутреннего запроса:

выберите R.did из Cars C, Запасы R
где R.cid = C.cid и C.colour = 'red'

C.color = «Red», сравнения = 4 (В машинах четыре ряда)

R.cid = C.cid, поэтому для этого условия можно извлечь пять строк.
сравнения = (2 красных машины * 10 резервных рядов) = 20

из второго внутреннего запроса:
выберите R.did из Cars C, Запасы R
где R.cid = C.cid и C.colour = 'зеленый'

C.color = «Зеленый», сравнения = 4 (В машинах четыре ряда)

R.cid = C.cid, так что три условия извлекаются в это условие условия.
сравнения = (1 зеленая машина * 10 резервных рядов) = 10

R.did = {22, 22, 31,31, 64} для первого внутреннего запроса
R.did = {22, 31, 74} для второго внутреннего запроса

Здесь уникальными наборами являются R.did = {22,31,64} и R.did = {22,31,74} соответственно для первого и второго внутренних запросов.
для пересечения — 6 сравнений (для 22 мы ударяем с первой попытки, а для 31 — со второй попытки, а для 74 — со всех трех попыток, поэтому comaprisons = 1 + 2 + 3)
Наконец, мы должны определить местонахождение did — 22 и did 31 из таблицы драйверов и сделали это первичным ключом. Как сказано в вопросе, мы используем линейный поиск и для 22,
мы ударяем с первой попытки, а за 31 ударяем с третьей попытки. Итак, 1 + 3 = 4 сравнения.
итого нет сравнений = 4 + 20 + 4 + 10 + 6 + 4 = 48
поэтому B является ответом.

Вкратце: Итак, сначала получите 2 красных автомобиля, отсканировав 4 кортежа машин. Теперь для каждой из двух «красных» машин мы сканируем все 10 кортежей отношения «резервы» и, таким образом, получаем 2 * 10 + 4 = 24 сравнения. Аналогично для «зеленой» машины мы получаем 4 + 10 = 14 сравнений.

Это решение предоставлено Nitika Bansal .
Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE IT 2006 | Вопрос 86

0.00 (0%) 0 votes