Ах! 2ГИС. Ох! 2ГИС

Сигнал посылаем: «Вы что это там?»
А нас посылают обратно.
Владимир Высоцкий.«В далёком созвездии Тау Кита»

Не скрою, что практически ежедневно использую справочник 2ГИС. И он мне, как обычному пользователю, нравится своей полнотой и удобством использовании. Так сложилось, что пришлось профессионально поработать с адресными данными 2ГИС с целью объединения их с данными ФИАС и краевой геоинформационной системой Енисей-ГИС. Но в этой работе пришлось столкнуться с нешуточными сложностями.

Поэтому решил поделиться выводом, к которому пришёл после анализа структуры хранения адресных данных в 2ГИС.

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

Схема хранения адреса в 2ГИС

Аналитический обзор


Смотри другие публикации, посвященных анализу адресных данных::

  1. Анализ адресов ФИАС
  2. Эх, ФИАС, ФИАС… Почему ты не адресный реестр?
  3. Адреса ФИАС в среде PostgreSQL
  4. Дома ФИАС в среде PostgreSQL
  5. Задача об Адресе
  6. Зачем Красноярску адресный реестр?
  7. Цена беспорядка в адресах

Оглавление

  1. Детальное обоснование
    1. Неполнота адресных реквизитов
    2. Деревня Песчанка в списке жилых зон
    3. «Подвисшие» записи улиц
    4. СНТ и ОНТ в населённых пунктах
    5. Повторяющиеся адреса
    6. Расхождения привязки домов в 2ГИС и ГАР-ФИАС
      1. Первый пример – улица Алёши Тимошенкова
      2. Другой пример – улица Борисевича
      3. Последний пример – улица Рейдовая
  2. Заключение
  3. Приложение. Выдержка из постановления Правительства РФ от 19.11.2014 № 1221
  4. Список литературы
  5. СНОСКИ

Детальное обоснование

Начну с того, что является аргументом для служащих администрации края — структура адреса регламентируется постановлением Правительства РФ от 19.11.2014 № 1221 (ред. от 02.08.2022)(1 (далее Постановление)). Чтобы не докучать перечислением реквизитов (адресообразующих элементов) приведенным в Постановлении, важные его положения приведены в Приложении. С полным текстом документа можно ознакомиться, перейдя по электронному адресу, приведенному в сноске.

Неполнота адресных реквизитов

2GIS Абакан_Минусинск

Рис. 1. Граница охвата районов края на территории 2ГИС «Абакан»

В схеме хранения адресов 2ГИС отсутствуют описания трёх адресообразующих элементов, которые в Постановлении названы обязательными, — а) страны; б) субъекта федерации; в) района, городского округа и т.д.

