Nire nahiak etorkizuneko DBMSrako, baita Rosreestrrentzat ere transakzionaltasunaren aldetik

Nire nahiak etorkizuneko DBMSrako, baita Rosreestrrentzat ere transakzionaltasunaren aldetik
Bezeroak datu-basearekin elkarreragiten du.
Gunetik http://corchaosis.ru, Jonathan Tiong-ek.

Programatzailea naizelaz gain (gehienetan Delphi + mota guztietako DBMS, duela gutxi ORACLE, + PHP apur bat), zaletasun bat dut: apartamentuak erostea eta saltzea. Eraikuntza fasean apartamentu bat erosten diot sustatzaile fidagarri edo fidagarri bati prezio gozoan (adibidez, orain Samolet halako sustatzailea da, Nekrasovka metro geltokitik gertu dauden apartamentuak salgai daude), etxea entregatu arte itxaroten dut. (askotan bi urte geroago, eskaintza merkeekin gertatzen da hori), konponketan egiten dut eta gero merkatuko prezioaren % 95-100ean saltzen dut.

Beraz, (besteek bezala) RosReestr-en transakziotasun faltaren arazoarekin topo egin nuen.

Rosreestr-en transakzioen izaera transakzional faltaren arazoa

"Transakzioa" programazioan eta higiezinetan "Alternatiba jorratu" da (eta baita, horren barruan, "Deposit box agreement"), eta hor gauzak pixka bat konplikatuagoak dira. esaten ari naiz.

Vasya Petya saltzen ari den apartamentua ikustera etorri zen. Eta Vasyari dena asko gustatu zitzaion, prezioa barne, baina Vasyak ez du dirurik. Horrela hasten da gure istorioa.

Vasyak bere jabetza du, eta horrek beretzat beharrezkoak ez diren balio batzuk ditu - Lomonosov aldameneko etxe batean bizi zen, sabaiaren altuera zazpi metro eta erdikoa da, fruta oinarri bat dago eta Sadovod merkatua inguruan. , Aeroexpress-era oinez egin dezakezu, 1 metroko apartamentuaren azpian soto bat dago, apartamentuaren gainean behaketa astronomikoetarako erosoa den ganbara dago. Vasyak ulertzen du ezaugarri horiek bere apartamentuaren prezioa handitzen dutela, baina ez beretzat. Eta Petyaren apartamentua erostea erabakitzen du, eta bere apartamentua saltzea. Baina saltzea Petyaren apartamentua erosteko, eta ez bakarrik. Inmobiliarioen hizkuntzan, hau deitzen da - "Alternatiba hautatzen da".

Orain ikus dezagun egoera hau Petyaren aldetik. Kontua da Petyari ere ez zaiola interesatzen dirua amortizatzen esertzea, apartamentu bat saltzen ari da Valinor hiri elfoko apartamentu bat erosteko, baina oraindik ez du aztertu zein den. Inmobiliarioen hizkuntzan, hau deitzen da - "Alternatiba bati aurre egin".

Erdiko Lurraren bi iratxo, Maglor eta Maedhros, ondasun higiezin egokiak dituzte (Petit-en irizpideak) Valinor hirian, premiazkoa saltzen dena, Melkor zerbitzatzera bidaltzen baitituzte. Inmobiliarioen hizkuntzan, hau deitzen da - "Doako salmenta".

Beraz, Vasyak Serezha bezero bat aurkitzen du. Orain, Petya-k bi aukera egoki aurkitzen ditu Valinor hirian. Akordio bat egingo dugu. Demagun, sinpletasunerako, transakzioaren parte-hartzaileetako inork ez duela hipotekarik erabiltzen eta ez duela akzioen jabe txikirik. Beraz, orain ekintza hauek egin beharko lirateke:
1. Seryozha-k dirua ematen dio Petya-ri.
2. Vasiak bere apartamentua ematen dio Seryozha-ri.
3. Petiak bere apartamentua Vasiari ematen dio.
4. Edo Maglor-ek edo Maedhros-ek Petya-ren esku utzi eta Seryozha-ren dirua jasoko dute.
5. Malkor eta Maedhros Mordorra doaz Melkor zerbitzatzera.

Ideala litzateke script hau Rosreestr-era transferitzea exekutatzeko:

HASI TRANSAKZIOA
Eman Vasyaren apartamentua Seryozha-ri.
Eman Petit-en apartamentua Vasyari.
hasiko
Eman Malkorren apartamentua Petya-ri
Eman Seryozharen dirua Malkorri
IF_ERROR:
Eman Maedhrosen apartamentua Petya-ri
Eman Seryozharen dirua Maedhros-i
amaiera
KOMETITU TRANSAKZIOA

