ФИАС

Обсуждение материалов сайта: вопросы, замечания, предложения
Ответить
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

ФИАС

Сообщение Mavka »

Обсуждение статьи "Федеральная информационная адресная система"
http://wiki.gis-lab.info/%D0%A4%D0%98%D0%90%D0%A1

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

В том числе ссылка на вики нужна, что бы поисковики (google) могли ее проиндексировать.
лангольеры под окном жрали время ом-ном-ном
_kirill_
Новоприбывший
Сообщения: 1
Зарегистрирован: 02 июл 2014, 15:03
Репутация: 0

Re: ФИАС

Сообщение _kirill_ »

Могли бы описать процесс актуализации бызы с помощью делта данных?
Аватара пользователя
SergeyRyzhkov
Гуру
Сообщения: 909
Зарегистрирован: 02 июл 2014, 19:13
Репутация: 203
Ваше звание: GP-экотеррористы
Откуда: Санкт-Петербург
Контактная информация:

Re: ФИАС

Сообщение SergeyRyzhkov »

Сделал скрипты для создания базы данных для Oracle, MS SQL и SQLite, можно и для любой другой базы данных.
Также в процессе загрузчик в СУБД из файлов *.dbf (библиотека на C#)
Если кому интересно, пишите admin@ryzhkov-sn.ru

Выкладываю скрипт создания БД для Oracle
ВНИМАНИЕ: Индексы не создаются!

Код: Выделить всё

/*==============================================================*/
/* DBMS name:      ORACLE Version 11g                           */
/* Created on:     03.07.14 18:17:49                            */
/*==============================================================*/

/*==============================================================*/
/* Table: ACTSTAT                                               */
/*==============================================================*/
create table ACTSTAT 
(
   ACTSTATID            NUMBER(10)           not null,
   NAME                 VARCHAR2(100),
   constraint SYS_C00165122 primary key (ACTSTATID)
);

comment on table ACTSTAT is
'Статус актуальности ФИАС';

comment on column ACTSTAT.ACTSTATID is
'Идентификатор статуса';

comment on column ACTSTAT.NAME is
'Наименование';

/*==============================================================*/
/* Table: ADDROBJ                                               */
/*==============================================================*/
create table ADDROBJ 
(
   AOID                 VARCHAR2(36)         not null,
   FORMALNAME           VARCHAR2(120),
   REGIONCODE           VARCHAR2(2),
   AUTOCODE             CHAR,
   AREACODE             VARCHAR2(3),
   CITYCODE             VARCHAR2(3),
   CTARCODE             VARCHAR2(3),
   PLACECODE            VARCHAR2(3),
   STREETCODE           VARCHAR2(4),
   EXTRCODE             VARCHAR2(4),
   SEXTCODE             VARCHAR2(3),
   OFFNAME              VARCHAR2(120),
   POSTALCODE           CHAR(6),
   IFNSFL               VARCHAR2(4),
   TERRIFNSFL           VARCHAR2(4),
   IFNSUL               VARCHAR2(4),
   TERRIFNSUL           VARCHAR2(4),
   OKATO                VARCHAR2(11),
   OKTMO                VARCHAR2(8),
   UPDATEDATE           DATE,
   SHORTNAME            VARCHAR2(10),
   PARENTGUID           VARCHAR2(36),
   AOGUID               VARCHAR2(36),
   PREVID               VARCHAR2(36),
   NEXTID               VARCHAR2(36),
   CODE                 VARCHAR2(17),
   PLAINCODE            VARCHAR2(15),
   ACTSTATUS            NUMBER(10),
   CENTSTATUS           NUMBER(10),
   OPERSTATUS           NUMBER(10),
   CURRSTATUS           NUMBER(10),
   STARTDATE            DATE,
   ENDDATE              DATE,
   NORMDOC              VARCHAR2(36),
   KOD_T_ST             NUMBER(10),
   constraint SYS_C00165124 primary key (AOID)
);

comment on table ADDROBJ is
'Классификатор адресообразующих элементов';

comment on column ADDROBJ.AOID is
'Уникальный идентификатор записи';

comment on column ADDROBJ.FORMALNAME is
'Формализованное наименование';

comment on column ADDROBJ.REGIONCODE is
'Код региона';

comment on column ADDROBJ.AUTOCODE is
'Код автономии';

comment on column ADDROBJ.AREACODE is
'Код района';

comment on column ADDROBJ.CITYCODE is
'Код города';

comment on column ADDROBJ.CTARCODE is
'Код внутригородского района';

comment on column ADDROBJ.PLACECODE is
'Код населенного пункта';

comment on column ADDROBJ.STREETCODE is
'Код улицы';

comment on column ADDROBJ.EXTRCODE is
'Код дополнительного адресообразующего элемента';

comment on column ADDROBJ.SEXTCODE is
'Код подчиненного дополнительного адресообразующего элемента';

comment on column ADDROBJ.OFFNAME is
'Официальное наименование';

comment on column ADDROBJ.POSTALCODE is
'Почтовый индекс';

comment on column ADDROBJ.IFNSFL is
'Код ИФНС ФЛ';

comment on column ADDROBJ.TERRIFNSFL is
'Код территориального участка ИФНС ФЛ';

comment on column ADDROBJ.IFNSUL is
'Код ИФНС ЮЛ';

comment on column ADDROBJ.TERRIFNSUL is
'Код территориального участка ИФНС ЮЛ';

comment on column ADDROBJ.OKATO is
'ОКАТО';

comment on column ADDROBJ.OKTMO is
'ОКТМО';

comment on column ADDROBJ.UPDATEDATE is
'Дата  внесения записи';

comment on column ADDROBJ.SHORTNAME is
'Краткое наименование типа объекта';

comment on column ADDROBJ.PARENTGUID is
'Идентификатор объекта родительского объекта';

comment on column ADDROBJ.AOGUID is
'Глобальный уникальный идентификатор адресного объекта';

comment on column ADDROBJ.PREVID is
'Идентификатор записи связывания с предыдушей исторической записью';

comment on column ADDROBJ.NEXTID is
'Идентификатор записи  связывания с последующей исторической записью';

comment on column ADDROBJ.CODE is
'Код адресного объекта одной строкой с признаком актуальности из КЛАДР 4.0';

comment on column ADDROBJ.PLAINCODE is
'Код адресного объекта из КЛАДР 4.0 одной строкой без признака актуальности (последних двух цифр)';

comment on column ADDROBJ.ACTSTATUS is
'Статус актуальности адресного объекта ФИАС. Актуальный адрес на текущую дату. Обычно последняя запись об адресном объекте.';

comment on column ADDROBJ.CENTSTATUS is
'Статус центра';

comment on column ADDROBJ.OPERSTATUS is
'Статус действия над записью – причина появления записи';

comment on column ADDROBJ.CURRSTATUS is
'Статус актуальности КЛАДР 4 (последние две цифры в коде)';

comment on column ADDROBJ.STARTDATE is
'Начало действия записи';

comment on column ADDROBJ.ENDDATE is
'Окончание действия записи';

comment on column ADDROBJ.NORMDOC is
'Внешний ключ на нормативный документ';

comment on column ADDROBJ.KOD_T_ST is
'Ключевое поле';

/*==============================================================*/
/* Table: CENTERST                                              */
/*==============================================================*/
create table CENTERST 
(
   CENTERSTID           NUMBER(10)           not null,
   NAME                 VARCHAR2(100),
   constraint SYS_C00165126 primary key (CENTERSTID)
);

comment on table CENTERST is
'Статус центра';

comment on column CENTERST.CENTERSTID is
'Идентификатор статуса';

comment on column CENTERST.NAME is
'Наименование';

/*==============================================================*/
/* Table: CURENTST                                              */
/*==============================================================*/
create table CURENTST 
(
   CURENTSTID           NUMBER(10)           not null,
   NAME                 VARCHAR2(100),
   constraint SYS_C00165128 primary key (CURENTSTID)
);

comment on table CURENTST is
'Статус актуальности КЛАДР 4.0';

comment on column CURENTST.CURENTSTID is
'Идентификатор статуса';

comment on column CURENTST.NAME is
'Наименование';

/*==============================================================*/
/* Table: ESTSTAT                                               */
/*==============================================================*/
create table ESTSTAT 
(
   ESTSTATID            NUMBER(10)           not null,
   NAME                 VARCHAR2(20),
   SHORTNAME            VARCHAR2(20),
   constraint SYS_C00165130 primary key (ESTSTATID)
);

comment on table ESTSTAT is
'Признак владения';

comment on column ESTSTAT.ESTSTATID is
'Признак владения';

comment on column ESTSTAT.NAME is
'Наименование';

/*==============================================================*/
/* Table: HOUSE                                                 */
/*==============================================================*/
create table HOUSE 
(
   POSTALCODE           CHAR(6),
   IFNSFL               VARCHAR2(4),
   TERRIFNSFL           VARCHAR2(4),
   IFNSUL               VARCHAR2(4),
   TERRIFNSUL           VARCHAR2(4),
   OKATO                VARCHAR2(11),
   OKTMO                VARCHAR2(8),
   UPDATEDATE           TIMESTAMP,
   HOUSENUM             VARCHAR2(20),
   ESTSTATUS            NUMBER(10),
   BUILDNUM             VARCHAR2(10),
   STRUCNUM             VARCHAR2(10),
   STRSTATUS            NUMBER(10),
   HOUSEID              VARCHAR2(36)         not null,
   HOUSEGUID            VARCHAR2(36),
   AOGUID               VARCHAR2(36),
   STARTDATE            DATE,
   ENDDATE              DATE,
   STATSTATUS           NUMBER(10),
   NORMDOC              VARCHAR2(36),
   COUNTER              NUMBER(10),
   constraint SYS_C00165132 primary key (HOUSEID)
);

comment on table HOUSE is
'Сведения по номерам домов улиц городов и населенных пунктов,';

comment on column HOUSE.POSTALCODE is
'Почтовый индекс';

comment on column HOUSE.IFNSFL is
'Код ИФНС ФЛ';

comment on column HOUSE.TERRIFNSFL is
'Код территориального участка ИФНС ФЛ';

comment on column HOUSE.IFNSUL is
'Код ИФНС ЮЛ';

comment on column HOUSE.TERRIFNSUL is
'Код территориального участка ИФНС ЮЛ';

comment on column HOUSE.OKATO is
'ОКАТО';

comment on column HOUSE.OKTMO is
'ОКTMO';

comment on column HOUSE.UPDATEDATE is
'Дата время внесения записи';

comment on column HOUSE.HOUSENUM is
'Номер дома';

comment on column HOUSE.ESTSTATUS is
'Признак владения';

comment on column HOUSE.BUILDNUM is
'Номер корпуса';

comment on column HOUSE.STRUCNUM is
'Номер строения';

comment on column HOUSE.STRSTATUS is
'Признак строения';

comment on column HOUSE.HOUSEID is
'Уникальный идентификатор записи дома';

comment on column HOUSE.HOUSEGUID is
'Глобальный уникальный идентификатор дома';

comment on column HOUSE.AOGUID is
'Guid записи родительского объекта';

comment on column HOUSE.STARTDATE is
'Начало действия записи';

comment on column HOUSE.ENDDATE is
'Окончание действия записи';

comment on column HOUSE.STATSTATUS is
'Состояние дома';

comment on column HOUSE.NORMDOC is
'Внешний ключ на нормативный документ';

comment on column HOUSE.COUNTER is
'Счетчик записей домов для КЛАДР 4';

/*==============================================================*/
/* Table: HOUSEINT                                              */
/*==============================================================*/
create table HOUSEINT 
(
   POSTALCODE           VARCHAR2(6),
   IFNSFL               VARCHAR2(4),
   TERRIFNSFL           VARCHAR2(4),
   IFNSUL               VARCHAR2(4),
   TERRIFNSUL           VARCHAR2(4),
   OKATO                VARCHAR2(11),
   OKTMO                VARCHAR2(8),
   UPDATEDATE           DATE,
   INTSTART             NUMBER(10),
   INTEND               NUMBER(10),
   HOUSEINTID           VARCHAR2(36)         not null,
   INTGUID              VARCHAR2(36),
   AOGUID               VARCHAR2(36),
   STARTDATE            DATE,
   ENDDATE              DATE,
   INTSTATUS            NUMBER(10),
   NORMDOC              VARCHAR2(36),
   COUNTER              NUMBER(10),
   constraint SYS_C00165134 primary key (HOUSEINTID)
);

comment on table HOUSEINT is
'Интервалы домов';

comment on column HOUSEINT.POSTALCODE is
'Почтовый индекс';

comment on column HOUSEINT.IFNSFL is
'Код ИФНС ФЛ';

comment on column HOUSEINT.TERRIFNSFL is
'Код территориального участка ИФНС ФЛ';

comment on column HOUSEINT.IFNSUL is
'Код ИФНС ЮЛ';

comment on column HOUSEINT.TERRIFNSUL is
'Код территориального участка ИФНС ЮЛ';

comment on column HOUSEINT.OKATO is
'ОКАТО';

comment on column HOUSEINT.OKTMO is
'ОКТМО';

comment on column HOUSEINT.UPDATEDATE is
'Дата  внесения записи';

comment on column HOUSEINT.INTSTART is
'Значение начала интервала';

comment on column HOUSEINT.INTEND is
'Значение окончания интервала';

comment on column HOUSEINT.HOUSEINTID is
'Идентификатор записи интервала домов';

comment on column HOUSEINT.INTGUID is
'Глобальный уникальный идентификатор интервала домов';

comment on column HOUSEINT.AOGUID is
'Идентификатор объекта родительского объекта';

comment on column HOUSEINT.STARTDATE is
'Начало действия записи';

comment on column HOUSEINT.ENDDATE is
'Окончание действия записи';

comment on column HOUSEINT.INTSTATUS is
'Статус интервала';

comment on column HOUSEINT.NORMDOC is
'Внешний ключ на нормативный документ';

comment on column HOUSEINT.COUNTER is
'Счетчик записей домов для КЛАДР 4';

/*==============================================================*/
/* Table: HSTSTAT                                               */
/*==============================================================*/
create table HSTSTAT 
(
   HOUSESTID            NUMBER(10)           not null,
   NAME                 VARCHAR2(60),
   constraint SYS_C00165136 primary key (HOUSESTID)
);

comment on table HSTSTAT is
'Статус состояния объектов недвижимости';

comment on column HSTSTAT.HOUSESTID is
'Идентификатор статуса';

comment on column HSTSTAT.NAME is
'Наименование';

/*==============================================================*/
/* Table: INTVSTAT                                              */
/*==============================================================*/
create table INTVSTAT 
(
   INTVSTATID           NUMBER(10)           not null,
   NAME                 VARCHAR2(60),
   constraint SYS_C00165138 primary key (INTVSTATID)
);

comment on table INTVSTAT is
'Статус интервала домов';

comment on column INTVSTAT.INTVSTATID is
'Идентификатор статуса (обычный, четный, нечетный)';

comment on column INTVSTAT.NAME is
'Наименование';

/*==============================================================*/
/* Table: LANDMARK                                              */
/*==============================================================*/
create table LANDMARK 
(
   LOCATION             VARCHAR2(500),
   POSTALCODE           VARCHAR2(6),
   IFNSFL               VARCHAR2(4),
   TERRIFNSFL           VARCHAR2(4),
   IFNSUL               VARCHAR2(4),
   TERRIFNSUL           VARCHAR2(4),
   OKATO                VARCHAR2(11),
   OKTMO                VARCHAR2(8),
   UPDATEDATE           DATE,
   LANDID               VARCHAR2(36)         not null,
   LANDGUID             VARCHAR2(36),
   AOGUID               VARCHAR2(36),
   STARTDATE            DATE,
   ENDDATE              DATE,
   NORMDOC              VARCHAR2(36),
   constraint SYS_C00165140 primary key (LANDID)
);

comment on table LANDMARK is
'Описание мест расположения  имущественных объектов';

comment on column LANDMARK.LOCATION is
'Месторасположение ориентира';

comment on column LANDMARK.POSTALCODE is
'Почтовый индекс';

comment on column LANDMARK.IFNSFL is
'Код ИФНС ФЛ';

comment on column LANDMARK.TERRIFNSFL is
'Код территориального участка ИФНС ФЛ';

comment on column LANDMARK.IFNSUL is
'Код ИФНС ЮЛ';

comment on column LANDMARK.TERRIFNSUL is
'Код территориального участка ИФНС ЮЛ';

comment on column LANDMARK.OKATO is
'ОКАТО';

comment on column LANDMARK.OKTMO is
'ОКТМО';

comment on column LANDMARK.UPDATEDATE is
'Дата внесения записи';

comment on column LANDMARK.LANDID is
'Уникальный идентификатор записи ориентира';

comment on column LANDMARK.LANDGUID is
'Глобальный уникальный идентификатор ориентира';

comment on column LANDMARK.AOGUID is
'Уникальный идентификатор родительского объекта';

comment on column LANDMARK.STARTDATE is
'Начало действия записи';

comment on column LANDMARK.ENDDATE is
'Окончание действия записи';

comment on column LANDMARK.NORMDOC is
'Внешний ключ на нормативный документ';

/*==============================================================*/
/* Table: NDOCTYPE                                              */
/*==============================================================*/
create table NDOCTYPE 
(
   NDTYPEID             NUMBER(10)           not null,
   NAME                 VARCHAR2(100),
   constraint SYS_C00165198 primary key (NDTYPEID)
);

comment on table NDOCTYPE is
'Тип документа';

comment on column NDOCTYPE.NDTYPEID is
'Идентификатор типа документа';

comment on column NDOCTYPE.NAME is
'Наименование типа документа';

/*==============================================================*/
/* Table: NORDOC                                                */
/*==============================================================*/
create table NORDOC 
(
   NORMDOCID            VARCHAR2(36)         not null,
   DOCNAME              VARCHAR2(1000),
   DOCDATE              DATE,
   DOCNUM               VARCHAR2(20),
   DOCTYPE              NUMBER(10),
   DOCIMGID             NUMBER(10),
   constraint SYS_C00165142 primary key (NORMDOCID)
);

comment on table NORDOC is
'Сведения по нормативному документу, являющемуся основанием п';

comment on column NORDOC.NORMDOCID is
'Идентификатор нормативного документа';

comment on column NORDOC.DOCNAME is
'Наименование документа';

comment on column NORDOC.DOCDATE is
'Дата документа';

comment on column NORDOC.DOCNUM is
'Номер документа';

comment on column NORDOC.DOCTYPE is
'Тип документа';

comment on column NORDOC.DOCIMGID is
'Идентификатор образа';

/*==============================================================*/
/* Table: OPERSTAT                                              */
/*==============================================================*/
create table OPERSTAT 
(
   OPERSTATID           NUMBER(10)           not null,
   NAME                 VARCHAR2(100),
   constraint SYS_C00165144 primary key (OPERSTATID)
);

comment on table OPERSTAT is
'Статус действия';

comment on column OPERSTAT.OPERSTATID is
'Идентификатор статуса';

comment on column OPERSTAT.NAME is
'Наименование';

/*==============================================================*/
/* Table: SOCRBASE                                              */
/*==============================================================*/
create table SOCRBASE 
(
   KOD_T_ST             NUMBER(10)           not null,
   "LEVEL"              NUMBER(10)           not null,
   SCNAME               VARCHAR2(10),
   SOCRNAME             VARCHAR2(50),
   constraint PK_SOCRBASE primary key (KOD_T_ST)
);

comment on table SOCRBASE is
'Типы адресных объектов';

comment on column SOCRBASE.KOD_T_ST is
'Ключевое поле';

comment on column SOCRBASE."LEVEL" is
'Уровень адресного объекта';

comment on column SOCRBASE.SCNAME is
'Краткое наименование типа объекта';

comment on column SOCRBASE.SOCRNAME is
'Полное наименование типа объекта';

/*==============================================================*/
/* Table: STRSTAT                                               */
/*==============================================================*/
create table STRSTAT 
(
   STRSTATID            NUMBER(10)           not null,
   NAME                 VARCHAR2(20),
   SHORTNAME            VARCHAR2(20),
   constraint SYS_C00165148 primary key (STRSTATID)
);

comment on table STRSTAT is
'Признак строения';

comment on column STRSTAT.STRSTATID is
'Признак строения';

comment on column STRSTAT.NAME is
'Наименование';

comment on column STRSTAT.SHORTNAME is
'Краткое наименование';

alter table ADDROBJ
   add constraint FK_ADDROBJ_RE_NEXTID foreign key (NEXTID)
      references ADDROBJ (AOID);

alter table ADDROBJ
   add constraint FK_ADDROBJ_RE_PREVID foreign key (PREVID)
      references ADDROBJ (AOID);

alter table ADDROBJ
   add constraint FK_ADDR_ACTSTAT foreign key (ACTSTATUS)
      references ACTSTAT (ACTSTATID)
      not deferrable;

alter table ADDROBJ
   add constraint FK_ADDR_CENTERST foreign key (CENTSTATUS)
      references CENTERST (CENTERSTID)
      not deferrable;

alter table ADDROBJ
   add constraint FK_ADDR_CURRENTS foreign key (CURRSTATUS)
      references CURENTST (CURENTSTID)
      not deferrable;

alter table ADDROBJ
   add constraint FK_ADDR_OPERSTAT foreign key (OPERSTATUS)
      references OPERSTAT (OPERSTATID)
      not deferrable;

alter table ADDROBJ
   add constraint FK_ADRR_NORDOC foreign key (NORMDOC)
      references NORDOC (NORMDOCID)
      not deferrable;

alter table HOUSE
   add constraint FK_HOUSE_ESTST foreign key (ESTSTATUS)
      references ESTSTAT (ESTSTATID)
      not deferrable;

alter table HOUSE
   add constraint FK_HOUSE_NORDOC foreign key (NORMDOC)
      references NORDOC (NORMDOCID)
      not deferrable;

alter table HOUSE
   add constraint FK_HOUSE_STATSTAT foreign key (STATSTATUS)
      references HSTSTAT (HOUSESTID)
      not deferrable;

alter table HOUSE
   add constraint FK_HOUSE_STRSTAT foreign key (STRSTATUS)
      references STRSTAT (STRSTATID)
      not deferrable;

alter table HOUSEINT
   add constraint FK_HOUSEINT_INTST foreign key (INTSTATUS)
      references INTVSTAT (INTVSTATID)
      not deferrable;

alter table HOUSEINT
   add constraint FK_HOUSEINT_NORDOC foreign key (NORMDOC)
      references NORDOC (NORMDOCID)
      not deferrable;

alter table LANDMARK
   add constraint FK_LANDMARK_NORDOC foreign key (NORMDOC)
      references NORDOC (NORMDOCID)
      not deferrable;

alter table NORDOC
   add constraint FK_DOC_TYPE foreign key (DOCTYPE)
      references NDOCTYPE (NDTYPEID)
      not deferrable disable;
ArmRus
Новоприбывший
Сообщения: 6
Зарегистрирован: 16 июн 2015, 03:58
Репутация: 0

Re: ФИАС

Сообщение ArmRus »

Тоже делал скрипт загрузки БД и потом скрипт с индексами и другими оптимизациями. Вся база на mysql занимает более 80ггб, работает жутко медленно, но терпимо. Сделали веб форму для поиска адреса https://armrus.org/extranet/useful/fias/ Если у кого работает быстрее (без железных ухищерений), сообщите пожалуйста как добились оптимизации? О внутренностях работы нашей веб формы пишу тут https://armrus.org/extranet/forum/forum ... ego-v-egrn
Ответить

Вернуться в «Материалы сайта»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя