Заклинания Нагато |
В серии, где показана сцена битвы между Нагато и Асакурой (5 глава 1 тома из ранобэ), Юки произносит некое заклинание, направленное на уничтожение Асакуры.
SELECT serial_code FROM database WHERE code_data ORDER BY aggressive_combat_data HAVING terminate_mode Как можно догадаться, это язык SQL-запроса. В данном случае после оператора WHERE, задающего условия выборки, идет некое "code_data", без указания условий. Согластно правилам SQL, не указывать значение можно только в том случае, если code_data является логическим типом Boolean. Тогда под отсутствием условий подразумевается, что code_data = true. Однако, по сути, code_data — это нечто большее, чем просто "0 или 1", code_data обозначает скорее некую сумму информации о каждом TFEI-интерфейсе, можно даже назвать это хэш-функцией каждого TFEI. Возможно также, что в этом поле хранится некая другая информация о TFEI, в особом формате, который нам пока еще недоступен. Поэтому мы будем предполагать, что тип code_data отличается от Boolean. Возвращаясь к нашему запросу, можно заметить, что типу code_data в условиях выборки WHERE не задано какое-то конкретное значение. Мы предположили, что code_data относится к некому типу, который мы еще не знаем. Постараемся описать его на стандартном языке. Для обозначения данных будем использовать некие условные переменные B1, B2, B3. Вот как должен выглядеть безошибочно выполненный запрос:
SELECT personal_name Здесь мы у нас в базе данных две таблицы: database и name_table. По сути, первая таблица — это список всех TFEI-интерфейсов на земле, а вторая — это их имена, соответствующие идентефикаторам serial_code. В принципе, можно было свести все это в одну таблицу, но мы будем следовать принципам реляционных баз данных. В нашем запросе мы, в отличии от авторского варианта, явно указываем значение code_data, по которому будет осуществляется выборка значений. Механизм выбора цели определяется по имени, а именно — уникальному значению personal_name из таблицы name_table. Имя Асакуры соответствует идентефикатору serial_code = [A3]. Для выбора цели, т.е. нужного значения из name_table, мы обращаемся к таблице database. Критерий запроса — это значение code_data = [B3], а так-же сombat_mode = "Terminate mode", т.е. разрешение на уничтожение объекта. database (таблица объектов)
name_table (таблица имен)
Таким образом, мы получили запрос, который по своим свойствам аналогичен авторскому варианту, но учитывающий особенности настоящего "земного" SQL. Кто знает, была ли это авторская ошибка, либо намеренно оставленная возможность для исследования. В сущности, это не так уж и важно. У японских живописцев есть крылатое выражение: "Пустые места на свитке исполнены большего смысла, нежели то, что начертала на нем кисть". |