将来の DBMS ず、トランザクション性の芳点からの Rosreestr に察する私の願い

将来の DBMS ず、トランザクション性の芳点からの Rosreestr に察する私の願い
クラむアントはデヌタベヌスず察話したす。
サむトから http://corchaosis.ru、ゞョナサン・ティオン著。

私はプログラマヌ (䞻に Delphi + さたざたな DBMS、最近では ORACLE、+ 少し PHP) であるこずに加えお、アパヌトの売買ずいう趣味がありたす。 私は建蚭段階で倚かれ少なかれ信頌できる開発業者からおいしい䟡栌でアパヌトを賌入したすたずえば、珟圚サモレットはそのような開発業者であり、地䞋鉄ネクラ゜フカ駅近くのアパヌトが売りに出おいたす、家の匕き枡しを埅ちたす倚くの堎合、95幎埌、安䟡なオファヌでこれが起こりたす、私はそれを修理し、その埌垂堎䟡栌の100〜XNUMXで販売したす。

そこで、私も他の皆さんず同じようにRosReestr にはトランザクション性がないずいう問題に遭遇したした。

ロスリヌストルのトランザクションのトランザクション的性質の欠劂の問題

プログラミングでは「トランザクション」、䞍動産では「代替案ずの取匕」およびその䞀郚ずしお「貞金庫契玄」があり、物事はもう少し耇雑です。 私は蚀っおいたす。

VasyaはPetyaが販売しおいるアパヌトを芋に来たした。 そしお、Vasyaは䟡栌を含めおすべおが非垞に気に入りたしたが、Vasyaにはお金がありたせん。 これが私たちの物語の始たりです。

ノァシャには自分の財産があり、それは圌にずっお特に必芁ではないいく぀かの䟡倀芳を持っおいたす - ロモノ゜フは隣の家に䜏んでいたした、倩井の高さは1メヌトルで、近くには果物の基地ずサドノォド垂堎がありたす、ア゚ロ゚クスプレスたで歩いお行けたす、アパヌトの䞋XNUMXメヌトルに地䞋宀があり、アパヌトの䞊には倩䜓芳枬に䟿利な屋根裏郚屋がありたす。 Vasya は、これらの機胜によりアパヌトの䟡栌が䞊昇するこずを理解しおいたすが、それは自分自身のためではありたせん。 そしお圌はペティアのアパヌトを賌入し、圌のアパヌトを売るこずにしたした。 しかし、ペティアのアパヌトを買うためにそれを売るだけではありたせん。 䞍動産業者の蚀葉では、これを「代替案が遞択される」ず呌びたす。

次に、この状況を Petya の偎から芋おみたしょう。 実際のずころ、ペティアも枛䟡償华費に座るこずに興味がなく、゚ルフの郜垂ノァリノヌルのアパヌトを賌入するためにアパヌトを売华しおいたすが、ただどれを探しおいたせん。 䞍動産業者の蚀葉では、これを「代替案に察凊する」ず呌びたす。

䞭぀囜の二人の゚ルフ、マグロヌルずマ゚ドロスは、ノァリノヌル垂に適切なプチの基準による䞍動産を所有しおおり、メルコヌルに仕えるために掟遣されおいるため、緊急に売华されるこずになっおいる。 䞍動産業者の蚀葉では、これを「無料販売」ず呌びたす。

そこで、ノァシャはクラむアントのセレザを芋぀けたした。 さお、ペティアはノァリノヌル垂で自分に適した遞択肢を XNUMX ぀芋぀けたした。 取匕をする぀もりです。 話を簡単にするために、取匕の参加者は誰も䜏宅ロヌンを利甚しおおらず、少数株䞻もいないず仮定したす。 したがっお、次のアクションが実行されるはずです。
1. セリョヌザはペティアにお金を枡したす。
2. ノァシャは自分のアパヌトをセリョヌザに䞎えたす。
3. ペティアは自分のアパヌトをノァシャに䞎えたす。
4. マグロルかマ゚ドロスのどちらかがノァリノヌルのアパヌトをペティアに匕き枡し、セリョヌザのお金を受け取りたす。
5. マルコヌルずマむドロスはメルコヌルに仕えるためにモルドヌルぞ行く。

次のスクリプトを Rosreestr に転送しお実行するのが理想的です。

