Minu soovid tuleviku DBMS-ile, aga ka Rosreestrile tehingulisuse osas

Minu soovid tuleviku DBMS-ile, aga ka Rosreestrile tehingulisuse osas
Klient suhtleb andmebaasiga.
Saidilt http://corchaosis.ru, autor Jonathan Tiong.

Lisaks sellele, et olen programmeerija (peamiselt Delphi + igasugused erinevad DBMS-id, viimasel ajal ORACLE, + natuke PHP), on mul hobi - korterite ost-müük. Ostan ehitusjärgus korteri enam-vähem usaldusväärselt arendajalt hea hinnaga (nt praegu on Samolet selline arendaja, Nekrasovka metroojaama lähedal on korterid müügis), ootan maja üleandmist (sageli kaks aastaid hiljem juhtub see odavate pakkumistega), renoveerin selle ja siis müün 95-100% turuhinnast.

Niisiis seisin (nagu kõik teised) silmitsi RosReestri tehingute puudumise probleemiga.

Rosreestri tehingutehingute puudumise probleem

Programmeerimisel on see "Tehing" ja kinnisvara puhul "Tehing alternatiiviga" (ja ka selle osana "Seifi leping") ja see on veidi keerulisem. Ma ütlen sulle.

Vasja tuli vaatama korterit, mida Petja müüs. Ja Vasjale meeldis väga kõik, ka hind, aga Vasjal pole raha. Nii algab meie lugu.

Vasjal on oma kinnistu, millel on teatud väärtused, mis tema jaoks eriti vajalikud pole - Lomonossov elas naabermajas, lae kõrgus on seitse ja pool meetrit, seal on puu- ja juurviljabaas ning Sadovodi turg läheduses saab jalutada Aeroexpressiga, korteri all on kelder kõrgusega 1 meeter, korteri kohal on pööning mugav astronoomilisteks vaatlusteks. Vasja mõistab, et need omadused tõstavad tema korteri hinda, kuid mitte tema enda jaoks. Ja ta otsustab osta Petya korteri ja müüa oma korteri. Kuid müüa just selleks, et osta Petya korter, ja mitte ainult. Vahendajate keeles nimetatakse seda "alternatiiv on valitud".

Vaatame nüüd seda olukorda Petya poolelt. Fakt on see, et Petjat ei huvita ka amortiseerunud raha peal istumine, ta müüb korterit selleks, et osta endale korter päkapikulinnas Valinoris, kuid ta pole veel vaadanud, millise. Kinnisvaramaaklerite keeles nimetatakse seda "Tehke alternatiiviga".

Kahel Keskmaa päkapikul, Magloril ja Maedhrosel, on Valinori linnas sobiv (Petya kriteeriumide järgi) kinnisvara, mis müüakse kiiresti maha, kuna hakkavad Melkori teenindama. Vahendajate keeles nimetatakse seda "tasuta müügiks".

Niisiis, Vasya leiab kliendi Seryozha. Nüüd leiab Petya Valinori linnast talle kaks sobivat varianti. Lõpetame tehingu. Oletame lihtsuse mõttes, et ükski tehingupool ei kasuta hüpoteeki ja tema osanikeks ei ole alaealisi. Seega tuleb nüüd teha järgmised toimingud:
1. Serjoža annab Petjale raha.
2. Vasja annab oma korteri Serjožale.
3. Petja annab oma korteri Vasjale.
4. Maglor või Maedhros annavad oma korteri Valinoris üle Petale ja saavad Seryozha raha.
5. Malkor ja Maedhros lähevad Mordorisse Melkorit teenima.

Ideaalne oleks esitada Rosreestrile täitmiseks järgmine skript:

ALUSTAGE TEHINGU
Andke Vasja korter Serjožale.
Andke Petya korter Vasjale.
alustama
Andke Malkori korter Petyale
Andke Seryozha raha Malkorile
IF_ERROR:
Andke Maedhrose korter Petyale
Andke Seryozha raha Maedhrosele
lõpp
TEHINGU TEHA

