PDA

View Full Version : سوال: کسی یه آموزش برای "آنومالی" سراغ نداره؟



idocsidocs
پنج شنبه 26 مرداد 1391, 22:38 عصر
اگر بتونید در این مورد یه کتاب پی دی اف بهم بدید خیلی کمک بزرگی کردید.

Unique
جمعه 27 مرداد 1391, 14:04 عصر
از قول یه سایتی :

Normalization is the process of splitting relations into well structured relations that allow users to inset, delete, and update tuples without introducing database inconsistencies. Without normalization many problems can occur when trying to load an integrated conceptual model into the DBMS. These problems arise from relations that are generated directly from user views are called anomalies. There are three types of anomalies: update, deletion and insertion anomalies.

نمیدونم سواد من در این مورد درسته یا نه ! اما انومالی زمانی اتفاق میفته که شما database را Normalize نکرده باشین ! مثلا برای Update یا Delete و حتی insert شما به خاطر normalize نکردن جداول رکورد های اشتباهی را Delete یا Update کنین ! من فکر نمیکنم در مورد آنومالی بتونین ebook گیر بیارین ، اما برای Normalize کردن هست : http://www.parsbook.org/%DA%A9%D8%AA%D8%A7%D8%A8-%D8%A8%D8%A7%D9%86%DA%A9%D9%87%D8%A7%DB%8C-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA%DB%8C-%D8%B1%D8%A7%D8%A8%D8%B7%D9%87-%D8%A7%DB%8C%DB%8C

idocsidocs
شنبه 28 مرداد 1391, 17:00 عصر
الان مقاله ای که معرفی کردید رو به همراه یه مقاله دیگه خوندم. تقریبا بحث نرمال سازی رو متوجه شدم. اما باز هم فکر نکنم این روش روی سرعت دیتابیس تاثیری داشته باشه !

برای مثال یه جدول درست کنید که فقط 3 فیلد داشته باشه، توی فیلد اول کلید اصلی، فیلد دوم عنوان مقاله با حداکثر 250 کاراکتر طول و فیلد سوم، متن مقاله از نوع longtext باشه.

این جدول که دیگه فکر نکنم بشه روش نرمال سازی انجام داد ! اگر توی جدول 500000 تا 1000000 ردیف ذخیره کنم، برای پیجینگ این جدول مشکل دارم و نمی تونم توی سیستمم این جدول رو صفحه بندی کنم !

یعنی کار بیشتر از 60 ثانیه طول می کشه و ارور نمایش داده می شه !

برای این مورد باید چیکا رکرد؟

Unique
شنبه 28 مرداد 1391, 19:23 عصر
جناب idocsidocs خوب بلدین پست ها را قاطی کنینا ! من اینجا جواب آنومالی را دادم ! اما در مورد پست شما در مورد 500 هزار مقاله ! من دقیقا نمیدونم شما دارین چیکار میکنین ! اگه دارین همه اطلاعات را با هم load میکنین و بدون paging نشون میدین که اصلا درست نیست ! نمیدونم جدولتون innodb یا myisam نمیدونم اگه Paging دارین چیکار دارین میکنین limit و Offset میدین یا روش دیگه ای دارین. کلا مشکل باید از نوع عملکرد شما باشه !

idocsidocs
شنبه 28 مرداد 1391, 19:58 عصر
جناب idocsidocs خوب بلدین پست ها را قاطی کنینا !خودمم قاطی کردم ! این سایتی که ساختم با این تعداد رکورد توی لوکال کار نمی کنه !


اما در مورد پست شما در مورد 500 هزار مقاله ! من دقیقا نمیدونم شما دارین چیکار میکنین !از myisam استفاده می کنم. limit بهش می دم. کلا اگر فقط بخوام تعداد رکوردها رو هم بشمارم، بازم بیشتر از 60 ثانیه طول می کشه !

لطفا اینجا جواب بدید (http://barnamenevis.org/showthread.php?356714-%D8%A8%D8%B1%D8%A7%DB%8C-%DB%8C%D9%87-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-%D8%A8%D8%A7-100-%D9%85%DA%AF%D8%A7%D8%A8%D8%A7%DB%8C%D8%AA-%D8%AD%D8%AC%D9%85-%D8%A8%D8%A7%DB%8C%D8%AF-%DA%86%D9%87-%D9%85%D9%82%D8%AF%D8%A7%D8%B1-CPU-%D9%88-%D8%B1%D9%85-%D8%AF%D8%B1-%D9%86%D8%B8%D8%B1-%DA%AF%D8%B1%D9%81%D8%AA%D8%9F)

اما در مورد آنومالی بنظرم تکنیک خاصی نیست. فقط باید رعایت کرد که توی رکوردها مطلب تکراری وجود نباشه، بعد اگر چند نوع اطلاعات وجود داشت (مثل اطلاعات خریدار، اطلاعات سفارش و فاکتور) ، باید هر کدوم رو توی یه جدول ذخیره کنیم و با کلید اصلی به هم وصل کنیم.

این روش توی دیتابیس تحت وب بنظرتون زمان بیشتری هدر نمی ده؟

Unique
شنبه 28 مرداد 1391, 23:42 عصر
راستش منظور از آنومالی توی همون سه خط لاتین که نوشتم کاملا مشخصه !


این روش توی دیتابیس تحت وب بنظرتون زمان بیشتری هدر نمی ده؟
نرمال کردن پایگاه و اجتناب از آنومالی خیلی هم به performance کمک میکنه !