• Предмет: Информатика
  • Автор: nikolasflavel
  • Вопрос задан 8 лет назад

Ниже в табличной форме представлен фрагмент базы данных «Отправление поездов дальнего следования»:
Пункт назначения Категория поезда Время в пути Вокзал
Адлер фирменный 29:46 Казанский
Адлер скорый 38:35 Курский
Адлер фирменный 25:30 Казанский
Адлер скорый 39:13 Курский
Алма-Ата скорый 102:22 Павелецкий
Амстердам скорый 36:40 Белорусский
Анапа пассажирский 35:37 Белорусский
Архангельск скорый 20:46 Ярославский
Архангельск пассажирский 46:30 Ярославский
Архангельск скорый 21:25 Белорусский
Астана скорый 58:00 Казанский
Астрахань скорый 27:56 Павелецкий

Сколько записей в данном фрагменте удовлетворяют условию

(Категория поезда = «скорый») ИЛИ (Вокзал = «Казанский»)?

В ответе укажите одно число — искомое количество записей.

Ответы

Ответ дал: Аноним
0
Категория поезда = «скорый» - таких записей у нас 8
Вокзал = «Казанский» - таких записей у нас 3
Связка у нас по "ИЛИ", поэтому достаточно чтобы выполнилось только одно из условий. Но если выполнились оба, то у нас такая запись учтена дважды (в каждом из условий).
Найдем количество записей, в которых выполнились оба условия одновременно - их 1.
Окончательно 8+3-1=10 записей.
Ответ: 10
Ответ дал: nikolasflavel
0
Ах да забыл, 1 вычитается за счет того что стоит логическое ИЛИ
Ответ дал: Аноним
0
Вы можете использовать любой алгоритм. Я использовал тот, который реально реализован в системах запросов.
Ответ дал: Аноним
0
На самом деле запросы проходят оптимизацию. Вот один из таких алгоритмов для связки "ИЛИ". 1) Делаем выборку по первому из условий. 2) Делаем выборку по второму из условий. 3) Смотрим, какая из выборок дала МЕНЬШЕЕ количество записей и в ней проверяем выполнение второго условия. 4) Вычитаем из суммы найденных по 1) и 2) записей количество, найденное по 4)
Ответ дал: Аноним
0
Собственно, именно он у меня в решении и реализован.
Ответ дал: Аноним
0
Такой алгоритм относится к категории "ленивых", когда "лень" просматривать в каждой записи все выражение. А Вы предложили "жадный" алгоритм. О ленивых и жадных алгоритмах Вы можете почитать в Интернет.
Вас заинтересует