3. Унарная операция переименования
3. Унарная операция переименования
И последняя унарная операция, которую мы рассмотрим, – это операция переименования атрибутов. Если говорить об отношении как о таблице, то операция переименования нужна для того, чтобы поменять названия всех или некоторых столбцов.
Оператор переименования выглядит следующим образом: ?<?>, здесь ? — функция переименования.
Эта функция устанавливает взаимно-однозначное соответствие между именами атрибутов схем S и ?, где соответственно S — схема исходного отношения, а ? — схема отношения с переименованными атрибутами. Таким образом, оператор ?<?> в применении к отношению r(S) дает новое отношение со схемой ?, состоящее из кортежей исходного отношения только с переименованными атрибутами.
Запишем операцию переименования атрибутов в терминах систем управления базами данных:
?<?> r(S) ? ?<?>r = {?<?> t(S)| t ? r};
Приведем пример использования этой операции:
Рассмотрим уже знакомое нам отношение Сессия, со схемой:
S: Сессия (№ зачетной книжки, Фамилия, Предмет, Оценка);
Введем новую схему отношения ?, с другими именами атрибутов, которые мы бы хотели видеть вместо имеющихся:
? : (№ ЗК, Фамилия, Предмет, Балл);
Например, заказчик базы данных захотел в вашем готовом отношении видеть другие названия. Чтобы воплотить в жизнь этот заказ, необходимо спроектировать следующую функцию переименования:
? : (№ зачетной книжки, Фамилия, Предмет, Оценка) ? (№ ЗК, Фамилия, Предмет, Балл);
Фактически, требуется поменять имя только у двух атрибутов, поэтому законно будет записать следующую функцию переименования вместо имеющейся:
? : (№ зачетной книжки, Оценка) ? (№ ЗК, Балл);
Далее, пусть дан также уже знакомый нам кортеж принадлежащий отношению Сессия:
t0(S) ? r(S): {(№ зачетной книжки: 100), (Фамилия: ‘Иванов’), (Предмет: ‘Базы данных’), (Оценка: 5)};
Применим оператор переименования к этому кортежу:
?<?> t0(S): {(№ ЗК: 100), (Фамилия: ‘Иванов’), (Предмет: ‘Базы данных’), (Балл: 5)};
Итак, это один из кортежей нашего отношения, у которого переименовали атрибуты.
В табличных терминах отношение
? < № зачетной книжки, Оценка ? «№ ЗК, Балл > Сессия —
это новая таблица, полученная из таблицы отношения «Сессия», переименованием указанных атрибутов.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Операция
Операция В третьей сверху секции прямоугольника записываются операции или методы класса. Операция (operation) представляет собой некоторый сервис, предоставляющий каждый экземпляр класса по определенному требованию. Совокупность операций характеризует функциональный
R.16.3.1 Операция #
R.16.3.1 Операция # Если непосредственно перед параметром в строке замены идет лексема #, то при подстановке параметр и операция # будут заменены на строку литералов, содержащую имя соответствующего параметра макровызова. В символьной константе или строке литералов,
R.16.3.2 Операция ##
R.16.3.2 Операция ## Если в строке замены между двумя лексемами, одна из которых представляет параметр макроопределения, появляется операция ##, то сама операция ## и окружающие ее обобщенные пробелы удаляются. Таким образом, результат операции ## состоит в конкатенации.Пусть
Операция ??
Операция ?? Еще одной особенностью типов с разрешением принимать значения null, о которой вам следует знать, является то, что с такими типами можно использовать появившуюся в C# 2005 специальную операцию, обозначаемую знаком ??. Эта операция позволяет присвоить типу значение,
1. Операция выборки.
1. Операция выборки. Операция выборки на языке SQL реализуется оператором Select следующего вида: Select все атрибуты From имя отношения Where условие выборки; Здесь вместо того, чтобы писать «все атрибуты», можно использовать значок «*». В теории языка структурированных запросов
2. Операция проекции.
2. Операция проекции. Операция проекции на языке структурированных запросов реализуется даже проще, чем операция выборки. Напомним, что при применении операции проекции выбираются не строки (как при применении операции выборки), а столбцы. Поэтому достаточно перечислить
3. Операция переименования.
3. Операция переименования. Операция переименования атрибутов на языке структурированных запросов осуществляется довольно просто. А именно воплощается в действительность следующим алгоритмом:1) в списке имен атрибутов фразы Select перечисляются те атрибуты, которые
Пример A-3. rn: Очень простая утилита для переименования файлов
Пример A-3. rn: Очень простая утилита для переименования файлов Этот сценарий является модификацией Пример 12-15.#! /bin/bash## Очень простая утилита для переименования файлов## Утилита "ren", автор Vladimir Lanin (lanin@csd2.nyu.edu),#+ выполняет эти же действия много лучше.ARGS=2E_BADARGS=65ONE=1 #
Операция @
Операция @ Операция @ применяется к переменной и возвращает ее адрес. Тип результата представляет собой типизированный указатель на тип переменной. Например: var r: real; pr: ^real := @r;
Операция new
Операция new Операция new имеет вид: new ИмяКласса(ПараметрыКонструктора) Она вызывает конструктор класса ИмяКласса и возвращает созданный объект.Например: type My = class constructor Create(i: integer); begin end; end; var m: My := new My(5); Эквивалентным способом создания объекта является вызов
Результат переименования
Результат переименования Убедимся, что нам понятен результат этого действия. Пусть класс SANTA_BARBARA имеет вид (оба унаследованных компонента foo в нем переименованы): Рис. 15.13. Устранение конфликта имен(Обратите внимание на графическое обозначение операции смены имен.)
Правило переименования
Правило переименования В этом разделе мы не введем никаких новых понятий, а лишь точнее сформулируем известные правила и приведем пример, призванный пояснить сказанное.Начнем с запрета возникновения конфликта имен:Определение: финальное имяФинальным именем компонента