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

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


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


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

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

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

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

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

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

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

Справочники

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

Таблица Имён
НаименованиеПолеПримечаниеКомментарий
I_idI(3)Код имени
C_FirstNameC(23)Наименование имениПредполагаем двойные имена

(Таблицы Фамилий и Отчеств будут отличаться только именами полей и размерами.)

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

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

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

Версия без справочников

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

Ниже приведен фрагмент таблицы людей с явно выделенными полями для ФИО.


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


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

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

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


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


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


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