Теневой стол

Абстрактный объект в информатике
Теневая таблица имеет ту же структуру, что и исходная таблица, но другие данные. Красная стрелка показывает перемещение данных в теневую таблицу, а зеленая — наоборот.

Теневые таблицы — это объекты в информатике, используемые для улучшения способа обработки информации машинами, сетями и программами. [1] Более конкретно, теневая таблица — это объект, который считывается и записывается процессором и содержит данные, аналогичные (в том же формате), что и его основная таблица, которая является таблицей, которую он «тенит». Теневые таблицы обычно содержат данные, которые имеют отношение к работе и обслуживанию его основной таблицы, но не входят в подмножество данных, необходимых для существования основной таблицы. [2] Теневые таблицы связаны с типом данных «следы» в системах хранения данных. Следы очень похожи на теневые таблицы, но вместо хранения идентично отформатированной информации, которая отличается (как теневые таблицы), они хранят историю изменений и функций, выполняемых в таблице. [3]

История

Теневые таблицы, как абстрактное понятие, использовались с начала современных вычислений. Однако широкое использование специфической фразы «теневая таблица» началось, когда реляционные системы управления базами данных (СУБД) стали широко использоваться в 1970-х годах. [4]

Первоначальное использование реляционных DBM в коммерческих целях привело к тому, что термин «теневые таблицы» стал широко распространенным. Реляционная DBM использует связанные поля данных (столбцы) для корреляции информации между таблицами. [5] Например, две таблицы, transaction_user и transaction_amount, обе будут содержать столбец «ключ», и ключи между таблицами будут совпадать, что позволит легко найти как пользователя, так и сумму определенной транзакции, если ключ известен. Эта реляционная технология позволила людям сопоставлять информацию, хранящуюся в первичной таблице и ее тени.

Приложения

Поскольку теневые таблицы являются столь абстрактным понятием, их применение остается в сфере компьютерной науки. Хотя их использование может быть не объявлено конкретно как «теневая таблица(ы)», концепция остается прежней. Теневые таблицы обычно используются для улучшения производительности, емкости и возможностей существующей компьютерной/сетевой системы. В большинстве приложений теневые таблицы обычно являются точной копией структуры их основных таблиц, но с уникальными данными.

Теоретическое применение

Поскольку теневые таблицы являются особым типом объектов в компьютерной науке, их применение сильно различается, поскольку их применение зависит от того, какие данные хранятся в теневой таблице и как эти данные используются. Ниже приведен список общих, абстрактных приложений для теневых таблиц, которые охватывают все приложения реального мира.

  • Хранилище — хранение записи данных в теневой таблице, которая в обычных условиях была бы удалена или изменена.
  • Инкапсуляция — размещение данных в теневой таблице с целью отделения одного набора данных от другого.
  • Модульность — размещение данных в теневой таблице для упрощения изменения и обработки данных.

Инженерные приложения

Когда теневые таблицы используются для решения текущих проблем в современных компьютерных/сетевых системах, обычно используется комбинация более чем одного из вышеупомянутых теоретических/абстрактных приложений теневых таблиц. Следующий список представляет собой очень маленькое подмножество всех реальных приложений теневых таблиц и показан только для того, чтобы дать пример распространенных приложений теневых таблиц.

Системы управления базами данных

Системы управления базами данных (СУБД) — это программное обеспечение, которое управляет обслуживанием, безопасностью и манипулированием таблицами данных. Хорошо известными и широко используемыми примерами СУБД являются SQL Server, MySQL , Oracle и PostgreSQL . Каждая из этих СУБД создает виртуальную «среду», в которой хранятся таблицы данных, которые могут быть прочитаны и записаны с помощью определенного типа языка программирования, известного как язык запросов . Языки запросов специализируются на простом изменении или извлечении больших и определенных объемов данных. Большинство современных СУБД специально поддерживают SQL (определенный тип языка запросов). Используя SQL, можно легко создавать таблицы, которые имеют ту же структуру, что и уже существующие таблицы. SQL также может записывать данные в эти новые таблицы, создавая теневую таблицу. Теневые таблицы часто используются с СУБД для повышения эффективности путем предотвращения избыточных операций, выполняемых СУБД. Теневые таблицы также легко реализовать в большинстве современных СУБД, поскольку они не влияют на исходные данные, поэтому способ, которым базы данных и приложения, получающие к ним доступ, работают вместе, не изменяется, если это не желательно. [6]