Если описание страны для наших целей не обязательно, т.к. наши проекты пока ограничены Красноярским краем и, возможно Республикой Хакасией. Но вот описание субъекта федерации, а тем более районов (городских округов и т.д.) создаёт серьёзные сложности при формировании адресов, например, для Геокодера(6.

Для подтверждения наличия проблемы с отсутствием субъектов федераций и районов достаточно в приложении 2ГИС загрузить и открыть город «Абакан». Открывшаяся карта содержит территорию республики Хакасия, а также нескольких городов и районов Красноярского края. При этом не указано какая часть отображаемой территории относится к Хакасии, а какая к Красноярскому краю. Тоже относится и к районам (городским округам и т.д.). На Рис. 1 путем наложения дополнительного слоя районов (городским округам и т.д.) показано, что Красноярский край на карте 2ГИС города Абакан представлен территорией городского округа Минусинск, а также частями территорий районов: Краснотуранский, Минусинский, Шушенский.

2GIS Address

Рис. 2. Схема хранения адресов в 2ГИС

Думаю, дело в том, что компания 2ГИС изначально создавала свой продукт для отдельных городов, но теперь значительно вышла за их границы. Так город Красноярск в 2ГИС кроме самого Красноярска охватывает территорию с востока на запад от Канска до Ачинска включительно, а с севере на юг от Железногорска и Зеленогорска на севере до Балахтинского и Новосёловского районов на юге.

Для того чтобы преодолеть проблему отсутствия районов населённые пункты районного подчинения именуются своим названием, дополненным справа названием района в скобках (Таблица 1).

Таблица 1 Названия населённых пунктов в 2ГИС

2GIS Names of Cities

Это не самое удачное решение для того, чтобы выбрать все населённые пункты заданного района, но по названию населенного пункта можно узнать к какому району он относится. Хотя и здесь есть исключения.

Деревня Песчанка в списке жилых зон

Администрации Советского р-на города Красноярска подчинена деревня Песчанка. С одной стороны, 2ГИС её относит к жилым зонам (см. Рис. 2), но улицы населённых пунктов непосредственно не связаны с жилыми зонами. Поэтому в списке улиц(STREET) присутствуют по две записи об улицах: Сергея Лазу и Зелёная. Первые из которых относятся к улицам Красноярска, а вторые к улицам деревни Песчанка. Для того чтобы преодолеть эту неопределенность в приложении 2ГИС «на лету» к улицам деревни Песчанка справа в скобках добавляется название этой деревни.

2GIS Street Песчанка

Рис. 3. Повторяющиеся названия улиц г Красноярска и д. Песчанка

Колонки 1,3,4,5 на Рис. 3 — это то, что содержит таблица «Улица (STREET)», а в колонке 6 отображено название этой же улицы, дополненное значением из таблицы «Жилая зона (LIVINGAREA)». Из Рис. 2 видно, что название жилой зоны можно получить только через список адресов каждой улицы «Адрес (ADDRESS)». В тоже время, ссылка на жилую зону правильно заполняется далеко не для каждого адреса на улице. Что конечно приводит к дополнительной неопределенности в структуре адреса 2ГИС.

2GIS Street_LivingArea

Рис. 4. Ошибка в дополненном названии улицы города Красноярска

Видимо изначально предполагалось, что список жилых зон 2ГИС должен состоять из устоявшихся и современных названий жилых массивов, микрорайонов, территорий вокруг знакового для горожан места, или просто исторически сложившееся названия части города. Названия таких территорий не используются в качестве адресообразующих элементов, т.к. улично-дорожная сеть создаётся в пределах всего населённого пункта, а не отдельных жилищных массивов. Примерами таких территорий могут служить: «Взлётка», «Овинный», «Иннокентьевский», «Покровка», «Торговый центр», и т.д. Улицы могут пересекать несколько таких территорий.

В отличие жилищных массивов, деревня Песчанка имеет свою улично-дорожную сеть. И включение её в категорию жилых зон — ещё одно не слишком удачное решение, т.к. территорию Песчанки пересекают только её собственные улицы, но не улицы города Красноярска.

Рис. 4 иллюстрирует как попытка уточнить совпадающие названия улиц, заменив их дополненными названиями привела к ошибочному созданию новой улицы. Причина в рассогласовании данных об адресах на красноярской улице «Сергея Лазо», её код на рисунке — «985901152862952».

2GIS Address_LivingArea

Рис. 5. Ошибка: часть адресов красноярской улицы ссылаются на жилую зону «Песчанка д.»

На Рис. 5 показан источник рассогласования данных в таблице «Адрес (ADDRESS)», приведший к ошибке. Как видно из таблицы рисунка красноярская улица «Сергея Лазо» пересекает две жилые зоны: «микрорайон Инокентьевский» и «деревня Песчанка». Мало того, что эти жилые зоны отделены друг от друга большой территорией и сами улицы не слишком длинные (см. Рис. 6), да ещё и Песчанка обладает обособленной улично-дорожной сетью.

2GIS Street Лазо

Рис. 6. Улицы Сергея Лазо на карте г. Красноярска. В верхнем правом углу улица в деревне Песчанка

Значит выделенные записи таблицы Адрес(ADDRESS) содержат ошибки — либо в идентификаторе улицы, либо в идентификаторе жилой зоны.

В конце этого обсуждения заметим, что авторы книги «Рефакторининг баз данных»(2 рассогласование данных внутри хранилища считают важным основанием для реорганизации его структуры.

«Подвисшие» записи улиц

Особую проблему для 2ГИС представляют СНТ и ОНТ(3. Их особенность в том, что они могут быть расположены на территориях, подчиненных населённым пунктам, районам и даже сельсоветам.

Отсутствие районов, а тем более сельсоветов, в схеме хранения адресов 2ГИС привело к тому, что в списке улиц (STREET) присутствуют «подвешенные» улицы, т.е. не относящиеся ни к одному из населённых пунктов. В лучшем случае, названия таких улиц дополнительно содержат указание СНТ, но часто нет и такой подсказки. Смотри Таблица 2.

Таблица 2. Примеры «подвешенных» названий улиц

2GIS Streets without City

Для «подвешенных» улиц, в названиях которых нет указания на СНТ или ОНП, можно применить механизм создания дополненного наименования, применив данные таблицы «Жилая зона (LIVINGAREA)». Но, при наличии ошибок в списке адресов для таких улиц, есть риск создания ошибочного дополнительного наименования.

Таблица 3. Дополненные наименования «подвешенных» улицы 2ГИС

2GIS Streets without City v2

Как показано в Таблица 3, часто даже дополненные наименования «подвешенных» улиц выглядят так, что по ним невозможно определить, какие из них относятся к разным улицам, а какие к одной и той же.

При этом, число «подвешенных» улиц не так уж и мало — 83358. Из них примерно 70,5 тысяч на 2ГИС территории «Красноярск», 6 тысяч — «Минусинск» и 6,7 тысяч — «Норильск».

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

СНТ и ОНТ в населённых пунктах

Для использования привязанных к населенным пунктам СНТ и ОНТ характерны особенности и проблемы присущие как населённым пунктам подобным деревне Песчанка, так и «подвешенным» улицам. И СНТ и ОНТ имеют собственные улично-дорожные сети, названия улиц которых даются спонтанно участниками товариществ. И плодятся многочисленные: центральные, садовые, зеленые, лесные, луговые, нагорные — улицы и переулки. Таким образом, названия улиц каждого СНТ дублируют названия улиц других СНТ, а также населённого пункта, которому административно подчинены.  Смотри Таблица 4.

Таблица 4. Примеры повторяющихся названий улиц СНТ в населённых пунктах

2GIS СНТ double Street

Так, например, улицы с названием «Лесная» в СНТ «Ветеран-8», «Енисей-6», «Кедр-9» повторяют не только друг друга, но и улицу в Красноярске. Смотри Рис. 7. Отличить улицы СНТ с одинаковыми названиями можно только при помощи дополненных названий. Тем более, что компания 2ГИС часто практикует указание их в списке жилых зон.

2GIS Лесная Street

Рис. 7. Улица Лесная в Красноярске

Как демонстрирует Таблица 5 дополненные названия улиц СНТ снова могут повторяться. Тем более, что как такового контроля повторяемости дополненных названий видимо не предусмотрено — он нужен лишь для СНТ и населённых пунктов подобных Песчанке.

Таблица 5. Повторяющиеся дополненные названия улиц СНТ

2GIS СНТ double Street v2

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

СНТ Дружба 70030076327118850 70030076371811852 v2

Рис. 8. Жилые зоны Красноярска СНТ Дружба тер. СНТ Сад №1 Локомотивного депо, участвующие в дополненном наименовании одной улицы

Например, в таблице «Улица (STREET)» присутствует одна запись об улице в Красноярске с названием «тер. СНТ Дружба» и идентификатором «70030076327118850». В тоже время, в таблице «Жилая зона (LIVINGAREA)» присутствуют две записи о жилых зонах в Красноярске: «СНТ Сад №1 Локомотивного депо» с кодом «70030076408038724» и «СНТ Дружба тер.» с кодом «70030076352822011». Взаимное расположение и геометрия этих жилых зон отображены на Рис. 8.

Несмотря на то, что жилая зона «СНТ Дружба тер.» с кодом «70030076352822011» с запада и юга ограничена деревнями Малая Кускунка и Кускун, расстояние которых от Красноярска по трассе 52 и 55 км (по прямой — 43, 44), в записи о ней указано, что это жилая зона города Красноярска. Такое несоответствие удивляет, хотя и не мешает поиску улиц и адресов среди данных 2ГИС.

Если обратить внимание на записи в таблице на Рис. 9, содержащей адреса «тер. СНТ Дружба», то можно увидеть, что одна часть из них отнесена к «СНТ Сад №1 Локомотивного депо», а другая — к «СНТ Дружба тер.». Так как «тер. СНТ Дружба» полностью расположена в жилой зоне «СНТ Сад №1 Локомотивного депо» Красноярска, то ошибочными являются последние 4 записи таблицы. Ошибка здесь либо ссылке на жилую зону, либо в ссылке на улицу.

2GIS Address_LivingArea CNT

Рис. 9. Адреса на «тер. СНТ Дружба» города Красноярска

В этих условиях механизм формирования дополненного наименования улицы приводит к созданию несуществующей улицы «тер. СНТ Дружба (СНТ Дружба тер.)», код которой «70030076327118850» совпадает с кодом существующей улицы «тер. СНТ Дружба (СНТ Сад №1 Локомотивного депо)», нарушая тем самым требование уникальности кодов (идентификаторов) записей улиц.

А вот и пример возникновения двойных названий улиц, причина которого в отсутствии указания на СНТ в списке жилых зон. Отсутствие ссылки на СНТ бывает в записях улиц, к которым не привязано ни одного адреса, т.к. связь с жилой зоной осуществляется через адреса (смотри Рис. 2).

2GIS Street without LivingArea CNT

Рис. 10. Нет указателя на СНТ, т.к. нет адресов на улице

В таблице на Рис. 10 присутствует запись об улице Высотной с кодом «70030076407364787», для неё нет ни одного адреса в таблице «Адрес (ADRESS)», поэтому нельзя указать её принадлежность к СНТ Колос. В результате образуется две улицы с названием «Высотная».

ул Высотная 70030076327118850 70030076371811852 v2

Рис. 11. Две улицы города Красноярска, из которых только одна в черте города

Но Рис. 11 показывает, что местонахождение улицы Высотной с кодом «70030076407364787» не в Красноярске, а на восток от Красноярска в Манском районе рядом с посёлком Сорокино и деревней Самарка.

Отсутствие домов на улице, находящейся на территории СНТ не единственная причина появления улиц с повторяющимися наименованиями. Например, жилая зона «снт псо № 3 «Красноярец»» просто отсутствует в справочнике «LIVINGAREA», поэтому для того, чтобы различить две улицы с названием «Московская» на Рис. 12 и Рис. 13, приходится изменять название одной из них путем анализа дополнений в названиях соседних улиц. В данном случае соседними с «ул. Московская» с кодом «70030076329187754» являются улицы «Монтажников (ПСО «Красноярец»)» и «Авангардная (СНТ №3 «Красноярец»)», что позволило создать дополнение «снт псо № 3 «Красноярец»».

2GIS Московская multiplicity

Рис. 12. Две улицы Московская в справочник «STREET»

2GIS Московская double v2

Рис. 13. Улица Московская на территории Красноярска (выделена красным цветом), улица Московская на территории «снт псо № 3 «Красноярец»» — синим цветом

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

2GIS Street Верхняя

Рис. 14. Различные коды НП в СНТ и улицы, содержащейся на её территории

Рис. 14 показывает несоответствие кодов НП улицы Верхняя с кодом «70030076371341132» и охватывающей её жилой зоны «СНТ строитель тер.» С кодом «70030076352824233». Код НП в описании улицы принадлежит городу Красноярску, а в описании жилой зоны — к деревне Бугачево Емельяновского района. Наглядно эта ситуация показана на Рис. 15.

2GIS СНТ Street mismatch

Рис. 15. Улица Верхняя в СНТ Строитель по соседству с деревней Бугачево Емельяновского района

Итак, в работе с 2ГИС-данными СНТ возникла противоречивая ситуация. С одной стороны, для целей однозначного нахождения названия улицы приходится использовать их дополненные названия. С другой, ошибки в данных таблицы «Адрес (ADDRESS)» делают механизм формирования дополнительных названий улиц источником возникновения несуществующих улиц и улиц с повторяющимися названиями. Более того, этот механизм может приводить к нарушению требования уникальности кода улицы.

Повторяющиеся адреса

Повторяющиеся адреса — это записи об адресах, с различными значениями в «Код Адреса (CODADDRESS)» и совпадающими значениями во всех остальных колонках таблицы «Адрес (ADDRESS)». Смотри Рис. 16. 2GIS Address double

Рис. 16. Пример повторяющихся адресов

Если на данных 2ГИС выполнять операцию прямого геокодирования(5, то к повторяющимся адресам добавляются многочисленные адреса с одинаковыми названиями улиц, т.к. коды улиц не включаются в строку адресного поиска.

Расхождения привязки домов в 2ГИС и ГАР-ФИАС

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

Первый пример – улица Алёши Тимошенкова

2GIS Тимошенкова multiplicity

Рис. 17. Улицы с названием «Алёши Тимошенкова» и их участки

Как показано на Рис. 17, одна улица «Алёши Тимошенкова» в городе Красноярске с кодом «985901152864078» используется как для адресации домов в городе, так и, как минимум, в восьми СНТ. По данным ГАР-ФИАС на этой улице находится 1399 дома, по данным 2ГИС – 357, включая киоски.

Если бы в списке улиц 2ГИС была только одна улица «Алёши Тимошенкова», то однозначно найти адресованный по ней дом на карте можно. Значительно труднее найти часть улицы «Алёши Тимошенкова» в определённом СНТ.

2GIS Тимошенкова double v4

Рис. 18. Распределение номеров домов по улицам Алёши Тимошенкова

Рис. 18 показывает распределение адресов домов по двум улицам «Алёши Тимошенкова», обозначенных желтым и коричневым (в правой части изображения) цветами. Желтыми и красными цветами обозначены номера домов улицы с кодом «985901152864078». При этом, дома с красными номерами находятся на территориях СНТ. Два дома с адресами «ул. Алёши Тимошенкова 98 ст115» и «ул. Алёши Тимошенкова 98/122», номера которых обозначены коричневым, находятся на дополнительной улице «ул. Алёши Тимошенкова(Полигон)» с кодом «70030076418561803».

Характерная для 2ГИС произвольность распределения адресов по улицам СНТ порой приводит к противоречию с данными органа ответственного за ведение ГАР –ФИАС в Красноярск.

2GIS Тимошенкова House mismatch GAR

Рис. 19. Дома на «коричневой» улице «Алёши Тимошенкова(Полигон)»

Так дом с адресом «ул. Алёши Тимошенкова 98/122» в 2ГИС отнесён к «коричневой» улице «Алёши Тимошенкова(Полигон)» с кодом «70030076418561803» (смотри Рис. 19). В ГАР-ФИАС присутствует только одна улица Алёши Тимошенкова, за которой закреплён дом с адресом «ул. Алёши Тимошенкова 98/122» (смотри Рис. 20).

GAR Тимошенкова House mismatch 2GIS

Рис. 20. Адрес «ул. Алёши Тимошенкова 98/122» в ГАР-ФИАС

Другой пример – улица Борисевича

Для  улицы Борисевича в справочнике STREET вдобавок к записи о городской улице введена запись об одноимённой улице на территории «СПК Пригородный» с соответствующим дополнением в наименовании (смотри Рис. 21).

2GIS Борисевича multiplicity

Рис. 21. Две улицы Борисевича и их распределение по территориям СНТ

По данным ГАР-ФИАС на этой улице Борисевича находятся 496 домов, по данным 2ГИС – 127, включая киоски.

В тоже время, городская улица, точнее адресованные к ней дома, расположены на территории «СПК Пригородный тер.», что приводит к неявному дублированию записей об адресах на «ул. Борисевича(СПК Пригородный тер.)».

2GIS Борисевича double v4

Рис. 22. Распределение номеров домов по улицам Борисевича

Рис. 22 показывает распределение адресов домов по двум улицам «Брисевича», обозначенных коричневым и белым (в правой части изображения) цветами. Коричневым и красным цветами обозначены номера домов улицы с кодом «985901152865617». При этом, дома с красными номерами находятся на территориях СНТ. Хотя на территории «СПК Пригородный» расположены как минимум 16 домов, только один дом с адресом «ул. Борисевича(СПК Пригородный тер.) 2ж.37», номер которого обозначен черным цветом на белом фоне связан с улицей с кодом «70030076431753988». Часть домов, связанных с городской улицей «Борисевича», расположены на территории «СТ 50 лет Победы», при этом записи об улице «Борисевича(СТ 50 лет Победы тер.)» в справочнике STREET нет.

В ГАР-ФИАС есть отдельные записи «СНТ СПК Пригородный» и «СНТ 50 лет Победы», для которых не указано не одной улицы.

Последний пример – улица Рейдовая

Как показано на Рис. 23, особенность учета в 2ГИС данных об улице Рейдовая заключается в том, что в справочнике STREET на неё отведено 3 записи. В двух записях указано одинаковое название «Рейдовая» без дополнения, в третьей — название дополнено указанием на «СНТ Солнечный». При этом 2 записи с кодами «70030076446003341» и «70030076207357108» описывают улицы на территории СНТ Солнечный, а третья с кодом «985901152865661» — красноярскую улицу, относительно которой тем не менее адресованы дома расположенные на СНТ.

2GIS Рейдовая multiplicity

Рис. 23. Три улицы Рейдовая и их распределение по территориям СНТ

Как и в предыдущих примерах, данные о количестве домов на улице Рейдовая существенно отличаются в ГАР-ФИАС и 2ГИС. В ГАР-ФИАС на этой улице находится 807 домов и все они отнесены к одной городской улице. В 2ГИС указано 203 адреса, из которых 3 относятся к улице «Рейдовая «СНТ Солнечный» с кодом «70030076207357108» (отмечены на Рис. 24 черными номерами на белом фоне), 4 — к улице «Рейдовая с кодом «70030076446003341» (отмечены жёлтыми номерами), остальные — к улице «Рейдовая с кодом «985901152865661» (отмечены коричневыми и красными номерами).

2GIS Рейдовая double v2

Рис. 24. Распределение номеров домов по улицам с названием «Рейдовая»

Красным цветом отмечены дома, адреса которых относятся к городской улице «Рейдовая», но расположены на территории СНТ Солнечный.

Выводы

Массовое создание СНТ и отсутствие установленного нормативными актами порядка наименования и переименования внутритерриториальных объектов, а также адресации зданий, расположенных на территориях СНТ, создаёт проблемы управляемости территориями по обеим сторонам границы города Красноярска.

В ГАР ФИАС дома пригородных СНТ привязываются к ближайшей граничной улице. В 2ГИС для привязки домов СНТ могут вводится дополнительные улицы на территориях этих СНТ. При этом нельзя выделить устойчивого правила ни в порядке создания улиц на территории СНТ, ни в порядке распределения адресов домов по приграничным улицам.

0

information-button   Примечание к выводу

Приведённые примеры демонстрируют наличие нарастающего расхождения между подходами к решению задач адресации объектов недвижимости, используемых операторами ГАР-ФИАС и службами 2ГИС. Особую остроту этому расхождению придает широта распространения решений 2ГИС. Благодаря поисковым системам и сайтам, клонирующим данные 2ГИС, адресные данные этой компании становятся стандартом де-факто, и противопоставляются адресным данным ГАР ФИАС – стандартам де-юре. Конечно, эта проблема не может быть решена компанией 2ГИС, т.к. она относится к сфере управления городом Красноярском, и, в частности, затрагивает вопросы цифровой трансформации городского управления. Если учесть, что цифровизация — не простое приведение данных к цифровой форме, но и усилия по повышению качества данных, подлежащих оцифровке. Обеспечение качества таких данных, должно опираться на наличие соответствующих нормативных актов, а также административных мер по преобразованию их к стандартной форме и содержанию.

Заключение

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

Для обоснования этого вывода приведем цитату из знаменитой книги Кристофера Дейта «Введение в системы баз данных», — «Первая нормальная форма. Переменная отношения находится в 1НФ тогда и только тогда, когда в любом допустимом значении этой переменной отношения каждый ее кортеж содержит только одно значение для каждого из атрибутов» [1 с. 468]. Выше было показано, что атрибут «название населённого пункта» таблицы «НП(CITY)» содержит, например, следующие значения: «Минино (Емельяновский район)», «Овсянка (Дивногорск городской округ)». В терминах теории баз данных «одно» значение эквивалентно неделимому значению. А в приведенных примерах эти значения содержат названия населённого пункта и района (городского округа) Красноярского края одновременно, которые следует разделить на два атрибута. Приведение схемы базы данных к первой нормальной форме — базовое требование, которое является обязательным условием для следующих этапов нормализации. В книге Дейта последовательность нормализации иллюстрировано схемой, показанной на Рис. 25.

Дейт Рис 12.2 Уровни нормализации стр 460

Рис. 25. Уровни нормализации. К. Дейт Введение в базы данных [1 с. 460]

Подробности нормализации схемы базы данных можно подчерпнуть из главы 12 книги К. Дейта [1 с.457].

Предвижу возражение — современные аналитические базы данных (OLAP) сознательно создаются денормализованными. Во-первых, такая денормализация редко нарушает требования 1НФ из-за трудности выполнения аналитических преобразований над многозначными столбцами. Во-вторых, аналитические базы данных обычно стараются создавать автоматически из нормализованных операционных баз данных (OLTP) для того, чтобы минимизировать ошибки избыточности характерные для денормализованных баз данных. Но, судя по количеству ошибок согласованности в данных 2ГИС, предварительной стадии контроля ввода не предусмотрено.

Термин «нормализация» может оказаться сложным для понимания, те, кто не знаком с одним из курсов по системам баз данных. Но вот термины: «многоцелевые столбцы», «многоцелевые таблицы», «избыточные данные», «многозначные столбцы» кажутся интуитивно более понятными. А этими терминами в книге «Рефакторинг баз данных» обозначены признаки того, что базы данных требует реорганизации [2 стр. 58-59].

В случае со схемой данных 2ГИС избыточным является указание района (городского округа) в названии населенного пункта. Столь же избыточным является связь адресов, а затем и улиц, с таблицей «Жилая ЗОНА (LIVINGAREA), в том случае, когда её под за названием жилой зоны подразумевается населённый пункт (смотри пример с д. Песчанка) или СНТ, ведь все их адреса и улицы относятся только этому поселению и ни к какому другому.

Таблица «Жилая ЗОНА (LIVINGAREA)» имеет признаки многоцелевой таблицы, т.к. содержит и СНТ и микрорайоны. Связь микрорайона с адресами вполне оправдана, т.к. адреса на одной улице вполне могут относится к разным микрорайонам.

О многозначности названий населенных пунктов и улиц уже говорилось выше.

Как видите и с точки зрения теории систем баз данных схема данных 2ГИС требует реорганизации.


Список литературы

[1] Дейт К. Дж. Введение в системы баз данных = Introduction to Database Systems. — 8-е изд. — М.: Вильямс, 2005. — 1328 с
[2] Эмблер, С. В. Рефакторинг баз данных: эволюционное проектирование: пер. с англ. / Скотт В. Эмблер, Прамодкумар Дж. Садаладж. — М.: Вильямс, 2007. — 672 с.

СНОСКИ

(1 Постановление Правительства РФ от 19.11.2014 N 1221 (ред. от 02.08.2022) «Об утверждении Правил присвоения, изменения и аннулирования адресов» https://www.consultant.ru/document/cons_doc_LAW_171170/db70770bc2606157e413d6f38435ccf72a1539d6/

(2 Эмблер, С. В. Рефакторинг баз данных: эволюционное проектирование: пер. с англ. / Скотт В. Эмблер, Прамодкумар Дж. Садаладж. — М.: Вильямс, 2007. — 672 с.

(3 СНТ —Садовые некоммерческие товарищества; ОНТ — огороднические некоммерческие товарищества. Смотри Федеральный закон от 29.07.2017 N 217-ФЗ «О ведении гражданами садоводства и огородничества для собственных нужд».

(4 Енисей-ГИС —государственная геоинформационная система Красноярского края, https://24bpd.ru/content/

(5 Прямое геокодирование —определение координат по названию объекта или его адресу.
(6 Сервис для решения задач прямого и обратного геокодирования, решающий Прямое геокодирование —определение координат по названию объекта или его адресу.


Смотри другие публикации, посвященных анализу адресных данных::

  1. Анализ адресов ФИАС
  2. Эх, ФИАС, ФИАС… Почему ты не адресный реестр?
  3. Адреса ФИАС в среде PostgreSQL
  4. Дома ФИАС в среде PostgreSQL
  5. Задача об Адресе

This entry was posted in Блог and tagged , , , . Bookmark the permalink.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *