Skip to content

Commit

Permalink
[BRMO-379] [BRMO-332] [BRMO-381] Aanpassingen aan BRK datamodel en BA…
Browse files Browse the repository at this point in the history
…G/BRK combinatieviews (#2282)

* Update brk2.0_postgresql.sql

Ten behoeve van performance van (materialized) views zijn onderstaande indexes aangemaakt

* Update brk2.0_postgresql.sql

FK Constraints in Recht tabel verwijderd nav https://b3partners.atlassian.net/browse/BRMO-332

* Upgrade script aangpast ihkv BRMO-379

* Upgrade script aangepast ihkv BRMO-379

* Script aangepast ihkv BRMO-379

https://b3partners.atlassian.net/browse/BRMO-379

* aanpassing brk2.0_oracle.sql ihkv BRMO-332

https://b3partners.atlassian.net/browse/BRMO-332

* aanpassing upgrade script ihkv BRMO-332

https://b3partners.atlassian.net/browse/BRMO-332

* aanpassing upgrade script ihkv BRMO-332

https://b3partners.atlassian.net/browse/BRMO-332

* Update brk2.0_postgresql.sql

* Update 209_bag2_rsgb_views.sql

Verwijderde views koppelden BRK 1.0 aan BAG 2.0. BRK 1.0 is outdated en wordt niet meer geleverd

* Update 209_bag2_rsgb_views.sql

Verwijderde views koppelden BRK1.0 aan BAG 2.0. BRK 1.0 wordt niet meer ondersteund

* Update rsgb.sql ihkv BRMO-381

* Update rsgb.sql ihkv BRMO-381

* fix SQL syntax en testBasisMViews

* commentaar toegevoegd bij upgrade script brk oracle 3.0.2-4.0.0

* Verwijder foreign key constraints op recht.isbestemdtot, recht.isontstaanuit en recht.isbetrokkenbij

* fix voor create index in Oracle

---------

Co-authored-by: Martijn van der Struijk <[email protected]>
  • Loading branch information
KJLammers and mvdstruijk authored Nov 14, 2024
1 parent f89f504 commit 42ecd32
Show file tree
Hide file tree
Showing 9 changed files with 87 additions and 538 deletions.
10 changes: 6 additions & 4 deletions datamodel/brk/brk2.0_oracle.sql
Original file line number Diff line number Diff line change
Expand Up @@ -230,9 +230,9 @@ CREATE TABLE recht
isgebaseerdop2 VARCHAR2(255) REFERENCES stukdeel (identificatie),
betreft VARCHAR2(255) REFERENCES recht (identificatie),
rustop VARCHAR2(255) REFERENCES onroerendezaak (identificatie),
isontstaanuit VARCHAR2(255) REFERENCES recht (identificatie),
isbetrokkenbij VARCHAR2(255) REFERENCES recht (identificatie),
isbestemdtot VARCHAR2(255) REFERENCES recht (identificatie),
isontstaanuit VARCHAR2(255),
isbetrokkenbij VARCHAR2(255),
isbestemdtot VARCHAR2(255),
soort VARCHAR2(22),
jaarlijksbedrag DECIMAL(20, 2),
jaarlijksbedrag_valuta VARCHAR(42),
Expand Down Expand Up @@ -420,4 +420,6 @@ CREATE INDEX perceel_archief_begrenzing_perceel ON perceel_archief (begrenzing_p
CREATE INDEX perceel_archief_plaatscoordinaten ON perceel_archief (plaatscoordinaten) INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS ( 'LAYER_GTYPE=POINT');

CREATE INDEX recht_aantekeningkadastraalobject ON recht (aantekeningkadastraalobject);
CREATE INDEX recht_rustop ON recht (rustop);
CREATE INDEX recht_rustop ON recht (rustop);
CREATE INDEX onroerendezaakfiliatie_betreft_idx ON onroerendezaakfiliatie (betreft);
CREATE INDEX onroerendezaakfiliatie_onroerendezaak_idx ON onroerendezaakfiliatie (onroerendezaak);
10 changes: 6 additions & 4 deletions datamodel/brk/brk2.0_postgresql.sql
Original file line number Diff line number Diff line change
Expand Up @@ -472,11 +472,11 @@ CREATE TABLE recht
-- OZ referentie
rustop VARCHAR REFERENCES onroerendezaak (identificatie),
-- een splitsing ref
isontstaanuit VARCHAR REFERENCES recht (identificatie),
isontstaanuit VARCHAR(255),
-- een splitsing ref
isbetrokkenbij VARCHAR REFERENCES recht (identificatie),
isbetrokkenbij VARCHAR(255),
-- Mandeligheid ref
isbestemdtot VARCHAR REFERENCES recht (identificatie),
isbestemdtot VARCHAR(255),
-- Erfpachtcanon.Soort is een nadere aanduiding van de erfpachtcanon. De waarden zijn opgenomen in een waardelijst
-- We onderkennen de volgende soorten erfpachtcanon* Eeuwigdurend afgekocht* Afgekocht tot* Variabel bedrag* Jaarlijks bedrag
-- https://developer.kadaster.nl/schemas/waardelijsten/SoortErfpachtcanon/
Expand Down Expand Up @@ -732,4 +732,6 @@ CREATE INDEX perceel_archief_begrenzing_perceel ON perceel_archief USING GIST (b
CREATE INDEX perceel_archief_plaatscoordinaten ON perceel_archief USING GIST (plaatscoordinaten);

CREATE INDEX recht_aantekeningkadastraalobject ON recht (aantekeningkadastraalobject);
CREATE INDEX recht_rustop ON recht (rustop);
CREATE INDEX recht_rustop ON recht (rustop);
CREATE INDEX onroerendezaakfiliatie_betreft_idx ON brk.onroerendezaakfiliatie USING btree (betreft);
CREATE INDEX onroerendezaakfiliatie_onroerendezaak_idx ON brk.onroerendezaakfiliatie USING btree (onroerendezaak);
276 changes: 0 additions & 276 deletions datamodel/extra_scripts/oracle/209_bag2_rsgb_views.sql
Original file line number Diff line number Diff line change
Expand Up @@ -149,279 +149,3 @@ create index mb_adresseerbaar_object_geometrie_bag_geom on mb_adresseerbaar_obje
create index mb_adresseerbaar_object_geometrie_bag_centroid on mb_adresseerbaar_object_geometrie_bag (geometrie_centroide) indextype is MDSYS.SPATIAL_INDEX;
create index mb_adresseerbaar_object_geometrie_bag_identificatie on mb_adresseerbaar_object_geometrie_bag (identificatienummeraanduiding);
create unique index mb_adresseerbaar_object_geometrie_bag_objectid on mb_adresseerbaar_object_geometrie_bag (objectid);


create materialized view mb_kad_onrrnd_zk_adres_bag build deferred refresh on demand as
select cast(ROWNUM as INTEGER) as objectid,
qry.identif as koz_identif,
koz.dat_beg_geldh as begin_geldigheid,
to_date(koz.dat_beg_geldh, 'YYYY-MM-DD') as begin_geldigheid_datum,
bok.fk_nn_lh_tgo_identif as benoemdobj_identif,
qry.type,
coalesce(qry.ka_sectie, '') || ' ' || coalesce(qry.ka_perceelnummer, '') as aanduiding,
coalesce(qry.ka_kad_gemeentecode, '') || ' ' || coalesce(qry.ka_sectie, '') || ' ' ||
coalesce(qry.ka_perceelnummer, '') || ' ' || coalesce(qry.ka_appartementsindex, '') as aanduiding2,
qry.ka_sectie as sectie,
qry.ka_perceelnummer as perceelnummer,
qry.ka_appartementsindex as appartementsindex,
qry.ka_kad_gemeentecode as gemeentecode,
qry.aand_soort_grootte,
qry.grootte_perceel,
qry.oppervlakte_geom,
qry.ka_deelperceelnummer as deelperceelnummer,
qry.omschr_deelperceel,
b.datum as verkoop_datum,
koz.cu_aard_cultuur_onbebouwd as aard_cultuur_onbebouwd,
koz.ks_bedrag as bedrag,
koz.ks_koopjaar as koopjaar,
koz.ks_meer_onroerendgoed as meer_onroerendgoed,
koz.ks_valutasoort as valutasoort,
koz.lo_loc__omschr as loc_omschr,
aant.aantekeningen as aantekeningen,
maogb.identificatienummeraanduiding,
maogb.nummeraanduidingstatus,
cast(null as varchar2(40)) as gemeente,
maogb.woonplaats,
maogb.straatnaam,
maogb.huisnummer,
maogb.huisletter,
maogb.huisnummertoevoeging,
maogb.postcode,
maogb.gebruiksdoelen,
maogb.oppervlakte,
qry.lon,
qry.lat,
qry.begrenzing_perceel
from (select p.sc_kad_identif as identif,
'perceel' as type,
p.ka_sectie,
p.ka_perceelnummer,
cast(null as CHARACTER VARYING(4)) as ka_appartementsindex,
p.ka_kad_gemeentecode,
p.aand_soort_grootte,
p.grootte_perceel,
p.ka_deelperceelnummer,
p.omschr_deelperceel,
p.begrenzing_perceel as begrenzing_perceel,
case
when p.begrenzing_perceel.get_gtype() is not null then sdo_geom.sdo_area(p.begrenzing_perceel, 0.1)
else null end as oppervlakte_geom,
case
when p.begrenzing_perceel.get_gtype() is not null then sdo_cs.transform(
sdo_geom.sdo_centroid(p.begrenzing_perceel, 0.1), 4326).sdo_point.x
else null end as lon,
case
when p.begrenzing_perceel.get_gtype() is not null then sdo_cs.transform(
sdo_geom.sdo_centroid(p.begrenzing_perceel, 0.1), 4326).sdo_point.y end as lat
from kad_perceel p
union all
select ar.sc_kad_identif as identif,
'appartement' as type,
ar.ka_sectie,
ar.ka_perceelnummer,
ar.ka_appartementsindex,
ar.ka_kad_gemeentecode,
cast(null as CHARACTER VARYING(2)) as aand_soort_grootte,
cast(null as NUMERIC(8, 0)) as grootte_perceel,
cast(null as CHARACTER VARYING(4)) as ka_deelperceelnummer,
cast(null as CHARACTER VARYING(1120)) as omschr_deelperceel,
kp.begrenzing_perceel as begrenzing_perceel,
case
when kp.begrenzing_perceel.get_gtype() is not null then sdo_geom.sdo_area(kp.begrenzing_perceel, 0.1)
else null end as oppervlakte_geom,
case
when kp.begrenzing_perceel.get_gtype() is not null then sdo_cs.transform(
sdo_geom.sdo_centroid(kp.begrenzing_perceel, 0.1), 4326).sdo_point.x
else null end as lon,
case
when kp.begrenzing_perceel.get_gtype() is not null then sdo_cs.transform(
sdo_geom.sdo_centroid(kp.begrenzing_perceel, 0.1), 4326).sdo_point.y end as lat
from mb_util_app_re_kad_perceel v
join kad_perceel kp on cast(v.perceel_identif as NUMERIC) = kp.sc_kad_identif
join app_re ar on cast(v.app_re_identif as NUMERIC) = ar.sc_kad_identif) qry
join kad_onrrnd_zk koz on (koz.kad_identif = qry.identif)
left join benoemd_obj_kad_onrrnd_zk bok on (bok.fk_nn_rh_koz_kad_identif = qry.identif)
left join mb_adresseerbaar_object_geometrie_bag maogb on (((bok.fk_nn_lh_tgo_identif) = maogb.identificatie))
left join (select bd.ref_id, max(bd.datum) as datum
from brondocument bd
where ((bd.omschrijving) = 'Akte van Koop en Verkoop')
group by bd.ref_id) b on (koz.kad_identif = b.ref_id)
left join (select fk_4koz_kad_identif,
listagg('id: ' || coalesce(koza.kadaster_identif_aantek, '') || ', ' || 'aard: ' ||
coalesce(koza.aard_aantek_kad_obj, '') || ', ' || 'begin: ' ||
coalesce(koza.begindatum_aantek_kad_obj, '') || ', ' || 'beschrijving: ' ||
coalesce(koza.beschrijving_aantek_kad_obj, '') || ', ' || 'eind: ' ||
coalesce(koza.eindd_aantek_kad_obj, '') || ', ' || 'koz-id: ' ||
coalesce(koza.fk_4koz_kad_identif, 0) || ', ' || 'subject-id: ' ||
coalesce(koza.fk_5pes_sc_identif, '') || '; ', ' & ' on OVERFLOW TRUNCATE with COUNT)
within group ( order by koza.fk_4koz_kad_identif ) as aantekeningen
from kad_onrrnd_zk_aantek koza
group by fk_4koz_kad_identif) aant on koz.kad_identif = aant.fk_4koz_kad_identif;

comment on materialized view mb_kad_onrrnd_zk_adres_bag is 'alle kadastrale onroerende zaken (perceel en appartementsrecht) met opgezochte verkoop datum, objectid voor geoserver/arcgis en BAG adres';
delete
from user_sdo_geom_metadata
where table_name = 'MB_KAD_ONRRND_ZK_ADRES_BAG';
insert into user_sdo_geom_metadata
values ('MB_KAD_ONRRND_ZK_ADRES_BAG', 'BEGRENZING_PERCEEL',
mdsys.sdo_dim_array(mdsys.sdo_dim_element('X', 12000, 280000, .1),
mdsys.sdo_dim_element('Y', 304000, 620000, .1)), 28992);

create index mb_kad_onrrnd_zk_adres_bag_begrenzing_perceel_idx on mb_kad_onrrnd_zk_adres_bag (begrenzing_perceel) indextype is MDSYS.SPATIAL_INDEX;
create index mb_kad_onrrnd_zk_adres_bag_identif on mb_kad_onrrnd_zk_adres_bag (koz_identif);
create unique index mb_kad_onrrnd_zk_adres_bag_objectid on mb_kad_onrrnd_zk_adres_bag (objectid);


--Maakt dezelfde materialized view aan als mb_koz_rechth, maar de BAG gegevens worden uit mb_kad_onrrnd_zk_adres_bag gehaald.
create materialized view mb_koz_rechth_bag build deferred refresh on demand as
select cast(ROWNUM as INTEGER) as objectid,
koz.koz_identif,
koz.begin_geldigheid,
to_date(koz.begin_geldigheid, 'YYYY-MM-DD') as begin_geldigheid_datum,
koz.type,
coalesce(koz.sectie, '') || ' ' || coalesce(koz.perceelnummer, '') as aanduiding,
coalesce(koz.gemeentecode, '') || ' ' || coalesce(koz.sectie, '') || ' ' || coalesce(koz.perceelnummer, '') ||
' ' || coalesce(koz.appartementsindex, '') as aanduiding2,
koz.sectie,
koz.perceelnummer,
koz.appartementsindex,
koz.gemeentecode,
koz.aand_soort_grootte,
koz.grootte_perceel,
koz.oppervlakte_geom as oppervlakte_geom,
koz.deelperceelnummer,
koz.omschr_deelperceel,
koz.verkoop_datum,
koz.aard_cultuur_onbebouwd,
koz.bedrag,
koz.koopjaar,
koz.meer_onroerendgoed,
koz.valutasoort,
koz.loc_omschr,
zrr.zr_identif,
zrr.ingangsdatum_recht,
zrr.subject_identif,
zrr.aandeel,
zrr.omschr_aard_verkregenr_recht,
zrr.indic_betrokken_in_splitsing,
zrr.soort,
zrr.geslachtsnaam,
zrr.voorvoegsel,
zrr.voornamen,
zrr.aand_naamgebruik,
zrr.geslachtsaand,
zrr.naam,
zrr.woonadres,
zrr.geboortedatum,
zrr.geboorteplaats,
zrr.overlijdensdatum,
zrr.bsn,
zrr.organisatie_naam,
zrr.rechtsvorm,
zrr.statutaire_zetel,
zrr.rsin,
zrr.kvk_nummer,
zrr.aantekeningen,
koz.gemeente,
koz.woonplaats,
koz.straatnaam,
koz.huisnummer,
koz.huisletter,
koz.huisnummertoevoeging,
koz.postcode,
koz.lon,
koz.lat,
koz.begrenzing_perceel
from mb_zr_rechth zrr
right join mb_kad_onrrnd_zk_adres_bag koz on zrr.koz_identif = koz.koz_identif;

comment on materialized view mb_kad_onrrnd_zk_adres_bag is 'kadastrale percelen een appartementsrechten met rechten en rechthebbenden en objectid voor geoserver/arcgis';
delete
from user_sdo_geom_metadata
where table_name = 'MB_KOZ_RECHTH_BAG';
insert into user_sdo_geom_metadata
values ('MB_KOZ_RECHTH_BAG', 'BEGRENZING_PERCEEL',
mdsys.sdo_dim_array(mdsys.sdo_dim_element('X', 12000, 280000, .1),
mdsys.sdo_dim_element('Y', 304000, 620000, .1)), 28992);

create index mb_koz_rechth_bag_begrenzing_perceel_idx on mb_koz_rechth_bag (begrenzing_perceel) indextype is MDSYS.SPATIAL_INDEX;
create index mb_koz_rechth_bag_identif on mb_koz_rechth_bag (koz_identif);
create unique index mb_koz_rechth_bag_objectid on mb_koz_rechth_bag (objectid);


--Maakt dezelfde materialized view aan als mb_avg_koz_rechth, maar de BAG gegevens worden uit mb_kad_onrrnd_zk_adres_bag gehaald.
create materialized view mb_avg_koz_rechth_bag build deferred refresh on demand as
select cast(ROWNUM as INTEGER) as objectid,
koz.koz_identif as koz_identif,
koz.begin_geldigheid,
to_date(koz.begin_geldigheid, 'YYYY-MM-DD') as begin_geldigheid_datum,
koz.type,
coalesce(koz.sectie, '') || ' ' || coalesce(koz.perceelnummer, '') as aanduiding,
coalesce(koz.gemeentecode, '') || ' ' || coalesce(koz.sectie, '') || ' ' || coalesce(koz.perceelnummer, '') ||
' ' || coalesce(koz.appartementsindex, '') as aanduiding2,
koz.sectie,
koz.perceelnummer,
koz.appartementsindex,
koz.gemeentecode,
koz.aand_soort_grootte,
koz.grootte_perceel,
koz.oppervlakte_geom,
koz.deelperceelnummer,
koz.omschr_deelperceel,
koz.verkoop_datum,
koz.aard_cultuur_onbebouwd,
koz.bedrag,
koz.koopjaar,
koz.meer_onroerendgoed,
koz.valutasoort,
koz.loc_omschr,
zrr.zr_identif,
zrr.ingangsdatum_recht,
zrr.subject_identif,
zrr.aandeel,
zrr.omschr_aard_verkregenr_recht,
zrr.indic_betrokken_in_splitsing,
zrr.soort,
zrr.geslachtsnaam,
zrr.voorvoegsel,
zrr.voornamen,
zrr.aand_naamgebruik,
zrr.geslachtsaand,
zrr.naam,
zrr.woonadres,
zrr.geboortedatum,
zrr.geboorteplaats,
zrr.overlijdensdatum,
zrr.bsn,
zrr.organisatie_naam,
zrr.rechtsvorm,
zrr.statutaire_zetel,
zrr.rsin,
zrr.kvk_nummer,
zrr.aantekeningen,
koz.gemeente,
koz.woonplaats,
koz.straatnaam,
koz.huisnummer,
koz.huisletter,
koz.huisnummertoevoeging,
koz.postcode,
koz.lon,
koz.lat,
koz.begrenzing_perceel
from mb_avg_zr_rechth zrr
right join mb_kad_onrrnd_zk_adres_bag koz on zrr.koz_identif = koz.koz_identif;


comment on materialized view mb_kad_onrrnd_zk_adres_bag is 'kadastrale percelen een appartementsrechten met rechten en rechthebbenden geschoond voor avg en objectid voor geoserver/arcgis';
delete
from user_sdo_geom_metadata
where table_name = 'MB_AVG_KOZ_RECHTH_BAG';
insert into user_sdo_geom_metadata
values ('MB_AVG_KOZ_RECHTH_BAG', 'BEGRENZING_PERCEEL',
mdsys.sdo_dim_array(mdsys.sdo_dim_element('X', 12000, 280000, .1),
mdsys.sdo_dim_element('Y', 304000, 620000, .1)), 28992);

create index mb_avg_koz_rechth_bag_begrenzing_perceel_idx on mb_avg_koz_rechth_bag (begrenzing_perceel) indextype is MDSYS.SPATIAL_INDEX;
create index mb_avg_koz_rechth_bag_identif on mb_avg_koz_rechth_bag (koz_identif);
create unique index mb_avg_koz_rechth_bag_objectid on mb_avg_koz_rechth_bag (objectid);
Loading

0 comments on commit 42ecd32

Please sign in to comment.