بحث ای که میخواهم شروع کنم بحت مولتی یوزر یا چند کاربری است اینجا فقط یه سر نخ به دوستان میدهیم انشاءالله خودشان بقیه موارد را پی گیری میکنند
فرض کنید یه چند کاربر همزمان مشغول ورود اطلاعات همزمان در یک سیستم هستند و در هر فرم دو اتفاق میافتد
1- به ازای رکورد جدید سریال یکتا تولید و نمایش داده میشود
2- اگر بعضی برخی از فلیدها تکراری بود رکورد ذخیره نمیشود
سئوال اساسی اینجاست اگر دو کاربر همزمان رکوردی را ذخیره کنند که سابقه قبلی ندارد اما برای هم دیگر تکراری اند چگونه باید کنترل شود !
جواب : جدول مربوطه را به ازای اولین عمل اولین کاربر قفل میکنیم تا کارش کامل تموم نشود قفل را بر نمیداریم پس کاربران بعدی توی صف میمانند تا یکی یکی کارشان انجام شود
صرف نظر از برخی جزئیات فرض دیگری میکنیم
در یک سیستم فروش کاربری مشغول لیست گیری است در همین حین کاربر دیگری مقدار ریالی رکوردی را اصلاح میکند ولی عمل لیست گیری این رکورد را مورد محاسبه قرار داده است نتیجه مغایرت لیست و مقدار واقعی در دیتا بیس است
این سناریو ها که محدود به دوتا مورد بالا نیست بحثی را در دیتا بیس ها مطرح میکند بنام ترانزاکشن قدرت دیتا بیس ها در همینمدیریت ترانزاکشن نهفته است و این همان چیزی است که اس کیوال سرور را از اوراکل و اوراکل را از اکسس مجزا میکند فعلا قویترین اینها اوراکل هست
تعریف علمی
ترانزاکشن سلسله مراتبی از عملیات است که در یک واحد منطقی بروی دیتایس اعمال میشود بطوریکه پس از اتمام دیتابیس همچنان دارای چهار خاصیت زیر باشد
ACID (Atomicity, Consistency, Isolation, and Durability)
1- اتمیسیتی یعنی یادر مورد همه اطلاعات اجرا شود یا هیچ کدام
2- پس از اتمام دیتا بیس در حالت سازگاری بماند
3- تغیرات همزمان بروری مجموعه ای از رکورد ها باید مجزا از هم باشد
4- پس از اتمام یک ترانزاکشن تغییرات بایستی روی سیستم ماندگار باشد
ایا این بحث ادامه پیدا کند ؟
فرض کنید یه چند کاربر همزمان مشغول ورود اطلاعات همزمان در یک سیستم هستند و در هر فرم دو اتفاق میافتد
1- به ازای رکورد جدید سریال یکتا تولید و نمایش داده میشود
2- اگر بعضی برخی از فلیدها تکراری بود رکورد ذخیره نمیشود
سئوال اساسی اینجاست اگر دو کاربر همزمان رکوردی را ذخیره کنند که سابقه قبلی ندارد اما برای هم دیگر تکراری اند چگونه باید کنترل شود !
جواب : جدول مربوطه را به ازای اولین عمل اولین کاربر قفل میکنیم تا کارش کامل تموم نشود قفل را بر نمیداریم پس کاربران بعدی توی صف میمانند تا یکی یکی کارشان انجام شود
صرف نظر از برخی جزئیات فرض دیگری میکنیم
در یک سیستم فروش کاربری مشغول لیست گیری است در همین حین کاربر دیگری مقدار ریالی رکوردی را اصلاح میکند ولی عمل لیست گیری این رکورد را مورد محاسبه قرار داده است نتیجه مغایرت لیست و مقدار واقعی در دیتا بیس است
این سناریو ها که محدود به دوتا مورد بالا نیست بحثی را در دیتا بیس ها مطرح میکند بنام ترانزاکشن قدرت دیتا بیس ها در همینمدیریت ترانزاکشن نهفته است و این همان چیزی است که اس کیوال سرور را از اوراکل و اوراکل را از اکسس مجزا میکند فعلا قویترین اینها اوراکل هست
تعریف علمی
ترانزاکشن سلسله مراتبی از عملیات است که در یک واحد منطقی بروی دیتایس اعمال میشود بطوریکه پس از اتمام دیتابیس همچنان دارای چهار خاصیت زیر باشد
ACID (Atomicity, Consistency, Isolation, and Durability)
1- اتمیسیتی یعنی یادر مورد همه اطلاعات اجرا شود یا هیچ کدام
2- پس از اتمام دیتا بیس در حالت سازگاری بماند
3- تغیرات همزمان بروری مجموعه ای از رکورد ها باید مجزا از هم باشد
4- پس از اتمام یک ترانزاکشن تغییرات بایستی روی سیستم ماندگار باشد
ایا این بحث ادامه پیدا کند ؟