Scientific journal
Modern problems of science and education
ISSN 2070-7428
"Перечень" ВАК
ИФ РИНЦ = 0,791

THE FAMILY RELATIONSHIPS IN THE PROBLEMS OF THE POPULATION ACCOUNTING

Shmidt I.A. 1
1 Perm National Research Polytechnic University
В статье предложен и рассмотрен способ вычисления отношения родства в системах учета населения, основанный на хранении в базе данных информации об актовых записях. Представлена модель сущность-связь, ориентированная на хранении данных об актовых записях и представление родственных отношений. Предложена структура таблицы, описывающей отношения родства через другие родственные отношения. Предложенный способ представления родственных отношений, позволяет описывать любые сколь угодно сложные отношения. Приведены примеры описания отношений родства. Основываясь на представленной модели, разработаны SQL-запросы для вычисления родственных отношений. Показано, что задача вычисления отношения родства является рекурсивной задачей. Приведен алгоритм рекуррентной процедуры для вычисления родственных отношений любой степени.
The article proposed the method of calculating the ratio of kinship in the accounting systems of the population, based on the storage in a database of information about the Assembly records. Presents entity-relationship model, focused on data storage about the Assembly records and representing family relations. Proposed structure of the table that describes the relations of kinship through other relationships. The proposed method of submission of family relations, allows you to describe any arbitrarily complex relationship. Examples describe the relationships of kinship. Based on the model developed SQL queries to calculate the related relations. It is shown that the problem of computing the relations of kinship is recursive task. Is a key piece of recurrent procedure for calculation of family relations of any degree.
information system of the population register
the system of personal accounting
database
SQL queries
recursive algorithms

В задачах, связанных с учетом населения, опирающихся на системы персонального учета [1,5], часто возникает потребность вычисления отношения родства. Например, это может потребоваться для формирования справки о совместно проживающих членах семьи, в которой присутствует графы «родственные отношения», а также множества других подобных документов.

В соответствии с концепцией создания автоматизированной системы «Государственный регистр населения» [2] в состав первичных персональных данных граждан, сведения о которых собираются в автоматизированной системе ГРН, должны входить признаки личности, фиксируемые в системе регистрационного учета, в частности, семейное положение и родственные связи (вид родства). На практике в базах данных информационных систем, относящихся к учету населения, как правило, содержатся сведенья на основе первичных фактов регистрации гражданского состояния (актовых записей). Применительно к родственным отношениям это записи о браке или разводе и записи о рождении. Первые фиксируют отношение брачности (муж-жена), вторые отношения родитель – ребенок (отец, мать – сын, дочь). Ставиться задача на основании, хранящихся в системе учета первичных сведений о родственных отношениях, вычислить отношения родства, производные от первичных.

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

Рисунок 1. Модель данных для представления родственных отношений

Как видно из модели, одна и та же личность может фигурировать в разных актовых записях. Связующей записью является Личность_в_АЗ, которая содержит ссылку на строку из таблицы Родство, т.е. отмечается, кем именно является личность в данной актовой записи (в актовой записи о рождении личность может быть матерью, отцом, сыном или дочерью, в актовой записи о браке личность может быть мужем или женой). Т.е. такие родственные отношения как мать, отец, сын, дочь, муж, жена непосредственно присутствуют в системе учета персональных данных. Все остальные виды родства должны быть вычислены.

Актовые записи о браке могут содержать ссылки на актовые записи о расторжении брака, это нужно, чтобы можно было аннулировать отношения, основанные на расторгнутом браке.

Таблица Родство, представленная ниже, описывает родственные отношения. Родственные отношения определены через другие родственные отношения – первое и второе, при этом второе отношение может быть в мужском и женском варианте, например, Бабушка это Мать Отца или Матери (Первое – 4, ВтороеМуж – 3, ВтороеЖен - 4), Теща это Мать Мужа (Первое – 4, ВтороеМуж – 1). Очевидно, что приведенная таблица может быть дополнена.

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

Таблица Родство

Ключ

Название

Пол

Первое

ВтроеМуж

ВтроеЖен

1

Муж

М

 

 

 

2

