ورود

View Full Version : روش اصولی طراحی er دیاگرام



jijily
چهارشنبه 20 اسفند 1393, 12:23 عصر
سلام دوستان
من یه مشکلی با استادم دارم مشکل اینجاست که تا جایی که من خوندم برای طراحی پایگاه داده اول باید سیستم مورد نظر رو آنالیز کنیم و مشخصا entities ها رو پیدا کنیم بعد attribute های هر موجودیت رو تایین کنیم از روی اون جدولمون رو طراحی کنیم بعد نرمال سازی ها بعد مشخص کردن کلید ها و در آخر سر طراحی ER دیاگراممون
ولی این به نظر استاد بنده ابلحانست و باید اول ER دیاگرام رو طراحی کنم بعد جدول بعد نرمال سازی ها ولی واقعا این نه از نظر منطقی درسته و نه از نظر ساختاری به نظر من و من هر چی میگم استاد من آخه دیاگرام رو از هوا بکشم ؟ باید یه چیزی باشه که از روش بکشم دیگه میگه نه همینی که گفتم
الان یک روزه که دارم مغزم رو میترکونم تا یه چیزی از گفته این استادم در بیارم نمیشه به خاطر همین این سوال رو کردم تا ببینم اصلا اصول طراحی این دیاگرام چیه ؟ آیا چیزی که من یاد گرفتم اشتباهه؟‌؟؟

ممنون ازتون که حداقل خوندیم :) :قلب:

مهدی نان شکری
چهارشنبه 20 اسفند 1393, 23:36 عصر
با سلام
استاد شما درست می گویند. شما اگر پایگاه داده خود را نرمال سازی کرده باشید یعنی به صورت فیزیکی پایگاه داده خود را پیاده سازی کرده اید و این دقیقا شبیه این است که ابتدا کدهای سیستم نوشته شود بعد از روی آن کلاس دیاگرام ساخته شود و سپس سناریوهای آن نوشته شود.

معمولا در زمانی که نیاز به طراحی پایگاه داده می باشد، قبل از هر کاری احتیاج به تهیه ER می باشد تا به وسیله آن درک بهتری از نیازهای داده ای و پردازش آن داشته باشم.
به عبارت دیگر نمودار ER ورودی نمودار Schema می باشد(نمودار Schema نموداری است که در بیشتر پایگاه داده های رابطه ای از روی جداول و روابط آن می توان رسم کرد یا به عبارتی همان نمودار نرمال شده پایگاه داده می باشد)

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

پس شما با داشتن این اطلاعات می توانید به راحتی مدل Schema را استخراج نمایید.

البته برای ER شما باید سیستم را آنالیز کرده باشید و موجودیت های آن را شناسایی کرده باشید. اصولا پایه های ER در مرحله آنالیز تهیه می شود و در مرحله طراحی تکمیل می شود و به نرمال سازی ختم می شود و سپس در مرحله پیاده سازی Physical data model تهیه می شود.

اگر باز ابهامی در پاسخ من بود در خدمت شما هستم تا پاسخ را دقیق تر بیان کنم.

با تشکر

jijily
پنج شنبه 21 اسفند 1393, 10:34 صبح
ممنون آقای نان شکری
تا اونجا که من در کلاس هایی که در شرکت niit داشتم بهم گفتن در حین آنالیز سیستم برای طراحی پایگاه داده نه صرفا پیاده سازیش اومدن به ما گفتن اول سیستم رو آنالیز میکنیم بعد آنالیز که اصولا موجودیت و خواص انها مشخص شد شروع نوشتن اونها همانند یک جدول میکردیم بعد از ER رسم میشد و بعد از اون شروع به به طراحی جداول میکردیم بعد نرمال سازی ها و بعد دی نرمالیزیشن و رلیشن و کلید ها رو مشخص میکردیم ولی بعد از این همه باز بر میگشتیم سر دیاگراممون و نصبت به جداول جدیدی که به وجود اومده اونا رو تغییر میدادیم تا همخونی کامل با جداولمون داشته باشن
و در همه این موارد فقط طراحی بود و نسبت به پیاده سازی اقدامی نمیکردیم

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

