PDA

View Full Version : حتما باید از Database استفاده کنم؟!



IamOverlord
چهارشنبه 16 اسفند 1391, 15:29 عصر
سلام دوستان.
طبیعیه که برای اکثر سایت های بزرگ بهتره از Database استفاده بشه...
اما برای یه سری از سایت ها اگه از Database استفاده نشه و فقط از فایل متنی استفاده بشه چه مشکلاتی ممکنه پیش بیاد؟ بیش تر منظورم برای کاربر سایت هست...
اصولا به چه دلایلی از Database استفاده می کنن؟

mammadyeta
چهارشنبه 16 اسفند 1391, 15:49 عصر
منظور شما چیه؟
خوب اگه بخوایم اطلاعات کاربران یا مطالب و خیلی چیزای دیگه رو در جایی ذخیره کنیم فکر می کنم کار با دیتابیس راحت تر باشه.
بازهم اساتید می تونن بیشتر نظر بدن.

Unique
چهارشنبه 16 اسفند 1391, 16:41 عصر
ببینین کلا یک سری DBMS داریم که از روی اسمشون میشه فهمید Database Management System هستند و فقط برای ذخیره یکسری اطلاعات توی جداول نیستند ، در ضمن به قدری روشون کار شده و بهینه شده اند که سرعت کار برای ذخیره و بازیابی اطلاعات را به شدت بالا میبرند ، شما خیلی قابلیت ها مثل view ها ، Stored Procedure ها ،‌User Defined Function ها ، Trigger ها و خیلی موضوعات دیگه را میتونین توی اونها ببینین ! کلی توابع دارند و به شکل خیلی کاملی SQL را پوشش میدهند ،‌از جمله اونها میشه به My SQL , MS SQL, Oracle اشاره کرد، البته تعدادشون بنا به اینه Relational یا Object یا Object-Relational کم نیستش ! خلاصه اینکه فکر نکنین چند تا جدوله که شمامیتونین توی فایل csv هم شبیه سازی کنید !

اما برای پروژه های کوچیکتر که در مقیاس کوچیکی هستند یا سرعت آنچنانی مد نظر نیست میشه از File Based Database System ها مثل sqlite و Access استفاده کرد ، اینها زیاد دنگ و فنگ ندارند و همش توی یک فایل هست و بس ! در ضمن sql را هم پشتیبانی میکنند و کار باهاشون شبیه همون DBMS ها هستش و کافیه مثلا driver مربوط به pdo را توی php عوض کنیم !

حالا با توجه به نیاز ها تصمیم بگیرین ! خود من شخصا خیلی از این file based ها استفاده میکنم حتی از xml ! توی xml هم با توجه به xslt و xpath خیلی راحت میشه کار کرد ، تازه خود php یک parser خیلی خوب داره.

eshpilen
چهارشنبه 16 اسفند 1391, 22:58 عصر
فکر کنم همون عملیات پایهء CRUD رو هم بخواید در فایل خودتون بصورت کامل و بدون باگ پیاده کنید اصلا کم کاری نیست! همینطور نکرده بنظر ساده میاد.
خیلی مسائل داره. دیتابیس همهء ریزه کاریها رو با اطمینان و انعطاف بالا واسه شما انجام میده.
جایی که دیتاها تغییرات زیاد دارن دیتابیس انتخاب طبیعی است، مگر اینکه به دلایل دیگری روش دیگری رو انتخاب کنید.
مثلا وقتی یکسری اطلاعات در وسط فایل حذف میشن، شما باید این حذف رو طوری علامتگذاری کنید (یا اینکه میاید کل فایل رو دوباره بازنویسی میکنید؟!)، بعد موقعی که داده های جدیدی میخواید بنویسید باید بیاید ببینید اگر فضای خالی/داده های دلیت شده در جایی هست و دیتای جدید شما در اونجا جا میشه اونوقت دیتا رو در اونجا درج کنید تا از هدر رفتن فضای ذخیره سازی جلوگیری بشه، بعد مثلا حساب کنید اگر دیتایی بخواد آپدیت بشه و حجمش بیشتر از حجم قبلی اون بشه و در وسط فایل جا نباشه باید چکار کنید، مثلا دیتا رو به جای دیگری یا انتهای فایل منتقل کنید، بعد خب چطوره برای هر دیتایی با یک حساب و الگوریتم بهینه ای یک مقدار فضای خالی هم از قبل رزرو کنید تا درصورت تغییرات معمولی در حجم داده ها نیازی به جابجایی نباشه، و غیره و غیره. خلاصه توی کارش که بری خیلی جزییات و مسائل داره، که یک DBMS تمام اینها رو به شکل حساب شده و بهینه و قابل اطمینانی (جلوگیری از خرابی داده ها و امکان تعمیر سریع و راحت و بازیابی حداکثری داده ها درصورت بعضی خرابیهای اجتناب ناپذیر) پیاده سازی کرد.

حالا تازه اینا که گفتم یک کسر کوچکی از مسائل و امکانات ذخیره و بازیابی دیتا بود که حضور ذهن داشتم و بالبداهه گفتم. خیلی چیزها هست در یک DBMS که در طول سالها تکامل پیدا کرده. بعد تازه کلی امکانات دیگر و جانبی و پیشرفته هم داره یک DBMS که بعدا ممکنه نیازتون بشه یا براتون خیلی مفید باشه.

البته این مسائل بیشتر وقتی مهم میشن که کارهای داده ای ما نسبتا حجیم و پیچیده باشن (یا ممکنه در آینده بشن) و دستکاری زیاد باشه و حجم دیتا ممکنه خیلی زیاد بشه و این حرفا. اگر مورد ساده و محدودی باشه شاید بیشتر این موارد مهم نباشن، اما بازم من شخصا دلیلی نمیبینم از دیتابیس استفاده نکنم. یک خوبی دیگر دیتابیس هم اینه که روی همهء هاستها با هر کانفیگی کار میکنه و مشکل پرمیشن و مشکلات امنیتش و این حرفا پیش نمیاد.

siavashsay
پنج شنبه 17 اسفند 1391, 21:07 عصر
( صرفا محض مزاح ) eshpilen مردووووووونه - خدایییییی- للهی --- انصافاااااااااااااا شد یک پست بذاری کمتر از 3 خط باشه ؟! :)))))))))))))