Фамилия, имя и отчество (ФИО)

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

В типовой жизненной ситуацией мы сталкиваемся с достаточно большим разнообразием записи этого набора с выделением из него частей и использованием инициалов. Безусловно только одно: ФИО записывается в виде строки (текст, символьный тип, Character).

Немного фактов для анализа:

Таблица (фрагмент) максимально нормализованных данных описания ФИО
НаименованиеПоле  ПримечаниеКомментарий
user_idI(4)Код человека
F_idI(4)Код фамилииОписание должно соответствовать справочнику
I_idI(4)Код имени—"—
O_idI(4)Код отчества—"—

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

Возможная избыточность для каждого человека составит 24 байта (12 — здесь и 12 — в справочниках). При этом понятно, что даже единичное повторное использование имени сразу окупит этот избыток. А доля распространенных имен все равно будет много больше половины. При числе людей большем, чем несколько сотен, начнется активное повторение фамилий. Близкий возраст включаемых лиц однозначно определит идентичность отчеств.

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

  1. Ф С(55)
  2. И C(23)
  3. О C(27)

Единственным уточнением будет активно и успешно внедряемое дополнение: пометка об отсутствии отчества. В противном случае поле следовало бы считать ошибочно незаполненным. Идеальным способом решения я считаю заполнение идентификатора значением, максимальным для выбранного размера целочисленного показателя (или набоорот, равным 1). Единственным несущественным недостатком будет потенциальная нужда (не факт, решаемо программно) дополнения справочника отчеств пустым полем для корректной работы систем в ряде случаев.

Справочники

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

Таблица Имён
НаименованиеПолеПримечаниеКомментарий
I_idI(4)Код имени
C_name(F/I/O)C(23)Наименование имениПредполагаем двойные имена

Конечно, размерность поля кода могла бы составлять и 3 байта, так как 23*8 (16777216) существенно превышает разнообразие имен в мире. Наоборот, 2 байта могут быть недостаточны (22*8 = 65536).

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

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

Усложнение схемы

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


Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!


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


Copyright © 1993–2021 Мацкявичюс Д.А. Все права защищены.
Никакая часть сайта не может быть воспроизведена никаким способом без письменного разрешения правообладателя и явной ссылки на данный ресурс.