Moje želje za DBMS prihodnosti, pa tudi za Rosreestr v smislu transakcij

Moje želje za DBMS prihodnosti, pa tudi za Rosreestr v smislu transakcij
Odjemalec komunicira z bazo podatkov.
S spletnega mesta http://corchaosis.ru, avtor Jonathan Tiong.

Poleg tega, da sem programer (predvsem Delphi + razni DBMS-ji, v zadnjem času ORACLE, + malo PHPja), imam hobi - nakup in prodaja stanovanj. Kupim stanovanje v fazi gradnje od bolj ali manj zanesljivega razvijalca po ugodni ceni (na primer, zdaj je Samolet tak razvijalec, stanovanja v bližini metro postaje Nekrasovka so naprodaj), počakam na dostavo hiše (pogosto dva leta kasneje se to zgodi pri poceni ponudbah), ga prenovim in nato prodam za 95-100 % njegove tržne cene.

Tako sem se (kot vsi ostali) soočil s problemom pomanjkanja transakcije RosReestra.

Problem pomanjkanja transakcijskih transakcij pri Rosreestru

Pri programiranju je to »Transakcija«, pri nepremičninah pa »Transakcija z alternativo« (in kot del tega tudi »Pogodba o sefu«) in je malo bolj zapleteno. povem ti.

Vasya je prišel pogledat stanovanje, ki ga je Petya prodajal. In Vasji je bilo res vse všeč, vključno s ceno, vendar Vasja nima denarja. Tako se začne naša zgodba.

Vasya ima svojo lastnino, ki ima nekaj vrednot, ki zanj niso posebej potrebne - Lomonosov je živel v sosednji hiši, višina stropa je sedem metrov in pol, tam je baza sadja in zelenjave ter tržnica Sadovod v bližini se lahko sprehodite po Aeroexpressu, pod stanovanjem je klet v višini 1 metra, nad stanovanjem je podstrešje, primerno za astronomska opazovanja. Vasya razume, da te lastnosti povečajo ceno njegovega stanovanja, vendar ne zase. In se odloči kupiti Petjino stanovanje in prodati svoje stanovanje. Toda prodaja ravno zato, da bi kupil Petjino stanovanje, in ne samo. V jeziku nepremičninskih posrednikov se temu reče »Izbrana je bila alternativa«.

Zdaj pa poglejmo to situacijo s Petjine strani. Dejstvo je, da Petya tudi ne zanima sedenje na amortiziranem denarju, stanovanje prodaja, da bi si kupil stanovanje v vilinskem mestu Valinor, vendar še ni pogledal, katero. V jeziku nepremičninskih posrednikov se temu reče »posel z alternativo«.

Dva vilina Srednjega sveta, Maglor in Maedhros, imata primerno (po Petjinih merilih) nepremičnino v mestu Valinor, ki se nujno prodaja, saj bosta služila Melkorju. V jeziku nepremičninskih posrednikov se to imenuje "brezplačna prodaja".

Torej, Vasya najde stranko, Seryozha. Zdaj Petya najde dve primerni možnosti zanj v mestu Valinor. Smo tik pred zaključkom posla. Za poenostavitev predpostavimo, da nobena od strank v transakciji ne uporablja hipoteke in nima mladoletnih lastnikov delnic. Zato je treba zdaj izvesti naslednja dejanja:
1. Seryozha daje denar Petji.
2. Vasja da svoje stanovanje Serjoži.
3. Petja da svoje stanovanje Vasji.
4. Ali Maglor ali Maedhros preneseta svoje stanovanje v Valinorju na Peto in prejmeta Seryozhin denar.
5. Malkor in Maedhros gresta v Mordor služit Melkorju.

Idealno bi bilo, da Rosreestru v izvedbo predložite naslednji skript:

ZAČNI TRANSAKCIJO
Dajte Vasjino stanovanje Serjoži.
Dajte Petjino stanovanje Vasji.
začetek
Dajte Malkorjevo stanovanje Petji
Daj Seryozhin denar Malkorju
IF_ERROR:
Dajte Maedhrosovo stanovanje Petji
Daj Seryozhin denar Maedhrosu
konec
ZAVEZI TRANSAKCIJO

