
Az ügyfél kapcsolatba lép az adatbázissal.
A weboldalról , a festmény szerzője Jonathan Tiong.
Amellett, hogy programozó vagyok (főként Delphi + különféle DBMS, mostanában ORACLE, + kicsit PHP), van egy hobbim – lakások vásárlása és eladása. Lakást vásárolok a kivitelezőnél az építkezés fázisában jónak tűnő áron (például a mostani kivitelező a Samoljot, lakások kaphatók a m. Nyekraszovkához közel), várom az épület átadását (gyakran két évvel később, olcsó ajánlatok esetén ez megtörténik), átalakítom, majd eladom a piaci ár 95-100%-áért.
Nos, én (mint mindenki) szembesültem azzal a problémával, hogy a Roszrejesztornak nincs tranzakcionális lehetősége.
A Roszrejesztor tranzakcionális lehetőségeinek hiánya
A programozásban a 'Tranzakció', ingatlan esetén pedig a 'Alternatív ügylet' (valamint ennek részeként a 'Banki széf szerződés'), és ott minden kicsit bonyolultabb. Elmondom.
Vaszja elment egy lakás megtekintésére, amit Petyá árul. Vaszjának minden nagyon tetszett, köztük az ár is, de Vaszjának nincs pénze. Itt kezdődik a történet.
Vaszjának van egy ingatlanja, amelynek van néhány, nem igazán szükséges értéke – a szomszédos házban Lomonoszov élt, a plafon magassága hét és fél méter, közel van a gyümölcs- és zöldségpiac, sétálva is elérhető az Aeroexpressz, a lakás alatt egy 1 méter magas pince van, a lakás felett pedig egy padlás található, amely kényelmes csillagászati megfigyelésekhez. Vaszja megérti, hogy ezek a jellemzők növelik a lakásának az árát, de nem számára. Úgy dönt, hogy megveszi Petya lakását, a sajátját pedig eladja. De eladni éppen azért, hogy meg tudja venni Petya lakását, és nem csak úgy. Az ingatlanszakmában ezt 'Az alternatíva kiválasztva' néven emlegetik.
Most nézzük ezt a helyzetet Petya szemszögéből. A dolog az, hogy Petya számára sem érdekes ülni az értéktelenedő pénzen, ő is eladja a lakását, hogy vásároljon magának egy lakást az elf városában, Valinorban, de hogy pontosan melyiket – azt még nem nézte meg. Az ingatlanszakmában ezt 'Alternatív ügyletnek' hívják.
Két középföldi elf, Maglor és Maedros, megfelelő ingatlannal rendelkezik Valinor városában, amelyet sürgősen eladnak, mert Málkor szolgálatába állnak. A médiában ezt 'Szabad értékesítésnek' hívják.
Tehát Vasya találkozik az ügyféllel, Seryozhával. Most Petya két megfelelő lehetőséget talál Valinor városában. Kész vagyunk a tranzakció megkötésére. Tegyük fel egyszerűsítésként, hogy a tranzakció résztvevői közül senki sem veszi igénybe a jelzáloghiteleket, és nincsenek kiskorú társ-tulajdonosok. Így most a következő lépéseket kell végrehajtani:
1. Seryozha átadja a pénzt Petynak.
2. Vasya átadja a lakását Seryozhának.
3. Petya átadja a lakását Vasyanak.
4. Vagy Maglor, vagy Maedros átadja lakását Valinorban Petynak, és megkapja Seryozha pénzét.
5. Malcor és Maedros elindul Mordorba Málkor szolgálatába.
Ideális esetben a következő scriptet kellene benyújtani az Orosz Állami Nyilvántartónak:
START TRANSACTION
Vasya lakását Seryozhának kell átadni.
Petya lakását Vasynak kell átadni.
begin
Malcor lakását Petynak kell átadni.
Seryozha pénzét Malcornak kell átadni.
HA_HIBA:
Maedros lakását Petynak kell átadni.
Seryozha pénzét Maedrosnak kell átadni.
end
COMMIT TRANSACTION
Ez egy egyszerűsített tranzakciós script alternatívával, amely feltételezi, hogy minden lakásnak egy felnőtt (és cselekvőképes) tulajdonosa van, hogy az értékük egyenlő, és hogy az ingatlanügynökök díjai (ha vannak) a tranzakció szakaszaitól függetlenül kerülnek kifizetésre.
Mindazonáltal az Orosz Állami Nyilvántartó nem támogatja a tranzakciós jellegű ügyintézést. Minden lépést egymás után, függetlenül hajtanak végre, és ha egyet nem teljesítenek, akkor az egész tranzakció nem vonható vissza. A maximum, amit elérhetünk - figyelembe véve, hogy az Orosz Állami Nyilvántartó és az MFC nem dolgozik készpénzes tranzakciókkal - hogy a pénzt egy banki sejthez zárják, ahol Vasya, Petya, Seryozha (ha egyáltalán nem regisztráltak tranzakciót) és más jogosult személyek férhetnek hozzá a regisztrált szerződéseik bemutatásakor. (És mellesleg, a bankok maguk nem végeznek szerződés-érvényességi ellenőrzést, tehát bíznak a tranzakció résztvevői által bemutatott dokumentumok hitelességében.)
A tranzakciók teljesítésének kockázatai mellett egy másik probléma, hogy ha más résztvevők a teljes ügyintézés megvárása nélkül költözhetnek új lakásukba (helló, a szolgáltatási díjak alulfizetésének kérdése!), akkor Maglor és Maedhros nem fognak hamarosan Melkor szolgálatába állni, és lehet, hogy Maglor nem tudja majd a kezében tartani a silmarillokat, mert egyszerűen nem lesz ideje. Az ingatlanügylet folyamata lépésről lépésre történik, és minden egyes ügylet ügyintézése legalább 9 munkanapot fog igénybe venni.
Ezen kívül a Roszrejeszt nem támogatja az épülő lakások terhei alá helyezését a DDU keretén belül, pedig ezt könnyen meg lehetne tenni egy egyszerű határidős ügylettel.
Most térjünk át a hátrányokra és az adatbázis kezelő rendszerekkel kapcsolatos elvárásaimra.
1) Első — a verziókezelő rendszer hiánya. Míg Delphi oldaláról a saját homokozómban fejlesztek, és a módosításaim nem jelennek meg más programozóknál a commit előtt, addig ez nem így van az adatbázisokkal. Még ha teljes (legalább a számomra szükséges feladatok keretein belül) hozzáférésem van is a produkciós adatbázishoz, ami előfordulhat, nem tudok rajta fejleszteni. Amíg hibakeresek, minden összeomlik. Miféle kőkorszak ez??? Készítsetek homokozót a fejlesztőknek.
2) Második — a valós világot leíró előre telepített szabványosított táblák hiánya. Minden cégnél, ahol dolgoztam, saját formátumú táblázat volt, amely a tizenkét hónap nevét (oroszul és (legalább) angol nyelven, az orosz nyelv különböző esetében) írta le!
3) Harmadik — és itt az Oracle terminológiáját fogom használni — hiányzik a lehetőség egyszerű Insert vagy Update script futtatására, amely Returning-t használ, ahogy a Select-t hívjuk. Lehet, hogy ez nem az Oracle problémája, hanem a Delphi és az Oracle közötti kapcsolódás problémája.
4) Negyedik — szükség van a számomra létrehozott eljárásoknak és funkcióknak azoknak a jogosultságoknak a megadására, ahol én ezt nem akarom megtenni. Nem akarom beállítani, majd később módosítani a felhasználók jogosultságait az eljárásokhoz és funkciókhoz. Miért, ha én kifejezetten nem írtam Grant-ot, a rendszer miért ne nézhetné meg a felhasználható objektumokat, és az azokon végzett műveletek jogosultságai alapján adhatná meg vagy tagadhatná meg egyes felhasználóknak a funkciók hívásához szükséges jogokat? Készen állok arra, hogy ehhez egy kulcsszót írjak az eljárások és funkciók megírása során. Vagy, még jobb, ha a felhasználó elkezdi a végrehajtást, és ha az algoritmus ága olyan kérdéshez vezet, amelyhez a felhasználónak nincs joga, akkor hibával kilép.
Forrás: habr.com