取匕を開始する
ノァシャのアパヌトをセリョヌザに枡す。
プティのアパヌトをノァシャに枡す。
始たる
マルコのアパヌトをペティアに枡す
セリョヌザのお金をマルコに枡す
IF_゚ラヌ:
マ゚ドロスのアパヌトをペティアに枡す
セリョヌザのお金をマ゚ドロスに枡す
end
トランザクションのコミット

これは、すべおのアパヌトメントに XNUMX 人の成人 (および有胜な) 所有者がいるこず、䟡栌が等しいこず、および䞍動産業者 (存圚する堎合) が取匕の段階に関係なく支払われるこずを前提ずした、代替案を備えた簡略化された取匕スクリプトです。

ただし、Rosreestr はトランザクション性をサポヌトしおいたせん。 すべおのアクションは、いずれかが完了しおいない堎合にトランザクション党䜓をロヌルバックするこずなく、順番に独立しお実行されたす。 Rosreestr ず MFC が珟金の送金に察応しおいないこずを考慮するず、達成できる最倧限のこずは、Vasya、Petya、Serezha がアクセスできる条件付きで銀行のセルにお金を入れるこずです (取匕が登録されおいない堎合)たったく)、およびその他の関係者は、Rosreestr によっお登録された契玄曞の提瀺に応じお、 ちなみに、銀行は契玄曞の真正性を独自に怜蚌するこずはありたせん。぀たり、取匕の参加者の曞類の真正性を信頌しおいたす。

取匕が完党に完了しないリスクに加えお、別の問題は、他の参加者が完党な登録を埅たずに新しい䜏宅に入居できる堎合公共料金の過払いの問題です、その堎合、Maglor ず Maedros は、すぐにメルコヌルに仕えに行きたす、そしおおそらくマグロヌルはシルマリルを手に持぀こずができないでしょう、圌には単に時間がないでしょう。 䞍動産取匕は順次実行され、各取匕の凊理には少なくずも 9 営業日かかりたす。

さらに、ロスリヌストルは DDU に基づく建蚭䞭の䜏宅の劚害を支持しおいないが、これは単玔な先物に関連した初歩的な行為であるため支持する可胜性がある。

それでは、DBMS の欠点ず私の欲しいものリストに移りたしょう。

1) XNUMX ぀目は、バヌゞョン管理システムの欠劂です。 Delphi 偎から芋るず、私はサンドボックスで開発しおおり、私が行った倉曎はコミットされるたで他のプログラマヌには衚瀺されたせんが、DBMS ではそうではありたせん。 そしお、たずえ私が戊闘デヌタベヌスぞの (少なくずも私に割り圓おられたタスクの枠組み内で) 完党なアクセス暩を持っおいるず信頌されおいお、これが起こったずしおも、私はそれを䜿っお開発するこずはできたせん。 デバッグ䞭にすべおが厩れおしたいたす。 この石噚時代ずは䜕でしょうか 開発者向けのサンドボックスを䜜成したす。

2) XNUMX ぀目は、珟実䞖界を蚘述する暙準化されたテヌブルが事前にむンストヌルされおいないこずです。 私が働いたこずのあるすべおの䌚瀟には、XNUMX か月の名前 (ロシア語ず (少なくずも) 英語、ロシア語の堎合は異なる) を説明する独自の衚圢匏がありたす。

3) 第䞉に、ここでは Oracle の甚語を䜿甚したす。Returning を䜿甚する単玔な Insert たたは Update スクリプトを呌び出す方法 (Select を呌び出す方法) はありたせん。 おそらく、これらは Oracle の問題ではなく、Delphi + Oracle むンタヌフェむスの問題です。

4) XNUMX 番目に、䜜成したプロシヌゞャや関数に暩限を割り圓おたくない堎合に、暩限を割り圓おる必芁がありたす。 プロシヌゞャや機胜に察するナヌザヌの暩限を蚭定したり、倉曎したりしたくありたせん。 Grants を明瀺的に蚘述しなかった堎合、なぜシステム自䜓が関係するオブゞェクトを調べ、オブゞェクトを操䜜する暩利に埓っお、特定のナヌザヌに関数を呌び出す暩利を䞎えるか䞎えないかを決めるこずができなかったのでしょうか? 関数やプロシヌゞャを曞くずきに、これに関するキヌワヌドを XNUMX ぀曞く準備ができおいたす。 あるいは、さらに良いのは、ナヌザヌに実行を開始させ、アルゎリズムの分岐によっおナヌザヌが暩限を持たないリク゚ストに誘導された堎合、ナヌザヌはそのリク゚ストを゚ラヌで砎棄するこずです。

出所 habr.com

コメントを远加したす