Tegemist on alternatiiviga lihtsustatud tehinguskriptiga, mis eeldab, et kõigil korteritel on üks täisealine (ja teovõimeline) omanik, nende väärtused on võrdsed ning kinnisvaramaakleritele (kui neid on) makstakse tasu olenemata tehingu etappidest.

Rosreestr aga tehingulisust ei toeta. Kõik toimingud tehakse järjestikku ja iseseisvalt, üksteise järel, ilma tehingut tervikuna tagasi võtmata, kui üks neist ebaõnnestub. Maksimaalne, mida on võimalik saavutada – arvestades, et Rosreestr ja MFC ei tööta sularaha ülekandmisega – on raha hoiustamine seifi koos tingimustega Vasya, Petya, Seryozha juurdepääsuks (kui tehingut ei tehta). on üldse registreeritud) ja teised näitlejad Rosreestr registreeritud lepingute esitamisel. (Ja muide, pangad ei kontrolli iseseisvalt lepingute õigsust, st usaldavad tehingu osapoolte paberite ehtsust).

Lisaks tehingu mittetäieliku lõpuleviimise riskidele on probleemiks veel see, et kui teised osalejad saavad oma uude koju kolida ilma täielikku registreerimist ootamata (tere, kommunaalmaksete alamaksmise küsimus!), siis Maglor ja Maedhros niipea ei lähe teenima Melkorit ja võib-olla ei saa Maglor lihtsalt aega silmarile käes hoida. Kinnisvaratehingud tehakse järjestikku ning iga tehingu teostamine võtab aega vähemalt 9 tööpäeva.

Lisaks ei toeta Rosreestr DDU raames ehitatavate elamute koormamist, kuid võiks, see on lihtsa futuuri suhtes elementaarne tegevus.

Liigume nüüd edasi puuduste ja minu soovide juurde DBMS-i kohta

1) Esimene on versioonikontrollisüsteemi puudumine. Kui Delphi poolel arendan ma oma liivakastis ja minu tehtud muudatused ei ilmu teistele programmeerijatele enne, kui need on pühendunud, siis DBMS-i puhul see nii ei ole. Ja isegi kui mulle usaldatakse täielik (vähemalt mulle antud ülesande täitmiseks vajaliku piires) juurdepääs lahinguandmebaasile ja see juhtub, ei saa ma seda edasi arendada. Sel ajal kui ma silun, kukub kõik kokku. Mis kiviaeg see selline on??? Tehke arendajatele liivakast.

2) Teine on reaalset maailma kirjeldavate eeldefineeritud standardsete tabelite puudumine. Igal ettevõttel, kus olen töötanud, on oma tabelivorming, mis kirjeldab kaheteistkümne kuu nimesid (vene ja (vähemalt) inglise keeles, erinevatel juhtudel vene keeles).

3) Kolmandaks – ja siin ma kasutan Oracle’i terminoloogiat – ei saa kuidagi kutsuda lihtsat sisestus- või värskendusskripti, mis kasutab tagastamist, samamoodi nagu me kutsume valikut Select. Võib-olla pole need Oracle'i probleemid, vaid Delphi + Oracle'i liidese probleemid.

4) Neljandaks – vajadus määrata oma loodud protseduuridele ja funktsioonidele volitused seal, kus ma seda teha ei taha. Ma ei taha määrata ja seejärel muuta protseduuride ja funktsioonide kasutajaõigusi. Miks, kui ma ei kirjutanud sõnaselgelt toetusi, ei saanud süsteem ise vaadelda seotud objekte ja vastavalt nendega tegutsemise õigusele anda teatud kasutajatele funktsiooni kutsumise õigust või mitte? Olen valmis funktsioonide ja protseduuride kirjutamisel kirjutama selle jaoks ühe märksõna. Või veel parem – lasta kasutajal käivitada täitmine ja kui algoritmi haru viib ta päringuni, milleks kasutajal õigusi pole, viskab ta selle veaga välja.

Allikas: www.habr.com

Lisa kommentaar