Hau transakzio script sinplifikatu bat da, alternatiba batekin, apartamentu guztiek jabe heldu bat (eta gai) dutela, prezioak berdinak direla eta higiezinen agenteak (baldin bada) ordaintzen direla transakzioaren faseak edozein izanda ere.

Hala ere, Rosreestrrek ez du transakzionaltasuna onartzen. Ekintza guztiak sekuentzialki eta modu independentean egingo dira, bata bestearen atzetik, transakzioa osorik atzera bota gabe, horietako bat burutu ez bada. Lor daitekeen maximoa - Rosreestr-ek eta MFC-k ez dutela funtzionatzen eskudiruaren transferentziarekin - dirua banku-zelula batean sartzea da, Vasya, Petya, Serezha-k haietara sartzeko baldintzekin (transakziorik erregistratzen ez bada). guztietan), eta beste eragile batzuek, Rosreestr-ek erregistratutako hitzarmenak aurkeztuta. (Eta bide batez, bankuek ez dute modu independentean egiaztatzen kontratuen benetakotasuna, hau da, transakzioko parte-hartzaileen paperen benetakotasunaz fidatzen dira).

Transakzioa osorik ez osatzeko arriskuez gain, beste arazo bat da beste parte-hartzaile batzuk beren etxebizitza berrira mugi daitezkeela erregistratze osoa itxaron gabe (kaixo, zerbitzu-fakturak ordaintzeko kontua!), Maglor eta Maedhros-ek ez dutela egingo. laster joan zaitez Melkor zerbitzatzera, eta agian Maglor-ek ezin izango ditu Silmaril-ak bere eskuetan eduki, besterik gabe, ez du astirik izango. Higiezinen eragiketak sekuentzialki gauzatzen dira, eta transakzio bakoitzaren prozesamenduak gutxienez 9 lanegun beharko ditu.

Horrez gain, Rosreestr-ek ez du onartzen DDUren arabera eraikitzen ari diren etxebizitzen zama, baina baliteke, etorkizun soil bati dagokionez oinarrizko ekintza bat da.

Orain joan gaitezen DBMSri buruzko gabezietara eta nire nahien zerrendara

1) Lehenengoa bertsioak kontrolatzeko sistemarik ez izatea da. Delphi aldetik nire sandbox-ean garatzen ari banaiz, eta egin ditudan aldaketak beste programatzaileei konprometitu arte agertuko ez bazaizkizu, orduan ez da horrela DBMS-ekin. Eta borroka datu-baserako sarbide osoa (esleitutako zereginaren barruan behintzat) konfiantza badut ere, eta hori gertatzen bada, ezin dut bertan garatu. Arazketa egiten ari naizen bitartean, dena eroriko da. Zer da harri aro hau? Egin harea-kutxa bat garatzaileentzako.

2) Bigarrena mundu erreala deskribatzen duten aurrez instalatutako taula estandarizatuen falta da. Lan egin dudan enpresa bakoitzak bere taula formatua du, hamabi hilabeteko izenak (errusieraz eta (gutxienez) ingelesez, errusieraz kasu ezberdinetan) deskribatzen dituena!

3) Hirugarrena -eta hemen Oracleko terminologia erabiliko dut-, ez dago Itzultzea erabiltzen duen Insert edo Eguneratu script soil bati deitzeko modurik, Hautatu deitzen dugun moduan. Agian hauek ez dira Oracle arazoak, Delphi + Oracle interfazeko arazoak baizik.

4) Laugarrena, nik sortzen ditudan prozedurei eta eginkizunei eskumenak esleitu beharra, hori egin nahi ez dudan tokietan. Ez ditut ezarri nahi, eta gero aldatu, erabiltzailearen baimenak prozedura eta funtzioetarako. Zergatik, diru-laguntzak esplizituki idatzi ez baditut, sistemak berak aztertu ahal izango lituzke inplikatutako objektuak, eta, haiekin jarduteko eskubideen arabera, erabiltzaile jakin batzuei funtzioari deitzeko eskubidea eman edo ez? Funtzioak eta prozedurak idaztean horretarako gako-hitz bat idazteko prest nago. Edo, are hobeto, erabiltzailea exekutatzen has dadila, eta algoritmo-adarrak erabiltzaileak eskubiderik ez duen eskaera batera eramaten badu, akats batekin botako du.

Iturria: www.habr.com

Gehitu iruzkin berria