I mo desideri à u DBMS di u futuru, è ancu à Rosreestr in termini di transazzione

I mo desideri à u DBMS di u futuru, è ancu à Rosreestr in termini di transazzione
U cliente interagisce cù a basa di dati.
Da u situ http://corchaosis.ru, da Jonathan Tiong.

In più di u fattu chì sò un programatore (principalmente Delphi + ogni tipu di diversi DBMS, recentemente ORACLE, + un pocu PHP), aghju un hobby - cumprà è vende appartamenti. Aghju compru un appartamentu durante a fase di custruzzione da un sviluppatore più o menu affidabile à un bonu prezzu (per esempiu, avà Samolet hè un tali sviluppatore, appartamenti vicinu à a stazione di metro Nekrasovka sò in vendita), aspettate chì a casa sia consegnata (spessu dui anni dopu, questu succede cù offerte di prezzu), l'aghju rinnuvatu è poi vende per 95-100% di u so prezzu di u mercatu.

Allora, I (cum'è tutti l'altri) era affruntatu cù u prublema di a mancanza di transazzione di RosReestr.

U prublema di a mancanza di transazzione di Rosreestr

In a prugrammazione hè "Transaction", è in immubiliare hè "Transaction with Alternative" (è ancu, in parte di questu, "Safe Deposit Box Agreement"), è hè un pocu più cumplicatu. vi dicu.

Vasya ghjunse à vede l'appartamentu chì Petya vendeva. È Vasya hà veramente piaciutu tuttu, ancu u prezzu, ma Vasya ùn hà micca soldi. Hè cusì chì a nostra storia principia.

Vasya hà a so propria pruprietà, chì hà qualchi valori chì ùn sò micca particularmente necessarii per ellu - Lomonosov hà campatu in a casa vicina, l'altitudine di u tettu hè sette metri è mezu, ci hè una basa di frutta è verdura è u mercatu di Sadovod. vicinu, pudete marchjà nantu à l'Aeroexpress, sottu à l'appartamentu ci hè un sotano cù una altezza di 1 metru, ci hè un attic sopra l'appartamentu cunvene per l'osservazioni astronomiche. Vasya capisce chì queste caratteristiche aumentanu u prezzu di u so appartamentu, ma micca per ellu stessu. È decide di cumprà l'appartamentu di Petya è vende u so propiu appartamentu. Ma vende precisamente per cumprà l'appartamentu di Petya, è micca solu. In a lingua di i realtors, questu hè chjamatu "Una alternativa hè stata scelta".

Avà guardemu sta situazione da u latu di Petya. U fattu hè chì Petya ùn hè ancu interessatu à pusà nantu à a deprezzazione di soldi, vende l'appartamentu per cumprà un appartamentu in a cità elfica di Valinor, ma ùn hà micca vistu quale. In a lingua di l'attori immubiliarii, questu hè chjamatu "Affare cù una alternativa".

Dui elfi di a Terra Media, Maglor è Maedhros, anu adattatu (secunnu i criterii di Petya) immubiliare in a cità di Valinor, chì hè vindutu urgente, cum'è anu da serve à Melkor. In a lingua di i realtors, questu hè chjamatu "Venda Gratuita".

Allora, Vasya trova un cliente, Seryozha. Avà, Petya trova duie opzioni adattate per ellu in a cità di Valinor. Avemu per finisce l'accordu. Assumimu per simplicità chì nimu di i partiti di a transazzione usa una ipoteka è ùn hà micca minori cum'è pruprietarii di azioni. Cusì, e seguenti azzioni devenu avà esse realizatu:
1. Seryozha dà soldi à Petya.
2. Vasya dà u so appartamentu à Seryozha.
3. Petya dà u so appartamentu à Vasya.
4. Maglor o Maedhros trasfiriscenu u so appartamentu in Valinor à Peta è riceve i soldi di Seryozha.
5. Malkor è Maedhros vanu in Mordor per serve Melkor.

Saria l'ideale di mandà u seguente script à Rosreestr per l'esecuzione:

INIZIATE A TRANSACTION
Dà l'appartamentu di Vasya à Seryozha.
Dà l'appartamentu di Petya à Vasya.
principia
Dà l'appartamentu di Malkor à Petya
Dà i soldi di Seryozha à Malkor
IF_ERROR:
Dà l'appartamentu di Maedhros à Petya
Dà i soldi di Seryozha à Maedhros
fine
COMMIT TRANSACTION