Жена

Ж

 

 

 

3

Отец

М

 

 

 

4

Мать

Ж

 

 

 

5

Сын

М

 

 

 

6

Дочь

Ж

 

 

 

7

Брат

М

5

3

4

8

Сестра

Ж

6

3

4

9

Дедушка

М

3

3

4

10

Бабушка

Ж

4

3

4

11

Внук

М

5

5

6

12

Внучка

Ж

6

5

6

13

Теща

М

4

2

 

14

Тесть

Ж

3

2

 

15

Свекор

М

4

 

1

16

Свекровь

Ж

3

 

1

17

Зять

М

1

 

6

18

Неве́стка

Ж

2

5

 

19

Дядя

М

7

3

4

20

Тетя

Ж

8

3

4

21

Племяник

М

5

7

8

22

Племяница

Ж

6

7

8

23

Отчим

М

1

 

4

24

Мачеха

Ж

2

3

 

25

Пасынок

М

5

1

2

26

Падчерица

Ж

6

1

2

Пусть есть две личности (Л1, Л2). Нам нужно найти родственные отношения для Л2 в отношении к Л1.

Пробуем найти отношения первого уровня, т.е. те, которые задаются при помощи одной Актовой Записи.

Родство первого уровня это: Муж, Жена, Отец, Мать, Сын, Дочь

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

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

Аналогично можно спроектировать SQL-запрос для нахождения отношений третьего, четвертого и так далее уровней.

Очевидно, что вычисление отношения родства это типично рекурсивная задача. Таким образом, можно найти родственные отношения более высоких уровней. Приведем алгоритм рекурсивной процедуры для вычисления родственных отношений любой степени (рис. 2). Результатом выполнения этой процедуры будет найденное родственное отношение (или информация об отсутствии родства) для пары личностей. В качестве входных параметров процедуры должны использоваться:

  • Ключ первой личности
  • Ключ второй личности,
  • Ключ из таблицы Родство, (показывает родство между первыми личностями при 0-м и текущем вызове процедуры)

Выходными параметрами процедуры будут:

  • Ключ первой личности (родственной личности на входе), в случае неудачи - 0
  • Ключ из таблицы Родство (показывает родственные отношения с личностью на входе), в случае неудачи – 0.

Рисунок 2. Алгоритм рекурсивной процедуры вычисления отношения родства

Обратившись к такой рекурсивной процедуре, мы можем найти родственные отношения сколь угодно большой вложенности или иначе степени родства [6], разумеется, при этом придется расширить таблицу родства. Наиболее полную информацию о наименованиях видов родства и свойства можно найти в [4]. Глубина анализа степени родства (т.е. глубина рекурсии) в данном алгоритме определятся глубиной описания родства в таблице «Родство».

Кроме этого, используя представленный метод определения родства, была разработана процедура, которая позволяет установить родство меду двумя людьми, даже если данный вид родства (свойства) не имеет собственного названия, и соответственно не присутствует в таблице «Родство». В этом случае степень родства описывается при помощи комбинации из известных определений. Например, родство из двух определений - «племянник шурина», из трех - «отчим племянника шурина» и т.д. Глубина рекурсии в данном алгоритме должна задаваться явно, т.е. при вызове процедуры задается степень родства, на которую должны анализироваться связи между двумя личностями.

Данный подход был апробирован при реализации ряда информационных систем, предназначенных для выполнения функций по предоставлению услуг, вида G2G, G2B или G2C, связанных с обработкой персональных данных. Системы обеспечивают предоставление услуг входящих в компетенцию региональной администрации, органов государственной власти и органов местного самоуправления. В качестве информационного ресурса этих систем использована распределенная информационная система персональных данных «Эталонный регистр населения» (ЭРН) Пермского края [3]. ЭРН является хранилищем актуальных идентификационных персональных данных населения, включая информацию об актах гражданского состояния.

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

Рецензенты:

Хрипченко С.Ю., д.т.н., профессор Пермского государственного национального исследовательского университета, г. Пермь;

Аликин В.Н., д.т.н., советник генерального директора ФКП «Пермский пороховой завод», г. Пермь.