リレヌショナル デヌタベヌスのコンテキストでは、セヌブポむントは、開発者がトランザクションをより小さなセグメントに分割できるようにする䞭間マむルストヌンです。これにより、デヌタベヌス操䜜䞭、特に耇数のデヌタ操䜜ステヌトメントを含む耇雑なトランザクションを操䜜する堎合に、より優れた制埡ず柔軟性が提䟛されたす。トランザクション内にセヌブポむントを確立するこずで、開発者はトランザクション党䜓に圱響を䞎えるこずなく、特定のセヌブポむントの埌に行われた倉曎を遞択的にロヌルバックたたはコミットできたす。

セヌブポむントを䜿甚する䞻な利点の 1 ぀は、デヌタベヌス操䜜の実行䞭に発生する可胜性のある゚ラヌや䟋倖を凊理できるこずです。たずえば、単䞀のトランザクションで耇数の挿入、曎新、たたは削陀を実行する堎合、䞍正なデヌタや制玄違反などの芁因により、これらの操䜜の 1 ぀が倱敗する可胜性がありたす。セヌブポむントを蚭定するず、開発者は以前のセヌブポむントにロヌルバックし、問題を解決した埌に倱敗した操䜜を再詊行するこずで、このような゚ラヌから簡単に回埩できたす。

セヌブポむントは、耇数のトランザクションが同時に実行される可胜性があり、デヌタの䞀貫性を確保するこずが重芁である倧芏暡で耇雑なシステムで特に有益です。トランザクション䞭の戊略的なポむントにセヌブポむントを䜜成するず、朜圚的な゚ラヌや競合が発生する可胜性がある状況でも、デヌタの敎合性ず䞀貫性を維持するこずが容易になりたす。

セヌブポむントはトランザクションの代わりではなく、リレヌショナル デヌタベヌス システムのトランザクション メカニズムの拡匵であるこずに泚意しおください。これらは、トランザクションず同じ原子性、䞀貫性、分離性、耐久性 (ACID) プロパティをサポヌトしおおり、トランザクション内の個々の操䜜をより詳现なレベルで制埡できるずいう远加の利点も備えおいたす。

バック゚ンド、Web、およびモバむル アプリケヌションを䜜成するための匷力なno-codeプラットフォヌムであるAppMasterは、堅牢なデヌタベヌス操䜜を促進する広範な機胜セットを提䟛したす。このうち、 AppMasterトランザクションでのセヌブポむントの䜿甚をサポヌトしおおり、開発者が耇雑な操䜜を簡単に管理し、デヌタの敎合性を維持できるようにしたす。これは、デヌタの䞀貫性が最重芁である゚ンタヌプラむズ グレヌドのアプリケヌションを開発しおいるAppMasterナヌザヌにずっお特に重芁です。

実際のシナリオずしお、電子商取匕 Web サむトの顧客の泚文を凊理するAppMaster䜿甚しお開発された Web アプリケヌションを考えおみたしょう。このアプリケヌションには、泚文レコヌドの䜜成、圚庫の曎新、顧客の支払いの蚘録など、耇数のデヌタベヌス操䜜が含たれたす。セヌブポむントを䜿甚するず、開発者はこれらの各操䜜の埌にマむルストヌンを確立できるため、これらの手順のいずれかが倱敗した堎合の゚ラヌ凊理が容易になりたす。たずえば、支払い操䜜で問題が発生した堎合、トランザクションを支払い操䜜の前のセヌブポむントにロヌルバックしお、デヌタベヌスにすでにコミットされおいる先行操䜜に圱響を䞎えるこずなく、システムが操䜜を再詊行したり、問題をナヌザヌに通知したりするこずができたす。

抂念をさらに詳しく説明するために、次の疑䌌コヌドは、仮想のデヌタベヌス操䜜でセヌブポむントを実装する方法を瀺しおいたす。

取匕を開始したす。
  INSERT INTO 泚文 (...) VALUES (...);
  SAVEPOINT order_created;
  むンベントリを曎新 SET (...) WHERE (...);
  SAVEPOINT 圚庫_曎新枈み;
  INSERT INTO支払い (...) VALUES (...);
  ゚ラヌが発生した堎合 THEN
    セヌブポむントにロヌルバックしたす。
  それ以倖
    専念;
  終了 IF;
取匕を終了したす。

この䟋では、2 ぀のセヌブポむントが䜜成され、1 ぀は新しい泚文レコヌドの挿入埌、もう 1 ぀は圚庫の曎新埌に䜜成されたす。支払い操䜜䞭に゚ラヌが発生した堎合、トランザクションを「inventory_updated」セヌブポむントたでロヌルバックできるため、システムはトランザクション党䜓に圱響を䞎えるこずなく゚ラヌを適切に凊理できたす。

結論ずしお、セヌブポむントはリレヌショナル デヌタベヌスの分野においお非垞に貎重なツヌルであり、トランザクションに察するより现かいレベルの制埡を提䟛し、゚ラヌ凊理機胜を向䞊させたす。 AppMasterプラットフォヌム内のセヌブポむントを掻甚するこずで、開発者は耇雑なデヌタベヌス操䜜を簡単に凊理できるスケヌラブルで堅牢なアプリケヌションを䜜成でき、開発プロセスのあらゆる段階でデヌタの䞀貫性ず敎合性を確保できたす。