دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۳۱
  • فروردین

جلسه ۱۷ : آموزش کار با Transactions در تی اس کیو ال

  • دسته‌بندی‌ها :
جلسه ۱۷ : آموزش کار با Transactions در تی اس کیو ال
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      با سلام خدمت کاربران گرامی سایت پی وی لرن و کاربرانی که علاقمند به یادگیری دوره آموزش تی اس کیو ال T-SQL هستند. در جلسه گذشته با Stored Procedures آشنا شدیم و کاربرد های آن را در تی اس کیو ال مشاهده کردیم و دانستیم که از MS SQL Server Stored procedure برای ذخیره کردن زمان هنگام نوشتن کدها در پایگاه داده استفاده می شود و علاوه بر این  Stored procedure به دریافت خروجی هنگام عبور پارامترها کمک می کند. در این جلسه آموزش کار با Transactions در تی اس کیو ال را به شما ارائه می نماییم.

      آموزش کار با Transactions در تی اس کیو ال

      در ابتدای  آموزش کار با Transactions در تی اس کیو ال باید گفت که Transactions یک واحد کار است که در برابر یک پایگاه داده صورت می گیرد.
      به عبارت دیگر Transactions یک واحد یا دنباله ای از کار است که به ترتیب منطقی انجام می شود.
      این واحد یا دنباله کاری می تواند به صورت دستی و توسط کاربر انجام شود و یا به  صورت خودکار توسط یک برنامه پایگاه داده.

      transaction یک نوع تراکنش برای ایجاد یک یا چند تغییر در پایگاه داده است.
      برای مثال وقتی رکوردی را از یک table می سازید یا حذف می کنید و یا به روز رسانی می نمایید در حال انجام transaction در آن table هستید.
      کنترل transaction برای اطمینان از درستی داده ها و رسیدگی به خطاهای پایگاه داده ضروری است.
      عملاً بسیاری از SQL queries در یک گروه جمع می شوند و می توانید همه آن ها را به عنوان بخشی از transaction اجرا نمایید.
      در  آموزش کار با Transactions در تی اس کیو ال با انواع Transactions ها و دستورها آشنا خواهید شد.

      ویژگی های transaction

      transaction دارای چهار ویژگی زیر هستند که معمولا با اختصار ACID نامیده می شوند :

      • Atomicity – اطمینان حاصل می کند که تمام عملیات درون یک واحد کاری با موفقیت انجام می شود.
        در غیر این صورت، transaction در نقطه شکست انجام می شود و عملیات قبلی به حالت پیشین خود بازگرد می گردد.
      • Consistency − اطمینان حاصل می کند که پایگاه داده به درستی در یک transaction صورت می پذیرد.
      • Isolation − امکان انجام transaction ها را به طور مستقل و شفاف فراهم می کند.
      • Durability − اطمینان حاصل می کند که نتیجه یا اثر یک transactions در صورت خرابی سیستم ادامه می یابد.

      کنترل transactions

      از دستورات زیر برای کنترل transaction استفاده می شود :

      • COMMIT − برای ذخیره تغییرات استفاده می شود.
      • ROLLBACK − برای بازگرداندن تغییرات مورد استفاده می گردد.
      • SAVEPOINT − ایجاد نقاط درون گروهی transaction در ROLLBACK.
      • SET TRANSACTION − یک نام را در یک transaction قرار می دهد.

      دستور کنترل Transactional فقط با دستورهای  INSERT, UPDATE و DELETE استفاده می شود.
      این دستورها نمی توانند هنگام ایجاد table ها یا حذف آنها استفاده شوند زیرا این عملیات به طور خودکار در پایگاه داده انجام می شود.
      به منظور استفاده از دستور کنترل transactional در MS SQL Server باید transaction را با ‘begin tran’ آغاز کرد.
      در غیر این صورت دستور transaction کار نخواهد کرد.

      دستور COMMIT

      دستور COMMIT  یک دستور transactional است.
      از این دستور برای ذخیره تغییراتی که توسط transaction در پایگاه داده صورت می گیرد استفاده می گردد.
      این دستور پس از آخرین دستور COMMIT یا ROLLBACK تمام transaction ها را در پایگاه داده ذخیره می کند.

      Syntax

      در زیر می توانید سینتکس  اصلی COMMIT command را مشاهده نمایید.

      مثال : 

      مثال

      CUSTOMERS table زیر را با رکوردهای زیر در نظر بگیرید :

      مثال : 

      دستور زیر رکوردهایی را که در آن سن افراد ۲۵ سال در نظر گرفته شده را از table حذف می کند.
      پس از حذف رکوردها COMMIT در پایگاه داده تغییر خواهد کرد.

      مثال : 

      در نتیجه به دست آمده ردیف های table حذف می شوند و SELECT statement خروجی زیر را ایجاد خواهد نمود.

      مثال : 

      دستور ROLLBACK

      دستور ROLLBACK یک دستور transactional است.
      این دستور ذخیره داده هایی را که در حال حاضر در پایگاه داده ذخیره نشده اند کنسل می کند.
      این دستور تنها می تواند transactions هایی از زمان آخرین COMMIT یا ROLLBACK را لغو نماید.

      Syntax

      در زیر می توانید سینتکس  اصلی ROLLBACK command را مشاهده نمایید.

      مثال : 

      مثال

      CUSTOMERS table زیر را با رکوردهای زیر در نظر بگیرید :

      مثال : 

      در نتیجه به دست آمده ردیف های table حذف می شوند و SELECT statement خروجی زیر را ایجاد خواهد نمود.

      مثال : 

      دستور SAVEPOINT

      SAVEPOINT یک نقطه در یک transaction است.
      از SAVEPOINT هنگام roll کردن یک transaction بدون rolling back شدن آن استفاده می شود.

      Syntax

      در زیر می توانید سینتکس  اصلی SAVEPOINT command را مشاهده نمایید.

      مثال : 

      از این دستور فقط هنگام ساخت SAVEPOINT  در میان transactional statements استفاده می گردد.
      از  دستور ROLLBACK برای لغو گروهی از transaction ها استفاده می شود.

      در ادامه می توانید سینتکس SAVEPOINT را ببینید.

      مثال : 

      در مثال زیر، ما سه رکورد مختلف را از جدول CUSTOMERS table حذف خواهیم کرد.
      قبل از هر حذف باید یک SAVEPOINT ایجاد کنیم تا بتوانیم در هر زمانی هر SAVEPOINT  را ROLLBACK نموده و اطلاعات عملیات را بازگردانی نماییم.

      مثال

      CUSTOMERS table زیر را با رکوردهای زیر در نظر بگیرید :

      مثال : 

      در ادامه می توانید باقی عملیات را مشاهده نمایید.

      مثال : 

      با این که سه مورد حذف شده اند با این حال اقدام به ROLLBACK کردن SAVEPOINT که به عنوان SP2 شناسایی شده است می کنیم.
      از ان جا که SP2 پس از حذف اول ایجاد شد، دو حذف آخر لغو می شوند.

      مثال : 

      توجه داشته باشید که پس از حذف اول  دوباره به SP2 رول می شویم.

      مثال : 

      ۶ ردیف انتخاب می شوند.

      مثال : 

      دستور SET TRANSACTION

      از دستور SET TRANSACTION برای ایجاد یک transaction در پایگاه داده استفاده می شود.
      این دستور برای مشخص کردن ویژگی های transaction که به دنبال آن هستیم، استفاده می شود.

      Syntax

      در زیر می توانید سینتکس  اصلیSET TRANSACTION را مشاهده نمایید.

      مثال : 

      کلام آخر

      در این جلسه  آموزش کار با Transactions در تی اس کیو ال را ارائه کردیم.
      در جلسه بعد با آموزش Indexes در T-SQL همراه شما هستیم.
      با پی وی لرن همراه باشید.

      QR:  جلسه ۱۷ : آموزش کار با Transactions در تی اس کیو ال
      به اشتراک بگذارید