Продолжаем описывать свойства операции соответствующий образец .
В первая часть рассмотрена фильтрация кортежей регистров правил по значениям входной вектор с последующей сортировкой выбранных кортежей по их релевантности.
Акцент был сделан на том, как правильно рассчитать (оценить) релевантность кортежей.
Здесь мы более подробно остановимся на самой операции выборки (единой формулы не будет!).
Вообще в этой операции может участвовать (объединяться) не только вектор с таблицей, но и две таблицы.
Операция над таблицами, в которой используется проверка принадлежности элемента множеству, называется соответствующее соединение .
Далее давайте разберемся, в чем его особенности.
Атрибуты специфичны и универсальны.
В предыдущая статья Таблицы данных были условно разделены на таблицы фактов, которые содержат конкретные значения атрибутов, и таблицы правил, которые могут содержать заданные значения (универсальные значения).
Однако правильнее говорить о разделении не таблиц, а их атрибутов.
В одной таблице один атрибут может содержать конкретные значения, а другой — заданные (универсальные) значения.
В соответствии с этим можно выдвинуть следующие тезисы: Все атрибуты (отношения) можно разделить на два типа – специфический И универсальный .
Атрибуты определенного вида — это те, значения которых интерпретируются как элементы множеств.
Например, отсутствие значения такого атрибута означает именно пустое значение (а не юниверс).
Атрибуты универсального типа – это те, значения которых интерпретируются как множества.
Даже если это множество состоит из одного элемента.
Отсутствие значения такого атрибута обычно означает значение его юниверса (всех значений множества).
Значения универсальных атрибутов участвуют в оценке релевантности кортежей таблицы; это атрибуты релевантности.
Нет смысла оценивать конкретные атрибуты, поскольку релевантность всех значений всегда одинакова.
Пример – переменные, значение которых зависит от параметра(ов)
Рассмотрим регистр, содержащий атрибуты обоих типов.Пусть это будет таблица, содержащая значения переменных некоторой информационной системы.
Назовем это «Значения переменных».
Каждая переменная характеризуется своим именем (идентификатором) и значением.
Предположим, что значение может зависеть от пользователя системы.
В такой таблице можно установить значение переменной по умолчанию (для всех пользователей) и переопределить его для конкретных.
Определитель реестра состоит из двух атрибутов (размерностей) - «Имя» и «Пользователь».
Корень — из одного ресурса «Значение» (и еще одного системного атрибута — релевантности L).
Значения регистров могут быть примерно такими (значение пользователя установлено на 100, кортежи для удобства пронумерованы):
№ | Имя (0) | Пользователь (100) | Значение | л | |
---|---|---|---|---|---|
1 | Режим | 8 | 0 | ||
2 | Режим | Иванов | 6 | 100 | |
3 | Дата рождения | 01.01.1980 | 0 | ||
4 | Дата рождения | Иванов | 15.02.1987 | 100 | |
5 | Дата рождения | Петров | 09.12.2008 | 100 | |
6 | Квалификация | Петров | Средний | 100 |
Дата рождения в системе по умолчанию для всех пользователей — 1 января 1980 года.
Но для пользователей Иванов и Петров есть более точные значения.
Еще есть переменная «Квалификация», значение которой задается только для одного Петрова.
В этом регистре атрибут (размерность) «Имя» принадлежит определенному полу.
Его значение всегда должно быть указано, и значение юниверса в данном атрибуте не имеет никакого значения.
Нет смысла оценивать релевантность такого атрибута — мы присваиваем таким измерениям нулевой вес — это отличает конкретные измерения от абстрактных.
А вот измерение «Пользователь», напротив, носит универсальный характер.
Отсутствие определенного значения пользователя означает использование юниверса «Все пользователи».
А ссылка на конкретного пользователя (Иванова или Петрова) фактически интерпретируется как набор одного элемента (Иванов).
Тип атрибутов влияет на соответствующий алгоритм выбора (объединения).
Единство и борьба противоположностей
Как говорилось в начале статьи, в операции извлечения данных из определенной таблицы участвуют две таблицы.Один из них (источник данных) — это данные, которые необходимо получить, а второй (входная таблица) задает параметры выборки (что именно нужно выбрать).
Если входная таблица состоит из одного кортежа, то входные данные можно рассматривать как вектор.
Это наиболее распространенная ситуация на практике.
Но вообще кортежей во входной таблице может быть несколько.
Релевантное соединение отличается от обычного соединения (равенством значений) тем, что в нем используется операция «принадлежности элемента множеству».
То есть с одной стороны должно быть множество (или множества), а с другой — значения множества.
В результате тип атрибутов таблиц, участвующих в соответствующем соединении, оказывается противоположным.
Если в одной таблице связываемый атрибут имеет определенный вид, то во втором виде этот атрибут должен быть универсальным.
И наоборот. Это свойство антисимметрии вида атрибутов соответствующей связи.
Давайте объясним.
Пусть таблица источника данных состоит из одного атрибута определенного типа.
В данном случае мы имеем дело с определенным набором ценностей.
Например, это может быть много разных слов.
Затем при соответствующей связи на входе необходимо указать наборы (слов).
Таким набором может быть значение «Я», которое трактуется как все слова, оканчивающиеся на «Я».
Можно указать на входе набор из двух подмножеств — «i» и «a» — тогда выборка должна содержать все слова исходной таблицы, оканчивающиеся на «i» или «a».
Обратная ситуация, когда исходная таблица состоит из одного универсального атрибута.
Например, он содержит наборы значений слов.
Такими заданными значениями опять-таки могут быть окончания слов - ('я', 'а', 'б', 'л', 'р',.
).
Тогда входная таблица (множество) должна содержать конкретные значения слов (если вектор, то одно слово).
Операция выборки вернет те окончания, которые соответствуют этому конкретному слову.
При соответствующем выборе производится проверка принадлежности значения конкретного атрибута значению универсального.
Независимо от того, в какой таблице (входной или исходной) находятся атрибуты, условие релевантности выглядит так: Значение конкретного атрибута принадлежит значению универсального атрибута.
Подчеркнем еще раз, что специфичность или универсальность интерпретация значения атрибутов.
Если атрибут объявлен конкретным, то все его значения (даже если они кажутся наборами) становятся конкретными.
И в соответствующей операции соединения они действуют на стороне элементов, а не множеств.
Соответствующий алгоритм подключения
Обратимся к регистру «Значения переменных».Какие выборки из него имеют смысл? Наиболее очевидным является получение значения переменной для данного пользователя.
Например, чтобы получить значение переменной «Режим» для пользователя «Иванов», входная таблица будет такой:
Имя | Пользователь |
---|---|
Режим | Иванов |
Обратите внимание, что тип атрибутов этой таблицы противоположен типу исходной.
То есть здесь атрибут «Имя» универсальный, а атрибут «Пользователь» — конкретный.
Универсальность атрибута Name означает, что его значения интерпретируются как множества.
Смысл названия «Режим» здесь – совокупность одного элемента.
Пустое (не указанное) значение этого атрибута интерпретируется как юниверс.
Вот входной вектор, например,
Имя | Пользователь |
---|---|
∀ | Иванов |
Выбор соответствующих значений
Результат соединения (выборки) должен включать значения конкретных атрибутов.То есть определитель результата соединения должен состоять из конкретных значений.
Это позволяет сортировать выбранные кортежи по релевантности в пределах значения определителя (ключа).
Итак, после выбора соответствующих кортежей таблицы «Значения переменных» согласно приведенному выше вектору {Имя: ∀, Пользователь: "Иванов"} мы получаем ту же таблицу, но с заполненным пользовательским значением:
№ | Имя | Пользователь | Значение | л | |
---|---|---|---|---|---|
1 | Режим | Иванов | 8 | 0 | |
2 | Режим | Иванов | 6 | 100 | |
3 | Дата рождения | Иванов | 01.01.1980 | 0 | |
4 | Дата рождения | Иванов | 15.02.1987 | 100 |
№ | Имя | Пользователь | Значение | л | |
---|---|---|---|---|---|
2 | Режим | Иванов | 6 | 100 | |
4 | Дата рождения | Иванов | 15.02.1987 | 100 |
Допустим, нам нужно выбрать значения переменных для двух пользователей — Иванова и Петрова.
Тогда входная таблица будет содержать два вектора (кортежа):
Имя | Пользователь |
---|---|
∀ | Иванов |
∀ | Петров |
№ | Имя | Пользователь | Значение | л | |
---|---|---|---|---|---|
1 | Режим | Иванов | 8 | 0 | |
2 | Режим | Иванов | 6 | 100 | |
3 | Дата рождения | Иванов | 01.01.1980 | 0 | |
4 | Дата рождения | Иванов | 15.02.1987 | 100 | |
1 | Режим | Петров | 8 | 0 | |
5 | Дата рождения | Петров | 09.12.2008 | 100 | |
6 | Квалификация | Петров | Средний | 100 |
№ | Имя | Пользователь | Значение | л | |
---|---|---|---|---|---|
2 | Режим | Иванов | 6 | 100 | |
4 | Дата рождения | Иванов | 15.02.1987 | 100 | |
1 | Режим | Петров | 8 | 0 | |
5 | Дата рождения | Петров | 09.12.2008 | 100 | |
6 | Квалификация | Петров | Средний | 100 |
Мягкие условия отбора
Условиями мягкого выбора мы называем те, при которых атрибут, к значениям которого мы обращаемся, специфичен.Соответственно, параметры выбора универсальны – они состоят из заданных значений.
Обычно такая ситуация возникает при обращении к некоторым фактам, из которых необходимо выбрать те, которые с разной степенью релевантности соответствуют условиям.
То есть условия выборки (отбора) данных не жесткие, а желательно - мягкие.
В магазине покупатель может попросить «красный цвет» — а если его нет, то любой цвет. При покупке билетов (бронировании мест) покупатель хочет определенную дату, а если ее нет, то ближайшую доступную.
И т. д. Уместной связью также являются мягкие условия отбора.
Единственная особенность заключается в том, что обычно в результате такого отбора остаются все соответствующие кортежи, а не только первый.
Продемонстрируем условия мягкого выбора при доступе к данным в таблице «Значения переменных».
Допустим, нам нужно выбрать переменную «Квалификация» для пользователя Петров, а если ее нет, то любую другую.
Тогда таблица доступа (входная таблица) будет выглядеть так:
Имя | Пользователь | Ли | |
---|---|---|---|
∀ | Петров | 0 | |
Квалификация | Петров | 5 |
В таблице «Значения переменных» атрибут «Имя» является конкретным, поэтому во входной таблице он является общим.
Напротив, атрибут «Пользователь» в таблице переменных является общим, поэтому он должен быть конкретным (указанным) во входной таблице.
При обращении к таблице фактов (а здесь роль таблицы фактов, которая извлекается, играет таблица «Значения переменных»), релевантность должна быть установлена во входной таблице (если количество кортежей больше одного).
После операции выборки получаем таблицу, отсортированную по релевантности входной таблицы и таблицы переменных:
№ | Имя | Пользователь | Значение | л | Ли | |
---|---|---|---|---|---|---|
6 | Квалификация | Петров | Средний | 100 | 5 | |
5 | Дата рождения | Петров | 09.12.2008 | 100 | 0 | |
1 | Режим | Петров | 8 | 0 | 0 |
Особенности выборки значений, принадлежащих интервалу
В первой части уже рассматривались соответствующие выборки, в которых множества задавались одной границей интервала.Там можно было оценить мощность (и релевантность) интервалов заранее (до выборки), поскольку значения наборов интервалов содержались в доступном атрибуте (размерности регистра правил).
При «мягкой выборке» ситуация иная — выбираются конкретные значения атрибута (факты), а на входе задается интервал релевантности.
Например, известны даты отправления поездов (факты) и необходимо выбрать даты, принадлежащие заданному (пользователем) интервалу.
Как правило, необходимо не только выбрать даты, но и отсортировать их по релевантности – степени близости к заданной границе.
Степень близости к границе обратно пропорциональна мощности интервала, образованного границей входного интервала и границей, заданной значением из выборки.
Обычно значения выборки указывают правое значение границы («До»), а левое значение («С») задается соответствующей границей входного интервала.
Релевантность полученных интервалов можно оценить относительно входного интервала.
Допустим, у нас есть следующий набор дат вылета (фактов): (15, 17, 23, 25, 30).
Тогда, выбирая из этого набора фактов интервал [20, 25], получаем набор из двух интервалов: ([20, 23], [20, 25]).
По общему правилу выше актуальность меньшего интервала [20, 23].
Заключение
Удивительно, что простые и интуитивно понятные вещи требовали такого количества букв для относительно четкого описания.Первоначальная цель работы заключалась в документировании математических методов, используемых при оценке релевантности выборки данных, содержащих вселенные.
А также показать необходимость понимать и учитывать тип атрибутов таблиц.
Интерпретация атрибутов как специфический или универсальный позволяет вам определить абстрактную операцию соответствующее соединение .
Для чего все это? В конечном итоге – снизить энтропию информационных систем.
Если сравнить, например, реализацию какой-либо логики программным кодом или таблицами (регистрами) правил, то видно, что таблицы гораздо менее энтропийны (и к тому же декларативны, а не императивны).
Концепции регистров правил, юниверсов и соответствующих связей идеально вписываются в реляционную модель данных.
В статьях показано лишь, как их правильно приготовить.
Используй это! Теги: #значения #наборы #регистры правил #релевантность #атрибуты отношений #выборка данных #программирование #Анализ и проектирование систем #sql #Алгоритмы
-
Просмотр Ip-Tv От Ростелеком На Компьютере
19 Oct, 24 -
Задача На 10 000 Рублей
19 Oct, 24 -
Как Я Купил Снежного Барса
19 Oct, 24 -
Миф О Незрелости Мобильных Nfc-Технологий
19 Oct, 24