1

Какой оператор реляционной алгебры будет отображаться в качестве ключевого слова LOAD? Если это не логический оператор, а только физический, то как он обрабатывается в процессе преобразования логического в физический оператор с помощью процессора запросов базы данных? Или, если он не сопоставляется с примитивами реляционной алгебры, то это расширение экспрессии реляционной алгебры, специфичное для реализации?Является ли LOAD оператором реляционной алгебры?

ответ

1

LOAD ключевого слова внутренне отображается в базе данных после запроса разбора в логического оператора, но это не алгебры оператора. Все операторы алгебры являются логическими операторами, но не все логические операторы являются операторами алгебр.

0

С математической точки зрения LOAD не является оператором. Потому что он принимает отношение, хранящееся в файле, и ставит те же отношения в базу данных.

Итак, мы получаем 2 физических копии одного и того же отношения, но математически никакая операция не выполнялась. Вы можете рассматривать его как тривиальный selection operation, безоговорочно выбирающий все кортежи из отношения.

«Как это обрабатывается в процессе логического преобразования физического оператора процессором запросов базы данных?»

MySQL выполняет соответствующую функцию после разбора запроса. Эта функция считывает данный файл и загружает данные в таблицу.

Я не думаю, что разработчики MySQL интересовались такими абстрактными вещами, как существование операции, отображающей LOAD, в реляционной алгебре.

0

LOAD не является оператором; это просто зарезервированное слово в MySQL (и других РСУБД). Каждая РСУБД имеет собственный список «зарезервированных слов».

0

Вы должны различать алгебраические операторы, такие как естественное соединение, транзитивное замыкание, ... и ключевые слова/команды языка управления данными.

Алгебраические операторы выполняют вычисления по заданным значениям и возвращают вычисленное значение в качестве результата.

И тогда у вас есть языки программирования и обработки данных, которые в определенном смысле построены «сверху» алгебраических операторов. Если у вас есть алгебраический оператор «целочисленное добавление», то у вас также будет символ на вашем языке, чтобы обозначить вызовы этого оператора, например «+». И вы можете иметь хорошо сформированные формулы (wffs), которые состоят из a.o. таких символов. Скажем, например, «a + b» или «x + 1».

Здесь переменные всплывающие окна. Одних только алгебраических операторов недостаточно, нам также нужны переменные (по крайней мере, в процедурных языках). И чтобы манипулировать этими переменными, нам нужна эта вещь под названием «назначение», более долгожданная, нам нужен оператор назначения .

И точно так же, как назначение «x: = 3» можно рассматривать как wff, обозначающее вызов целочисленного оператора присваивания, LOAD можно рассматривать как форму, в которой может появиться оператор реляционного присваивания.

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