To je poenostavljen transakcijski scenarij z alternativo, ki predvideva, da imajo vsa stanovanja enega polnoletnega (in sposobnega) lastnika, da so njihove vrednosti enake in da so nepremičninarji (če obstajajo) plačani ne glede na faze transakcije.

Vendar Rosreestr ne podpira transakcij. Vsa dejanja bodo izvedena zaporedno in neodvisno, eno za drugim, brez vrnitve transakcije kot celote, če eno od njih ne uspe. Največ, kar je mogoče doseči - glede na to, da Rosreestr in MFC ne delata s prenosom gotovine - je položiti denar v sef, s pogoji za dostop do njega s strani Vasje, Petje, Serjože (če ni transakcije je sploh registriran) in drugi akterji, ob predložitvi pogodb, ki jih je registriral Rosreestr. (Mimogrede, banke ne preverjajo neodvisno pristnosti pogodb, torej zaupajo pristnosti dokumentov strank v transakciji).

Poleg tveganja nepopolnega zaključka transakcije je še ena težava, da če se drugi udeleženci lahko preselijo v svoj novi dom, ne da bi čakali na popolno registracijo (pozdravljeni, vprašanje premajhnega plačila računov za komunalne storitve!), potem Maglor in Maedhros ne bosta kmalu šla k služiti Melkorju in morda Maglor ne bo mogel, preprosto ne bo imel časa držati Silmarile v rokah. Transakcije z nepremičninami se izvajajo zaporedno, izvedba posamezne transakcije pa bo trajala najmanj 9 delovnih dni.

Poleg tega Rosreestr ne podpira obremenitve stanovanj, ki se gradijo v skladu z DDU, vendar bi lahko, to je elementarni ukrep v zvezi s preprostimi terminskimi pogodbami.

Zdaj pa preidimo na pomanjkljivosti in moje želje glede DBMS

1) Prvi je pomanjkanje sistema za nadzor različic. Če na strani Delphija razvijam v lastnem peskovniku in spremembe, ki jih naredim, ne bodo vidne drugim programerjem, dokler niso predani, potem to ne velja za DBMS. In tudi če mi zaupajo popoln (vsaj v obsegu tistega, kar je potrebno za nalogo, ki mi je dodeljena) dostop do bojne baze in se to zgodi, se na njej ne morem razvijati. Medtem ko odpravljam napake, se bo vse sesulo. Kakšna kamena doba je to??? Naredite peskovnik za razvijalce.

2) Drugi je pomanjkanje vnaprej določenih standardiziranih tabel, ki bi opisovale realni svet. Vsako podjetje, v katerem sem delal, ima svoj format tabele, ki opisuje imena (v ruščini in (vsaj) angleščini, v različnih primerih ruščine) dvanajstih mesecev!

3) Tretjič - in tukaj bom uporabil terminologijo Oracle - ni mogoče poklicati preprostega skripta Insert ali Update, ki uporablja Returning, na enak način kot kličemo Select. Morda to niso težave Oracla, ampak težave na vmesniku Delphi + Oracle.

4) Četrtič - potreba po dodelitvi pooblastil postopkom in funkcijam, ki jih ustvarim, če tega ne želim narediti. Nočem nastaviti in nato spremeniti uporabniških dovoljenj za postopke in funkcije. Zakaj, če nisem izrecno napisal Grants, sistem sam ne bi mogel pogledati vpletenih objektov in v skladu s pravicami za delovanje z njimi določenim uporabnikom dodeliti ali ne pravice do klica funkcije? Za to sem pripravljen napisati eno ključno besedo, ko pišem funkcije in procedure. Ali še bolje, pustite uporabniku, da začne z izvajanjem, in če ga veja algoritma pripelje do zahteve, za katero uporabnik nima pravic, jo bo vrgel ven z napako.

Vir: www.habr.com

Dodaj komentar