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

rezazd

عضو جدید
بحث ای که میخواهم شروع کنم بحت مولتی یوزر یا چند کاربری است اینجا فقط یه سر نخ به دوستان میدهیم انشاءالله خودشان بقیه موارد را پی گیری میکنند
فرض کنید یه چند کاربر همزمان مشغول ورود اطلاعات همزمان در یک سیستم هستند و در هر فرم دو اتفاق میافتد
1- به ازای رکورد جدید سریال یکتا تولید و نمایش داده میشود
2- اگر بعضی برخی از فلیدها تکراری بود رکورد ذخیره نمیشود

سئوال اساسی اینجاست اگر دو کاربر همزمان رکوردی را ذخیره کنند که سابقه قبلی ندارد اما برای هم دیگر تکراری اند چگونه باید کنترل شود !

جواب : جدول مربوطه را به ازای اولین عمل اولین کاربر قفل میکنیم تا کارش کامل تموم نشود قفل را بر نمیداریم پس کاربران بعدی توی صف میمانند تا یکی یکی کارشان انجام شود

صرف نظر از برخی جزئیات فرض دیگری میکنیم
در یک سیستم فروش کاربری مشغول لیست گیری است در همین حین کاربر دیگری مقدار ریالی رکوردی را اصلاح میکند ولی عمل لیست گیری این رکورد را مورد محاسبه قرار داده است نتیجه مغایرت لیست و مقدار واقعی در دیتا بیس است

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

ایا این بحث ادامه پیدا کند ؟
 

Javan_Soft

عضو جدید
شايد بد نباشد قبل از اين بحث در مورد طراحي هاي دو/ سه و چند لايه هم توضيح ميداديد
چون ميدانيد كه اين مشكل به طراحي برميگردد
 

rezaelmi

عضو جدید
من خودم این مشکل رو داشتم ولی با کد حل شد.
ولی موضوع جالبی برای برنامه نویس ها هستش
تا به این مشکل بر نخوری نمی فهمی که چقدر اهمیت داره.
 

Similar threads

بالا