Например, теневые таблицы можно использовать в эффективной системе резервного копирования, которая поддерживает большие таблицы данных, которые редко изменяются.

  1. Без теневых таблиц можно было бы создать программу, которая просто сохраняет версию этой таблицы каждый день.
    Через 50 дней, с этой системой резервного копирования, будет 50 копий той же таблицы,
  2. С помощью теневых таблиц можно создать пустую «теневую таблицу» этой таблицы и использовать программу, которая вставляет копию строки в теневую таблицу каждый раз, когда эта строка удаляется из основной таблицы.
    После 50 дней использования системы теневых таблиц в худшем случае будет одна копия основной таблицы, предполагая, что каждая строка в основной таблице была удалена. [5] [7]

Интерфейс

Интерфейс — это процесс использования «слоев» для упрощения коммуникаций между технологиями и между людьми и технологиями. Одним из примеров многослойного интерфейса являются кнопки и меню, используемые операционными системами домашних компьютеров. Эти графические объекты существуют как ссылка на базовые «кнопки» операционной системы . Командная консоль находится на один уровень ниже этих графических объектов, поскольку она дает вам еще более тесную связь с базовыми функциями операционной системы.

Теневые таблицы часто используются в качестве слоев между конечным пользователем и базой данных. Например, если пользователь входит в свой банковский счет и запрашивает историю всех своих прошлых транзакций, база данных обычно сохраняет все транзакции для всех пользователей в одной огромной таблице и различает стороны, вовлеченные в каждую транзакцию, в одном конкретном столбце этой таблицы. На этом этапе у сервера есть два варианта:

  1. База данных может отправлять всю таблицу транзакций.
  2. База данных может отправить теневую таблицу, содержащую только транзакции, связанные с пользователем, запросившим историю своих транзакций.

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

Виртуализация операционной системы

Виртуализация операционной системы — это процесс имитации работы компьютера в другом компьютере. Этот метод полезен для тех, кто хочет запустить на своем ПК одновременно несколько типов операционных систем. Таблицы теневых страниц часто используются для имитации нескольких операционных систем на одном наборе памяти и процессоре. Таблица страниц используется операционной системой для отображения виртуальной памяти , фактической памяти, используемой программами и операционной системой для хранения информации, в ее местоположение в физической памяти , аппаратно-специфической памяти, хранящейся в байтах в ОЗУ (оперативное запоминающее устройство). [8] Таблица теневых страниц — это псевдо-таблица страниц в основной таблице страниц компьютера, которая позволяет системе одновременно запускать несколько типов операционных систем. [9]

Ссылки

  1. ^ "Теневые базы данных". Поддержка усовершенствований . Получено 26 октября 2011 г.
  2. ^ Эмблер, Скотт. "Теневая информация и скаффолдинг". Отображение объектов в реляционных базах данных: подробное отображение O/R . Agile Data . Получено 28 октября 2011 г.
  3. ^ Wehlou, Martin. "Shadows and Trails". Wehlou . Получено 26 октября 2011 г. .
  4. ^ Браун, Пит. «Горный человек». Краткая история современного управления ИТ-системами СУБД . Получено 30 октября 2011 г.
  5. ^ ab Codd, Edgar (июнь 1970 г.). "Реляционная модель данных для больших общих банков данных" (PDF) . Communications of the ACM . 13 (6): 377– 387. doi :10.1145/362384.362685 . Получено 28 октября 2011 г. .
  6. ^ Спикер, Девин Спэкман, Марк (2005). Решения для интеграции предприятий . Редмонд, Вашингтон: Microsoft Press. стр. 45. ISBN 978-0-7356-2060-5.{{cite book}}: CS1 maint: несколько имен: список авторов ( ссылка )
  7. Кент, Джек и Гектор Гарсия-Молина. 1988. стр. 13.
  8. ^ Деннинг, П. Дж. "Page Tables" . Получено 30 октября 2011 г.
  9. ^ "Виртуализация: архитектурные соображения и другие критерии оценки" (PDF) . Получено 30 октября 2011 г.
  • Виртуализация: архитектурные соображения и другие критерии оценки
  • Mountain Man в истории базы данных
  • Особенности применения теневого стола
Взято с "https://en.wikipedia.org/w/index.php?title=Shadow_table&oldid=1265039388"