حالا مشکل اینجاست من میگم استاد شما سوال دادین امتحان یک سیستم را در نظر بگیرید و برای آن ER دیاگرام رسم کنید این اصولی نیست مگه من چقدر زمان دارم که بخوام یک سیستم رو انالیز کنم بنویسم موجودیت ها رو دربیارم و کلید ها رو مشخص کنم بعد er بکشم استاد بنده میگن این همه کار نیاز نیست بکنی فقط er رو بکش و من هنوز هم موندم تو یک ورقه که ۸ سوال داره ۱.۵ ساعت زمان چطور میشه یک er هم کشید

مهدی نان شکری
پنج شنبه 21 اسفند 1393, 11:47 صبح
تا اونجا که من در کلاس هایی که در شرکت niit داشتم بهم گفتن در حین آنالیز سیستم برای طراحی پایگاه داده نه صرفا پیاده سازیش اومدن به ما گفتن اول سیستم رو آنالیز میکنیم بعد آنالیز که اصولا موجودیت و خواص انها مشخص شد شروع نوشتن اونها همانند یک جدول میکردیم بعد از ER رسم میشد و بعد از اون شروع به به طراحی جداول میکردیم بعد نرمال سازی ها و بعد دی نرمالیزیشن و رلیشن و کلید ها رو مشخص میکردیم

آیا شما در این پاراگراف حرفی جز آنچه من و استاد شما می گن زدید؟
این پاراگراف من رو با دقت مطالعه نکردید:


البته برای ER شما باید سیستم را آنالیز کرده باشید و موجودیت های آن را شناسایی کرده باشید. اصولا پایه های ER در مرحله آنالیز تهیه می شود و در مرحله طراحی تکمیل می شود و به نرمال سازی ختم می شود و سپس در مرحله پیاده سازی Physical data model تهیه می شود.


دوست عزیز ما در مراحل مختلف از طول عمر پروژه ، سطوح مختلفی از ER را تهیه می کنیم که این سطوح شامل Conceptual data model , Logical data model و Physical data model می باشد.
و همانطوری که خدمت شما هم گفتم پایه هایER از شناسایی Entity های سیستم شروع خواهد شد.



در پایان کار اگه به گفته شما بریم جلو یعنی جداول نهایی من اصلا همخونی با دیاگرام من نداره ؟ درسته ؟

از کدام قسمت گفته های من این نتیجه گیری را کرده اید؟



من یه مشکلی با استادم دارم مشکل اینجاست که تا جایی که من خوندم برای طراحی پایگاه داده اول باید سیستم مورد نظر رو آنالیز کنیم و مشخصا entities ها رو پیدا کنیم بعد attribute های هر موجودیت رو تایین کنیم از روی اون جدولمون رو طراحی کنیم بعد نرمال سازی ها بعد مشخص کردن کلید ها و در آخر سر طراحی ER دیاگراممون

دوست عزیز من جواب سوال بالای شما رو داده ام به این شرح که درست نیست بعد از پیاده سازی و نرمال سازی ER تهیه کنید و باید قبل از نرمال سازی ER تهیه شود.

البته همه این موارد بسته به شیوه مدل کردن دارد زیرا که در کتاب Building J2EE™ Applications with the Rational Unified Process توصیه شده است در مرحله آنالیز از Key Abstractions برای مدل سازی داده استفاده شود.

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

با تشکر

jijily
پنج شنبه 21 اسفند 1393, 12:09 عصر
دوست عزیز ما در مراحل مختلف از طول عمر پروژه ، سطوح مختلفی از ER را تهیه می کنیم که این سطوح شامل Conceptual data model , Logical data model و Physical data model می باشد.
و همانطوری که خدمت شما هم گفتم پایه هایER از شناسایی Entity های سیستم شروع خواهد شد.

بله دقیقا حق باشماست منم دنبال این پاراگرافتون که نقل قول کردم مگشتم که که در طول عمر پروژه یک دیاگرام ER ترسیم میشه

جالب اینجاست که حالا همین که شما میگین و منم کمی ساده وار نوشتم به استادم میگم میگه تو بد تحویل گرفتی اول er رو میکشیم بعد میگم استاد آنالیز نکرده بکشیم ؟ میگه فقط بکش یعنی اصلا به نظر میاد که خودش تو موضوع گم شده و نمیدونه راه درست چیه

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

بازم ممنون ازتون کامل و جامع بود