Questu hè un script di transazzione simplificatu cù una alternativa, chì assume chì tutti l'appartamenti anu un pruprietariu adultu (è capaci), chì i so valori sò uguali, è chì i realtors (s'ellu ci hè) sò pagati indipendentemente da e tappe di a transazzione.

Tuttavia, Rosreestr ùn sustene micca a transazzione. Tutte l'azzioni seranu realizate in modu sequenziale è indipindenti, una dopu à l'altru, senza rinvià a transazzione cum'è un sanu se unu di elli falla. U massimu chì pò esse rializatu - datu chì Rosreestr è u MFC ùn viaghjanu micca cù u trasferimentu di soldi - hè di diposità i soldi in una scatula sicura, cù e cundizioni per l'accessu à questu da Vasya, Petya, Seryozha (se ùn ci hè micca transazzione). hè registratu in tuttu), è altri attori, dopu a presentazione di cuntratti registrati da Rosreestr. (E per via, i banche ùn verificanu micca indipindentamente l'autenticità di i cuntratti, vale à dì, cunfidendu l'autenticità di i documenti di i partiti di a transazzione).

In più di i risichi di cumpiimentu incomplete di a transazzione, un altru prublema hè chì, se l'altri participanti ponu spustà in a so nova casa senza aspittà per un iscrizzione cumpleta (ciao, u prublema di u pagamentu di e bollette di l'utilità!), Maglor è Maedhros ùn andaranu prestu. serve à Melkor, è forse Maglor ùn serà micca capaci di fà solu ùn averà tempu di tene i Silmarils in e so mani. E transazzioni immubiliarii sò realizati in sequenza, è l'esekzione di ogni transazzione duverà almenu 9 ghjorni di travagliu.

Inoltre, Rosreestr ùn sustene micca l'ingaghjamentu di l'abitazione chì hè custruitu sottu à u DDU, ma puderia, questu hè una azzione elementaria in relazione à un futuru simplice.

Avà andemu à i difetti è i mo desideri nantu à u DBMS

1) U primu hè a mancanza di un sistema di cuntrollu di versione. Se in u latu di Delphi, aghju sviluppatu in u mo propiu sandbox, è i cambiamenti chì facciu ùn pareranu micca à l'altri programatori finu à ch'elli sò impegnati, allora questu ùn hè micca u casu cù u DBMS. E ancu s'ellu sò cunfidatu cù piena (almenu in u scopu di ciò chì hè necessariu per u compitu assignatu à mè) accessu à a basa di dati di cummattimentu, è questu succede, ùn possu micca sviluppà nantu à questu. Mentre debugging, tuttu colapserà. Chì tipu d'età di petra hè questu??? Fate un sandbox per i sviluppatori.

2) U sicondu hè a mancanza di tavule standardizati predefiniti chì descrizanu u mondu reale. Ogni cumpagnia ch'e aghju travagliatu hà u so propiu formatu di tavula chì descrive i nomi (in russu è (almenu) inglese, in diversi casi di russu) di dodici mesi!

3) Terzu - è quì aghju aduprà a terminologia di l'Oracle - ùn ci hè micca manera di chjamà un script Insert o Update simplice chì usa Ritornu, a listessa manera chì chjamemu Select. Forsi questi ùn sò micca prublemi Oracle, ma prublemi à l'interfaccia di Delphi + Oracle.

4) Quartu - u bisognu di assignà puteri à e prucedure è e funzioni chì creanu induve ùn vogliu micca fà questu. Ùn vogliu micca stabilisce è poi cambià i permessi di l'utilizatori per i prucessi è e funzioni. Perchè, s'ellu ùn aghju micca scrittu esplicitamente Grants, ùn puderia micca u sistema stessu fighjà l'uggetti implicati, è, in cunfurmità cù i diritti di agisce cun elli, cuncede o micca certi utilizatori u dirittu di chjamà una funzione? Sò prontu à scrive una chjave per questu quandu scrive funzioni è prucedure. O, ancu megliu, lasciate chì l'utilizatore principia l'esekzione, è se u ramu di l'algoritmu u porta à una dumanda per quale l'utilizatore ùn hà micca diritti, l'hà da scaccià cù un errore.

Source: www.habr.com

Add a comment